@amboss/design-system 3.48.6 → 4.0.0-next.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/build/cjs/components/AvatarGroup/AvatarGroup.d.ts +2 -1
- package/build/cjs/components/AvatarGroup/AvatarGroup.js +1 -1
- package/build/cjs/components/BinaryFeedback/-types.d.ts +2 -1
- package/build/cjs/components/Box/Box.d.ts +2 -2
- package/build/cjs/components/Box/Box.js +1 -1
- package/build/cjs/components/BulkActionsToolbar/BulkActionsToolbar.d.ts +2 -1
- package/build/cjs/components/BulkActionsToolbar/BulkActionsToolbar.js +1 -1
- package/build/cjs/components/BulkActionsToolbar/useBulkActionsToolbar.js +1 -1
- package/build/cjs/components/Callout/Callout.js +1 -1
- package/build/cjs/components/Card/{CardBox.js → CardBox/CardBox.js} +1 -1
- package/build/cjs/components/CatalogCard/CatalogCard.d.ts +9 -1
- package/build/cjs/components/CatalogCard/CatalogCard.js +1 -1
- package/build/cjs/components/Collapsible/Collapsible.js +1 -1
- package/build/cjs/components/ColorPicker/ColorPicker.d.ts +2 -1
- package/build/cjs/components/ColorPicker/ColorPickerDropdown.d.ts +9 -2
- package/build/cjs/components/ColorPicker/ColorPickerDropdown.js +1 -1
- package/build/cjs/components/ColorPicker/ColorPickerOption.js +1 -1
- package/build/cjs/components/Content/ContentPictogramButton/ContentPictogramButton.d.ts +1 -3
- package/build/cjs/components/Content/ContentPictogramButton/ContentPictogramButton.js +1 -1
- package/build/cjs/components/DataTable/DataTable.d.ts +26 -12
- package/build/cjs/components/DataTable/DataTable.js +1 -1
- package/build/cjs/components/DataTable/TableBody.js +1 -1
- package/build/cjs/components/DataTable/header/DataTableHeaderToggletip.d.ts +3 -1
- package/build/cjs/components/DataTable/header/DataTableHeaderToggletip.js +1 -1
- package/build/cjs/components/DataTable/header/SortableCellContent.d.ts +1 -1
- package/build/cjs/components/DataTable/header/SortableCellContent.js +1 -1
- package/build/cjs/components/DataTable/header/TableHeader.js +1 -1
- package/build/cjs/components/DataTable/types.d.ts +12 -2
- package/build/cjs/components/Divider/Divider.js +1 -1
- package/build/cjs/components/DropdownMenu/DropdownMenu.d.ts +1 -2
- package/build/cjs/components/DropdownMenu/Menu.js +1 -1
- package/build/cjs/components/Form/Combobox/MultiSelect.js +1 -1
- package/build/cjs/components/Form/Combobox/SingleSelect.js +1 -1
- package/build/cjs/components/Form/FormErrorMessages/FormErrorMessages.js +1 -1
- package/build/cjs/components/Form/FormField/FormField.js +1 -1
- package/build/cjs/components/Form/Input/Input.d.ts +10 -4
- package/build/cjs/components/Form/Input/Input.js +1 -1
- package/build/cjs/components/Form/SegmentedControl/SegmentedControlOption.js +1 -1
- package/build/cjs/components/Icon/Icon.d.ts +4 -3
- package/build/cjs/components/Icon/Icon.js +1 -1
- package/build/cjs/components/IconTile/IconTile.d.ts +3 -2
- package/build/cjs/components/IconTile/IconTile.js +1 -1
- package/build/cjs/components/Image/Image.d.ts +18 -14
- package/build/cjs/components/Image/Image.js +1 -1
- package/build/cjs/components/Inline/Inline.js +1 -1
- package/build/cjs/components/NavBar/NavBarSearchInput.d.ts +4 -0
- package/build/cjs/components/NavBar/NavBarSearchInput.js +1 -1
- package/build/cjs/components/Notification/Notification.js +1 -1
- package/build/cjs/components/Pagination/-types.d.ts +2 -1
- package/build/cjs/components/Patterns/Modal/Modal.d.ts +25 -9
- package/build/cjs/components/Patterns/Modal/Modal.js +2 -2
- package/build/cjs/components/PictogramButton/PictogramButton.d.ts +9 -2
- package/build/cjs/components/PictogramButton/PictogramButton.js +1 -1
- package/build/cjs/components/ProgressBar/ProgressBar.d.ts +2 -1
- package/build/cjs/components/PromptInput/CategoryList.js +1 -1
- package/build/cjs/components/PromptInput/PromptInput.js +1 -1
- package/build/cjs/components/Stack/Stack.d.ts +2 -1
- package/build/cjs/components/Stack/Stack.js +1 -1
- package/build/cjs/components/Utilities/FloatingPosition/useFloatingPosition.d.ts +52 -0
- package/build/cjs/components/Utilities/FloatingPosition/useFloatingPosition.js +1 -0
- package/build/cjs/components/Utilities/FloatingPosition/utils.d.ts +26 -0
- package/build/cjs/components/Utilities/FloatingPosition/utils.js +1 -0
- package/build/cjs/index.d.ts +1 -1
- package/build/cjs/index.js +1 -1
- package/build/cjs/types/a11y.d.ts +26 -0
- package/build/cjs/types/a11y.js +1 -0
- package/build/esm/components/AvatarGroup/AvatarGroup.d.ts +2 -1
- package/build/esm/components/AvatarGroup/AvatarGroup.js +1 -1
- package/build/esm/components/BinaryFeedback/-types.d.ts +2 -1
- package/build/esm/components/Box/Box.d.ts +2 -2
- package/build/esm/components/Box/Box.js +1 -1
- package/build/esm/components/BulkActionsToolbar/BulkActionsToolbar.d.ts +2 -1
- package/build/esm/components/BulkActionsToolbar/BulkActionsToolbar.js +1 -1
- package/build/esm/components/BulkActionsToolbar/useBulkActionsToolbar.js +1 -1
- package/build/esm/components/Callout/Callout.js +1 -1
- package/build/esm/components/Card/CardBox/CardBox.js +1 -0
- package/build/esm/components/CatalogCard/CatalogCard.d.ts +9 -1
- package/build/esm/components/CatalogCard/CatalogCard.js +1 -1
- package/build/esm/components/Collapsible/Collapsible.js +1 -1
- package/build/esm/components/ColorPicker/ColorPicker.d.ts +2 -1
- package/build/esm/components/ColorPicker/ColorPickerDropdown.d.ts +9 -2
- package/build/esm/components/ColorPicker/ColorPickerDropdown.js +1 -1
- package/build/esm/components/ColorPicker/ColorPickerOption.js +1 -1
- package/build/esm/components/Content/ContentPictogramButton/ContentPictogramButton.d.ts +1 -3
- package/build/esm/components/Content/ContentPictogramButton/ContentPictogramButton.js +1 -1
- package/build/esm/components/DataTable/DataTable.d.ts +26 -12
- package/build/esm/components/DataTable/DataTable.js +1 -1
- package/build/esm/components/DataTable/TableBody.js +1 -1
- package/build/esm/components/DataTable/header/DataTableHeaderToggletip.d.ts +3 -1
- package/build/esm/components/DataTable/header/DataTableHeaderToggletip.js +1 -1
- package/build/esm/components/DataTable/header/SortableCellContent.d.ts +1 -1
- package/build/esm/components/DataTable/header/SortableCellContent.js +1 -1
- package/build/esm/components/DataTable/header/TableHeader.js +1 -1
- package/build/esm/components/DataTable/types.d.ts +12 -2
- package/build/esm/components/Divider/Divider.js +1 -1
- package/build/esm/components/DropdownMenu/DropdownMenu.d.ts +1 -2
- package/build/esm/components/DropdownMenu/Menu.js +1 -1
- package/build/esm/components/Form/Combobox/MultiSelect.js +1 -1
- package/build/esm/components/Form/Combobox/SingleSelect.js +1 -1
- package/build/esm/components/Form/FormErrorMessages/FormErrorMessages.js +1 -1
- package/build/esm/components/Form/FormField/FormField.js +1 -1
- package/build/esm/components/Form/Input/Input.d.ts +10 -4
- package/build/esm/components/Form/Input/Input.js +1 -1
- package/build/esm/components/Form/SegmentedControl/SegmentedControlOption.js +1 -1
- package/build/esm/components/Icon/Icon.d.ts +4 -3
- package/build/esm/components/Icon/Icon.js +1 -1
- package/build/esm/components/IconTile/IconTile.d.ts +3 -2
- package/build/esm/components/IconTile/IconTile.js +1 -1
- package/build/esm/components/Image/Image.d.ts +18 -14
- package/build/esm/components/Image/Image.js +1 -1
- package/build/esm/components/Inline/Inline.js +1 -1
- package/build/esm/components/NavBar/NavBarSearchInput.d.ts +4 -0
- package/build/esm/components/NavBar/NavBarSearchInput.js +1 -1
- package/build/esm/components/Notification/Notification.js +1 -1
- package/build/esm/components/Pagination/-types.d.ts +2 -1
- package/build/esm/components/Patterns/Modal/Modal.d.ts +25 -9
- package/build/esm/components/Patterns/Modal/Modal.js +2 -2
- package/build/esm/components/PictogramButton/PictogramButton.d.ts +9 -2
- package/build/esm/components/PictogramButton/PictogramButton.js +1 -1
- package/build/esm/components/ProgressBar/ProgressBar.d.ts +2 -1
- package/build/esm/components/PromptInput/CategoryList.js +1 -1
- package/build/esm/components/PromptInput/PromptInput.js +1 -1
- package/build/esm/components/Stack/Stack.d.ts +2 -1
- package/build/esm/components/Stack/Stack.js +1 -1
- package/build/esm/components/Utilities/FloatingPosition/useFloatingPosition.d.ts +52 -0
- package/build/esm/components/Utilities/FloatingPosition/useFloatingPosition.js +1 -0
- package/build/esm/components/Utilities/FloatingPosition/utils.d.ts +26 -0
- package/build/esm/components/Utilities/FloatingPosition/utils.js +1 -0
- package/build/esm/index.d.ts +1 -1
- package/build/esm/index.js +1 -1
- package/build/esm/types/a11y.d.ts +26 -0
- package/build/esm/types/a11y.js +1 -0
- package/package.json +2 -1
- package/build/esm/components/Card/CardBox.js +0 -1
- /package/build/cjs/components/Card/{CardBox.d.ts → CardBox/CardBox.d.ts} +0 -0
- /package/build/esm/components/Card/{CardBox.d.ts → CardBox/CardBox.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import React,{useRef,useMemo,useState,useEffect,useCallback,forwardRef}from"react";import styled from"@emotion/styled";import{PromptTextArea,getPaddingHorizontal,getPaddingVertical}from"./PromptTextArea";import{Container}from"../Container";import{AutocompleteList}from"./AutocompleteList";import{getListItemId}from"./CategoryList";import{Text}from"../Typography/Text";import{Inline}from"../Inline/Inline";import{RoundButton}from"../RoundButton/RoundButton";import{PictogramButton}from"../PictogramButton/PictogramButton";import{Stack}from"../Stack/Stack";import{Icon}from"../Icon/Icon";import{SubThemeProvider}from"../SubThemeProvider/SubThemeProvider";import{useAnimatedBorder}from"../Utilities/AnimatedBorder/useAnimatedBorder";import{PromptInputHeader}from"./PromptInputHeader";let CustomContainer=styled(Container,{target:"ey62v590",label:"CustomContainer"})(({theme,hideBorder,hasShadow})=>({border:`1px solid ${theme.values.color.border.primary.default}`,...hasShadow&&{boxShadow:theme.values.shadow.defaultRing,transitionProperty:"box-shadow, border-color, outline-color",transitionDuration:theme.variables.animation.promptInput.focus.duration,transitionTimingFunction:theme.variables.animation.promptInput.focus.timingFunction},...hideBorder&&{borderColor:"transparent"},cursor:"text",outlineColor:"transparent","&:has(textarea:focus-visible)":{outlineWidth:1,outlineStyle:"solid",outlineOffset:-1,boxShadow:theme.values.shadow.focusRing,outlineColor:theme.values.color.border.accent.default}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5cbmltcG9ydCB0eXBlIHsgUHJvbXB0VGV4dEFyZWFQcm9wcyB9IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQge1xuICBQcm9tcHRUZXh0QXJlYSxcbiAgZ2V0UGFkZGluZ0hvcml6b250YWwsXG4gIGdldFBhZGRpbmdWZXJ0aWNhbCxcbn0gZnJvbSBcIi4vUHJvbXB0VGV4dEFyZWFcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi9Db250YWluZXJcIjtcbmltcG9ydCB0eXBlIHsgQXV0b2NvbXBsZXRlTGlzdFByb3BzIH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuXG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdElucHV0U2l6ZXMgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgdHlwZSB7IFJvdW5kQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB7IFJvdW5kQnV0dG9uIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB0eXBlIHsgSWNvbk5hbWUgfSBmcm9tIFwiLi4vSWNvbi9JY29uXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgU3ViVGhlbWVQcm92aWRlciB9IGZyb20gXCIuLi9TdWJUaGVtZVByb3ZpZGVyL1N1YlRoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB7IHVzZUFuaW1hdGVkQm9yZGVyIH0gZnJvbSBcIi4uL1V0aWxpdGllcy9BbmltYXRlZEJvcmRlci91c2VBbmltYXRlZEJvcmRlclwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0SW5wdXRIZWFkZXIsXG4gIHR5cGUgQmFzZVByb21wdElucHV0SGVhZGVyUHJvcHMsXG59IGZyb20gXCIuL1Byb21wdElucHV0SGVhZGVyXCI7XG5cbmNvbnN0IEN1c3RvbUNvbnRhaW5lciA9IHN0eWxlZChDb250YWluZXIpPHtcbiAgaGlkZUJvcmRlcjogYm9vbGVhbjtcbiAgaGFzU2hhZG93OiBib29sZWFuO1xufT4oKHsgdGhlbWUsIGhpZGVCb3JkZXIsIGhhc1NoYWRvdyB9KSA9PiAoe1xuICBib3JkZXI6IGAxcHggc29saWQgJHt0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLnByaW1hcnkuZGVmYXVsdH1gLFxuICAuLi4oaGFzU2hhZG93ICYmIHtcbiAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5zaGFkb3cuZGVmYXVsdFJpbmcsXG4gICAgdHJhbnNpdGlvblByb3BlcnR5OiBcImJveC1zaGFkb3csIGJvcmRlci1jb2xvciwgb3V0bGluZS1jb2xvclwiLFxuICAgIHRyYW5zaXRpb25EdXJhdGlvbjogdGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5wcm9tcHRJbnB1dC5mb2N1cy5kdXJhdGlvbixcbiAgICB0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb246XG4gICAgICB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLnRpbWluZ0Z1bmN0aW9uLFxuICB9KSxcbiAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgIGJvcmRlckNvbG9yOiBcInRyYW5zcGFyZW50XCIsXG4gIH0pLFxuICBjdXJzb3I6IFwidGV4dFwiLFxuICBvdXRsaW5lQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgb3V0bGluZVdpZHRoOiAxLFxuICAgIG91dGxpbmVTdHlsZTogXCJzb2xpZFwiLFxuICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG4gICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICB9LFxufSkpO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuY29uc3QgU3R5bGVkTGVmdEljb25Db250YWluZXIgPSBzdHlsZWQuZGl2PHsgc2l6ZT86IFByb21wdElucHV0U2l6ZXMgfT4oXG4gICh7IHRoZW1lLCBzaXplIH0pID0+ICh7XG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSwgc2l6ZSksXG4gICAgbGVmdDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUsIHNpemUpLFxuICAgIGhlaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLmljb24ubSwgLy8gdmlydHVhbCBzaXplIGJveCBmb3IgbWVkaXVtIGFuZCBzbWFsbCBpY29ucyBmb3IgdmVydGljYWwgYWxpZ25tZW50XG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgPSBzdHlsZWQuZGl2PHtcbiAgc2l6ZT86IFByb21wdElucHV0U2l6ZXM7XG59PigoeyB0aGVtZSwgc2l6ZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSwgc2l6ZSksXG4gIHJpZ2h0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSwgc2l6ZSksXG4gIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkQ2xlYXJCdXR0b24gPSBzdHlsZWQoUGljdG9ncmFtQnV0dG9uKSgoeyB0aGVtZSwgYnV0dG9uU2l6ZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICB0b3A6XG4gICAgYnV0dG9uU2l6ZSA9PT0gXCJtXCJcbiAgICAgID8gdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zXG4gICAgICA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHMsXG59KSk7XG5cbmNvbnN0IFN0eWxlZFNsb3RzQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGRpc3BsYXk6IFwiZmxleFwiLFxuICBmbGV4V3JhcDogXCJ3cmFwXCIsXG4gIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG59KTtcblxuLy8gSXQgbmVlZHMgbWFyZ2luIGR1ZSB0byBlbXB0eSBjbGlja2FibGUgc3BhY2UgdGhhdCBmb2N1c2VzIHRoZSB0ZXh0YXJlYVxuLy8gU2xvdHMgc2hvdWxkIG5vdCBiZSBpbiB0aGUgZGl2LCBiZWNhdXNlIGFyZWEgYmV0d2VlbiBzaG91bGQgYmUgY2xpY2thYmxlIGFsc29cbnR5cGUgU2xvdFByb3BzID0ge1xuICBzaWRlPzogXCJyaWdodFwiO1xufTtcbmNvbnN0IFN0eWxlZFNsb3QgPSBzdHlsZWQuZGl2PFNsb3RQcm9wcz4oKHsgdGhlbWUsIHNpZGUgfSkgPT4gKHtcbiAgbWFyZ2luOiBgMCAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc30gJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnN9YCxcblxuICAuLi4oc2lkZSA9PT0gXCJyaWdodFwiICYmIHtcbiAgICBtYXJnaW5MZWZ0OiBcImF1dG9cIixcbiAgfSksXG59KSk7XG5cbnR5cGUgU2VuZEJ1dHRvblByb3BzID0gT21pdDxSb3VuZEJ1dHRvblByb3BzLCBcImljb25cIiB8IFwidmFyaWFudFwiIHwgXCJzaXplXCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIiB8IFwidm9pY2VcIjtcbn07XG5cbnR5cGUgQm90dG9tVG9vbGJhckNvbmZpZyA9IHtcbiAgLyoqIFRvb2xiYXIgZWxlbWVudHMgYmVsb3cgdGV4dCBhcmVhICovXG4gIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgaGVhZGVyPzogQmFzZVByb21wdElucHV0SGVhZGVyUHJvcHM7XG4gIHZhcmlhbnQ/OiBcImFpXCI7XG4gIHNraXBBSUFuaW1hdGlvbj86IGJvb2xlYW47XG4gIGJvdHRvbVRvb2xiYXI/OiBCb3R0b21Ub29sYmFyQ29uZmlnO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBTZW5kQnV0dG9uUHJvcHM7XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgY2xlYXJCdXR0b25BcmlhTGFiZWw/OiBzdHJpbmc7XG4gIGhpbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIC8qKiBTaG93cyBpbiB0aGUgY2xlYXIgYnV0dG9uIHNwYWNlIGluIGVtcHR5IHN0YXRlICovXG4gIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIC8qKiBTaXplIG9mIHRoZSBQcm9tcHRJbnB1dCAqL1xuICBzaXplPzogUHJvbXB0SW5wdXRTaXplcztcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiIHwgXCJzaXplXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyLFxuICAgICAgaXNQcm9jZXNzaW5nLFxuICAgICAgc2VuZEJ1dHRvblByb3BzLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBsZWZ0SWNvbixcbiAgICAgIGhlYWRlcixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIHZhcmlhbnQsXG4gICAgICBzaXplID0gXCJtXCIsXG4gICAgICBza2lwQUlBbmltYXRpb24gPSBmYWxzZSxcbiAgICAgIHJvd3MgPSAxLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGFuaW1hdGVkQm9yZGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIHVzZUFuaW1hdGVkQm9yZGVyKGFuaW1hdGVkQm9yZGVyUmVmLCB7XG4gICAgICBza2lwQW5pbWF0aW9uOiBza2lwQUlBbmltYXRpb24gfHwgdmFyaWFudCAhPT0gXCJhaVwiLFxuICAgICAgcmFkaXVzOiBzaXplID09PSBcIm1cIiA/IDEyIDogOCxcbiAgICAgIGl0ZXJhdGlvbnM6IDEsXG4gICAgfSk7XG5cbiAgICBjb25zdCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0U2VuZEJ1dHRvblByb3BzLFxuICAgICAgLi4uKHNlbmRCdXR0b25Qcm9wcyA/PyB7fSksXG4gICAgfTtcblxuICAgIGNvbnN0IGNsb3NlQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4oZmFsc2UpO1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3Qgb3BlbkF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKHRydWUpO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICAgIH1cbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXSk7XG5cbiAgICBjb25zdCBhY2NlcHRUZXh0U2VsZWN0aW9uID0gKCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IHZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0ICE9PSB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvbkVuZFxuICAgICAgKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG9wZW5BdXRvY29tcGxldGVMaXN0LCBjbG9zZUF1dG9jb21wbGV0ZUxpc3RdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgc2l6ZT17c2l6ZX0+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9e3NpemUgPT09IFwibVwiID8gXCJzXCIgOiBcInhzXCJ9XG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgaWNvbj1cIngtY2lyY2xlLWZpbGxlZFwiXG4gICAgICAgIGFyaWEtbGFiZWw9e2NsZWFyQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgIG9uQ2xpY2s9e29uQ2xlYXJ9XG4gICAgICAgIGJ1dHRvblNpemU9e3NpemV9XG4gICAgICAvPlxuICAgICkgOiAoXG4gICAgICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtXG4gICAgKTtcblxuICAgIGNvbnN0IGhpbnRFbG0gPSAhIWhpbnQgJiYgKFxuICAgICAgPElubGluZSBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIDxUZXh0IHNpemU9XCJzXCIgY29sb3I9XCJ0ZXJ0aWFyeVwiPlxuICAgICAgICAgIHtoaW50fVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0lubGluZT5cbiAgICApO1xuXG4gICAgY29uc3QgYm90dG9tVG9vbGJhckVsbSA9IChib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnQgfHxcbiAgICAgIGJvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50IHx8XG4gICAgICAhIXNlbmRCdXR0b25Qcm9wcykgJiYgKFxuICAgICAgPD5cbiAgICAgICAge2JvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICA8U3R5bGVkU2xvdD57Ym90dG9tVG9vbGJhci5sZWZ0Q29udGVudH08L1N0eWxlZFNsb3Q+XG4gICAgICAgICl9XG4gICAgICAgIDxTdHlsZWRTbG90IGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCIgc2lkZT1cInJpZ2h0XCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnR9XG4gICAgICAgICAgICB7c2VuZEJ1dHRvblByb3BzICYmIChcbiAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT17dmFyaWFudH0+XG4gICAgICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogaXNQcm9jZXNzaW5nXG4gICAgICAgICAgICAgICAgICAgICAgPyBcIlByb2Nlc3NpbmcgcXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICB7Li4ubWVyZ2VkU2VuZEJ1dHRvblByb3BzfVxuICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZSA9PT0gXCJtXCIgPyBcInNcIiA6IFwieHNcIn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXttZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWQgPz8gIXZhbHVlfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZEJ1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17XG4gICAgICAgICAgICAgICAgICAgIGlzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29uXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdWJUaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgPC8+XG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPVwiUHJvbXB0SW5wdXRcIlxuICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIGRpc2FibGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBhdXRvY29tcGxldGUgbGlzdFxuICAgICAgICAgIHRyYW5zbGF0ZT1cIm5vXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFjayBzcGFjZT1cInNcIj5cbiAgICAgICAgICAgIDxkaXYgcmVmPXthbmltYXRlZEJvcmRlclJlZn0+XG4gICAgICAgICAgICAgIDxTdWJUaGVtZVByb3ZpZGVyIG5hbWU9e3ZhcmlhbnR9PlxuICAgICAgICAgICAgICAgIDxDdXN0b21Db250YWluZXJcbiAgICAgICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17c2l6ZX1cbiAgICAgICAgICAgICAgICAgIGhpZGVCb3JkZXI9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgaGFzU2hhZG93XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT1cInVuc2V0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtoZWFkZXIgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFByb21wdElucHV0SGVhZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5oZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1c1NpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAge2xlZnRJY29uICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZExlZnRJY29uQ29udGFpbmVyIHNpemU9e3NpemV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtsZWZ0SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9e3Jvd3N9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L1N1YlRoZW1lUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9DdXN0b21Db250YWluZXI+XG4gICAgICAgICAgICAgIDwvU3ViVGhlbWVQcm92aWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUR3QiJ9 */"),StyledTextAreaContainer=styled("div",{target:"ey62v591",label:"StyledTextAreaContainer"})({borderRadius:"inherit",position:"relative",width:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5cbmltcG9ydCB0eXBlIHsgUHJvbXB0VGV4dEFyZWFQcm9wcyB9IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQge1xuICBQcm9tcHRUZXh0QXJlYSxcbiAgZ2V0UGFkZGluZ0hvcml6b250YWwsXG4gIGdldFBhZGRpbmdWZXJ0aWNhbCxcbn0gZnJvbSBcIi4vUHJvbXB0VGV4dEFyZWFcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi9Db250YWluZXJcIjtcbmltcG9ydCB0eXBlIHsgQXV0b2NvbXBsZXRlTGlzdFByb3BzIH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuXG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdElucHV0U2l6ZXMgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgdHlwZSB7IFJvdW5kQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB7IFJvdW5kQnV0dG9uIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB0eXBlIHsgSWNvbk5hbWUgfSBmcm9tIFwiLi4vSWNvbi9JY29uXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgU3ViVGhlbWVQcm92aWRlciB9IGZyb20gXCIuLi9TdWJUaGVtZVByb3ZpZGVyL1N1YlRoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB7IHVzZUFuaW1hdGVkQm9yZGVyIH0gZnJvbSBcIi4uL1V0aWxpdGllcy9BbmltYXRlZEJvcmRlci91c2VBbmltYXRlZEJvcmRlclwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0SW5wdXRIZWFkZXIsXG4gIHR5cGUgQmFzZVByb21wdElucHV0SGVhZGVyUHJvcHMsXG59IGZyb20gXCIuL1Byb21wdElucHV0SGVhZGVyXCI7XG5cbmNvbnN0IEN1c3RvbUNvbnRhaW5lciA9IHN0eWxlZChDb250YWluZXIpPHtcbiAgaGlkZUJvcmRlcjogYm9vbGVhbjtcbiAgaGFzU2hhZG93OiBib29sZWFuO1xufT4oKHsgdGhlbWUsIGhpZGVCb3JkZXIsIGhhc1NoYWRvdyB9KSA9PiAoe1xuICBib3JkZXI6IGAxcHggc29saWQgJHt0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLnByaW1hcnkuZGVmYXVsdH1gLFxuICAuLi4oaGFzU2hhZG93ICYmIHtcbiAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5zaGFkb3cuZGVmYXVsdFJpbmcsXG4gICAgdHJhbnNpdGlvblByb3BlcnR5OiBcImJveC1zaGFkb3csIGJvcmRlci1jb2xvciwgb3V0bGluZS1jb2xvclwiLFxuICAgIHRyYW5zaXRpb25EdXJhdGlvbjogdGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5wcm9tcHRJbnB1dC5mb2N1cy5kdXJhdGlvbixcbiAgICB0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb246XG4gICAgICB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLnRpbWluZ0Z1bmN0aW9uLFxuICB9KSxcbiAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgIGJvcmRlckNvbG9yOiBcInRyYW5zcGFyZW50XCIsXG4gIH0pLFxuICBjdXJzb3I6IFwidGV4dFwiLFxuICBvdXRsaW5lQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgb3V0bGluZVdpZHRoOiAxLFxuICAgIG91dGxpbmVTdHlsZTogXCJzb2xpZFwiLFxuICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG4gICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICB9LFxufSkpO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuY29uc3QgU3R5bGVkTGVmdEljb25Db250YWluZXIgPSBzdHlsZWQuZGl2PHsgc2l6ZT86IFByb21wdElucHV0U2l6ZXMgfT4oXG4gICh7IHRoZW1lLCBzaXplIH0pID0+ICh7XG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSwgc2l6ZSksXG4gICAgbGVmdDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUsIHNpemUpLFxuICAgIGhlaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLmljb24ubSwgLy8gdmlydHVhbCBzaXplIGJveCBmb3IgbWVkaXVtIGFuZCBzbWFsbCBpY29ucyBmb3IgdmVydGljYWwgYWxpZ25tZW50XG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgPSBzdHlsZWQuZGl2PHtcbiAgc2l6ZT86IFByb21wdElucHV0U2l6ZXM7XG59PigoeyB0aGVtZSwgc2l6ZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSwgc2l6ZSksXG4gIHJpZ2h0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSwgc2l6ZSksXG4gIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkQ2xlYXJCdXR0b24gPSBzdHlsZWQoUGljdG9ncmFtQnV0dG9uKSgoeyB0aGVtZSwgYnV0dG9uU2l6ZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICB0b3A6XG4gICAgYnV0dG9uU2l6ZSA9PT0gXCJtXCJcbiAgICAgID8gdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zXG4gICAgICA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHMsXG59KSk7XG5cbmNvbnN0IFN0eWxlZFNsb3RzQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGRpc3BsYXk6IFwiZmxleFwiLFxuICBmbGV4V3JhcDogXCJ3cmFwXCIsXG4gIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG59KTtcblxuLy8gSXQgbmVlZHMgbWFyZ2luIGR1ZSB0byBlbXB0eSBjbGlja2FibGUgc3BhY2UgdGhhdCBmb2N1c2VzIHRoZSB0ZXh0YXJlYVxuLy8gU2xvdHMgc2hvdWxkIG5vdCBiZSBpbiB0aGUgZGl2LCBiZWNhdXNlIGFyZWEgYmV0d2VlbiBzaG91bGQgYmUgY2xpY2thYmxlIGFsc29cbnR5cGUgU2xvdFByb3BzID0ge1xuICBzaWRlPzogXCJyaWdodFwiO1xufTtcbmNvbnN0IFN0eWxlZFNsb3QgPSBzdHlsZWQuZGl2PFNsb3RQcm9wcz4oKHsgdGhlbWUsIHNpZGUgfSkgPT4gKHtcbiAgbWFyZ2luOiBgMCAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc30gJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnN9YCxcblxuICAuLi4oc2lkZSA9PT0gXCJyaWdodFwiICYmIHtcbiAgICBtYXJnaW5MZWZ0OiBcImF1dG9cIixcbiAgfSksXG59KSk7XG5cbnR5cGUgU2VuZEJ1dHRvblByb3BzID0gT21pdDxSb3VuZEJ1dHRvblByb3BzLCBcImljb25cIiB8IFwidmFyaWFudFwiIHwgXCJzaXplXCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIiB8IFwidm9pY2VcIjtcbn07XG5cbnR5cGUgQm90dG9tVG9vbGJhckNvbmZpZyA9IHtcbiAgLyoqIFRvb2xiYXIgZWxlbWVudHMgYmVsb3cgdGV4dCBhcmVhICovXG4gIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgaGVhZGVyPzogQmFzZVByb21wdElucHV0SGVhZGVyUHJvcHM7XG4gIHZhcmlhbnQ/OiBcImFpXCI7XG4gIHNraXBBSUFuaW1hdGlvbj86IGJvb2xlYW47XG4gIGJvdHRvbVRvb2xiYXI/OiBCb3R0b21Ub29sYmFyQ29uZmlnO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBTZW5kQnV0dG9uUHJvcHM7XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgY2xlYXJCdXR0b25BcmlhTGFiZWw/OiBzdHJpbmc7XG4gIGhpbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIC8qKiBTaG93cyBpbiB0aGUgY2xlYXIgYnV0dG9uIHNwYWNlIGluIGVtcHR5IHN0YXRlICovXG4gIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIC8qKiBTaXplIG9mIHRoZSBQcm9tcHRJbnB1dCAqL1xuICBzaXplPzogUHJvbXB0SW5wdXRTaXplcztcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiIHwgXCJzaXplXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyLFxuICAgICAgaXNQcm9jZXNzaW5nLFxuICAgICAgc2VuZEJ1dHRvblByb3BzLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBsZWZ0SWNvbixcbiAgICAgIGhlYWRlcixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIHZhcmlhbnQsXG4gICAgICBzaXplID0gXCJtXCIsXG4gICAgICBza2lwQUlBbmltYXRpb24gPSBmYWxzZSxcbiAgICAgIHJvd3MgPSAxLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGFuaW1hdGVkQm9yZGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIHVzZUFuaW1hdGVkQm9yZGVyKGFuaW1hdGVkQm9yZGVyUmVmLCB7XG4gICAgICBza2lwQW5pbWF0aW9uOiBza2lwQUlBbmltYXRpb24gfHwgdmFyaWFudCAhPT0gXCJhaVwiLFxuICAgICAgcmFkaXVzOiBzaXplID09PSBcIm1cIiA/IDEyIDogOCxcbiAgICAgIGl0ZXJhdGlvbnM6IDEsXG4gICAgfSk7XG5cbiAgICBjb25zdCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0U2VuZEJ1dHRvblByb3BzLFxuICAgICAgLi4uKHNlbmRCdXR0b25Qcm9wcyA/PyB7fSksXG4gICAgfTtcblxuICAgIGNvbnN0IGNsb3NlQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4oZmFsc2UpO1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3Qgb3BlbkF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKHRydWUpO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICAgIH1cbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXSk7XG5cbiAgICBjb25zdCBhY2NlcHRUZXh0U2VsZWN0aW9uID0gKCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IHZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0ICE9PSB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvbkVuZFxuICAgICAgKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG9wZW5BdXRvY29tcGxldGVMaXN0LCBjbG9zZUF1dG9jb21wbGV0ZUxpc3RdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgc2l6ZT17c2l6ZX0+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9e3NpemUgPT09IFwibVwiID8gXCJzXCIgOiBcInhzXCJ9XG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgaWNvbj1cIngtY2lyY2xlLWZpbGxlZFwiXG4gICAgICAgIGFyaWEtbGFiZWw9e2NsZWFyQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgIG9uQ2xpY2s9e29uQ2xlYXJ9XG4gICAgICAgIGJ1dHRvblNpemU9e3NpemV9XG4gICAgICAvPlxuICAgICkgOiAoXG4gICAgICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtXG4gICAgKTtcblxuICAgIGNvbnN0IGhpbnRFbG0gPSAhIWhpbnQgJiYgKFxuICAgICAgPElubGluZSBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIDxUZXh0IHNpemU9XCJzXCIgY29sb3I9XCJ0ZXJ0aWFyeVwiPlxuICAgICAgICAgIHtoaW50fVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0lubGluZT5cbiAgICApO1xuXG4gICAgY29uc3QgYm90dG9tVG9vbGJhckVsbSA9IChib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnQgfHxcbiAgICAgIGJvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50IHx8XG4gICAgICAhIXNlbmRCdXR0b25Qcm9wcykgJiYgKFxuICAgICAgPD5cbiAgICAgICAge2JvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICA8U3R5bGVkU2xvdD57Ym90dG9tVG9vbGJhci5sZWZ0Q29udGVudH08L1N0eWxlZFNsb3Q+XG4gICAgICAgICl9XG4gICAgICAgIDxTdHlsZWRTbG90IGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCIgc2lkZT1cInJpZ2h0XCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnR9XG4gICAgICAgICAgICB7c2VuZEJ1dHRvblByb3BzICYmIChcbiAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT17dmFyaWFudH0+XG4gICAgICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogaXNQcm9jZXNzaW5nXG4gICAgICAgICAgICAgICAgICAgICAgPyBcIlByb2Nlc3NpbmcgcXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICB7Li4ubWVyZ2VkU2VuZEJ1dHRvblByb3BzfVxuICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZSA9PT0gXCJtXCIgPyBcInNcIiA6IFwieHNcIn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXttZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWQgPz8gIXZhbHVlfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZEJ1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17XG4gICAgICAgICAgICAgICAgICAgIGlzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29uXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdWJUaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgPC8+XG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPVwiUHJvbXB0SW5wdXRcIlxuICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIGRpc2FibGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBhdXRvY29tcGxldGUgbGlzdFxuICAgICAgICAgIHRyYW5zbGF0ZT1cIm5vXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFjayBzcGFjZT1cInNcIj5cbiAgICAgICAgICAgIDxkaXYgcmVmPXthbmltYXRlZEJvcmRlclJlZn0+XG4gICAgICAgICAgICAgIDxTdWJUaGVtZVByb3ZpZGVyIG5hbWU9e3ZhcmlhbnR9PlxuICAgICAgICAgICAgICAgIDxDdXN0b21Db250YWluZXJcbiAgICAgICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17c2l6ZX1cbiAgICAgICAgICAgICAgICAgIGhpZGVCb3JkZXI9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgaGFzU2hhZG93XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT1cInVuc2V0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtoZWFkZXIgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFByb21wdElucHV0SGVhZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5oZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1c1NpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAge2xlZnRJY29uICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZExlZnRJY29uQ29udGFpbmVyIHNpemU9e3NpemV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtsZWZ0SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9e3Jvd3N9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L1N1YlRoZW1lUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9DdXN0b21Db250YWluZXI+XG4gICAgICAgICAgICAgIDwvU3ViVGhlbWVQcm92aWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNkVnQyJ9 */"),StyledLeftIconContainer=styled("div",{target:"ey62v592",label:"StyledLeftIconContainer"})(({theme,size})=>({display:"flex",position:"absolute",top:getPaddingVertical(theme,size),left:getPaddingHorizontal(theme,size),height:theme.variables.size.dimension.icon.m,alignItems:"center"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5cbmltcG9ydCB0eXBlIHsgUHJvbXB0VGV4dEFyZWFQcm9wcyB9IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQge1xuICBQcm9tcHRUZXh0QXJlYSxcbiAgZ2V0UGFkZGluZ0hvcml6b250YWwsXG4gIGdldFBhZGRpbmdWZXJ0aWNhbCxcbn0gZnJvbSBcIi4vUHJvbXB0VGV4dEFyZWFcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi9Db250YWluZXJcIjtcbmltcG9ydCB0eXBlIHsgQXV0b2NvbXBsZXRlTGlzdFByb3BzIH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuXG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdElucHV0U2l6ZXMgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgdHlwZSB7IFJvdW5kQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB7IFJvdW5kQnV0dG9uIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB0eXBlIHsgSWNvbk5hbWUgfSBmcm9tIFwiLi4vSWNvbi9JY29uXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgU3ViVGhlbWVQcm92aWRlciB9IGZyb20gXCIuLi9TdWJUaGVtZVByb3ZpZGVyL1N1YlRoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB7IHVzZUFuaW1hdGVkQm9yZGVyIH0gZnJvbSBcIi4uL1V0aWxpdGllcy9BbmltYXRlZEJvcmRlci91c2VBbmltYXRlZEJvcmRlclwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0SW5wdXRIZWFkZXIsXG4gIHR5cGUgQmFzZVByb21wdElucHV0SGVhZGVyUHJvcHMsXG59IGZyb20gXCIuL1Byb21wdElucHV0SGVhZGVyXCI7XG5cbmNvbnN0IEN1c3RvbUNvbnRhaW5lciA9IHN0eWxlZChDb250YWluZXIpPHtcbiAgaGlkZUJvcmRlcjogYm9vbGVhbjtcbiAgaGFzU2hhZG93OiBib29sZWFuO1xufT4oKHsgdGhlbWUsIGhpZGVCb3JkZXIsIGhhc1NoYWRvdyB9KSA9PiAoe1xuICBib3JkZXI6IGAxcHggc29saWQgJHt0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLnByaW1hcnkuZGVmYXVsdH1gLFxuICAuLi4oaGFzU2hhZG93ICYmIHtcbiAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5zaGFkb3cuZGVmYXVsdFJpbmcsXG4gICAgdHJhbnNpdGlvblByb3BlcnR5OiBcImJveC1zaGFkb3csIGJvcmRlci1jb2xvciwgb3V0bGluZS1jb2xvclwiLFxuICAgIHRyYW5zaXRpb25EdXJhdGlvbjogdGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5wcm9tcHRJbnB1dC5mb2N1cy5kdXJhdGlvbixcbiAgICB0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb246XG4gICAgICB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLnRpbWluZ0Z1bmN0aW9uLFxuICB9KSxcbiAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgIGJvcmRlckNvbG9yOiBcInRyYW5zcGFyZW50XCIsXG4gIH0pLFxuICBjdXJzb3I6IFwidGV4dFwiLFxuICBvdXRsaW5lQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgb3V0bGluZVdpZHRoOiAxLFxuICAgIG91dGxpbmVTdHlsZTogXCJzb2xpZFwiLFxuICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG4gICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICB9LFxufSkpO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuY29uc3QgU3R5bGVkTGVmdEljb25Db250YWluZXIgPSBzdHlsZWQuZGl2PHsgc2l6ZT86IFByb21wdElucHV0U2l6ZXMgfT4oXG4gICh7IHRoZW1lLCBzaXplIH0pID0+ICh7XG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSwgc2l6ZSksXG4gICAgbGVmdDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUsIHNpemUpLFxuICAgIGhlaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLmljb24ubSwgLy8gdmlydHVhbCBzaXplIGJveCBmb3IgbWVkaXVtIGFuZCBzbWFsbCBpY29ucyBmb3IgdmVydGljYWwgYWxpZ25tZW50XG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgPSBzdHlsZWQuZGl2PHtcbiAgc2l6ZT86IFByb21wdElucHV0U2l6ZXM7XG59PigoeyB0aGVtZSwgc2l6ZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSwgc2l6ZSksXG4gIHJpZ2h0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSwgc2l6ZSksXG4gIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkQ2xlYXJCdXR0b24gPSBzdHlsZWQoUGljdG9ncmFtQnV0dG9uKSgoeyB0aGVtZSwgYnV0dG9uU2l6ZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICB0b3A6XG4gICAgYnV0dG9uU2l6ZSA9PT0gXCJtXCJcbiAgICAgID8gdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zXG4gICAgICA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHMsXG59KSk7XG5cbmNvbnN0IFN0eWxlZFNsb3RzQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGRpc3BsYXk6IFwiZmxleFwiLFxuICBmbGV4V3JhcDogXCJ3cmFwXCIsXG4gIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG59KTtcblxuLy8gSXQgbmVlZHMgbWFyZ2luIGR1ZSB0byBlbXB0eSBjbGlja2FibGUgc3BhY2UgdGhhdCBmb2N1c2VzIHRoZSB0ZXh0YXJlYVxuLy8gU2xvdHMgc2hvdWxkIG5vdCBiZSBpbiB0aGUgZGl2LCBiZWNhdXNlIGFyZWEgYmV0d2VlbiBzaG91bGQgYmUgY2xpY2thYmxlIGFsc29cbnR5cGUgU2xvdFByb3BzID0ge1xuICBzaWRlPzogXCJyaWdodFwiO1xufTtcbmNvbnN0IFN0eWxlZFNsb3QgPSBzdHlsZWQuZGl2PFNsb3RQcm9wcz4oKHsgdGhlbWUsIHNpZGUgfSkgPT4gKHtcbiAgbWFyZ2luOiBgMCAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc30gJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnN9YCxcblxuICAuLi4oc2lkZSA9PT0gXCJyaWdodFwiICYmIHtcbiAgICBtYXJnaW5MZWZ0OiBcImF1dG9cIixcbiAgfSksXG59KSk7XG5cbnR5cGUgU2VuZEJ1dHRvblByb3BzID0gT21pdDxSb3VuZEJ1dHRvblByb3BzLCBcImljb25cIiB8IFwidmFyaWFudFwiIHwgXCJzaXplXCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIiB8IFwidm9pY2VcIjtcbn07XG5cbnR5cGUgQm90dG9tVG9vbGJhckNvbmZpZyA9IHtcbiAgLyoqIFRvb2xiYXIgZWxlbWVudHMgYmVsb3cgdGV4dCBhcmVhICovXG4gIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgaGVhZGVyPzogQmFzZVByb21wdElucHV0SGVhZGVyUHJvcHM7XG4gIHZhcmlhbnQ/OiBcImFpXCI7XG4gIHNraXBBSUFuaW1hdGlvbj86IGJvb2xlYW47XG4gIGJvdHRvbVRvb2xiYXI/OiBCb3R0b21Ub29sYmFyQ29uZmlnO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBTZW5kQnV0dG9uUHJvcHM7XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgY2xlYXJCdXR0b25BcmlhTGFiZWw/OiBzdHJpbmc7XG4gIGhpbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIC8qKiBTaG93cyBpbiB0aGUgY2xlYXIgYnV0dG9uIHNwYWNlIGluIGVtcHR5IHN0YXRlICovXG4gIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIC8qKiBTaXplIG9mIHRoZSBQcm9tcHRJbnB1dCAqL1xuICBzaXplPzogUHJvbXB0SW5wdXRTaXplcztcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiIHwgXCJzaXplXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyLFxuICAgICAgaXNQcm9jZXNzaW5nLFxuICAgICAgc2VuZEJ1dHRvblByb3BzLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBsZWZ0SWNvbixcbiAgICAgIGhlYWRlcixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIHZhcmlhbnQsXG4gICAgICBzaXplID0gXCJtXCIsXG4gICAgICBza2lwQUlBbmltYXRpb24gPSBmYWxzZSxcbiAgICAgIHJvd3MgPSAxLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGFuaW1hdGVkQm9yZGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIHVzZUFuaW1hdGVkQm9yZGVyKGFuaW1hdGVkQm9yZGVyUmVmLCB7XG4gICAgICBza2lwQW5pbWF0aW9uOiBza2lwQUlBbmltYXRpb24gfHwgdmFyaWFudCAhPT0gXCJhaVwiLFxuICAgICAgcmFkaXVzOiBzaXplID09PSBcIm1cIiA/IDEyIDogOCxcbiAgICAgIGl0ZXJhdGlvbnM6IDEsXG4gICAgfSk7XG5cbiAgICBjb25zdCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0U2VuZEJ1dHRvblByb3BzLFxuICAgICAgLi4uKHNlbmRCdXR0b25Qcm9wcyA/PyB7fSksXG4gICAgfTtcblxuICAgIGNvbnN0IGNsb3NlQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4oZmFsc2UpO1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3Qgb3BlbkF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKHRydWUpO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICAgIH1cbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXSk7XG5cbiAgICBjb25zdCBhY2NlcHRUZXh0U2VsZWN0aW9uID0gKCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IHZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0ICE9PSB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvbkVuZFxuICAgICAgKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG9wZW5BdXRvY29tcGxldGVMaXN0LCBjbG9zZUF1dG9jb21wbGV0ZUxpc3RdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgc2l6ZT17c2l6ZX0+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9e3NpemUgPT09IFwibVwiID8gXCJzXCIgOiBcInhzXCJ9XG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgaWNvbj1cIngtY2lyY2xlLWZpbGxlZFwiXG4gICAgICAgIGFyaWEtbGFiZWw9e2NsZWFyQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgIG9uQ2xpY2s9e29uQ2xlYXJ9XG4gICAgICAgIGJ1dHRvblNpemU9e3NpemV9XG4gICAgICAvPlxuICAgICkgOiAoXG4gICAgICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtXG4gICAgKTtcblxuICAgIGNvbnN0IGhpbnRFbG0gPSAhIWhpbnQgJiYgKFxuICAgICAgPElubGluZSBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIDxUZXh0IHNpemU9XCJzXCIgY29sb3I9XCJ0ZXJ0aWFyeVwiPlxuICAgICAgICAgIHtoaW50fVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0lubGluZT5cbiAgICApO1xuXG4gICAgY29uc3QgYm90dG9tVG9vbGJhckVsbSA9IChib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnQgfHxcbiAgICAgIGJvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50IHx8XG4gICAgICAhIXNlbmRCdXR0b25Qcm9wcykgJiYgKFxuICAgICAgPD5cbiAgICAgICAge2JvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICA8U3R5bGVkU2xvdD57Ym90dG9tVG9vbGJhci5sZWZ0Q29udGVudH08L1N0eWxlZFNsb3Q+XG4gICAgICAgICl9XG4gICAgICAgIDxTdHlsZWRTbG90IGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCIgc2lkZT1cInJpZ2h0XCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnR9XG4gICAgICAgICAgICB7c2VuZEJ1dHRvblByb3BzICYmIChcbiAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT17dmFyaWFudH0+XG4gICAgICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogaXNQcm9jZXNzaW5nXG4gICAgICAgICAgICAgICAgICAgICAgPyBcIlByb2Nlc3NpbmcgcXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICB7Li4ubWVyZ2VkU2VuZEJ1dHRvblByb3BzfVxuICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZSA9PT0gXCJtXCIgPyBcInNcIiA6IFwieHNcIn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXttZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWQgPz8gIXZhbHVlfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZEJ1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17XG4gICAgICAgICAgICAgICAgICAgIGlzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29uXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdWJUaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgPC8+XG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPVwiUHJvbXB0SW5wdXRcIlxuICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIGRpc2FibGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBhdXRvY29tcGxldGUgbGlzdFxuICAgICAgICAgIHRyYW5zbGF0ZT1cIm5vXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFjayBzcGFjZT1cInNcIj5cbiAgICAgICAgICAgIDxkaXYgcmVmPXthbmltYXRlZEJvcmRlclJlZn0+XG4gICAgICAgICAgICAgIDxTdWJUaGVtZVByb3ZpZGVyIG5hbWU9e3ZhcmlhbnR9PlxuICAgICAgICAgICAgICAgIDxDdXN0b21Db250YWluZXJcbiAgICAgICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17c2l6ZX1cbiAgICAgICAgICAgICAgICAgIGhpZGVCb3JkZXI9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgaGFzU2hhZG93XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT1cInVuc2V0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtoZWFkZXIgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFByb21wdElucHV0SGVhZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5oZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1c1NpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAge2xlZnRJY29uICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZExlZnRJY29uQ29udGFpbmVyIHNpemU9e3NpemV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtsZWZ0SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9e3Jvd3N9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L1N1YlRoZW1lUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9DdXN0b21Db250YWluZXI+XG4gICAgICAgICAgICAgIDwvU3ViVGhlbWVQcm92aWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbUZnQyJ9 */"),StyledEmptyStateTopRightContentContainer=styled("div",{target:"ey62v593",label:"StyledEmptyStateTopRightContentContainer"})(({theme,size})=>({position:"absolute",top:getPaddingVertical(theme,size),right:getPaddingHorizontal(theme,size),userSelect:"none",pointerEvents:"none"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5cbmltcG9ydCB0eXBlIHsgUHJvbXB0VGV4dEFyZWFQcm9wcyB9IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQge1xuICBQcm9tcHRUZXh0QXJlYSxcbiAgZ2V0UGFkZGluZ0hvcml6b250YWwsXG4gIGdldFBhZGRpbmdWZXJ0aWNhbCxcbn0gZnJvbSBcIi4vUHJvbXB0VGV4dEFyZWFcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi9Db250YWluZXJcIjtcbmltcG9ydCB0eXBlIHsgQXV0b2NvbXBsZXRlTGlzdFByb3BzIH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuXG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdElucHV0U2l6ZXMgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgdHlwZSB7IFJvdW5kQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB7IFJvdW5kQnV0dG9uIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB0eXBlIHsgSWNvbk5hbWUgfSBmcm9tIFwiLi4vSWNvbi9JY29uXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgU3ViVGhlbWVQcm92aWRlciB9IGZyb20gXCIuLi9TdWJUaGVtZVByb3ZpZGVyL1N1YlRoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB7IHVzZUFuaW1hdGVkQm9yZGVyIH0gZnJvbSBcIi4uL1V0aWxpdGllcy9BbmltYXRlZEJvcmRlci91c2VBbmltYXRlZEJvcmRlclwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0SW5wdXRIZWFkZXIsXG4gIHR5cGUgQmFzZVByb21wdElucHV0SGVhZGVyUHJvcHMsXG59IGZyb20gXCIuL1Byb21wdElucHV0SGVhZGVyXCI7XG5cbmNvbnN0IEN1c3RvbUNvbnRhaW5lciA9IHN0eWxlZChDb250YWluZXIpPHtcbiAgaGlkZUJvcmRlcjogYm9vbGVhbjtcbiAgaGFzU2hhZG93OiBib29sZWFuO1xufT4oKHsgdGhlbWUsIGhpZGVCb3JkZXIsIGhhc1NoYWRvdyB9KSA9PiAoe1xuICBib3JkZXI6IGAxcHggc29saWQgJHt0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLnByaW1hcnkuZGVmYXVsdH1gLFxuICAuLi4oaGFzU2hhZG93ICYmIHtcbiAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5zaGFkb3cuZGVmYXVsdFJpbmcsXG4gICAgdHJhbnNpdGlvblByb3BlcnR5OiBcImJveC1zaGFkb3csIGJvcmRlci1jb2xvciwgb3V0bGluZS1jb2xvclwiLFxuICAgIHRyYW5zaXRpb25EdXJhdGlvbjogdGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5wcm9tcHRJbnB1dC5mb2N1cy5kdXJhdGlvbixcbiAgICB0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb246XG4gICAgICB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLnRpbWluZ0Z1bmN0aW9uLFxuICB9KSxcbiAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgIGJvcmRlckNvbG9yOiBcInRyYW5zcGFyZW50XCIsXG4gIH0pLFxuICBjdXJzb3I6IFwidGV4dFwiLFxuICBvdXRsaW5lQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgb3V0bGluZVdpZHRoOiAxLFxuICAgIG91dGxpbmVTdHlsZTogXCJzb2xpZFwiLFxuICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG4gICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICB9LFxufSkpO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuY29uc3QgU3R5bGVkTGVmdEljb25Db250YWluZXIgPSBzdHlsZWQuZGl2PHsgc2l6ZT86IFByb21wdElucHV0U2l6ZXMgfT4oXG4gICh7IHRoZW1lLCBzaXplIH0pID0+ICh7XG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSwgc2l6ZSksXG4gICAgbGVmdDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUsIHNpemUpLFxuICAgIGhlaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLmljb24ubSwgLy8gdmlydHVhbCBzaXplIGJveCBmb3IgbWVkaXVtIGFuZCBzbWFsbCBpY29ucyBmb3IgdmVydGljYWwgYWxpZ25tZW50XG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgPSBzdHlsZWQuZGl2PHtcbiAgc2l6ZT86IFByb21wdElucHV0U2l6ZXM7XG59PigoeyB0aGVtZSwgc2l6ZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSwgc2l6ZSksXG4gIHJpZ2h0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSwgc2l6ZSksXG4gIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkQ2xlYXJCdXR0b24gPSBzdHlsZWQoUGljdG9ncmFtQnV0dG9uKSgoeyB0aGVtZSwgYnV0dG9uU2l6ZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICB0b3A6XG4gICAgYnV0dG9uU2l6ZSA9PT0gXCJtXCJcbiAgICAgID8gdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zXG4gICAgICA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHMsXG59KSk7XG5cbmNvbnN0IFN0eWxlZFNsb3RzQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGRpc3BsYXk6IFwiZmxleFwiLFxuICBmbGV4V3JhcDogXCJ3cmFwXCIsXG4gIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG59KTtcblxuLy8gSXQgbmVlZHMgbWFyZ2luIGR1ZSB0byBlbXB0eSBjbGlja2FibGUgc3BhY2UgdGhhdCBmb2N1c2VzIHRoZSB0ZXh0YXJlYVxuLy8gU2xvdHMgc2hvdWxkIG5vdCBiZSBpbiB0aGUgZGl2LCBiZWNhdXNlIGFyZWEgYmV0d2VlbiBzaG91bGQgYmUgY2xpY2thYmxlIGFsc29cbnR5cGUgU2xvdFByb3BzID0ge1xuICBzaWRlPzogXCJyaWdodFwiO1xufTtcbmNvbnN0IFN0eWxlZFNsb3QgPSBzdHlsZWQuZGl2PFNsb3RQcm9wcz4oKHsgdGhlbWUsIHNpZGUgfSkgPT4gKHtcbiAgbWFyZ2luOiBgMCAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc30gJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnN9YCxcblxuICAuLi4oc2lkZSA9PT0gXCJyaWdodFwiICYmIHtcbiAgICBtYXJnaW5MZWZ0OiBcImF1dG9cIixcbiAgfSksXG59KSk7XG5cbnR5cGUgU2VuZEJ1dHRvblByb3BzID0gT21pdDxSb3VuZEJ1dHRvblByb3BzLCBcImljb25cIiB8IFwidmFyaWFudFwiIHwgXCJzaXplXCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIiB8IFwidm9pY2VcIjtcbn07XG5cbnR5cGUgQm90dG9tVG9vbGJhckNvbmZpZyA9IHtcbiAgLyoqIFRvb2xiYXIgZWxlbWVudHMgYmVsb3cgdGV4dCBhcmVhICovXG4gIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgaGVhZGVyPzogQmFzZVByb21wdElucHV0SGVhZGVyUHJvcHM7XG4gIHZhcmlhbnQ/OiBcImFpXCI7XG4gIHNraXBBSUFuaW1hdGlvbj86IGJvb2xlYW47XG4gIGJvdHRvbVRvb2xiYXI/OiBCb3R0b21Ub29sYmFyQ29uZmlnO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBTZW5kQnV0dG9uUHJvcHM7XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgY2xlYXJCdXR0b25BcmlhTGFiZWw/OiBzdHJpbmc7XG4gIGhpbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIC8qKiBTaG93cyBpbiB0aGUgY2xlYXIgYnV0dG9uIHNwYWNlIGluIGVtcHR5IHN0YXRlICovXG4gIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIC8qKiBTaXplIG9mIHRoZSBQcm9tcHRJbnB1dCAqL1xuICBzaXplPzogUHJvbXB0SW5wdXRTaXplcztcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiIHwgXCJzaXplXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyLFxuICAgICAgaXNQcm9jZXNzaW5nLFxuICAgICAgc2VuZEJ1dHRvblByb3BzLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBsZWZ0SWNvbixcbiAgICAgIGhlYWRlcixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIHZhcmlhbnQsXG4gICAgICBzaXplID0gXCJtXCIsXG4gICAgICBza2lwQUlBbmltYXRpb24gPSBmYWxzZSxcbiAgICAgIHJvd3MgPSAxLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGFuaW1hdGVkQm9yZGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIHVzZUFuaW1hdGVkQm9yZGVyKGFuaW1hdGVkQm9yZGVyUmVmLCB7XG4gICAgICBza2lwQW5pbWF0aW9uOiBza2lwQUlBbmltYXRpb24gfHwgdmFyaWFudCAhPT0gXCJhaVwiLFxuICAgICAgcmFkaXVzOiBzaXplID09PSBcIm1cIiA/IDEyIDogOCxcbiAgICAgIGl0ZXJhdGlvbnM6IDEsXG4gICAgfSk7XG5cbiAgICBjb25zdCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0U2VuZEJ1dHRvblByb3BzLFxuICAgICAgLi4uKHNlbmRCdXR0b25Qcm9wcyA/PyB7fSksXG4gICAgfTtcblxuICAgIGNvbnN0IGNsb3NlQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4oZmFsc2UpO1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3Qgb3BlbkF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKHRydWUpO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICAgIH1cbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXSk7XG5cbiAgICBjb25zdCBhY2NlcHRUZXh0U2VsZWN0aW9uID0gKCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IHZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0ICE9PSB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvbkVuZFxuICAgICAgKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG9wZW5BdXRvY29tcGxldGVMaXN0LCBjbG9zZUF1dG9jb21wbGV0ZUxpc3RdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgc2l6ZT17c2l6ZX0+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9e3NpemUgPT09IFwibVwiID8gXCJzXCIgOiBcInhzXCJ9XG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgaWNvbj1cIngtY2lyY2xlLWZpbGxlZFwiXG4gICAgICAgIGFyaWEtbGFiZWw9e2NsZWFyQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgIG9uQ2xpY2s9e29uQ2xlYXJ9XG4gICAgICAgIGJ1dHRvblNpemU9e3NpemV9XG4gICAgICAvPlxuICAgICkgOiAoXG4gICAgICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtXG4gICAgKTtcblxuICAgIGNvbnN0IGhpbnRFbG0gPSAhIWhpbnQgJiYgKFxuICAgICAgPElubGluZSBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIDxUZXh0IHNpemU9XCJzXCIgY29sb3I9XCJ0ZXJ0aWFyeVwiPlxuICAgICAgICAgIHtoaW50fVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0lubGluZT5cbiAgICApO1xuXG4gICAgY29uc3QgYm90dG9tVG9vbGJhckVsbSA9IChib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnQgfHxcbiAgICAgIGJvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50IHx8XG4gICAgICAhIXNlbmRCdXR0b25Qcm9wcykgJiYgKFxuICAgICAgPD5cbiAgICAgICAge2JvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICA8U3R5bGVkU2xvdD57Ym90dG9tVG9vbGJhci5sZWZ0Q29udGVudH08L1N0eWxlZFNsb3Q+XG4gICAgICAgICl9XG4gICAgICAgIDxTdHlsZWRTbG90IGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCIgc2lkZT1cInJpZ2h0XCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnR9XG4gICAgICAgICAgICB7c2VuZEJ1dHRvblByb3BzICYmIChcbiAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT17dmFyaWFudH0+XG4gICAgICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogaXNQcm9jZXNzaW5nXG4gICAgICAgICAgICAgICAgICAgICAgPyBcIlByb2Nlc3NpbmcgcXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICB7Li4ubWVyZ2VkU2VuZEJ1dHRvblByb3BzfVxuICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZSA9PT0gXCJtXCIgPyBcInNcIiA6IFwieHNcIn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXttZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWQgPz8gIXZhbHVlfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZEJ1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17XG4gICAgICAgICAgICAgICAgICAgIGlzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29uXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdWJUaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgPC8+XG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPVwiUHJvbXB0SW5wdXRcIlxuICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIGRpc2FibGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBhdXRvY29tcGxldGUgbGlzdFxuICAgICAgICAgIHRyYW5zbGF0ZT1cIm5vXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFjayBzcGFjZT1cInNcIj5cbiAgICAgICAgICAgIDxkaXYgcmVmPXthbmltYXRlZEJvcmRlclJlZn0+XG4gICAgICAgICAgICAgIDxTdWJUaGVtZVByb3ZpZGVyIG5hbWU9e3ZhcmlhbnR9PlxuICAgICAgICAgICAgICAgIDxDdXN0b21Db250YWluZXJcbiAgICAgICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17c2l6ZX1cbiAgICAgICAgICAgICAgICAgIGhpZGVCb3JkZXI9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgaGFzU2hhZG93XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT1cInVuc2V0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtoZWFkZXIgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFByb21wdElucHV0SGVhZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5oZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1c1NpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAge2xlZnRJY29uICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZExlZnRJY29uQ29udGFpbmVyIHNpemU9e3NpemV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtsZWZ0SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9e3Jvd3N9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L1N1YlRoZW1lUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9DdXN0b21Db250YWluZXI+XG4gICAgICAgICAgICAgIDwvU3ViVGhlbWVQcm92aWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOEZpRCJ9 */"),StyledClearButton=styled(PictogramButton,{target:"ey62v594",label:"StyledClearButton"})(({theme,buttonSize})=>({position:"absolute",right:theme.variables.size.spacing.s,top:"m"===buttonSize?theme.variables.size.spacing.s:theme.variables.size.spacing.xs}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5cbmltcG9ydCB0eXBlIHsgUHJvbXB0VGV4dEFyZWFQcm9wcyB9IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQge1xuICBQcm9tcHRUZXh0QXJlYSxcbiAgZ2V0UGFkZGluZ0hvcml6b250YWwsXG4gIGdldFBhZGRpbmdWZXJ0aWNhbCxcbn0gZnJvbSBcIi4vUHJvbXB0VGV4dEFyZWFcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi9Db250YWluZXJcIjtcbmltcG9ydCB0eXBlIHsgQXV0b2NvbXBsZXRlTGlzdFByb3BzIH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuXG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdElucHV0U2l6ZXMgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgdHlwZSB7IFJvdW5kQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB7IFJvdW5kQnV0dG9uIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB0eXBlIHsgSWNvbk5hbWUgfSBmcm9tIFwiLi4vSWNvbi9JY29uXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgU3ViVGhlbWVQcm92aWRlciB9IGZyb20gXCIuLi9TdWJUaGVtZVByb3ZpZGVyL1N1YlRoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB7IHVzZUFuaW1hdGVkQm9yZGVyIH0gZnJvbSBcIi4uL1V0aWxpdGllcy9BbmltYXRlZEJvcmRlci91c2VBbmltYXRlZEJvcmRlclwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0SW5wdXRIZWFkZXIsXG4gIHR5cGUgQmFzZVByb21wdElucHV0SGVhZGVyUHJvcHMsXG59IGZyb20gXCIuL1Byb21wdElucHV0SGVhZGVyXCI7XG5cbmNvbnN0IEN1c3RvbUNvbnRhaW5lciA9IHN0eWxlZChDb250YWluZXIpPHtcbiAgaGlkZUJvcmRlcjogYm9vbGVhbjtcbiAgaGFzU2hhZG93OiBib29sZWFuO1xufT4oKHsgdGhlbWUsIGhpZGVCb3JkZXIsIGhhc1NoYWRvdyB9KSA9PiAoe1xuICBib3JkZXI6IGAxcHggc29saWQgJHt0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLnByaW1hcnkuZGVmYXVsdH1gLFxuICAuLi4oaGFzU2hhZG93ICYmIHtcbiAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5zaGFkb3cuZGVmYXVsdFJpbmcsXG4gICAgdHJhbnNpdGlvblByb3BlcnR5OiBcImJveC1zaGFkb3csIGJvcmRlci1jb2xvciwgb3V0bGluZS1jb2xvclwiLFxuICAgIHRyYW5zaXRpb25EdXJhdGlvbjogdGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5wcm9tcHRJbnB1dC5mb2N1cy5kdXJhdGlvbixcbiAgICB0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb246XG4gICAgICB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLnRpbWluZ0Z1bmN0aW9uLFxuICB9KSxcbiAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgIGJvcmRlckNvbG9yOiBcInRyYW5zcGFyZW50XCIsXG4gIH0pLFxuICBjdXJzb3I6IFwidGV4dFwiLFxuICBvdXRsaW5lQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgb3V0bGluZVdpZHRoOiAxLFxuICAgIG91dGxpbmVTdHlsZTogXCJzb2xpZFwiLFxuICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG4gICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICB9LFxufSkpO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuY29uc3QgU3R5bGVkTGVmdEljb25Db250YWluZXIgPSBzdHlsZWQuZGl2PHsgc2l6ZT86IFByb21wdElucHV0U2l6ZXMgfT4oXG4gICh7IHRoZW1lLCBzaXplIH0pID0+ICh7XG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSwgc2l6ZSksXG4gICAgbGVmdDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUsIHNpemUpLFxuICAgIGhlaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLmljb24ubSwgLy8gdmlydHVhbCBzaXplIGJveCBmb3IgbWVkaXVtIGFuZCBzbWFsbCBpY29ucyBmb3IgdmVydGljYWwgYWxpZ25tZW50XG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgPSBzdHlsZWQuZGl2PHtcbiAgc2l6ZT86IFByb21wdElucHV0U2l6ZXM7XG59PigoeyB0aGVtZSwgc2l6ZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSwgc2l6ZSksXG4gIHJpZ2h0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSwgc2l6ZSksXG4gIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkQ2xlYXJCdXR0b24gPSBzdHlsZWQoUGljdG9ncmFtQnV0dG9uKSgoeyB0aGVtZSwgYnV0dG9uU2l6ZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICB0b3A6XG4gICAgYnV0dG9uU2l6ZSA9PT0gXCJtXCJcbiAgICAgID8gdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zXG4gICAgICA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHMsXG59KSk7XG5cbmNvbnN0IFN0eWxlZFNsb3RzQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGRpc3BsYXk6IFwiZmxleFwiLFxuICBmbGV4V3JhcDogXCJ3cmFwXCIsXG4gIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG59KTtcblxuLy8gSXQgbmVlZHMgbWFyZ2luIGR1ZSB0byBlbXB0eSBjbGlja2FibGUgc3BhY2UgdGhhdCBmb2N1c2VzIHRoZSB0ZXh0YXJlYVxuLy8gU2xvdHMgc2hvdWxkIG5vdCBiZSBpbiB0aGUgZGl2LCBiZWNhdXNlIGFyZWEgYmV0d2VlbiBzaG91bGQgYmUgY2xpY2thYmxlIGFsc29cbnR5cGUgU2xvdFByb3BzID0ge1xuICBzaWRlPzogXCJyaWdodFwiO1xufTtcbmNvbnN0IFN0eWxlZFNsb3QgPSBzdHlsZWQuZGl2PFNsb3RQcm9wcz4oKHsgdGhlbWUsIHNpZGUgfSkgPT4gKHtcbiAgbWFyZ2luOiBgMCAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc30gJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnN9YCxcblxuICAuLi4oc2lkZSA9PT0gXCJyaWdodFwiICYmIHtcbiAgICBtYXJnaW5MZWZ0OiBcImF1dG9cIixcbiAgfSksXG59KSk7XG5cbnR5cGUgU2VuZEJ1dHRvblByb3BzID0gT21pdDxSb3VuZEJ1dHRvblByb3BzLCBcImljb25cIiB8IFwidmFyaWFudFwiIHwgXCJzaXplXCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIiB8IFwidm9pY2VcIjtcbn07XG5cbnR5cGUgQm90dG9tVG9vbGJhckNvbmZpZyA9IHtcbiAgLyoqIFRvb2xiYXIgZWxlbWVudHMgYmVsb3cgdGV4dCBhcmVhICovXG4gIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgaGVhZGVyPzogQmFzZVByb21wdElucHV0SGVhZGVyUHJvcHM7XG4gIHZhcmlhbnQ/OiBcImFpXCI7XG4gIHNraXBBSUFuaW1hdGlvbj86IGJvb2xlYW47XG4gIGJvdHRvbVRvb2xiYXI/OiBCb3R0b21Ub29sYmFyQ29uZmlnO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBTZW5kQnV0dG9uUHJvcHM7XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgY2xlYXJCdXR0b25BcmlhTGFiZWw/OiBzdHJpbmc7XG4gIGhpbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIC8qKiBTaG93cyBpbiB0aGUgY2xlYXIgYnV0dG9uIHNwYWNlIGluIGVtcHR5IHN0YXRlICovXG4gIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIC8qKiBTaXplIG9mIHRoZSBQcm9tcHRJbnB1dCAqL1xuICBzaXplPzogUHJvbXB0SW5wdXRTaXplcztcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiIHwgXCJzaXplXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyLFxuICAgICAgaXNQcm9jZXNzaW5nLFxuICAgICAgc2VuZEJ1dHRvblByb3BzLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBsZWZ0SWNvbixcbiAgICAgIGhlYWRlcixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIHZhcmlhbnQsXG4gICAgICBzaXplID0gXCJtXCIsXG4gICAgICBza2lwQUlBbmltYXRpb24gPSBmYWxzZSxcbiAgICAgIHJvd3MgPSAxLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGFuaW1hdGVkQm9yZGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIHVzZUFuaW1hdGVkQm9yZGVyKGFuaW1hdGVkQm9yZGVyUmVmLCB7XG4gICAgICBza2lwQW5pbWF0aW9uOiBza2lwQUlBbmltYXRpb24gfHwgdmFyaWFudCAhPT0gXCJhaVwiLFxuICAgICAgcmFkaXVzOiBzaXplID09PSBcIm1cIiA/IDEyIDogOCxcbiAgICAgIGl0ZXJhdGlvbnM6IDEsXG4gICAgfSk7XG5cbiAgICBjb25zdCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0U2VuZEJ1dHRvblByb3BzLFxuICAgICAgLi4uKHNlbmRCdXR0b25Qcm9wcyA/PyB7fSksXG4gICAgfTtcblxuICAgIGNvbnN0IGNsb3NlQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4oZmFsc2UpO1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3Qgb3BlbkF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKHRydWUpO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICAgIH1cbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXSk7XG5cbiAgICBjb25zdCBhY2NlcHRUZXh0U2VsZWN0aW9uID0gKCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IHZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0ICE9PSB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvbkVuZFxuICAgICAgKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG9wZW5BdXRvY29tcGxldGVMaXN0LCBjbG9zZUF1dG9jb21wbGV0ZUxpc3RdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgc2l6ZT17c2l6ZX0+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9e3NpemUgPT09IFwibVwiID8gXCJzXCIgOiBcInhzXCJ9XG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgaWNvbj1cIngtY2lyY2xlLWZpbGxlZFwiXG4gICAgICAgIGFyaWEtbGFiZWw9e2NsZWFyQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgIG9uQ2xpY2s9e29uQ2xlYXJ9XG4gICAgICAgIGJ1dHRvblNpemU9e3NpemV9XG4gICAgICAvPlxuICAgICkgOiAoXG4gICAgICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtXG4gICAgKTtcblxuICAgIGNvbnN0IGhpbnRFbG0gPSAhIWhpbnQgJiYgKFxuICAgICAgPElubGluZSBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIDxUZXh0IHNpemU9XCJzXCIgY29sb3I9XCJ0ZXJ0aWFyeVwiPlxuICAgICAgICAgIHtoaW50fVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0lubGluZT5cbiAgICApO1xuXG4gICAgY29uc3QgYm90dG9tVG9vbGJhckVsbSA9IChib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnQgfHxcbiAgICAgIGJvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50IHx8XG4gICAgICAhIXNlbmRCdXR0b25Qcm9wcykgJiYgKFxuICAgICAgPD5cbiAgICAgICAge2JvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICA8U3R5bGVkU2xvdD57Ym90dG9tVG9vbGJhci5sZWZ0Q29udGVudH08L1N0eWxlZFNsb3Q+XG4gICAgICAgICl9XG4gICAgICAgIDxTdHlsZWRTbG90IGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCIgc2lkZT1cInJpZ2h0XCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnR9XG4gICAgICAgICAgICB7c2VuZEJ1dHRvblByb3BzICYmIChcbiAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT17dmFyaWFudH0+XG4gICAgICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogaXNQcm9jZXNzaW5nXG4gICAgICAgICAgICAgICAgICAgICAgPyBcIlByb2Nlc3NpbmcgcXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICB7Li4ubWVyZ2VkU2VuZEJ1dHRvblByb3BzfVxuICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZSA9PT0gXCJtXCIgPyBcInNcIiA6IFwieHNcIn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXttZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWQgPz8gIXZhbHVlfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZEJ1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17XG4gICAgICAgICAgICAgICAgICAgIGlzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29uXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdWJUaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgPC8+XG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPVwiUHJvbXB0SW5wdXRcIlxuICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIGRpc2FibGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBhdXRvY29tcGxldGUgbGlzdFxuICAgICAgICAgIHRyYW5zbGF0ZT1cIm5vXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFjayBzcGFjZT1cInNcIj5cbiAgICAgICAgICAgIDxkaXYgcmVmPXthbmltYXRlZEJvcmRlclJlZn0+XG4gICAgICAgICAgICAgIDxTdWJUaGVtZVByb3ZpZGVyIG5hbWU9e3ZhcmlhbnR9PlxuICAgICAgICAgICAgICAgIDxDdXN0b21Db250YWluZXJcbiAgICAgICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17c2l6ZX1cbiAgICAgICAgICAgICAgICAgIGhpZGVCb3JkZXI9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgaGFzU2hhZG93XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT1cInVuc2V0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtoZWFkZXIgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFByb21wdElucHV0SGVhZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5oZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1c1NpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAge2xlZnRJY29uICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZExlZnRJY29uQ29udGFpbmVyIHNpemU9e3NpemV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtsZWZ0SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9e3Jvd3N9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L1N1YlRoZW1lUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9DdXN0b21Db250YWluZXI+XG4gICAgICAgICAgICAgIDwvU3ViVGhlbWVQcm92aWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0cwQiJ9 */"),StyledSlotsContainer=styled("div",{target:"ey62v595",label:"StyledSlotsContainer"})({display:"flex",flexWrap:"wrap",alignItems:"center"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5cbmltcG9ydCB0eXBlIHsgUHJvbXB0VGV4dEFyZWFQcm9wcyB9IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQge1xuICBQcm9tcHRUZXh0QXJlYSxcbiAgZ2V0UGFkZGluZ0hvcml6b250YWwsXG4gIGdldFBhZGRpbmdWZXJ0aWNhbCxcbn0gZnJvbSBcIi4vUHJvbXB0VGV4dEFyZWFcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi9Db250YWluZXJcIjtcbmltcG9ydCB0eXBlIHsgQXV0b2NvbXBsZXRlTGlzdFByb3BzIH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuXG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdElucHV0U2l6ZXMgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgdHlwZSB7IFJvdW5kQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB7IFJvdW5kQnV0dG9uIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB0eXBlIHsgSWNvbk5hbWUgfSBmcm9tIFwiLi4vSWNvbi9JY29uXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgU3ViVGhlbWVQcm92aWRlciB9IGZyb20gXCIuLi9TdWJUaGVtZVByb3ZpZGVyL1N1YlRoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB7IHVzZUFuaW1hdGVkQm9yZGVyIH0gZnJvbSBcIi4uL1V0aWxpdGllcy9BbmltYXRlZEJvcmRlci91c2VBbmltYXRlZEJvcmRlclwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0SW5wdXRIZWFkZXIsXG4gIHR5cGUgQmFzZVByb21wdElucHV0SGVhZGVyUHJvcHMsXG59IGZyb20gXCIuL1Byb21wdElucHV0SGVhZGVyXCI7XG5cbmNvbnN0IEN1c3RvbUNvbnRhaW5lciA9IHN0eWxlZChDb250YWluZXIpPHtcbiAgaGlkZUJvcmRlcjogYm9vbGVhbjtcbiAgaGFzU2hhZG93OiBib29sZWFuO1xufT4oKHsgdGhlbWUsIGhpZGVCb3JkZXIsIGhhc1NoYWRvdyB9KSA9PiAoe1xuICBib3JkZXI6IGAxcHggc29saWQgJHt0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLnByaW1hcnkuZGVmYXVsdH1gLFxuICAuLi4oaGFzU2hhZG93ICYmIHtcbiAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5zaGFkb3cuZGVmYXVsdFJpbmcsXG4gICAgdHJhbnNpdGlvblByb3BlcnR5OiBcImJveC1zaGFkb3csIGJvcmRlci1jb2xvciwgb3V0bGluZS1jb2xvclwiLFxuICAgIHRyYW5zaXRpb25EdXJhdGlvbjogdGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5wcm9tcHRJbnB1dC5mb2N1cy5kdXJhdGlvbixcbiAgICB0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb246XG4gICAgICB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLnRpbWluZ0Z1bmN0aW9uLFxuICB9KSxcbiAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgIGJvcmRlckNvbG9yOiBcInRyYW5zcGFyZW50XCIsXG4gIH0pLFxuICBjdXJzb3I6IFwidGV4dFwiLFxuICBvdXRsaW5lQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgb3V0bGluZVdpZHRoOiAxLFxuICAgIG91dGxpbmVTdHlsZTogXCJzb2xpZFwiLFxuICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG4gICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICB9LFxufSkpO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuY29uc3QgU3R5bGVkTGVmdEljb25Db250YWluZXIgPSBzdHlsZWQuZGl2PHsgc2l6ZT86IFByb21wdElucHV0U2l6ZXMgfT4oXG4gICh7IHRoZW1lLCBzaXplIH0pID0+ICh7XG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSwgc2l6ZSksXG4gICAgbGVmdDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUsIHNpemUpLFxuICAgIGhlaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLmljb24ubSwgLy8gdmlydHVhbCBzaXplIGJveCBmb3IgbWVkaXVtIGFuZCBzbWFsbCBpY29ucyBmb3IgdmVydGljYWwgYWxpZ25tZW50XG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgPSBzdHlsZWQuZGl2PHtcbiAgc2l6ZT86IFByb21wdElucHV0U2l6ZXM7XG59PigoeyB0aGVtZSwgc2l6ZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSwgc2l6ZSksXG4gIHJpZ2h0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSwgc2l6ZSksXG4gIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkQ2xlYXJCdXR0b24gPSBzdHlsZWQoUGljdG9ncmFtQnV0dG9uKSgoeyB0aGVtZSwgYnV0dG9uU2l6ZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICB0b3A6XG4gICAgYnV0dG9uU2l6ZSA9PT0gXCJtXCJcbiAgICAgID8gdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zXG4gICAgICA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHMsXG59KSk7XG5cbmNvbnN0IFN0eWxlZFNsb3RzQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGRpc3BsYXk6IFwiZmxleFwiLFxuICBmbGV4V3JhcDogXCJ3cmFwXCIsXG4gIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG59KTtcblxuLy8gSXQgbmVlZHMgbWFyZ2luIGR1ZSB0byBlbXB0eSBjbGlja2FibGUgc3BhY2UgdGhhdCBmb2N1c2VzIHRoZSB0ZXh0YXJlYVxuLy8gU2xvdHMgc2hvdWxkIG5vdCBiZSBpbiB0aGUgZGl2LCBiZWNhdXNlIGFyZWEgYmV0d2VlbiBzaG91bGQgYmUgY2xpY2thYmxlIGFsc29cbnR5cGUgU2xvdFByb3BzID0ge1xuICBzaWRlPzogXCJyaWdodFwiO1xufTtcbmNvbnN0IFN0eWxlZFNsb3QgPSBzdHlsZWQuZGl2PFNsb3RQcm9wcz4oKHsgdGhlbWUsIHNpZGUgfSkgPT4gKHtcbiAgbWFyZ2luOiBgMCAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc30gJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnN9YCxcblxuICAuLi4oc2lkZSA9PT0gXCJyaWdodFwiICYmIHtcbiAgICBtYXJnaW5MZWZ0OiBcImF1dG9cIixcbiAgfSksXG59KSk7XG5cbnR5cGUgU2VuZEJ1dHRvblByb3BzID0gT21pdDxSb3VuZEJ1dHRvblByb3BzLCBcImljb25cIiB8IFwidmFyaWFudFwiIHwgXCJzaXplXCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIiB8IFwidm9pY2VcIjtcbn07XG5cbnR5cGUgQm90dG9tVG9vbGJhckNvbmZpZyA9IHtcbiAgLyoqIFRvb2xiYXIgZWxlbWVudHMgYmVsb3cgdGV4dCBhcmVhICovXG4gIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgaGVhZGVyPzogQmFzZVByb21wdElucHV0SGVhZGVyUHJvcHM7XG4gIHZhcmlhbnQ/OiBcImFpXCI7XG4gIHNraXBBSUFuaW1hdGlvbj86IGJvb2xlYW47XG4gIGJvdHRvbVRvb2xiYXI/OiBCb3R0b21Ub29sYmFyQ29uZmlnO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBTZW5kQnV0dG9uUHJvcHM7XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgY2xlYXJCdXR0b25BcmlhTGFiZWw/OiBzdHJpbmc7XG4gIGhpbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIC8qKiBTaG93cyBpbiB0aGUgY2xlYXIgYnV0dG9uIHNwYWNlIGluIGVtcHR5IHN0YXRlICovXG4gIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIC8qKiBTaXplIG9mIHRoZSBQcm9tcHRJbnB1dCAqL1xuICBzaXplPzogUHJvbXB0SW5wdXRTaXplcztcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiIHwgXCJzaXplXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyLFxuICAgICAgaXNQcm9jZXNzaW5nLFxuICAgICAgc2VuZEJ1dHRvblByb3BzLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBsZWZ0SWNvbixcbiAgICAgIGhlYWRlcixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIHZhcmlhbnQsXG4gICAgICBzaXplID0gXCJtXCIsXG4gICAgICBza2lwQUlBbmltYXRpb24gPSBmYWxzZSxcbiAgICAgIHJvd3MgPSAxLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGFuaW1hdGVkQm9yZGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIHVzZUFuaW1hdGVkQm9yZGVyKGFuaW1hdGVkQm9yZGVyUmVmLCB7XG4gICAgICBza2lwQW5pbWF0aW9uOiBza2lwQUlBbmltYXRpb24gfHwgdmFyaWFudCAhPT0gXCJhaVwiLFxuICAgICAgcmFkaXVzOiBzaXplID09PSBcIm1cIiA/IDEyIDogOCxcbiAgICAgIGl0ZXJhdGlvbnM6IDEsXG4gICAgfSk7XG5cbiAgICBjb25zdCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0U2VuZEJ1dHRvblByb3BzLFxuICAgICAgLi4uKHNlbmRCdXR0b25Qcm9wcyA/PyB7fSksXG4gICAgfTtcblxuICAgIGNvbnN0IGNsb3NlQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4oZmFsc2UpO1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3Qgb3BlbkF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKHRydWUpO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICAgIH1cbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXSk7XG5cbiAgICBjb25zdCBhY2NlcHRUZXh0U2VsZWN0aW9uID0gKCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IHZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0ICE9PSB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvbkVuZFxuICAgICAgKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG9wZW5BdXRvY29tcGxldGVMaXN0LCBjbG9zZUF1dG9jb21wbGV0ZUxpc3RdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgc2l6ZT17c2l6ZX0+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9e3NpemUgPT09IFwibVwiID8gXCJzXCIgOiBcInhzXCJ9XG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgaWNvbj1cIngtY2lyY2xlLWZpbGxlZFwiXG4gICAgICAgIGFyaWEtbGFiZWw9e2NsZWFyQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgIG9uQ2xpY2s9e29uQ2xlYXJ9XG4gICAgICAgIGJ1dHRvblNpemU9e3NpemV9XG4gICAgICAvPlxuICAgICkgOiAoXG4gICAgICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtXG4gICAgKTtcblxuICAgIGNvbnN0IGhpbnRFbG0gPSAhIWhpbnQgJiYgKFxuICAgICAgPElubGluZSBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIDxUZXh0IHNpemU9XCJzXCIgY29sb3I9XCJ0ZXJ0aWFyeVwiPlxuICAgICAgICAgIHtoaW50fVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0lubGluZT5cbiAgICApO1xuXG4gICAgY29uc3QgYm90dG9tVG9vbGJhckVsbSA9IChib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnQgfHxcbiAgICAgIGJvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50IHx8XG4gICAgICAhIXNlbmRCdXR0b25Qcm9wcykgJiYgKFxuICAgICAgPD5cbiAgICAgICAge2JvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICA8U3R5bGVkU2xvdD57Ym90dG9tVG9vbGJhci5sZWZ0Q29udGVudH08L1N0eWxlZFNsb3Q+XG4gICAgICAgICl9XG4gICAgICAgIDxTdHlsZWRTbG90IGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCIgc2lkZT1cInJpZ2h0XCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnR9XG4gICAgICAgICAgICB7c2VuZEJ1dHRvblByb3BzICYmIChcbiAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT17dmFyaWFudH0+XG4gICAgICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogaXNQcm9jZXNzaW5nXG4gICAgICAgICAgICAgICAgICAgICAgPyBcIlByb2Nlc3NpbmcgcXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICB7Li4ubWVyZ2VkU2VuZEJ1dHRvblByb3BzfVxuICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZSA9PT0gXCJtXCIgPyBcInNcIiA6IFwieHNcIn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXttZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWQgPz8gIXZhbHVlfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZEJ1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17XG4gICAgICAgICAgICAgICAgICAgIGlzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29uXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdWJUaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgPC8+XG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPVwiUHJvbXB0SW5wdXRcIlxuICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIGRpc2FibGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBhdXRvY29tcGxldGUgbGlzdFxuICAgICAgICAgIHRyYW5zbGF0ZT1cIm5vXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFjayBzcGFjZT1cInNcIj5cbiAgICAgICAgICAgIDxkaXYgcmVmPXthbmltYXRlZEJvcmRlclJlZn0+XG4gICAgICAgICAgICAgIDxTdWJUaGVtZVByb3ZpZGVyIG5hbWU9e3ZhcmlhbnR9PlxuICAgICAgICAgICAgICAgIDxDdXN0b21Db250YWluZXJcbiAgICAgICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17c2l6ZX1cbiAgICAgICAgICAgICAgICAgIGhpZGVCb3JkZXI9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgaGFzU2hhZG93XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT1cInVuc2V0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtoZWFkZXIgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFByb21wdElucHV0SGVhZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5oZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1c1NpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAge2xlZnRJY29uICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZExlZnRJY29uQ29udGFpbmVyIHNpemU9e3NpemV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtsZWZ0SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9e3Jvd3N9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L1N1YlRoZW1lUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9DdXN0b21Db250YWluZXI+XG4gICAgICAgICAgICAgIDwvU3ViVGhlbWVQcm92aWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUg2QiJ9 */"),StyledSlot=styled("div",{target:"ey62v596",label:"StyledSlot"})(({theme,side})=>({margin:`0 ${theme.variables.size.spacing.s} ${theme.variables.size.spacing.s}`,..."right"===side&&{marginLeft:"auto"}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5cbmltcG9ydCB0eXBlIHsgUHJvbXB0VGV4dEFyZWFQcm9wcyB9IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQge1xuICBQcm9tcHRUZXh0QXJlYSxcbiAgZ2V0UGFkZGluZ0hvcml6b250YWwsXG4gIGdldFBhZGRpbmdWZXJ0aWNhbCxcbn0gZnJvbSBcIi4vUHJvbXB0VGV4dEFyZWFcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi9Db250YWluZXJcIjtcbmltcG9ydCB0eXBlIHsgQXV0b2NvbXBsZXRlTGlzdFByb3BzIH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuXG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdElucHV0U2l6ZXMgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgdHlwZSB7IFJvdW5kQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB7IFJvdW5kQnV0dG9uIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB0eXBlIHsgSWNvbk5hbWUgfSBmcm9tIFwiLi4vSWNvbi9JY29uXCI7XG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgU3ViVGhlbWVQcm92aWRlciB9IGZyb20gXCIuLi9TdWJUaGVtZVByb3ZpZGVyL1N1YlRoZW1lUHJvdmlkZXJcIjtcbmltcG9ydCB7IHVzZUFuaW1hdGVkQm9yZGVyIH0gZnJvbSBcIi4uL1V0aWxpdGllcy9BbmltYXRlZEJvcmRlci91c2VBbmltYXRlZEJvcmRlclwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0SW5wdXRIZWFkZXIsXG4gIHR5cGUgQmFzZVByb21wdElucHV0SGVhZGVyUHJvcHMsXG59IGZyb20gXCIuL1Byb21wdElucHV0SGVhZGVyXCI7XG5cbmNvbnN0IEN1c3RvbUNvbnRhaW5lciA9IHN0eWxlZChDb250YWluZXIpPHtcbiAgaGlkZUJvcmRlcjogYm9vbGVhbjtcbiAgaGFzU2hhZG93OiBib29sZWFuO1xufT4oKHsgdGhlbWUsIGhpZGVCb3JkZXIsIGhhc1NoYWRvdyB9KSA9PiAoe1xuICBib3JkZXI6IGAxcHggc29saWQgJHt0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLnByaW1hcnkuZGVmYXVsdH1gLFxuICAuLi4oaGFzU2hhZG93ICYmIHtcbiAgICBib3hTaGFkb3c6IHRoZW1lLnZhbHVlcy5zaGFkb3cuZGVmYXVsdFJpbmcsXG4gICAgdHJhbnNpdGlvblByb3BlcnR5OiBcImJveC1zaGFkb3csIGJvcmRlci1jb2xvciwgb3V0bGluZS1jb2xvclwiLFxuICAgIHRyYW5zaXRpb25EdXJhdGlvbjogdGhlbWUudmFyaWFibGVzLmFuaW1hdGlvbi5wcm9tcHRJbnB1dC5mb2N1cy5kdXJhdGlvbixcbiAgICB0cmFuc2l0aW9uVGltaW5nRnVuY3Rpb246XG4gICAgICB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLnRpbWluZ0Z1bmN0aW9uLFxuICB9KSxcbiAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgIGJvcmRlckNvbG9yOiBcInRyYW5zcGFyZW50XCIsXG4gIH0pLFxuICBjdXJzb3I6IFwidGV4dFwiLFxuICBvdXRsaW5lQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgb3V0bGluZVdpZHRoOiAxLFxuICAgIG91dGxpbmVTdHlsZTogXCJzb2xpZFwiLFxuICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG4gICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICB9LFxufSkpO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuY29uc3QgU3R5bGVkTGVmdEljb25Db250YWluZXIgPSBzdHlsZWQuZGl2PHsgc2l6ZT86IFByb21wdElucHV0U2l6ZXMgfT4oXG4gICh7IHRoZW1lLCBzaXplIH0pID0+ICh7XG4gICAgZGlzcGxheTogXCJmbGV4XCIsXG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSwgc2l6ZSksXG4gICAgbGVmdDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUsIHNpemUpLFxuICAgIGhlaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuZGltZW5zaW9uLmljb24ubSwgLy8gdmlydHVhbCBzaXplIGJveCBmb3IgbWVkaXVtIGFuZCBzbWFsbCBpY29ucyBmb3IgdmVydGljYWwgYWxpZ25tZW50XG4gICAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgPSBzdHlsZWQuZGl2PHtcbiAgc2l6ZT86IFByb21wdElucHV0U2l6ZXM7XG59PigoeyB0aGVtZSwgc2l6ZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSwgc2l6ZSksXG4gIHJpZ2h0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSwgc2l6ZSksXG4gIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbn0pKTtcblxuY29uc3QgU3R5bGVkQ2xlYXJCdXR0b24gPSBzdHlsZWQoUGljdG9ncmFtQnV0dG9uKSgoeyB0aGVtZSwgYnV0dG9uU2l6ZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICB0b3A6XG4gICAgYnV0dG9uU2l6ZSA9PT0gXCJtXCJcbiAgICAgID8gdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zXG4gICAgICA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHMsXG59KSk7XG5cbmNvbnN0IFN0eWxlZFNsb3RzQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGRpc3BsYXk6IFwiZmxleFwiLFxuICBmbGV4V3JhcDogXCJ3cmFwXCIsXG4gIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG59KTtcblxuLy8gSXQgbmVlZHMgbWFyZ2luIGR1ZSB0byBlbXB0eSBjbGlja2FibGUgc3BhY2UgdGhhdCBmb2N1c2VzIHRoZSB0ZXh0YXJlYVxuLy8gU2xvdHMgc2hvdWxkIG5vdCBiZSBpbiB0aGUgZGl2LCBiZWNhdXNlIGFyZWEgYmV0d2VlbiBzaG91bGQgYmUgY2xpY2thYmxlIGFsc29cbnR5cGUgU2xvdFByb3BzID0ge1xuICBzaWRlPzogXCJyaWdodFwiO1xufTtcbmNvbnN0IFN0eWxlZFNsb3QgPSBzdHlsZWQuZGl2PFNsb3RQcm9wcz4oKHsgdGhlbWUsIHNpZGUgfSkgPT4gKHtcbiAgbWFyZ2luOiBgMCAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc30gJHt0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnN9YCxcblxuICAuLi4oc2lkZSA9PT0gXCJyaWdodFwiICYmIHtcbiAgICBtYXJnaW5MZWZ0OiBcImF1dG9cIixcbiAgfSksXG59KSk7XG5cbnR5cGUgU2VuZEJ1dHRvblByb3BzID0gT21pdDxSb3VuZEJ1dHRvblByb3BzLCBcImljb25cIiB8IFwidmFyaWFudFwiIHwgXCJzaXplXCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIiB8IFwidm9pY2VcIjtcbn07XG5cbnR5cGUgQm90dG9tVG9vbGJhckNvbmZpZyA9IHtcbiAgLyoqIFRvb2xiYXIgZWxlbWVudHMgYmVsb3cgdGV4dCBhcmVhICovXG4gIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgaGVhZGVyPzogQmFzZVByb21wdElucHV0SGVhZGVyUHJvcHM7XG4gIHZhcmlhbnQ/OiBcImFpXCI7XG4gIHNraXBBSUFuaW1hdGlvbj86IGJvb2xlYW47XG4gIGJvdHRvbVRvb2xiYXI/OiBCb3R0b21Ub29sYmFyQ29uZmlnO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBTZW5kQnV0dG9uUHJvcHM7XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgY2xlYXJCdXR0b25BcmlhTGFiZWw/OiBzdHJpbmc7XG4gIGhpbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIC8qKiBTaG93cyBpbiB0aGUgY2xlYXIgYnV0dG9uIHNwYWNlIGluIGVtcHR5IHN0YXRlICovXG4gIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIC8qKiBTaXplIG9mIHRoZSBQcm9tcHRJbnB1dCAqL1xuICBzaXplPzogUHJvbXB0SW5wdXRTaXplcztcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiIHwgXCJzaXplXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyLFxuICAgICAgaXNQcm9jZXNzaW5nLFxuICAgICAgc2VuZEJ1dHRvblByb3BzLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBsZWZ0SWNvbixcbiAgICAgIGhlYWRlcixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIHZhcmlhbnQsXG4gICAgICBzaXplID0gXCJtXCIsXG4gICAgICBza2lwQUlBbmltYXRpb24gPSBmYWxzZSxcbiAgICAgIHJvd3MgPSAxLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGFuaW1hdGVkQm9yZGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIHVzZUFuaW1hdGVkQm9yZGVyKGFuaW1hdGVkQm9yZGVyUmVmLCB7XG4gICAgICBza2lwQW5pbWF0aW9uOiBza2lwQUlBbmltYXRpb24gfHwgdmFyaWFudCAhPT0gXCJhaVwiLFxuICAgICAgcmFkaXVzOiBzaXplID09PSBcIm1cIiA/IDEyIDogOCxcbiAgICAgIGl0ZXJhdGlvbnM6IDEsXG4gICAgfSk7XG5cbiAgICBjb25zdCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0U2VuZEJ1dHRvblByb3BzLFxuICAgICAgLi4uKHNlbmRCdXR0b25Qcm9wcyA/PyB7fSksXG4gICAgfTtcblxuICAgIGNvbnN0IGNsb3NlQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4oZmFsc2UpO1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3Qgb3BlbkF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKHRydWUpO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICAgIH1cbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXSk7XG5cbiAgICBjb25zdCBhY2NlcHRUZXh0U2VsZWN0aW9uID0gKCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IHZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0ICE9PSB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvbkVuZFxuICAgICAgKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGgpIHtcbiAgICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG9wZW5BdXRvY29tcGxldGVMaXN0LCBjbG9zZUF1dG9jb21wbGV0ZUxpc3RdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgc2l6ZT17c2l6ZX0+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9e3NpemUgPT09IFwibVwiID8gXCJzXCIgOiBcInhzXCJ9XG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgIHRhYkluZGV4PXstMX1cbiAgICAgICAgaWNvbj1cIngtY2lyY2xlLWZpbGxlZFwiXG4gICAgICAgIGFyaWEtbGFiZWw9e2NsZWFyQnV0dG9uQXJpYUxhYmVsfVxuICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgIG9uQ2xpY2s9e29uQ2xlYXJ9XG4gICAgICAgIGJ1dHRvblNpemU9e3NpemV9XG4gICAgICAvPlxuICAgICkgOiAoXG4gICAgICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtXG4gICAgKTtcblxuICAgIGNvbnN0IGhpbnRFbG0gPSAhIWhpbnQgJiYgKFxuICAgICAgPElubGluZSBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIDxUZXh0IHNpemU9XCJzXCIgY29sb3I9XCJ0ZXJ0aWFyeVwiPlxuICAgICAgICAgIHtoaW50fVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0lubGluZT5cbiAgICApO1xuXG4gICAgY29uc3QgYm90dG9tVG9vbGJhckVsbSA9IChib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnQgfHxcbiAgICAgIGJvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50IHx8XG4gICAgICAhIXNlbmRCdXR0b25Qcm9wcykgJiYgKFxuICAgICAgPD5cbiAgICAgICAge2JvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICA8U3R5bGVkU2xvdD57Ym90dG9tVG9vbGJhci5sZWZ0Q29udGVudH08L1N0eWxlZFNsb3Q+XG4gICAgICAgICl9XG4gICAgICAgIDxTdHlsZWRTbG90IGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCIgc2lkZT1cInJpZ2h0XCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnR9XG4gICAgICAgICAgICB7c2VuZEJ1dHRvblByb3BzICYmIChcbiAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT17dmFyaWFudH0+XG4gICAgICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgICAgICBcImFyaWEtbGFiZWxcIjogaXNQcm9jZXNzaW5nXG4gICAgICAgICAgICAgICAgICAgICAgPyBcIlByb2Nlc3NpbmcgcXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICB7Li4ubWVyZ2VkU2VuZEJ1dHRvblByb3BzfVxuICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZSA9PT0gXCJtXCIgPyBcInNcIiA6IFwieHNcIn1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXttZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWQgPz8gIXZhbHVlfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZEJ1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17XG4gICAgICAgICAgICAgICAgICAgIGlzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29uXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9TdWJUaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgPC8+XG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPVwiUHJvbXB0SW5wdXRcIlxuICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIGRpc2FibGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBhdXRvY29tcGxldGUgbGlzdFxuICAgICAgICAgIHRyYW5zbGF0ZT1cIm5vXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFjayBzcGFjZT1cInNcIj5cbiAgICAgICAgICAgIDxkaXYgcmVmPXthbmltYXRlZEJvcmRlclJlZn0+XG4gICAgICAgICAgICAgIDxTdWJUaGVtZVByb3ZpZGVyIG5hbWU9e3ZhcmlhbnR9PlxuICAgICAgICAgICAgICAgIDxDdXN0b21Db250YWluZXJcbiAgICAgICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17c2l6ZX1cbiAgICAgICAgICAgICAgICAgIGhpZGVCb3JkZXI9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgaGFzU2hhZG93XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT1cInVuc2V0XCI+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHtoZWFkZXIgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPFByb21wdElucHV0SGVhZGVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHsuLi5oZWFkZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1c1NpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAge2xlZnRJY29uICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZExlZnRJY29uQ29udGFpbmVyIHNpemU9e3NpemV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtsZWZ0SWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9e3Jvd3N9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICA8L1N1YlRoZW1lUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPC9DdXN0b21Db250YWluZXI+XG4gICAgICAgICAgICAgIDwvU3ViVGhlbWVQcm92aWRlcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNEhtQiJ9 */"),defaultSendButtonProps={type:"submit",icon:"arrow-up"};export const PromptInput=forwardRef(({"data-e2e-test-id":dataE2eTestId,name,autocompleteListItems=[],value,bottomToolbar,isProcessing,sendButtonProps,autocompleteListFooter,clearButtonAriaLabel="Clear input",hint,emptyStateTopRightContent,portalContainer,leftIcon,header,onChange,onComplete,onClear,onEnterKey,onFocus,onBlur,onKeyDown,variant,size="m",skipAIAnimation=!1,rows=1,...rest},ref)=>{let containerRef=useRef(null),animatedBorderRef=useRef(null),textAreaContainerRef=useRef(null),internalRef=useRef(null),[selectedIndex,setSelectedIndex]=useState(-1),userTypedQuery=useRef(""),[isAutocompleteListOpen,setIsAutocompleteListOpen]=useState(!1),textAreaRef=ref||internalRef;useAnimatedBorder(animatedBorderRef,{skipAnimation:skipAIAnimation||"ai"!==variant,radius:"m"===size?12:8,iterations:1});let mergedSendButtonProps={...defaultSendButtonProps,...sendButtonProps??{}},closeAutocompleteList=useCallback(()=>{setIsAutocompleteListOpen(!1),setSelectedIndex(-1)},[]),openAutocompleteList=useCallback(()=>{autocompleteListItems.length&&(setIsAutocompleteListOpen(!0),setSelectedIndex(-1))},[autocompleteListItems]),acceptTextSelection=()=>{userTypedQuery.current=value,textAreaRef.current.selectionStart!==textAreaRef.current.selectionEnd&&textAreaRef.current.setSelectionRange(value.length,value.length)};useEffect(()=>{autocompleteListItems.length?openAutocompleteList():closeAutocompleteList()},[autocompleteListItems,openAutocompleteList,closeAutocompleteList]),useEffect(()=>{value&&value!==userTypedQuery.current&&isAutocompleteListOpen&&textAreaRef.current.setSelectionRange(userTypedQuery.current.length,value.length)},[value,textAreaRef,isAutocompleteListOpen]);let flattenedListItems=useMemo(()=>{let list=[];return autocompleteListItems.forEach(listItem=>{listItem.items.forEach((item,index)=>{list.push({category:listItem.category,indexInCategory:index,value:item.value,id:getListItemId(name,listItem.category,index)})})}),list},[autocompleteListItems,name]),handleSelectedIndexChange=(index,evt)=>{if(setSelectedIndex(index),-1!==index){let{category,value:itemValue}=flattenedListItems[index];onComplete({value:itemValue,category,evt,index})}},handlePreventFocus=evt=>{evt.preventDefault()},selectedListItem=-1!==selectedIndex?flattenedListItems[selectedIndex]:null,emptyStateTopRightContentElm=emptyStateTopRightContent?React.createElement(StyledEmptyStateTopRightContentContainer,{size:size},React.createElement(Text,{color:"tertiary"},emptyStateTopRightContent)):null,clearButtonElm=value?React.createElement(StyledClearButton,{size:"m"===size?"s":"xs","aria-hidden":"true",tabIndex:-1,icon:"x-circle-filled","aria-label":clearButtonAriaLabel,onPointerDown:handlePreventFocus,onClick:onClear,buttonSize:size}):emptyStateTopRightContentElm,hintElm=!!hint&&React.createElement(Inline,{alignItems:"center"},React.createElement(Text,{size:"s",color:"tertiary"},hint)),bottomToolbarElm=(bottomToolbar?.rightContent||bottomToolbar?.leftContent||!!sendButtonProps)&&React.createElement(React.Fragment,null,bottomToolbar?.leftContent&&React.createElement(StyledSlot,null,bottomToolbar.leftContent),React.createElement(StyledSlot,{"data-e2e-test-id":"bottomToolbar",side:"right"},React.createElement(Inline,{space:"xs",vAlignItems:"center"},bottomToolbar?.rightContent,sendButtonProps&&React.createElement(SubThemeProvider,{name:variant},React.createElement(RoundButton,{ariaAttributes:{"aria-label":isProcessing?"Processing query":"Submit query"},...mergedSendButtonProps,size:"m"===size?"s":"xs",disabled:mergedSendButtonProps.disabled??!value,onClick:evt=>{mergedSendButtonProps.onClick?.(evt),closeAutocompleteList()},onPointerDown:handlePreventFocus,variant:"primary",icon:isProcessing?"stop-filled":mergedSendButtonProps.icon})))));return React.createElement(React.Fragment,null,React.createElement("div",{"data-e2e-test-id":dataE2eTestId,"data-ds-id":"PromptInput",ref:containerRef,translate:"no"},React.createElement(Stack,{space:"s"},React.createElement("div",{ref:animatedBorderRef},React.createElement(SubThemeProvider,{name:variant},React.createElement(CustomContainer,{elevation:0,borderRadius:size,hideBorder:!1,hasShadow:!0},React.createElement(SubThemeProvider,{name:"unset"},React.createElement(StyledSlotsContainer,{ref:textAreaContainerRef,onPointerDown:evt=>{evt.target===evt.currentTarget&&(textAreaRef.current?.focus(),evt.preventDefault())}},header&&React.createElement(PromptInputHeader,{...header,borderRadiusSize:size,size:size}),React.createElement(StyledTextAreaContainer,null,leftIcon&&React.createElement(StyledLeftIconContainer,{size:size},React.createElement(Icon,{name:leftIcon,size:size,color:"tertiary","aria-hidden":"true"})),React.createElement(PromptTextArea,{...rest,dataE2eTestId:dataE2eTestId?`${dataE2eTestId}-input`:void 0,name:name,value:value,ref:textAreaRef,selectedListItem:selectedListItem,isAutocompleteListOpen:isAutocompleteListOpen,hasLeftIcon:!!leftIcon,onFocus:evt=>{onFocus?.(evt)},onBlur:evt=>{value!==userTypedQuery.current&&onComplete?.({value:userTypedQuery.current,evt}),onBlur?.(evt)},onChange:evt=>{userTypedQuery.current=evt.target.value,onChange(evt)},onKeyDown:evt=>{if(isAutocompleteListOpen)switch(evt.key){case"Escape":closeAutocompleteList(),onComplete({value:userTypedQuery.current,evt});break;case"Enter":!evt.shiftKey&&(evt.preventDefault(),closeAutocompleteList(),acceptTextSelection(),value&&onEnterKey?.());break;case" ":acceptTextSelection();break;case"ArrowUp":evt.preventDefault(),selectedIndex>-1&&handleSelectedIndexChange(selectedIndex-1,evt);break;case"ArrowDown":evt.preventDefault(),selectedIndex<flattenedListItems.length-1&&handleSelectedIndexChange(selectedIndex+1,evt)}else switch(evt.key){case"Escape":onClear?.();break;case"Enter":!evt.shiftKey&&(evt.preventDefault(),value&&onEnterKey?.())}onKeyDown?.(evt)},rows:rows,size:size}),clearButtonElm),bottomToolbarElm))))),hintElm)),React.createElement(AutocompleteList,{name:name,value:value,autocompleteListItems:autocompleteListItems,triggerRef:textAreaContainerRef,selectedListItem:selectedListItem,isOpen:isAutocompleteListOpen,autocompleteListFooter:autocompleteListFooter,portalContainer:portalContainer,onListItemClick:(category,indexInCategory,evt)=>{handleSelectedIndexChange(flattenedListItems.findIndex(listItem=>listItem.category===category&&listItem.indexInCategory===indexInCategory),evt),closeAutocompleteList()}}))});
|
|
1
|
+
import React,{useRef,useMemo,useState,useEffect,useCallback,forwardRef}from"react";import styled from"@emotion/styled";import{PromptTextArea,getPaddingHorizontal,getPaddingVertical}from"./PromptTextArea";import{Container}from"../Container";import{AutocompleteList}from"./AutocompleteList";import{getListItemId}from"./CategoryList";import{Text}from"../Typography/Text";import{Inline}from"../Inline/Inline";import{RoundButton}from"../RoundButton/RoundButton";import{PictogramButton}from"../PictogramButton/PictogramButton";import{Stack}from"../Stack/Stack";import{Icon}from"../Icon/Icon";import{SubThemeProvider}from"../SubThemeProvider/SubThemeProvider";import{useAnimatedBorder}from"../Utilities/AnimatedBorder/useAnimatedBorder";import{PromptInputHeader}from"./PromptInputHeader";let CustomContainer=styled(Container,{target:"e1162mxi0",label:"CustomContainer"})(({theme,hideBorder,hasShadow})=>({border:`1px solid ${theme.values.color.border.primary.default}`,...hasShadow&&{boxShadow:theme.values.shadow.defaultRing,transitionProperty:"box-shadow, border-color, outline-color",transitionDuration:theme.variables.animation.promptInput.focus.duration,transitionTimingFunction:theme.variables.animation.promptInput.focus.timingFunction},...hideBorder&&{borderColor:"transparent"},cursor:"text",outlineColor:"transparent","&:has(textarea:focus-visible)":{outlineWidth:1,outlineStyle:"solid",outlineOffset:-1,boxShadow:theme.values.shadow.focusRing,outlineColor:theme.values.color.border.accent.default}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5cbmltcG9ydCB0eXBlIHsgUHJvbXB0VGV4dEFyZWFQcm9wcyB9IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQge1xuICBQcm9tcHRUZXh0QXJlYSxcbiAgZ2V0UGFkZGluZ0hvcml6b250YWwsXG4gIGdldFBhZGRpbmdWZXJ0aWNhbCxcbn0gZnJvbSBcIi4vUHJvbXB0VGV4dEFyZWFcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi9Db250YWluZXJcIjtcbmltcG9ydCB0eXBlIHsgQXV0b2NvbXBsZXRlTGlzdFByb3BzIH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuXG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgdHlwZSB7XG4gIFByb21wdElucHV0U2l6ZXMsXG4gIFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmLFxufSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgdHlwZSB7IFJvdW5kQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB7IFJvdW5kQnV0dG9uIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBTdGFjayB9IGZyb20gXCIuLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHR5cGUgeyBJY29uTmFtZSB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcbmltcG9ydCB7IEljb24gfSBmcm9tIFwiLi4vSWNvbi9JY29uXCI7XG5pbXBvcnQgeyBTdWJUaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4uL1N1YlRoZW1lUHJvdmlkZXIvU3ViVGhlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgdXNlQW5pbWF0ZWRCb3JkZXIgfSBmcm9tIFwiLi4vVXRpbGl0aWVzL0FuaW1hdGVkQm9yZGVyL3VzZUFuaW1hdGVkQm9yZGVyXCI7XG5pbXBvcnQge1xuICBQcm9tcHRJbnB1dEhlYWRlcixcbiAgdHlwZSBCYXNlUHJvbXB0SW5wdXRIZWFkZXJQcm9wcyxcbn0gZnJvbSBcIi4vUHJvbXB0SW5wdXRIZWFkZXJcIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8e1xuICBoaWRlQm9yZGVyOiBib29sZWFuO1xuICBoYXNTaGFkb3c6IGJvb2xlYW47XG59PigoeyB0aGVtZSwgaGlkZUJvcmRlciwgaGFzU2hhZG93IH0pID0+ICh7XG4gIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gIC4uLihoYXNTaGFkb3cgJiYge1xuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5kZWZhdWx0UmluZyxcbiAgICB0cmFuc2l0aW9uUHJvcGVydHk6IFwiYm94LXNoYWRvdywgYm9yZGVyLWNvbG9yLCBvdXRsaW5lLWNvbG9yXCIsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uOiB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLmR1cmF0aW9uLFxuICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjpcbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ucHJvbXB0SW5wdXQuZm9jdXMudGltaW5nRnVuY3Rpb24sXG4gIH0pLFxuICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgfSksXG4gIGN1cnNvcjogXCJ0ZXh0XCIsXG4gIG91dGxpbmVDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICBbYCY6aGFzKHRleHRhcmVhOmZvY3VzLXZpc2libGUpYF06IHtcbiAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgb3V0bGluZU9mZnNldDogLTEsXG4gICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcbiAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gIH0sXG59KSk7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG5jb25zdCBTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lciA9IHN0eWxlZC5kaXY8eyBzaXplPzogUHJvbXB0SW5wdXRTaXplcyB9PihcbiAgKHsgdGhlbWUsIHNpemUgfSkgPT4gKHtcbiAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lLCBzaXplKSxcbiAgICBsZWZ0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSwgc2l6ZSksXG4gICAgaGVpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5kaW1lbnNpb24uaWNvbi5tLCAvLyB2aXJ0dWFsIHNpemUgYm94IGZvciBtZWRpdW0gYW5kIHNtYWxsIGljb25zIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnRcbiAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciA9IHN0eWxlZC5kaXY8e1xuICBzaXplPzogUHJvbXB0SW5wdXRTaXplcztcbn0+KCh7IHRoZW1lLCBzaXplIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lLCBzaXplKSxcbiAgcmlnaHQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lLCBzaXplKSxcbiAgdXNlclNlbGVjdDogXCJub25lXCIsXG4gIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxufSkpO1xuXG4vLyBgc3R5bGVkKClgIGNhbm5vdCBwcmVzZXJ2ZSBQaWN0b2dyYW1CdXR0b24ncyBwb2x5bW9ycGhpYyBnZW5lcmljXG4vLyBzaWduYXR1cmUsIHNvIGVtb3Rpb24gaW5mZXJzIGEgcHJvcCB0eXBlIHRoYXQgY29sbGFwc2VzIGl0cyByZXF1aXJlZFxuLy8gYGxhYmVsYCAvIGBhcmlhLWxhYmVsYCAvIGBhcmlhLWxhYmVsbGVkYnlgIGRpc2NyaW1pbmF0ZWQgdW5pb24uIFdlIHJlLWFzc2VydFxuLy8gUGljdG9ncmFtQnV0dG9uJ3MgcG9seW1vcnBoaWMgc2lnbmF0dXJlIHRvIHJlc3RvcmUgdGhlIHJlYWwgcHJvcCBjb250cmFjdCxcbi8vIHdpZGVuZWQgd2l0aCB0aGUgc3R5bGUtb25seSBgYnV0dG9uU2l6ZWAgcHJvcCB0aGlzIHdyYXBwZXIgYWRkcy5cbmNvbnN0IFN0eWxlZENsZWFyQnV0dG9uID0gc3R5bGVkKFBpY3RvZ3JhbUJ1dHRvbik8e1xuICBidXR0b25TaXplPzogUHJvbXB0SW5wdXRTaXplcztcbn0+KCh7IHRoZW1lLCBidXR0b25TaXplIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHJpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gIHRvcDpcbiAgICBidXR0b25TaXplID09PSBcIm1cIlxuICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnNcbiAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54cyxcbn0pKSBhcyA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gIHByb3BzOiBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZjxcbiAgICBDLFxuICAgIFBpY3RvZ3JhbUJ1dHRvblByb3BzICYgeyBidXR0b25TaXplPzogUHJvbXB0SW5wdXRTaXplcyB9XG4gID5cbikgPT4gUmVhY3QuUmVhY3ROb2RlIHwgbnVsbDtcblxuY29uc3QgU3R5bGVkU2xvdHNDb250YWluZXIgPSBzdHlsZWQuZGl2KHtcbiAgZGlzcGxheTogXCJmbGV4XCIsXG4gIGZsZXhXcmFwOiBcIndyYXBcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbn0pO1xuXG4vLyBJdCBuZWVkcyBtYXJnaW4gZHVlIHRvIGVtcHR5IGNsaWNrYWJsZSBzcGFjZSB0aGF0IGZvY3VzZXMgdGhlIHRleHRhcmVhXG4vLyBTbG90cyBzaG91bGQgbm90IGJlIGluIHRoZSBkaXYsIGJlY2F1c2UgYXJlYSBiZXR3ZWVuIHNob3VsZCBiZSBjbGlja2FibGUgYWxzb1xudHlwZSBTbG90UHJvcHMgPSB7XG4gIHNpZGU/OiBcInJpZ2h0XCI7XG59O1xuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8U2xvdFByb3BzPigoeyB0aGVtZSwgc2lkZSB9KSA9PiAoe1xuICBtYXJnaW46IGAwICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc31gLFxuXG4gIC4uLihzaWRlID09PSBcInJpZ2h0XCIgJiYge1xuICAgIG1hcmdpbkxlZnQ6IFwiYXV0b1wiLFxuICB9KSxcbn0pKTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCIgfCBcInNpemVcIj4gJiB7XG4gIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiIHwgXCJ2b2ljZVwiO1xufTtcblxudHlwZSBCb3R0b21Ub29sYmFyQ29uZmlnID0ge1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgbGVmdENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICBoZWFkZXI/OiBCYXNlUHJvbXB0SW5wdXRIZWFkZXJQcm9wcztcbiAgdmFyaWFudD86IFwiYWlcIjtcbiAgc2tpcEFJQW5pbWF0aW9uPzogYm9vbGVhbjtcbiAgYm90dG9tVG9vbGJhcj86IEJvdHRvbVRvb2xiYXJDb25maWc7XG4gIHNlbmRCdXR0b25Qcm9wcz86IFNlbmRCdXR0b25Qcm9wcztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNpemUgb2YgdGhlIFByb21wdElucHV0ICovXG4gIHNpemU/OiBQcm9tcHRJbnB1dFNpemVzO1xuICBvbkNsZWFyOiAoKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gdXNlciBzZWxlY3RzIChvciByZWplY3RzKSBhIGxpc3QgaXRlbSBmcm9tIGF1dG9jb21wbGV0ZSBsaXN0ICovXG4gIG9uQ29tcGxldGU/OiAoe1xuICAgIHZhbHVlLFxuICAgIGNhdGVnb3J5LFxuICAgIGV2dCxcbiAgICBpbmRleCxcbiAgfToge1xuICAgIHZhbHVlOiBMaXN0SXRlbVZhbHVlO1xuICAgIGNhdGVnb3J5Pzogc3RyaW5nO1xuICAgIGV2dD86IFN5bnRoZXRpY0V2ZW50O1xuICAgIGluZGV4PzogbnVtYmVyO1xuICB9KSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIG9uIEVudGVyIGtleSB0byBzdWJtaXQgdGhlIGZvcm0gICovXG4gIG9uRW50ZXJLZXk6ICgpID0+IHZvaWQ7XG4gIC8qKiBSZW5kZXJzIGFuIGljb24gdG8gdGhlIGxlZnQgaW5zaWRlIHRoZSB0ZXh0YXJlYSAqL1xuICBsZWZ0SWNvbj86IEljb25OYW1lO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCIgfCBcImhhc0xlZnRJY29uXCIgfCBcInNpemVcIlxuPiAmXG4gIFBpY2s8XG4gICAgQXV0b2NvbXBsZXRlTGlzdFByb3BzLFxuICAgIFwiYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXCIgfCBcImF1dG9jb21wbGV0ZUxpc3RGb290ZXJcIiB8IFwicG9ydGFsQ29udGFpbmVyXCJcbiAgPjtcblxuY29uc3QgZGVmYXVsdFNlbmRCdXR0b25Qcm9wczogU2VuZEJ1dHRvblByb3BzID0ge1xuICB0eXBlOiBcInN1Ym1pdFwiIGFzIGNvbnN0LFxuICBpY29uOiBcImFycm93LXVwXCIgYXMgY29uc3QsXG59O1xuXG5leHBvcnQgY29uc3QgUHJvbXB0SW5wdXQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgaGVhZGVyLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgdmFyaWFudCxcbiAgICAgIHNpemUgPSBcIm1cIixcbiAgICAgIHNraXBBSUFuaW1hdGlvbiA9IGZhbHNlLFxuICAgICAgcm93cyA9IDEsXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgYW5pbWF0ZWRCb3JkZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgdXNlQW5pbWF0ZWRCb3JkZXIoYW5pbWF0ZWRCb3JkZXJSZWYsIHtcbiAgICAgIHNraXBBbmltYXRpb246IHNraXBBSUFuaW1hdGlvbiB8fCB2YXJpYW50ICE9PSBcImFpXCIsXG4gICAgICByYWRpdXM6IHNpemUgPT09IFwibVwiID8gMTIgOiA4LFxuICAgICAgaXRlcmF0aW9uczogMSxcbiAgICB9KTtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICBpZiAoXG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQgIT09IHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uRW5kXG4gICAgICApIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZSh2YWx1ZS5sZW5ndGgsIHZhbHVlLmxlbmd0aCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgb3BlbkF1dG9jb21wbGV0ZUxpc3QsIGNsb3NlQXV0b2NvbXBsZXRlTGlzdF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlS2V5RG93bjogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAoaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBtZXJnZWRTZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlUHJldmVudEZvY3VzID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBQcmV2ZW50IHRoZSB0ZXh0YXJlYSBmcm9tIGJlaW5nIHVuZm9jdXNlZFxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd24gPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIEZvY3VzIHRleHRhcmVhIHdoZW4gY2xpY2tpbmcgb24gdGhlIGNvbnRhaW5lciBvbmx5XG4gICAgICBpZiAoZXZ0LnRhcmdldCA9PT0gZXZ0LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbGVjdGVkTGlzdEl0ZW0gPVxuICAgICAgc2VsZWN0ZWRJbmRleCAhPT0gLTEgPyBmbGF0dGVuZWRMaXN0SXRlbXNbc2VsZWN0ZWRJbmRleF0gOiBudWxsO1xuXG4gICAgY29uc3QgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbSA9IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQgPyAoXG4gICAgICA8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciBzaXplPXtzaXplfT5cbiAgICAgICAgPFRleHQgY29sb3I9XCJ0ZXJ0aWFyeVwiPntlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50fTwvVGV4dD5cbiAgICAgIDwvU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lcj5cbiAgICApIDogbnVsbDtcblxuICAgIGNvbnN0IGNsZWFyQnV0dG9uRWxtID0gdmFsdWUgPyAoXG4gICAgICA8U3R5bGVkQ2xlYXJCdXR0b25cbiAgICAgICAgc2l6ZT17c2l6ZSA9PT0gXCJtXCIgPyBcInNcIiA6IFwieHNcIn1cbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICBpY29uPVwieC1jaXJjbGUtZmlsbGVkXCJcbiAgICAgICAgYXJpYS1sYWJlbD17Y2xlYXJCdXR0b25BcmlhTGFiZWx9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgICAgYnV0dG9uU2l6ZT17c2l6ZX1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgfHxcbiAgICAgICEhc2VuZEJ1dHRvblByb3BzKSAmJiAoXG4gICAgICA8PlxuICAgICAgICB7Ym90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgJiYgKFxuICAgICAgICAgIDxTdHlsZWRTbG90Pntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgKX1cbiAgICAgICAgPFN0eWxlZFNsb3QgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIiBzaWRlPVwicmlnaHRcIj5cbiAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAge2JvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIHtzZW5kQnV0dG9uUHJvcHMgJiYgKFxuICAgICAgICAgICAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPXt2YXJpYW50fT5cbiAgICAgICAgICAgICAgICA8Um91bmRCdXR0b25cbiAgICAgICAgICAgICAgICAgIGFyaWFBdHRyaWJ1dGVzPXt7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiUHJvY2Vzc2luZyBxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlN1Ym1pdCBxdWVyeVwiLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHsuLi5tZXJnZWRTZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgICAgICBzaXplPXtzaXplID09PSBcIm1cIiA/IFwic1wiIDogXCJ4c1wifVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e21lcmdlZFNlbmRCdXR0b25Qcm9wcy5kaXNhYmxlZCA/PyAhdmFsdWV9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVTZW5kQnV0dG9uQ2xpY2t9XG4gICAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICBpY29uPXtcbiAgICAgICAgICAgICAgICAgICAgaXNQcm9jZXNzaW5nID8gXCJzdG9wLWZpbGxlZFwiIDogbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmljb25cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1N1YlRoZW1lUHJvdmlkZXI+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvSW5saW5lPlxuICAgICAgICA8L1N0eWxlZFNsb3Q+XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPGRpdiByZWY9e2FuaW1hdGVkQm9yZGVyUmVmfT5cbiAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT17dmFyaWFudH0+XG4gICAgICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgZWxldmF0aW9uPXswfVxuICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtzaXplfVxuICAgICAgICAgICAgICAgICAgaGlkZUJvcmRlcj17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICBoYXNTaGFkb3dcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPVwidW5zZXRcIj5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFNsb3RzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3dufVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge2hlYWRlciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8UHJvbXB0SW5wdXRIZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmhlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzU2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7bGVmdEljb24gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkTGVmdEljb25Db250YWluZXIgc2l6ZT17c2l6ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2xlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGVydGlhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZExlZnRJY29uQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBdXRvY29tcGxldGVMaXN0T3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzTGVmdEljb249eyEhbGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cz17cm93c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xlYXJCdXR0b25FbG19XG4gICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhckVsbX1cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRTbG90c0NvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvU3ViVGhlbWVQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9TdWJUaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB7aGludEVsbX1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8QXV0b2NvbXBsZXRlTGlzdFxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcz17YXV0b2NvbXBsZXRlTGlzdEl0ZW1zfVxuICAgICAgICAgIHRyaWdnZXJSZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgaXNPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RGb290ZXI9e2F1dG9jb21wbGV0ZUxpc3RGb290ZXJ9XG4gICAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgICAgb25MaXN0SXRlbUNsaWNrPXtoYW5kbGVMaXN0SXRlbUNsaWNrfVxuICAgICAgICAvPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuKTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1RHdCIn0= */"),StyledTextAreaContainer=styled("div",{target:"e1162mxi1",label:"StyledTextAreaContainer"})({borderRadius:"inherit",position:"relative",width:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5cbmltcG9ydCB0eXBlIHsgUHJvbXB0VGV4dEFyZWFQcm9wcyB9IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQge1xuICBQcm9tcHRUZXh0QXJlYSxcbiAgZ2V0UGFkZGluZ0hvcml6b250YWwsXG4gIGdldFBhZGRpbmdWZXJ0aWNhbCxcbn0gZnJvbSBcIi4vUHJvbXB0VGV4dEFyZWFcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi9Db250YWluZXJcIjtcbmltcG9ydCB0eXBlIHsgQXV0b2NvbXBsZXRlTGlzdFByb3BzIH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuXG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgdHlwZSB7XG4gIFByb21wdElucHV0U2l6ZXMsXG4gIFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmLFxufSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgdHlwZSB7IFJvdW5kQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB7IFJvdW5kQnV0dG9uIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBTdGFjayB9IGZyb20gXCIuLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHR5cGUgeyBJY29uTmFtZSB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcbmltcG9ydCB7IEljb24gfSBmcm9tIFwiLi4vSWNvbi9JY29uXCI7XG5pbXBvcnQgeyBTdWJUaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4uL1N1YlRoZW1lUHJvdmlkZXIvU3ViVGhlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgdXNlQW5pbWF0ZWRCb3JkZXIgfSBmcm9tIFwiLi4vVXRpbGl0aWVzL0FuaW1hdGVkQm9yZGVyL3VzZUFuaW1hdGVkQm9yZGVyXCI7XG5pbXBvcnQge1xuICBQcm9tcHRJbnB1dEhlYWRlcixcbiAgdHlwZSBCYXNlUHJvbXB0SW5wdXRIZWFkZXJQcm9wcyxcbn0gZnJvbSBcIi4vUHJvbXB0SW5wdXRIZWFkZXJcIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8e1xuICBoaWRlQm9yZGVyOiBib29sZWFuO1xuICBoYXNTaGFkb3c6IGJvb2xlYW47XG59PigoeyB0aGVtZSwgaGlkZUJvcmRlciwgaGFzU2hhZG93IH0pID0+ICh7XG4gIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gIC4uLihoYXNTaGFkb3cgJiYge1xuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5kZWZhdWx0UmluZyxcbiAgICB0cmFuc2l0aW9uUHJvcGVydHk6IFwiYm94LXNoYWRvdywgYm9yZGVyLWNvbG9yLCBvdXRsaW5lLWNvbG9yXCIsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uOiB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLmR1cmF0aW9uLFxuICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjpcbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ucHJvbXB0SW5wdXQuZm9jdXMudGltaW5nRnVuY3Rpb24sXG4gIH0pLFxuICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgfSksXG4gIGN1cnNvcjogXCJ0ZXh0XCIsXG4gIG91dGxpbmVDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICBbYCY6aGFzKHRleHRhcmVhOmZvY3VzLXZpc2libGUpYF06IHtcbiAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgb3V0bGluZU9mZnNldDogLTEsXG4gICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcbiAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gIH0sXG59KSk7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG5jb25zdCBTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lciA9IHN0eWxlZC5kaXY8eyBzaXplPzogUHJvbXB0SW5wdXRTaXplcyB9PihcbiAgKHsgdGhlbWUsIHNpemUgfSkgPT4gKHtcbiAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lLCBzaXplKSxcbiAgICBsZWZ0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSwgc2l6ZSksXG4gICAgaGVpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5kaW1lbnNpb24uaWNvbi5tLCAvLyB2aXJ0dWFsIHNpemUgYm94IGZvciBtZWRpdW0gYW5kIHNtYWxsIGljb25zIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnRcbiAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciA9IHN0eWxlZC5kaXY8e1xuICBzaXplPzogUHJvbXB0SW5wdXRTaXplcztcbn0+KCh7IHRoZW1lLCBzaXplIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lLCBzaXplKSxcbiAgcmlnaHQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lLCBzaXplKSxcbiAgdXNlclNlbGVjdDogXCJub25lXCIsXG4gIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxufSkpO1xuXG4vLyBgc3R5bGVkKClgIGNhbm5vdCBwcmVzZXJ2ZSBQaWN0b2dyYW1CdXR0b24ncyBwb2x5bW9ycGhpYyBnZW5lcmljXG4vLyBzaWduYXR1cmUsIHNvIGVtb3Rpb24gaW5mZXJzIGEgcHJvcCB0eXBlIHRoYXQgY29sbGFwc2VzIGl0cyByZXF1aXJlZFxuLy8gYGxhYmVsYCAvIGBhcmlhLWxhYmVsYCAvIGBhcmlhLWxhYmVsbGVkYnlgIGRpc2NyaW1pbmF0ZWQgdW5pb24uIFdlIHJlLWFzc2VydFxuLy8gUGljdG9ncmFtQnV0dG9uJ3MgcG9seW1vcnBoaWMgc2lnbmF0dXJlIHRvIHJlc3RvcmUgdGhlIHJlYWwgcHJvcCBjb250cmFjdCxcbi8vIHdpZGVuZWQgd2l0aCB0aGUgc3R5bGUtb25seSBgYnV0dG9uU2l6ZWAgcHJvcCB0aGlzIHdyYXBwZXIgYWRkcy5cbmNvbnN0IFN0eWxlZENsZWFyQnV0dG9uID0gc3R5bGVkKFBpY3RvZ3JhbUJ1dHRvbik8e1xuICBidXR0b25TaXplPzogUHJvbXB0SW5wdXRTaXplcztcbn0+KCh7IHRoZW1lLCBidXR0b25TaXplIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHJpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gIHRvcDpcbiAgICBidXR0b25TaXplID09PSBcIm1cIlxuICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnNcbiAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54cyxcbn0pKSBhcyA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gIHByb3BzOiBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZjxcbiAgICBDLFxuICAgIFBpY3RvZ3JhbUJ1dHRvblByb3BzICYgeyBidXR0b25TaXplPzogUHJvbXB0SW5wdXRTaXplcyB9XG4gID5cbikgPT4gUmVhY3QuUmVhY3ROb2RlIHwgbnVsbDtcblxuY29uc3QgU3R5bGVkU2xvdHNDb250YWluZXIgPSBzdHlsZWQuZGl2KHtcbiAgZGlzcGxheTogXCJmbGV4XCIsXG4gIGZsZXhXcmFwOiBcIndyYXBcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbn0pO1xuXG4vLyBJdCBuZWVkcyBtYXJnaW4gZHVlIHRvIGVtcHR5IGNsaWNrYWJsZSBzcGFjZSB0aGF0IGZvY3VzZXMgdGhlIHRleHRhcmVhXG4vLyBTbG90cyBzaG91bGQgbm90IGJlIGluIHRoZSBkaXYsIGJlY2F1c2UgYXJlYSBiZXR3ZWVuIHNob3VsZCBiZSBjbGlja2FibGUgYWxzb1xudHlwZSBTbG90UHJvcHMgPSB7XG4gIHNpZGU/OiBcInJpZ2h0XCI7XG59O1xuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8U2xvdFByb3BzPigoeyB0aGVtZSwgc2lkZSB9KSA9PiAoe1xuICBtYXJnaW46IGAwICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc31gLFxuXG4gIC4uLihzaWRlID09PSBcInJpZ2h0XCIgJiYge1xuICAgIG1hcmdpbkxlZnQ6IFwiYXV0b1wiLFxuICB9KSxcbn0pKTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCIgfCBcInNpemVcIj4gJiB7XG4gIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiIHwgXCJ2b2ljZVwiO1xufTtcblxudHlwZSBCb3R0b21Ub29sYmFyQ29uZmlnID0ge1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgbGVmdENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICBoZWFkZXI/OiBCYXNlUHJvbXB0SW5wdXRIZWFkZXJQcm9wcztcbiAgdmFyaWFudD86IFwiYWlcIjtcbiAgc2tpcEFJQW5pbWF0aW9uPzogYm9vbGVhbjtcbiAgYm90dG9tVG9vbGJhcj86IEJvdHRvbVRvb2xiYXJDb25maWc7XG4gIHNlbmRCdXR0b25Qcm9wcz86IFNlbmRCdXR0b25Qcm9wcztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNpemUgb2YgdGhlIFByb21wdElucHV0ICovXG4gIHNpemU/OiBQcm9tcHRJbnB1dFNpemVzO1xuICBvbkNsZWFyOiAoKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gdXNlciBzZWxlY3RzIChvciByZWplY3RzKSBhIGxpc3QgaXRlbSBmcm9tIGF1dG9jb21wbGV0ZSBsaXN0ICovXG4gIG9uQ29tcGxldGU/OiAoe1xuICAgIHZhbHVlLFxuICAgIGNhdGVnb3J5LFxuICAgIGV2dCxcbiAgICBpbmRleCxcbiAgfToge1xuICAgIHZhbHVlOiBMaXN0SXRlbVZhbHVlO1xuICAgIGNhdGVnb3J5Pzogc3RyaW5nO1xuICAgIGV2dD86IFN5bnRoZXRpY0V2ZW50O1xuICAgIGluZGV4PzogbnVtYmVyO1xuICB9KSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIG9uIEVudGVyIGtleSB0byBzdWJtaXQgdGhlIGZvcm0gICovXG4gIG9uRW50ZXJLZXk6ICgpID0+IHZvaWQ7XG4gIC8qKiBSZW5kZXJzIGFuIGljb24gdG8gdGhlIGxlZnQgaW5zaWRlIHRoZSB0ZXh0YXJlYSAqL1xuICBsZWZ0SWNvbj86IEljb25OYW1lO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCIgfCBcImhhc0xlZnRJY29uXCIgfCBcInNpemVcIlxuPiAmXG4gIFBpY2s8XG4gICAgQXV0b2NvbXBsZXRlTGlzdFByb3BzLFxuICAgIFwiYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXCIgfCBcImF1dG9jb21wbGV0ZUxpc3RGb290ZXJcIiB8IFwicG9ydGFsQ29udGFpbmVyXCJcbiAgPjtcblxuY29uc3QgZGVmYXVsdFNlbmRCdXR0b25Qcm9wczogU2VuZEJ1dHRvblByb3BzID0ge1xuICB0eXBlOiBcInN1Ym1pdFwiIGFzIGNvbnN0LFxuICBpY29uOiBcImFycm93LXVwXCIgYXMgY29uc3QsXG59O1xuXG5leHBvcnQgY29uc3QgUHJvbXB0SW5wdXQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgaGVhZGVyLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgdmFyaWFudCxcbiAgICAgIHNpemUgPSBcIm1cIixcbiAgICAgIHNraXBBSUFuaW1hdGlvbiA9IGZhbHNlLFxuICAgICAgcm93cyA9IDEsXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgYW5pbWF0ZWRCb3JkZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgdXNlQW5pbWF0ZWRCb3JkZXIoYW5pbWF0ZWRCb3JkZXJSZWYsIHtcbiAgICAgIHNraXBBbmltYXRpb246IHNraXBBSUFuaW1hdGlvbiB8fCB2YXJpYW50ICE9PSBcImFpXCIsXG4gICAgICByYWRpdXM6IHNpemUgPT09IFwibVwiID8gMTIgOiA4LFxuICAgICAgaXRlcmF0aW9uczogMSxcbiAgICB9KTtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICBpZiAoXG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQgIT09IHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uRW5kXG4gICAgICApIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZSh2YWx1ZS5sZW5ndGgsIHZhbHVlLmxlbmd0aCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgb3BlbkF1dG9jb21wbGV0ZUxpc3QsIGNsb3NlQXV0b2NvbXBsZXRlTGlzdF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlS2V5RG93bjogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAoaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBtZXJnZWRTZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlUHJldmVudEZvY3VzID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBQcmV2ZW50IHRoZSB0ZXh0YXJlYSBmcm9tIGJlaW5nIHVuZm9jdXNlZFxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd24gPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIEZvY3VzIHRleHRhcmVhIHdoZW4gY2xpY2tpbmcgb24gdGhlIGNvbnRhaW5lciBvbmx5XG4gICAgICBpZiAoZXZ0LnRhcmdldCA9PT0gZXZ0LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbGVjdGVkTGlzdEl0ZW0gPVxuICAgICAgc2VsZWN0ZWRJbmRleCAhPT0gLTEgPyBmbGF0dGVuZWRMaXN0SXRlbXNbc2VsZWN0ZWRJbmRleF0gOiBudWxsO1xuXG4gICAgY29uc3QgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbSA9IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQgPyAoXG4gICAgICA8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciBzaXplPXtzaXplfT5cbiAgICAgICAgPFRleHQgY29sb3I9XCJ0ZXJ0aWFyeVwiPntlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50fTwvVGV4dD5cbiAgICAgIDwvU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lcj5cbiAgICApIDogbnVsbDtcblxuICAgIGNvbnN0IGNsZWFyQnV0dG9uRWxtID0gdmFsdWUgPyAoXG4gICAgICA8U3R5bGVkQ2xlYXJCdXR0b25cbiAgICAgICAgc2l6ZT17c2l6ZSA9PT0gXCJtXCIgPyBcInNcIiA6IFwieHNcIn1cbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICBpY29uPVwieC1jaXJjbGUtZmlsbGVkXCJcbiAgICAgICAgYXJpYS1sYWJlbD17Y2xlYXJCdXR0b25BcmlhTGFiZWx9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgICAgYnV0dG9uU2l6ZT17c2l6ZX1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgfHxcbiAgICAgICEhc2VuZEJ1dHRvblByb3BzKSAmJiAoXG4gICAgICA8PlxuICAgICAgICB7Ym90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgJiYgKFxuICAgICAgICAgIDxTdHlsZWRTbG90Pntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgKX1cbiAgICAgICAgPFN0eWxlZFNsb3QgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIiBzaWRlPVwicmlnaHRcIj5cbiAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAge2JvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIHtzZW5kQnV0dG9uUHJvcHMgJiYgKFxuICAgICAgICAgICAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPXt2YXJpYW50fT5cbiAgICAgICAgICAgICAgICA8Um91bmRCdXR0b25cbiAgICAgICAgICAgICAgICAgIGFyaWFBdHRyaWJ1dGVzPXt7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiUHJvY2Vzc2luZyBxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlN1Ym1pdCBxdWVyeVwiLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHsuLi5tZXJnZWRTZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgICAgICBzaXplPXtzaXplID09PSBcIm1cIiA/IFwic1wiIDogXCJ4c1wifVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e21lcmdlZFNlbmRCdXR0b25Qcm9wcy5kaXNhYmxlZCA/PyAhdmFsdWV9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVTZW5kQnV0dG9uQ2xpY2t9XG4gICAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICBpY29uPXtcbiAgICAgICAgICAgICAgICAgICAgaXNQcm9jZXNzaW5nID8gXCJzdG9wLWZpbGxlZFwiIDogbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmljb25cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1N1YlRoZW1lUHJvdmlkZXI+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvSW5saW5lPlxuICAgICAgICA8L1N0eWxlZFNsb3Q+XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPGRpdiByZWY9e2FuaW1hdGVkQm9yZGVyUmVmfT5cbiAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT17dmFyaWFudH0+XG4gICAgICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgZWxldmF0aW9uPXswfVxuICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtzaXplfVxuICAgICAgICAgICAgICAgICAgaGlkZUJvcmRlcj17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICBoYXNTaGFkb3dcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPVwidW5zZXRcIj5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFNsb3RzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3dufVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge2hlYWRlciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8UHJvbXB0SW5wdXRIZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmhlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzU2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7bGVmdEljb24gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkTGVmdEljb25Db250YWluZXIgc2l6ZT17c2l6ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2xlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGVydGlhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZExlZnRJY29uQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBdXRvY29tcGxldGVMaXN0T3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzTGVmdEljb249eyEhbGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cz17cm93c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xlYXJCdXR0b25FbG19XG4gICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhckVsbX1cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRTbG90c0NvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvU3ViVGhlbWVQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9TdWJUaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB7aGludEVsbX1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8QXV0b2NvbXBsZXRlTGlzdFxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcz17YXV0b2NvbXBsZXRlTGlzdEl0ZW1zfVxuICAgICAgICAgIHRyaWdnZXJSZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgaXNPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RGb290ZXI9e2F1dG9jb21wbGV0ZUxpc3RGb290ZXJ9XG4gICAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgICAgb25MaXN0SXRlbUNsaWNrPXtoYW5kbGVMaXN0SXRlbUNsaWNrfVxuICAgICAgICAvPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuKTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpRmdDIn0= */"),StyledLeftIconContainer=styled("div",{target:"e1162mxi2",label:"StyledLeftIconContainer"})(({theme,size})=>({display:"flex",position:"absolute",top:getPaddingVertical(theme,size),left:getPaddingHorizontal(theme,size),height:theme.variables.size.dimension.icon.m,alignItems:"center"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5cbmltcG9ydCB0eXBlIHsgUHJvbXB0VGV4dEFyZWFQcm9wcyB9IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQge1xuICBQcm9tcHRUZXh0QXJlYSxcbiAgZ2V0UGFkZGluZ0hvcml6b250YWwsXG4gIGdldFBhZGRpbmdWZXJ0aWNhbCxcbn0gZnJvbSBcIi4vUHJvbXB0VGV4dEFyZWFcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi9Db250YWluZXJcIjtcbmltcG9ydCB0eXBlIHsgQXV0b2NvbXBsZXRlTGlzdFByb3BzIH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuXG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgdHlwZSB7XG4gIFByb21wdElucHV0U2l6ZXMsXG4gIFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmLFxufSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgdHlwZSB7IFJvdW5kQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB7IFJvdW5kQnV0dG9uIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBTdGFjayB9IGZyb20gXCIuLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHR5cGUgeyBJY29uTmFtZSB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcbmltcG9ydCB7IEljb24gfSBmcm9tIFwiLi4vSWNvbi9JY29uXCI7XG5pbXBvcnQgeyBTdWJUaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4uL1N1YlRoZW1lUHJvdmlkZXIvU3ViVGhlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgdXNlQW5pbWF0ZWRCb3JkZXIgfSBmcm9tIFwiLi4vVXRpbGl0aWVzL0FuaW1hdGVkQm9yZGVyL3VzZUFuaW1hdGVkQm9yZGVyXCI7XG5pbXBvcnQge1xuICBQcm9tcHRJbnB1dEhlYWRlcixcbiAgdHlwZSBCYXNlUHJvbXB0SW5wdXRIZWFkZXJQcm9wcyxcbn0gZnJvbSBcIi4vUHJvbXB0SW5wdXRIZWFkZXJcIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8e1xuICBoaWRlQm9yZGVyOiBib29sZWFuO1xuICBoYXNTaGFkb3c6IGJvb2xlYW47XG59PigoeyB0aGVtZSwgaGlkZUJvcmRlciwgaGFzU2hhZG93IH0pID0+ICh7XG4gIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gIC4uLihoYXNTaGFkb3cgJiYge1xuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5kZWZhdWx0UmluZyxcbiAgICB0cmFuc2l0aW9uUHJvcGVydHk6IFwiYm94LXNoYWRvdywgYm9yZGVyLWNvbG9yLCBvdXRsaW5lLWNvbG9yXCIsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uOiB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLmR1cmF0aW9uLFxuICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjpcbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ucHJvbXB0SW5wdXQuZm9jdXMudGltaW5nRnVuY3Rpb24sXG4gIH0pLFxuICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgfSksXG4gIGN1cnNvcjogXCJ0ZXh0XCIsXG4gIG91dGxpbmVDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICBbYCY6aGFzKHRleHRhcmVhOmZvY3VzLXZpc2libGUpYF06IHtcbiAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgb3V0bGluZU9mZnNldDogLTEsXG4gICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcbiAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gIH0sXG59KSk7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG5jb25zdCBTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lciA9IHN0eWxlZC5kaXY8eyBzaXplPzogUHJvbXB0SW5wdXRTaXplcyB9PihcbiAgKHsgdGhlbWUsIHNpemUgfSkgPT4gKHtcbiAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lLCBzaXplKSxcbiAgICBsZWZ0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSwgc2l6ZSksXG4gICAgaGVpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5kaW1lbnNpb24uaWNvbi5tLCAvLyB2aXJ0dWFsIHNpemUgYm94IGZvciBtZWRpdW0gYW5kIHNtYWxsIGljb25zIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnRcbiAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciA9IHN0eWxlZC5kaXY8e1xuICBzaXplPzogUHJvbXB0SW5wdXRTaXplcztcbn0+KCh7IHRoZW1lLCBzaXplIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lLCBzaXplKSxcbiAgcmlnaHQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lLCBzaXplKSxcbiAgdXNlclNlbGVjdDogXCJub25lXCIsXG4gIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxufSkpO1xuXG4vLyBgc3R5bGVkKClgIGNhbm5vdCBwcmVzZXJ2ZSBQaWN0b2dyYW1CdXR0b24ncyBwb2x5bW9ycGhpYyBnZW5lcmljXG4vLyBzaWduYXR1cmUsIHNvIGVtb3Rpb24gaW5mZXJzIGEgcHJvcCB0eXBlIHRoYXQgY29sbGFwc2VzIGl0cyByZXF1aXJlZFxuLy8gYGxhYmVsYCAvIGBhcmlhLWxhYmVsYCAvIGBhcmlhLWxhYmVsbGVkYnlgIGRpc2NyaW1pbmF0ZWQgdW5pb24uIFdlIHJlLWFzc2VydFxuLy8gUGljdG9ncmFtQnV0dG9uJ3MgcG9seW1vcnBoaWMgc2lnbmF0dXJlIHRvIHJlc3RvcmUgdGhlIHJlYWwgcHJvcCBjb250cmFjdCxcbi8vIHdpZGVuZWQgd2l0aCB0aGUgc3R5bGUtb25seSBgYnV0dG9uU2l6ZWAgcHJvcCB0aGlzIHdyYXBwZXIgYWRkcy5cbmNvbnN0IFN0eWxlZENsZWFyQnV0dG9uID0gc3R5bGVkKFBpY3RvZ3JhbUJ1dHRvbik8e1xuICBidXR0b25TaXplPzogUHJvbXB0SW5wdXRTaXplcztcbn0+KCh7IHRoZW1lLCBidXR0b25TaXplIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHJpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gIHRvcDpcbiAgICBidXR0b25TaXplID09PSBcIm1cIlxuICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnNcbiAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54cyxcbn0pKSBhcyA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gIHByb3BzOiBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZjxcbiAgICBDLFxuICAgIFBpY3RvZ3JhbUJ1dHRvblByb3BzICYgeyBidXR0b25TaXplPzogUHJvbXB0SW5wdXRTaXplcyB9XG4gID5cbikgPT4gUmVhY3QuUmVhY3ROb2RlIHwgbnVsbDtcblxuY29uc3QgU3R5bGVkU2xvdHNDb250YWluZXIgPSBzdHlsZWQuZGl2KHtcbiAgZGlzcGxheTogXCJmbGV4XCIsXG4gIGZsZXhXcmFwOiBcIndyYXBcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbn0pO1xuXG4vLyBJdCBuZWVkcyBtYXJnaW4gZHVlIHRvIGVtcHR5IGNsaWNrYWJsZSBzcGFjZSB0aGF0IGZvY3VzZXMgdGhlIHRleHRhcmVhXG4vLyBTbG90cyBzaG91bGQgbm90IGJlIGluIHRoZSBkaXYsIGJlY2F1c2UgYXJlYSBiZXR3ZWVuIHNob3VsZCBiZSBjbGlja2FibGUgYWxzb1xudHlwZSBTbG90UHJvcHMgPSB7XG4gIHNpZGU/OiBcInJpZ2h0XCI7XG59O1xuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8U2xvdFByb3BzPigoeyB0aGVtZSwgc2lkZSB9KSA9PiAoe1xuICBtYXJnaW46IGAwICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc31gLFxuXG4gIC4uLihzaWRlID09PSBcInJpZ2h0XCIgJiYge1xuICAgIG1hcmdpbkxlZnQ6IFwiYXV0b1wiLFxuICB9KSxcbn0pKTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCIgfCBcInNpemVcIj4gJiB7XG4gIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiIHwgXCJ2b2ljZVwiO1xufTtcblxudHlwZSBCb3R0b21Ub29sYmFyQ29uZmlnID0ge1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgbGVmdENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICBoZWFkZXI/OiBCYXNlUHJvbXB0SW5wdXRIZWFkZXJQcm9wcztcbiAgdmFyaWFudD86IFwiYWlcIjtcbiAgc2tpcEFJQW5pbWF0aW9uPzogYm9vbGVhbjtcbiAgYm90dG9tVG9vbGJhcj86IEJvdHRvbVRvb2xiYXJDb25maWc7XG4gIHNlbmRCdXR0b25Qcm9wcz86IFNlbmRCdXR0b25Qcm9wcztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNpemUgb2YgdGhlIFByb21wdElucHV0ICovXG4gIHNpemU/OiBQcm9tcHRJbnB1dFNpemVzO1xuICBvbkNsZWFyOiAoKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gdXNlciBzZWxlY3RzIChvciByZWplY3RzKSBhIGxpc3QgaXRlbSBmcm9tIGF1dG9jb21wbGV0ZSBsaXN0ICovXG4gIG9uQ29tcGxldGU/OiAoe1xuICAgIHZhbHVlLFxuICAgIGNhdGVnb3J5LFxuICAgIGV2dCxcbiAgICBpbmRleCxcbiAgfToge1xuICAgIHZhbHVlOiBMaXN0SXRlbVZhbHVlO1xuICAgIGNhdGVnb3J5Pzogc3RyaW5nO1xuICAgIGV2dD86IFN5bnRoZXRpY0V2ZW50O1xuICAgIGluZGV4PzogbnVtYmVyO1xuICB9KSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIG9uIEVudGVyIGtleSB0byBzdWJtaXQgdGhlIGZvcm0gICovXG4gIG9uRW50ZXJLZXk6ICgpID0+IHZvaWQ7XG4gIC8qKiBSZW5kZXJzIGFuIGljb24gdG8gdGhlIGxlZnQgaW5zaWRlIHRoZSB0ZXh0YXJlYSAqL1xuICBsZWZ0SWNvbj86IEljb25OYW1lO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCIgfCBcImhhc0xlZnRJY29uXCIgfCBcInNpemVcIlxuPiAmXG4gIFBpY2s8XG4gICAgQXV0b2NvbXBsZXRlTGlzdFByb3BzLFxuICAgIFwiYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXCIgfCBcImF1dG9jb21wbGV0ZUxpc3RGb290ZXJcIiB8IFwicG9ydGFsQ29udGFpbmVyXCJcbiAgPjtcblxuY29uc3QgZGVmYXVsdFNlbmRCdXR0b25Qcm9wczogU2VuZEJ1dHRvblByb3BzID0ge1xuICB0eXBlOiBcInN1Ym1pdFwiIGFzIGNvbnN0LFxuICBpY29uOiBcImFycm93LXVwXCIgYXMgY29uc3QsXG59O1xuXG5leHBvcnQgY29uc3QgUHJvbXB0SW5wdXQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgaGVhZGVyLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgdmFyaWFudCxcbiAgICAgIHNpemUgPSBcIm1cIixcbiAgICAgIHNraXBBSUFuaW1hdGlvbiA9IGZhbHNlLFxuICAgICAgcm93cyA9IDEsXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgYW5pbWF0ZWRCb3JkZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgdXNlQW5pbWF0ZWRCb3JkZXIoYW5pbWF0ZWRCb3JkZXJSZWYsIHtcbiAgICAgIHNraXBBbmltYXRpb246IHNraXBBSUFuaW1hdGlvbiB8fCB2YXJpYW50ICE9PSBcImFpXCIsXG4gICAgICByYWRpdXM6IHNpemUgPT09IFwibVwiID8gMTIgOiA4LFxuICAgICAgaXRlcmF0aW9uczogMSxcbiAgICB9KTtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICBpZiAoXG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQgIT09IHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uRW5kXG4gICAgICApIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZSh2YWx1ZS5sZW5ndGgsIHZhbHVlLmxlbmd0aCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgb3BlbkF1dG9jb21wbGV0ZUxpc3QsIGNsb3NlQXV0b2NvbXBsZXRlTGlzdF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlS2V5RG93bjogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAoaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBtZXJnZWRTZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlUHJldmVudEZvY3VzID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBQcmV2ZW50IHRoZSB0ZXh0YXJlYSBmcm9tIGJlaW5nIHVuZm9jdXNlZFxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd24gPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIEZvY3VzIHRleHRhcmVhIHdoZW4gY2xpY2tpbmcgb24gdGhlIGNvbnRhaW5lciBvbmx5XG4gICAgICBpZiAoZXZ0LnRhcmdldCA9PT0gZXZ0LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbGVjdGVkTGlzdEl0ZW0gPVxuICAgICAgc2VsZWN0ZWRJbmRleCAhPT0gLTEgPyBmbGF0dGVuZWRMaXN0SXRlbXNbc2VsZWN0ZWRJbmRleF0gOiBudWxsO1xuXG4gICAgY29uc3QgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbSA9IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQgPyAoXG4gICAgICA8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciBzaXplPXtzaXplfT5cbiAgICAgICAgPFRleHQgY29sb3I9XCJ0ZXJ0aWFyeVwiPntlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50fTwvVGV4dD5cbiAgICAgIDwvU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lcj5cbiAgICApIDogbnVsbDtcblxuICAgIGNvbnN0IGNsZWFyQnV0dG9uRWxtID0gdmFsdWUgPyAoXG4gICAgICA8U3R5bGVkQ2xlYXJCdXR0b25cbiAgICAgICAgc2l6ZT17c2l6ZSA9PT0gXCJtXCIgPyBcInNcIiA6IFwieHNcIn1cbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICBpY29uPVwieC1jaXJjbGUtZmlsbGVkXCJcbiAgICAgICAgYXJpYS1sYWJlbD17Y2xlYXJCdXR0b25BcmlhTGFiZWx9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgICAgYnV0dG9uU2l6ZT17c2l6ZX1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgfHxcbiAgICAgICEhc2VuZEJ1dHRvblByb3BzKSAmJiAoXG4gICAgICA8PlxuICAgICAgICB7Ym90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgJiYgKFxuICAgICAgICAgIDxTdHlsZWRTbG90Pntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgKX1cbiAgICAgICAgPFN0eWxlZFNsb3QgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIiBzaWRlPVwicmlnaHRcIj5cbiAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAge2JvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIHtzZW5kQnV0dG9uUHJvcHMgJiYgKFxuICAgICAgICAgICAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPXt2YXJpYW50fT5cbiAgICAgICAgICAgICAgICA8Um91bmRCdXR0b25cbiAgICAgICAgICAgICAgICAgIGFyaWFBdHRyaWJ1dGVzPXt7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiUHJvY2Vzc2luZyBxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlN1Ym1pdCBxdWVyeVwiLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHsuLi5tZXJnZWRTZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgICAgICBzaXplPXtzaXplID09PSBcIm1cIiA/IFwic1wiIDogXCJ4c1wifVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e21lcmdlZFNlbmRCdXR0b25Qcm9wcy5kaXNhYmxlZCA/PyAhdmFsdWV9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVTZW5kQnV0dG9uQ2xpY2t9XG4gICAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICBpY29uPXtcbiAgICAgICAgICAgICAgICAgICAgaXNQcm9jZXNzaW5nID8gXCJzdG9wLWZpbGxlZFwiIDogbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmljb25cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1N1YlRoZW1lUHJvdmlkZXI+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvSW5saW5lPlxuICAgICAgICA8L1N0eWxlZFNsb3Q+XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPGRpdiByZWY9e2FuaW1hdGVkQm9yZGVyUmVmfT5cbiAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT17dmFyaWFudH0+XG4gICAgICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgZWxldmF0aW9uPXswfVxuICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtzaXplfVxuICAgICAgICAgICAgICAgICAgaGlkZUJvcmRlcj17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICBoYXNTaGFkb3dcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPVwidW5zZXRcIj5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFNsb3RzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3dufVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge2hlYWRlciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8UHJvbXB0SW5wdXRIZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmhlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzU2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7bGVmdEljb24gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkTGVmdEljb25Db250YWluZXIgc2l6ZT17c2l6ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2xlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGVydGlhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZExlZnRJY29uQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBdXRvY29tcGxldGVMaXN0T3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzTGVmdEljb249eyEhbGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cz17cm93c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xlYXJCdXR0b25FbG19XG4gICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhckVsbX1cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRTbG90c0NvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvU3ViVGhlbWVQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9TdWJUaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB7aGludEVsbX1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8QXV0b2NvbXBsZXRlTGlzdFxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcz17YXV0b2NvbXBsZXRlTGlzdEl0ZW1zfVxuICAgICAgICAgIHRyaWdnZXJSZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgaXNPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RGb290ZXI9e2F1dG9jb21wbGV0ZUxpc3RGb290ZXJ9XG4gICAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgICAgb25MaXN0SXRlbUNsaWNrPXtoYW5kbGVMaXN0SXRlbUNsaWNrfVxuICAgICAgICAvPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuKTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1RmdDIn0= */"),StyledEmptyStateTopRightContentContainer=styled("div",{target:"e1162mxi3",label:"StyledEmptyStateTopRightContentContainer"})(({theme,size})=>({position:"absolute",top:getPaddingVertical(theme,size),right:getPaddingHorizontal(theme,size),userSelect:"none",pointerEvents:"none"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5cbmltcG9ydCB0eXBlIHsgUHJvbXB0VGV4dEFyZWFQcm9wcyB9IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQge1xuICBQcm9tcHRUZXh0QXJlYSxcbiAgZ2V0UGFkZGluZ0hvcml6b250YWwsXG4gIGdldFBhZGRpbmdWZXJ0aWNhbCxcbn0gZnJvbSBcIi4vUHJvbXB0VGV4dEFyZWFcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi9Db250YWluZXJcIjtcbmltcG9ydCB0eXBlIHsgQXV0b2NvbXBsZXRlTGlzdFByb3BzIH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuXG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgdHlwZSB7XG4gIFByb21wdElucHV0U2l6ZXMsXG4gIFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmLFxufSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgdHlwZSB7IFJvdW5kQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB7IFJvdW5kQnV0dG9uIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBTdGFjayB9IGZyb20gXCIuLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHR5cGUgeyBJY29uTmFtZSB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcbmltcG9ydCB7IEljb24gfSBmcm9tIFwiLi4vSWNvbi9JY29uXCI7XG5pbXBvcnQgeyBTdWJUaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4uL1N1YlRoZW1lUHJvdmlkZXIvU3ViVGhlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgdXNlQW5pbWF0ZWRCb3JkZXIgfSBmcm9tIFwiLi4vVXRpbGl0aWVzL0FuaW1hdGVkQm9yZGVyL3VzZUFuaW1hdGVkQm9yZGVyXCI7XG5pbXBvcnQge1xuICBQcm9tcHRJbnB1dEhlYWRlcixcbiAgdHlwZSBCYXNlUHJvbXB0SW5wdXRIZWFkZXJQcm9wcyxcbn0gZnJvbSBcIi4vUHJvbXB0SW5wdXRIZWFkZXJcIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8e1xuICBoaWRlQm9yZGVyOiBib29sZWFuO1xuICBoYXNTaGFkb3c6IGJvb2xlYW47XG59PigoeyB0aGVtZSwgaGlkZUJvcmRlciwgaGFzU2hhZG93IH0pID0+ICh7XG4gIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gIC4uLihoYXNTaGFkb3cgJiYge1xuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5kZWZhdWx0UmluZyxcbiAgICB0cmFuc2l0aW9uUHJvcGVydHk6IFwiYm94LXNoYWRvdywgYm9yZGVyLWNvbG9yLCBvdXRsaW5lLWNvbG9yXCIsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uOiB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLmR1cmF0aW9uLFxuICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjpcbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ucHJvbXB0SW5wdXQuZm9jdXMudGltaW5nRnVuY3Rpb24sXG4gIH0pLFxuICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgfSksXG4gIGN1cnNvcjogXCJ0ZXh0XCIsXG4gIG91dGxpbmVDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICBbYCY6aGFzKHRleHRhcmVhOmZvY3VzLXZpc2libGUpYF06IHtcbiAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgb3V0bGluZU9mZnNldDogLTEsXG4gICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcbiAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gIH0sXG59KSk7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG5jb25zdCBTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lciA9IHN0eWxlZC5kaXY8eyBzaXplPzogUHJvbXB0SW5wdXRTaXplcyB9PihcbiAgKHsgdGhlbWUsIHNpemUgfSkgPT4gKHtcbiAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lLCBzaXplKSxcbiAgICBsZWZ0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSwgc2l6ZSksXG4gICAgaGVpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5kaW1lbnNpb24uaWNvbi5tLCAvLyB2aXJ0dWFsIHNpemUgYm94IGZvciBtZWRpdW0gYW5kIHNtYWxsIGljb25zIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnRcbiAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciA9IHN0eWxlZC5kaXY8e1xuICBzaXplPzogUHJvbXB0SW5wdXRTaXplcztcbn0+KCh7IHRoZW1lLCBzaXplIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lLCBzaXplKSxcbiAgcmlnaHQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lLCBzaXplKSxcbiAgdXNlclNlbGVjdDogXCJub25lXCIsXG4gIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxufSkpO1xuXG4vLyBgc3R5bGVkKClgIGNhbm5vdCBwcmVzZXJ2ZSBQaWN0b2dyYW1CdXR0b24ncyBwb2x5bW9ycGhpYyBnZW5lcmljXG4vLyBzaWduYXR1cmUsIHNvIGVtb3Rpb24gaW5mZXJzIGEgcHJvcCB0eXBlIHRoYXQgY29sbGFwc2VzIGl0cyByZXF1aXJlZFxuLy8gYGxhYmVsYCAvIGBhcmlhLWxhYmVsYCAvIGBhcmlhLWxhYmVsbGVkYnlgIGRpc2NyaW1pbmF0ZWQgdW5pb24uIFdlIHJlLWFzc2VydFxuLy8gUGljdG9ncmFtQnV0dG9uJ3MgcG9seW1vcnBoaWMgc2lnbmF0dXJlIHRvIHJlc3RvcmUgdGhlIHJlYWwgcHJvcCBjb250cmFjdCxcbi8vIHdpZGVuZWQgd2l0aCB0aGUgc3R5bGUtb25seSBgYnV0dG9uU2l6ZWAgcHJvcCB0aGlzIHdyYXBwZXIgYWRkcy5cbmNvbnN0IFN0eWxlZENsZWFyQnV0dG9uID0gc3R5bGVkKFBpY3RvZ3JhbUJ1dHRvbik8e1xuICBidXR0b25TaXplPzogUHJvbXB0SW5wdXRTaXplcztcbn0+KCh7IHRoZW1lLCBidXR0b25TaXplIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHJpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gIHRvcDpcbiAgICBidXR0b25TaXplID09PSBcIm1cIlxuICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnNcbiAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54cyxcbn0pKSBhcyA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gIHByb3BzOiBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZjxcbiAgICBDLFxuICAgIFBpY3RvZ3JhbUJ1dHRvblByb3BzICYgeyBidXR0b25TaXplPzogUHJvbXB0SW5wdXRTaXplcyB9XG4gID5cbikgPT4gUmVhY3QuUmVhY3ROb2RlIHwgbnVsbDtcblxuY29uc3QgU3R5bGVkU2xvdHNDb250YWluZXIgPSBzdHlsZWQuZGl2KHtcbiAgZGlzcGxheTogXCJmbGV4XCIsXG4gIGZsZXhXcmFwOiBcIndyYXBcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbn0pO1xuXG4vLyBJdCBuZWVkcyBtYXJnaW4gZHVlIHRvIGVtcHR5IGNsaWNrYWJsZSBzcGFjZSB0aGF0IGZvY3VzZXMgdGhlIHRleHRhcmVhXG4vLyBTbG90cyBzaG91bGQgbm90IGJlIGluIHRoZSBkaXYsIGJlY2F1c2UgYXJlYSBiZXR3ZWVuIHNob3VsZCBiZSBjbGlja2FibGUgYWxzb1xudHlwZSBTbG90UHJvcHMgPSB7XG4gIHNpZGU/OiBcInJpZ2h0XCI7XG59O1xuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8U2xvdFByb3BzPigoeyB0aGVtZSwgc2lkZSB9KSA9PiAoe1xuICBtYXJnaW46IGAwICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc31gLFxuXG4gIC4uLihzaWRlID09PSBcInJpZ2h0XCIgJiYge1xuICAgIG1hcmdpbkxlZnQ6IFwiYXV0b1wiLFxuICB9KSxcbn0pKTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCIgfCBcInNpemVcIj4gJiB7XG4gIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiIHwgXCJ2b2ljZVwiO1xufTtcblxudHlwZSBCb3R0b21Ub29sYmFyQ29uZmlnID0ge1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgbGVmdENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICBoZWFkZXI/OiBCYXNlUHJvbXB0SW5wdXRIZWFkZXJQcm9wcztcbiAgdmFyaWFudD86IFwiYWlcIjtcbiAgc2tpcEFJQW5pbWF0aW9uPzogYm9vbGVhbjtcbiAgYm90dG9tVG9vbGJhcj86IEJvdHRvbVRvb2xiYXJDb25maWc7XG4gIHNlbmRCdXR0b25Qcm9wcz86IFNlbmRCdXR0b25Qcm9wcztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNpemUgb2YgdGhlIFByb21wdElucHV0ICovXG4gIHNpemU/OiBQcm9tcHRJbnB1dFNpemVzO1xuICBvbkNsZWFyOiAoKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gdXNlciBzZWxlY3RzIChvciByZWplY3RzKSBhIGxpc3QgaXRlbSBmcm9tIGF1dG9jb21wbGV0ZSBsaXN0ICovXG4gIG9uQ29tcGxldGU/OiAoe1xuICAgIHZhbHVlLFxuICAgIGNhdGVnb3J5LFxuICAgIGV2dCxcbiAgICBpbmRleCxcbiAgfToge1xuICAgIHZhbHVlOiBMaXN0SXRlbVZhbHVlO1xuICAgIGNhdGVnb3J5Pzogc3RyaW5nO1xuICAgIGV2dD86IFN5bnRoZXRpY0V2ZW50O1xuICAgIGluZGV4PzogbnVtYmVyO1xuICB9KSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIG9uIEVudGVyIGtleSB0byBzdWJtaXQgdGhlIGZvcm0gICovXG4gIG9uRW50ZXJLZXk6ICgpID0+IHZvaWQ7XG4gIC8qKiBSZW5kZXJzIGFuIGljb24gdG8gdGhlIGxlZnQgaW5zaWRlIHRoZSB0ZXh0YXJlYSAqL1xuICBsZWZ0SWNvbj86IEljb25OYW1lO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCIgfCBcImhhc0xlZnRJY29uXCIgfCBcInNpemVcIlxuPiAmXG4gIFBpY2s8XG4gICAgQXV0b2NvbXBsZXRlTGlzdFByb3BzLFxuICAgIFwiYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXCIgfCBcImF1dG9jb21wbGV0ZUxpc3RGb290ZXJcIiB8IFwicG9ydGFsQ29udGFpbmVyXCJcbiAgPjtcblxuY29uc3QgZGVmYXVsdFNlbmRCdXR0b25Qcm9wczogU2VuZEJ1dHRvblByb3BzID0ge1xuICB0eXBlOiBcInN1Ym1pdFwiIGFzIGNvbnN0LFxuICBpY29uOiBcImFycm93LXVwXCIgYXMgY29uc3QsXG59O1xuXG5leHBvcnQgY29uc3QgUHJvbXB0SW5wdXQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgaGVhZGVyLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgdmFyaWFudCxcbiAgICAgIHNpemUgPSBcIm1cIixcbiAgICAgIHNraXBBSUFuaW1hdGlvbiA9IGZhbHNlLFxuICAgICAgcm93cyA9IDEsXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgYW5pbWF0ZWRCb3JkZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgdXNlQW5pbWF0ZWRCb3JkZXIoYW5pbWF0ZWRCb3JkZXJSZWYsIHtcbiAgICAgIHNraXBBbmltYXRpb246IHNraXBBSUFuaW1hdGlvbiB8fCB2YXJpYW50ICE9PSBcImFpXCIsXG4gICAgICByYWRpdXM6IHNpemUgPT09IFwibVwiID8gMTIgOiA4LFxuICAgICAgaXRlcmF0aW9uczogMSxcbiAgICB9KTtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICBpZiAoXG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQgIT09IHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uRW5kXG4gICAgICApIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZSh2YWx1ZS5sZW5ndGgsIHZhbHVlLmxlbmd0aCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgb3BlbkF1dG9jb21wbGV0ZUxpc3QsIGNsb3NlQXV0b2NvbXBsZXRlTGlzdF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlS2V5RG93bjogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAoaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBtZXJnZWRTZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlUHJldmVudEZvY3VzID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBQcmV2ZW50IHRoZSB0ZXh0YXJlYSBmcm9tIGJlaW5nIHVuZm9jdXNlZFxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd24gPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIEZvY3VzIHRleHRhcmVhIHdoZW4gY2xpY2tpbmcgb24gdGhlIGNvbnRhaW5lciBvbmx5XG4gICAgICBpZiAoZXZ0LnRhcmdldCA9PT0gZXZ0LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbGVjdGVkTGlzdEl0ZW0gPVxuICAgICAgc2VsZWN0ZWRJbmRleCAhPT0gLTEgPyBmbGF0dGVuZWRMaXN0SXRlbXNbc2VsZWN0ZWRJbmRleF0gOiBudWxsO1xuXG4gICAgY29uc3QgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbSA9IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQgPyAoXG4gICAgICA8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciBzaXplPXtzaXplfT5cbiAgICAgICAgPFRleHQgY29sb3I9XCJ0ZXJ0aWFyeVwiPntlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50fTwvVGV4dD5cbiAgICAgIDwvU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lcj5cbiAgICApIDogbnVsbDtcblxuICAgIGNvbnN0IGNsZWFyQnV0dG9uRWxtID0gdmFsdWUgPyAoXG4gICAgICA8U3R5bGVkQ2xlYXJCdXR0b25cbiAgICAgICAgc2l6ZT17c2l6ZSA9PT0gXCJtXCIgPyBcInNcIiA6IFwieHNcIn1cbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICBpY29uPVwieC1jaXJjbGUtZmlsbGVkXCJcbiAgICAgICAgYXJpYS1sYWJlbD17Y2xlYXJCdXR0b25BcmlhTGFiZWx9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgICAgYnV0dG9uU2l6ZT17c2l6ZX1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgfHxcbiAgICAgICEhc2VuZEJ1dHRvblByb3BzKSAmJiAoXG4gICAgICA8PlxuICAgICAgICB7Ym90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgJiYgKFxuICAgICAgICAgIDxTdHlsZWRTbG90Pntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgKX1cbiAgICAgICAgPFN0eWxlZFNsb3QgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIiBzaWRlPVwicmlnaHRcIj5cbiAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAge2JvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIHtzZW5kQnV0dG9uUHJvcHMgJiYgKFxuICAgICAgICAgICAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPXt2YXJpYW50fT5cbiAgICAgICAgICAgICAgICA8Um91bmRCdXR0b25cbiAgICAgICAgICAgICAgICAgIGFyaWFBdHRyaWJ1dGVzPXt7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiUHJvY2Vzc2luZyBxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlN1Ym1pdCBxdWVyeVwiLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHsuLi5tZXJnZWRTZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgICAgICBzaXplPXtzaXplID09PSBcIm1cIiA/IFwic1wiIDogXCJ4c1wifVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e21lcmdlZFNlbmRCdXR0b25Qcm9wcy5kaXNhYmxlZCA/PyAhdmFsdWV9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVTZW5kQnV0dG9uQ2xpY2t9XG4gICAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICBpY29uPXtcbiAgICAgICAgICAgICAgICAgICAgaXNQcm9jZXNzaW5nID8gXCJzdG9wLWZpbGxlZFwiIDogbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmljb25cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1N1YlRoZW1lUHJvdmlkZXI+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvSW5saW5lPlxuICAgICAgICA8L1N0eWxlZFNsb3Q+XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPGRpdiByZWY9e2FuaW1hdGVkQm9yZGVyUmVmfT5cbiAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT17dmFyaWFudH0+XG4gICAgICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgZWxldmF0aW9uPXswfVxuICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtzaXplfVxuICAgICAgICAgICAgICAgICAgaGlkZUJvcmRlcj17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICBoYXNTaGFkb3dcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPVwidW5zZXRcIj5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFNsb3RzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3dufVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge2hlYWRlciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8UHJvbXB0SW5wdXRIZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmhlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzU2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7bGVmdEljb24gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkTGVmdEljb25Db250YWluZXIgc2l6ZT17c2l6ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2xlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGVydGlhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZExlZnRJY29uQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBdXRvY29tcGxldGVMaXN0T3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzTGVmdEljb249eyEhbGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cz17cm93c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xlYXJCdXR0b25FbG19XG4gICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhckVsbX1cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRTbG90c0NvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvU3ViVGhlbWVQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9TdWJUaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB7aGludEVsbX1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8QXV0b2NvbXBsZXRlTGlzdFxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcz17YXV0b2NvbXBsZXRlTGlzdEl0ZW1zfVxuICAgICAgICAgIHRyaWdnZXJSZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgaXNPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RGb290ZXI9e2F1dG9jb21wbGV0ZUxpc3RGb290ZXJ9XG4gICAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgICAgb25MaXN0SXRlbUNsaWNrPXtoYW5kbGVMaXN0SXRlbUNsaWNrfVxuICAgICAgICAvPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuKTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFrR2lEIn0= */"),StyledClearButton=styled(PictogramButton,{target:"e1162mxi4",label:"StyledClearButton"})(({theme,buttonSize})=>({position:"absolute",right:theme.variables.size.spacing.s,top:"m"===buttonSize?theme.variables.size.spacing.s:theme.variables.size.spacing.xs}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5cbmltcG9ydCB0eXBlIHsgUHJvbXB0VGV4dEFyZWFQcm9wcyB9IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQge1xuICBQcm9tcHRUZXh0QXJlYSxcbiAgZ2V0UGFkZGluZ0hvcml6b250YWwsXG4gIGdldFBhZGRpbmdWZXJ0aWNhbCxcbn0gZnJvbSBcIi4vUHJvbXB0VGV4dEFyZWFcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi9Db250YWluZXJcIjtcbmltcG9ydCB0eXBlIHsgQXV0b2NvbXBsZXRlTGlzdFByb3BzIH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuXG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgdHlwZSB7XG4gIFByb21wdElucHV0U2l6ZXMsXG4gIFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmLFxufSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgdHlwZSB7IFJvdW5kQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB7IFJvdW5kQnV0dG9uIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBTdGFjayB9IGZyb20gXCIuLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHR5cGUgeyBJY29uTmFtZSB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcbmltcG9ydCB7IEljb24gfSBmcm9tIFwiLi4vSWNvbi9JY29uXCI7XG5pbXBvcnQgeyBTdWJUaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4uL1N1YlRoZW1lUHJvdmlkZXIvU3ViVGhlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgdXNlQW5pbWF0ZWRCb3JkZXIgfSBmcm9tIFwiLi4vVXRpbGl0aWVzL0FuaW1hdGVkQm9yZGVyL3VzZUFuaW1hdGVkQm9yZGVyXCI7XG5pbXBvcnQge1xuICBQcm9tcHRJbnB1dEhlYWRlcixcbiAgdHlwZSBCYXNlUHJvbXB0SW5wdXRIZWFkZXJQcm9wcyxcbn0gZnJvbSBcIi4vUHJvbXB0SW5wdXRIZWFkZXJcIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8e1xuICBoaWRlQm9yZGVyOiBib29sZWFuO1xuICBoYXNTaGFkb3c6IGJvb2xlYW47XG59PigoeyB0aGVtZSwgaGlkZUJvcmRlciwgaGFzU2hhZG93IH0pID0+ICh7XG4gIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gIC4uLihoYXNTaGFkb3cgJiYge1xuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5kZWZhdWx0UmluZyxcbiAgICB0cmFuc2l0aW9uUHJvcGVydHk6IFwiYm94LXNoYWRvdywgYm9yZGVyLWNvbG9yLCBvdXRsaW5lLWNvbG9yXCIsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uOiB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLmR1cmF0aW9uLFxuICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjpcbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ucHJvbXB0SW5wdXQuZm9jdXMudGltaW5nRnVuY3Rpb24sXG4gIH0pLFxuICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgfSksXG4gIGN1cnNvcjogXCJ0ZXh0XCIsXG4gIG91dGxpbmVDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICBbYCY6aGFzKHRleHRhcmVhOmZvY3VzLXZpc2libGUpYF06IHtcbiAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgb3V0bGluZU9mZnNldDogLTEsXG4gICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcbiAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gIH0sXG59KSk7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG5jb25zdCBTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lciA9IHN0eWxlZC5kaXY8eyBzaXplPzogUHJvbXB0SW5wdXRTaXplcyB9PihcbiAgKHsgdGhlbWUsIHNpemUgfSkgPT4gKHtcbiAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lLCBzaXplKSxcbiAgICBsZWZ0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSwgc2l6ZSksXG4gICAgaGVpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5kaW1lbnNpb24uaWNvbi5tLCAvLyB2aXJ0dWFsIHNpemUgYm94IGZvciBtZWRpdW0gYW5kIHNtYWxsIGljb25zIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnRcbiAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciA9IHN0eWxlZC5kaXY8e1xuICBzaXplPzogUHJvbXB0SW5wdXRTaXplcztcbn0+KCh7IHRoZW1lLCBzaXplIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lLCBzaXplKSxcbiAgcmlnaHQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lLCBzaXplKSxcbiAgdXNlclNlbGVjdDogXCJub25lXCIsXG4gIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxufSkpO1xuXG4vLyBgc3R5bGVkKClgIGNhbm5vdCBwcmVzZXJ2ZSBQaWN0b2dyYW1CdXR0b24ncyBwb2x5bW9ycGhpYyBnZW5lcmljXG4vLyBzaWduYXR1cmUsIHNvIGVtb3Rpb24gaW5mZXJzIGEgcHJvcCB0eXBlIHRoYXQgY29sbGFwc2VzIGl0cyByZXF1aXJlZFxuLy8gYGxhYmVsYCAvIGBhcmlhLWxhYmVsYCAvIGBhcmlhLWxhYmVsbGVkYnlgIGRpc2NyaW1pbmF0ZWQgdW5pb24uIFdlIHJlLWFzc2VydFxuLy8gUGljdG9ncmFtQnV0dG9uJ3MgcG9seW1vcnBoaWMgc2lnbmF0dXJlIHRvIHJlc3RvcmUgdGhlIHJlYWwgcHJvcCBjb250cmFjdCxcbi8vIHdpZGVuZWQgd2l0aCB0aGUgc3R5bGUtb25seSBgYnV0dG9uU2l6ZWAgcHJvcCB0aGlzIHdyYXBwZXIgYWRkcy5cbmNvbnN0IFN0eWxlZENsZWFyQnV0dG9uID0gc3R5bGVkKFBpY3RvZ3JhbUJ1dHRvbik8e1xuICBidXR0b25TaXplPzogUHJvbXB0SW5wdXRTaXplcztcbn0+KCh7IHRoZW1lLCBidXR0b25TaXplIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHJpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gIHRvcDpcbiAgICBidXR0b25TaXplID09PSBcIm1cIlxuICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnNcbiAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54cyxcbn0pKSBhcyA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gIHByb3BzOiBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZjxcbiAgICBDLFxuICAgIFBpY3RvZ3JhbUJ1dHRvblByb3BzICYgeyBidXR0b25TaXplPzogUHJvbXB0SW5wdXRTaXplcyB9XG4gID5cbikgPT4gUmVhY3QuUmVhY3ROb2RlIHwgbnVsbDtcblxuY29uc3QgU3R5bGVkU2xvdHNDb250YWluZXIgPSBzdHlsZWQuZGl2KHtcbiAgZGlzcGxheTogXCJmbGV4XCIsXG4gIGZsZXhXcmFwOiBcIndyYXBcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbn0pO1xuXG4vLyBJdCBuZWVkcyBtYXJnaW4gZHVlIHRvIGVtcHR5IGNsaWNrYWJsZSBzcGFjZSB0aGF0IGZvY3VzZXMgdGhlIHRleHRhcmVhXG4vLyBTbG90cyBzaG91bGQgbm90IGJlIGluIHRoZSBkaXYsIGJlY2F1c2UgYXJlYSBiZXR3ZWVuIHNob3VsZCBiZSBjbGlja2FibGUgYWxzb1xudHlwZSBTbG90UHJvcHMgPSB7XG4gIHNpZGU/OiBcInJpZ2h0XCI7XG59O1xuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8U2xvdFByb3BzPigoeyB0aGVtZSwgc2lkZSB9KSA9PiAoe1xuICBtYXJnaW46IGAwICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc31gLFxuXG4gIC4uLihzaWRlID09PSBcInJpZ2h0XCIgJiYge1xuICAgIG1hcmdpbkxlZnQ6IFwiYXV0b1wiLFxuICB9KSxcbn0pKTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCIgfCBcInNpemVcIj4gJiB7XG4gIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiIHwgXCJ2b2ljZVwiO1xufTtcblxudHlwZSBCb3R0b21Ub29sYmFyQ29uZmlnID0ge1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgbGVmdENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICBoZWFkZXI/OiBCYXNlUHJvbXB0SW5wdXRIZWFkZXJQcm9wcztcbiAgdmFyaWFudD86IFwiYWlcIjtcbiAgc2tpcEFJQW5pbWF0aW9uPzogYm9vbGVhbjtcbiAgYm90dG9tVG9vbGJhcj86IEJvdHRvbVRvb2xiYXJDb25maWc7XG4gIHNlbmRCdXR0b25Qcm9wcz86IFNlbmRCdXR0b25Qcm9wcztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNpemUgb2YgdGhlIFByb21wdElucHV0ICovXG4gIHNpemU/OiBQcm9tcHRJbnB1dFNpemVzO1xuICBvbkNsZWFyOiAoKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gdXNlciBzZWxlY3RzIChvciByZWplY3RzKSBhIGxpc3QgaXRlbSBmcm9tIGF1dG9jb21wbGV0ZSBsaXN0ICovXG4gIG9uQ29tcGxldGU/OiAoe1xuICAgIHZhbHVlLFxuICAgIGNhdGVnb3J5LFxuICAgIGV2dCxcbiAgICBpbmRleCxcbiAgfToge1xuICAgIHZhbHVlOiBMaXN0SXRlbVZhbHVlO1xuICAgIGNhdGVnb3J5Pzogc3RyaW5nO1xuICAgIGV2dD86IFN5bnRoZXRpY0V2ZW50O1xuICAgIGluZGV4PzogbnVtYmVyO1xuICB9KSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIG9uIEVudGVyIGtleSB0byBzdWJtaXQgdGhlIGZvcm0gICovXG4gIG9uRW50ZXJLZXk6ICgpID0+IHZvaWQ7XG4gIC8qKiBSZW5kZXJzIGFuIGljb24gdG8gdGhlIGxlZnQgaW5zaWRlIHRoZSB0ZXh0YXJlYSAqL1xuICBsZWZ0SWNvbj86IEljb25OYW1lO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCIgfCBcImhhc0xlZnRJY29uXCIgfCBcInNpemVcIlxuPiAmXG4gIFBpY2s8XG4gICAgQXV0b2NvbXBsZXRlTGlzdFByb3BzLFxuICAgIFwiYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXCIgfCBcImF1dG9jb21wbGV0ZUxpc3RGb290ZXJcIiB8IFwicG9ydGFsQ29udGFpbmVyXCJcbiAgPjtcblxuY29uc3QgZGVmYXVsdFNlbmRCdXR0b25Qcm9wczogU2VuZEJ1dHRvblByb3BzID0ge1xuICB0eXBlOiBcInN1Ym1pdFwiIGFzIGNvbnN0LFxuICBpY29uOiBcImFycm93LXVwXCIgYXMgY29uc3QsXG59O1xuXG5leHBvcnQgY29uc3QgUHJvbXB0SW5wdXQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgaGVhZGVyLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgdmFyaWFudCxcbiAgICAgIHNpemUgPSBcIm1cIixcbiAgICAgIHNraXBBSUFuaW1hdGlvbiA9IGZhbHNlLFxuICAgICAgcm93cyA9IDEsXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgYW5pbWF0ZWRCb3JkZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgdXNlQW5pbWF0ZWRCb3JkZXIoYW5pbWF0ZWRCb3JkZXJSZWYsIHtcbiAgICAgIHNraXBBbmltYXRpb246IHNraXBBSUFuaW1hdGlvbiB8fCB2YXJpYW50ICE9PSBcImFpXCIsXG4gICAgICByYWRpdXM6IHNpemUgPT09IFwibVwiID8gMTIgOiA4LFxuICAgICAgaXRlcmF0aW9uczogMSxcbiAgICB9KTtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICBpZiAoXG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQgIT09IHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uRW5kXG4gICAgICApIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZSh2YWx1ZS5sZW5ndGgsIHZhbHVlLmxlbmd0aCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgb3BlbkF1dG9jb21wbGV0ZUxpc3QsIGNsb3NlQXV0b2NvbXBsZXRlTGlzdF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlS2V5RG93bjogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAoaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBtZXJnZWRTZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlUHJldmVudEZvY3VzID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBQcmV2ZW50IHRoZSB0ZXh0YXJlYSBmcm9tIGJlaW5nIHVuZm9jdXNlZFxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd24gPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIEZvY3VzIHRleHRhcmVhIHdoZW4gY2xpY2tpbmcgb24gdGhlIGNvbnRhaW5lciBvbmx5XG4gICAgICBpZiAoZXZ0LnRhcmdldCA9PT0gZXZ0LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbGVjdGVkTGlzdEl0ZW0gPVxuICAgICAgc2VsZWN0ZWRJbmRleCAhPT0gLTEgPyBmbGF0dGVuZWRMaXN0SXRlbXNbc2VsZWN0ZWRJbmRleF0gOiBudWxsO1xuXG4gICAgY29uc3QgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbSA9IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQgPyAoXG4gICAgICA8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciBzaXplPXtzaXplfT5cbiAgICAgICAgPFRleHQgY29sb3I9XCJ0ZXJ0aWFyeVwiPntlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50fTwvVGV4dD5cbiAgICAgIDwvU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lcj5cbiAgICApIDogbnVsbDtcblxuICAgIGNvbnN0IGNsZWFyQnV0dG9uRWxtID0gdmFsdWUgPyAoXG4gICAgICA8U3R5bGVkQ2xlYXJCdXR0b25cbiAgICAgICAgc2l6ZT17c2l6ZSA9PT0gXCJtXCIgPyBcInNcIiA6IFwieHNcIn1cbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICBpY29uPVwieC1jaXJjbGUtZmlsbGVkXCJcbiAgICAgICAgYXJpYS1sYWJlbD17Y2xlYXJCdXR0b25BcmlhTGFiZWx9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgICAgYnV0dG9uU2l6ZT17c2l6ZX1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgfHxcbiAgICAgICEhc2VuZEJ1dHRvblByb3BzKSAmJiAoXG4gICAgICA8PlxuICAgICAgICB7Ym90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgJiYgKFxuICAgICAgICAgIDxTdHlsZWRTbG90Pntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgKX1cbiAgICAgICAgPFN0eWxlZFNsb3QgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIiBzaWRlPVwicmlnaHRcIj5cbiAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAge2JvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIHtzZW5kQnV0dG9uUHJvcHMgJiYgKFxuICAgICAgICAgICAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPXt2YXJpYW50fT5cbiAgICAgICAgICAgICAgICA8Um91bmRCdXR0b25cbiAgICAgICAgICAgICAgICAgIGFyaWFBdHRyaWJ1dGVzPXt7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiUHJvY2Vzc2luZyBxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlN1Ym1pdCBxdWVyeVwiLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHsuLi5tZXJnZWRTZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgICAgICBzaXplPXtzaXplID09PSBcIm1cIiA/IFwic1wiIDogXCJ4c1wifVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e21lcmdlZFNlbmRCdXR0b25Qcm9wcy5kaXNhYmxlZCA/PyAhdmFsdWV9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVTZW5kQnV0dG9uQ2xpY2t9XG4gICAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICBpY29uPXtcbiAgICAgICAgICAgICAgICAgICAgaXNQcm9jZXNzaW5nID8gXCJzdG9wLWZpbGxlZFwiIDogbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmljb25cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1N1YlRoZW1lUHJvdmlkZXI+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvSW5saW5lPlxuICAgICAgICA8L1N0eWxlZFNsb3Q+XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPGRpdiByZWY9e2FuaW1hdGVkQm9yZGVyUmVmfT5cbiAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT17dmFyaWFudH0+XG4gICAgICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgZWxldmF0aW9uPXswfVxuICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtzaXplfVxuICAgICAgICAgICAgICAgICAgaGlkZUJvcmRlcj17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICBoYXNTaGFkb3dcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPVwidW5zZXRcIj5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFNsb3RzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3dufVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge2hlYWRlciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8UHJvbXB0SW5wdXRIZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmhlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzU2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7bGVmdEljb24gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkTGVmdEljb25Db250YWluZXIgc2l6ZT17c2l6ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2xlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGVydGlhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZExlZnRJY29uQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBdXRvY29tcGxldGVMaXN0T3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzTGVmdEljb249eyEhbGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cz17cm93c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xlYXJCdXR0b25FbG19XG4gICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhckVsbX1cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRTbG90c0NvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvU3ViVGhlbWVQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9TdWJUaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB7aGludEVsbX1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8QXV0b2NvbXBsZXRlTGlzdFxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcz17YXV0b2NvbXBsZXRlTGlzdEl0ZW1zfVxuICAgICAgICAgIHRyaWdnZXJSZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgaXNPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RGb290ZXI9e2F1dG9jb21wbGV0ZUxpc3RGb290ZXJ9XG4gICAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgICAgb25MaXN0SXRlbUNsaWNrPXtoYW5kbGVMaXN0SXRlbUNsaWNrfVxuICAgICAgICAvPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuKTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpSDBCIn0= */"),StyledSlotsContainer=styled("div",{target:"e1162mxi5",label:"StyledSlotsContainer"})({display:"flex",flexWrap:"wrap",alignItems:"center"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5cbmltcG9ydCB0eXBlIHsgUHJvbXB0VGV4dEFyZWFQcm9wcyB9IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQge1xuICBQcm9tcHRUZXh0QXJlYSxcbiAgZ2V0UGFkZGluZ0hvcml6b250YWwsXG4gIGdldFBhZGRpbmdWZXJ0aWNhbCxcbn0gZnJvbSBcIi4vUHJvbXB0VGV4dEFyZWFcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi9Db250YWluZXJcIjtcbmltcG9ydCB0eXBlIHsgQXV0b2NvbXBsZXRlTGlzdFByb3BzIH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuXG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgdHlwZSB7XG4gIFByb21wdElucHV0U2l6ZXMsXG4gIFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmLFxufSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgdHlwZSB7IFJvdW5kQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB7IFJvdW5kQnV0dG9uIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBTdGFjayB9IGZyb20gXCIuLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHR5cGUgeyBJY29uTmFtZSB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcbmltcG9ydCB7IEljb24gfSBmcm9tIFwiLi4vSWNvbi9JY29uXCI7XG5pbXBvcnQgeyBTdWJUaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4uL1N1YlRoZW1lUHJvdmlkZXIvU3ViVGhlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgdXNlQW5pbWF0ZWRCb3JkZXIgfSBmcm9tIFwiLi4vVXRpbGl0aWVzL0FuaW1hdGVkQm9yZGVyL3VzZUFuaW1hdGVkQm9yZGVyXCI7XG5pbXBvcnQge1xuICBQcm9tcHRJbnB1dEhlYWRlcixcbiAgdHlwZSBCYXNlUHJvbXB0SW5wdXRIZWFkZXJQcm9wcyxcbn0gZnJvbSBcIi4vUHJvbXB0SW5wdXRIZWFkZXJcIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8e1xuICBoaWRlQm9yZGVyOiBib29sZWFuO1xuICBoYXNTaGFkb3c6IGJvb2xlYW47XG59PigoeyB0aGVtZSwgaGlkZUJvcmRlciwgaGFzU2hhZG93IH0pID0+ICh7XG4gIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gIC4uLihoYXNTaGFkb3cgJiYge1xuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5kZWZhdWx0UmluZyxcbiAgICB0cmFuc2l0aW9uUHJvcGVydHk6IFwiYm94LXNoYWRvdywgYm9yZGVyLWNvbG9yLCBvdXRsaW5lLWNvbG9yXCIsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uOiB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLmR1cmF0aW9uLFxuICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjpcbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ucHJvbXB0SW5wdXQuZm9jdXMudGltaW5nRnVuY3Rpb24sXG4gIH0pLFxuICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgfSksXG4gIGN1cnNvcjogXCJ0ZXh0XCIsXG4gIG91dGxpbmVDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICBbYCY6aGFzKHRleHRhcmVhOmZvY3VzLXZpc2libGUpYF06IHtcbiAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgb3V0bGluZU9mZnNldDogLTEsXG4gICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcbiAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gIH0sXG59KSk7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG5jb25zdCBTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lciA9IHN0eWxlZC5kaXY8eyBzaXplPzogUHJvbXB0SW5wdXRTaXplcyB9PihcbiAgKHsgdGhlbWUsIHNpemUgfSkgPT4gKHtcbiAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lLCBzaXplKSxcbiAgICBsZWZ0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSwgc2l6ZSksXG4gICAgaGVpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5kaW1lbnNpb24uaWNvbi5tLCAvLyB2aXJ0dWFsIHNpemUgYm94IGZvciBtZWRpdW0gYW5kIHNtYWxsIGljb25zIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnRcbiAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciA9IHN0eWxlZC5kaXY8e1xuICBzaXplPzogUHJvbXB0SW5wdXRTaXplcztcbn0+KCh7IHRoZW1lLCBzaXplIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lLCBzaXplKSxcbiAgcmlnaHQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lLCBzaXplKSxcbiAgdXNlclNlbGVjdDogXCJub25lXCIsXG4gIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxufSkpO1xuXG4vLyBgc3R5bGVkKClgIGNhbm5vdCBwcmVzZXJ2ZSBQaWN0b2dyYW1CdXR0b24ncyBwb2x5bW9ycGhpYyBnZW5lcmljXG4vLyBzaWduYXR1cmUsIHNvIGVtb3Rpb24gaW5mZXJzIGEgcHJvcCB0eXBlIHRoYXQgY29sbGFwc2VzIGl0cyByZXF1aXJlZFxuLy8gYGxhYmVsYCAvIGBhcmlhLWxhYmVsYCAvIGBhcmlhLWxhYmVsbGVkYnlgIGRpc2NyaW1pbmF0ZWQgdW5pb24uIFdlIHJlLWFzc2VydFxuLy8gUGljdG9ncmFtQnV0dG9uJ3MgcG9seW1vcnBoaWMgc2lnbmF0dXJlIHRvIHJlc3RvcmUgdGhlIHJlYWwgcHJvcCBjb250cmFjdCxcbi8vIHdpZGVuZWQgd2l0aCB0aGUgc3R5bGUtb25seSBgYnV0dG9uU2l6ZWAgcHJvcCB0aGlzIHdyYXBwZXIgYWRkcy5cbmNvbnN0IFN0eWxlZENsZWFyQnV0dG9uID0gc3R5bGVkKFBpY3RvZ3JhbUJ1dHRvbik8e1xuICBidXR0b25TaXplPzogUHJvbXB0SW5wdXRTaXplcztcbn0+KCh7IHRoZW1lLCBidXR0b25TaXplIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHJpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gIHRvcDpcbiAgICBidXR0b25TaXplID09PSBcIm1cIlxuICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnNcbiAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54cyxcbn0pKSBhcyA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gIHByb3BzOiBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZjxcbiAgICBDLFxuICAgIFBpY3RvZ3JhbUJ1dHRvblByb3BzICYgeyBidXR0b25TaXplPzogUHJvbXB0SW5wdXRTaXplcyB9XG4gID5cbikgPT4gUmVhY3QuUmVhY3ROb2RlIHwgbnVsbDtcblxuY29uc3QgU3R5bGVkU2xvdHNDb250YWluZXIgPSBzdHlsZWQuZGl2KHtcbiAgZGlzcGxheTogXCJmbGV4XCIsXG4gIGZsZXhXcmFwOiBcIndyYXBcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbn0pO1xuXG4vLyBJdCBuZWVkcyBtYXJnaW4gZHVlIHRvIGVtcHR5IGNsaWNrYWJsZSBzcGFjZSB0aGF0IGZvY3VzZXMgdGhlIHRleHRhcmVhXG4vLyBTbG90cyBzaG91bGQgbm90IGJlIGluIHRoZSBkaXYsIGJlY2F1c2UgYXJlYSBiZXR3ZWVuIHNob3VsZCBiZSBjbGlja2FibGUgYWxzb1xudHlwZSBTbG90UHJvcHMgPSB7XG4gIHNpZGU/OiBcInJpZ2h0XCI7XG59O1xuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8U2xvdFByb3BzPigoeyB0aGVtZSwgc2lkZSB9KSA9PiAoe1xuICBtYXJnaW46IGAwICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc31gLFxuXG4gIC4uLihzaWRlID09PSBcInJpZ2h0XCIgJiYge1xuICAgIG1hcmdpbkxlZnQ6IFwiYXV0b1wiLFxuICB9KSxcbn0pKTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCIgfCBcInNpemVcIj4gJiB7XG4gIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiIHwgXCJ2b2ljZVwiO1xufTtcblxudHlwZSBCb3R0b21Ub29sYmFyQ29uZmlnID0ge1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgbGVmdENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICBoZWFkZXI/OiBCYXNlUHJvbXB0SW5wdXRIZWFkZXJQcm9wcztcbiAgdmFyaWFudD86IFwiYWlcIjtcbiAgc2tpcEFJQW5pbWF0aW9uPzogYm9vbGVhbjtcbiAgYm90dG9tVG9vbGJhcj86IEJvdHRvbVRvb2xiYXJDb25maWc7XG4gIHNlbmRCdXR0b25Qcm9wcz86IFNlbmRCdXR0b25Qcm9wcztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNpemUgb2YgdGhlIFByb21wdElucHV0ICovXG4gIHNpemU/OiBQcm9tcHRJbnB1dFNpemVzO1xuICBvbkNsZWFyOiAoKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gdXNlciBzZWxlY3RzIChvciByZWplY3RzKSBhIGxpc3QgaXRlbSBmcm9tIGF1dG9jb21wbGV0ZSBsaXN0ICovXG4gIG9uQ29tcGxldGU/OiAoe1xuICAgIHZhbHVlLFxuICAgIGNhdGVnb3J5LFxuICAgIGV2dCxcbiAgICBpbmRleCxcbiAgfToge1xuICAgIHZhbHVlOiBMaXN0SXRlbVZhbHVlO1xuICAgIGNhdGVnb3J5Pzogc3RyaW5nO1xuICAgIGV2dD86IFN5bnRoZXRpY0V2ZW50O1xuICAgIGluZGV4PzogbnVtYmVyO1xuICB9KSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIG9uIEVudGVyIGtleSB0byBzdWJtaXQgdGhlIGZvcm0gICovXG4gIG9uRW50ZXJLZXk6ICgpID0+IHZvaWQ7XG4gIC8qKiBSZW5kZXJzIGFuIGljb24gdG8gdGhlIGxlZnQgaW5zaWRlIHRoZSB0ZXh0YXJlYSAqL1xuICBsZWZ0SWNvbj86IEljb25OYW1lO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCIgfCBcImhhc0xlZnRJY29uXCIgfCBcInNpemVcIlxuPiAmXG4gIFBpY2s8XG4gICAgQXV0b2NvbXBsZXRlTGlzdFByb3BzLFxuICAgIFwiYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXCIgfCBcImF1dG9jb21wbGV0ZUxpc3RGb290ZXJcIiB8IFwicG9ydGFsQ29udGFpbmVyXCJcbiAgPjtcblxuY29uc3QgZGVmYXVsdFNlbmRCdXR0b25Qcm9wczogU2VuZEJ1dHRvblByb3BzID0ge1xuICB0eXBlOiBcInN1Ym1pdFwiIGFzIGNvbnN0LFxuICBpY29uOiBcImFycm93LXVwXCIgYXMgY29uc3QsXG59O1xuXG5leHBvcnQgY29uc3QgUHJvbXB0SW5wdXQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgaGVhZGVyLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgdmFyaWFudCxcbiAgICAgIHNpemUgPSBcIm1cIixcbiAgICAgIHNraXBBSUFuaW1hdGlvbiA9IGZhbHNlLFxuICAgICAgcm93cyA9IDEsXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgYW5pbWF0ZWRCb3JkZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgdXNlQW5pbWF0ZWRCb3JkZXIoYW5pbWF0ZWRCb3JkZXJSZWYsIHtcbiAgICAgIHNraXBBbmltYXRpb246IHNraXBBSUFuaW1hdGlvbiB8fCB2YXJpYW50ICE9PSBcImFpXCIsXG4gICAgICByYWRpdXM6IHNpemUgPT09IFwibVwiID8gMTIgOiA4LFxuICAgICAgaXRlcmF0aW9uczogMSxcbiAgICB9KTtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICBpZiAoXG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQgIT09IHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uRW5kXG4gICAgICApIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZSh2YWx1ZS5sZW5ndGgsIHZhbHVlLmxlbmd0aCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgb3BlbkF1dG9jb21wbGV0ZUxpc3QsIGNsb3NlQXV0b2NvbXBsZXRlTGlzdF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlS2V5RG93bjogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAoaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBtZXJnZWRTZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlUHJldmVudEZvY3VzID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBQcmV2ZW50IHRoZSB0ZXh0YXJlYSBmcm9tIGJlaW5nIHVuZm9jdXNlZFxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd24gPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIEZvY3VzIHRleHRhcmVhIHdoZW4gY2xpY2tpbmcgb24gdGhlIGNvbnRhaW5lciBvbmx5XG4gICAgICBpZiAoZXZ0LnRhcmdldCA9PT0gZXZ0LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbGVjdGVkTGlzdEl0ZW0gPVxuICAgICAgc2VsZWN0ZWRJbmRleCAhPT0gLTEgPyBmbGF0dGVuZWRMaXN0SXRlbXNbc2VsZWN0ZWRJbmRleF0gOiBudWxsO1xuXG4gICAgY29uc3QgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbSA9IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQgPyAoXG4gICAgICA8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciBzaXplPXtzaXplfT5cbiAgICAgICAgPFRleHQgY29sb3I9XCJ0ZXJ0aWFyeVwiPntlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50fTwvVGV4dD5cbiAgICAgIDwvU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lcj5cbiAgICApIDogbnVsbDtcblxuICAgIGNvbnN0IGNsZWFyQnV0dG9uRWxtID0gdmFsdWUgPyAoXG4gICAgICA8U3R5bGVkQ2xlYXJCdXR0b25cbiAgICAgICAgc2l6ZT17c2l6ZSA9PT0gXCJtXCIgPyBcInNcIiA6IFwieHNcIn1cbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICBpY29uPVwieC1jaXJjbGUtZmlsbGVkXCJcbiAgICAgICAgYXJpYS1sYWJlbD17Y2xlYXJCdXR0b25BcmlhTGFiZWx9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgICAgYnV0dG9uU2l6ZT17c2l6ZX1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgfHxcbiAgICAgICEhc2VuZEJ1dHRvblByb3BzKSAmJiAoXG4gICAgICA8PlxuICAgICAgICB7Ym90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgJiYgKFxuICAgICAgICAgIDxTdHlsZWRTbG90Pntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgKX1cbiAgICAgICAgPFN0eWxlZFNsb3QgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIiBzaWRlPVwicmlnaHRcIj5cbiAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAge2JvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIHtzZW5kQnV0dG9uUHJvcHMgJiYgKFxuICAgICAgICAgICAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPXt2YXJpYW50fT5cbiAgICAgICAgICAgICAgICA8Um91bmRCdXR0b25cbiAgICAgICAgICAgICAgICAgIGFyaWFBdHRyaWJ1dGVzPXt7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiUHJvY2Vzc2luZyBxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlN1Ym1pdCBxdWVyeVwiLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHsuLi5tZXJnZWRTZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgICAgICBzaXplPXtzaXplID09PSBcIm1cIiA/IFwic1wiIDogXCJ4c1wifVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e21lcmdlZFNlbmRCdXR0b25Qcm9wcy5kaXNhYmxlZCA/PyAhdmFsdWV9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVTZW5kQnV0dG9uQ2xpY2t9XG4gICAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICBpY29uPXtcbiAgICAgICAgICAgICAgICAgICAgaXNQcm9jZXNzaW5nID8gXCJzdG9wLWZpbGxlZFwiIDogbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmljb25cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1N1YlRoZW1lUHJvdmlkZXI+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvSW5saW5lPlxuICAgICAgICA8L1N0eWxlZFNsb3Q+XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPGRpdiByZWY9e2FuaW1hdGVkQm9yZGVyUmVmfT5cbiAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT17dmFyaWFudH0+XG4gICAgICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgZWxldmF0aW9uPXswfVxuICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtzaXplfVxuICAgICAgICAgICAgICAgICAgaGlkZUJvcmRlcj17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICBoYXNTaGFkb3dcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPVwidW5zZXRcIj5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFNsb3RzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3dufVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge2hlYWRlciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8UHJvbXB0SW5wdXRIZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmhlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzU2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7bGVmdEljb24gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkTGVmdEljb25Db250YWluZXIgc2l6ZT17c2l6ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2xlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGVydGlhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZExlZnRJY29uQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBdXRvY29tcGxldGVMaXN0T3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzTGVmdEljb249eyEhbGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cz17cm93c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xlYXJCdXR0b25FbG19XG4gICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhckVsbX1cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRTbG90c0NvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvU3ViVGhlbWVQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9TdWJUaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB7aGludEVsbX1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8QXV0b2NvbXBsZXRlTGlzdFxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcz17YXV0b2NvbXBsZXRlTGlzdEl0ZW1zfVxuICAgICAgICAgIHRyaWdnZXJSZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgaXNPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RGb290ZXI9e2F1dG9jb21wbGV0ZUxpc3RGb290ZXJ9XG4gICAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgICAgb25MaXN0SXRlbUNsaWNrPXtoYW5kbGVMaXN0SXRlbUNsaWNrfVxuICAgICAgICAvPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuKTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpSTZCIn0= */"),StyledSlot=styled("div",{target:"e1162mxi6",label:"StyledSlot"})(({theme,side})=>({margin:`0 ${theme.variables.size.spacing.s} ${theme.variables.size.spacing.s}`,..."right"===side&&{marginLeft:"auto"}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5cbmltcG9ydCB0eXBlIHsgUHJvbXB0VGV4dEFyZWFQcm9wcyB9IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQge1xuICBQcm9tcHRUZXh0QXJlYSxcbiAgZ2V0UGFkZGluZ0hvcml6b250YWwsXG4gIGdldFBhZGRpbmdWZXJ0aWNhbCxcbn0gZnJvbSBcIi4vUHJvbXB0VGV4dEFyZWFcIjtcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gXCIuLi9Db250YWluZXJcIjtcbmltcG9ydCB0eXBlIHsgQXV0b2NvbXBsZXRlTGlzdFByb3BzIH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuXG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgdHlwZSB7XG4gIFByb21wdElucHV0U2l6ZXMsXG4gIFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmLFxufSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCB7IElubGluZSB9IGZyb20gXCIuLi9JbmxpbmUvSW5saW5lXCI7XG5pbXBvcnQgdHlwZSB7IFJvdW5kQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB7IFJvdW5kQnV0dG9uIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBTdGFjayB9IGZyb20gXCIuLi9TdGFjay9TdGFja1wiO1xuaW1wb3J0IHR5cGUgeyBJY29uTmFtZSB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcbmltcG9ydCB7IEljb24gfSBmcm9tIFwiLi4vSWNvbi9JY29uXCI7XG5pbXBvcnQgeyBTdWJUaGVtZVByb3ZpZGVyIH0gZnJvbSBcIi4uL1N1YlRoZW1lUHJvdmlkZXIvU3ViVGhlbWVQcm92aWRlclwiO1xuaW1wb3J0IHsgdXNlQW5pbWF0ZWRCb3JkZXIgfSBmcm9tIFwiLi4vVXRpbGl0aWVzL0FuaW1hdGVkQm9yZGVyL3VzZUFuaW1hdGVkQm9yZGVyXCI7XG5pbXBvcnQge1xuICBQcm9tcHRJbnB1dEhlYWRlcixcbiAgdHlwZSBCYXNlUHJvbXB0SW5wdXRIZWFkZXJQcm9wcyxcbn0gZnJvbSBcIi4vUHJvbXB0SW5wdXRIZWFkZXJcIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8e1xuICBoaWRlQm9yZGVyOiBib29sZWFuO1xuICBoYXNTaGFkb3c6IGJvb2xlYW47XG59PigoeyB0aGVtZSwgaGlkZUJvcmRlciwgaGFzU2hhZG93IH0pID0+ICh7XG4gIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gIC4uLihoYXNTaGFkb3cgJiYge1xuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5kZWZhdWx0UmluZyxcbiAgICB0cmFuc2l0aW9uUHJvcGVydHk6IFwiYm94LXNoYWRvdywgYm9yZGVyLWNvbG9yLCBvdXRsaW5lLWNvbG9yXCIsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uOiB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLmR1cmF0aW9uLFxuICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjpcbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ucHJvbXB0SW5wdXQuZm9jdXMudGltaW5nRnVuY3Rpb24sXG4gIH0pLFxuICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgfSksXG4gIGN1cnNvcjogXCJ0ZXh0XCIsXG4gIG91dGxpbmVDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICBbYCY6aGFzKHRleHRhcmVhOmZvY3VzLXZpc2libGUpYF06IHtcbiAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgb3V0bGluZU9mZnNldDogLTEsXG4gICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcbiAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gIH0sXG59KSk7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG5jb25zdCBTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lciA9IHN0eWxlZC5kaXY8eyBzaXplPzogUHJvbXB0SW5wdXRTaXplcyB9PihcbiAgKHsgdGhlbWUsIHNpemUgfSkgPT4gKHtcbiAgICBkaXNwbGF5OiBcImZsZXhcIixcbiAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lLCBzaXplKSxcbiAgICBsZWZ0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSwgc2l6ZSksXG4gICAgaGVpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5kaW1lbnNpb24uaWNvbi5tLCAvLyB2aXJ0dWFsIHNpemUgYm94IGZvciBtZWRpdW0gYW5kIHNtYWxsIGljb25zIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnRcbiAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciA9IHN0eWxlZC5kaXY8e1xuICBzaXplPzogUHJvbXB0SW5wdXRTaXplcztcbn0+KCh7IHRoZW1lLCBzaXplIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lLCBzaXplKSxcbiAgcmlnaHQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lLCBzaXplKSxcbiAgdXNlclNlbGVjdDogXCJub25lXCIsXG4gIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxufSkpO1xuXG4vLyBgc3R5bGVkKClgIGNhbm5vdCBwcmVzZXJ2ZSBQaWN0b2dyYW1CdXR0b24ncyBwb2x5bW9ycGhpYyBnZW5lcmljXG4vLyBzaWduYXR1cmUsIHNvIGVtb3Rpb24gaW5mZXJzIGEgcHJvcCB0eXBlIHRoYXQgY29sbGFwc2VzIGl0cyByZXF1aXJlZFxuLy8gYGxhYmVsYCAvIGBhcmlhLWxhYmVsYCAvIGBhcmlhLWxhYmVsbGVkYnlgIGRpc2NyaW1pbmF0ZWQgdW5pb24uIFdlIHJlLWFzc2VydFxuLy8gUGljdG9ncmFtQnV0dG9uJ3MgcG9seW1vcnBoaWMgc2lnbmF0dXJlIHRvIHJlc3RvcmUgdGhlIHJlYWwgcHJvcCBjb250cmFjdCxcbi8vIHdpZGVuZWQgd2l0aCB0aGUgc3R5bGUtb25seSBgYnV0dG9uU2l6ZWAgcHJvcCB0aGlzIHdyYXBwZXIgYWRkcy5cbmNvbnN0IFN0eWxlZENsZWFyQnV0dG9uID0gc3R5bGVkKFBpY3RvZ3JhbUJ1dHRvbik8e1xuICBidXR0b25TaXplPzogUHJvbXB0SW5wdXRTaXplcztcbn0+KCh7IHRoZW1lLCBidXR0b25TaXplIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHJpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gIHRvcDpcbiAgICBidXR0b25TaXplID09PSBcIm1cIlxuICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnNcbiAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54cyxcbn0pKSBhcyA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gIHByb3BzOiBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZjxcbiAgICBDLFxuICAgIFBpY3RvZ3JhbUJ1dHRvblByb3BzICYgeyBidXR0b25TaXplPzogUHJvbXB0SW5wdXRTaXplcyB9XG4gID5cbikgPT4gUmVhY3QuUmVhY3ROb2RlIHwgbnVsbDtcblxuY29uc3QgU3R5bGVkU2xvdHNDb250YWluZXIgPSBzdHlsZWQuZGl2KHtcbiAgZGlzcGxheTogXCJmbGV4XCIsXG4gIGZsZXhXcmFwOiBcIndyYXBcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbn0pO1xuXG4vLyBJdCBuZWVkcyBtYXJnaW4gZHVlIHRvIGVtcHR5IGNsaWNrYWJsZSBzcGFjZSB0aGF0IGZvY3VzZXMgdGhlIHRleHRhcmVhXG4vLyBTbG90cyBzaG91bGQgbm90IGJlIGluIHRoZSBkaXYsIGJlY2F1c2UgYXJlYSBiZXR3ZWVuIHNob3VsZCBiZSBjbGlja2FibGUgYWxzb1xudHlwZSBTbG90UHJvcHMgPSB7XG4gIHNpZGU/OiBcInJpZ2h0XCI7XG59O1xuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8U2xvdFByb3BzPigoeyB0aGVtZSwgc2lkZSB9KSA9PiAoe1xuICBtYXJnaW46IGAwICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc31gLFxuXG4gIC4uLihzaWRlID09PSBcInJpZ2h0XCIgJiYge1xuICAgIG1hcmdpbkxlZnQ6IFwiYXV0b1wiLFxuICB9KSxcbn0pKTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCIgfCBcInNpemVcIj4gJiB7XG4gIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiIHwgXCJ2b2ljZVwiO1xufTtcblxudHlwZSBCb3R0b21Ub29sYmFyQ29uZmlnID0ge1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgbGVmdENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICBoZWFkZXI/OiBCYXNlUHJvbXB0SW5wdXRIZWFkZXJQcm9wcztcbiAgdmFyaWFudD86IFwiYWlcIjtcbiAgc2tpcEFJQW5pbWF0aW9uPzogYm9vbGVhbjtcbiAgYm90dG9tVG9vbGJhcj86IEJvdHRvbVRvb2xiYXJDb25maWc7XG4gIHNlbmRCdXR0b25Qcm9wcz86IFNlbmRCdXR0b25Qcm9wcztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNpemUgb2YgdGhlIFByb21wdElucHV0ICovXG4gIHNpemU/OiBQcm9tcHRJbnB1dFNpemVzO1xuICBvbkNsZWFyOiAoKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gdXNlciBzZWxlY3RzIChvciByZWplY3RzKSBhIGxpc3QgaXRlbSBmcm9tIGF1dG9jb21wbGV0ZSBsaXN0ICovXG4gIG9uQ29tcGxldGU/OiAoe1xuICAgIHZhbHVlLFxuICAgIGNhdGVnb3J5LFxuICAgIGV2dCxcbiAgICBpbmRleCxcbiAgfToge1xuICAgIHZhbHVlOiBMaXN0SXRlbVZhbHVlO1xuICAgIGNhdGVnb3J5Pzogc3RyaW5nO1xuICAgIGV2dD86IFN5bnRoZXRpY0V2ZW50O1xuICAgIGluZGV4PzogbnVtYmVyO1xuICB9KSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIG9uIEVudGVyIGtleSB0byBzdWJtaXQgdGhlIGZvcm0gICovXG4gIG9uRW50ZXJLZXk6ICgpID0+IHZvaWQ7XG4gIC8qKiBSZW5kZXJzIGFuIGljb24gdG8gdGhlIGxlZnQgaW5zaWRlIHRoZSB0ZXh0YXJlYSAqL1xuICBsZWZ0SWNvbj86IEljb25OYW1lO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCIgfCBcImhhc0xlZnRJY29uXCIgfCBcInNpemVcIlxuPiAmXG4gIFBpY2s8XG4gICAgQXV0b2NvbXBsZXRlTGlzdFByb3BzLFxuICAgIFwiYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXCIgfCBcImF1dG9jb21wbGV0ZUxpc3RGb290ZXJcIiB8IFwicG9ydGFsQ29udGFpbmVyXCJcbiAgPjtcblxuY29uc3QgZGVmYXVsdFNlbmRCdXR0b25Qcm9wczogU2VuZEJ1dHRvblByb3BzID0ge1xuICB0eXBlOiBcInN1Ym1pdFwiIGFzIGNvbnN0LFxuICBpY29uOiBcImFycm93LXVwXCIgYXMgY29uc3QsXG59O1xuXG5leHBvcnQgY29uc3QgUHJvbXB0SW5wdXQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgaGVhZGVyLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgdmFyaWFudCxcbiAgICAgIHNpemUgPSBcIm1cIixcbiAgICAgIHNraXBBSUFuaW1hdGlvbiA9IGZhbHNlLFxuICAgICAgcm93cyA9IDEsXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgYW5pbWF0ZWRCb3JkZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgdXNlQW5pbWF0ZWRCb3JkZXIoYW5pbWF0ZWRCb3JkZXJSZWYsIHtcbiAgICAgIHNraXBBbmltYXRpb246IHNraXBBSUFuaW1hdGlvbiB8fCB2YXJpYW50ICE9PSBcImFpXCIsXG4gICAgICByYWRpdXM6IHNpemUgPT09IFwibVwiID8gMTIgOiA4LFxuICAgICAgaXRlcmF0aW9uczogMSxcbiAgICB9KTtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICBpZiAoXG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQgIT09IHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uRW5kXG4gICAgICApIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZSh2YWx1ZS5sZW5ndGgsIHZhbHVlLmxlbmd0aCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgb3BlbkF1dG9jb21wbGV0ZUxpc3QsIGNsb3NlQXV0b2NvbXBsZXRlTGlzdF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlS2V5RG93bjogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAoaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBtZXJnZWRTZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlUHJldmVudEZvY3VzID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBQcmV2ZW50IHRoZSB0ZXh0YXJlYSBmcm9tIGJlaW5nIHVuZm9jdXNlZFxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd24gPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIEZvY3VzIHRleHRhcmVhIHdoZW4gY2xpY2tpbmcgb24gdGhlIGNvbnRhaW5lciBvbmx5XG4gICAgICBpZiAoZXZ0LnRhcmdldCA9PT0gZXZ0LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbGVjdGVkTGlzdEl0ZW0gPVxuICAgICAgc2VsZWN0ZWRJbmRleCAhPT0gLTEgPyBmbGF0dGVuZWRMaXN0SXRlbXNbc2VsZWN0ZWRJbmRleF0gOiBudWxsO1xuXG4gICAgY29uc3QgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbSA9IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQgPyAoXG4gICAgICA8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciBzaXplPXtzaXplfT5cbiAgICAgICAgPFRleHQgY29sb3I9XCJ0ZXJ0aWFyeVwiPntlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50fTwvVGV4dD5cbiAgICAgIDwvU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lcj5cbiAgICApIDogbnVsbDtcblxuICAgIGNvbnN0IGNsZWFyQnV0dG9uRWxtID0gdmFsdWUgPyAoXG4gICAgICA8U3R5bGVkQ2xlYXJCdXR0b25cbiAgICAgICAgc2l6ZT17c2l6ZSA9PT0gXCJtXCIgPyBcInNcIiA6IFwieHNcIn1cbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICBpY29uPVwieC1jaXJjbGUtZmlsbGVkXCJcbiAgICAgICAgYXJpYS1sYWJlbD17Y2xlYXJCdXR0b25BcmlhTGFiZWx9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgICAgYnV0dG9uU2l6ZT17c2l6ZX1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgfHxcbiAgICAgICEhc2VuZEJ1dHRvblByb3BzKSAmJiAoXG4gICAgICA8PlxuICAgICAgICB7Ym90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgJiYgKFxuICAgICAgICAgIDxTdHlsZWRTbG90Pntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgKX1cbiAgICAgICAgPFN0eWxlZFNsb3QgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIiBzaWRlPVwicmlnaHRcIj5cbiAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAge2JvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIHtzZW5kQnV0dG9uUHJvcHMgJiYgKFxuICAgICAgICAgICAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPXt2YXJpYW50fT5cbiAgICAgICAgICAgICAgICA8Um91bmRCdXR0b25cbiAgICAgICAgICAgICAgICAgIGFyaWFBdHRyaWJ1dGVzPXt7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiUHJvY2Vzc2luZyBxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlN1Ym1pdCBxdWVyeVwiLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHsuLi5tZXJnZWRTZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgICAgICBzaXplPXtzaXplID09PSBcIm1cIiA/IFwic1wiIDogXCJ4c1wifVxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e21lcmdlZFNlbmRCdXR0b25Qcm9wcy5kaXNhYmxlZCA/PyAhdmFsdWV9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVTZW5kQnV0dG9uQ2xpY2t9XG4gICAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICBpY29uPXtcbiAgICAgICAgICAgICAgICAgICAgaXNQcm9jZXNzaW5nID8gXCJzdG9wLWZpbGxlZFwiIDogbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmljb25cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L1N1YlRoZW1lUHJvdmlkZXI+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvSW5saW5lPlxuICAgICAgICA8L1N0eWxlZFNsb3Q+XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPGRpdiByZWY9e2FuaW1hdGVkQm9yZGVyUmVmfT5cbiAgICAgICAgICAgICAgPFN1YlRoZW1lUHJvdmlkZXIgbmFtZT17dmFyaWFudH0+XG4gICAgICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgZWxldmF0aW9uPXswfVxuICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtzaXplfVxuICAgICAgICAgICAgICAgICAgaGlkZUJvcmRlcj17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICBoYXNTaGFkb3dcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8U3ViVGhlbWVQcm92aWRlciBuYW1lPVwidW5zZXRcIj5cbiAgICAgICAgICAgICAgICAgICAgPFN0eWxlZFNsb3RzQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3dufVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAge2hlYWRlciAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8UHJvbXB0SW5wdXRIZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLmhlYWRlcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzU2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7bGVmdEljb24gJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkTGVmdEljb25Db250YWluZXIgc2l6ZT17c2l6ZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2xlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidGVydGlhcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZExlZnRJY29uQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaXNBdXRvY29tcGxldGVMaXN0T3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzTGVmdEljb249eyEhbGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXM9e2hhbmRsZUZvY3VzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZUJsdXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cz17cm93c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2xlYXJCdXR0b25FbG19XG4gICAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhckVsbX1cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRTbG90c0NvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDwvU3ViVGhlbWVQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9TdWJUaGVtZVByb3ZpZGVyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB7aGludEVsbX1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8QXV0b2NvbXBsZXRlTGlzdFxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcz17YXV0b2NvbXBsZXRlTGlzdEl0ZW1zfVxuICAgICAgICAgIHRyaWdnZXJSZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgaXNPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RGb290ZXI9e2F1dG9jb21wbGV0ZUxpc3RGb290ZXJ9XG4gICAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgICAgb25MaXN0SXRlbUNsaWNrPXtoYW5kbGVMaXN0SXRlbUNsaWNrfVxuICAgICAgICAvPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuKTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUE0SW1CIn0= */"),defaultSendButtonProps={type:"submit",icon:"arrow-up"};export const PromptInput=forwardRef(({"data-e2e-test-id":dataE2eTestId,name,autocompleteListItems=[],value,bottomToolbar,isProcessing,sendButtonProps,autocompleteListFooter,clearButtonAriaLabel="Clear input",hint,emptyStateTopRightContent,portalContainer,leftIcon,header,onChange,onComplete,onClear,onEnterKey,onFocus,onBlur,onKeyDown,variant,size="m",skipAIAnimation=!1,rows=1,...rest},ref)=>{let containerRef=useRef(null),animatedBorderRef=useRef(null),textAreaContainerRef=useRef(null),internalRef=useRef(null),[selectedIndex,setSelectedIndex]=useState(-1),userTypedQuery=useRef(""),[isAutocompleteListOpen,setIsAutocompleteListOpen]=useState(!1),textAreaRef=ref||internalRef;useAnimatedBorder(animatedBorderRef,{skipAnimation:skipAIAnimation||"ai"!==variant,radius:"m"===size?12:8,iterations:1});let mergedSendButtonProps={...defaultSendButtonProps,...sendButtonProps??{}},closeAutocompleteList=useCallback(()=>{setIsAutocompleteListOpen(!1),setSelectedIndex(-1)},[]),openAutocompleteList=useCallback(()=>{autocompleteListItems.length&&(setIsAutocompleteListOpen(!0),setSelectedIndex(-1))},[autocompleteListItems]),acceptTextSelection=()=>{userTypedQuery.current=value,textAreaRef.current.selectionStart!==textAreaRef.current.selectionEnd&&textAreaRef.current.setSelectionRange(value.length,value.length)};useEffect(()=>{autocompleteListItems.length?openAutocompleteList():closeAutocompleteList()},[autocompleteListItems,openAutocompleteList,closeAutocompleteList]),useEffect(()=>{value&&value!==userTypedQuery.current&&isAutocompleteListOpen&&textAreaRef.current.setSelectionRange(userTypedQuery.current.length,value.length)},[value,textAreaRef,isAutocompleteListOpen]);let flattenedListItems=useMemo(()=>{let list=[];return autocompleteListItems.forEach(listItem=>{listItem.items.forEach((item,index)=>{list.push({category:listItem.category,indexInCategory:index,value:item.value,id:getListItemId(name,listItem.category,index)})})}),list},[autocompleteListItems,name]),handleSelectedIndexChange=(index,evt)=>{if(setSelectedIndex(index),-1!==index){let{category,value:itemValue}=flattenedListItems[index];onComplete({value:itemValue,category,evt,index})}},handlePreventFocus=evt=>{evt.preventDefault()},selectedListItem=-1!==selectedIndex?flattenedListItems[selectedIndex]:null,emptyStateTopRightContentElm=emptyStateTopRightContent?React.createElement(StyledEmptyStateTopRightContentContainer,{size:size},React.createElement(Text,{color:"tertiary"},emptyStateTopRightContent)):null,clearButtonElm=value?React.createElement(StyledClearButton,{size:"m"===size?"s":"xs","aria-hidden":"true",tabIndex:-1,icon:"x-circle-filled","aria-label":clearButtonAriaLabel,onPointerDown:handlePreventFocus,onClick:onClear,buttonSize:size}):emptyStateTopRightContentElm,hintElm=!!hint&&React.createElement(Inline,{alignItems:"center"},React.createElement(Text,{size:"s",color:"tertiary"},hint)),bottomToolbarElm=(bottomToolbar?.rightContent||bottomToolbar?.leftContent||!!sendButtonProps)&&React.createElement(React.Fragment,null,bottomToolbar?.leftContent&&React.createElement(StyledSlot,null,bottomToolbar.leftContent),React.createElement(StyledSlot,{"data-e2e-test-id":"bottomToolbar",side:"right"},React.createElement(Inline,{space:"xs",vAlignItems:"center"},bottomToolbar?.rightContent,sendButtonProps&&React.createElement(SubThemeProvider,{name:variant},React.createElement(RoundButton,{ariaAttributes:{"aria-label":isProcessing?"Processing query":"Submit query"},...mergedSendButtonProps,size:"m"===size?"s":"xs",disabled:mergedSendButtonProps.disabled??!value,onClick:evt=>{mergedSendButtonProps.onClick?.(evt),closeAutocompleteList()},onPointerDown:handlePreventFocus,variant:"primary",icon:isProcessing?"stop-filled":mergedSendButtonProps.icon})))));return React.createElement(React.Fragment,null,React.createElement("div",{"data-e2e-test-id":dataE2eTestId,"data-ds-id":"PromptInput",ref:containerRef,translate:"no"},React.createElement(Stack,{space:"s"},React.createElement("div",{ref:animatedBorderRef},React.createElement(SubThemeProvider,{name:variant},React.createElement(CustomContainer,{elevation:0,borderRadius:size,hideBorder:!1,hasShadow:!0},React.createElement(SubThemeProvider,{name:"unset"},React.createElement(StyledSlotsContainer,{ref:textAreaContainerRef,onPointerDown:evt=>{evt.target===evt.currentTarget&&(textAreaRef.current?.focus(),evt.preventDefault())}},header&&React.createElement(PromptInputHeader,{...header,borderRadiusSize:size,size:size}),React.createElement(StyledTextAreaContainer,null,leftIcon&&React.createElement(StyledLeftIconContainer,{size:size},React.createElement(Icon,{name:leftIcon,size:size,color:"tertiary","aria-hidden":"true"})),React.createElement(PromptTextArea,{...rest,dataE2eTestId:dataE2eTestId?`${dataE2eTestId}-input`:void 0,name:name,value:value,ref:textAreaRef,selectedListItem:selectedListItem,isAutocompleteListOpen:isAutocompleteListOpen,hasLeftIcon:!!leftIcon,onFocus:evt=>{onFocus?.(evt)},onBlur:evt=>{value!==userTypedQuery.current&&onComplete?.({value:userTypedQuery.current,evt}),onBlur?.(evt)},onChange:evt=>{userTypedQuery.current=evt.target.value,onChange(evt)},onKeyDown:evt=>{if(isAutocompleteListOpen)switch(evt.key){case"Escape":closeAutocompleteList(),onComplete({value:userTypedQuery.current,evt});break;case"Enter":!evt.shiftKey&&(evt.preventDefault(),closeAutocompleteList(),acceptTextSelection(),value&&onEnterKey?.());break;case" ":acceptTextSelection();break;case"ArrowUp":evt.preventDefault(),selectedIndex>-1&&handleSelectedIndexChange(selectedIndex-1,evt);break;case"ArrowDown":evt.preventDefault(),selectedIndex<flattenedListItems.length-1&&handleSelectedIndexChange(selectedIndex+1,evt)}else switch(evt.key){case"Escape":onClear?.();break;case"Enter":!evt.shiftKey&&(evt.preventDefault(),value&&onEnterKey?.())}onKeyDown?.(evt)},rows:rows,size:size}),clearButtonElm),bottomToolbarElm))))),hintElm)),React.createElement(AutocompleteList,{name:name,value:value,autocompleteListItems:autocompleteListItems,triggerRef:textAreaContainerRef,selectedListItem:selectedListItem,isOpen:isAutocompleteListOpen,autocompleteListFooter:autocompleteListFooter,portalContainer:portalContainer,onListItemClick:(category,indexInCategory,evt)=>{handleSelectedIndexChange(flattenedListItems.findIndex(listItem=>listItem.category===category&&listItem.indexInCategory===indexInCategory),evt),closeAutocompleteList()}}))});
|