@amboss/design-system 4.2.3 → 4.2.5

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.
Files changed (27) hide show
  1. package/build/cjs/components/Content/ContentHeading/ContentHeading.d.ts +11 -3
  2. package/build/cjs/components/Content/ContentHeading/ContentHeading.js +1 -1
  3. package/build/cjs/components/Layout/-types.d.ts +15 -0
  4. package/build/cjs/components/Layout/Layout.js +1 -1
  5. package/build/cjs/components/Layout/LeftPanel/LeftPanel.js +1 -1
  6. package/build/cjs/components/Layout/LeftPanel/LeftPanelDocked.d.ts +1 -0
  7. package/build/cjs/components/Layout/LeftPanel/LeftPanelDocked.js +1 -1
  8. package/build/cjs/components/Layout/PanelContainer.d.ts +1 -1
  9. package/build/cjs/components/Layout/PanelContainer.js +1 -1
  10. package/build/cjs/components/Layout/RightPanel/RightPanel.js +1 -1
  11. package/build/cjs/components/Layout/reducer.js +1 -1
  12. package/build/cjs/components/Layout/usePanelDockedSlide.d.ts +5 -1
  13. package/build/cjs/components/Layout/usePanelDockedSlide.js +1 -1
  14. package/build/esm/components/Content/ContentHeading/ContentHeading.d.ts +11 -3
  15. package/build/esm/components/Content/ContentHeading/ContentHeading.js +1 -1
  16. package/build/esm/components/Layout/-types.d.ts +15 -0
  17. package/build/esm/components/Layout/Layout.js +1 -1
  18. package/build/esm/components/Layout/LeftPanel/LeftPanel.js +1 -1
  19. package/build/esm/components/Layout/LeftPanel/LeftPanelDocked.d.ts +1 -0
  20. package/build/esm/components/Layout/LeftPanel/LeftPanelDocked.js +1 -1
  21. package/build/esm/components/Layout/PanelContainer.d.ts +1 -1
  22. package/build/esm/components/Layout/PanelContainer.js +1 -1
  23. package/build/esm/components/Layout/RightPanel/RightPanel.js +1 -1
  24. package/build/esm/components/Layout/reducer.js +1 -1
  25. package/build/esm/components/Layout/usePanelDockedSlide.d.ts +5 -1
  26. package/build/esm/components/Layout/usePanelDockedSlide.js +1 -1
  27. package/package.json +1 -1
@@ -1,14 +1,22 @@
1
1
  import React from "react";
2
2
  import { type HeaderProps } from "../../Typography/Header";
3
+ import type { TextProps } from "../../Typography/Text";
3
4
  import { type ContentColor } from "../types";
4
5
  type HeadingLevel = "H1" | "H2" | "H3" | "H4" | "H5" | "H6";
5
6
  type TypographyHeaderProps = Omit<HeaderProps, "color">;
6
7
  export type ContentHeadingProps = TypographyHeaderProps & {
7
- color?: ContentColor | HeaderProps["color"];
8
+ color?: ContentColor | TextProps["color"];
8
9
  /** HTML heading level to render */
9
10
  level: HeadingLevel;
11
+ } & ({
12
+ /** If true, the heading will not have any margins or be wrapped in a container div */
13
+ noWrapper?: false;
10
14
  hasDivider?: boolean;
11
15
  wrapperClassName?: string;
12
- };
13
- export declare function ContentHeading({ level, color, hasDivider, wrapperClassName, ...rest }: ContentHeadingProps): React.ReactElement;
16
+ } | {
17
+ noWrapper: true;
18
+ hasDivider?: never;
19
+ wrapperClassName?: never;
20
+ });
21
+ export declare function ContentHeading({ level, color, hasDivider, wrapperClassName, noWrapper, ...rest }: ContentHeadingProps): React.ReactElement;
14
22
  export {};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ContentHeading",{enumerable:!0,get:function(){return ContentHeading}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_Header=require("../../Typography/Header"),_Header1=require("../../Typography/Header/Header"),_FontSizeOffsetContext=require("../ContentFontResizer/FontSizeOffsetContext"),_isContentColor=require("../utils/isContentColor"),_Divider=require("../../Divider/Divider"),_Stack=require("../../Stack/Stack"),levelComponentMap={H1:_Header.H1,H2:_Header.H2,H3:_Header.H3,H4:_Header.H4,H5:_Header.H5,H6:_Header.H6},StyledContainer=(0,_styled.default)("div",{target:"ehroi791",label:"StyledContainer"})(({theme})=>({marginTop:theme.variables.size.spacing.m,marginBottom:theme.variables.size.spacing.xs}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvQ29udGVudC9Db250ZW50SGVhZGluZy9Db250ZW50SGVhZGluZy50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0NvbnRlbnQvQ29udGVudEhlYWRpbmcvQ29udGVudEhlYWRpbmcudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDb250ZXh0LCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7XG4gIEgxLFxuICBIMixcbiAgSDMsXG4gIEg0LFxuICBINSxcbiAgSDYsXG4gIHR5cGUgSGVhZGVyUHJvcHMsXG59IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L0hlYWRlclwiO1xuaW1wb3J0IHtcbiAgZ2V0TGluZUhlaWdodEFuZEZvbnRTaXplLFxuICB0eXBlIEhlYWRlckNvbXBvbmVudCxcbn0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvSGVhZGVyL0hlYWRlclwiO1xuaW1wb3J0IHtcbiAgRm9udFNpemVPZmZzZXRDb250ZXh0LFxuICB0eXBlIEZvbnRTaXplT2Zmc2V0LFxufSBmcm9tIFwiLi4vQ29udGVudEZvbnRSZXNpemVyL0ZvbnRTaXplT2Zmc2V0Q29udGV4dFwiO1xuXG5pbXBvcnQgeyB0eXBlIENvbnRlbnRDb2xvciB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgaXNDb250ZW50Q29sb3IgfSBmcm9tIFwiLi4vdXRpbHMvaXNDb250ZW50Q29sb3JcIjtcbmltcG9ydCB7IERpdmlkZXIgfSBmcm9tIFwiLi4vLi4vRGl2aWRlci9EaXZpZGVyXCI7XG5pbXBvcnQgeyBTdGFjayB9IGZyb20gXCIuLi8uLi9TdGFjay9TdGFja1wiO1xuXG50eXBlIEhlYWRpbmdMZXZlbCA9IFwiSDFcIiB8IFwiSDJcIiB8IFwiSDNcIiB8IFwiSDRcIiB8IFwiSDVcIiB8IFwiSDZcIjtcblxudHlwZSBUeXBvZ3JhcGh5SGVhZGVyUHJvcHMgPSBPbWl0PEhlYWRlclByb3BzLCBcImNvbG9yXCI+O1xuXG5leHBvcnQgdHlwZSBDb250ZW50SGVhZGluZ1Byb3BzID0gVHlwb2dyYXBoeUhlYWRlclByb3BzICYge1xuICBjb2xvcj86IENvbnRlbnRDb2xvciB8IEhlYWRlclByb3BzW1wiY29sb3JcIl07XG4gIC8qKiBIVE1MIGhlYWRpbmcgbGV2ZWwgdG8gcmVuZGVyICovXG4gIGxldmVsOiBIZWFkaW5nTGV2ZWw7XG4gIGhhc0RpdmlkZXI/OiBib29sZWFuO1xuICB3cmFwcGVyQ2xhc3NOYW1lPzogc3RyaW5nO1xufTtcblxuY29uc3QgbGV2ZWxDb21wb25lbnRNYXAgPSB7XG4gIEgxLFxuICBIMixcbiAgSDMsXG4gIEg0LFxuICBINSxcbiAgSDYsXG59IGFzIGNvbnN0O1xuXG50eXBlIFN0eWxlZEhlYWRlclByb3BzID0gVHlwb2dyYXBoeUhlYWRlclByb3BzICYge1xuICBmb250U2l6ZU9mZnNldDogRm9udFNpemVPZmZzZXQ7XG4gIGNvbG9yOiBDb250ZW50SGVhZGluZ1Byb3BzW1wiY29sb3JcIl07XG59O1xuXG4vLyBJbmNyZW1lbnQvRGVjcmVtZW50IGZvbnQgc2l6ZSBpbiBEUyBjb21wb25lbnRcbmZ1bmN0aW9uIGdldENvbXBvbmVudChsZXZlbDogQ29udGVudEhlYWRpbmdQcm9wc1tcImxldmVsXCJdKSB7XG4gIGNvbnN0IENvbXBvbmVudCA9IGxldmVsQ29tcG9uZW50TWFwW1xuICAgIGxldmVsXG4gIF0gYXMgUmVhY3QuQ29tcG9uZW50VHlwZTxUeXBvZ3JhcGh5SGVhZGVyUHJvcHM+O1xuXG4gIHJldHVybiBzdHlsZWQoQ29tcG9uZW50KTxTdHlsZWRIZWFkZXJQcm9wcz4oXG4gICAgKHsgdGhlbWUsIGZvbnRTaXplT2Zmc2V0LCBjb2xvciB9KSA9PiB7XG4gICAgICBjb25zdCB7IGZvbnRTaXplIH0gPVxuICAgICAgICBnZXRMaW5lSGVpZ2h0QW5kRm9udFNpemUodGhlbWUpW2xldmVsLnRvVXBwZXJDYXNlKCkgYXMgSGVhZGVyQ29tcG9uZW50XTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaHlwaGVuczogXCJhdXRvXCIsXG4gICAgICAgIG92ZXJmbG93V3JhcDogXCJicmVhay13b3JkXCIsXG4gICAgICAgIGZvbnRTaXplOlxuICAgICAgICAgIGZvbnRTaXplT2Zmc2V0ICE9PSAwXG4gICAgICAgICAgICA/IGBjYWxjKCR7Zm9udFNpemV9ICsgJHtmb250U2l6ZU9mZnNldH1weClgXG4gICAgICAgICAgICA6IGZvbnRTaXplLFxuICAgICAgICBjb2xvcjogaXNDb250ZW50Q29sb3IoY29sb3IpXG4gICAgICAgICAgPyB0aGVtZS52YWx1ZXMuY29sb3IuY29udGVudC50ZXh0W2NvbG9yIGFzIENvbnRlbnRDb2xvcl0uZGVmYXVsdFxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICB9XG4gICk7XG59XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgbWFyZ2luVG9wOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm0sXG4gIG1hcmdpbkJvdHRvbTogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54cyxcbn0pKTtcblxuZXhwb3J0IGZ1bmN0aW9uIENvbnRlbnRIZWFkaW5nKHtcbiAgbGV2ZWwsXG4gIGNvbG9yLFxuICBoYXNEaXZpZGVyID0gZmFsc2UsXG4gIHdyYXBwZXJDbGFzc05hbWUsXG4gIC4uLnJlc3Rcbn06IENvbnRlbnRIZWFkaW5nUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBmb250U2l6ZU9mZnNldCA9IHVzZUNvbnRleHQoRm9udFNpemVPZmZzZXRDb250ZXh0KTtcbiAgY29uc3QgSGVhZGVyQ29tcG9uZW50ID0gdXNlTWVtbygoKSA9PiBnZXRDb21wb25lbnQobGV2ZWwpLCBbbGV2ZWxdKTtcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXIgZGF0YS1kcy1pZD1cIkNvbnRlbnRIZWFkaW5nXCIgY2xhc3NOYW1lPXt3cmFwcGVyQ2xhc3NOYW1lfT5cbiAgICAgIDxTdGFjayBzcGFjZT1cInh4c1wiPlxuICAgICAgICA8SGVhZGVyQ29tcG9uZW50XG4gICAgICAgICAgZm9udFNpemVPZmZzZXQ9e2ZvbnRTaXplT2Zmc2V0fVxuICAgICAgICAgIGNvbG9yPXtjb2xvcn1cbiAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgLz5cbiAgICAgICAge2hhc0RpdmlkZXIgJiYgPERpdmlkZXIgLz59XG4gICAgICA8L1N0YWNrPlxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZFd0IifQ== */");function ContentHeading({level,color,hasDivider=!1,wrapperClassName,...rest}){let fontSizeOffset=(0,_react.useContext)(_FontSizeOffsetContext.FontSizeOffsetContext),HeaderComponent=(0,_react.useMemo)(()=>(function(level){let Component=levelComponentMap[level];return(0,_styled.default)(Component,{target:"ehroi790",label:""})(({theme,fontSizeOffset,color})=>{let{fontSize}=(0,_Header1.getLineHeightAndFontSize)(theme)[level.toUpperCase()];return{hyphens:"auto",overflowWrap:"break-word",fontSize:0!==fontSizeOffset?`calc(${fontSize} + ${fontSizeOffset}px)`:fontSize,color:(0,_isContentColor.isContentColor)(color)?theme.values.color.content.text[color].default:void 0}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvQ29udGVudC9Db250ZW50SGVhZGluZy9Db250ZW50SGVhZGluZy50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0NvbnRlbnQvQ29udGVudEhlYWRpbmcvQ29udGVudEhlYWRpbmcudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDb250ZXh0LCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7XG4gIEgxLFxuICBIMixcbiAgSDMsXG4gIEg0LFxuICBINSxcbiAgSDYsXG4gIHR5cGUgSGVhZGVyUHJvcHMsXG59IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L0hlYWRlclwiO1xuaW1wb3J0IHtcbiAgZ2V0TGluZUhlaWdodEFuZEZvbnRTaXplLFxuICB0eXBlIEhlYWRlckNvbXBvbmVudCxcbn0gZnJvbSBcIi4uLy4uL1R5cG9ncmFwaHkvSGVhZGVyL0hlYWRlclwiO1xuaW1wb3J0IHtcbiAgRm9udFNpemVPZmZzZXRDb250ZXh0LFxuICB0eXBlIEZvbnRTaXplT2Zmc2V0LFxufSBmcm9tIFwiLi4vQ29udGVudEZvbnRSZXNpemVyL0ZvbnRTaXplT2Zmc2V0Q29udGV4dFwiO1xuXG5pbXBvcnQgeyB0eXBlIENvbnRlbnRDb2xvciB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgaXNDb250ZW50Q29sb3IgfSBmcm9tIFwiLi4vdXRpbHMvaXNDb250ZW50Q29sb3JcIjtcbmltcG9ydCB7IERpdmlkZXIgfSBmcm9tIFwiLi4vLi4vRGl2aWRlci9EaXZpZGVyXCI7XG5pbXBvcnQgeyBTdGFjayB9IGZyb20gXCIuLi8uLi9TdGFjay9TdGFja1wiO1xuXG50eXBlIEhlYWRpbmdMZXZlbCA9IFwiSDFcIiB8IFwiSDJcIiB8IFwiSDNcIiB8IFwiSDRcIiB8IFwiSDVcIiB8IFwiSDZcIjtcblxudHlwZSBUeXBvZ3JhcGh5SGVhZGVyUHJvcHMgPSBPbWl0PEhlYWRlclByb3BzLCBcImNvbG9yXCI+O1xuXG5leHBvcnQgdHlwZSBDb250ZW50SGVhZGluZ1Byb3BzID0gVHlwb2dyYXBoeUhlYWRlclByb3BzICYge1xuICBjb2xvcj86IENvbnRlbnRDb2xvciB8IEhlYWRlclByb3BzW1wiY29sb3JcIl07XG4gIC8qKiBIVE1MIGhlYWRpbmcgbGV2ZWwgdG8gcmVuZGVyICovXG4gIGxldmVsOiBIZWFkaW5nTGV2ZWw7XG4gIGhhc0RpdmlkZXI/OiBib29sZWFuO1xuICB3cmFwcGVyQ2xhc3NOYW1lPzogc3RyaW5nO1xufTtcblxuY29uc3QgbGV2ZWxDb21wb25lbnRNYXAgPSB7XG4gIEgxLFxuICBIMixcbiAgSDMsXG4gIEg0LFxuICBINSxcbiAgSDYsXG59IGFzIGNvbnN0O1xuXG50eXBlIFN0eWxlZEhlYWRlclByb3BzID0gVHlwb2dyYXBoeUhlYWRlclByb3BzICYge1xuICBmb250U2l6ZU9mZnNldDogRm9udFNpemVPZmZzZXQ7XG4gIGNvbG9yOiBDb250ZW50SGVhZGluZ1Byb3BzW1wiY29sb3JcIl07XG59O1xuXG4vLyBJbmNyZW1lbnQvRGVjcmVtZW50IGZvbnQgc2l6ZSBpbiBEUyBjb21wb25lbnRcbmZ1bmN0aW9uIGdldENvbXBvbmVudChsZXZlbDogQ29udGVudEhlYWRpbmdQcm9wc1tcImxldmVsXCJdKSB7XG4gIGNvbnN0IENvbXBvbmVudCA9IGxldmVsQ29tcG9uZW50TWFwW1xuICAgIGxldmVsXG4gIF0gYXMgUmVhY3QuQ29tcG9uZW50VHlwZTxUeXBvZ3JhcGh5SGVhZGVyUHJvcHM+O1xuXG4gIHJldHVybiBzdHlsZWQoQ29tcG9uZW50KTxTdHlsZWRIZWFkZXJQcm9wcz4oXG4gICAgKHsgdGhlbWUsIGZvbnRTaXplT2Zmc2V0LCBjb2xvciB9KSA9PiB7XG4gICAgICBjb25zdCB7IGZvbnRTaXplIH0gPVxuICAgICAgICBnZXRMaW5lSGVpZ2h0QW5kRm9udFNpemUodGhlbWUpW2xldmVsLnRvVXBwZXJDYXNlKCkgYXMgSGVhZGVyQ29tcG9uZW50XTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaHlwaGVuczogXCJhdXRvXCIsXG4gICAgICAgIG92ZXJmbG93V3JhcDogXCJicmVhay13b3JkXCIsXG4gICAgICAgIGZvbnRTaXplOlxuICAgICAgICAgIGZvbnRTaXplT2Zmc2V0ICE9PSAwXG4gICAgICAgICAgICA/IGBjYWxjKCR7Zm9udFNpemV9ICsgJHtmb250U2l6ZU9mZnNldH1weClgXG4gICAgICAgICAgICA6IGZvbnRTaXplLFxuICAgICAgICBjb2xvcjogaXNDb250ZW50Q29sb3IoY29sb3IpXG4gICAgICAgICAgPyB0aGVtZS52YWx1ZXMuY29sb3IuY29udGVudC50ZXh0W2NvbG9yIGFzIENvbnRlbnRDb2xvcl0uZGVmYXVsdFxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgfTtcbiAgICB9XG4gICk7XG59XG5cbmNvbnN0IFN0eWxlZENvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgbWFyZ2luVG9wOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm0sXG4gIG1hcmdpbkJvdHRvbTogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54cyxcbn0pKTtcblxuZXhwb3J0IGZ1bmN0aW9uIENvbnRlbnRIZWFkaW5nKHtcbiAgbGV2ZWwsXG4gIGNvbG9yLFxuICBoYXNEaXZpZGVyID0gZmFsc2UsXG4gIHdyYXBwZXJDbGFzc05hbWUsXG4gIC4uLnJlc3Rcbn06IENvbnRlbnRIZWFkaW5nUHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBmb250U2l6ZU9mZnNldCA9IHVzZUNvbnRleHQoRm9udFNpemVPZmZzZXRDb250ZXh0KTtcbiAgY29uc3QgSGVhZGVyQ29tcG9uZW50ID0gdXNlTWVtbygoKSA9PiBnZXRDb21wb25lbnQobGV2ZWwpLCBbbGV2ZWxdKTtcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRDb250YWluZXIgZGF0YS1kcy1pZD1cIkNvbnRlbnRIZWFkaW5nXCIgY2xhc3NOYW1lPXt3cmFwcGVyQ2xhc3NOYW1lfT5cbiAgICAgIDxTdGFjayBzcGFjZT1cInh4c1wiPlxuICAgICAgICA8SGVhZGVyQ29tcG9uZW50XG4gICAgICAgICAgZm9udFNpemVPZmZzZXQ9e2ZvbnRTaXplT2Zmc2V0fVxuICAgICAgICAgIGNvbG9yPXtjb2xvcn1cbiAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgLz5cbiAgICAgICAge2hhc0RpdmlkZXIgJiYgPERpdmlkZXIgLz59XG4gICAgICA8L1N0YWNrPlxuICAgIDwvU3R5bGVkQ29udGFpbmVyPlxuICApO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXlEUyJ9 */")})(level),[level]);return _react.default.createElement(StyledContainer,{"data-ds-id":"ContentHeading",className:wrapperClassName},_react.default.createElement(_Stack.Stack,{space:"xxs"},_react.default.createElement(HeaderComponent,{fontSizeOffset:fontSizeOffset,color:color,...rest}),hasDivider&&_react.default.createElement(_Divider.Divider,null)))}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"ContentHeading",{enumerable:!0,get:function(){return ContentHeading}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_Header=require("../../Typography/Header"),_Header1=require("../../Typography/Header/Header"),_FontSizeOffsetContext=require("../ContentFontResizer/FontSizeOffsetContext"),_isContentColor=require("../utils/isContentColor"),_Divider=require("../../Divider/Divider"),_Stack=require("../../Stack/Stack"),levelComponentMap={H1:_Header.H1,H2:_Header.H2,H3:_Header.H3,H4:_Header.H4,H5:_Header.H5,H6:_Header.H6},StyledContainer=(0,_styled.default)("div",{target:"e1uafggk1",label:"StyledContainer"})(({theme})=>({marginTop:theme.variables.size.spacing.m,marginBottom:theme.variables.size.spacing.xs}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvQ29udGVudC9Db250ZW50SGVhZGluZy9Db250ZW50SGVhZGluZy50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0NvbnRlbnQvQ29udGVudEhlYWRpbmcvQ29udGVudEhlYWRpbmcudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDb250ZXh0LCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7XG4gIEgxLFxuICBIMixcbiAgSDMsXG4gIEg0LFxuICBINSxcbiAgSDYsXG4gIHR5cGUgSGVhZGVyUHJvcHMsXG59IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L0hlYWRlclwiO1xuaW1wb3J0IHR5cGUgeyBUZXh0UHJvcHMgfSBmcm9tIFwiLi4vLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQge1xuICBnZXRMaW5lSGVpZ2h0QW5kRm9udFNpemUsXG4gIHR5cGUgSGVhZGVyQ29tcG9uZW50LFxufSBmcm9tIFwiLi4vLi4vVHlwb2dyYXBoeS9IZWFkZXIvSGVhZGVyXCI7XG5pbXBvcnQge1xuICBGb250U2l6ZU9mZnNldENvbnRleHQsXG4gIHR5cGUgRm9udFNpemVPZmZzZXQsXG59IGZyb20gXCIuLi9Db250ZW50Rm9udFJlc2l6ZXIvRm9udFNpemVPZmZzZXRDb250ZXh0XCI7XG5cbmltcG9ydCB7IHR5cGUgQ29udGVudENvbG9yIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBpc0NvbnRlbnRDb2xvciB9IGZyb20gXCIuLi91dGlscy9pc0NvbnRlbnRDb2xvclwiO1xuaW1wb3J0IHsgRGl2aWRlciB9IGZyb20gXCIuLi8uLi9EaXZpZGVyL0RpdmlkZXJcIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uLy4uL1N0YWNrL1N0YWNrXCI7XG5cbnR5cGUgSGVhZGluZ0xldmVsID0gXCJIMVwiIHwgXCJIMlwiIHwgXCJIM1wiIHwgXCJINFwiIHwgXCJINVwiIHwgXCJINlwiO1xuXG50eXBlIFR5cG9ncmFwaHlIZWFkZXJQcm9wcyA9IE9taXQ8SGVhZGVyUHJvcHMsIFwiY29sb3JcIj47XG5cbmV4cG9ydCB0eXBlIENvbnRlbnRIZWFkaW5nUHJvcHMgPSBUeXBvZ3JhcGh5SGVhZGVyUHJvcHMgJiB7XG4gIGNvbG9yPzogQ29udGVudENvbG9yIHwgVGV4dFByb3BzW1wiY29sb3JcIl07XG4gIC8qKiBIVE1MIGhlYWRpbmcgbGV2ZWwgdG8gcmVuZGVyICovXG4gIGxldmVsOiBIZWFkaW5nTGV2ZWw7XG59ICYgKFxuICAgIHwge1xuICAgICAgICAvKiogSWYgdHJ1ZSwgdGhlIGhlYWRpbmcgd2lsbCBub3QgaGF2ZSBhbnkgbWFyZ2lucyBvciBiZSB3cmFwcGVkIGluIGEgY29udGFpbmVyIGRpdiAqL1xuICAgICAgICBub1dyYXBwZXI/OiBmYWxzZTtcbiAgICAgICAgaGFzRGl2aWRlcj86IGJvb2xlYW47XG4gICAgICAgIHdyYXBwZXJDbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG5vV3JhcHBlcjogdHJ1ZTtcbiAgICAgICAgaGFzRGl2aWRlcj86IG5ldmVyO1xuICAgICAgICB3cmFwcGVyQ2xhc3NOYW1lPzogbmV2ZXI7XG4gICAgICB9XG4gICk7XG5cbmNvbnN0IGxldmVsQ29tcG9uZW50TWFwID0ge1xuICBIMSxcbiAgSDIsXG4gIEgzLFxuICBINCxcbiAgSDUsXG4gIEg2LFxufSBhcyBjb25zdDtcblxudHlwZSBTdHlsZWRIZWFkZXJQcm9wcyA9IFR5cG9ncmFwaHlIZWFkZXJQcm9wcyAmIHtcbiAgZm9udFNpemVPZmZzZXQ6IEZvbnRTaXplT2Zmc2V0O1xuICBjb2xvcjogQ29udGVudEhlYWRpbmdQcm9wc1tcImNvbG9yXCJdO1xufTtcblxuLy8gSW5jcmVtZW50L0RlY3JlbWVudCBmb250IHNpemUgaW4gRFMgY29tcG9uZW50XG5mdW5jdGlvbiBnZXRDb21wb25lbnQobGV2ZWw6IENvbnRlbnRIZWFkaW5nUHJvcHNbXCJsZXZlbFwiXSkge1xuICBjb25zdCBDb21wb25lbnQgPSBsZXZlbENvbXBvbmVudE1hcFtcbiAgICBsZXZlbFxuICBdIGFzIFJlYWN0LkNvbXBvbmVudFR5cGU8VHlwb2dyYXBoeUhlYWRlclByb3BzPjtcblxuICByZXR1cm4gc3R5bGVkKENvbXBvbmVudCk8U3R5bGVkSGVhZGVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBmb250U2l6ZU9mZnNldCwgY29sb3IgfSkgPT4ge1xuICAgICAgY29uc3QgeyBmb250U2l6ZSB9ID1cbiAgICAgICAgZ2V0TGluZUhlaWdodEFuZEZvbnRTaXplKHRoZW1lKVtsZXZlbC50b1VwcGVyQ2FzZSgpIGFzIEhlYWRlckNvbXBvbmVudF07XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGh5cGhlbnM6IFwiYXV0b1wiLFxuICAgICAgICBvdmVyZmxvd1dyYXA6IFwiYnJlYWstd29yZFwiLFxuICAgICAgICBmb250U2l6ZTpcbiAgICAgICAgICBmb250U2l6ZU9mZnNldCAhPT0gMFxuICAgICAgICAgICAgPyBgY2FsYygke2ZvbnRTaXplfSArICR7Zm9udFNpemVPZmZzZXR9cHgpYFxuICAgICAgICAgICAgOiBmb250U2l6ZSxcbiAgICAgICAgY29sb3I6IGlzQ29udGVudENvbG9yKGNvbG9yKVxuICAgICAgICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmNvbnRlbnQudGV4dFtjb2xvciBhcyBDb250ZW50Q29sb3JdLmRlZmF1bHRcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuICApO1xufVxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQuZGl2KCh7IHRoZW1lIH0pID0+ICh7XG4gIG1hcmdpblRvcDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICBtYXJnaW5Cb3R0b206IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHMsXG59KSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBDb250ZW50SGVhZGluZyh7XG4gIGxldmVsLFxuICBjb2xvcixcbiAgaGFzRGl2aWRlciA9IGZhbHNlLFxuICB3cmFwcGVyQ2xhc3NOYW1lLFxuICBub1dyYXBwZXIgPSBmYWxzZSxcbiAgLi4ucmVzdFxufTogQ29udGVudEhlYWRpbmdQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IGZvbnRTaXplT2Zmc2V0ID0gdXNlQ29udGV4dChGb250U2l6ZU9mZnNldENvbnRleHQpO1xuICBjb25zdCBIZWFkZXJDb21wb25lbnQgPSB1c2VNZW1vKCgpID0+IGdldENvbXBvbmVudChsZXZlbCksIFtsZXZlbF0pO1xuXG4gIGNvbnN0IGhlYWRlciA9IChcbiAgICA8SGVhZGVyQ29tcG9uZW50XG4gICAgICB7Li4uKG5vV3JhcHBlciA/IHsgXCJkYXRhLWRzLWlkXCI6IFwiQ29udGVudEhlYWRpbmdcIiB9IDoge30pfVxuICAgICAgZm9udFNpemVPZmZzZXQ9e2ZvbnRTaXplT2Zmc2V0fVxuICAgICAgY29sb3I9e2NvbG9yfVxuICAgICAgey4uLnJlc3R9XG4gICAgLz5cbiAgKTtcblxuICByZXR1cm4gbm9XcmFwcGVyID8gKFxuICAgIGhlYWRlclxuICApIDogKFxuICAgIDxTdHlsZWRDb250YWluZXIgZGF0YS1kcy1pZD1cIkNvbnRlbnRIZWFkaW5nXCIgY2xhc3NOYW1lPXt3cmFwcGVyQ2xhc3NOYW1lfT5cbiAgICAgIDxTdGFjayBzcGFjZT1cInh4c1wiPlxuICAgICAgICB7aGVhZGVyfVxuICAgICAgICB7aGFzRGl2aWRlciAmJiA8RGl2aWRlciAvPn1cbiAgICAgIDwvU3RhY2s+XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gICk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBd0Z3QiJ9 */");function ContentHeading({level,color,hasDivider=!1,wrapperClassName,noWrapper=!1,...rest}){let fontSizeOffset=(0,_react.useContext)(_FontSizeOffsetContext.FontSizeOffsetContext),HeaderComponent=(0,_react.useMemo)(()=>(function(level){let Component=levelComponentMap[level];return(0,_styled.default)(Component,{target:"e1uafggk0",label:""})(({theme,fontSizeOffset,color})=>{let{fontSize}=(0,_Header1.getLineHeightAndFontSize)(theme)[level.toUpperCase()];return{hyphens:"auto",overflowWrap:"break-word",fontSize:0!==fontSizeOffset?`calc(${fontSize} + ${fontSizeOffset}px)`:fontSize,color:(0,_isContentColor.isContentColor)(color)?theme.values.color.content.text[color].default:void 0}},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvQ29udGVudC9Db250ZW50SGVhZGluZy9Db250ZW50SGVhZGluZy50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0NvbnRlbnQvQ29udGVudEhlYWRpbmcvQ29udGVudEhlYWRpbmcudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDb250ZXh0LCB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7XG4gIEgxLFxuICBIMixcbiAgSDMsXG4gIEg0LFxuICBINSxcbiAgSDYsXG4gIHR5cGUgSGVhZGVyUHJvcHMsXG59IGZyb20gXCIuLi8uLi9UeXBvZ3JhcGh5L0hlYWRlclwiO1xuaW1wb3J0IHR5cGUgeyBUZXh0UHJvcHMgfSBmcm9tIFwiLi4vLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQge1xuICBnZXRMaW5lSGVpZ2h0QW5kRm9udFNpemUsXG4gIHR5cGUgSGVhZGVyQ29tcG9uZW50LFxufSBmcm9tIFwiLi4vLi4vVHlwb2dyYXBoeS9IZWFkZXIvSGVhZGVyXCI7XG5pbXBvcnQge1xuICBGb250U2l6ZU9mZnNldENvbnRleHQsXG4gIHR5cGUgRm9udFNpemVPZmZzZXQsXG59IGZyb20gXCIuLi9Db250ZW50Rm9udFJlc2l6ZXIvRm9udFNpemVPZmZzZXRDb250ZXh0XCI7XG5cbmltcG9ydCB7IHR5cGUgQ29udGVudENvbG9yIH0gZnJvbSBcIi4uL3R5cGVzXCI7XG5pbXBvcnQgeyBpc0NvbnRlbnRDb2xvciB9IGZyb20gXCIuLi91dGlscy9pc0NvbnRlbnRDb2xvclwiO1xuaW1wb3J0IHsgRGl2aWRlciB9IGZyb20gXCIuLi8uLi9EaXZpZGVyL0RpdmlkZXJcIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uLy4uL1N0YWNrL1N0YWNrXCI7XG5cbnR5cGUgSGVhZGluZ0xldmVsID0gXCJIMVwiIHwgXCJIMlwiIHwgXCJIM1wiIHwgXCJINFwiIHwgXCJINVwiIHwgXCJINlwiO1xuXG50eXBlIFR5cG9ncmFwaHlIZWFkZXJQcm9wcyA9IE9taXQ8SGVhZGVyUHJvcHMsIFwiY29sb3JcIj47XG5cbmV4cG9ydCB0eXBlIENvbnRlbnRIZWFkaW5nUHJvcHMgPSBUeXBvZ3JhcGh5SGVhZGVyUHJvcHMgJiB7XG4gIGNvbG9yPzogQ29udGVudENvbG9yIHwgVGV4dFByb3BzW1wiY29sb3JcIl07XG4gIC8qKiBIVE1MIGhlYWRpbmcgbGV2ZWwgdG8gcmVuZGVyICovXG4gIGxldmVsOiBIZWFkaW5nTGV2ZWw7XG59ICYgKFxuICAgIHwge1xuICAgICAgICAvKiogSWYgdHJ1ZSwgdGhlIGhlYWRpbmcgd2lsbCBub3QgaGF2ZSBhbnkgbWFyZ2lucyBvciBiZSB3cmFwcGVkIGluIGEgY29udGFpbmVyIGRpdiAqL1xuICAgICAgICBub1dyYXBwZXI/OiBmYWxzZTtcbiAgICAgICAgaGFzRGl2aWRlcj86IGJvb2xlYW47XG4gICAgICAgIHdyYXBwZXJDbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgICB9XG4gICAgfCB7XG4gICAgICAgIG5vV3JhcHBlcjogdHJ1ZTtcbiAgICAgICAgaGFzRGl2aWRlcj86IG5ldmVyO1xuICAgICAgICB3cmFwcGVyQ2xhc3NOYW1lPzogbmV2ZXI7XG4gICAgICB9XG4gICk7XG5cbmNvbnN0IGxldmVsQ29tcG9uZW50TWFwID0ge1xuICBIMSxcbiAgSDIsXG4gIEgzLFxuICBINCxcbiAgSDUsXG4gIEg2LFxufSBhcyBjb25zdDtcblxudHlwZSBTdHlsZWRIZWFkZXJQcm9wcyA9IFR5cG9ncmFwaHlIZWFkZXJQcm9wcyAmIHtcbiAgZm9udFNpemVPZmZzZXQ6IEZvbnRTaXplT2Zmc2V0O1xuICBjb2xvcjogQ29udGVudEhlYWRpbmdQcm9wc1tcImNvbG9yXCJdO1xufTtcblxuLy8gSW5jcmVtZW50L0RlY3JlbWVudCBmb250IHNpemUgaW4gRFMgY29tcG9uZW50XG5mdW5jdGlvbiBnZXRDb21wb25lbnQobGV2ZWw6IENvbnRlbnRIZWFkaW5nUHJvcHNbXCJsZXZlbFwiXSkge1xuICBjb25zdCBDb21wb25lbnQgPSBsZXZlbENvbXBvbmVudE1hcFtcbiAgICBsZXZlbFxuICBdIGFzIFJlYWN0LkNvbXBvbmVudFR5cGU8VHlwb2dyYXBoeUhlYWRlclByb3BzPjtcblxuICByZXR1cm4gc3R5bGVkKENvbXBvbmVudCk8U3R5bGVkSGVhZGVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBmb250U2l6ZU9mZnNldCwgY29sb3IgfSkgPT4ge1xuICAgICAgY29uc3QgeyBmb250U2l6ZSB9ID1cbiAgICAgICAgZ2V0TGluZUhlaWdodEFuZEZvbnRTaXplKHRoZW1lKVtsZXZlbC50b1VwcGVyQ2FzZSgpIGFzIEhlYWRlckNvbXBvbmVudF07XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGh5cGhlbnM6IFwiYXV0b1wiLFxuICAgICAgICBvdmVyZmxvd1dyYXA6IFwiYnJlYWstd29yZFwiLFxuICAgICAgICBmb250U2l6ZTpcbiAgICAgICAgICBmb250U2l6ZU9mZnNldCAhPT0gMFxuICAgICAgICAgICAgPyBgY2FsYygke2ZvbnRTaXplfSArICR7Zm9udFNpemVPZmZzZXR9cHgpYFxuICAgICAgICAgICAgOiBmb250U2l6ZSxcbiAgICAgICAgY29sb3I6IGlzQ29udGVudENvbG9yKGNvbG9yKVxuICAgICAgICAgID8gdGhlbWUudmFsdWVzLmNvbG9yLmNvbnRlbnQudGV4dFtjb2xvciBhcyBDb250ZW50Q29sb3JdLmRlZmF1bHRcbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIH07XG4gICAgfVxuICApO1xufVxuXG5jb25zdCBTdHlsZWRDb250YWluZXIgPSBzdHlsZWQuZGl2KCh7IHRoZW1lIH0pID0+ICh7XG4gIG1hcmdpblRvcDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICBtYXJnaW5Cb3R0b206IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHMsXG59KSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBDb250ZW50SGVhZGluZyh7XG4gIGxldmVsLFxuICBjb2xvcixcbiAgaGFzRGl2aWRlciA9IGZhbHNlLFxuICB3cmFwcGVyQ2xhc3NOYW1lLFxuICBub1dyYXBwZXIgPSBmYWxzZSxcbiAgLi4ucmVzdFxufTogQ29udGVudEhlYWRpbmdQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IGZvbnRTaXplT2Zmc2V0ID0gdXNlQ29udGV4dChGb250U2l6ZU9mZnNldENvbnRleHQpO1xuICBjb25zdCBIZWFkZXJDb21wb25lbnQgPSB1c2VNZW1vKCgpID0+IGdldENvbXBvbmVudChsZXZlbCksIFtsZXZlbF0pO1xuXG4gIGNvbnN0IGhlYWRlciA9IChcbiAgICA8SGVhZGVyQ29tcG9uZW50XG4gICAgICB7Li4uKG5vV3JhcHBlciA/IHsgXCJkYXRhLWRzLWlkXCI6IFwiQ29udGVudEhlYWRpbmdcIiB9IDoge30pfVxuICAgICAgZm9udFNpemVPZmZzZXQ9e2ZvbnRTaXplT2Zmc2V0fVxuICAgICAgY29sb3I9e2NvbG9yfVxuICAgICAgey4uLnJlc3R9XG4gICAgLz5cbiAgKTtcblxuICByZXR1cm4gbm9XcmFwcGVyID8gKFxuICAgIGhlYWRlclxuICApIDogKFxuICAgIDxTdHlsZWRDb250YWluZXIgZGF0YS1kcy1pZD1cIkNvbnRlbnRIZWFkaW5nXCIgY2xhc3NOYW1lPXt3cmFwcGVyQ2xhc3NOYW1lfT5cbiAgICAgIDxTdGFjayBzcGFjZT1cInh4c1wiPlxuICAgICAgICB7aGVhZGVyfVxuICAgICAgICB7aGFzRGl2aWRlciAmJiA8RGl2aWRlciAvPn1cbiAgICAgIDwvU3RhY2s+XG4gICAgPC9TdHlsZWRDb250YWluZXI+XG4gICk7XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0VTIn0= */")})(level),[level]),header=_react.default.createElement(HeaderComponent,{...noWrapper?{"data-ds-id":"ContentHeading"}:{},fontSizeOffset:fontSizeOffset,color:color,...rest});return noWrapper?header:_react.default.createElement(StyledContainer,{"data-ds-id":"ContentHeading",className:wrapperClassName},_react.default.createElement(_Stack.Stack,{space:"xxs"},header,hasDivider&&_react.default.createElement(_Divider.Divider,null)))}
@@ -35,6 +35,8 @@ export type SidePanelStateBase = {
35
35
  visible: boolean;
36
36
  /** Whether it can collapse at all. */
37
37
  collapsible: boolean;
38
+ /** Whether it can be drag-resized at all. */
39
+ resizable: boolean;
38
40
  /** Current size (px number or "%" string). */
39
41
  size?: Size;
40
42
  /** Constraint from config (component prop overrides). */
@@ -85,6 +87,10 @@ export type LayoutState = {
85
87
  export type SidePanelConfig = {
86
88
  defaultVisible?: boolean;
87
89
  collapsible?: boolean;
90
+ /** Desktop only: allow drag-resizing the panel's column. Defaults `false` for
91
+ * the left panel, `true` for the right. The panel's own `resizable` prop
92
+ * overrides this. */
93
+ resizable?: boolean;
88
94
  defaultSize?: Size;
89
95
  minSize?: Size;
90
96
  maxSize?: Size;
@@ -194,6 +200,13 @@ export type SidePanelProps = {
194
200
  defaultSize?: Size;
195
201
  minSize?: Size;
196
202
  maxSize?: Size;
203
+ /** Desktop only: allow drag-resizing the panel's column. Overrides the
204
+ * provider config's `resizable`, which defaults `false` for the left panel
205
+ * and `true` for the right. When `false`, the column is fixed at
206
+ * `defaultSize` - neighbours can't resize it either, though they stay
207
+ * resizable against each other. Showing and hiding the panel still works.
208
+ * No effect on the mobile drawer/sheet. */
209
+ resizable?: boolean;
197
210
  /** Called whenever the panel's visibility changes, with the new value. */
198
211
  onVisibleChange?: (visible: boolean) => void;
199
212
  };
@@ -317,6 +330,8 @@ export type PanelContainerProps = {
317
330
  onScroll?: React.UIEventHandler<HTMLDivElement>;
318
331
  /** Draws a separator border on the panel's left edge. */
319
332
  showBorderLeft?: boolean;
333
+ /** Draws a separator border on the panel's right edge. */
334
+ showBorderRight?: boolean;
320
335
  "data-e2e-test-id"?: string;
321
336
  };
322
337
  export type RightPanelProps = SidePanelProps & {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Layout",{enumerable:!0,get:function(){return Layout}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_Panel=require("../Internal/Panel/Panel"),_LayoutFloat=require("../Internal/LayoutFloat/LayoutFloat"),_useBreakpoints=require("../../shared/useBreakpoints"),_constants=require("./-constants"),_context=require("./context"),_useMobileSplitStack=require("./Split/MobileSplitView/useMobileSplitStack"),_useMobileSplitView=require("./Split/MobileSplitView/useMobileSplitView"),_LayoutProvider=require("./LayoutProvider"),_Content=require("./Content/Content"),_RightPanel=require("./RightPanel/RightPanel"),_RightPanelHeader=require("./RightPanel/RightPanelHeader"),_RightPanelFooter=require("./RightPanel/RightPanelFooter"),_LeftPanel=require("./LeftPanel/LeftPanel"),_LeftPanelHeader=require("./LeftPanel/LeftPanelHeader"),_LeftPanelFooter=require("./LeftPanel/LeftPanelFooter"),_Split=require("./Split/Split"),_SplitHeader=require("./Split/SplitHeader"),_SplitFooter=require("./Split/SplitFooter"),_registry=require("./registry"),_useFloatablePortalTargets=require("./useFloatablePortalTargets"),_LayoutFloatDragProvider=require("../Internal/LayoutFloat/LayoutFloatDragProvider"),_LayoutCssVars=require("./LayoutCssVars"),_useLayout=require("./useLayout"),useGlobalCssVariables=slotHosts=>{let contentWidthCssVar=(0,_LayoutCssVars.useLayoutVar)(_constants.PANEL_WIDTH_VAR.content),rightPanelWidthCssVar=(0,_LayoutCssVars.useLayoutVar)(_constants.PANEL_WIDTH_VAR.rightPanel);(0,_react.useEffect)(()=>{let targets=[[_constants.Slot.content,contentWidthCssVar],[_constants.Slot.rightPanel,rightPanelWidthCssVar]],observers=[];return targets.forEach(([slot,handle])=>{let node=slotHosts[slot]??null;if(!node)return void handle.set("0px");let publishNodeWidth=()=>handle.set(`${node.getBoundingClientRect().width}px`);if(publishNodeWidth(),"undefined"==typeof ResizeObserver)return;let observer=new ResizeObserver(publishNodeWidth);observer.observe(node),observers.push(observer)}),()=>observers.forEach(observer=>observer.disconnect())},[contentWidthCssVar,rightPanelWidthCssVar,slotHosts])},StyledLayout=(0,_styled.default)("div",{target:"e1mskuo90",label:"StyledLayout"})({position:"relative",height:"100%",width:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0xheW91dC9MYXlvdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBQYW5lbEltcGVyYXRpdmVIYW5kbGUgfSBmcm9tIFwicmVhY3QtcmVzaXphYmxlLXBhbmVsc1wiO1xuaW1wb3J0IHsgUGFuZWwgfSBmcm9tIFwiLi4vSW50ZXJuYWwvUGFuZWwvUGFuZWxcIjtcbmltcG9ydCB0eXBlIHsgUGFuZWxJdGVtIH0gZnJvbSBcIi4uL0ludGVybmFsL1BhbmVsL1BhbmVsXCI7XG5pbXBvcnQgeyBMYXlvdXRGbG9hdCB9IGZyb20gXCIuLi9JbnRlcm5hbC9MYXlvdXRGbG9hdC9MYXlvdXRGbG9hdFwiO1xuaW1wb3J0IHsgdXNlQnJlYWtwb2ludHMgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZUJyZWFrcG9pbnRzXCI7XG5pbXBvcnQgeyBQQU5FTF9PUkRFUiwgUEFORUxfV0lEVEhfVkFSLCBTbG90IH0gZnJvbSBcIi4vLWNvbnN0YW50c1wiO1xuaW1wb3J0IHsgdXNlTGF5b3V0UGFuZWxzRW5hYmxlZCwgdXNlTGF5b3V0UGVyc2lzdGVuY2UgfSBmcm9tIFwiLi9jb250ZXh0XCI7XG5pbXBvcnQge1xuICBNb2JpbGVTcGxpdFN0YWNrQ29udGV4dCxcbiAgdHlwZSBNb2JpbGVTcGxpdFN0YWNrVmFsdWUsXG59IGZyb20gXCIuL1NwbGl0L01vYmlsZVNwbGl0Vmlldy91c2VNb2JpbGVTcGxpdFN0YWNrXCI7XG5pbXBvcnQgeyB1c2VNb2JpbGVTcGxpdFZpZXdFbmFibGVkIH0gZnJvbSBcIi4vU3BsaXQvTW9iaWxlU3BsaXRWaWV3L3VzZU1vYmlsZVNwbGl0Vmlld1wiO1xuaW1wb3J0IHsgTGF5b3V0UHJvdmlkZXIgfSBmcm9tIFwiLi9MYXlvdXRQcm92aWRlclwiO1xuaW1wb3J0IHsgQ29udGVudCB9IGZyb20gXCIuL0NvbnRlbnQvQ29udGVudFwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbCB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbFwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbEhlYWRlciB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbEhlYWRlclwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbEZvb3RlciB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbEZvb3RlclwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbFwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsSGVhZGVyIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbEhlYWRlclwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsRm9vdGVyIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbEZvb3RlclwiO1xuaW1wb3J0IHsgU3BsaXQgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdFwiO1xuaW1wb3J0IHsgU3BsaXRIZWFkZXIgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdEhlYWRlclwiO1xuaW1wb3J0IHsgU3BsaXRGb290ZXIgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdEZvb3RlclwiO1xuaW1wb3J0IHtcbiAgTGF5b3V0UG9ydGFsQ29udGV4dCxcbiAgUGFuZWxSZWdpc3RyeUNvbnRleHQsXG4gIFBhbmVsRGVjbGFyYXRpb25zQ29udGV4dCxcbiAgUGFuZWxQcmVzZW5jZUNvbnRleHQsXG4gIFBhbmVsQW5pbWF0aW9uQ29udGV4dCxcbiAgdHlwZSBQb3J0YWxUYXJnZXRzLFxuICB0eXBlIFBhbmVsUmVnLFxuICB0eXBlIFBhbmVsUmVnaXN0cnksXG4gIHR5cGUgUGFuZWxQcmVzZW5jZSxcbiAgdHlwZSBQYW5lbEFuaW1hdGlvbkNvbnRyb2wsXG59IGZyb20gXCIuL3JlZ2lzdHJ5XCI7XG5pbXBvcnQgeyB1c2VGbG9hdGFibGVQb3J0YWxUYXJnZXRzIH0gZnJvbSBcIi4vdXNlRmxvYXRhYmxlUG9ydGFsVGFyZ2V0c1wiO1xuaW1wb3J0IHsgTGF5b3V0RmxvYXREcmFnUHJvdmlkZXIgfSBmcm9tIFwiLi4vSW50ZXJuYWwvTGF5b3V0RmxvYXQvTGF5b3V0RmxvYXREcmFnUHJvdmlkZXJcIjtcbmltcG9ydCB7IHVzZUxheW91dFZhciwgdHlwZSBMYXlvdXRWYXJIYW5kbGUgfSBmcm9tIFwiLi9MYXlvdXRDc3NWYXJzXCI7XG5pbXBvcnQgeyB1c2VMYXlvdXQgfSBmcm9tIFwiLi91c2VMYXlvdXRcIjtcbmltcG9ydCB0eXBlIHsgTGF5b3V0UHJvcHMsIFNpemUsIFNsb3RLZXkgfSBmcm9tIFwiLi8tdHlwZXNcIjtcblxuLyoqXG4gKiBQdWJsaXNoZXMgZWFjaCBwYW5lbCdzIGxpdmUgcGl4ZWwgd2lkdGggYXMgYSBsYXlvdXQgQ1NTIHZhciAoZS5nLlxuICogYC0tZHMtbGF5b3V0LXJpZ2h0UGFuZWwtd2lkdGhgKSwgdHJhY2tpbmcgZHJhZy0gYW5kIHdpbmRvdy1yZXNpemVzLiBBIGhpZGRlblxuICogcGFydCAobm8gaG9zdCBub2RlKSByZWFkcyBgMHB4YCwgc28gdGhlIHZhciBpcyBhbHdheXMgZGVmaW5lZC4gT25lXG4gKiBgdXNlTGF5b3V0VmFyYCBwZXIgc2xvdCBpbiBgUEFORUxfV0lEVEhfVkFSYC5cbiAqL1xuY29uc3QgdXNlR2xvYmFsQ3NzVmFyaWFibGVzID0gKHNsb3RIb3N0czogUG9ydGFsVGFyZ2V0cyk6IHZvaWQgPT4ge1xuICBjb25zdCBjb250ZW50V2lkdGhDc3NWYXIgPSB1c2VMYXlvdXRWYXIoUEFORUxfV0lEVEhfVkFSLmNvbnRlbnQpO1xuICBjb25zdCByaWdodFBhbmVsV2lkdGhDc3NWYXIgPSB1c2VMYXlvdXRWYXIoUEFORUxfV0lEVEhfVkFSLnJpZ2h0UGFuZWwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0czogW1Nsb3RLZXksIExheW91dFZhckhhbmRsZV1bXSA9IFtcbiAgICAgIFtTbG90LmNvbnRlbnQsIGNvbnRlbnRXaWR0aENzc1Zhcl0sXG4gICAgICBbU2xvdC5yaWdodFBhbmVsLCByaWdodFBhbmVsV2lkdGhDc3NWYXJdLFxuICAgIF07XG4gICAgY29uc3Qgb2JzZXJ2ZXJzOiBSZXNpemVPYnNlcnZlcltdID0gW107XG5cbiAgICB0YXJnZXRzLmZvckVhY2goKFtzbG90LCBoYW5kbGVdKSA9PiB7XG4gICAgICBjb25zdCBub2RlID0gc2xvdEhvc3RzW3Nsb3RdID8/IG51bGw7XG4gICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgaGFuZGxlLnNldChcIjBweFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgcHVibGlzaE5vZGVXaWR0aCA9ICgpOiB2b2lkID0+XG4gICAgICAgIGhhbmRsZS5zZXQoYCR7bm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH1weGApO1xuICAgICAgcHVibGlzaE5vZGVXaWR0aCgpO1xuICAgICAgLy8ganNkb20gKGFuZCBvbGQgYnJvd3NlcnMpIGxhY2sgUmVzaXplT2JzZXJ2ZXIg4oCUIHNraXAgbGl2ZSB0cmFja2luZyB0aGVyZS5cbiAgICAgIGlmICh0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybjtcbiAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKHB1Ymxpc2hOb2RlV2lkdGgpO1xuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShub2RlKTtcbiAgICAgIG9ic2VydmVycy5wdXNoKG9ic2VydmVyKTtcbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiBvYnNlcnZlcnMuZm9yRWFjaCgob2JzZXJ2ZXIpID0+IG9ic2VydmVyLmRpc2Nvbm5lY3QoKSk7XG4gIH0sIFtjb250ZW50V2lkdGhDc3NWYXIsIHJpZ2h0UGFuZWxXaWR0aENzc1Zhciwgc2xvdEhvc3RzXSk7XG59O1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogTGF5b3V0IC0gcmVnaXN0cnkgKyBob3N0czsgbWFya2VycyBkZWNsYXJlL3BvcnRhbDsgdGhlIHJlc2l6YWJsZSBwYW5lbCByb3cgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gYHBvc2l0aW9uOiByZWxhdGl2ZWAgYW5jaG9ycyB0aGUgYWJzb2x1dGVseS1wb3NpdGlvbmVkIHNwbGl0IHN0YWNrIGhvc3QgYW5kXG4vLyB0aGUgZmxvYXRpbmcgd2luZG93LiBPdmVyZmxvdyBpcyBsZWZ0IHVudG91Y2hlZCAodmlzaWJsZSkgc28gYSBwYWdlIHJlbHlpbmdcbi8vIG9uIGRvY3VtZW50L2FuY2VzdG9yIHNjcm9sbGluZyBpcyB1bmFmZmVjdGVkIC0gdGhlIG9mZnNjcmVlbiBzcGxpdCBsYXllcnMgYXJlXG4vLyBjbGlwcGVkIGJ5IHRoZWlyIG93biBob3N0IGJlbG93LCBub3QgaGVyZS5cbmNvbnN0IFN0eWxlZExheW91dCA9IHN0eWxlZC5kaXYoe1xuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICBoZWlnaHQ6IFwiMTAwJVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuLy8gU29sby1tb2RlIGhvc3Q6IGEgbG9uZSBwYW5lbCAobm8gcmVzaXphYmxlIHNpYmxpbmcpIGlzIGhvc3RlZCBoZXJlIGluc3RlYWQgb2Zcbi8vIGluc2lkZSByZWFjdC1yZXNpemFibGUtcGFuZWxzLiBNYXRjaGVzIHRoZSBwZXItcGFuZWwgaG9zdCB0aGUgR3JvdXAgcmVuZGVyc1xuLy8gKGByZWxhdGl2ZWAgKyBmdWxsLWJsZWVkKSBzbyBjb250ZW50IHJlZmxvd3Mvc2Nyb2xscyBpZGVudGljYWxseSBlaXRoZXIgd2F5LlxuY29uc3QgU3R5bGVkU29sb0hvc3QgPSBzdHlsZWQuZGl2KHtcbiAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgd2lkdGg6IFwiMTAwJVwiLFxufSk7XG5cbi8vIEZ1bGwtYXJlYSBvdmVybGF5IGF0IHRoZSBsYXlvdXQgcm9vdCB0aGF0IGhvc3RzIHRoZSBtb2JpbGUgc3BsaXQgc3RhY2suIFRoZVxuLy8gbGFzdCBjaGlsZCBvZiBgU3R5bGVkTGF5b3V0YCwgc28gaXQgc3RhY2tzIGFib3ZlIHRoZSBwYW5lbCByb3c7IGBjb250ZW50YCBhbmRcbi8vIHRoZSBzcGxpdCB2aWV3cyBwb3J0YWwgdGhlaXIgc2xpZGluZyBsYXllcnMgaW4gaGVyZS4gYHBvaW50ZXItZXZlbnRzOiBub25lYFxuLy8gc28gaXQgbmV2ZXIgYmxvY2tzIHRoZSBsYXlvdXQgYmVuZWF0aCAtIGVhY2ggbGF5ZXIgcmUtZW5hYmxlcyBldmVudHMgd2hlblxuLy8gaXQncyB0aGUgYWN0aXZlIChmcm9udCkgdmlldy4gYG92ZXJmbG93OiBoaWRkZW5gIGNsaXBzIHRoZSBpbmFjdGl2ZSBsYXllcnMnXG4vLyBvZmZzY3JlZW4gcmVzdGluZyBwb3NpdGlvbiAodHJhbnNsYXRlWCBwYXN0IHRoZSBlZGdlKSBzbyB0aGV5IGRvbid0IHdpZGVuXG4vLyB0aGUgcGFnZSAtIHNjb3BlZCBoZXJlLCBub3Qgb24gdGhlIHJvb3QsIHNvIGl0IG5ldmVyIGFmZmVjdHMgcGFnZSBzY3JvbGxpbmcuXG5jb25zdCBTdHlsZWRNb2JpbGVTcGxpdFN0YWNrSG9zdCA9IHN0eWxlZC5kaXYoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICBpbnNldDogMCxcbiAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxufSk7XG5cbmZ1bmN0aW9uIExheW91dEJhc2Uoe1xuICBjaGlsZHJlbixcbiAgcGVyc2lzdGVuY2VLZXksXG4gIHN0b3JhZ2UsXG59OiBMYXlvdXRQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IFtkZWNsYXJlZCwgc2V0RGVjbGFyZWRdID0gdXNlU3RhdGU8UGFydGlhbDxSZWNvcmQ8U2xvdEtleSwgUGFuZWxSZWc+Pj4oXG4gICAge31cbiAgKTtcbiAgY29uc3QgeyBzdGF0ZTogbGF5b3V0U3RhdGUsIC4uLnBhbmVsQ2FsbGJhY2tzIH0gPSB1c2VMYXlvdXQoKTtcbiAgY29uc3QgcGVyc2lzdGVuY2UgPSB1c2VMYXlvdXRQZXJzaXN0ZW5jZSgpO1xuICBjb25zdCByZXNvbHZlZEtleSA9IHBlcnNpc3RlbmNlS2V5ID8/IHBlcnNpc3RlbmNlLnBlcnNpc3RlbmNlS2V5O1xuICBjb25zdCByZXNvbHZlZFN0b3JhZ2UgPSBzdG9yYWdlID8/IHBlcnNpc3RlbmNlLnN0b3JhZ2U7XG5cbiAgLy8gQmVsb3cgdGhlIG1vYmlsZSBicmVha3BvaW50IHRoZSByaWdodFBhbmVsIHJlbmRlcnMgYXMgYSBib3R0b20gc2hlZXQgKGl0c1xuICAvLyBtYXJrZXIgcmVuZGVycyB0aGUgU2hlZXQgaXRzZWxmKSAtIGFuIGF1dG9tYXRpYywgcmVuZGVyLWxldmVsIGFkYXB0YXRpb24uXG4gIC8vIFRoZSBzdG9yZWQgdmFyaWFudCBpcyB1bnRvdWNoZWQsIHNvIHJlc2l6aW5nIGJhY2sgdG8gZGVza3RvcCByZXN0b3JlcyB0aGVcbiAgLy8gZXhhY3QgcHJlc2VudGF0aW9uIChkb2NrZWQgb3IgZmxvYXRpbmcpIHRoZSB1c2VyIGxlZnQuXG4gIGNvbnN0IHsgaXNNb2JpbGUgfSA9IHVzZUJyZWFrcG9pbnRzKCk7XG4gIGNvbnN0IGlzUmlnaHRQYW5lbFNoZWV0ID0gaXNNb2JpbGU7XG5cbiAgLy8gVGhlIG1vYmlsZSBzcGxpdCBzdGFjaydzIHNoYXJlZCBzdGF0ZSwgc2NvcGVkIHRvIHRoaXMgTGF5b3V0OiB0aGUgaG9zdFxuICAvLyBlbGVtZW50IG1hcmtlcnMgcG9ydGFsIGludG8gKG9ubHkgcmVuZGVyZWQgd2hpbGUgdGhlIHN0YWNrIGFwcGxpZXMgdG8gdGhlXG4gIC8vIHZpZXdwb3J0KSBhbmQgaG93IG1hbnkgc3BsaXQgdmlld3MgYXJlIG1vdW50ZWQgKGEgY291bnQgdG9sZXJhdGVzIHRyYW5zaWVudFxuICAvLyBkb3VibGUtbW91bnRzKS4gYGNvbnRlbnRgIHJlYWRzIHByZXNlbmNlIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGpvaW4gdGhlXG4gIC8vIHN0YWNrOyBib3RoIGFyZSBwdWJsaXNoZWQgdG9nZXRoZXIgdmlhIE1vYmlsZVNwbGl0U3RhY2tDb250ZXh0LlxuICBjb25zdCBzaG93TW9iaWxlU3BsaXRTdGFjayA9IHVzZU1vYmlsZVNwbGl0Vmlld0VuYWJsZWQoKTtcbiAgY29uc3QgW21vYmlsZVNwbGl0U3RhY2tIb3N0LCBzZXRNb2JpbGVTcGxpdFN0YWNrSG9zdF0gPVxuICAgIHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFtzcGxpdENvdW50LCBzZXRTcGxpdENvdW50XSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCByZWdpc3RlclNwbGl0ID0gdXNlQ2FsbGJhY2s8XG4gICAgTW9iaWxlU3BsaXRTdGFja1ZhbHVlW1wicmVnaXN0ZXJTcGxpdFwiXVxuICA+KCgpID0+IHtcbiAgICBzZXRTcGxpdENvdW50KChjb3VudCkgPT4gY291bnQgKyAxKTtcbiAgICByZXR1cm4gKCkgPT4gc2V0U3BsaXRDb3VudCgoY291bnQpID0+IGNvdW50IC0gMSk7XG4gIH0sIFtdKTtcbiAgY29uc3QgbW9iaWxlU3BsaXRTdGFjayA9IHVzZU1lbW88TW9iaWxlU3BsaXRTdGFja1ZhbHVlPihcbiAgICAoKSA9PiAoe1xuICAgICAgaG9zdDogbW9iaWxlU3BsaXRTdGFja0hvc3QsXG4gICAgICBpc1NwbGl0UHJlc2VudDogc3BsaXRDb3VudCA+IDAsXG4gICAgICByZWdpc3RlclNwbGl0LFxuICAgIH0pLFxuICAgIFttb2JpbGVTcGxpdFN0YWNrSG9zdCwgc3BsaXRDb3VudCwgcmVnaXN0ZXJTcGxpdF1cbiAgKTtcblxuICAvLyBBIGZsb2F0aW5nIHJpZ2h0UGFuZWwgc3RheXMgdmlzaWJsZSAoaXRzIG1hcmtlciBrZWVwcyByZW5kZXJpbmcgY29udGVudClcbiAgLy8gYnV0IGxlYXZlcyB0aGUgcmVzaXphYmxlIHJvdyAtIGV4YWN0bHkgbGlrZSBhIGhpZGRlbiBwYW5lbCBkb2VzLiBUaGVcbiAgLy8gbW9iaWxlIHNoZWV0IHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGUgZmxvYXQuIEZsb2F0IGlzIGFcbiAgLy8gZGVza3RvcCBwcmVzZW50YXRpb24sIHNvIG9ubHkgbW9kZSBgdHJ1ZWAgZW5hYmxlcyBpdC4gVGhlIHN0b3JlJ3MgdmFyaWFudFxuICAvLyBzdGFydHMgdW5zZXQ7IHRoZSBtYXJrZXIncyBkZWNsYXJlZCBgdmFyaWFudGAgcHJvcCBpcyB0aGUgaW5pdGlhbFxuICAvLyBwcmVzZW50YXRpb24gdW50aWwgdGhlIGZpcnN0IGBzZXRWYXJpYW50YCB3cml0ZXMgdG8gdGhlIHN0b3JlLlxuICBjb25zdCBwYW5lbHNFbmFibGVkID0gdXNlTGF5b3V0UGFuZWxzRW5hYmxlZCgpO1xuICBjb25zdCByaWdodFBhbmVsVmFyaWFudCA9XG4gICAgbGF5b3V0U3RhdGVbU2xvdC5yaWdodFBhbmVsXS52YXJpYW50ID8/XG4gICAgZGVjbGFyZWRbU2xvdC5yaWdodFBhbmVsXT8udmFyaWFudCA/P1xuICAgIFwic2lkZWJhclwiO1xuICBjb25zdCBpc1JpZ2h0UGFuZWxGbG9hdGluZyA9XG4gICAgcGFuZWxzRW5hYmxlZCA9PT0gdHJ1ZSAmJlxuICAgICFpc1JpZ2h0UGFuZWxTaGVldCAmJlxuICAgIHJpZ2h0UGFuZWxWYXJpYW50ID09PSBcImZsb2F0XCI7XG5cbiAgY29uc3QgaXNTaG93biA9IChzbG90OiBTbG90S2V5KTogYm9vbGVhbiA9PlxuICAgIGxheW91dFN0YXRlW3Nsb3RdLnZpc2libGUgJiZcbiAgICAhKHNsb3QgPT09IFNsb3QucmlnaHRQYW5lbCAmJiAoaXNSaWdodFBhbmVsRmxvYXRpbmcgfHwgaXNSaWdodFBhbmVsU2hlZXQpKTtcblxuICAvLyBTbG90cyBrZXB0IG1vdW50ZWQgdGhyb3VnaCB0aGVpciBleGl0IGFuaW1hdGlvbiAocmVwb3J0ZWQgdmlhXG4gIC8vIGB1c2VQYW5lbFByZXNlbmNlYCkuIEEgcHJlc2VudC1idXQtaGlkZGVuIHNsb3Qgc3RheXMgaW4gdGhlIHJvdyBzbyBpdHNcbiAgLy8gY2xvc2UgYW5pbWF0aW9uIGNhbiBwbGF5OyBpdCdzIHJlbW92ZWQgb25jZSBwcmVzZW5jZSBmbGlwcyBmYWxzZS5cbiAgY29uc3QgW3ByZXNlbnQsIHNldFByZXNlbnRdID0gdXNlU3RhdGU8UGFydGlhbDxSZWNvcmQ8U2xvdEtleSwgYm9vbGVhbj4+Pih7fSk7XG4gIGNvbnN0IHByZXNlbmNlID0gdXNlTWVtbzxQYW5lbFByZXNlbmNlPihcbiAgICAoKSA9PiAoe1xuICAgICAgc2V0UHJlc2VudDogKHNsb3QsIGlzUHJlc2VudCkgPT5cbiAgICAgICAgc2V0UHJlc2VudCgocHJldikgPT5cbiAgICAgICAgICBwcmV2W3Nsb3RdID09PSBpc1ByZXNlbnQgPyBwcmV2IDogeyAuLi5wcmV2LCBbc2xvdF06IGlzUHJlc2VudCB9XG4gICAgICAgICksXG4gICAgfSksXG4gICAgW11cbiAgKTtcblxuICAvLyBBbmltYXRpb24gY29udHJvbCBmb3IgdGhlIGRvY2tlZCBzaWRlIHBhbmVscycgb3Blbi9jbG9zZSB3aWR0aCBzbGlkZS4gQWxsXG4gIC8vIHJlZi1iYXNlZCBvbiBwdXJwb3NlOiByZWdpc3RlcmluZyBoYW5kbGVzL2VsZW1lbnRzIGFuZCB0b2dnbGluZyBzdXBwcmVzc2lvblxuICAvLyBoYXBwZW4gZHVyaW5nIGNvbW1pdHMgYW5kIHBlci1mcmFtZSAtIG5vbmUgb2YgaXQgbWF5IHJlLXJlbmRlciB0aGUgTGF5b3V0LlxuICBjb25zdCBwYW5lbEhhbmRsZXMgPSB1c2VSZWY8XG4gICAgUGFydGlhbDxSZWNvcmQ8U2xvdEtleSwgUGFuZWxJbXBlcmF0aXZlSGFuZGxlIHwgbnVsbD4+XG4gID4oe30pO1xuICBjb25zdCBwYW5lbEVsZW1lbnRzID0gdXNlUmVmPFBhcnRpYWw8UmVjb3JkPFNsb3RLZXksIEhUTUxFbGVtZW50IHwgbnVsbD4+PihcbiAgICB7fVxuICApO1xuICBjb25zdCByZXNpemVTdXBwcmVzc2VkID0gdXNlUmVmPFBhcnRpYWw8UmVjb3JkPFNsb3RLZXksIGJvb2xlYW4+Pj4oe30pO1xuICBjb25zdCBhbmltYXRpb25Db250cm9sID0gdXNlTWVtbzxQYW5lbEFuaW1hdGlvbkNvbnRyb2w+KFxuICAgICgpID0+ICh7XG4gICAgICBzZXRIYW5kbGU6IChzbG90LCBoYW5kbGUpID0+IHtcbiAgICAgICAgcGFuZWxIYW5kbGVzLmN1cnJlbnRbc2xvdF0gPSBoYW5kbGU7XG4gICAgICB9LFxuICAgICAgZ2V0SGFuZGxlOiAoc2xvdCkgPT4gcGFuZWxIYW5kbGVzLmN1cnJlbnRbc2xvdF0gPz8gbnVsbCxcbiAgICAgIHNldEVsZW1lbnQ6IChzbG90LCBlbGVtZW50KSA9PiB7XG4gICAgICAgIHBhbmVsRWxlbWVudHMuY3VycmVudFtzbG90XSA9IGVsZW1lbnQ7XG4gICAgICB9LFxuICAgICAgZ2V0RWxlbWVudDogKHNsb3QpID0+IHBhbmVsRWxlbWVudHMuY3VycmVudFtzbG90XSA/PyBudWxsLFxuICAgICAgc2V0UmVzaXplU3VwcHJlc3NlZDogKHNsb3QsIHN1cHByZXNzZWQpID0+IHtcbiAgICAgICAgcmVzaXplU3VwcHJlc3NlZC5jdXJyZW50W3Nsb3RdID0gc3VwcHJlc3NlZDtcbiAgICAgIH0sXG4gICAgfSksXG4gICAgW11cbiAgKTtcbiAgLy8gU3RhYmxlIHBlci1zbG90IHJlZiBjYWxsYmFja3MgLSBhIGZyZXNoIGNhbGxiYWNrIGlkZW50aXR5IHBlciByZW5kZXIgd291bGRcbiAgLy8gbWFrZSBSZWFjdCBkZXRhY2gvcmVhdHRhY2ggdGhlIHJlZnMgb24gZXZlcnkgTGF5b3V0IHJlLXJlbmRlci5cbiAgY29uc3QgcGFuZWxSZWZDYWxsYmFja3MgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDYWxsYmFja3MgPSBuZXcgTWFwPFxuICAgICAgc3RyaW5nLFxuICAgICAgKGhhbmRsZTogUGFuZWxJbXBlcmF0aXZlSGFuZGxlIHwgbnVsbCkgPT4gdm9pZFxuICAgID4oKTtcbiAgICBjb25zdCBlbGVtZW50Q2FsbGJhY2tzID0gbmV3IE1hcDxcbiAgICAgIHN0cmluZyxcbiAgICAgIChlbGVtZW50OiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHZvaWRcbiAgICA+KCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhhbmRsZUZvcjogKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgbGV0IGNhbGxiYWNrID0gaGFuZGxlQ2FsbGJhY2tzLmdldChpZCk7XG4gICAgICAgIGlmICghY2FsbGJhY2spIHtcbiAgICAgICAgICBjYWxsYmFjayA9IChoYW5kbGUpID0+XG4gICAgICAgICAgICBhbmltYXRpb25Db250cm9sLnNldEhhbmRsZShpZCBhcyBTbG90S2V5LCBoYW5kbGUpO1xuICAgICAgICAgIGhhbmRsZUNhbGxiYWNrcy5zZXQoaWQsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2FsbGJhY2s7XG4gICAgICB9LFxuICAgICAgZWxlbWVudEZvcjogKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgbGV0IGNhbGxiYWNrID0gZWxlbWVudENhbGxiYWNrcy5nZXQoaWQpO1xuICAgICAgICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgICAgICAgY2FsbGJhY2sgPSAoZWxlbWVudCkgPT5cbiAgICAgICAgICAgIGFuaW1hdGlvbkNvbnRyb2wuc2V0RWxlbWVudChpZCBhcyBTbG90S2V5LCBlbGVtZW50KTtcbiAgICAgICAgICBlbGVtZW50Q2FsbGJhY2tzLnNldChpZCwgY2FsbGJhY2spO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYWxsYmFjaztcbiAgICAgIH0sXG4gICAgfTtcbiAgfSwgW2FuaW1hdGlvbkNvbnRyb2xdKTtcbiAgY29uc3Qgc2hvdWxkU3VwcHJlc3NMYXlvdXRDYWxsYmFjayA9IHVzZUNhbGxiYWNrKFxuICAgICgpID0+IE9iamVjdC52YWx1ZXMocmVzaXplU3VwcHJlc3NlZC5jdXJyZW50KS5zb21lKEJvb2xlYW4pLFxuICAgIFtdXG4gICk7XG5cbiAgY29uc3QgcmVnaXN0cnkgPSB1c2VNZW1vPFBhbmVsUmVnaXN0cnk+KFxuICAgICgpID0+ICh7XG4gICAgICByZWdpc3RlcjogKHNsb3QsIHJlZykgPT5cbiAgICAgICAgc2V0RGVjbGFyZWQoKHByZXYpID0+ICh7IC4uLnByZXYsIFtzbG90XTogcmVnIH0pKSxcbiAgICAgIHVucmVnaXN0ZXI6IChzbG90KSA9PlxuICAgICAgICBzZXREZWNsYXJlZCgocHJldikgPT4ge1xuICAgICAgICAgIGlmICghKHNsb3QgaW4gcHJldikpIHJldHVybiBwcmV2O1xuICAgICAgICAgIGNvbnN0IG5leHQgPSB7IC4uLnByZXYgfTtcbiAgICAgICAgICBkZWxldGUgbmV4dFtzbG90XTtcbiAgICAgICAgICByZXR1cm4gbmV4dDtcbiAgICAgICAgfSksXG4gICAgfSksXG4gICAgW11cbiAgKTtcblxuICBjb25zdCB7IHBvcnRhbFRhcmdldHMsIHNsb3RIb3N0cywgc2xvdEhvc3RSZWZzLCBmbG9hdEhvc3RSZWYgfSA9XG4gICAgdXNlRmxvYXRhYmxlUG9ydGFsVGFyZ2V0cyh7XG4gICAgICBzbG90czogUEFORUxfT1JERVIsXG4gICAgICBmbG9hdGFibGVTbG90OiBTbG90LnJpZ2h0UGFuZWwsXG4gICAgICBpc0Zsb2F0aW5nOiBpc1JpZ2h0UGFuZWxGbG9hdGluZyxcbiAgICB9KTtcblxuICB1c2VHbG9iYWxDc3NWYXJpYWJsZXMoc2xvdEhvc3RzKTtcblxuICAvLyBQYW5lbHMgdGhhdCBleGlzdCBpbiB0aGUgbGF5b3V0LCByZWdhcmRsZXNzIG9mIHZpc2liaWxpdHkuIERyaXZlcyB0aGVcbiAgLy8gc29sby12cy1yZXNpemFibGUgZGVjaXNpb24gYmVsb3cgLSBrZXllZCBvbiBERUNMQVJFRCAobm90IHNob3duKSBzbyB0aGF0XG4gIC8vIHNob3dpbmcvaGlkaW5nIGEgcGFuZWwgbmV2ZXIgZmxpcHMgdGhlIG1vZGUuXG4gIGNvbnN0IGRlY2xhcmVkU2xvdHMgPSBQQU5FTF9PUkRFUi5maWx0ZXIoKHNsb3QpID0+IGRlY2xhcmVkW3Nsb3RdKTtcblxuICAvLyBTb2xvIG1vZGU6IGEgc2luZ2xlIHBhbmVsIGlzIGRlY2xhcmVkIChlLmcuIGp1c3QgYENvbnRlbnRgLCB3aXRoIG5vXG4gIC8vIFJpZ2h0UGFuZWwvTGVmdFBhbmVsL1NwbGl0IGluIHRoZSB0cmVlKSAtIG5vdGhpbmcgdG8gcmVzaXplIGFnYWluc3QsIHNvIGhvc3RcbiAgLy8gaXQgaW4gYSBwbGFpbiBkaXYgYW5kIHNraXAgcmVhY3QtcmVzaXphYmxlLXBhbmVscyBlbnRpcmVseS4gQmVjYXVzZSB0aGVcbiAgLy8gY2hlY2sgaXMgb24gREVDTEFSRUQgcGFuZWxzLCB0b2dnbGluZyBhICpkZWNsYXJlZCogcGFuZWwncyB2aXNpYmlsaXR5IGtlZXBzXG4gIC8vIHRoZSBtb2RlIHN0YWJsZSwgc28gYENvbnRlbnRgIGlzIG5ldmVyIHJlbW91bnRlZCBieSBhIHNob3cvaGlkZS4gVGhlIG1vZGVcbiAgLy8gb25seSBmbGlwcyB3aGVuIGEgcGFuZWwgbWFya2VyIGlzIGFkZGVkIHRvIC8gcmVtb3ZlZCBmcm9tIHRoZSB0cmVlIChhXG4gIC8vIHN0cnVjdHVyYWwgY2hhbmdlKSwgd2hlcmUgYSBvbmUtdGltZSByZW1vdW50IGlzIGFjY2VwdGFibGUuXG4gIGNvbnN0IGlzU29sbyA9IGRlY2xhcmVkU2xvdHMubGVuZ3RoIDw9IDE7XG4gIGNvbnN0IHNvbG9TbG90ID0gZGVjbGFyZWRTbG90c1swXTtcblxuICAvLyBjb250ZW50IGZsZXhlcyAobm8gZml4ZWQgc2l6ZSk7IG90aGVycyB1c2UgdGhlIGRlY2xhcmVkIGRlZmF1bHQsIGZhbGxpbmdcbiAgLy8gYmFjayB0byB0aGUgcGVyc2lzdGVkL2NvbmZpZyBzaXplLlxuICBjb25zdCBkZWZhdWx0U2l6ZUZvciA9IChzbG90OiBTbG90S2V5KTogU2l6ZSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKHNsb3QgPT09IFNsb3QuY29udGVudCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gZGVjbGFyZWRbc2xvdF0/LmRlZmF1bHRTaXplID8/IGxheW91dFN0YXRlW3Nsb3RdLnNpemU7XG4gIH07XG5cbiAgLy8gT25seSB0aGUgcGFuZWxzIHRoYXQgYXJlIGRlY2xhcmVkIEFORCAoY3VycmVudGx5IHNob3duIE9SIG1pZC1leGl0KS4gQVxuICAvLyBoaWRkZW4tYnV0LXByZXNlbnQgc2xvdCBsaW5nZXJzIHNvIGl0cyBjbG9zZSBhbmltYXRpb24gY2FuIHBsYXk7IG90aGVyd2lzZVxuICAvLyBjbG9zZWQgcGFuZWxzIHJlc2VydmUgbm8gc3BhY2UuXG4gIGNvbnN0IHBhbmVsSXRlbXM6IFBhbmVsSXRlbVtdID0gUEFORUxfT1JERVIuZmlsdGVyKFxuICAgIChzbG90KSA9PiBkZWNsYXJlZFtzbG90XSAmJiAoaXNTaG93bihzbG90KSB8fCBwcmVzZW50W3Nsb3RdKVxuICApLm1hcCgoc2xvdCkgPT4gKHtcbiAgICBpZDogc2xvdCxcbiAgICBkZWZhdWx0U2l6ZTogZGVmYXVsdFNpemVGb3Ioc2xvdCksXG4gICAgbWluU2l6ZTogZGVjbGFyZWRbc2xvdF0/Lm1pblNpemUgPz8gbGF5b3V0U3RhdGVbc2xvdF0ubWluU2l6ZSxcbiAgICBtYXhTaXplOiBkZWNsYXJlZFtzbG90XT8ubWF4U2l6ZSA/PyBsYXlvdXRTdGF0ZVtzbG90XS5tYXhTaXplLFxuICAgIGNvbGxhcHNpYmxlOiBzbG90ICE9PSBTbG90LmNvbnRlbnQgJiYgKGRlY2xhcmVkW3Nsb3RdPy5jb2xsYXBzaWJsZSA/PyB0cnVlKSxcbiAgICByZXNpemFibGU6IGRlY2xhcmVkW3Nsb3RdPy5yZXNpemFibGUsXG4gIH0pKTtcblxuICAvLyBTb2xvIG1vZGUgaG9zdHMgdGhlIGxvbmUgcGFuZWwgaW4gYSBwbGFpbiBkaXYsIG5vIHJlc2l6YWJsZSBHcm91cC4gQSBoaWRkZW5cbiAgLy8gbG9uZSBwYW5lbCByZW5kZXJzIG5vdGhpbmcgKENvbnRlbnQgaXMgYWx3YXlzIHNob3duKS5cbiAgY29uc3Qgc29sb0hvc3QgPVxuICAgIHNvbG9TbG90ICYmIGlzU2hvd24oc29sb1Nsb3QpID8gKFxuICAgICAgPFN0eWxlZFNvbG9Ib3N0IHJlZj17c2xvdEhvc3RSZWZzW3NvbG9TbG90XX0gLz5cbiAgICApIDogbnVsbDtcblxuICAvLyBUaGUgcmVzaXphYmxlIEdyb3VwLiBga2V5YCA9IHRoZSBwZXJzaXN0ZW5jZSBuYW1lc3BhY2U6IHJlYWN0LXJlc2l6YWJsZS1wYW5lbHNcbiAgLy8gcmVhZHMgc3RvcmVkIHNpemVzIG9ubHkgb24gbW91bnQsIHNvIHJlbW91bnQgd2hlbiB0aGUga2V5IGNoYW5nZXMgdG8gbG9hZFxuICAvLyB0aGF0IGluc3RhbmNlJ3Mgc2l6ZXMgKHBlci1yb3V0ZSBzaXplIG1lbW9yeSkuIFRoZSBrZXkgbmV2ZXIgY2hhbmdlcyBvblxuICAvLyBwYW5lbCBvcGVuL2Nsb3NlLCBzbyBub3JtYWwgdG9nZ2xpbmcgc3RheXMgcmVtb3VudC1mcmVlLlxuICBjb25zdCBwYW5lbEdyb3VwID1cbiAgICBwYW5lbEl0ZW1zLmxlbmd0aCA+IDAgPyAoXG4gICAgICA8UGFuZWxcbiAgICAgICAga2V5PXtyZXNvbHZlZEtleX1cbiAgICAgICAgcGFuZWxzPXtwYW5lbEl0ZW1zfVxuICAgICAgICBwZXJzaXN0ZW5jZUtleT17cmVzb2x2ZWRLZXl9XG4gICAgICAgIHN0b3JhZ2U9e3Jlc29sdmVkU3RvcmFnZX1cbiAgICAgICAgaG9zdEZvcj17KGlkKSA9PiBzbG90SG9zdFJlZnNbaWQgYXMgU2xvdEtleV19XG4gICAgICAgIG9uUmVzaXplPXsoaWQsIHNpemUpID0+IHBhbmVsQ2FsbGJhY2tzW2lkIGFzIFNsb3RLZXldLnJlc2l6ZShzaXplKX1cbiAgICAgICAgb25Db2xsYXBzZT17KGlkKSA9PiBwYW5lbENhbGxiYWNrc1tpZCBhcyBTbG90S2V5XS5oaWRlKCl9XG4gICAgICAgIHBhbmVsSGFuZGxlRm9yPXtwYW5lbFJlZkNhbGxiYWNrcy5oYW5kbGVGb3J9XG4gICAgICAgIHBhbmVsRWxlbWVudEZvcj17cGFuZWxSZWZDYWxsYmFja3MuZWxlbWVudEZvcn1cbiAgICAgICAgc2hvdWxkU3VwcHJlc3NMYXlvdXRDYWxsYmFjaz17c2hvdWxkU3VwcHJlc3NMYXlvdXRDYWxsYmFja31cbiAgICAgIC8+XG4gICAgKSA6IG51bGw7XG5cbiAgcmV0dXJuIChcbiAgICA8UGFuZWxSZWdpc3RyeUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3JlZ2lzdHJ5fT5cbiAgICAgIDxQYW5lbERlY2xhcmF0aW9uc0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2RlY2xhcmVkfT5cbiAgICAgICAgPFBhbmVsUHJlc2VuY2VDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwcmVzZW5jZX0+XG4gICAgICAgICAgPFBhbmVsQW5pbWF0aW9uQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17YW5pbWF0aW9uQ29udHJvbH0+XG4gICAgICAgICAgICA8TGF5b3V0UG9ydGFsQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cG9ydGFsVGFyZ2V0c30+XG4gICAgICAgICAgICAgIDxMYXlvdXRGbG9hdERyYWdQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8TW9iaWxlU3BsaXRTdGFja0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e21vYmlsZVNwbGl0U3RhY2t9PlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZExheW91dCBkYXRhLWRzLWlkPVwiTGF5b3V0XCI+XG4gICAgICAgICAgICAgICAgICAgIHtpc1NvbG8gPyBzb2xvSG9zdCA6IHBhbmVsR3JvdXB9XG4gICAgICAgICAgICAgICAgICAgIHtpc1JpZ2h0UGFuZWxGbG9hdGluZyAmJlxuICAgICAgICAgICAgICAgICAgICAgIGxheW91dFN0YXRlW1Nsb3QucmlnaHRQYW5lbF0udmlzaWJsZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8TGF5b3V0RmxvYXQgaG9zdFJlZj17ZmxvYXRIb3N0UmVmfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAge3Nob3dNb2JpbGVTcGxpdFN0YWNrICYmIChcbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkTW9iaWxlU3BsaXRTdGFja0hvc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17c2V0TW9iaWxlU3BsaXRTdGFja0hvc3R9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkTGF5b3V0PlxuICAgICAgICAgICAgICAgIDwvTW9iaWxlU3BsaXRTdGFja0NvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgICAgICAgIDwvTGF5b3V0RmxvYXREcmFnUHJvdmlkZXI+XG4gICAgICAgICAgICA8L0xheW91dFBvcnRhbENvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgICAgPC9QYW5lbEFuaW1hdGlvbkNvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgIDwvUGFuZWxQcmVzZW5jZUNvbnRleHQuUHJvdmlkZXI+XG4gICAgICA8L1BhbmVsRGVjbGFyYXRpb25zQ29udGV4dC5Qcm92aWRlcj5cbiAgICA8L1BhbmVsUmVnaXN0cnlDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogUHVibGljIExheW91dCAtIHRoZSByZXNpemFibGUgcGFuZWwgcm93ICsgY29tcG91bmQgcGFydHMgYXMgc3RhdGljcyAgICAgICAgICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG50eXBlIExheW91dENvbXBvbmVudCA9IHR5cGVvZiBMYXlvdXRCYXNlICYge1xuICBQcm92aWRlcjogdHlwZW9mIExheW91dFByb3ZpZGVyO1xuICBMZWZ0UGFuZWw6IHR5cGVvZiBMZWZ0UGFuZWw7XG4gIExlZnRQYW5lbEhlYWRlcjogdHlwZW9mIExlZnRQYW5lbEhlYWRlcjtcbiAgTGVmdFBhbmVsRm9vdGVyOiB0eXBlb2YgTGVmdFBhbmVsRm9vdGVyO1xuICBSaWdodFBhbmVsOiB0eXBlb2YgUmlnaHRQYW5lbDtcbiAgUmlnaHRQYW5lbEhlYWRlcjogdHlwZW9mIFJpZ2h0UGFuZWxIZWFkZXI7XG4gIFJpZ2h0UGFuZWxGb290ZXI6IHR5cGVvZiBSaWdodFBhbmVsRm9vdGVyO1xuICBDb250ZW50OiB0eXBlb2YgQ29udGVudDtcbiAgU3BsaXQ6IHR5cGVvZiBTcGxpdDtcbiAgU3BsaXRIZWFkZXI6IHR5cGVvZiBTcGxpdEhlYWRlcjtcbiAgU3BsaXRGb290ZXI6IHR5cGVvZiBTcGxpdEZvb3Rlcjtcbn07XG5cbmV4cG9ydCBjb25zdCBMYXlvdXQgPSBMYXlvdXRCYXNlIGFzIExheW91dENvbXBvbmVudDtcblxuTGF5b3V0LlByb3ZpZGVyID0gTGF5b3V0UHJvdmlkZXI7XG5MYXlvdXQuTGVmdFBhbmVsID0gTGVmdFBhbmVsO1xuTGF5b3V0LkxlZnRQYW5lbEhlYWRlciA9IExlZnRQYW5lbEhlYWRlcjtcbkxheW91dC5MZWZ0UGFuZWxGb290ZXIgPSBMZWZ0UGFuZWxGb290ZXI7XG5MYXlvdXQuUmlnaHRQYW5lbCA9IFJpZ2h0UGFuZWw7XG5MYXlvdXQuUmlnaHRQYW5lbEhlYWRlciA9IFJpZ2h0UGFuZWxIZWFkZXI7XG5MYXlvdXQuUmlnaHRQYW5lbEZvb3RlciA9IFJpZ2h0UGFuZWxGb290ZXI7XG5MYXlvdXQuQ29udGVudCA9IENvbnRlbnQ7XG5MYXlvdXQuU3BsaXQgPSBTcGxpdDtcbkxheW91dC5TcGxpdEhlYWRlciA9IFNwbGl0SGVhZGVyO1xuTGF5b3V0LlNwbGl0Rm9vdGVyID0gU3BsaXRGb290ZXI7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBOEZxQiJ9 */"),StyledSoloHost=(0,_styled.default)("div",{target:"e1mskuo91",label:"StyledSoloHost"})({position:"relative",height:"100%",width:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0xheW91dC9MYXlvdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBQYW5lbEltcGVyYXRpdmVIYW5kbGUgfSBmcm9tIFwicmVhY3QtcmVzaXphYmxlLXBhbmVsc1wiO1xuaW1wb3J0IHsgUGFuZWwgfSBmcm9tIFwiLi4vSW50ZXJuYWwvUGFuZWwvUGFuZWxcIjtcbmltcG9ydCB0eXBlIHsgUGFuZWxJdGVtIH0gZnJvbSBcIi4uL0ludGVybmFsL1BhbmVsL1BhbmVsXCI7XG5pbXBvcnQgeyBMYXlvdXRGbG9hdCB9IGZyb20gXCIuLi9JbnRlcm5hbC9MYXlvdXRGbG9hdC9MYXlvdXRGbG9hdFwiO1xuaW1wb3J0IHsgdXNlQnJlYWtwb2ludHMgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZUJyZWFrcG9pbnRzXCI7XG5pbXBvcnQgeyBQQU5FTF9PUkRFUiwgUEFORUxfV0lEVEhfVkFSLCBTbG90IH0gZnJvbSBcIi4vLWNvbnN0YW50c1wiO1xuaW1wb3J0IHsgdXNlTGF5b3V0UGFuZWxzRW5hYmxlZCwgdXNlTGF5b3V0UGVyc2lzdGVuY2UgfSBmcm9tIFwiLi9jb250ZXh0XCI7XG5pbXBvcnQge1xuICBNb2JpbGVTcGxpdFN0YWNrQ29udGV4dCxcbiAgdHlwZSBNb2JpbGVTcGxpdFN0YWNrVmFsdWUsXG59IGZyb20gXCIuL1NwbGl0L01vYmlsZVNwbGl0Vmlldy91c2VNb2JpbGVTcGxpdFN0YWNrXCI7XG5pbXBvcnQgeyB1c2VNb2JpbGVTcGxpdFZpZXdFbmFibGVkIH0gZnJvbSBcIi4vU3BsaXQvTW9iaWxlU3BsaXRWaWV3L3VzZU1vYmlsZVNwbGl0Vmlld1wiO1xuaW1wb3J0IHsgTGF5b3V0UHJvdmlkZXIgfSBmcm9tIFwiLi9MYXlvdXRQcm92aWRlclwiO1xuaW1wb3J0IHsgQ29udGVudCB9IGZyb20gXCIuL0NvbnRlbnQvQ29udGVudFwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbCB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbFwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbEhlYWRlciB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbEhlYWRlclwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbEZvb3RlciB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbEZvb3RlclwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbFwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsSGVhZGVyIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbEhlYWRlclwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsRm9vdGVyIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbEZvb3RlclwiO1xuaW1wb3J0IHsgU3BsaXQgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdFwiO1xuaW1wb3J0IHsgU3BsaXRIZWFkZXIgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdEhlYWRlclwiO1xuaW1wb3J0IHsgU3BsaXRGb290ZXIgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdEZvb3RlclwiO1xuaW1wb3J0IHtcbiAgTGF5b3V0UG9ydGFsQ29udGV4dCxcbiAgUGFuZWxSZWdpc3RyeUNvbnRleHQsXG4gIFBhbmVsRGVjbGFyYXRpb25zQ29udGV4dCxcbiAgUGFuZWxQcmVzZW5jZUNvbnRleHQsXG4gIFBhbmVsQW5pbWF0aW9uQ29udGV4dCxcbiAgdHlwZSBQb3J0YWxUYXJnZXRzLFxuICB0eXBlIFBhbmVsUmVnLFxuICB0eXBlIFBhbmVsUmVnaXN0cnksXG4gIHR5cGUgUGFuZWxQcmVzZW5jZSxcbiAgdHlwZSBQYW5lbEFuaW1hdGlvbkNvbnRyb2wsXG59IGZyb20gXCIuL3JlZ2lzdHJ5XCI7XG5pbXBvcnQgeyB1c2VGbG9hdGFibGVQb3J0YWxUYXJnZXRzIH0gZnJvbSBcIi4vdXNlRmxvYXRhYmxlUG9ydGFsVGFyZ2V0c1wiO1xuaW1wb3J0IHsgTGF5b3V0RmxvYXREcmFnUHJvdmlkZXIgfSBmcm9tIFwiLi4vSW50ZXJuYWwvTGF5b3V0RmxvYXQvTGF5b3V0RmxvYXREcmFnUHJvdmlkZXJcIjtcbmltcG9ydCB7IHVzZUxheW91dFZhciwgdHlwZSBMYXlvdXRWYXJIYW5kbGUgfSBmcm9tIFwiLi9MYXlvdXRDc3NWYXJzXCI7XG5pbXBvcnQgeyB1c2VMYXlvdXQgfSBmcm9tIFwiLi91c2VMYXlvdXRcIjtcbmltcG9ydCB0eXBlIHsgTGF5b3V0UHJvcHMsIFNpemUsIFNsb3RLZXkgfSBmcm9tIFwiLi8tdHlwZXNcIjtcblxuLyoqXG4gKiBQdWJsaXNoZXMgZWFjaCBwYW5lbCdzIGxpdmUgcGl4ZWwgd2lkdGggYXMgYSBsYXlvdXQgQ1NTIHZhciAoZS5nLlxuICogYC0tZHMtbGF5b3V0LXJpZ2h0UGFuZWwtd2lkdGhgKSwgdHJhY2tpbmcgZHJhZy0gYW5kIHdpbmRvdy1yZXNpemVzLiBBIGhpZGRlblxuICogcGFydCAobm8gaG9zdCBub2RlKSByZWFkcyBgMHB4YCwgc28gdGhlIHZhciBpcyBhbHdheXMgZGVmaW5lZC4gT25lXG4gKiBgdXNlTGF5b3V0VmFyYCBwZXIgc2xvdCBpbiBgUEFORUxfV0lEVEhfVkFSYC5cbiAqL1xuY29uc3QgdXNlR2xvYmFsQ3NzVmFyaWFibGVzID0gKHNsb3RIb3N0czogUG9ydGFsVGFyZ2V0cyk6IHZvaWQgPT4ge1xuICBjb25zdCBjb250ZW50V2lkdGhDc3NWYXIgPSB1c2VMYXlvdXRWYXIoUEFORUxfV0lEVEhfVkFSLmNvbnRlbnQpO1xuICBjb25zdCByaWdodFBhbmVsV2lkdGhDc3NWYXIgPSB1c2VMYXlvdXRWYXIoUEFORUxfV0lEVEhfVkFSLnJpZ2h0UGFuZWwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0czogW1Nsb3RLZXksIExheW91dFZhckhhbmRsZV1bXSA9IFtcbiAgICAgIFtTbG90LmNvbnRlbnQsIGNvbnRlbnRXaWR0aENzc1Zhcl0sXG4gICAgICBbU2xvdC5yaWdodFBhbmVsLCByaWdodFBhbmVsV2lkdGhDc3NWYXJdLFxuICAgIF07XG4gICAgY29uc3Qgb2JzZXJ2ZXJzOiBSZXNpemVPYnNlcnZlcltdID0gW107XG5cbiAgICB0YXJnZXRzLmZvckVhY2goKFtzbG90LCBoYW5kbGVdKSA9PiB7XG4gICAgICBjb25zdCBub2RlID0gc2xvdEhvc3RzW3Nsb3RdID8/IG51bGw7XG4gICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgaGFuZGxlLnNldChcIjBweFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgcHVibGlzaE5vZGVXaWR0aCA9ICgpOiB2b2lkID0+XG4gICAgICAgIGhhbmRsZS5zZXQoYCR7bm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH1weGApO1xuICAgICAgcHVibGlzaE5vZGVXaWR0aCgpO1xuICAgICAgLy8ganNkb20gKGFuZCBvbGQgYnJvd3NlcnMpIGxhY2sgUmVzaXplT2JzZXJ2ZXIg4oCUIHNraXAgbGl2ZSB0cmFja2luZyB0aGVyZS5cbiAgICAgIGlmICh0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybjtcbiAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKHB1Ymxpc2hOb2RlV2lkdGgpO1xuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShub2RlKTtcbiAgICAgIG9ic2VydmVycy5wdXNoKG9ic2VydmVyKTtcbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiBvYnNlcnZlcnMuZm9yRWFjaCgob2JzZXJ2ZXIpID0+IG9ic2VydmVyLmRpc2Nvbm5lY3QoKSk7XG4gIH0sIFtjb250ZW50V2lkdGhDc3NWYXIsIHJpZ2h0UGFuZWxXaWR0aENzc1Zhciwgc2xvdEhvc3RzXSk7XG59O1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogTGF5b3V0IC0gcmVnaXN0cnkgKyBob3N0czsgbWFya2VycyBkZWNsYXJlL3BvcnRhbDsgdGhlIHJlc2l6YWJsZSBwYW5lbCByb3cgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gYHBvc2l0aW9uOiByZWxhdGl2ZWAgYW5jaG9ycyB0aGUgYWJzb2x1dGVseS1wb3NpdGlvbmVkIHNwbGl0IHN0YWNrIGhvc3QgYW5kXG4vLyB0aGUgZmxvYXRpbmcgd2luZG93LiBPdmVyZmxvdyBpcyBsZWZ0IHVudG91Y2hlZCAodmlzaWJsZSkgc28gYSBwYWdlIHJlbHlpbmdcbi8vIG9uIGRvY3VtZW50L2FuY2VzdG9yIHNjcm9sbGluZyBpcyB1bmFmZmVjdGVkIC0gdGhlIG9mZnNjcmVlbiBzcGxpdCBsYXllcnMgYXJlXG4vLyBjbGlwcGVkIGJ5IHRoZWlyIG93biBob3N0IGJlbG93LCBub3QgaGVyZS5cbmNvbnN0IFN0eWxlZExheW91dCA9IHN0eWxlZC5kaXYoe1xuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICBoZWlnaHQ6IFwiMTAwJVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuLy8gU29sby1tb2RlIGhvc3Q6IGEgbG9uZSBwYW5lbCAobm8gcmVzaXphYmxlIHNpYmxpbmcpIGlzIGhvc3RlZCBoZXJlIGluc3RlYWQgb2Zcbi8vIGluc2lkZSByZWFjdC1yZXNpemFibGUtcGFuZWxzLiBNYXRjaGVzIHRoZSBwZXItcGFuZWwgaG9zdCB0aGUgR3JvdXAgcmVuZGVyc1xuLy8gKGByZWxhdGl2ZWAgKyBmdWxsLWJsZWVkKSBzbyBjb250ZW50IHJlZmxvd3Mvc2Nyb2xscyBpZGVudGljYWxseSBlaXRoZXIgd2F5LlxuY29uc3QgU3R5bGVkU29sb0hvc3QgPSBzdHlsZWQuZGl2KHtcbiAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgd2lkdGg6IFwiMTAwJVwiLFxufSk7XG5cbi8vIEZ1bGwtYXJlYSBvdmVybGF5IGF0IHRoZSBsYXlvdXQgcm9vdCB0aGF0IGhvc3RzIHRoZSBtb2JpbGUgc3BsaXQgc3RhY2suIFRoZVxuLy8gbGFzdCBjaGlsZCBvZiBgU3R5bGVkTGF5b3V0YCwgc28gaXQgc3RhY2tzIGFib3ZlIHRoZSBwYW5lbCByb3c7IGBjb250ZW50YCBhbmRcbi8vIHRoZSBzcGxpdCB2aWV3cyBwb3J0YWwgdGhlaXIgc2xpZGluZyBsYXllcnMgaW4gaGVyZS4gYHBvaW50ZXItZXZlbnRzOiBub25lYFxuLy8gc28gaXQgbmV2ZXIgYmxvY2tzIHRoZSBsYXlvdXQgYmVuZWF0aCAtIGVhY2ggbGF5ZXIgcmUtZW5hYmxlcyBldmVudHMgd2hlblxuLy8gaXQncyB0aGUgYWN0aXZlIChmcm9udCkgdmlldy4gYG92ZXJmbG93OiBoaWRkZW5gIGNsaXBzIHRoZSBpbmFjdGl2ZSBsYXllcnMnXG4vLyBvZmZzY3JlZW4gcmVzdGluZyBwb3NpdGlvbiAodHJhbnNsYXRlWCBwYXN0IHRoZSBlZGdlKSBzbyB0aGV5IGRvbid0IHdpZGVuXG4vLyB0aGUgcGFnZSAtIHNjb3BlZCBoZXJlLCBub3Qgb24gdGhlIHJvb3QsIHNvIGl0IG5ldmVyIGFmZmVjdHMgcGFnZSBzY3JvbGxpbmcuXG5jb25zdCBTdHlsZWRNb2JpbGVTcGxpdFN0YWNrSG9zdCA9IHN0eWxlZC5kaXYoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICBpbnNldDogMCxcbiAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxufSk7XG5cbmZ1bmN0aW9uIExheW91dEJhc2Uoe1xuICBjaGlsZHJlbixcbiAgcGVyc2lzdGVuY2VLZXksXG4gIHN0b3JhZ2UsXG59OiBMYXlvdXRQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IFtkZWNsYXJlZCwgc2V0RGVjbGFyZWRdID0gdXNlU3RhdGU8UGFydGlhbDxSZWNvcmQ8U2xvdEtleSwgUGFuZWxSZWc+Pj4oXG4gICAge31cbiAgKTtcbiAgY29uc3QgeyBzdGF0ZTogbGF5b3V0U3RhdGUsIC4uLnBhbmVsQ2FsbGJhY2tzIH0gPSB1c2VMYXlvdXQoKTtcbiAgY29uc3QgcGVyc2lzdGVuY2UgPSB1c2VMYXlvdXRQZXJzaXN0ZW5jZSgpO1xuICBjb25zdCByZXNvbHZlZEtleSA9IHBlcnNpc3RlbmNlS2V5ID8/IHBlcnNpc3RlbmNlLnBlcnNpc3RlbmNlS2V5O1xuICBjb25zdCByZXNvbHZlZFN0b3JhZ2UgPSBzdG9yYWdlID8/IHBlcnNpc3RlbmNlLnN0b3JhZ2U7XG5cbiAgLy8gQmVsb3cgdGhlIG1vYmlsZSBicmVha3BvaW50IHRoZSByaWdodFBhbmVsIHJlbmRlcnMgYXMgYSBib3R0b20gc2hlZXQgKGl0c1xuICAvLyBtYXJrZXIgcmVuZGVycyB0aGUgU2hlZXQgaXRzZWxmKSAtIGFuIGF1dG9tYXRpYywgcmVuZGVyLWxldmVsIGFkYXB0YXRpb24uXG4gIC8vIFRoZSBzdG9yZWQgdmFyaWFudCBpcyB1bnRvdWNoZWQsIHNvIHJlc2l6aW5nIGJhY2sgdG8gZGVza3RvcCByZXN0b3JlcyB0aGVcbiAgLy8gZXhhY3QgcHJlc2VudGF0aW9uIChkb2NrZWQgb3IgZmxvYXRpbmcpIHRoZSB1c2VyIGxlZnQuXG4gIGNvbnN0IHsgaXNNb2JpbGUgfSA9IHVzZUJyZWFrcG9pbnRzKCk7XG4gIGNvbnN0IGlzUmlnaHRQYW5lbFNoZWV0ID0gaXNNb2JpbGU7XG5cbiAgLy8gVGhlIG1vYmlsZSBzcGxpdCBzdGFjaydzIHNoYXJlZCBzdGF0ZSwgc2NvcGVkIHRvIHRoaXMgTGF5b3V0OiB0aGUgaG9zdFxuICAvLyBlbGVtZW50IG1hcmtlcnMgcG9ydGFsIGludG8gKG9ubHkgcmVuZGVyZWQgd2hpbGUgdGhlIHN0YWNrIGFwcGxpZXMgdG8gdGhlXG4gIC8vIHZpZXdwb3J0KSBhbmQgaG93IG1hbnkgc3BsaXQgdmlld3MgYXJlIG1vdW50ZWQgKGEgY291bnQgdG9sZXJhdGVzIHRyYW5zaWVudFxuICAvLyBkb3VibGUtbW91bnRzKS4gYGNvbnRlbnRgIHJlYWRzIHByZXNlbmNlIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGpvaW4gdGhlXG4gIC8vIHN0YWNrOyBib3RoIGFyZSBwdWJsaXNoZWQgdG9nZXRoZXIgdmlhIE1vYmlsZVNwbGl0U3RhY2tDb250ZXh0LlxuICBjb25zdCBzaG93TW9iaWxlU3BsaXRTdGFjayA9IHVzZU1vYmlsZVNwbGl0Vmlld0VuYWJsZWQoKTtcbiAgY29uc3QgW21vYmlsZVNwbGl0U3RhY2tIb3N0LCBzZXRNb2JpbGVTcGxpdFN0YWNrSG9zdF0gPVxuICAgIHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFtzcGxpdENvdW50LCBzZXRTcGxpdENvdW50XSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCByZWdpc3RlclNwbGl0ID0gdXNlQ2FsbGJhY2s8XG4gICAgTW9iaWxlU3BsaXRTdGFja1ZhbHVlW1wicmVnaXN0ZXJTcGxpdFwiXVxuICA+KCgpID0+IHtcbiAgICBzZXRTcGxpdENvdW50KChjb3VudCkgPT4gY291bnQgKyAxKTtcbiAgICByZXR1cm4gKCkgPT4gc2V0U3BsaXRDb3VudCgoY291bnQpID0+IGNvdW50IC0gMSk7XG4gIH0sIFtdKTtcbiAgY29uc3QgbW9iaWxlU3BsaXRTdGFjayA9IHVzZU1lbW88TW9iaWxlU3BsaXRTdGFja1ZhbHVlPihcbiAgICAoKSA9PiAoe1xuICAgICAgaG9zdDogbW9iaWxlU3BsaXRTdGFja0hvc3QsXG4gICAgICBpc1NwbGl0UHJlc2VudDogc3BsaXRDb3VudCA+IDAsXG4gICAgICByZWdpc3RlclNwbGl0LFxuICAgIH0pLFxuICAgIFttb2JpbGVTcGxpdFN0YWNrSG9zdCwgc3BsaXRDb3VudCwgcmVnaXN0ZXJTcGxpdF1cbiAgKTtcblxuICAvLyBBIGZsb2F0aW5nIHJpZ2h0UGFuZWwgc3RheXMgdmlzaWJsZSAoaXRzIG1hcmtlciBrZWVwcyByZW5kZXJpbmcgY29udGVudClcbiAgLy8gYnV0IGxlYXZlcyB0aGUgcmVzaXphYmxlIHJvdyAtIGV4YWN0bHkgbGlrZSBhIGhpZGRlbiBwYW5lbCBkb2VzLiBUaGVcbiAgLy8gbW9iaWxlIHNoZWV0IHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGUgZmxvYXQuIEZsb2F0IGlzIGFcbiAgLy8gZGVza3RvcCBwcmVzZW50YXRpb24sIHNvIG9ubHkgbW9kZSBgdHJ1ZWAgZW5hYmxlcyBpdC4gVGhlIHN0b3JlJ3MgdmFyaWFudFxuICAvLyBzdGFydHMgdW5zZXQ7IHRoZSBtYXJrZXIncyBkZWNsYXJlZCBgdmFyaWFudGAgcHJvcCBpcyB0aGUgaW5pdGlhbFxuICAvLyBwcmVzZW50YXRpb24gdW50aWwgdGhlIGZpcnN0IGBzZXRWYXJpYW50YCB3cml0ZXMgdG8gdGhlIHN0b3JlLlxuICBjb25zdCBwYW5lbHNFbmFibGVkID0gdXNlTGF5b3V0UGFuZWxzRW5hYmxlZCgpO1xuICBjb25zdCByaWdodFBhbmVsVmFyaWFudCA9XG4gICAgbGF5b3V0U3RhdGVbU2xvdC5yaWdodFBhbmVsXS52YXJpYW50ID8/XG4gICAgZGVjbGFyZWRbU2xvdC5yaWdodFBhbmVsXT8udmFyaWFudCA/P1xuICAgIFwic2lkZWJhclwiO1xuICBjb25zdCBpc1JpZ2h0UGFuZWxGbG9hdGluZyA9XG4gICAgcGFuZWxzRW5hYmxlZCA9PT0gdHJ1ZSAmJlxuICAgICFpc1JpZ2h0UGFuZWxTaGVldCAmJlxuICAgIHJpZ2h0UGFuZWxWYXJpYW50ID09PSBcImZsb2F0XCI7XG5cbiAgY29uc3QgaXNTaG93biA9IChzbG90OiBTbG90S2V5KTogYm9vbGVhbiA9PlxuICAgIGxheW91dFN0YXRlW3Nsb3RdLnZpc2libGUgJiZcbiAgICAhKHNsb3QgPT09IFNsb3QucmlnaHRQYW5lbCAmJiAoaXNSaWdodFBhbmVsRmxvYXRpbmcgfHwgaXNSaWdodFBhbmVsU2hlZXQpKTtcblxuICAvLyBTbG90cyBrZXB0IG1vdW50ZWQgdGhyb3VnaCB0aGVpciBleGl0IGFuaW1hdGlvbiAocmVwb3J0ZWQgdmlhXG4gIC8vIGB1c2VQYW5lbFByZXNlbmNlYCkuIEEgcHJlc2VudC1idXQtaGlkZGVuIHNsb3Qgc3RheXMgaW4gdGhlIHJvdyBzbyBpdHNcbiAgLy8gY2xvc2UgYW5pbWF0aW9uIGNhbiBwbGF5OyBpdCdzIHJlbW92ZWQgb25jZSBwcmVzZW5jZSBmbGlwcyBmYWxzZS5cbiAgY29uc3QgW3ByZXNlbnQsIHNldFByZXNlbnRdID0gdXNlU3RhdGU8UGFydGlhbDxSZWNvcmQ8U2xvdEtleSwgYm9vbGVhbj4+Pih7fSk7XG4gIGNvbnN0IHByZXNlbmNlID0gdXNlTWVtbzxQYW5lbFByZXNlbmNlPihcbiAgICAoKSA9PiAoe1xuICAgICAgc2V0UHJlc2VudDogKHNsb3QsIGlzUHJlc2VudCkgPT5cbiAgICAgICAgc2V0UHJlc2VudCgocHJldikgPT5cbiAgICAgICAgICBwcmV2W3Nsb3RdID09PSBpc1ByZXNlbnQgPyBwcmV2IDogeyAuLi5wcmV2LCBbc2xvdF06IGlzUHJlc2VudCB9XG4gICAgICAgICksXG4gICAgfSksXG4gICAgW11cbiAgKTtcblxuICAvLyBBbmltYXRpb24gY29udHJvbCBmb3IgdGhlIGRvY2tlZCBzaWRlIHBhbmVscycgb3Blbi9jbG9zZSB3aWR0aCBzbGlkZS4gQWxsXG4gIC8vIHJlZi1iYXNlZCBvbiBwdXJwb3NlOiByZWdpc3RlcmluZyBoYW5kbGVzL2VsZW1lbnRzIGFuZCB0b2dnbGluZyBzdXBwcmVzc2lvblxuICAvLyBoYXBwZW4gZHVyaW5nIGNvbW1pdHMgYW5kIHBlci1mcmFtZSAtIG5vbmUgb2YgaXQgbWF5IHJlLXJlbmRlciB0aGUgTGF5b3V0LlxuICBjb25zdCBwYW5lbEhhbmRsZXMgPSB1c2VSZWY8XG4gICAgUGFydGlhbDxSZWNvcmQ8U2xvdEtleSwgUGFuZWxJbXBlcmF0aXZlSGFuZGxlIHwgbnVsbD4+XG4gID4oe30pO1xuICBjb25zdCBwYW5lbEVsZW1lbnRzID0gdXNlUmVmPFBhcnRpYWw8UmVjb3JkPFNsb3RLZXksIEhUTUxFbGVtZW50IHwgbnVsbD4+PihcbiAgICB7fVxuICApO1xuICBjb25zdCByZXNpemVTdXBwcmVzc2VkID0gdXNlUmVmPFBhcnRpYWw8UmVjb3JkPFNsb3RLZXksIGJvb2xlYW4+Pj4oe30pO1xuICBjb25zdCBhbmltYXRpb25Db250cm9sID0gdXNlTWVtbzxQYW5lbEFuaW1hdGlvbkNvbnRyb2w+KFxuICAgICgpID0+ICh7XG4gICAgICBzZXRIYW5kbGU6IChzbG90LCBoYW5kbGUpID0+IHtcbiAgICAgICAgcGFuZWxIYW5kbGVzLmN1cnJlbnRbc2xvdF0gPSBoYW5kbGU7XG4gICAgICB9LFxuICAgICAgZ2V0SGFuZGxlOiAoc2xvdCkgPT4gcGFuZWxIYW5kbGVzLmN1cnJlbnRbc2xvdF0gPz8gbnVsbCxcbiAgICAgIHNldEVsZW1lbnQ6IChzbG90LCBlbGVtZW50KSA9PiB7XG4gICAgICAgIHBhbmVsRWxlbWVudHMuY3VycmVudFtzbG90XSA9IGVsZW1lbnQ7XG4gICAgICB9LFxuICAgICAgZ2V0RWxlbWVudDogKHNsb3QpID0+IHBhbmVsRWxlbWVudHMuY3VycmVudFtzbG90XSA/PyBudWxsLFxuICAgICAgc2V0UmVzaXplU3VwcHJlc3NlZDogKHNsb3QsIHN1cHByZXNzZWQpID0+IHtcbiAgICAgICAgcmVzaXplU3VwcHJlc3NlZC5jdXJyZW50W3Nsb3RdID0gc3VwcHJlc3NlZDtcbiAgICAgIH0sXG4gICAgfSksXG4gICAgW11cbiAgKTtcbiAgLy8gU3RhYmxlIHBlci1zbG90IHJlZiBjYWxsYmFja3MgLSBhIGZyZXNoIGNhbGxiYWNrIGlkZW50aXR5IHBlciByZW5kZXIgd291bGRcbiAgLy8gbWFrZSBSZWFjdCBkZXRhY2gvcmVhdHRhY2ggdGhlIHJlZnMgb24gZXZlcnkgTGF5b3V0IHJlLXJlbmRlci5cbiAgY29uc3QgcGFuZWxSZWZDYWxsYmFja3MgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDYWxsYmFja3MgPSBuZXcgTWFwPFxuICAgICAgc3RyaW5nLFxuICAgICAgKGhhbmRsZTogUGFuZWxJbXBlcmF0aXZlSGFuZGxlIHwgbnVsbCkgPT4gdm9pZFxuICAgID4oKTtcbiAgICBjb25zdCBlbGVtZW50Q2FsbGJhY2tzID0gbmV3IE1hcDxcbiAgICAgIHN0cmluZyxcbiAgICAgIChlbGVtZW50OiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHZvaWRcbiAgICA+KCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhhbmRsZUZvcjogKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgbGV0IGNhbGxiYWNrID0gaGFuZGxlQ2FsbGJhY2tzLmdldChpZCk7XG4gICAgICAgIGlmICghY2FsbGJhY2spIHtcbiAgICAgICAgICBjYWxsYmFjayA9IChoYW5kbGUpID0+XG4gICAgICAgICAgICBhbmltYXRpb25Db250cm9sLnNldEhhbmRsZShpZCBhcyBTbG90S2V5LCBoYW5kbGUpO1xuICAgICAgICAgIGhhbmRsZUNhbGxiYWNrcy5zZXQoaWQsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2FsbGJhY2s7XG4gICAgICB9LFxuICAgICAgZWxlbWVudEZvcjogKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgbGV0IGNhbGxiYWNrID0gZWxlbWVudENhbGxiYWNrcy5nZXQoaWQpO1xuICAgICAgICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgICAgICAgY2FsbGJhY2sgPSAoZWxlbWVudCkgPT5cbiAgICAgICAgICAgIGFuaW1hdGlvbkNvbnRyb2wuc2V0RWxlbWVudChpZCBhcyBTbG90S2V5LCBlbGVtZW50KTtcbiAgICAgICAgICBlbGVtZW50Q2FsbGJhY2tzLnNldChpZCwgY2FsbGJhY2spO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYWxsYmFjaztcbiAgICAgIH0sXG4gICAgfTtcbiAgfSwgW2FuaW1hdGlvbkNvbnRyb2xdKTtcbiAgY29uc3Qgc2hvdWxkU3VwcHJlc3NMYXlvdXRDYWxsYmFjayA9IHVzZUNhbGxiYWNrKFxuICAgICgpID0+IE9iamVjdC52YWx1ZXMocmVzaXplU3VwcHJlc3NlZC5jdXJyZW50KS5zb21lKEJvb2xlYW4pLFxuICAgIFtdXG4gICk7XG5cbiAgY29uc3QgcmVnaXN0cnkgPSB1c2VNZW1vPFBhbmVsUmVnaXN0cnk+KFxuICAgICgpID0+ICh7XG4gICAgICByZWdpc3RlcjogKHNsb3QsIHJlZykgPT5cbiAgICAgICAgc2V0RGVjbGFyZWQoKHByZXYpID0+ICh7IC4uLnByZXYsIFtzbG90XTogcmVnIH0pKSxcbiAgICAgIHVucmVnaXN0ZXI6IChzbG90KSA9PlxuICAgICAgICBzZXREZWNsYXJlZCgocHJldikgPT4ge1xuICAgICAgICAgIGlmICghKHNsb3QgaW4gcHJldikpIHJldHVybiBwcmV2O1xuICAgICAgICAgIGNvbnN0IG5leHQgPSB7IC4uLnByZXYgfTtcbiAgICAgICAgICBkZWxldGUgbmV4dFtzbG90XTtcbiAgICAgICAgICByZXR1cm4gbmV4dDtcbiAgICAgICAgfSksXG4gICAgfSksXG4gICAgW11cbiAgKTtcblxuICBjb25zdCB7IHBvcnRhbFRhcmdldHMsIHNsb3RIb3N0cywgc2xvdEhvc3RSZWZzLCBmbG9hdEhvc3RSZWYgfSA9XG4gICAgdXNlRmxvYXRhYmxlUG9ydGFsVGFyZ2V0cyh7XG4gICAgICBzbG90czogUEFORUxfT1JERVIsXG4gICAgICBmbG9hdGFibGVTbG90OiBTbG90LnJpZ2h0UGFuZWwsXG4gICAgICBpc0Zsb2F0aW5nOiBpc1JpZ2h0UGFuZWxGbG9hdGluZyxcbiAgICB9KTtcblxuICB1c2VHbG9iYWxDc3NWYXJpYWJsZXMoc2xvdEhvc3RzKTtcblxuICAvLyBQYW5lbHMgdGhhdCBleGlzdCBpbiB0aGUgbGF5b3V0LCByZWdhcmRsZXNzIG9mIHZpc2liaWxpdHkuIERyaXZlcyB0aGVcbiAgLy8gc29sby12cy1yZXNpemFibGUgZGVjaXNpb24gYmVsb3cgLSBrZXllZCBvbiBERUNMQVJFRCAobm90IHNob3duKSBzbyB0aGF0XG4gIC8vIHNob3dpbmcvaGlkaW5nIGEgcGFuZWwgbmV2ZXIgZmxpcHMgdGhlIG1vZGUuXG4gIGNvbnN0IGRlY2xhcmVkU2xvdHMgPSBQQU5FTF9PUkRFUi5maWx0ZXIoKHNsb3QpID0+IGRlY2xhcmVkW3Nsb3RdKTtcblxuICAvLyBTb2xvIG1vZGU6IGEgc2luZ2xlIHBhbmVsIGlzIGRlY2xhcmVkIChlLmcuIGp1c3QgYENvbnRlbnRgLCB3aXRoIG5vXG4gIC8vIFJpZ2h0UGFuZWwvTGVmdFBhbmVsL1NwbGl0IGluIHRoZSB0cmVlKSAtIG5vdGhpbmcgdG8gcmVzaXplIGFnYWluc3QsIHNvIGhvc3RcbiAgLy8gaXQgaW4gYSBwbGFpbiBkaXYgYW5kIHNraXAgcmVhY3QtcmVzaXphYmxlLXBhbmVscyBlbnRpcmVseS4gQmVjYXVzZSB0aGVcbiAgLy8gY2hlY2sgaXMgb24gREVDTEFSRUQgcGFuZWxzLCB0b2dnbGluZyBhICpkZWNsYXJlZCogcGFuZWwncyB2aXNpYmlsaXR5IGtlZXBzXG4gIC8vIHRoZSBtb2RlIHN0YWJsZSwgc28gYENvbnRlbnRgIGlzIG5ldmVyIHJlbW91bnRlZCBieSBhIHNob3cvaGlkZS4gVGhlIG1vZGVcbiAgLy8gb25seSBmbGlwcyB3aGVuIGEgcGFuZWwgbWFya2VyIGlzIGFkZGVkIHRvIC8gcmVtb3ZlZCBmcm9tIHRoZSB0cmVlIChhXG4gIC8vIHN0cnVjdHVyYWwgY2hhbmdlKSwgd2hlcmUgYSBvbmUtdGltZSByZW1vdW50IGlzIGFjY2VwdGFibGUuXG4gIGNvbnN0IGlzU29sbyA9IGRlY2xhcmVkU2xvdHMubGVuZ3RoIDw9IDE7XG4gIGNvbnN0IHNvbG9TbG90ID0gZGVjbGFyZWRTbG90c1swXTtcblxuICAvLyBjb250ZW50IGZsZXhlcyAobm8gZml4ZWQgc2l6ZSk7IG90aGVycyB1c2UgdGhlIGRlY2xhcmVkIGRlZmF1bHQsIGZhbGxpbmdcbiAgLy8gYmFjayB0byB0aGUgcGVyc2lzdGVkL2NvbmZpZyBzaXplLlxuICBjb25zdCBkZWZhdWx0U2l6ZUZvciA9IChzbG90OiBTbG90S2V5KTogU2l6ZSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKHNsb3QgPT09IFNsb3QuY29udGVudCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gZGVjbGFyZWRbc2xvdF0/LmRlZmF1bHRTaXplID8/IGxheW91dFN0YXRlW3Nsb3RdLnNpemU7XG4gIH07XG5cbiAgLy8gT25seSB0aGUgcGFuZWxzIHRoYXQgYXJlIGRlY2xhcmVkIEFORCAoY3VycmVudGx5IHNob3duIE9SIG1pZC1leGl0KS4gQVxuICAvLyBoaWRkZW4tYnV0LXByZXNlbnQgc2xvdCBsaW5nZXJzIHNvIGl0cyBjbG9zZSBhbmltYXRpb24gY2FuIHBsYXk7IG90aGVyd2lzZVxuICAvLyBjbG9zZWQgcGFuZWxzIHJlc2VydmUgbm8gc3BhY2UuXG4gIGNvbnN0IHBhbmVsSXRlbXM6IFBhbmVsSXRlbVtdID0gUEFORUxfT1JERVIuZmlsdGVyKFxuICAgIChzbG90KSA9PiBkZWNsYXJlZFtzbG90XSAmJiAoaXNTaG93bihzbG90KSB8fCBwcmVzZW50W3Nsb3RdKVxuICApLm1hcCgoc2xvdCkgPT4gKHtcbiAgICBpZDogc2xvdCxcbiAgICBkZWZhdWx0U2l6ZTogZGVmYXVsdFNpemVGb3Ioc2xvdCksXG4gICAgbWluU2l6ZTogZGVjbGFyZWRbc2xvdF0/Lm1pblNpemUgPz8gbGF5b3V0U3RhdGVbc2xvdF0ubWluU2l6ZSxcbiAgICBtYXhTaXplOiBkZWNsYXJlZFtzbG90XT8ubWF4U2l6ZSA/PyBsYXlvdXRTdGF0ZVtzbG90XS5tYXhTaXplLFxuICAgIGNvbGxhcHNpYmxlOiBzbG90ICE9PSBTbG90LmNvbnRlbnQgJiYgKGRlY2xhcmVkW3Nsb3RdPy5jb2xsYXBzaWJsZSA/PyB0cnVlKSxcbiAgICByZXNpemFibGU6IGRlY2xhcmVkW3Nsb3RdPy5yZXNpemFibGUsXG4gIH0pKTtcblxuICAvLyBTb2xvIG1vZGUgaG9zdHMgdGhlIGxvbmUgcGFuZWwgaW4gYSBwbGFpbiBkaXYsIG5vIHJlc2l6YWJsZSBHcm91cC4gQSBoaWRkZW5cbiAgLy8gbG9uZSBwYW5lbCByZW5kZXJzIG5vdGhpbmcgKENvbnRlbnQgaXMgYWx3YXlzIHNob3duKS5cbiAgY29uc3Qgc29sb0hvc3QgPVxuICAgIHNvbG9TbG90ICYmIGlzU2hvd24oc29sb1Nsb3QpID8gKFxuICAgICAgPFN0eWxlZFNvbG9Ib3N0IHJlZj17c2xvdEhvc3RSZWZzW3NvbG9TbG90XX0gLz5cbiAgICApIDogbnVsbDtcblxuICAvLyBUaGUgcmVzaXphYmxlIEdyb3VwLiBga2V5YCA9IHRoZSBwZXJzaXN0ZW5jZSBuYW1lc3BhY2U6IHJlYWN0LXJlc2l6YWJsZS1wYW5lbHNcbiAgLy8gcmVhZHMgc3RvcmVkIHNpemVzIG9ubHkgb24gbW91bnQsIHNvIHJlbW91bnQgd2hlbiB0aGUga2V5IGNoYW5nZXMgdG8gbG9hZFxuICAvLyB0aGF0IGluc3RhbmNlJ3Mgc2l6ZXMgKHBlci1yb3V0ZSBzaXplIG1lbW9yeSkuIFRoZSBrZXkgbmV2ZXIgY2hhbmdlcyBvblxuICAvLyBwYW5lbCBvcGVuL2Nsb3NlLCBzbyBub3JtYWwgdG9nZ2xpbmcgc3RheXMgcmVtb3VudC1mcmVlLlxuICBjb25zdCBwYW5lbEdyb3VwID1cbiAgICBwYW5lbEl0ZW1zLmxlbmd0aCA+IDAgPyAoXG4gICAgICA8UGFuZWxcbiAgICAgICAga2V5PXtyZXNvbHZlZEtleX1cbiAgICAgICAgcGFuZWxzPXtwYW5lbEl0ZW1zfVxuICAgICAgICBwZXJzaXN0ZW5jZUtleT17cmVzb2x2ZWRLZXl9XG4gICAgICAgIHN0b3JhZ2U9e3Jlc29sdmVkU3RvcmFnZX1cbiAgICAgICAgaG9zdEZvcj17KGlkKSA9PiBzbG90SG9zdFJlZnNbaWQgYXMgU2xvdEtleV19XG4gICAgICAgIG9uUmVzaXplPXsoaWQsIHNpemUpID0+IHBhbmVsQ2FsbGJhY2tzW2lkIGFzIFNsb3RLZXldLnJlc2l6ZShzaXplKX1cbiAgICAgICAgb25Db2xsYXBzZT17KGlkKSA9PiBwYW5lbENhbGxiYWNrc1tpZCBhcyBTbG90S2V5XS5oaWRlKCl9XG4gICAgICAgIHBhbmVsSGFuZGxlRm9yPXtwYW5lbFJlZkNhbGxiYWNrcy5oYW5kbGVGb3J9XG4gICAgICAgIHBhbmVsRWxlbWVudEZvcj17cGFuZWxSZWZDYWxsYmFja3MuZWxlbWVudEZvcn1cbiAgICAgICAgc2hvdWxkU3VwcHJlc3NMYXlvdXRDYWxsYmFjaz17c2hvdWxkU3VwcHJlc3NMYXlvdXRDYWxsYmFja31cbiAgICAgIC8+XG4gICAgKSA6IG51bGw7XG5cbiAgcmV0dXJuIChcbiAgICA8UGFuZWxSZWdpc3RyeUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3JlZ2lzdHJ5fT5cbiAgICAgIDxQYW5lbERlY2xhcmF0aW9uc0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2RlY2xhcmVkfT5cbiAgICAgICAgPFBhbmVsUHJlc2VuY2VDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwcmVzZW5jZX0+XG4gICAgICAgICAgPFBhbmVsQW5pbWF0aW9uQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17YW5pbWF0aW9uQ29udHJvbH0+XG4gICAgICAgICAgICA8TGF5b3V0UG9ydGFsQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cG9ydGFsVGFyZ2V0c30+XG4gICAgICAgICAgICAgIDxMYXlvdXRGbG9hdERyYWdQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8TW9iaWxlU3BsaXRTdGFja0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e21vYmlsZVNwbGl0U3RhY2t9PlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZExheW91dCBkYXRhLWRzLWlkPVwiTGF5b3V0XCI+XG4gICAgICAgICAgICAgICAgICAgIHtpc1NvbG8gPyBzb2xvSG9zdCA6IHBhbmVsR3JvdXB9XG4gICAgICAgICAgICAgICAgICAgIHtpc1JpZ2h0UGFuZWxGbG9hdGluZyAmJlxuICAgICAgICAgICAgICAgICAgICAgIGxheW91dFN0YXRlW1Nsb3QucmlnaHRQYW5lbF0udmlzaWJsZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8TGF5b3V0RmxvYXQgaG9zdFJlZj17ZmxvYXRIb3N0UmVmfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAge3Nob3dNb2JpbGVTcGxpdFN0YWNrICYmIChcbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkTW9iaWxlU3BsaXRTdGFja0hvc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17c2V0TW9iaWxlU3BsaXRTdGFja0hvc3R9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkTGF5b3V0PlxuICAgICAgICAgICAgICAgIDwvTW9iaWxlU3BsaXRTdGFja0NvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgICAgICAgIDwvTGF5b3V0RmxvYXREcmFnUHJvdmlkZXI+XG4gICAgICAgICAgICA8L0xheW91dFBvcnRhbENvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgICAgPC9QYW5lbEFuaW1hdGlvbkNvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgIDwvUGFuZWxQcmVzZW5jZUNvbnRleHQuUHJvdmlkZXI+XG4gICAgICA8L1BhbmVsRGVjbGFyYXRpb25zQ29udGV4dC5Qcm92aWRlcj5cbiAgICA8L1BhbmVsUmVnaXN0cnlDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogUHVibGljIExheW91dCAtIHRoZSByZXNpemFibGUgcGFuZWwgcm93ICsgY29tcG91bmQgcGFydHMgYXMgc3RhdGljcyAgICAgICAgICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG50eXBlIExheW91dENvbXBvbmVudCA9IHR5cGVvZiBMYXlvdXRCYXNlICYge1xuICBQcm92aWRlcjogdHlwZW9mIExheW91dFByb3ZpZGVyO1xuICBMZWZ0UGFuZWw6IHR5cGVvZiBMZWZ0UGFuZWw7XG4gIExlZnRQYW5lbEhlYWRlcjogdHlwZW9mIExlZnRQYW5lbEhlYWRlcjtcbiAgTGVmdFBhbmVsRm9vdGVyOiB0eXBlb2YgTGVmdFBhbmVsRm9vdGVyO1xuICBSaWdodFBhbmVsOiB0eXBlb2YgUmlnaHRQYW5lbDtcbiAgUmlnaHRQYW5lbEhlYWRlcjogdHlwZW9mIFJpZ2h0UGFuZWxIZWFkZXI7XG4gIFJpZ2h0UGFuZWxGb290ZXI6IHR5cGVvZiBSaWdodFBhbmVsRm9vdGVyO1xuICBDb250ZW50OiB0eXBlb2YgQ29udGVudDtcbiAgU3BsaXQ6IHR5cGVvZiBTcGxpdDtcbiAgU3BsaXRIZWFkZXI6IHR5cGVvZiBTcGxpdEhlYWRlcjtcbiAgU3BsaXRGb290ZXI6IHR5cGVvZiBTcGxpdEZvb3Rlcjtcbn07XG5cbmV4cG9ydCBjb25zdCBMYXlvdXQgPSBMYXlvdXRCYXNlIGFzIExheW91dENvbXBvbmVudDtcblxuTGF5b3V0LlByb3ZpZGVyID0gTGF5b3V0UHJvdmlkZXI7XG5MYXlvdXQuTGVmdFBhbmVsID0gTGVmdFBhbmVsO1xuTGF5b3V0LkxlZnRQYW5lbEhlYWRlciA9IExlZnRQYW5lbEhlYWRlcjtcbkxheW91dC5MZWZ0UGFuZWxGb290ZXIgPSBMZWZ0UGFuZWxGb290ZXI7XG5MYXlvdXQuUmlnaHRQYW5lbCA9IFJpZ2h0UGFuZWw7XG5MYXlvdXQuUmlnaHRQYW5lbEhlYWRlciA9IFJpZ2h0UGFuZWxIZWFkZXI7XG5MYXlvdXQuUmlnaHRQYW5lbEZvb3RlciA9IFJpZ2h0UGFuZWxGb290ZXI7XG5MYXlvdXQuQ29udGVudCA9IENvbnRlbnQ7XG5MYXlvdXQuU3BsaXQgPSBTcGxpdDtcbkxheW91dC5TcGxpdEhlYWRlciA9IFNwbGl0SGVhZGVyO1xuTGF5b3V0LlNwbGl0Rm9vdGVyID0gU3BsaXRGb290ZXI7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBdUd1QiJ9 */"),StyledMobileSplitStackHost=(0,_styled.default)("div",{target:"e1mskuo92",label:"StyledMobileSplitStackHost"})({position:"absolute",inset:0,overflow:"hidden",pointerEvents:"none"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0xheW91dC9MYXlvdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBQYW5lbEltcGVyYXRpdmVIYW5kbGUgfSBmcm9tIFwicmVhY3QtcmVzaXphYmxlLXBhbmVsc1wiO1xuaW1wb3J0IHsgUGFuZWwgfSBmcm9tIFwiLi4vSW50ZXJuYWwvUGFuZWwvUGFuZWxcIjtcbmltcG9ydCB0eXBlIHsgUGFuZWxJdGVtIH0gZnJvbSBcIi4uL0ludGVybmFsL1BhbmVsL1BhbmVsXCI7XG5pbXBvcnQgeyBMYXlvdXRGbG9hdCB9IGZyb20gXCIuLi9JbnRlcm5hbC9MYXlvdXRGbG9hdC9MYXlvdXRGbG9hdFwiO1xuaW1wb3J0IHsgdXNlQnJlYWtwb2ludHMgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZUJyZWFrcG9pbnRzXCI7XG5pbXBvcnQgeyBQQU5FTF9PUkRFUiwgUEFORUxfV0lEVEhfVkFSLCBTbG90IH0gZnJvbSBcIi4vLWNvbnN0YW50c1wiO1xuaW1wb3J0IHsgdXNlTGF5b3V0UGFuZWxzRW5hYmxlZCwgdXNlTGF5b3V0UGVyc2lzdGVuY2UgfSBmcm9tIFwiLi9jb250ZXh0XCI7XG5pbXBvcnQge1xuICBNb2JpbGVTcGxpdFN0YWNrQ29udGV4dCxcbiAgdHlwZSBNb2JpbGVTcGxpdFN0YWNrVmFsdWUsXG59IGZyb20gXCIuL1NwbGl0L01vYmlsZVNwbGl0Vmlldy91c2VNb2JpbGVTcGxpdFN0YWNrXCI7XG5pbXBvcnQgeyB1c2VNb2JpbGVTcGxpdFZpZXdFbmFibGVkIH0gZnJvbSBcIi4vU3BsaXQvTW9iaWxlU3BsaXRWaWV3L3VzZU1vYmlsZVNwbGl0Vmlld1wiO1xuaW1wb3J0IHsgTGF5b3V0UHJvdmlkZXIgfSBmcm9tIFwiLi9MYXlvdXRQcm92aWRlclwiO1xuaW1wb3J0IHsgQ29udGVudCB9IGZyb20gXCIuL0NvbnRlbnQvQ29udGVudFwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbCB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbFwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbEhlYWRlciB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbEhlYWRlclwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbEZvb3RlciB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbEZvb3RlclwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbFwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsSGVhZGVyIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbEhlYWRlclwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsRm9vdGVyIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbEZvb3RlclwiO1xuaW1wb3J0IHsgU3BsaXQgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdFwiO1xuaW1wb3J0IHsgU3BsaXRIZWFkZXIgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdEhlYWRlclwiO1xuaW1wb3J0IHsgU3BsaXRGb290ZXIgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdEZvb3RlclwiO1xuaW1wb3J0IHtcbiAgTGF5b3V0UG9ydGFsQ29udGV4dCxcbiAgUGFuZWxSZWdpc3RyeUNvbnRleHQsXG4gIFBhbmVsRGVjbGFyYXRpb25zQ29udGV4dCxcbiAgUGFuZWxQcmVzZW5jZUNvbnRleHQsXG4gIFBhbmVsQW5pbWF0aW9uQ29udGV4dCxcbiAgdHlwZSBQb3J0YWxUYXJnZXRzLFxuICB0eXBlIFBhbmVsUmVnLFxuICB0eXBlIFBhbmVsUmVnaXN0cnksXG4gIHR5cGUgUGFuZWxQcmVzZW5jZSxcbiAgdHlwZSBQYW5lbEFuaW1hdGlvbkNvbnRyb2wsXG59IGZyb20gXCIuL3JlZ2lzdHJ5XCI7XG5pbXBvcnQgeyB1c2VGbG9hdGFibGVQb3J0YWxUYXJnZXRzIH0gZnJvbSBcIi4vdXNlRmxvYXRhYmxlUG9ydGFsVGFyZ2V0c1wiO1xuaW1wb3J0IHsgTGF5b3V0RmxvYXREcmFnUHJvdmlkZXIgfSBmcm9tIFwiLi4vSW50ZXJuYWwvTGF5b3V0RmxvYXQvTGF5b3V0RmxvYXREcmFnUHJvdmlkZXJcIjtcbmltcG9ydCB7IHVzZUxheW91dFZhciwgdHlwZSBMYXlvdXRWYXJIYW5kbGUgfSBmcm9tIFwiLi9MYXlvdXRDc3NWYXJzXCI7XG5pbXBvcnQgeyB1c2VMYXlvdXQgfSBmcm9tIFwiLi91c2VMYXlvdXRcIjtcbmltcG9ydCB0eXBlIHsgTGF5b3V0UHJvcHMsIFNpemUsIFNsb3RLZXkgfSBmcm9tIFwiLi8tdHlwZXNcIjtcblxuLyoqXG4gKiBQdWJsaXNoZXMgZWFjaCBwYW5lbCdzIGxpdmUgcGl4ZWwgd2lkdGggYXMgYSBsYXlvdXQgQ1NTIHZhciAoZS5nLlxuICogYC0tZHMtbGF5b3V0LXJpZ2h0UGFuZWwtd2lkdGhgKSwgdHJhY2tpbmcgZHJhZy0gYW5kIHdpbmRvdy1yZXNpemVzLiBBIGhpZGRlblxuICogcGFydCAobm8gaG9zdCBub2RlKSByZWFkcyBgMHB4YCwgc28gdGhlIHZhciBpcyBhbHdheXMgZGVmaW5lZC4gT25lXG4gKiBgdXNlTGF5b3V0VmFyYCBwZXIgc2xvdCBpbiBgUEFORUxfV0lEVEhfVkFSYC5cbiAqL1xuY29uc3QgdXNlR2xvYmFsQ3NzVmFyaWFibGVzID0gKHNsb3RIb3N0czogUG9ydGFsVGFyZ2V0cyk6IHZvaWQgPT4ge1xuICBjb25zdCBjb250ZW50V2lkdGhDc3NWYXIgPSB1c2VMYXlvdXRWYXIoUEFORUxfV0lEVEhfVkFSLmNvbnRlbnQpO1xuICBjb25zdCByaWdodFBhbmVsV2lkdGhDc3NWYXIgPSB1c2VMYXlvdXRWYXIoUEFORUxfV0lEVEhfVkFSLnJpZ2h0UGFuZWwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0czogW1Nsb3RLZXksIExheW91dFZhckhhbmRsZV1bXSA9IFtcbiAgICAgIFtTbG90LmNvbnRlbnQsIGNvbnRlbnRXaWR0aENzc1Zhcl0sXG4gICAgICBbU2xvdC5yaWdodFBhbmVsLCByaWdodFBhbmVsV2lkdGhDc3NWYXJdLFxuICAgIF07XG4gICAgY29uc3Qgb2JzZXJ2ZXJzOiBSZXNpemVPYnNlcnZlcltdID0gW107XG5cbiAgICB0YXJnZXRzLmZvckVhY2goKFtzbG90LCBoYW5kbGVdKSA9PiB7XG4gICAgICBjb25zdCBub2RlID0gc2xvdEhvc3RzW3Nsb3RdID8/IG51bGw7XG4gICAgICBpZiAoIW5vZGUpIHtcbiAgICAgICAgaGFuZGxlLnNldChcIjBweFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgcHVibGlzaE5vZGVXaWR0aCA9ICgpOiB2b2lkID0+XG4gICAgICAgIGhhbmRsZS5zZXQoYCR7bm9kZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aH1weGApO1xuICAgICAgcHVibGlzaE5vZGVXaWR0aCgpO1xuICAgICAgLy8ganNkb20gKGFuZCBvbGQgYnJvd3NlcnMpIGxhY2sgUmVzaXplT2JzZXJ2ZXIg4oCUIHNraXAgbGl2ZSB0cmFja2luZyB0aGVyZS5cbiAgICAgIGlmICh0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybjtcbiAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKHB1Ymxpc2hOb2RlV2lkdGgpO1xuICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShub2RlKTtcbiAgICAgIG9ic2VydmVycy5wdXNoKG9ic2VydmVyKTtcbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiBvYnNlcnZlcnMuZm9yRWFjaCgob2JzZXJ2ZXIpID0+IG9ic2VydmVyLmRpc2Nvbm5lY3QoKSk7XG4gIH0sIFtjb250ZW50V2lkdGhDc3NWYXIsIHJpZ2h0UGFuZWxXaWR0aENzc1Zhciwgc2xvdEhvc3RzXSk7XG59O1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogTGF5b3V0IC0gcmVnaXN0cnkgKyBob3N0czsgbWFya2VycyBkZWNsYXJlL3BvcnRhbDsgdGhlIHJlc2l6YWJsZSBwYW5lbCByb3cgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuLy8gYHBvc2l0aW9uOiByZWxhdGl2ZWAgYW5jaG9ycyB0aGUgYWJzb2x1dGVseS1wb3NpdGlvbmVkIHNwbGl0IHN0YWNrIGhvc3QgYW5kXG4vLyB0aGUgZmxvYXRpbmcgd2luZG93LiBPdmVyZmxvdyBpcyBsZWZ0IHVudG91Y2hlZCAodmlzaWJsZSkgc28gYSBwYWdlIHJlbHlpbmdcbi8vIG9uIGRvY3VtZW50L2FuY2VzdG9yIHNjcm9sbGluZyBpcyB1bmFmZmVjdGVkIC0gdGhlIG9mZnNjcmVlbiBzcGxpdCBsYXllcnMgYXJlXG4vLyBjbGlwcGVkIGJ5IHRoZWlyIG93biBob3N0IGJlbG93LCBub3QgaGVyZS5cbmNvbnN0IFN0eWxlZExheW91dCA9IHN0eWxlZC5kaXYoe1xuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICBoZWlnaHQ6IFwiMTAwJVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuLy8gU29sby1tb2RlIGhvc3Q6IGEgbG9uZSBwYW5lbCAobm8gcmVzaXphYmxlIHNpYmxpbmcpIGlzIGhvc3RlZCBoZXJlIGluc3RlYWQgb2Zcbi8vIGluc2lkZSByZWFjdC1yZXNpemFibGUtcGFuZWxzLiBNYXRjaGVzIHRoZSBwZXItcGFuZWwgaG9zdCB0aGUgR3JvdXAgcmVuZGVyc1xuLy8gKGByZWxhdGl2ZWAgKyBmdWxsLWJsZWVkKSBzbyBjb250ZW50IHJlZmxvd3Mvc2Nyb2xscyBpZGVudGljYWxseSBlaXRoZXIgd2F5LlxuY29uc3QgU3R5bGVkU29sb0hvc3QgPSBzdHlsZWQuZGl2KHtcbiAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgd2lkdGg6IFwiMTAwJVwiLFxufSk7XG5cbi8vIEZ1bGwtYXJlYSBvdmVybGF5IGF0IHRoZSBsYXlvdXQgcm9vdCB0aGF0IGhvc3RzIHRoZSBtb2JpbGUgc3BsaXQgc3RhY2suIFRoZVxuLy8gbGFzdCBjaGlsZCBvZiBgU3R5bGVkTGF5b3V0YCwgc28gaXQgc3RhY2tzIGFib3ZlIHRoZSBwYW5lbCByb3c7IGBjb250ZW50YCBhbmRcbi8vIHRoZSBzcGxpdCB2aWV3cyBwb3J0YWwgdGhlaXIgc2xpZGluZyBsYXllcnMgaW4gaGVyZS4gYHBvaW50ZXItZXZlbnRzOiBub25lYFxuLy8gc28gaXQgbmV2ZXIgYmxvY2tzIHRoZSBsYXlvdXQgYmVuZWF0aCAtIGVhY2ggbGF5ZXIgcmUtZW5hYmxlcyBldmVudHMgd2hlblxuLy8gaXQncyB0aGUgYWN0aXZlIChmcm9udCkgdmlldy4gYG92ZXJmbG93OiBoaWRkZW5gIGNsaXBzIHRoZSBpbmFjdGl2ZSBsYXllcnMnXG4vLyBvZmZzY3JlZW4gcmVzdGluZyBwb3NpdGlvbiAodHJhbnNsYXRlWCBwYXN0IHRoZSBlZGdlKSBzbyB0aGV5IGRvbid0IHdpZGVuXG4vLyB0aGUgcGFnZSAtIHNjb3BlZCBoZXJlLCBub3Qgb24gdGhlIHJvb3QsIHNvIGl0IG5ldmVyIGFmZmVjdHMgcGFnZSBzY3JvbGxpbmcuXG5jb25zdCBTdHlsZWRNb2JpbGVTcGxpdFN0YWNrSG9zdCA9IHN0eWxlZC5kaXYoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICBpbnNldDogMCxcbiAgb3ZlcmZsb3c6IFwiaGlkZGVuXCIsXG4gIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxufSk7XG5cbmZ1bmN0aW9uIExheW91dEJhc2Uoe1xuICBjaGlsZHJlbixcbiAgcGVyc2lzdGVuY2VLZXksXG4gIHN0b3JhZ2UsXG59OiBMYXlvdXRQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIGNvbnN0IFtkZWNsYXJlZCwgc2V0RGVjbGFyZWRdID0gdXNlU3RhdGU8UGFydGlhbDxSZWNvcmQ8U2xvdEtleSwgUGFuZWxSZWc+Pj4oXG4gICAge31cbiAgKTtcbiAgY29uc3QgeyBzdGF0ZTogbGF5b3V0U3RhdGUsIC4uLnBhbmVsQ2FsbGJhY2tzIH0gPSB1c2VMYXlvdXQoKTtcbiAgY29uc3QgcGVyc2lzdGVuY2UgPSB1c2VMYXlvdXRQZXJzaXN0ZW5jZSgpO1xuICBjb25zdCByZXNvbHZlZEtleSA9IHBlcnNpc3RlbmNlS2V5ID8/IHBlcnNpc3RlbmNlLnBlcnNpc3RlbmNlS2V5O1xuICBjb25zdCByZXNvbHZlZFN0b3JhZ2UgPSBzdG9yYWdlID8/IHBlcnNpc3RlbmNlLnN0b3JhZ2U7XG5cbiAgLy8gQmVsb3cgdGhlIG1vYmlsZSBicmVha3BvaW50IHRoZSByaWdodFBhbmVsIHJlbmRlcnMgYXMgYSBib3R0b20gc2hlZXQgKGl0c1xuICAvLyBtYXJrZXIgcmVuZGVycyB0aGUgU2hlZXQgaXRzZWxmKSAtIGFuIGF1dG9tYXRpYywgcmVuZGVyLWxldmVsIGFkYXB0YXRpb24uXG4gIC8vIFRoZSBzdG9yZWQgdmFyaWFudCBpcyB1bnRvdWNoZWQsIHNvIHJlc2l6aW5nIGJhY2sgdG8gZGVza3RvcCByZXN0b3JlcyB0aGVcbiAgLy8gZXhhY3QgcHJlc2VudGF0aW9uIChkb2NrZWQgb3IgZmxvYXRpbmcpIHRoZSB1c2VyIGxlZnQuXG4gIGNvbnN0IHsgaXNNb2JpbGUgfSA9IHVzZUJyZWFrcG9pbnRzKCk7XG4gIGNvbnN0IGlzUmlnaHRQYW5lbFNoZWV0ID0gaXNNb2JpbGU7XG5cbiAgLy8gVGhlIG1vYmlsZSBzcGxpdCBzdGFjaydzIHNoYXJlZCBzdGF0ZSwgc2NvcGVkIHRvIHRoaXMgTGF5b3V0OiB0aGUgaG9zdFxuICAvLyBlbGVtZW50IG1hcmtlcnMgcG9ydGFsIGludG8gKG9ubHkgcmVuZGVyZWQgd2hpbGUgdGhlIHN0YWNrIGFwcGxpZXMgdG8gdGhlXG4gIC8vIHZpZXdwb3J0KSBhbmQgaG93IG1hbnkgc3BsaXQgdmlld3MgYXJlIG1vdW50ZWQgKGEgY291bnQgdG9sZXJhdGVzIHRyYW5zaWVudFxuICAvLyBkb3VibGUtbW91bnRzKS4gYGNvbnRlbnRgIHJlYWRzIHByZXNlbmNlIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGpvaW4gdGhlXG4gIC8vIHN0YWNrOyBib3RoIGFyZSBwdWJsaXNoZWQgdG9nZXRoZXIgdmlhIE1vYmlsZVNwbGl0U3RhY2tDb250ZXh0LlxuICBjb25zdCBzaG93TW9iaWxlU3BsaXRTdGFjayA9IHVzZU1vYmlsZVNwbGl0Vmlld0VuYWJsZWQoKTtcbiAgY29uc3QgW21vYmlsZVNwbGl0U3RhY2tIb3N0LCBzZXRNb2JpbGVTcGxpdFN0YWNrSG9zdF0gPVxuICAgIHVzZVN0YXRlPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gIGNvbnN0IFtzcGxpdENvdW50LCBzZXRTcGxpdENvdW50XSA9IHVzZVN0YXRlKDApO1xuICBjb25zdCByZWdpc3RlclNwbGl0ID0gdXNlQ2FsbGJhY2s8XG4gICAgTW9iaWxlU3BsaXRTdGFja1ZhbHVlW1wicmVnaXN0ZXJTcGxpdFwiXVxuICA+KCgpID0+IHtcbiAgICBzZXRTcGxpdENvdW50KChjb3VudCkgPT4gY291bnQgKyAxKTtcbiAgICByZXR1cm4gKCkgPT4gc2V0U3BsaXRDb3VudCgoY291bnQpID0+IGNvdW50IC0gMSk7XG4gIH0sIFtdKTtcbiAgY29uc3QgbW9iaWxlU3BsaXRTdGFjayA9IHVzZU1lbW88TW9iaWxlU3BsaXRTdGFja1ZhbHVlPihcbiAgICAoKSA9PiAoe1xuICAgICAgaG9zdDogbW9iaWxlU3BsaXRTdGFja0hvc3QsXG4gICAgICBpc1NwbGl0UHJlc2VudDogc3BsaXRDb3VudCA+IDAsXG4gICAgICByZWdpc3RlclNwbGl0LFxuICAgIH0pLFxuICAgIFttb2JpbGVTcGxpdFN0YWNrSG9zdCwgc3BsaXRDb3VudCwgcmVnaXN0ZXJTcGxpdF1cbiAgKTtcblxuICAvLyBBIGZsb2F0aW5nIHJpZ2h0UGFuZWwgc3RheXMgdmlzaWJsZSAoaXRzIG1hcmtlciBrZWVwcyByZW5kZXJpbmcgY29udGVudClcbiAgLy8gYnV0IGxlYXZlcyB0aGUgcmVzaXphYmxlIHJvdyAtIGV4YWN0bHkgbGlrZSBhIGhpZGRlbiBwYW5lbCBkb2VzLiBUaGVcbiAgLy8gbW9iaWxlIHNoZWV0IHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGUgZmxvYXQuIEZsb2F0IGlzIGFcbiAgLy8gZGVza3RvcCBwcmVzZW50YXRpb24sIHNvIG9ubHkgbW9kZSBgdHJ1ZWAgZW5hYmxlcyBpdC4gVGhlIHN0b3JlJ3MgdmFyaWFudFxuICAvLyBzdGFydHMgdW5zZXQ7IHRoZSBtYXJrZXIncyBkZWNsYXJlZCBgdmFyaWFudGAgcHJvcCBpcyB0aGUgaW5pdGlhbFxuICAvLyBwcmVzZW50YXRpb24gdW50aWwgdGhlIGZpcnN0IGBzZXRWYXJpYW50YCB3cml0ZXMgdG8gdGhlIHN0b3JlLlxuICBjb25zdCBwYW5lbHNFbmFibGVkID0gdXNlTGF5b3V0UGFuZWxzRW5hYmxlZCgpO1xuICBjb25zdCByaWdodFBhbmVsVmFyaWFudCA9XG4gICAgbGF5b3V0U3RhdGVbU2xvdC5yaWdodFBhbmVsXS52YXJpYW50ID8/XG4gICAgZGVjbGFyZWRbU2xvdC5yaWdodFBhbmVsXT8udmFyaWFudCA/P1xuICAgIFwic2lkZWJhclwiO1xuICBjb25zdCBpc1JpZ2h0UGFuZWxGbG9hdGluZyA9XG4gICAgcGFuZWxzRW5hYmxlZCA9PT0gdHJ1ZSAmJlxuICAgICFpc1JpZ2h0UGFuZWxTaGVldCAmJlxuICAgIHJpZ2h0UGFuZWxWYXJpYW50ID09PSBcImZsb2F0XCI7XG5cbiAgY29uc3QgaXNTaG93biA9IChzbG90OiBTbG90S2V5KTogYm9vbGVhbiA9PlxuICAgIGxheW91dFN0YXRlW3Nsb3RdLnZpc2libGUgJiZcbiAgICAhKHNsb3QgPT09IFNsb3QucmlnaHRQYW5lbCAmJiAoaXNSaWdodFBhbmVsRmxvYXRpbmcgfHwgaXNSaWdodFBhbmVsU2hlZXQpKTtcblxuICAvLyBTbG90cyBrZXB0IG1vdW50ZWQgdGhyb3VnaCB0aGVpciBleGl0IGFuaW1hdGlvbiAocmVwb3J0ZWQgdmlhXG4gIC8vIGB1c2VQYW5lbFByZXNlbmNlYCkuIEEgcHJlc2VudC1idXQtaGlkZGVuIHNsb3Qgc3RheXMgaW4gdGhlIHJvdyBzbyBpdHNcbiAgLy8gY2xvc2UgYW5pbWF0aW9uIGNhbiBwbGF5OyBpdCdzIHJlbW92ZWQgb25jZSBwcmVzZW5jZSBmbGlwcyBmYWxzZS5cbiAgY29uc3QgW3ByZXNlbnQsIHNldFByZXNlbnRdID0gdXNlU3RhdGU8UGFydGlhbDxSZWNvcmQ8U2xvdEtleSwgYm9vbGVhbj4+Pih7fSk7XG4gIGNvbnN0IHByZXNlbmNlID0gdXNlTWVtbzxQYW5lbFByZXNlbmNlPihcbiAgICAoKSA9PiAoe1xuICAgICAgc2V0UHJlc2VudDogKHNsb3QsIGlzUHJlc2VudCkgPT5cbiAgICAgICAgc2V0UHJlc2VudCgocHJldikgPT5cbiAgICAgICAgICBwcmV2W3Nsb3RdID09PSBpc1ByZXNlbnQgPyBwcmV2IDogeyAuLi5wcmV2LCBbc2xvdF06IGlzUHJlc2VudCB9XG4gICAgICAgICksXG4gICAgfSksXG4gICAgW11cbiAgKTtcblxuICAvLyBBbmltYXRpb24gY29udHJvbCBmb3IgdGhlIGRvY2tlZCBzaWRlIHBhbmVscycgb3Blbi9jbG9zZSB3aWR0aCBzbGlkZS4gQWxsXG4gIC8vIHJlZi1iYXNlZCBvbiBwdXJwb3NlOiByZWdpc3RlcmluZyBoYW5kbGVzL2VsZW1lbnRzIGFuZCB0b2dnbGluZyBzdXBwcmVzc2lvblxuICAvLyBoYXBwZW4gZHVyaW5nIGNvbW1pdHMgYW5kIHBlci1mcmFtZSAtIG5vbmUgb2YgaXQgbWF5IHJlLXJlbmRlciB0aGUgTGF5b3V0LlxuICBjb25zdCBwYW5lbEhhbmRsZXMgPSB1c2VSZWY8XG4gICAgUGFydGlhbDxSZWNvcmQ8U2xvdEtleSwgUGFuZWxJbXBlcmF0aXZlSGFuZGxlIHwgbnVsbD4+XG4gID4oe30pO1xuICBjb25zdCBwYW5lbEVsZW1lbnRzID0gdXNlUmVmPFBhcnRpYWw8UmVjb3JkPFNsb3RLZXksIEhUTUxFbGVtZW50IHwgbnVsbD4+PihcbiAgICB7fVxuICApO1xuICBjb25zdCByZXNpemVTdXBwcmVzc2VkID0gdXNlUmVmPFBhcnRpYWw8UmVjb3JkPFNsb3RLZXksIGJvb2xlYW4+Pj4oe30pO1xuICBjb25zdCBhbmltYXRpb25Db250cm9sID0gdXNlTWVtbzxQYW5lbEFuaW1hdGlvbkNvbnRyb2w+KFxuICAgICgpID0+ICh7XG4gICAgICBzZXRIYW5kbGU6IChzbG90LCBoYW5kbGUpID0+IHtcbiAgICAgICAgcGFuZWxIYW5kbGVzLmN1cnJlbnRbc2xvdF0gPSBoYW5kbGU7XG4gICAgICB9LFxuICAgICAgZ2V0SGFuZGxlOiAoc2xvdCkgPT4gcGFuZWxIYW5kbGVzLmN1cnJlbnRbc2xvdF0gPz8gbnVsbCxcbiAgICAgIHNldEVsZW1lbnQ6IChzbG90LCBlbGVtZW50KSA9PiB7XG4gICAgICAgIHBhbmVsRWxlbWVudHMuY3VycmVudFtzbG90XSA9IGVsZW1lbnQ7XG4gICAgICB9LFxuICAgICAgZ2V0RWxlbWVudDogKHNsb3QpID0+IHBhbmVsRWxlbWVudHMuY3VycmVudFtzbG90XSA/PyBudWxsLFxuICAgICAgc2V0UmVzaXplU3VwcHJlc3NlZDogKHNsb3QsIHN1cHByZXNzZWQpID0+IHtcbiAgICAgICAgcmVzaXplU3VwcHJlc3NlZC5jdXJyZW50W3Nsb3RdID0gc3VwcHJlc3NlZDtcbiAgICAgIH0sXG4gICAgfSksXG4gICAgW11cbiAgKTtcbiAgLy8gU3RhYmxlIHBlci1zbG90IHJlZiBjYWxsYmFja3MgLSBhIGZyZXNoIGNhbGxiYWNrIGlkZW50aXR5IHBlciByZW5kZXIgd291bGRcbiAgLy8gbWFrZSBSZWFjdCBkZXRhY2gvcmVhdHRhY2ggdGhlIHJlZnMgb24gZXZlcnkgTGF5b3V0IHJlLXJlbmRlci5cbiAgY29uc3QgcGFuZWxSZWZDYWxsYmFja3MgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDYWxsYmFja3MgPSBuZXcgTWFwPFxuICAgICAgc3RyaW5nLFxuICAgICAgKGhhbmRsZTogUGFuZWxJbXBlcmF0aXZlSGFuZGxlIHwgbnVsbCkgPT4gdm9pZFxuICAgID4oKTtcbiAgICBjb25zdCBlbGVtZW50Q2FsbGJhY2tzID0gbmV3IE1hcDxcbiAgICAgIHN0cmluZyxcbiAgICAgIChlbGVtZW50OiBIVE1MRGl2RWxlbWVudCB8IG51bGwpID0+IHZvaWRcbiAgICA+KCk7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhhbmRsZUZvcjogKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgbGV0IGNhbGxiYWNrID0gaGFuZGxlQ2FsbGJhY2tzLmdldChpZCk7XG4gICAgICAgIGlmICghY2FsbGJhY2spIHtcbiAgICAgICAgICBjYWxsYmFjayA9IChoYW5kbGUpID0+XG4gICAgICAgICAgICBhbmltYXRpb25Db250cm9sLnNldEhhbmRsZShpZCBhcyBTbG90S2V5LCBoYW5kbGUpO1xuICAgICAgICAgIGhhbmRsZUNhbGxiYWNrcy5zZXQoaWQsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2FsbGJhY2s7XG4gICAgICB9LFxuICAgICAgZWxlbWVudEZvcjogKGlkOiBzdHJpbmcpID0+IHtcbiAgICAgICAgbGV0IGNhbGxiYWNrID0gZWxlbWVudENhbGxiYWNrcy5nZXQoaWQpO1xuICAgICAgICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgICAgICAgY2FsbGJhY2sgPSAoZWxlbWVudCkgPT5cbiAgICAgICAgICAgIGFuaW1hdGlvbkNvbnRyb2wuc2V0RWxlbWVudChpZCBhcyBTbG90S2V5LCBlbGVtZW50KTtcbiAgICAgICAgICBlbGVtZW50Q2FsbGJhY2tzLnNldChpZCwgY2FsbGJhY2spO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjYWxsYmFjaztcbiAgICAgIH0sXG4gICAgfTtcbiAgfSwgW2FuaW1hdGlvbkNvbnRyb2xdKTtcbiAgY29uc3Qgc2hvdWxkU3VwcHJlc3NMYXlvdXRDYWxsYmFjayA9IHVzZUNhbGxiYWNrKFxuICAgICgpID0+IE9iamVjdC52YWx1ZXMocmVzaXplU3VwcHJlc3NlZC5jdXJyZW50KS5zb21lKEJvb2xlYW4pLFxuICAgIFtdXG4gICk7XG5cbiAgY29uc3QgcmVnaXN0cnkgPSB1c2VNZW1vPFBhbmVsUmVnaXN0cnk+KFxuICAgICgpID0+ICh7XG4gICAgICByZWdpc3RlcjogKHNsb3QsIHJlZykgPT5cbiAgICAgICAgc2V0RGVjbGFyZWQoKHByZXYpID0+ICh7IC4uLnByZXYsIFtzbG90XTogcmVnIH0pKSxcbiAgICAgIHVucmVnaXN0ZXI6IChzbG90KSA9PlxuICAgICAgICBzZXREZWNsYXJlZCgocHJldikgPT4ge1xuICAgICAgICAgIGlmICghKHNsb3QgaW4gcHJldikpIHJldHVybiBwcmV2O1xuICAgICAgICAgIGNvbnN0IG5leHQgPSB7IC4uLnByZXYgfTtcbiAgICAgICAgICBkZWxldGUgbmV4dFtzbG90XTtcbiAgICAgICAgICByZXR1cm4gbmV4dDtcbiAgICAgICAgfSksXG4gICAgfSksXG4gICAgW11cbiAgKTtcblxuICBjb25zdCB7IHBvcnRhbFRhcmdldHMsIHNsb3RIb3N0cywgc2xvdEhvc3RSZWZzLCBmbG9hdEhvc3RSZWYgfSA9XG4gICAgdXNlRmxvYXRhYmxlUG9ydGFsVGFyZ2V0cyh7XG4gICAgICBzbG90czogUEFORUxfT1JERVIsXG4gICAgICBmbG9hdGFibGVTbG90OiBTbG90LnJpZ2h0UGFuZWwsXG4gICAgICBpc0Zsb2F0aW5nOiBpc1JpZ2h0UGFuZWxGbG9hdGluZyxcbiAgICB9KTtcblxuICB1c2VHbG9iYWxDc3NWYXJpYWJsZXMoc2xvdEhvc3RzKTtcblxuICAvLyBQYW5lbHMgdGhhdCBleGlzdCBpbiB0aGUgbGF5b3V0LCByZWdhcmRsZXNzIG9mIHZpc2liaWxpdHkuIERyaXZlcyB0aGVcbiAgLy8gc29sby12cy1yZXNpemFibGUgZGVjaXNpb24gYmVsb3cgLSBrZXllZCBvbiBERUNMQVJFRCAobm90IHNob3duKSBzbyB0aGF0XG4gIC8vIHNob3dpbmcvaGlkaW5nIGEgcGFuZWwgbmV2ZXIgZmxpcHMgdGhlIG1vZGUuXG4gIGNvbnN0IGRlY2xhcmVkU2xvdHMgPSBQQU5FTF9PUkRFUi5maWx0ZXIoKHNsb3QpID0+IGRlY2xhcmVkW3Nsb3RdKTtcblxuICAvLyBTb2xvIG1vZGU6IGEgc2luZ2xlIHBhbmVsIGlzIGRlY2xhcmVkIChlLmcuIGp1c3QgYENvbnRlbnRgLCB3aXRoIG5vXG4gIC8vIFJpZ2h0UGFuZWwvTGVmdFBhbmVsL1NwbGl0IGluIHRoZSB0cmVlKSAtIG5vdGhpbmcgdG8gcmVzaXplIGFnYWluc3QsIHNvIGhvc3RcbiAgLy8gaXQgaW4gYSBwbGFpbiBkaXYgYW5kIHNraXAgcmVhY3QtcmVzaXphYmxlLXBhbmVscyBlbnRpcmVseS4gQmVjYXVzZSB0aGVcbiAgLy8gY2hlY2sgaXMgb24gREVDTEFSRUQgcGFuZWxzLCB0b2dnbGluZyBhICpkZWNsYXJlZCogcGFuZWwncyB2aXNpYmlsaXR5IGtlZXBzXG4gIC8vIHRoZSBtb2RlIHN0YWJsZSwgc28gYENvbnRlbnRgIGlzIG5ldmVyIHJlbW91bnRlZCBieSBhIHNob3cvaGlkZS4gVGhlIG1vZGVcbiAgLy8gb25seSBmbGlwcyB3aGVuIGEgcGFuZWwgbWFya2VyIGlzIGFkZGVkIHRvIC8gcmVtb3ZlZCBmcm9tIHRoZSB0cmVlIChhXG4gIC8vIHN0cnVjdHVyYWwgY2hhbmdlKSwgd2hlcmUgYSBvbmUtdGltZSByZW1vdW50IGlzIGFjY2VwdGFibGUuXG4gIGNvbnN0IGlzU29sbyA9IGRlY2xhcmVkU2xvdHMubGVuZ3RoIDw9IDE7XG4gIGNvbnN0IHNvbG9TbG90ID0gZGVjbGFyZWRTbG90c1swXTtcblxuICAvLyBjb250ZW50IGZsZXhlcyAobm8gZml4ZWQgc2l6ZSk7IG90aGVycyB1c2UgdGhlIGRlY2xhcmVkIGRlZmF1bHQsIGZhbGxpbmdcbiAgLy8gYmFjayB0byB0aGUgcGVyc2lzdGVkL2NvbmZpZyBzaXplLlxuICBjb25zdCBkZWZhdWx0U2l6ZUZvciA9IChzbG90OiBTbG90S2V5KTogU2l6ZSB8IHVuZGVmaW5lZCA9PiB7XG4gICAgaWYgKHNsb3QgPT09IFNsb3QuY29udGVudCkgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICByZXR1cm4gZGVjbGFyZWRbc2xvdF0/LmRlZmF1bHRTaXplID8/IGxheW91dFN0YXRlW3Nsb3RdLnNpemU7XG4gIH07XG5cbiAgLy8gT25seSB0aGUgcGFuZWxzIHRoYXQgYXJlIGRlY2xhcmVkIEFORCAoY3VycmVudGx5IHNob3duIE9SIG1pZC1leGl0KS4gQVxuICAvLyBoaWRkZW4tYnV0LXByZXNlbnQgc2xvdCBsaW5nZXJzIHNvIGl0cyBjbG9zZSBhbmltYXRpb24gY2FuIHBsYXk7IG90aGVyd2lzZVxuICAvLyBjbG9zZWQgcGFuZWxzIHJlc2VydmUgbm8gc3BhY2UuXG4gIGNvbnN0IHBhbmVsSXRlbXM6IFBhbmVsSXRlbVtdID0gUEFORUxfT1JERVIuZmlsdGVyKFxuICAgIChzbG90KSA9PiBkZWNsYXJlZFtzbG90XSAmJiAoaXNTaG93bihzbG90KSB8fCBwcmVzZW50W3Nsb3RdKVxuICApLm1hcCgoc2xvdCkgPT4gKHtcbiAgICBpZDogc2xvdCxcbiAgICBkZWZhdWx0U2l6ZTogZGVmYXVsdFNpemVGb3Ioc2xvdCksXG4gICAgbWluU2l6ZTogZGVjbGFyZWRbc2xvdF0/Lm1pblNpemUgPz8gbGF5b3V0U3RhdGVbc2xvdF0ubWluU2l6ZSxcbiAgICBtYXhTaXplOiBkZWNsYXJlZFtzbG90XT8ubWF4U2l6ZSA/PyBsYXlvdXRTdGF0ZVtzbG90XS5tYXhTaXplLFxuICAgIGNvbGxhcHNpYmxlOiBzbG90ICE9PSBTbG90LmNvbnRlbnQgJiYgKGRlY2xhcmVkW3Nsb3RdPy5jb2xsYXBzaWJsZSA/PyB0cnVlKSxcbiAgICByZXNpemFibGU6IGRlY2xhcmVkW3Nsb3RdPy5yZXNpemFibGUsXG4gIH0pKTtcblxuICAvLyBTb2xvIG1vZGUgaG9zdHMgdGhlIGxvbmUgcGFuZWwgaW4gYSBwbGFpbiBkaXYsIG5vIHJlc2l6YWJsZSBHcm91cC4gQSBoaWRkZW5cbiAgLy8gbG9uZSBwYW5lbCByZW5kZXJzIG5vdGhpbmcgKENvbnRlbnQgaXMgYWx3YXlzIHNob3duKS5cbiAgY29uc3Qgc29sb0hvc3QgPVxuICAgIHNvbG9TbG90ICYmIGlzU2hvd24oc29sb1Nsb3QpID8gKFxuICAgICAgPFN0eWxlZFNvbG9Ib3N0IHJlZj17c2xvdEhvc3RSZWZzW3NvbG9TbG90XX0gLz5cbiAgICApIDogbnVsbDtcblxuICAvLyBUaGUgcmVzaXphYmxlIEdyb3VwLiBga2V5YCA9IHRoZSBwZXJzaXN0ZW5jZSBuYW1lc3BhY2U6IHJlYWN0LXJlc2l6YWJsZS1wYW5lbHNcbiAgLy8gcmVhZHMgc3RvcmVkIHNpemVzIG9ubHkgb24gbW91bnQsIHNvIHJlbW91bnQgd2hlbiB0aGUga2V5IGNoYW5nZXMgdG8gbG9hZFxuICAvLyB0aGF0IGluc3RhbmNlJ3Mgc2l6ZXMgKHBlci1yb3V0ZSBzaXplIG1lbW9yeSkuIFRoZSBrZXkgbmV2ZXIgY2hhbmdlcyBvblxuICAvLyBwYW5lbCBvcGVuL2Nsb3NlLCBzbyBub3JtYWwgdG9nZ2xpbmcgc3RheXMgcmVtb3VudC1mcmVlLlxuICBjb25zdCBwYW5lbEdyb3VwID1cbiAgICBwYW5lbEl0ZW1zLmxlbmd0aCA+IDAgPyAoXG4gICAgICA8UGFuZWxcbiAgICAgICAga2V5PXtyZXNvbHZlZEtleX1cbiAgICAgICAgcGFuZWxzPXtwYW5lbEl0ZW1zfVxuICAgICAgICBwZXJzaXN0ZW5jZUtleT17cmVzb2x2ZWRLZXl9XG4gICAgICAgIHN0b3JhZ2U9e3Jlc29sdmVkU3RvcmFnZX1cbiAgICAgICAgaG9zdEZvcj17KGlkKSA9PiBzbG90SG9zdFJlZnNbaWQgYXMgU2xvdEtleV19XG4gICAgICAgIG9uUmVzaXplPXsoaWQsIHNpemUpID0+IHBhbmVsQ2FsbGJhY2tzW2lkIGFzIFNsb3RLZXldLnJlc2l6ZShzaXplKX1cbiAgICAgICAgb25Db2xsYXBzZT17KGlkKSA9PiBwYW5lbENhbGxiYWNrc1tpZCBhcyBTbG90S2V5XS5oaWRlKCl9XG4gICAgICAgIHBhbmVsSGFuZGxlRm9yPXtwYW5lbFJlZkNhbGxiYWNrcy5oYW5kbGVGb3J9XG4gICAgICAgIHBhbmVsRWxlbWVudEZvcj17cGFuZWxSZWZDYWxsYmFja3MuZWxlbWVudEZvcn1cbiAgICAgICAgc2hvdWxkU3VwcHJlc3NMYXlvdXRDYWxsYmFjaz17c2hvdWxkU3VwcHJlc3NMYXlvdXRDYWxsYmFja31cbiAgICAgIC8+XG4gICAgKSA6IG51bGw7XG5cbiAgcmV0dXJuIChcbiAgICA8UGFuZWxSZWdpc3RyeUNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3JlZ2lzdHJ5fT5cbiAgICAgIDxQYW5lbERlY2xhcmF0aW9uc0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2RlY2xhcmVkfT5cbiAgICAgICAgPFBhbmVsUHJlc2VuY2VDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtwcmVzZW5jZX0+XG4gICAgICAgICAgPFBhbmVsQW5pbWF0aW9uQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17YW5pbWF0aW9uQ29udHJvbH0+XG4gICAgICAgICAgICA8TGF5b3V0UG9ydGFsQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cG9ydGFsVGFyZ2V0c30+XG4gICAgICAgICAgICAgIDxMYXlvdXRGbG9hdERyYWdQcm92aWRlcj5cbiAgICAgICAgICAgICAgICA8TW9iaWxlU3BsaXRTdGFja0NvbnRleHQuUHJvdmlkZXIgdmFsdWU9e21vYmlsZVNwbGl0U3RhY2t9PlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZExheW91dCBkYXRhLWRzLWlkPVwiTGF5b3V0XCI+XG4gICAgICAgICAgICAgICAgICAgIHtpc1NvbG8gPyBzb2xvSG9zdCA6IHBhbmVsR3JvdXB9XG4gICAgICAgICAgICAgICAgICAgIHtpc1JpZ2h0UGFuZWxGbG9hdGluZyAmJlxuICAgICAgICAgICAgICAgICAgICAgIGxheW91dFN0YXRlW1Nsb3QucmlnaHRQYW5lbF0udmlzaWJsZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8TGF5b3V0RmxvYXQgaG9zdFJlZj17ZmxvYXRIb3N0UmVmfSAvPlxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgICAgICAge3Nob3dNb2JpbGVTcGxpdFN0YWNrICYmIChcbiAgICAgICAgICAgICAgICAgICAgICA8U3R5bGVkTW9iaWxlU3BsaXRTdGFja0hvc3RcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZj17c2V0TW9iaWxlU3BsaXRTdGFja0hvc3R9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkTGF5b3V0PlxuICAgICAgICAgICAgICAgIDwvTW9iaWxlU3BsaXRTdGFja0NvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgICAgICAgIDwvTGF5b3V0RmxvYXREcmFnUHJvdmlkZXI+XG4gICAgICAgICAgICA8L0xheW91dFBvcnRhbENvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgICAgPC9QYW5lbEFuaW1hdGlvbkNvbnRleHQuUHJvdmlkZXI+XG4gICAgICAgIDwvUGFuZWxQcmVzZW5jZUNvbnRleHQuUHJvdmlkZXI+XG4gICAgICA8L1BhbmVsRGVjbGFyYXRpb25zQ29udGV4dC5Qcm92aWRlcj5cbiAgICA8L1BhbmVsUmVnaXN0cnlDb250ZXh0LlByb3ZpZGVyPlxuICApO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogUHVibGljIExheW91dCAtIHRoZSByZXNpemFibGUgcGFuZWwgcm93ICsgY29tcG91bmQgcGFydHMgYXMgc3RhdGljcyAgICAgICAgICovXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG50eXBlIExheW91dENvbXBvbmVudCA9IHR5cGVvZiBMYXlvdXRCYXNlICYge1xuICBQcm92aWRlcjogdHlwZW9mIExheW91dFByb3ZpZGVyO1xuICBMZWZ0UGFuZWw6IHR5cGVvZiBMZWZ0UGFuZWw7XG4gIExlZnRQYW5lbEhlYWRlcjogdHlwZW9mIExlZnRQYW5lbEhlYWRlcjtcbiAgTGVmdFBhbmVsRm9vdGVyOiB0eXBlb2YgTGVmdFBhbmVsRm9vdGVyO1xuICBSaWdodFBhbmVsOiB0eXBlb2YgUmlnaHRQYW5lbDtcbiAgUmlnaHRQYW5lbEhlYWRlcjogdHlwZW9mIFJpZ2h0UGFuZWxIZWFkZXI7XG4gIFJpZ2h0UGFuZWxGb290ZXI6IHR5cGVvZiBSaWdodFBhbmVsRm9vdGVyO1xuICBDb250ZW50OiB0eXBlb2YgQ29udGVudDtcbiAgU3BsaXQ6IHR5cGVvZiBTcGxpdDtcbiAgU3BsaXRIZWFkZXI6IHR5cGVvZiBTcGxpdEhlYWRlcjtcbiAgU3BsaXRGb290ZXI6IHR5cGVvZiBTcGxpdEZvb3Rlcjtcbn07XG5cbmV4cG9ydCBjb25zdCBMYXlvdXQgPSBMYXlvdXRCYXNlIGFzIExheW91dENvbXBvbmVudDtcblxuTGF5b3V0LlByb3ZpZGVyID0gTGF5b3V0UHJvdmlkZXI7XG5MYXlvdXQuTGVmdFBhbmVsID0gTGVmdFBhbmVsO1xuTGF5b3V0LkxlZnRQYW5lbEhlYWRlciA9IExlZnRQYW5lbEhlYWRlcjtcbkxheW91dC5MZWZ0UGFuZWxGb290ZXIgPSBMZWZ0UGFuZWxGb290ZXI7XG5MYXlvdXQuUmlnaHRQYW5lbCA9IFJpZ2h0UGFuZWw7XG5MYXlvdXQuUmlnaHRQYW5lbEhlYWRlciA9IFJpZ2h0UGFuZWxIZWFkZXI7XG5MYXlvdXQuUmlnaHRQYW5lbEZvb3RlciA9IFJpZ2h0UGFuZWxGb290ZXI7XG5MYXlvdXQuQ29udGVudCA9IENvbnRlbnQ7XG5MYXlvdXQuU3BsaXQgPSBTcGxpdDtcbkxheW91dC5TcGxpdEhlYWRlciA9IFNwbGl0SGVhZGVyO1xuTGF5b3V0LlNwbGl0Rm9vdGVyID0gU3BsaXRGb290ZXI7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0htQyJ9 */"),Layout=function({children,persistenceKey,storage}){let[declared,setDeclared]=(0,_react.useState)({}),{state:layoutState,...panelCallbacks}=(0,_useLayout.useLayout)(),persistence=(0,_context.useLayoutPersistence)(),resolvedKey=persistenceKey??persistence.persistenceKey,resolvedStorage=storage??persistence.storage,{isMobile}=(0,_useBreakpoints.useBreakpoints)(),showMobileSplitStack=(0,_useMobileSplitView.useMobileSplitViewEnabled)(),[mobileSplitStackHost,setMobileSplitStackHost]=(0,_react.useState)(null),[splitCount,setSplitCount]=(0,_react.useState)(0),registerSplit=(0,_react.useCallback)(()=>(setSplitCount(count=>count+1),()=>setSplitCount(count=>count-1)),[]),mobileSplitStack=(0,_react.useMemo)(()=>({host:mobileSplitStackHost,isSplitPresent:splitCount>0,registerSplit}),[mobileSplitStackHost,splitCount,registerSplit]),panelsEnabled=(0,_context.useLayoutPanelsEnabled)(),rightPanelVariant=layoutState[_constants.Slot.rightPanel].variant??declared[_constants.Slot.rightPanel]?.variant??"sidebar",isRightPanelFloating=!0===panelsEnabled&&!isMobile&&"float"===rightPanelVariant,isShown=slot=>layoutState[slot].visible&&!(slot===_constants.Slot.rightPanel&&(isRightPanelFloating||isMobile)),[present,setPresent]=(0,_react.useState)({}),presence=(0,_react.useMemo)(()=>({setPresent:(slot,isPresent)=>setPresent(prev=>prev[slot]===isPresent?prev:{...prev,[slot]:isPresent})}),[]),panelHandles=(0,_react.useRef)({}),panelElements=(0,_react.useRef)({}),resizeSuppressed=(0,_react.useRef)({}),animationControl=(0,_react.useMemo)(()=>({setHandle:(slot,handle)=>{panelHandles.current[slot]=handle},getHandle:slot=>panelHandles.current[slot]??null,setElement:(slot,element)=>{panelElements.current[slot]=element},getElement:slot=>panelElements.current[slot]??null,setResizeSuppressed:(slot,suppressed)=>{resizeSuppressed.current[slot]=suppressed}}),[]),panelRefCallbacks=(0,_react.useMemo)(()=>{let handleCallbacks=new Map,elementCallbacks=new Map;return{handleFor:id=>{let callback=handleCallbacks.get(id);return callback||(callback=handle=>animationControl.setHandle(id,handle),handleCallbacks.set(id,callback)),callback},elementFor:id=>{let callback=elementCallbacks.get(id);return callback||(callback=element=>animationControl.setElement(id,element),elementCallbacks.set(id,callback)),callback}}},[animationControl]),shouldSuppressLayoutCallback=(0,_react.useCallback)(()=>Object.values(resizeSuppressed.current).some(Boolean),[]),registry=(0,_react.useMemo)(()=>({register:(slot,reg)=>setDeclared(prev=>({...prev,[slot]:reg})),unregister:slot=>setDeclared(prev=>{if(!(slot in prev))return prev;let next={...prev};return delete next[slot],next})}),[]),{portalTargets,slotHosts,slotHostRefs,floatHostRef}=(0,_useFloatablePortalTargets.useFloatablePortalTargets)({slots:_constants.PANEL_ORDER,floatableSlot:_constants.Slot.rightPanel,isFloating:isRightPanelFloating});useGlobalCssVariables(slotHosts);let declaredSlots=_constants.PANEL_ORDER.filter(slot=>declared[slot]),isSolo=declaredSlots.length<=1,soloSlot=declaredSlots[0],defaultSizeFor=slot=>{if(slot!==_constants.Slot.content)return declared[slot]?.defaultSize??layoutState[slot].size},panelItems=_constants.PANEL_ORDER.filter(slot=>declared[slot]&&(isShown(slot)||present[slot])).map(slot=>({id:slot,defaultSize:defaultSizeFor(slot),minSize:declared[slot]?.minSize??layoutState[slot].minSize,maxSize:declared[slot]?.maxSize??layoutState[slot].maxSize,collapsible:slot!==_constants.Slot.content&&(declared[slot]?.collapsible??!0),resizable:declared[slot]?.resizable})),soloHost=soloSlot&&isShown(soloSlot)?_react.default.createElement(StyledSoloHost,{ref:slotHostRefs[soloSlot]}):null,panelGroup=panelItems.length>0?_react.default.createElement(_Panel.Panel,{key:resolvedKey,panels:panelItems,persistenceKey:resolvedKey,storage:resolvedStorage,hostFor:id=>slotHostRefs[id],onResize:(id,size)=>panelCallbacks[id].resize(size),onCollapse:id=>panelCallbacks[id].hide(),panelHandleFor:panelRefCallbacks.handleFor,panelElementFor:panelRefCallbacks.elementFor,shouldSuppressLayoutCallback:shouldSuppressLayoutCallback}):null;return _react.default.createElement(_registry.PanelRegistryContext.Provider,{value:registry},_react.default.createElement(_registry.PanelDeclarationsContext.Provider,{value:declared},_react.default.createElement(_registry.PanelPresenceContext.Provider,{value:presence},_react.default.createElement(_registry.PanelAnimationContext.Provider,{value:animationControl},_react.default.createElement(_registry.LayoutPortalContext.Provider,{value:portalTargets},_react.default.createElement(_LayoutFloatDragProvider.LayoutFloatDragProvider,null,_react.default.createElement(_useMobileSplitStack.MobileSplitStackContext.Provider,{value:mobileSplitStack},_react.default.createElement(StyledLayout,{"data-ds-id":"Layout"},isSolo?soloHost:panelGroup,isRightPanelFloating&&layoutState[_constants.Slot.rightPanel].visible&&_react.default.createElement(_LayoutFloat.LayoutFloat,{hostRef:floatHostRef}),children,showMobileSplitStack&&_react.default.createElement(StyledMobileSplitStackHost,{ref:setMobileSplitStackHost})))))))))};Layout.Provider=_LayoutProvider.LayoutProvider,Layout.LeftPanel=_LeftPanel.LeftPanel,Layout.LeftPanelHeader=_LeftPanelHeader.LeftPanelHeader,Layout.LeftPanelFooter=_LeftPanelFooter.LeftPanelFooter,Layout.RightPanel=_RightPanel.RightPanel,Layout.RightPanelHeader=_RightPanelHeader.RightPanelHeader,Layout.RightPanelFooter=_RightPanelFooter.RightPanelFooter,Layout.Content=_Content.Content,Layout.Split=_Split.Split,Layout.SplitHeader=_SplitHeader.SplitHeader,Layout.SplitFooter=_SplitFooter.SplitFooter;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"Layout",{enumerable:!0,get:function(){return Layout}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_wildcard")._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_Panel=require("../Internal/Panel/Panel"),_LayoutFloat=require("../Internal/LayoutFloat/LayoutFloat"),_useBreakpoints=require("../../shared/useBreakpoints"),_constants=require("./-constants"),_context=require("./context"),_useMobileSplitStack=require("./Split/MobileSplitView/useMobileSplitStack"),_useMobileSplitView=require("./Split/MobileSplitView/useMobileSplitView"),_LayoutProvider=require("./LayoutProvider"),_Content=require("./Content/Content"),_RightPanel=require("./RightPanel/RightPanel"),_RightPanelHeader=require("./RightPanel/RightPanelHeader"),_RightPanelFooter=require("./RightPanel/RightPanelFooter"),_LeftPanel=require("./LeftPanel/LeftPanel"),_LeftPanelHeader=require("./LeftPanel/LeftPanelHeader"),_LeftPanelFooter=require("./LeftPanel/LeftPanelFooter"),_Split=require("./Split/Split"),_SplitHeader=require("./Split/SplitHeader"),_SplitFooter=require("./Split/SplitFooter"),_registry=require("./registry"),_useFloatablePortalTargets=require("./useFloatablePortalTargets"),_LayoutFloatDragProvider=require("../Internal/LayoutFloat/LayoutFloatDragProvider"),_LayoutCssVars=require("./LayoutCssVars"),_useLayout=require("./useLayout"),resizableFromState=slotState=>"sidePanel"===slotState.kind?slotState.resizable:void 0,useGlobalCssVariables=slotHosts=>{let contentWidthCssVar=(0,_LayoutCssVars.useLayoutVar)(_constants.PANEL_WIDTH_VAR.content),rightPanelWidthCssVar=(0,_LayoutCssVars.useLayoutVar)(_constants.PANEL_WIDTH_VAR.rightPanel);(0,_react.useEffect)(()=>{let targets=[[_constants.Slot.content,contentWidthCssVar],[_constants.Slot.rightPanel,rightPanelWidthCssVar]],observers=[];return targets.forEach(([slot,handle])=>{let node=slotHosts[slot]??null;if(!node)return void handle.set("0px");let publishNodeWidth=()=>handle.set(`${node.getBoundingClientRect().width}px`);if(publishNodeWidth(),"undefined"==typeof ResizeObserver)return;let observer=new ResizeObserver(publishNodeWidth);observer.observe(node),observers.push(observer)}),()=>observers.forEach(observer=>observer.disconnect())},[contentWidthCssVar,rightPanelWidthCssVar,slotHosts])},StyledLayout=(0,_styled.default)("div",{target:"e1w0fcrp0",label:"StyledLayout"})({position:"relative",height:"100%",width:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0xheW91dC9MYXlvdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBQYW5lbEltcGVyYXRpdmVIYW5kbGUgfSBmcm9tIFwicmVhY3QtcmVzaXphYmxlLXBhbmVsc1wiO1xuaW1wb3J0IHsgUGFuZWwgfSBmcm9tIFwiLi4vSW50ZXJuYWwvUGFuZWwvUGFuZWxcIjtcbmltcG9ydCB0eXBlIHsgUGFuZWxJdGVtIH0gZnJvbSBcIi4uL0ludGVybmFsL1BhbmVsL1BhbmVsXCI7XG5pbXBvcnQgeyBMYXlvdXRGbG9hdCB9IGZyb20gXCIuLi9JbnRlcm5hbC9MYXlvdXRGbG9hdC9MYXlvdXRGbG9hdFwiO1xuaW1wb3J0IHsgdXNlQnJlYWtwb2ludHMgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZUJyZWFrcG9pbnRzXCI7XG5pbXBvcnQgeyBQQU5FTF9PUkRFUiwgUEFORUxfV0lEVEhfVkFSLCBTbG90IH0gZnJvbSBcIi4vLWNvbnN0YW50c1wiO1xuaW1wb3J0IHsgdXNlTGF5b3V0UGFuZWxzRW5hYmxlZCwgdXNlTGF5b3V0UGVyc2lzdGVuY2UgfSBmcm9tIFwiLi9jb250ZXh0XCI7XG5pbXBvcnQge1xuICBNb2JpbGVTcGxpdFN0YWNrQ29udGV4dCxcbiAgdHlwZSBNb2JpbGVTcGxpdFN0YWNrVmFsdWUsXG59IGZyb20gXCIuL1NwbGl0L01vYmlsZVNwbGl0Vmlldy91c2VNb2JpbGVTcGxpdFN0YWNrXCI7XG5pbXBvcnQgeyB1c2VNb2JpbGVTcGxpdFZpZXdFbmFibGVkIH0gZnJvbSBcIi4vU3BsaXQvTW9iaWxlU3BsaXRWaWV3L3VzZU1vYmlsZVNwbGl0Vmlld1wiO1xuaW1wb3J0IHsgTGF5b3V0UHJvdmlkZXIgfSBmcm9tIFwiLi9MYXlvdXRQcm92aWRlclwiO1xuaW1wb3J0IHsgQ29udGVudCB9IGZyb20gXCIuL0NvbnRlbnQvQ29udGVudFwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbCB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbFwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbEhlYWRlciB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbEhlYWRlclwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbEZvb3RlciB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbEZvb3RlclwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbFwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsSGVhZGVyIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbEhlYWRlclwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsRm9vdGVyIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbEZvb3RlclwiO1xuaW1wb3J0IHsgU3BsaXQgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdFwiO1xuaW1wb3J0IHsgU3BsaXRIZWFkZXIgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdEhlYWRlclwiO1xuaW1wb3J0IHsgU3BsaXRGb290ZXIgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdEZvb3RlclwiO1xuaW1wb3J0IHtcbiAgTGF5b3V0UG9ydGFsQ29udGV4dCxcbiAgUGFuZWxSZWdpc3RyeUNvbnRleHQsXG4gIFBhbmVsRGVjbGFyYXRpb25zQ29udGV4dCxcbiAgUGFuZWxQcmVzZW5jZUNvbnRleHQsXG4gIFBhbmVsQW5pbWF0aW9uQ29udGV4dCxcbiAgdHlwZSBQb3J0YWxUYXJnZXRzLFxuICB0eXBlIFBhbmVsUmVnLFxuICB0eXBlIFBhbmVsUmVnaXN0cnksXG4gIHR5cGUgUGFuZWxQcmVzZW5jZSxcbiAgdHlwZSBQYW5lbEFuaW1hdGlvbkNvbnRyb2wsXG59IGZyb20gXCIuL3JlZ2lzdHJ5XCI7XG5pbXBvcnQgeyB1c2VGbG9hdGFibGVQb3J0YWxUYXJnZXRzIH0gZnJvbSBcIi4vdXNlRmxvYXRhYmxlUG9ydGFsVGFyZ2V0c1wiO1xuaW1wb3J0IHsgTGF5b3V0RmxvYXREcmFnUHJvdmlkZXIgfSBmcm9tIFwiLi4vSW50ZXJuYWwvTGF5b3V0RmxvYXQvTGF5b3V0RmxvYXREcmFnUHJvdmlkZXJcIjtcbmltcG9ydCB7IHVzZUxheW91dFZhciwgdHlwZSBMYXlvdXRWYXJIYW5kbGUgfSBmcm9tIFwiLi9MYXlvdXRDc3NWYXJzXCI7XG5pbXBvcnQgeyB1c2VMYXlvdXQgfSBmcm9tIFwiLi91c2VMYXlvdXRcIjtcbmltcG9ydCB0eXBlIHsgTGF5b3V0UHJvcHMsIExheW91dFN0YXRlLCBTaXplLCBTbG90S2V5IH0gZnJvbSBcIi4vLXR5cGVzXCI7XG5cbi8vIE9ubHkgdGhlIHNpZGUgcGFuZWxzIGNhcnJ5IGByZXNpemFibGVgIGluIHN0YXRlIChpdCBjb21lcyBmcm9tIHRoZSBwcm92aWRlclxuLy8gY29uZmlnKTsgdGhlIGNvbnRlbnQvc3BsaXR2aWV3IHNsb3RzIHRha2UgaXQgZnJvbSB0aGVpciBkZWNsYXJhdGlvbiBhbG9uZS5cbmNvbnN0IHJlc2l6YWJsZUZyb21TdGF0ZSA9IChcbiAgc2xvdFN0YXRlOiBMYXlvdXRTdGF0ZVtTbG90S2V5XVxuKTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9PlxuICBzbG90U3RhdGUua2luZCA9PT0gXCJzaWRlUGFuZWxcIiA/IHNsb3RTdGF0ZS5yZXNpemFibGUgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogUHVibGlzaGVzIGVhY2ggcGFuZWwncyBsaXZlIHBpeGVsIHdpZHRoIGFzIGEgbGF5b3V0IENTUyB2YXIgKGUuZy5cbiAqIGAtLWRzLWxheW91dC1yaWdodFBhbmVsLXdpZHRoYCksIHRyYWNraW5nIGRyYWctIGFuZCB3aW5kb3ctcmVzaXplcy4gQSBoaWRkZW5cbiAqIHBhcnQgKG5vIGhvc3Qgbm9kZSkgcmVhZHMgYDBweGAsIHNvIHRoZSB2YXIgaXMgYWx3YXlzIGRlZmluZWQuIE9uZVxuICogYHVzZUxheW91dFZhcmAgcGVyIHNsb3QgaW4gYFBBTkVMX1dJRFRIX1ZBUmAuXG4gKi9cbmNvbnN0IHVzZUdsb2JhbENzc1ZhcmlhYmxlcyA9IChzbG90SG9zdHM6IFBvcnRhbFRhcmdldHMpOiB2b2lkID0+IHtcbiAgY29uc3QgY29udGVudFdpZHRoQ3NzVmFyID0gdXNlTGF5b3V0VmFyKFBBTkVMX1dJRFRIX1ZBUi5jb250ZW50KTtcbiAgY29uc3QgcmlnaHRQYW5lbFdpZHRoQ3NzVmFyID0gdXNlTGF5b3V0VmFyKFBBTkVMX1dJRFRIX1ZBUi5yaWdodFBhbmVsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHRhcmdldHM6IFtTbG90S2V5LCBMYXlvdXRWYXJIYW5kbGVdW10gPSBbXG4gICAgICBbU2xvdC5jb250ZW50LCBjb250ZW50V2lkdGhDc3NWYXJdLFxuICAgICAgW1Nsb3QucmlnaHRQYW5lbCwgcmlnaHRQYW5lbFdpZHRoQ3NzVmFyXSxcbiAgICBdO1xuICAgIGNvbnN0IG9ic2VydmVyczogUmVzaXplT2JzZXJ2ZXJbXSA9IFtdO1xuXG4gICAgdGFyZ2V0cy5mb3JFYWNoKChbc2xvdCwgaGFuZGxlXSkgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IHNsb3RIb3N0c1tzbG90XSA/PyBudWxsO1xuICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgIGhhbmRsZS5zZXQoXCIwcHhcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHB1Ymxpc2hOb2RlV2lkdGggPSAoKTogdm9pZCA9PlxuICAgICAgICBoYW5kbGUuc2V0KGAke25vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGh9cHhgKTtcbiAgICAgIHB1Ymxpc2hOb2RlV2lkdGgoKTtcbiAgICAgIC8vIGpzZG9tIChhbmQgb2xkIGJyb3dzZXJzKSBsYWNrIFJlc2l6ZU9ic2VydmVyIOKAlCBza2lwIGxpdmUgdHJhY2tpbmcgdGhlcmUuXG4gICAgICBpZiAodHlwZW9mIFJlc2l6ZU9ic2VydmVyID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm47XG4gICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihwdWJsaXNoTm9kZVdpZHRoKTtcbiAgICAgIG9ic2VydmVyLm9ic2VydmUobm9kZSk7XG4gICAgICBvYnNlcnZlcnMucHVzaChvYnNlcnZlcik7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4gb2JzZXJ2ZXJzLmZvckVhY2goKG9ic2VydmVyKSA9PiBvYnNlcnZlci5kaXNjb25uZWN0KCkpO1xuICB9LCBbY29udGVudFdpZHRoQ3NzVmFyLCByaWdodFBhbmVsV2lkdGhDc3NWYXIsIHNsb3RIb3N0c10pO1xufTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIExheW91dCAtIHJlZ2lzdHJ5ICsgaG9zdHM7IG1hcmtlcnMgZGVjbGFyZS9wb3J0YWw7IHRoZSByZXNpemFibGUgcGFuZWwgcm93ICAgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8vIGBwb3NpdGlvbjogcmVsYXRpdmVgIGFuY2hvcnMgdGhlIGFic29sdXRlbHktcG9zaXRpb25lZCBzcGxpdCBzdGFjayBob3N0IGFuZFxuLy8gdGhlIGZsb2F0aW5nIHdpbmRvdy4gT3ZlcmZsb3cgaXMgbGVmdCB1bnRvdWNoZWQgKHZpc2libGUpIHNvIGEgcGFnZSByZWx5aW5nXG4vLyBvbiBkb2N1bWVudC9hbmNlc3RvciBzY3JvbGxpbmcgaXMgdW5hZmZlY3RlZCAtIHRoZSBvZmZzY3JlZW4gc3BsaXQgbGF5ZXJzIGFyZVxuLy8gY2xpcHBlZCBieSB0aGVpciBvd24gaG9zdCBiZWxvdywgbm90IGhlcmUuXG5jb25zdCBTdHlsZWRMYXlvdXQgPSBzdHlsZWQuZGl2KHtcbiAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgd2lkdGg6IFwiMTAwJVwiLFxufSk7XG5cbi8vIFNvbG8tbW9kZSBob3N0OiBhIGxvbmUgcGFuZWwgKG5vIHJlc2l6YWJsZSBzaWJsaW5nKSBpcyBob3N0ZWQgaGVyZSBpbnN0ZWFkIG9mXG4vLyBpbnNpZGUgcmVhY3QtcmVzaXphYmxlLXBhbmVscy4gTWF0Y2hlcyB0aGUgcGVyLXBhbmVsIGhvc3QgdGhlIEdyb3VwIHJlbmRlcnNcbi8vIChgcmVsYXRpdmVgICsgZnVsbC1ibGVlZCkgc28gY29udGVudCByZWZsb3dzL3Njcm9sbHMgaWRlbnRpY2FsbHkgZWl0aGVyIHdheS5cbmNvbnN0IFN0eWxlZFNvbG9Ib3N0ID0gc3R5bGVkLmRpdih7XG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIGhlaWdodDogXCIxMDAlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG4vLyBGdWxsLWFyZWEgb3ZlcmxheSBhdCB0aGUgbGF5b3V0IHJvb3QgdGhhdCBob3N0cyB0aGUgbW9iaWxlIHNwbGl0IHN0YWNrLiBUaGVcbi8vIGxhc3QgY2hpbGQgb2YgYFN0eWxlZExheW91dGAsIHNvIGl0IHN0YWNrcyBhYm92ZSB0aGUgcGFuZWwgcm93OyBgY29udGVudGAgYW5kXG4vLyB0aGUgc3BsaXQgdmlld3MgcG9ydGFsIHRoZWlyIHNsaWRpbmcgbGF5ZXJzIGluIGhlcmUuIGBwb2ludGVyLWV2ZW50czogbm9uZWBcbi8vIHNvIGl0IG5ldmVyIGJsb2NrcyB0aGUgbGF5b3V0IGJlbmVhdGggLSBlYWNoIGxheWVyIHJlLWVuYWJsZXMgZXZlbnRzIHdoZW5cbi8vIGl0J3MgdGhlIGFjdGl2ZSAoZnJvbnQpIHZpZXcuIGBvdmVyZmxvdzogaGlkZGVuYCBjbGlwcyB0aGUgaW5hY3RpdmUgbGF5ZXJzJ1xuLy8gb2Zmc2NyZWVuIHJlc3RpbmcgcG9zaXRpb24gKHRyYW5zbGF0ZVggcGFzdCB0aGUgZWRnZSkgc28gdGhleSBkb24ndCB3aWRlblxuLy8gdGhlIHBhZ2UgLSBzY29wZWQgaGVyZSwgbm90IG9uIHRoZSByb290LCBzbyBpdCBuZXZlciBhZmZlY3RzIHBhZ2Ugc2Nyb2xsaW5nLlxuY29uc3QgU3R5bGVkTW9iaWxlU3BsaXRTdGFja0hvc3QgPSBzdHlsZWQuZGl2KHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgaW5zZXQ6IDAsXG4gIG92ZXJmbG93OiBcImhpZGRlblwiLFxuICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbn0pO1xuXG5mdW5jdGlvbiBMYXlvdXRCYXNlKHtcbiAgY2hpbGRyZW4sXG4gIHBlcnNpc3RlbmNlS2V5LFxuICBzdG9yYWdlLFxufTogTGF5b3V0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBbZGVjbGFyZWQsIHNldERlY2xhcmVkXSA9IHVzZVN0YXRlPFBhcnRpYWw8UmVjb3JkPFNsb3RLZXksIFBhbmVsUmVnPj4+KFxuICAgIHt9XG4gICk7XG4gIGNvbnN0IHsgc3RhdGU6IGxheW91dFN0YXRlLCAuLi5wYW5lbENhbGxiYWNrcyB9ID0gdXNlTGF5b3V0KCk7XG4gIGNvbnN0IHBlcnNpc3RlbmNlID0gdXNlTGF5b3V0UGVyc2lzdGVuY2UoKTtcbiAgY29uc3QgcmVzb2x2ZWRLZXkgPSBwZXJzaXN0ZW5jZUtleSA/PyBwZXJzaXN0ZW5jZS5wZXJzaXN0ZW5jZUtleTtcbiAgY29uc3QgcmVzb2x2ZWRTdG9yYWdlID0gc3RvcmFnZSA/PyBwZXJzaXN0ZW5jZS5zdG9yYWdlO1xuXG4gIC8vIEJlbG93IHRoZSBtb2JpbGUgYnJlYWtwb2ludCB0aGUgcmlnaHRQYW5lbCByZW5kZXJzIGFzIGEgYm90dG9tIHNoZWV0IChpdHNcbiAgLy8gbWFya2VyIHJlbmRlcnMgdGhlIFNoZWV0IGl0c2VsZikgLSBhbiBhdXRvbWF0aWMsIHJlbmRlci1sZXZlbCBhZGFwdGF0aW9uLlxuICAvLyBUaGUgc3RvcmVkIHZhcmlhbnQgaXMgdW50b3VjaGVkLCBzbyByZXNpemluZyBiYWNrIHRvIGRlc2t0b3AgcmVzdG9yZXMgdGhlXG4gIC8vIGV4YWN0IHByZXNlbnRhdGlvbiAoZG9ja2VkIG9yIGZsb2F0aW5nKSB0aGUgdXNlciBsZWZ0LlxuICBjb25zdCB7IGlzTW9iaWxlIH0gPSB1c2VCcmVha3BvaW50cygpO1xuICBjb25zdCBpc1JpZ2h0UGFuZWxTaGVldCA9IGlzTW9iaWxlO1xuXG4gIC8vIFRoZSBtb2JpbGUgc3BsaXQgc3RhY2sncyBzaGFyZWQgc3RhdGUsIHNjb3BlZCB0byB0aGlzIExheW91dDogdGhlIGhvc3RcbiAgLy8gZWxlbWVudCBtYXJrZXJzIHBvcnRhbCBpbnRvIChvbmx5IHJlbmRlcmVkIHdoaWxlIHRoZSBzdGFjayBhcHBsaWVzIHRvIHRoZVxuICAvLyB2aWV3cG9ydCkgYW5kIGhvdyBtYW55IHNwbGl0IHZpZXdzIGFyZSBtb3VudGVkIChhIGNvdW50IHRvbGVyYXRlcyB0cmFuc2llbnRcbiAgLy8gZG91YmxlLW1vdW50cykuIGBjb250ZW50YCByZWFkcyBwcmVzZW5jZSB0byBkZWNpZGUgd2hldGhlciB0byBqb2luIHRoZVxuICAvLyBzdGFjazsgYm90aCBhcmUgcHVibGlzaGVkIHRvZ2V0aGVyIHZpYSBNb2JpbGVTcGxpdFN0YWNrQ29udGV4dC5cbiAgY29uc3Qgc2hvd01vYmlsZVNwbGl0U3RhY2sgPSB1c2VNb2JpbGVTcGxpdFZpZXdFbmFibGVkKCk7XG4gIGNvbnN0IFttb2JpbGVTcGxpdFN0YWNrSG9zdCwgc2V0TW9iaWxlU3BsaXRTdGFja0hvc3RdID1cbiAgICB1c2VTdGF0ZTxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbc3BsaXRDb3VudCwgc2V0U3BsaXRDb3VudF0gPSB1c2VTdGF0ZSgwKTtcbiAgY29uc3QgcmVnaXN0ZXJTcGxpdCA9IHVzZUNhbGxiYWNrPFxuICAgIE1vYmlsZVNwbGl0U3RhY2tWYWx1ZVtcInJlZ2lzdGVyU3BsaXRcIl1cbiAgPigoKSA9PiB7XG4gICAgc2V0U3BsaXRDb3VudCgoY291bnQpID0+IGNvdW50ICsgMSk7XG4gICAgcmV0dXJuICgpID0+IHNldFNwbGl0Q291bnQoKGNvdW50KSA9PiBjb3VudCAtIDEpO1xuICB9LCBbXSk7XG4gIGNvbnN0IG1vYmlsZVNwbGl0U3RhY2sgPSB1c2VNZW1vPE1vYmlsZVNwbGl0U3RhY2tWYWx1ZT4oXG4gICAgKCkgPT4gKHtcbiAgICAgIGhvc3Q6IG1vYmlsZVNwbGl0U3RhY2tIb3N0LFxuICAgICAgaXNTcGxpdFByZXNlbnQ6IHNwbGl0Q291bnQgPiAwLFxuICAgICAgcmVnaXN0ZXJTcGxpdCxcbiAgICB9KSxcbiAgICBbbW9iaWxlU3BsaXRTdGFja0hvc3QsIHNwbGl0Q291bnQsIHJlZ2lzdGVyU3BsaXRdXG4gICk7XG5cbiAgLy8gQSBmbG9hdGluZyByaWdodFBhbmVsIHN0YXlzIHZpc2libGUgKGl0cyBtYXJrZXIga2VlcHMgcmVuZGVyaW5nIGNvbnRlbnQpXG4gIC8vIGJ1dCBsZWF2ZXMgdGhlIHJlc2l6YWJsZSByb3cgLSBleGFjdGx5IGxpa2UgYSBoaWRkZW4gcGFuZWwgZG9lcy4gVGhlXG4gIC8vIG1vYmlsZSBzaGVldCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdGhlIGZsb2F0LiBGbG9hdCBpcyBhXG4gIC8vIGRlc2t0b3AgcHJlc2VudGF0aW9uLCBzbyBvbmx5IG1vZGUgYHRydWVgIGVuYWJsZXMgaXQuIFRoZSBzdG9yZSdzIHZhcmlhbnRcbiAgLy8gc3RhcnRzIHVuc2V0OyB0aGUgbWFya2VyJ3MgZGVjbGFyZWQgYHZhcmlhbnRgIHByb3AgaXMgdGhlIGluaXRpYWxcbiAgLy8gcHJlc2VudGF0aW9uIHVudGlsIHRoZSBmaXJzdCBgc2V0VmFyaWFudGAgd3JpdGVzIHRvIHRoZSBzdG9yZS5cbiAgY29uc3QgcGFuZWxzRW5hYmxlZCA9IHVzZUxheW91dFBhbmVsc0VuYWJsZWQoKTtcbiAgY29uc3QgcmlnaHRQYW5lbFZhcmlhbnQgPVxuICAgIGxheW91dFN0YXRlW1Nsb3QucmlnaHRQYW5lbF0udmFyaWFudCA/P1xuICAgIGRlY2xhcmVkW1Nsb3QucmlnaHRQYW5lbF0/LnZhcmlhbnQgPz9cbiAgICBcInNpZGViYXJcIjtcbiAgY29uc3QgaXNSaWdodFBhbmVsRmxvYXRpbmcgPVxuICAgIHBhbmVsc0VuYWJsZWQgPT09IHRydWUgJiZcbiAgICAhaXNSaWdodFBhbmVsU2hlZXQgJiZcbiAgICByaWdodFBhbmVsVmFyaWFudCA9PT0gXCJmbG9hdFwiO1xuXG4gIGNvbnN0IGlzU2hvd24gPSAoc2xvdDogU2xvdEtleSk6IGJvb2xlYW4gPT5cbiAgICBsYXlvdXRTdGF0ZVtzbG90XS52aXNpYmxlICYmXG4gICAgIShzbG90ID09PSBTbG90LnJpZ2h0UGFuZWwgJiYgKGlzUmlnaHRQYW5lbEZsb2F0aW5nIHx8IGlzUmlnaHRQYW5lbFNoZWV0KSk7XG5cbiAgLy8gU2xvdHMga2VwdCBtb3VudGVkIHRocm91Z2ggdGhlaXIgZXhpdCBhbmltYXRpb24gKHJlcG9ydGVkIHZpYVxuICAvLyBgdXNlUGFuZWxQcmVzZW5jZWApLiBBIHByZXNlbnQtYnV0LWhpZGRlbiBzbG90IHN0YXlzIGluIHRoZSByb3cgc28gaXRzXG4gIC8vIGNsb3NlIGFuaW1hdGlvbiBjYW4gcGxheTsgaXQncyByZW1vdmVkIG9uY2UgcHJlc2VuY2UgZmxpcHMgZmFsc2UuXG4gIGNvbnN0IFtwcmVzZW50LCBzZXRQcmVzZW50XSA9IHVzZVN0YXRlPFBhcnRpYWw8UmVjb3JkPFNsb3RLZXksIGJvb2xlYW4+Pj4oe30pO1xuICBjb25zdCBwcmVzZW5jZSA9IHVzZU1lbW88UGFuZWxQcmVzZW5jZT4oXG4gICAgKCkgPT4gKHtcbiAgICAgIHNldFByZXNlbnQ6IChzbG90LCBpc1ByZXNlbnQpID0+XG4gICAgICAgIHNldFByZXNlbnQoKHByZXYpID0+XG4gICAgICAgICAgcHJldltzbG90XSA9PT0gaXNQcmVzZW50ID8gcHJldiA6IHsgLi4ucHJldiwgW3Nsb3RdOiBpc1ByZXNlbnQgfVxuICAgICAgICApLFxuICAgIH0pLFxuICAgIFtdXG4gICk7XG5cbiAgLy8gQW5pbWF0aW9uIGNvbnRyb2wgZm9yIHRoZSBkb2NrZWQgc2lkZSBwYW5lbHMnIG9wZW4vY2xvc2Ugd2lkdGggc2xpZGUuIEFsbFxuICAvLyByZWYtYmFzZWQgb24gcHVycG9zZTogcmVnaXN0ZXJpbmcgaGFuZGxlcy9lbGVtZW50cyBhbmQgdG9nZ2xpbmcgc3VwcHJlc3Npb25cbiAgLy8gaGFwcGVuIGR1cmluZyBjb21taXRzIGFuZCBwZXItZnJhbWUgLSBub25lIG9mIGl0IG1heSByZS1yZW5kZXIgdGhlIExheW91dC5cbiAgY29uc3QgcGFuZWxIYW5kbGVzID0gdXNlUmVmPFxuICAgIFBhcnRpYWw8UmVjb3JkPFNsb3RLZXksIFBhbmVsSW1wZXJhdGl2ZUhhbmRsZSB8IG51bGw+PlxuICA+KHt9KTtcbiAgY29uc3QgcGFuZWxFbGVtZW50cyA9IHVzZVJlZjxQYXJ0aWFsPFJlY29yZDxTbG90S2V5LCBIVE1MRWxlbWVudCB8IG51bGw+Pj4oXG4gICAge31cbiAgKTtcbiAgY29uc3QgcmVzaXplU3VwcHJlc3NlZCA9IHVzZVJlZjxQYXJ0aWFsPFJlY29yZDxTbG90S2V5LCBib29sZWFuPj4+KHt9KTtcbiAgY29uc3QgYW5pbWF0aW9uQ29udHJvbCA9IHVzZU1lbW88UGFuZWxBbmltYXRpb25Db250cm9sPihcbiAgICAoKSA9PiAoe1xuICAgICAgc2V0SGFuZGxlOiAoc2xvdCwgaGFuZGxlKSA9PiB7XG4gICAgICAgIHBhbmVsSGFuZGxlcy5jdXJyZW50W3Nsb3RdID0gaGFuZGxlO1xuICAgICAgfSxcbiAgICAgIGdldEhhbmRsZTogKHNsb3QpID0+IHBhbmVsSGFuZGxlcy5jdXJyZW50W3Nsb3RdID8/IG51bGwsXG4gICAgICBzZXRFbGVtZW50OiAoc2xvdCwgZWxlbWVudCkgPT4ge1xuICAgICAgICBwYW5lbEVsZW1lbnRzLmN1cnJlbnRbc2xvdF0gPSBlbGVtZW50O1xuICAgICAgfSxcbiAgICAgIGdldEVsZW1lbnQ6IChzbG90KSA9PiBwYW5lbEVsZW1lbnRzLmN1cnJlbnRbc2xvdF0gPz8gbnVsbCxcbiAgICAgIHNldFJlc2l6ZVN1cHByZXNzZWQ6IChzbG90LCBzdXBwcmVzc2VkKSA9PiB7XG4gICAgICAgIHJlc2l6ZVN1cHByZXNzZWQuY3VycmVudFtzbG90XSA9IHN1cHByZXNzZWQ7XG4gICAgICB9LFxuICAgIH0pLFxuICAgIFtdXG4gICk7XG4gIC8vIFN0YWJsZSBwZXItc2xvdCByZWYgY2FsbGJhY2tzIC0gYSBmcmVzaCBjYWxsYmFjayBpZGVudGl0eSBwZXIgcmVuZGVyIHdvdWxkXG4gIC8vIG1ha2UgUmVhY3QgZGV0YWNoL3JlYXR0YWNoIHRoZSByZWZzIG9uIGV2ZXJ5IExheW91dCByZS1yZW5kZXIuXG4gIGNvbnN0IHBhbmVsUmVmQ2FsbGJhY2tzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlQ2FsbGJhY2tzID0gbmV3IE1hcDxcbiAgICAgIHN0cmluZyxcbiAgICAgIChoYW5kbGU6IFBhbmVsSW1wZXJhdGl2ZUhhbmRsZSB8IG51bGwpID0+IHZvaWRcbiAgICA+KCk7XG4gICAgY29uc3QgZWxlbWVudENhbGxiYWNrcyA9IG5ldyBNYXA8XG4gICAgICBzdHJpbmcsXG4gICAgICAoZWxlbWVudDogSFRNTERpdkVsZW1lbnQgfCBudWxsKSA9PiB2b2lkXG4gICAgPigpO1xuICAgIHJldHVybiB7XG4gICAgICBoYW5kbGVGb3I6IChpZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGxldCBjYWxsYmFjayA9IGhhbmRsZUNhbGxiYWNrcy5nZXQoaWQpO1xuICAgICAgICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgICAgICAgY2FsbGJhY2sgPSAoaGFuZGxlKSA9PlxuICAgICAgICAgICAgYW5pbWF0aW9uQ29udHJvbC5zZXRIYW5kbGUoaWQgYXMgU2xvdEtleSwgaGFuZGxlKTtcbiAgICAgICAgICBoYW5kbGVDYWxsYmFja3Muc2V0KGlkLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrO1xuICAgICAgfSxcbiAgICAgIGVsZW1lbnRGb3I6IChpZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGxldCBjYWxsYmFjayA9IGVsZW1lbnRDYWxsYmFja3MuZ2V0KGlkKTtcbiAgICAgICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgICAgIGNhbGxiYWNrID0gKGVsZW1lbnQpID0+XG4gICAgICAgICAgICBhbmltYXRpb25Db250cm9sLnNldEVsZW1lbnQoaWQgYXMgU2xvdEtleSwgZWxlbWVudCk7XG4gICAgICAgICAgZWxlbWVudENhbGxiYWNrcy5zZXQoaWQsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2FsbGJhY2s7XG4gICAgICB9LFxuICAgIH07XG4gIH0sIFthbmltYXRpb25Db250cm9sXSk7XG4gIGNvbnN0IHNob3VsZFN1cHByZXNzTGF5b3V0Q2FsbGJhY2sgPSB1c2VDYWxsYmFjayhcbiAgICAoKSA9PiBPYmplY3QudmFsdWVzKHJlc2l6ZVN1cHByZXNzZWQuY3VycmVudCkuc29tZShCb29sZWFuKSxcbiAgICBbXVxuICApO1xuXG4gIGNvbnN0IHJlZ2lzdHJ5ID0gdXNlTWVtbzxQYW5lbFJlZ2lzdHJ5PihcbiAgICAoKSA9PiAoe1xuICAgICAgcmVnaXN0ZXI6IChzbG90LCByZWcpID0+XG4gICAgICAgIHNldERlY2xhcmVkKChwcmV2KSA9PiAoeyAuLi5wcmV2LCBbc2xvdF06IHJlZyB9KSksXG4gICAgICB1bnJlZ2lzdGVyOiAoc2xvdCkgPT5cbiAgICAgICAgc2V0RGVjbGFyZWQoKHByZXYpID0+IHtcbiAgICAgICAgICBpZiAoIShzbG90IGluIHByZXYpKSByZXR1cm4gcHJldjtcbiAgICAgICAgICBjb25zdCBuZXh0ID0geyAuLi5wcmV2IH07XG4gICAgICAgICAgZGVsZXRlIG5leHRbc2xvdF07XG4gICAgICAgICAgcmV0dXJuIG5leHQ7XG4gICAgICAgIH0pLFxuICAgIH0pLFxuICAgIFtdXG4gICk7XG5cbiAgY29uc3QgeyBwb3J0YWxUYXJnZXRzLCBzbG90SG9zdHMsIHNsb3RIb3N0UmVmcywgZmxvYXRIb3N0UmVmIH0gPVxuICAgIHVzZUZsb2F0YWJsZVBvcnRhbFRhcmdldHMoe1xuICAgICAgc2xvdHM6IFBBTkVMX09SREVSLFxuICAgICAgZmxvYXRhYmxlU2xvdDogU2xvdC5yaWdodFBhbmVsLFxuICAgICAgaXNGbG9hdGluZzogaXNSaWdodFBhbmVsRmxvYXRpbmcsXG4gICAgfSk7XG5cbiAgdXNlR2xvYmFsQ3NzVmFyaWFibGVzKHNsb3RIb3N0cyk7XG5cbiAgLy8gUGFuZWxzIHRoYXQgZXhpc3QgaW4gdGhlIGxheW91dCwgcmVnYXJkbGVzcyBvZiB2aXNpYmlsaXR5LiBEcml2ZXMgdGhlXG4gIC8vIHNvbG8tdnMtcmVzaXphYmxlIGRlY2lzaW9uIGJlbG93IC0ga2V5ZWQgb24gREVDTEFSRUQgKG5vdCBzaG93bikgc28gdGhhdFxuICAvLyBzaG93aW5nL2hpZGluZyBhIHBhbmVsIG5ldmVyIGZsaXBzIHRoZSBtb2RlLlxuICBjb25zdCBkZWNsYXJlZFNsb3RzID0gUEFORUxfT1JERVIuZmlsdGVyKChzbG90KSA9PiBkZWNsYXJlZFtzbG90XSk7XG5cbiAgLy8gU29sbyBtb2RlOiBhIHNpbmdsZSBwYW5lbCBpcyBkZWNsYXJlZCAoZS5nLiBqdXN0IGBDb250ZW50YCwgd2l0aCBub1xuICAvLyBSaWdodFBhbmVsL0xlZnRQYW5lbC9TcGxpdCBpbiB0aGUgdHJlZSkgLSBub3RoaW5nIHRvIHJlc2l6ZSBhZ2FpbnN0LCBzbyBob3N0XG4gIC8vIGl0IGluIGEgcGxhaW4gZGl2IGFuZCBza2lwIHJlYWN0LXJlc2l6YWJsZS1wYW5lbHMgZW50aXJlbHkuIEJlY2F1c2UgdGhlXG4gIC8vIGNoZWNrIGlzIG9uIERFQ0xBUkVEIHBhbmVscywgdG9nZ2xpbmcgYSAqZGVjbGFyZWQqIHBhbmVsJ3MgdmlzaWJpbGl0eSBrZWVwc1xuICAvLyB0aGUgbW9kZSBzdGFibGUsIHNvIGBDb250ZW50YCBpcyBuZXZlciByZW1vdW50ZWQgYnkgYSBzaG93L2hpZGUuIFRoZSBtb2RlXG4gIC8vIG9ubHkgZmxpcHMgd2hlbiBhIHBhbmVsIG1hcmtlciBpcyBhZGRlZCB0byAvIHJlbW92ZWQgZnJvbSB0aGUgdHJlZSAoYVxuICAvLyBzdHJ1Y3R1cmFsIGNoYW5nZSksIHdoZXJlIGEgb25lLXRpbWUgcmVtb3VudCBpcyBhY2NlcHRhYmxlLlxuICBjb25zdCBpc1NvbG8gPSBkZWNsYXJlZFNsb3RzLmxlbmd0aCA8PSAxO1xuICBjb25zdCBzb2xvU2xvdCA9IGRlY2xhcmVkU2xvdHNbMF07XG5cbiAgLy8gY29udGVudCBmbGV4ZXMgKG5vIGZpeGVkIHNpemUpOyBvdGhlcnMgdXNlIHRoZSBkZWNsYXJlZCBkZWZhdWx0LCBmYWxsaW5nXG4gIC8vIGJhY2sgdG8gdGhlIHBlcnNpc3RlZC9jb25maWcgc2l6ZS5cbiAgY29uc3QgZGVmYXVsdFNpemVGb3IgPSAoc2xvdDogU2xvdEtleSk6IFNpemUgfCB1bmRlZmluZWQgPT4ge1xuICAgIGlmIChzbG90ID09PSBTbG90LmNvbnRlbnQpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGRlY2xhcmVkW3Nsb3RdPy5kZWZhdWx0U2l6ZSA/PyBsYXlvdXRTdGF0ZVtzbG90XS5zaXplO1xuICB9O1xuXG4gIC8vIE9ubHkgdGhlIHBhbmVscyB0aGF0IGFyZSBkZWNsYXJlZCBBTkQgKGN1cnJlbnRseSBzaG93biBPUiBtaWQtZXhpdCkuIEFcbiAgLy8gaGlkZGVuLWJ1dC1wcmVzZW50IHNsb3QgbGluZ2VycyBzbyBpdHMgY2xvc2UgYW5pbWF0aW9uIGNhbiBwbGF5OyBvdGhlcndpc2VcbiAgLy8gY2xvc2VkIHBhbmVscyByZXNlcnZlIG5vIHNwYWNlLlxuICBjb25zdCBwYW5lbEl0ZW1zOiBQYW5lbEl0ZW1bXSA9IFBBTkVMX09SREVSLmZpbHRlcihcbiAgICAoc2xvdCkgPT4gZGVjbGFyZWRbc2xvdF0gJiYgKGlzU2hvd24oc2xvdCkgfHwgcHJlc2VudFtzbG90XSlcbiAgKS5tYXAoKHNsb3QpID0+ICh7XG4gICAgaWQ6IHNsb3QsXG4gICAgZGVmYXVsdFNpemU6IGRlZmF1bHRTaXplRm9yKHNsb3QpLFxuICAgIG1pblNpemU6IGRlY2xhcmVkW3Nsb3RdPy5taW5TaXplID8/IGxheW91dFN0YXRlW3Nsb3RdLm1pblNpemUsXG4gICAgbWF4U2l6ZTogZGVjbGFyZWRbc2xvdF0/Lm1heFNpemUgPz8gbGF5b3V0U3RhdGVbc2xvdF0ubWF4U2l6ZSxcbiAgICBjb2xsYXBzaWJsZTogc2xvdCAhPT0gU2xvdC5jb250ZW50ICYmIChkZWNsYXJlZFtzbG90XT8uY29sbGFwc2libGUgPz8gdHJ1ZSksXG4gICAgcmVzaXphYmxlOlxuICAgICAgZGVjbGFyZWRbc2xvdF0/LnJlc2l6YWJsZSA/PyByZXNpemFibGVGcm9tU3RhdGUobGF5b3V0U3RhdGVbc2xvdF0pLFxuICB9KSk7XG5cbiAgLy8gU29sbyBtb2RlIGhvc3RzIHRoZSBsb25lIHBhbmVsIGluIGEgcGxhaW4gZGl2LCBubyByZXNpemFibGUgR3JvdXAuIEEgaGlkZGVuXG4gIC8vIGxvbmUgcGFuZWwgcmVuZGVycyBub3RoaW5nIChDb250ZW50IGlzIGFsd2F5cyBzaG93bikuXG4gIGNvbnN0IHNvbG9Ib3N0ID1cbiAgICBzb2xvU2xvdCAmJiBpc1Nob3duKHNvbG9TbG90KSA/IChcbiAgICAgIDxTdHlsZWRTb2xvSG9zdCByZWY9e3Nsb3RIb3N0UmVmc1tzb2xvU2xvdF19IC8+XG4gICAgKSA6IG51bGw7XG5cbiAgLy8gVGhlIHJlc2l6YWJsZSBHcm91cC4gYGtleWAgPSB0aGUgcGVyc2lzdGVuY2UgbmFtZXNwYWNlOiByZWFjdC1yZXNpemFibGUtcGFuZWxzXG4gIC8vIHJlYWRzIHN0b3JlZCBzaXplcyBvbmx5IG9uIG1vdW50LCBzbyByZW1vdW50IHdoZW4gdGhlIGtleSBjaGFuZ2VzIHRvIGxvYWRcbiAgLy8gdGhhdCBpbnN0YW5jZSdzIHNpemVzIChwZXItcm91dGUgc2l6ZSBtZW1vcnkpLiBUaGUga2V5IG5ldmVyIGNoYW5nZXMgb25cbiAgLy8gcGFuZWwgb3Blbi9jbG9zZSwgc28gbm9ybWFsIHRvZ2dsaW5nIHN0YXlzIHJlbW91bnQtZnJlZS5cbiAgY29uc3QgcGFuZWxHcm91cCA9XG4gICAgcGFuZWxJdGVtcy5sZW5ndGggPiAwID8gKFxuICAgICAgPFBhbmVsXG4gICAgICAgIGtleT17cmVzb2x2ZWRLZXl9XG4gICAgICAgIHBhbmVscz17cGFuZWxJdGVtc31cbiAgICAgICAgcGVyc2lzdGVuY2VLZXk9e3Jlc29sdmVkS2V5fVxuICAgICAgICBzdG9yYWdlPXtyZXNvbHZlZFN0b3JhZ2V9XG4gICAgICAgIGhvc3RGb3I9eyhpZCkgPT4gc2xvdEhvc3RSZWZzW2lkIGFzIFNsb3RLZXldfVxuICAgICAgICBvblJlc2l6ZT17KGlkLCBzaXplKSA9PiBwYW5lbENhbGxiYWNrc1tpZCBhcyBTbG90S2V5XS5yZXNpemUoc2l6ZSl9XG4gICAgICAgIG9uQ29sbGFwc2U9eyhpZCkgPT4gcGFuZWxDYWxsYmFja3NbaWQgYXMgU2xvdEtleV0uaGlkZSgpfVxuICAgICAgICBwYW5lbEhhbmRsZUZvcj17cGFuZWxSZWZDYWxsYmFja3MuaGFuZGxlRm9yfVxuICAgICAgICBwYW5lbEVsZW1lbnRGb3I9e3BhbmVsUmVmQ2FsbGJhY2tzLmVsZW1lbnRGb3J9XG4gICAgICAgIHNob3VsZFN1cHByZXNzTGF5b3V0Q2FsbGJhY2s9e3Nob3VsZFN1cHByZXNzTGF5b3V0Q2FsbGJhY2t9XG4gICAgICAvPlxuICAgICkgOiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPFBhbmVsUmVnaXN0cnlDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtyZWdpc3RyeX0+XG4gICAgICA8UGFuZWxEZWNsYXJhdGlvbnNDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtkZWNsYXJlZH0+XG4gICAgICAgIDxQYW5lbFByZXNlbmNlQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cHJlc2VuY2V9PlxuICAgICAgICAgIDxQYW5lbEFuaW1hdGlvbkNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2FuaW1hdGlvbkNvbnRyb2x9PlxuICAgICAgICAgICAgPExheW91dFBvcnRhbENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3BvcnRhbFRhcmdldHN9PlxuICAgICAgICAgICAgICA8TGF5b3V0RmxvYXREcmFnUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPE1vYmlsZVNwbGl0U3RhY2tDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXttb2JpbGVTcGxpdFN0YWNrfT5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRMYXlvdXQgZGF0YS1kcy1pZD1cIkxheW91dFwiPlxuICAgICAgICAgICAgICAgICAgICB7aXNTb2xvID8gc29sb0hvc3QgOiBwYW5lbEdyb3VwfVxuICAgICAgICAgICAgICAgICAgICB7aXNSaWdodFBhbmVsRmxvYXRpbmcgJiZcbiAgICAgICAgICAgICAgICAgICAgICBsYXlvdXRTdGF0ZVtTbG90LnJpZ2h0UGFuZWxdLnZpc2libGUgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPExheW91dEZsb2F0IGhvc3RSZWY9e2Zsb2F0SG9zdFJlZn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICAgIHtzaG93TW9iaWxlU3BsaXRTdGFjayAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZE1vYmlsZVNwbGl0U3RhY2tIb3N0XG4gICAgICAgICAgICAgICAgICAgICAgICByZWY9e3NldE1vYmlsZVNwbGl0U3RhY2tIb3N0fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8L1N0eWxlZExheW91dD5cbiAgICAgICAgICAgICAgICA8L01vYmlsZVNwbGl0U3RhY2tDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICAgICAgICA8L0xheW91dEZsb2F0RHJhZ1Byb3ZpZGVyPlxuICAgICAgICAgICAgPC9MYXlvdXRQb3J0YWxDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICAgIDwvUGFuZWxBbmltYXRpb25Db250ZXh0LlByb3ZpZGVyPlxuICAgICAgICA8L1BhbmVsUHJlc2VuY2VDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgPC9QYW5lbERlY2xhcmF0aW9uc0NvbnRleHQuUHJvdmlkZXI+XG4gICAgPC9QYW5lbFJlZ2lzdHJ5Q29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFB1YmxpYyBMYXlvdXQgLSB0aGUgcmVzaXphYmxlIHBhbmVsIHJvdyArIGNvbXBvdW5kIHBhcnRzIGFzIHN0YXRpY3MgICAgICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxudHlwZSBMYXlvdXRDb21wb25lbnQgPSB0eXBlb2YgTGF5b3V0QmFzZSAmIHtcbiAgUHJvdmlkZXI6IHR5cGVvZiBMYXlvdXRQcm92aWRlcjtcbiAgTGVmdFBhbmVsOiB0eXBlb2YgTGVmdFBhbmVsO1xuICBMZWZ0UGFuZWxIZWFkZXI6IHR5cGVvZiBMZWZ0UGFuZWxIZWFkZXI7XG4gIExlZnRQYW5lbEZvb3RlcjogdHlwZW9mIExlZnRQYW5lbEZvb3RlcjtcbiAgUmlnaHRQYW5lbDogdHlwZW9mIFJpZ2h0UGFuZWw7XG4gIFJpZ2h0UGFuZWxIZWFkZXI6IHR5cGVvZiBSaWdodFBhbmVsSGVhZGVyO1xuICBSaWdodFBhbmVsRm9vdGVyOiB0eXBlb2YgUmlnaHRQYW5lbEZvb3RlcjtcbiAgQ29udGVudDogdHlwZW9mIENvbnRlbnQ7XG4gIFNwbGl0OiB0eXBlb2YgU3BsaXQ7XG4gIFNwbGl0SGVhZGVyOiB0eXBlb2YgU3BsaXRIZWFkZXI7XG4gIFNwbGl0Rm9vdGVyOiB0eXBlb2YgU3BsaXRGb290ZXI7XG59O1xuXG5leHBvcnQgY29uc3QgTGF5b3V0ID0gTGF5b3V0QmFzZSBhcyBMYXlvdXRDb21wb25lbnQ7XG5cbkxheW91dC5Qcm92aWRlciA9IExheW91dFByb3ZpZGVyO1xuTGF5b3V0LkxlZnRQYW5lbCA9IExlZnRQYW5lbDtcbkxheW91dC5MZWZ0UGFuZWxIZWFkZXIgPSBMZWZ0UGFuZWxIZWFkZXI7XG5MYXlvdXQuTGVmdFBhbmVsRm9vdGVyID0gTGVmdFBhbmVsRm9vdGVyO1xuTGF5b3V0LlJpZ2h0UGFuZWwgPSBSaWdodFBhbmVsO1xuTGF5b3V0LlJpZ2h0UGFuZWxIZWFkZXIgPSBSaWdodFBhbmVsSGVhZGVyO1xuTGF5b3V0LlJpZ2h0UGFuZWxGb290ZXIgPSBSaWdodFBhbmVsRm9vdGVyO1xuTGF5b3V0LkNvbnRlbnQgPSBDb250ZW50O1xuTGF5b3V0LlNwbGl0ID0gU3BsaXQ7XG5MYXlvdXQuU3BsaXRIZWFkZXIgPSBTcGxpdEhlYWRlcjtcbkxheW91dC5TcGxpdEZvb3RlciA9IFNwbGl0Rm9vdGVyO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFHcUIifQ== */"),StyledSoloHost=(0,_styled.default)("div",{target:"e1w0fcrp1",label:"StyledSoloHost"})({position:"relative",height:"100%",width:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0xheW91dC9MYXlvdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBQYW5lbEltcGVyYXRpdmVIYW5kbGUgfSBmcm9tIFwicmVhY3QtcmVzaXphYmxlLXBhbmVsc1wiO1xuaW1wb3J0IHsgUGFuZWwgfSBmcm9tIFwiLi4vSW50ZXJuYWwvUGFuZWwvUGFuZWxcIjtcbmltcG9ydCB0eXBlIHsgUGFuZWxJdGVtIH0gZnJvbSBcIi4uL0ludGVybmFsL1BhbmVsL1BhbmVsXCI7XG5pbXBvcnQgeyBMYXlvdXRGbG9hdCB9IGZyb20gXCIuLi9JbnRlcm5hbC9MYXlvdXRGbG9hdC9MYXlvdXRGbG9hdFwiO1xuaW1wb3J0IHsgdXNlQnJlYWtwb2ludHMgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZUJyZWFrcG9pbnRzXCI7XG5pbXBvcnQgeyBQQU5FTF9PUkRFUiwgUEFORUxfV0lEVEhfVkFSLCBTbG90IH0gZnJvbSBcIi4vLWNvbnN0YW50c1wiO1xuaW1wb3J0IHsgdXNlTGF5b3V0UGFuZWxzRW5hYmxlZCwgdXNlTGF5b3V0UGVyc2lzdGVuY2UgfSBmcm9tIFwiLi9jb250ZXh0XCI7XG5pbXBvcnQge1xuICBNb2JpbGVTcGxpdFN0YWNrQ29udGV4dCxcbiAgdHlwZSBNb2JpbGVTcGxpdFN0YWNrVmFsdWUsXG59IGZyb20gXCIuL1NwbGl0L01vYmlsZVNwbGl0Vmlldy91c2VNb2JpbGVTcGxpdFN0YWNrXCI7XG5pbXBvcnQgeyB1c2VNb2JpbGVTcGxpdFZpZXdFbmFibGVkIH0gZnJvbSBcIi4vU3BsaXQvTW9iaWxlU3BsaXRWaWV3L3VzZU1vYmlsZVNwbGl0Vmlld1wiO1xuaW1wb3J0IHsgTGF5b3V0UHJvdmlkZXIgfSBmcm9tIFwiLi9MYXlvdXRQcm92aWRlclwiO1xuaW1wb3J0IHsgQ29udGVudCB9IGZyb20gXCIuL0NvbnRlbnQvQ29udGVudFwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbCB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbFwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbEhlYWRlciB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbEhlYWRlclwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbEZvb3RlciB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbEZvb3RlclwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbFwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsSGVhZGVyIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbEhlYWRlclwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsRm9vdGVyIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbEZvb3RlclwiO1xuaW1wb3J0IHsgU3BsaXQgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdFwiO1xuaW1wb3J0IHsgU3BsaXRIZWFkZXIgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdEhlYWRlclwiO1xuaW1wb3J0IHsgU3BsaXRGb290ZXIgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdEZvb3RlclwiO1xuaW1wb3J0IHtcbiAgTGF5b3V0UG9ydGFsQ29udGV4dCxcbiAgUGFuZWxSZWdpc3RyeUNvbnRleHQsXG4gIFBhbmVsRGVjbGFyYXRpb25zQ29udGV4dCxcbiAgUGFuZWxQcmVzZW5jZUNvbnRleHQsXG4gIFBhbmVsQW5pbWF0aW9uQ29udGV4dCxcbiAgdHlwZSBQb3J0YWxUYXJnZXRzLFxuICB0eXBlIFBhbmVsUmVnLFxuICB0eXBlIFBhbmVsUmVnaXN0cnksXG4gIHR5cGUgUGFuZWxQcmVzZW5jZSxcbiAgdHlwZSBQYW5lbEFuaW1hdGlvbkNvbnRyb2wsXG59IGZyb20gXCIuL3JlZ2lzdHJ5XCI7XG5pbXBvcnQgeyB1c2VGbG9hdGFibGVQb3J0YWxUYXJnZXRzIH0gZnJvbSBcIi4vdXNlRmxvYXRhYmxlUG9ydGFsVGFyZ2V0c1wiO1xuaW1wb3J0IHsgTGF5b3V0RmxvYXREcmFnUHJvdmlkZXIgfSBmcm9tIFwiLi4vSW50ZXJuYWwvTGF5b3V0RmxvYXQvTGF5b3V0RmxvYXREcmFnUHJvdmlkZXJcIjtcbmltcG9ydCB7IHVzZUxheW91dFZhciwgdHlwZSBMYXlvdXRWYXJIYW5kbGUgfSBmcm9tIFwiLi9MYXlvdXRDc3NWYXJzXCI7XG5pbXBvcnQgeyB1c2VMYXlvdXQgfSBmcm9tIFwiLi91c2VMYXlvdXRcIjtcbmltcG9ydCB0eXBlIHsgTGF5b3V0UHJvcHMsIExheW91dFN0YXRlLCBTaXplLCBTbG90S2V5IH0gZnJvbSBcIi4vLXR5cGVzXCI7XG5cbi8vIE9ubHkgdGhlIHNpZGUgcGFuZWxzIGNhcnJ5IGByZXNpemFibGVgIGluIHN0YXRlIChpdCBjb21lcyBmcm9tIHRoZSBwcm92aWRlclxuLy8gY29uZmlnKTsgdGhlIGNvbnRlbnQvc3BsaXR2aWV3IHNsb3RzIHRha2UgaXQgZnJvbSB0aGVpciBkZWNsYXJhdGlvbiBhbG9uZS5cbmNvbnN0IHJlc2l6YWJsZUZyb21TdGF0ZSA9IChcbiAgc2xvdFN0YXRlOiBMYXlvdXRTdGF0ZVtTbG90S2V5XVxuKTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9PlxuICBzbG90U3RhdGUua2luZCA9PT0gXCJzaWRlUGFuZWxcIiA/IHNsb3RTdGF0ZS5yZXNpemFibGUgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogUHVibGlzaGVzIGVhY2ggcGFuZWwncyBsaXZlIHBpeGVsIHdpZHRoIGFzIGEgbGF5b3V0IENTUyB2YXIgKGUuZy5cbiAqIGAtLWRzLWxheW91dC1yaWdodFBhbmVsLXdpZHRoYCksIHRyYWNraW5nIGRyYWctIGFuZCB3aW5kb3ctcmVzaXplcy4gQSBoaWRkZW5cbiAqIHBhcnQgKG5vIGhvc3Qgbm9kZSkgcmVhZHMgYDBweGAsIHNvIHRoZSB2YXIgaXMgYWx3YXlzIGRlZmluZWQuIE9uZVxuICogYHVzZUxheW91dFZhcmAgcGVyIHNsb3QgaW4gYFBBTkVMX1dJRFRIX1ZBUmAuXG4gKi9cbmNvbnN0IHVzZUdsb2JhbENzc1ZhcmlhYmxlcyA9IChzbG90SG9zdHM6IFBvcnRhbFRhcmdldHMpOiB2b2lkID0+IHtcbiAgY29uc3QgY29udGVudFdpZHRoQ3NzVmFyID0gdXNlTGF5b3V0VmFyKFBBTkVMX1dJRFRIX1ZBUi5jb250ZW50KTtcbiAgY29uc3QgcmlnaHRQYW5lbFdpZHRoQ3NzVmFyID0gdXNlTGF5b3V0VmFyKFBBTkVMX1dJRFRIX1ZBUi5yaWdodFBhbmVsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHRhcmdldHM6IFtTbG90S2V5LCBMYXlvdXRWYXJIYW5kbGVdW10gPSBbXG4gICAgICBbU2xvdC5jb250ZW50LCBjb250ZW50V2lkdGhDc3NWYXJdLFxuICAgICAgW1Nsb3QucmlnaHRQYW5lbCwgcmlnaHRQYW5lbFdpZHRoQ3NzVmFyXSxcbiAgICBdO1xuICAgIGNvbnN0IG9ic2VydmVyczogUmVzaXplT2JzZXJ2ZXJbXSA9IFtdO1xuXG4gICAgdGFyZ2V0cy5mb3JFYWNoKChbc2xvdCwgaGFuZGxlXSkgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IHNsb3RIb3N0c1tzbG90XSA/PyBudWxsO1xuICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgIGhhbmRsZS5zZXQoXCIwcHhcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHB1Ymxpc2hOb2RlV2lkdGggPSAoKTogdm9pZCA9PlxuICAgICAgICBoYW5kbGUuc2V0KGAke25vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGh9cHhgKTtcbiAgICAgIHB1Ymxpc2hOb2RlV2lkdGgoKTtcbiAgICAgIC8vIGpzZG9tIChhbmQgb2xkIGJyb3dzZXJzKSBsYWNrIFJlc2l6ZU9ic2VydmVyIOKAlCBza2lwIGxpdmUgdHJhY2tpbmcgdGhlcmUuXG4gICAgICBpZiAodHlwZW9mIFJlc2l6ZU9ic2VydmVyID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm47XG4gICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihwdWJsaXNoTm9kZVdpZHRoKTtcbiAgICAgIG9ic2VydmVyLm9ic2VydmUobm9kZSk7XG4gICAgICBvYnNlcnZlcnMucHVzaChvYnNlcnZlcik7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4gb2JzZXJ2ZXJzLmZvckVhY2goKG9ic2VydmVyKSA9PiBvYnNlcnZlci5kaXNjb25uZWN0KCkpO1xuICB9LCBbY29udGVudFdpZHRoQ3NzVmFyLCByaWdodFBhbmVsV2lkdGhDc3NWYXIsIHNsb3RIb3N0c10pO1xufTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIExheW91dCAtIHJlZ2lzdHJ5ICsgaG9zdHM7IG1hcmtlcnMgZGVjbGFyZS9wb3J0YWw7IHRoZSByZXNpemFibGUgcGFuZWwgcm93ICAgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8vIGBwb3NpdGlvbjogcmVsYXRpdmVgIGFuY2hvcnMgdGhlIGFic29sdXRlbHktcG9zaXRpb25lZCBzcGxpdCBzdGFjayBob3N0IGFuZFxuLy8gdGhlIGZsb2F0aW5nIHdpbmRvdy4gT3ZlcmZsb3cgaXMgbGVmdCB1bnRvdWNoZWQgKHZpc2libGUpIHNvIGEgcGFnZSByZWx5aW5nXG4vLyBvbiBkb2N1bWVudC9hbmNlc3RvciBzY3JvbGxpbmcgaXMgdW5hZmZlY3RlZCAtIHRoZSBvZmZzY3JlZW4gc3BsaXQgbGF5ZXJzIGFyZVxuLy8gY2xpcHBlZCBieSB0aGVpciBvd24gaG9zdCBiZWxvdywgbm90IGhlcmUuXG5jb25zdCBTdHlsZWRMYXlvdXQgPSBzdHlsZWQuZGl2KHtcbiAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgd2lkdGg6IFwiMTAwJVwiLFxufSk7XG5cbi8vIFNvbG8tbW9kZSBob3N0OiBhIGxvbmUgcGFuZWwgKG5vIHJlc2l6YWJsZSBzaWJsaW5nKSBpcyBob3N0ZWQgaGVyZSBpbnN0ZWFkIG9mXG4vLyBpbnNpZGUgcmVhY3QtcmVzaXphYmxlLXBhbmVscy4gTWF0Y2hlcyB0aGUgcGVyLXBhbmVsIGhvc3QgdGhlIEdyb3VwIHJlbmRlcnNcbi8vIChgcmVsYXRpdmVgICsgZnVsbC1ibGVlZCkgc28gY29udGVudCByZWZsb3dzL3Njcm9sbHMgaWRlbnRpY2FsbHkgZWl0aGVyIHdheS5cbmNvbnN0IFN0eWxlZFNvbG9Ib3N0ID0gc3R5bGVkLmRpdih7XG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIGhlaWdodDogXCIxMDAlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG4vLyBGdWxsLWFyZWEgb3ZlcmxheSBhdCB0aGUgbGF5b3V0IHJvb3QgdGhhdCBob3N0cyB0aGUgbW9iaWxlIHNwbGl0IHN0YWNrLiBUaGVcbi8vIGxhc3QgY2hpbGQgb2YgYFN0eWxlZExheW91dGAsIHNvIGl0IHN0YWNrcyBhYm92ZSB0aGUgcGFuZWwgcm93OyBgY29udGVudGAgYW5kXG4vLyB0aGUgc3BsaXQgdmlld3MgcG9ydGFsIHRoZWlyIHNsaWRpbmcgbGF5ZXJzIGluIGhlcmUuIGBwb2ludGVyLWV2ZW50czogbm9uZWBcbi8vIHNvIGl0IG5ldmVyIGJsb2NrcyB0aGUgbGF5b3V0IGJlbmVhdGggLSBlYWNoIGxheWVyIHJlLWVuYWJsZXMgZXZlbnRzIHdoZW5cbi8vIGl0J3MgdGhlIGFjdGl2ZSAoZnJvbnQpIHZpZXcuIGBvdmVyZmxvdzogaGlkZGVuYCBjbGlwcyB0aGUgaW5hY3RpdmUgbGF5ZXJzJ1xuLy8gb2Zmc2NyZWVuIHJlc3RpbmcgcG9zaXRpb24gKHRyYW5zbGF0ZVggcGFzdCB0aGUgZWRnZSkgc28gdGhleSBkb24ndCB3aWRlblxuLy8gdGhlIHBhZ2UgLSBzY29wZWQgaGVyZSwgbm90IG9uIHRoZSByb290LCBzbyBpdCBuZXZlciBhZmZlY3RzIHBhZ2Ugc2Nyb2xsaW5nLlxuY29uc3QgU3R5bGVkTW9iaWxlU3BsaXRTdGFja0hvc3QgPSBzdHlsZWQuZGl2KHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgaW5zZXQ6IDAsXG4gIG92ZXJmbG93OiBcImhpZGRlblwiLFxuICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbn0pO1xuXG5mdW5jdGlvbiBMYXlvdXRCYXNlKHtcbiAgY2hpbGRyZW4sXG4gIHBlcnNpc3RlbmNlS2V5LFxuICBzdG9yYWdlLFxufTogTGF5b3V0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBbZGVjbGFyZWQsIHNldERlY2xhcmVkXSA9IHVzZVN0YXRlPFBhcnRpYWw8UmVjb3JkPFNsb3RLZXksIFBhbmVsUmVnPj4+KFxuICAgIHt9XG4gICk7XG4gIGNvbnN0IHsgc3RhdGU6IGxheW91dFN0YXRlLCAuLi5wYW5lbENhbGxiYWNrcyB9ID0gdXNlTGF5b3V0KCk7XG4gIGNvbnN0IHBlcnNpc3RlbmNlID0gdXNlTGF5b3V0UGVyc2lzdGVuY2UoKTtcbiAgY29uc3QgcmVzb2x2ZWRLZXkgPSBwZXJzaXN0ZW5jZUtleSA/PyBwZXJzaXN0ZW5jZS5wZXJzaXN0ZW5jZUtleTtcbiAgY29uc3QgcmVzb2x2ZWRTdG9yYWdlID0gc3RvcmFnZSA/PyBwZXJzaXN0ZW5jZS5zdG9yYWdlO1xuXG4gIC8vIEJlbG93IHRoZSBtb2JpbGUgYnJlYWtwb2ludCB0aGUgcmlnaHRQYW5lbCByZW5kZXJzIGFzIGEgYm90dG9tIHNoZWV0IChpdHNcbiAgLy8gbWFya2VyIHJlbmRlcnMgdGhlIFNoZWV0IGl0c2VsZikgLSBhbiBhdXRvbWF0aWMsIHJlbmRlci1sZXZlbCBhZGFwdGF0aW9uLlxuICAvLyBUaGUgc3RvcmVkIHZhcmlhbnQgaXMgdW50b3VjaGVkLCBzbyByZXNpemluZyBiYWNrIHRvIGRlc2t0b3AgcmVzdG9yZXMgdGhlXG4gIC8vIGV4YWN0IHByZXNlbnRhdGlvbiAoZG9ja2VkIG9yIGZsb2F0aW5nKSB0aGUgdXNlciBsZWZ0LlxuICBjb25zdCB7IGlzTW9iaWxlIH0gPSB1c2VCcmVha3BvaW50cygpO1xuICBjb25zdCBpc1JpZ2h0UGFuZWxTaGVldCA9IGlzTW9iaWxlO1xuXG4gIC8vIFRoZSBtb2JpbGUgc3BsaXQgc3RhY2sncyBzaGFyZWQgc3RhdGUsIHNjb3BlZCB0byB0aGlzIExheW91dDogdGhlIGhvc3RcbiAgLy8gZWxlbWVudCBtYXJrZXJzIHBvcnRhbCBpbnRvIChvbmx5IHJlbmRlcmVkIHdoaWxlIHRoZSBzdGFjayBhcHBsaWVzIHRvIHRoZVxuICAvLyB2aWV3cG9ydCkgYW5kIGhvdyBtYW55IHNwbGl0IHZpZXdzIGFyZSBtb3VudGVkIChhIGNvdW50IHRvbGVyYXRlcyB0cmFuc2llbnRcbiAgLy8gZG91YmxlLW1vdW50cykuIGBjb250ZW50YCByZWFkcyBwcmVzZW5jZSB0byBkZWNpZGUgd2hldGhlciB0byBqb2luIHRoZVxuICAvLyBzdGFjazsgYm90aCBhcmUgcHVibGlzaGVkIHRvZ2V0aGVyIHZpYSBNb2JpbGVTcGxpdFN0YWNrQ29udGV4dC5cbiAgY29uc3Qgc2hvd01vYmlsZVNwbGl0U3RhY2sgPSB1c2VNb2JpbGVTcGxpdFZpZXdFbmFibGVkKCk7XG4gIGNvbnN0IFttb2JpbGVTcGxpdFN0YWNrSG9zdCwgc2V0TW9iaWxlU3BsaXRTdGFja0hvc3RdID1cbiAgICB1c2VTdGF0ZTxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbc3BsaXRDb3VudCwgc2V0U3BsaXRDb3VudF0gPSB1c2VTdGF0ZSgwKTtcbiAgY29uc3QgcmVnaXN0ZXJTcGxpdCA9IHVzZUNhbGxiYWNrPFxuICAgIE1vYmlsZVNwbGl0U3RhY2tWYWx1ZVtcInJlZ2lzdGVyU3BsaXRcIl1cbiAgPigoKSA9PiB7XG4gICAgc2V0U3BsaXRDb3VudCgoY291bnQpID0+IGNvdW50ICsgMSk7XG4gICAgcmV0dXJuICgpID0+IHNldFNwbGl0Q291bnQoKGNvdW50KSA9PiBjb3VudCAtIDEpO1xuICB9LCBbXSk7XG4gIGNvbnN0IG1vYmlsZVNwbGl0U3RhY2sgPSB1c2VNZW1vPE1vYmlsZVNwbGl0U3RhY2tWYWx1ZT4oXG4gICAgKCkgPT4gKHtcbiAgICAgIGhvc3Q6IG1vYmlsZVNwbGl0U3RhY2tIb3N0LFxuICAgICAgaXNTcGxpdFByZXNlbnQ6IHNwbGl0Q291bnQgPiAwLFxuICAgICAgcmVnaXN0ZXJTcGxpdCxcbiAgICB9KSxcbiAgICBbbW9iaWxlU3BsaXRTdGFja0hvc3QsIHNwbGl0Q291bnQsIHJlZ2lzdGVyU3BsaXRdXG4gICk7XG5cbiAgLy8gQSBmbG9hdGluZyByaWdodFBhbmVsIHN0YXlzIHZpc2libGUgKGl0cyBtYXJrZXIga2VlcHMgcmVuZGVyaW5nIGNvbnRlbnQpXG4gIC8vIGJ1dCBsZWF2ZXMgdGhlIHJlc2l6YWJsZSByb3cgLSBleGFjdGx5IGxpa2UgYSBoaWRkZW4gcGFuZWwgZG9lcy4gVGhlXG4gIC8vIG1vYmlsZSBzaGVldCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdGhlIGZsb2F0LiBGbG9hdCBpcyBhXG4gIC8vIGRlc2t0b3AgcHJlc2VudGF0aW9uLCBzbyBvbmx5IG1vZGUgYHRydWVgIGVuYWJsZXMgaXQuIFRoZSBzdG9yZSdzIHZhcmlhbnRcbiAgLy8gc3RhcnRzIHVuc2V0OyB0aGUgbWFya2VyJ3MgZGVjbGFyZWQgYHZhcmlhbnRgIHByb3AgaXMgdGhlIGluaXRpYWxcbiAgLy8gcHJlc2VudGF0aW9uIHVudGlsIHRoZSBmaXJzdCBgc2V0VmFyaWFudGAgd3JpdGVzIHRvIHRoZSBzdG9yZS5cbiAgY29uc3QgcGFuZWxzRW5hYmxlZCA9IHVzZUxheW91dFBhbmVsc0VuYWJsZWQoKTtcbiAgY29uc3QgcmlnaHRQYW5lbFZhcmlhbnQgPVxuICAgIGxheW91dFN0YXRlW1Nsb3QucmlnaHRQYW5lbF0udmFyaWFudCA/P1xuICAgIGRlY2xhcmVkW1Nsb3QucmlnaHRQYW5lbF0/LnZhcmlhbnQgPz9cbiAgICBcInNpZGViYXJcIjtcbiAgY29uc3QgaXNSaWdodFBhbmVsRmxvYXRpbmcgPVxuICAgIHBhbmVsc0VuYWJsZWQgPT09IHRydWUgJiZcbiAgICAhaXNSaWdodFBhbmVsU2hlZXQgJiZcbiAgICByaWdodFBhbmVsVmFyaWFudCA9PT0gXCJmbG9hdFwiO1xuXG4gIGNvbnN0IGlzU2hvd24gPSAoc2xvdDogU2xvdEtleSk6IGJvb2xlYW4gPT5cbiAgICBsYXlvdXRTdGF0ZVtzbG90XS52aXNpYmxlICYmXG4gICAgIShzbG90ID09PSBTbG90LnJpZ2h0UGFuZWwgJiYgKGlzUmlnaHRQYW5lbEZsb2F0aW5nIHx8IGlzUmlnaHRQYW5lbFNoZWV0KSk7XG5cbiAgLy8gU2xvdHMga2VwdCBtb3VudGVkIHRocm91Z2ggdGhlaXIgZXhpdCBhbmltYXRpb24gKHJlcG9ydGVkIHZpYVxuICAvLyBgdXNlUGFuZWxQcmVzZW5jZWApLiBBIHByZXNlbnQtYnV0LWhpZGRlbiBzbG90IHN0YXlzIGluIHRoZSByb3cgc28gaXRzXG4gIC8vIGNsb3NlIGFuaW1hdGlvbiBjYW4gcGxheTsgaXQncyByZW1vdmVkIG9uY2UgcHJlc2VuY2UgZmxpcHMgZmFsc2UuXG4gIGNvbnN0IFtwcmVzZW50LCBzZXRQcmVzZW50XSA9IHVzZVN0YXRlPFBhcnRpYWw8UmVjb3JkPFNsb3RLZXksIGJvb2xlYW4+Pj4oe30pO1xuICBjb25zdCBwcmVzZW5jZSA9IHVzZU1lbW88UGFuZWxQcmVzZW5jZT4oXG4gICAgKCkgPT4gKHtcbiAgICAgIHNldFByZXNlbnQ6IChzbG90LCBpc1ByZXNlbnQpID0+XG4gICAgICAgIHNldFByZXNlbnQoKHByZXYpID0+XG4gICAgICAgICAgcHJldltzbG90XSA9PT0gaXNQcmVzZW50ID8gcHJldiA6IHsgLi4ucHJldiwgW3Nsb3RdOiBpc1ByZXNlbnQgfVxuICAgICAgICApLFxuICAgIH0pLFxuICAgIFtdXG4gICk7XG5cbiAgLy8gQW5pbWF0aW9uIGNvbnRyb2wgZm9yIHRoZSBkb2NrZWQgc2lkZSBwYW5lbHMnIG9wZW4vY2xvc2Ugd2lkdGggc2xpZGUuIEFsbFxuICAvLyByZWYtYmFzZWQgb24gcHVycG9zZTogcmVnaXN0ZXJpbmcgaGFuZGxlcy9lbGVtZW50cyBhbmQgdG9nZ2xpbmcgc3VwcHJlc3Npb25cbiAgLy8gaGFwcGVuIGR1cmluZyBjb21taXRzIGFuZCBwZXItZnJhbWUgLSBub25lIG9mIGl0IG1heSByZS1yZW5kZXIgdGhlIExheW91dC5cbiAgY29uc3QgcGFuZWxIYW5kbGVzID0gdXNlUmVmPFxuICAgIFBhcnRpYWw8UmVjb3JkPFNsb3RLZXksIFBhbmVsSW1wZXJhdGl2ZUhhbmRsZSB8IG51bGw+PlxuICA+KHt9KTtcbiAgY29uc3QgcGFuZWxFbGVtZW50cyA9IHVzZVJlZjxQYXJ0aWFsPFJlY29yZDxTbG90S2V5LCBIVE1MRWxlbWVudCB8IG51bGw+Pj4oXG4gICAge31cbiAgKTtcbiAgY29uc3QgcmVzaXplU3VwcHJlc3NlZCA9IHVzZVJlZjxQYXJ0aWFsPFJlY29yZDxTbG90S2V5LCBib29sZWFuPj4+KHt9KTtcbiAgY29uc3QgYW5pbWF0aW9uQ29udHJvbCA9IHVzZU1lbW88UGFuZWxBbmltYXRpb25Db250cm9sPihcbiAgICAoKSA9PiAoe1xuICAgICAgc2V0SGFuZGxlOiAoc2xvdCwgaGFuZGxlKSA9PiB7XG4gICAgICAgIHBhbmVsSGFuZGxlcy5jdXJyZW50W3Nsb3RdID0gaGFuZGxlO1xuICAgICAgfSxcbiAgICAgIGdldEhhbmRsZTogKHNsb3QpID0+IHBhbmVsSGFuZGxlcy5jdXJyZW50W3Nsb3RdID8/IG51bGwsXG4gICAgICBzZXRFbGVtZW50OiAoc2xvdCwgZWxlbWVudCkgPT4ge1xuICAgICAgICBwYW5lbEVsZW1lbnRzLmN1cnJlbnRbc2xvdF0gPSBlbGVtZW50O1xuICAgICAgfSxcbiAgICAgIGdldEVsZW1lbnQ6IChzbG90KSA9PiBwYW5lbEVsZW1lbnRzLmN1cnJlbnRbc2xvdF0gPz8gbnVsbCxcbiAgICAgIHNldFJlc2l6ZVN1cHByZXNzZWQ6IChzbG90LCBzdXBwcmVzc2VkKSA9PiB7XG4gICAgICAgIHJlc2l6ZVN1cHByZXNzZWQuY3VycmVudFtzbG90XSA9IHN1cHByZXNzZWQ7XG4gICAgICB9LFxuICAgIH0pLFxuICAgIFtdXG4gICk7XG4gIC8vIFN0YWJsZSBwZXItc2xvdCByZWYgY2FsbGJhY2tzIC0gYSBmcmVzaCBjYWxsYmFjayBpZGVudGl0eSBwZXIgcmVuZGVyIHdvdWxkXG4gIC8vIG1ha2UgUmVhY3QgZGV0YWNoL3JlYXR0YWNoIHRoZSByZWZzIG9uIGV2ZXJ5IExheW91dCByZS1yZW5kZXIuXG4gIGNvbnN0IHBhbmVsUmVmQ2FsbGJhY2tzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlQ2FsbGJhY2tzID0gbmV3IE1hcDxcbiAgICAgIHN0cmluZyxcbiAgICAgIChoYW5kbGU6IFBhbmVsSW1wZXJhdGl2ZUhhbmRsZSB8IG51bGwpID0+IHZvaWRcbiAgICA+KCk7XG4gICAgY29uc3QgZWxlbWVudENhbGxiYWNrcyA9IG5ldyBNYXA8XG4gICAgICBzdHJpbmcsXG4gICAgICAoZWxlbWVudDogSFRNTERpdkVsZW1lbnQgfCBudWxsKSA9PiB2b2lkXG4gICAgPigpO1xuICAgIHJldHVybiB7XG4gICAgICBoYW5kbGVGb3I6IChpZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGxldCBjYWxsYmFjayA9IGhhbmRsZUNhbGxiYWNrcy5nZXQoaWQpO1xuICAgICAgICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgICAgICAgY2FsbGJhY2sgPSAoaGFuZGxlKSA9PlxuICAgICAgICAgICAgYW5pbWF0aW9uQ29udHJvbC5zZXRIYW5kbGUoaWQgYXMgU2xvdEtleSwgaGFuZGxlKTtcbiAgICAgICAgICBoYW5kbGVDYWxsYmFja3Muc2V0KGlkLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrO1xuICAgICAgfSxcbiAgICAgIGVsZW1lbnRGb3I6IChpZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGxldCBjYWxsYmFjayA9IGVsZW1lbnRDYWxsYmFja3MuZ2V0KGlkKTtcbiAgICAgICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgICAgIGNhbGxiYWNrID0gKGVsZW1lbnQpID0+XG4gICAgICAgICAgICBhbmltYXRpb25Db250cm9sLnNldEVsZW1lbnQoaWQgYXMgU2xvdEtleSwgZWxlbWVudCk7XG4gICAgICAgICAgZWxlbWVudENhbGxiYWNrcy5zZXQoaWQsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2FsbGJhY2s7XG4gICAgICB9LFxuICAgIH07XG4gIH0sIFthbmltYXRpb25Db250cm9sXSk7XG4gIGNvbnN0IHNob3VsZFN1cHByZXNzTGF5b3V0Q2FsbGJhY2sgPSB1c2VDYWxsYmFjayhcbiAgICAoKSA9PiBPYmplY3QudmFsdWVzKHJlc2l6ZVN1cHByZXNzZWQuY3VycmVudCkuc29tZShCb29sZWFuKSxcbiAgICBbXVxuICApO1xuXG4gIGNvbnN0IHJlZ2lzdHJ5ID0gdXNlTWVtbzxQYW5lbFJlZ2lzdHJ5PihcbiAgICAoKSA9PiAoe1xuICAgICAgcmVnaXN0ZXI6IChzbG90LCByZWcpID0+XG4gICAgICAgIHNldERlY2xhcmVkKChwcmV2KSA9PiAoeyAuLi5wcmV2LCBbc2xvdF06IHJlZyB9KSksXG4gICAgICB1bnJlZ2lzdGVyOiAoc2xvdCkgPT5cbiAgICAgICAgc2V0RGVjbGFyZWQoKHByZXYpID0+IHtcbiAgICAgICAgICBpZiAoIShzbG90IGluIHByZXYpKSByZXR1cm4gcHJldjtcbiAgICAgICAgICBjb25zdCBuZXh0ID0geyAuLi5wcmV2IH07XG4gICAgICAgICAgZGVsZXRlIG5leHRbc2xvdF07XG4gICAgICAgICAgcmV0dXJuIG5leHQ7XG4gICAgICAgIH0pLFxuICAgIH0pLFxuICAgIFtdXG4gICk7XG5cbiAgY29uc3QgeyBwb3J0YWxUYXJnZXRzLCBzbG90SG9zdHMsIHNsb3RIb3N0UmVmcywgZmxvYXRIb3N0UmVmIH0gPVxuICAgIHVzZUZsb2F0YWJsZVBvcnRhbFRhcmdldHMoe1xuICAgICAgc2xvdHM6IFBBTkVMX09SREVSLFxuICAgICAgZmxvYXRhYmxlU2xvdDogU2xvdC5yaWdodFBhbmVsLFxuICAgICAgaXNGbG9hdGluZzogaXNSaWdodFBhbmVsRmxvYXRpbmcsXG4gICAgfSk7XG5cbiAgdXNlR2xvYmFsQ3NzVmFyaWFibGVzKHNsb3RIb3N0cyk7XG5cbiAgLy8gUGFuZWxzIHRoYXQgZXhpc3QgaW4gdGhlIGxheW91dCwgcmVnYXJkbGVzcyBvZiB2aXNpYmlsaXR5LiBEcml2ZXMgdGhlXG4gIC8vIHNvbG8tdnMtcmVzaXphYmxlIGRlY2lzaW9uIGJlbG93IC0ga2V5ZWQgb24gREVDTEFSRUQgKG5vdCBzaG93bikgc28gdGhhdFxuICAvLyBzaG93aW5nL2hpZGluZyBhIHBhbmVsIG5ldmVyIGZsaXBzIHRoZSBtb2RlLlxuICBjb25zdCBkZWNsYXJlZFNsb3RzID0gUEFORUxfT1JERVIuZmlsdGVyKChzbG90KSA9PiBkZWNsYXJlZFtzbG90XSk7XG5cbiAgLy8gU29sbyBtb2RlOiBhIHNpbmdsZSBwYW5lbCBpcyBkZWNsYXJlZCAoZS5nLiBqdXN0IGBDb250ZW50YCwgd2l0aCBub1xuICAvLyBSaWdodFBhbmVsL0xlZnRQYW5lbC9TcGxpdCBpbiB0aGUgdHJlZSkgLSBub3RoaW5nIHRvIHJlc2l6ZSBhZ2FpbnN0LCBzbyBob3N0XG4gIC8vIGl0IGluIGEgcGxhaW4gZGl2IGFuZCBza2lwIHJlYWN0LXJlc2l6YWJsZS1wYW5lbHMgZW50aXJlbHkuIEJlY2F1c2UgdGhlXG4gIC8vIGNoZWNrIGlzIG9uIERFQ0xBUkVEIHBhbmVscywgdG9nZ2xpbmcgYSAqZGVjbGFyZWQqIHBhbmVsJ3MgdmlzaWJpbGl0eSBrZWVwc1xuICAvLyB0aGUgbW9kZSBzdGFibGUsIHNvIGBDb250ZW50YCBpcyBuZXZlciByZW1vdW50ZWQgYnkgYSBzaG93L2hpZGUuIFRoZSBtb2RlXG4gIC8vIG9ubHkgZmxpcHMgd2hlbiBhIHBhbmVsIG1hcmtlciBpcyBhZGRlZCB0byAvIHJlbW92ZWQgZnJvbSB0aGUgdHJlZSAoYVxuICAvLyBzdHJ1Y3R1cmFsIGNoYW5nZSksIHdoZXJlIGEgb25lLXRpbWUgcmVtb3VudCBpcyBhY2NlcHRhYmxlLlxuICBjb25zdCBpc1NvbG8gPSBkZWNsYXJlZFNsb3RzLmxlbmd0aCA8PSAxO1xuICBjb25zdCBzb2xvU2xvdCA9IGRlY2xhcmVkU2xvdHNbMF07XG5cbiAgLy8gY29udGVudCBmbGV4ZXMgKG5vIGZpeGVkIHNpemUpOyBvdGhlcnMgdXNlIHRoZSBkZWNsYXJlZCBkZWZhdWx0LCBmYWxsaW5nXG4gIC8vIGJhY2sgdG8gdGhlIHBlcnNpc3RlZC9jb25maWcgc2l6ZS5cbiAgY29uc3QgZGVmYXVsdFNpemVGb3IgPSAoc2xvdDogU2xvdEtleSk6IFNpemUgfCB1bmRlZmluZWQgPT4ge1xuICAgIGlmIChzbG90ID09PSBTbG90LmNvbnRlbnQpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGRlY2xhcmVkW3Nsb3RdPy5kZWZhdWx0U2l6ZSA/PyBsYXlvdXRTdGF0ZVtzbG90XS5zaXplO1xuICB9O1xuXG4gIC8vIE9ubHkgdGhlIHBhbmVscyB0aGF0IGFyZSBkZWNsYXJlZCBBTkQgKGN1cnJlbnRseSBzaG93biBPUiBtaWQtZXhpdCkuIEFcbiAgLy8gaGlkZGVuLWJ1dC1wcmVzZW50IHNsb3QgbGluZ2VycyBzbyBpdHMgY2xvc2UgYW5pbWF0aW9uIGNhbiBwbGF5OyBvdGhlcndpc2VcbiAgLy8gY2xvc2VkIHBhbmVscyByZXNlcnZlIG5vIHNwYWNlLlxuICBjb25zdCBwYW5lbEl0ZW1zOiBQYW5lbEl0ZW1bXSA9IFBBTkVMX09SREVSLmZpbHRlcihcbiAgICAoc2xvdCkgPT4gZGVjbGFyZWRbc2xvdF0gJiYgKGlzU2hvd24oc2xvdCkgfHwgcHJlc2VudFtzbG90XSlcbiAgKS5tYXAoKHNsb3QpID0+ICh7XG4gICAgaWQ6IHNsb3QsXG4gICAgZGVmYXVsdFNpemU6IGRlZmF1bHRTaXplRm9yKHNsb3QpLFxuICAgIG1pblNpemU6IGRlY2xhcmVkW3Nsb3RdPy5taW5TaXplID8/IGxheW91dFN0YXRlW3Nsb3RdLm1pblNpemUsXG4gICAgbWF4U2l6ZTogZGVjbGFyZWRbc2xvdF0/Lm1heFNpemUgPz8gbGF5b3V0U3RhdGVbc2xvdF0ubWF4U2l6ZSxcbiAgICBjb2xsYXBzaWJsZTogc2xvdCAhPT0gU2xvdC5jb250ZW50ICYmIChkZWNsYXJlZFtzbG90XT8uY29sbGFwc2libGUgPz8gdHJ1ZSksXG4gICAgcmVzaXphYmxlOlxuICAgICAgZGVjbGFyZWRbc2xvdF0/LnJlc2l6YWJsZSA/PyByZXNpemFibGVGcm9tU3RhdGUobGF5b3V0U3RhdGVbc2xvdF0pLFxuICB9KSk7XG5cbiAgLy8gU29sbyBtb2RlIGhvc3RzIHRoZSBsb25lIHBhbmVsIGluIGEgcGxhaW4gZGl2LCBubyByZXNpemFibGUgR3JvdXAuIEEgaGlkZGVuXG4gIC8vIGxvbmUgcGFuZWwgcmVuZGVycyBub3RoaW5nIChDb250ZW50IGlzIGFsd2F5cyBzaG93bikuXG4gIGNvbnN0IHNvbG9Ib3N0ID1cbiAgICBzb2xvU2xvdCAmJiBpc1Nob3duKHNvbG9TbG90KSA/IChcbiAgICAgIDxTdHlsZWRTb2xvSG9zdCByZWY9e3Nsb3RIb3N0UmVmc1tzb2xvU2xvdF19IC8+XG4gICAgKSA6IG51bGw7XG5cbiAgLy8gVGhlIHJlc2l6YWJsZSBHcm91cC4gYGtleWAgPSB0aGUgcGVyc2lzdGVuY2UgbmFtZXNwYWNlOiByZWFjdC1yZXNpemFibGUtcGFuZWxzXG4gIC8vIHJlYWRzIHN0b3JlZCBzaXplcyBvbmx5IG9uIG1vdW50LCBzbyByZW1vdW50IHdoZW4gdGhlIGtleSBjaGFuZ2VzIHRvIGxvYWRcbiAgLy8gdGhhdCBpbnN0YW5jZSdzIHNpemVzIChwZXItcm91dGUgc2l6ZSBtZW1vcnkpLiBUaGUga2V5IG5ldmVyIGNoYW5nZXMgb25cbiAgLy8gcGFuZWwgb3Blbi9jbG9zZSwgc28gbm9ybWFsIHRvZ2dsaW5nIHN0YXlzIHJlbW91bnQtZnJlZS5cbiAgY29uc3QgcGFuZWxHcm91cCA9XG4gICAgcGFuZWxJdGVtcy5sZW5ndGggPiAwID8gKFxuICAgICAgPFBhbmVsXG4gICAgICAgIGtleT17cmVzb2x2ZWRLZXl9XG4gICAgICAgIHBhbmVscz17cGFuZWxJdGVtc31cbiAgICAgICAgcGVyc2lzdGVuY2VLZXk9e3Jlc29sdmVkS2V5fVxuICAgICAgICBzdG9yYWdlPXtyZXNvbHZlZFN0b3JhZ2V9XG4gICAgICAgIGhvc3RGb3I9eyhpZCkgPT4gc2xvdEhvc3RSZWZzW2lkIGFzIFNsb3RLZXldfVxuICAgICAgICBvblJlc2l6ZT17KGlkLCBzaXplKSA9PiBwYW5lbENhbGxiYWNrc1tpZCBhcyBTbG90S2V5XS5yZXNpemUoc2l6ZSl9XG4gICAgICAgIG9uQ29sbGFwc2U9eyhpZCkgPT4gcGFuZWxDYWxsYmFja3NbaWQgYXMgU2xvdEtleV0uaGlkZSgpfVxuICAgICAgICBwYW5lbEhhbmRsZUZvcj17cGFuZWxSZWZDYWxsYmFja3MuaGFuZGxlRm9yfVxuICAgICAgICBwYW5lbEVsZW1lbnRGb3I9e3BhbmVsUmVmQ2FsbGJhY2tzLmVsZW1lbnRGb3J9XG4gICAgICAgIHNob3VsZFN1cHByZXNzTGF5b3V0Q2FsbGJhY2s9e3Nob3VsZFN1cHByZXNzTGF5b3V0Q2FsbGJhY2t9XG4gICAgICAvPlxuICAgICkgOiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPFBhbmVsUmVnaXN0cnlDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtyZWdpc3RyeX0+XG4gICAgICA8UGFuZWxEZWNsYXJhdGlvbnNDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtkZWNsYXJlZH0+XG4gICAgICAgIDxQYW5lbFByZXNlbmNlQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cHJlc2VuY2V9PlxuICAgICAgICAgIDxQYW5lbEFuaW1hdGlvbkNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2FuaW1hdGlvbkNvbnRyb2x9PlxuICAgICAgICAgICAgPExheW91dFBvcnRhbENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3BvcnRhbFRhcmdldHN9PlxuICAgICAgICAgICAgICA8TGF5b3V0RmxvYXREcmFnUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPE1vYmlsZVNwbGl0U3RhY2tDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXttb2JpbGVTcGxpdFN0YWNrfT5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRMYXlvdXQgZGF0YS1kcy1pZD1cIkxheW91dFwiPlxuICAgICAgICAgICAgICAgICAgICB7aXNTb2xvID8gc29sb0hvc3QgOiBwYW5lbEdyb3VwfVxuICAgICAgICAgICAgICAgICAgICB7aXNSaWdodFBhbmVsRmxvYXRpbmcgJiZcbiAgICAgICAgICAgICAgICAgICAgICBsYXlvdXRTdGF0ZVtTbG90LnJpZ2h0UGFuZWxdLnZpc2libGUgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPExheW91dEZsb2F0IGhvc3RSZWY9e2Zsb2F0SG9zdFJlZn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICAgIHtzaG93TW9iaWxlU3BsaXRTdGFjayAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZE1vYmlsZVNwbGl0U3RhY2tIb3N0XG4gICAgICAgICAgICAgICAgICAgICAgICByZWY9e3NldE1vYmlsZVNwbGl0U3RhY2tIb3N0fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8L1N0eWxlZExheW91dD5cbiAgICAgICAgICAgICAgICA8L01vYmlsZVNwbGl0U3RhY2tDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICAgICAgICA8L0xheW91dEZsb2F0RHJhZ1Byb3ZpZGVyPlxuICAgICAgICAgICAgPC9MYXlvdXRQb3J0YWxDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICAgIDwvUGFuZWxBbmltYXRpb25Db250ZXh0LlByb3ZpZGVyPlxuICAgICAgICA8L1BhbmVsUHJlc2VuY2VDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgPC9QYW5lbERlY2xhcmF0aW9uc0NvbnRleHQuUHJvdmlkZXI+XG4gICAgPC9QYW5lbFJlZ2lzdHJ5Q29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFB1YmxpYyBMYXlvdXQgLSB0aGUgcmVzaXphYmxlIHBhbmVsIHJvdyArIGNvbXBvdW5kIHBhcnRzIGFzIHN0YXRpY3MgICAgICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxudHlwZSBMYXlvdXRDb21wb25lbnQgPSB0eXBlb2YgTGF5b3V0QmFzZSAmIHtcbiAgUHJvdmlkZXI6IHR5cGVvZiBMYXlvdXRQcm92aWRlcjtcbiAgTGVmdFBhbmVsOiB0eXBlb2YgTGVmdFBhbmVsO1xuICBMZWZ0UGFuZWxIZWFkZXI6IHR5cGVvZiBMZWZ0UGFuZWxIZWFkZXI7XG4gIExlZnRQYW5lbEZvb3RlcjogdHlwZW9mIExlZnRQYW5lbEZvb3RlcjtcbiAgUmlnaHRQYW5lbDogdHlwZW9mIFJpZ2h0UGFuZWw7XG4gIFJpZ2h0UGFuZWxIZWFkZXI6IHR5cGVvZiBSaWdodFBhbmVsSGVhZGVyO1xuICBSaWdodFBhbmVsRm9vdGVyOiB0eXBlb2YgUmlnaHRQYW5lbEZvb3RlcjtcbiAgQ29udGVudDogdHlwZW9mIENvbnRlbnQ7XG4gIFNwbGl0OiB0eXBlb2YgU3BsaXQ7XG4gIFNwbGl0SGVhZGVyOiB0eXBlb2YgU3BsaXRIZWFkZXI7XG4gIFNwbGl0Rm9vdGVyOiB0eXBlb2YgU3BsaXRGb290ZXI7XG59O1xuXG5leHBvcnQgY29uc3QgTGF5b3V0ID0gTGF5b3V0QmFzZSBhcyBMYXlvdXRDb21wb25lbnQ7XG5cbkxheW91dC5Qcm92aWRlciA9IExheW91dFByb3ZpZGVyO1xuTGF5b3V0LkxlZnRQYW5lbCA9IExlZnRQYW5lbDtcbkxheW91dC5MZWZ0UGFuZWxIZWFkZXIgPSBMZWZ0UGFuZWxIZWFkZXI7XG5MYXlvdXQuTGVmdFBhbmVsRm9vdGVyID0gTGVmdFBhbmVsRm9vdGVyO1xuTGF5b3V0LlJpZ2h0UGFuZWwgPSBSaWdodFBhbmVsO1xuTGF5b3V0LlJpZ2h0UGFuZWxIZWFkZXIgPSBSaWdodFBhbmVsSGVhZGVyO1xuTGF5b3V0LlJpZ2h0UGFuZWxGb290ZXIgPSBSaWdodFBhbmVsRm9vdGVyO1xuTGF5b3V0LkNvbnRlbnQgPSBDb250ZW50O1xuTGF5b3V0LlNwbGl0ID0gU3BsaXQ7XG5MYXlvdXQuU3BsaXRIZWFkZXIgPSBTcGxpdEhlYWRlcjtcbkxheW91dC5TcGxpdEZvb3RlciA9IFNwbGl0Rm9vdGVyO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThHdUIifQ== */"),StyledMobileSplitStackHost=(0,_styled.default)("div",{target:"e1w0fcrp2",label:"StyledMobileSplitStackHost"})({position:"absolute",inset:0,overflow:"hidden",pointerEvents:"none"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L0xheW91dC50c3giLCJzb3VyY2VzIjpbInNyYy9jb21wb25lbnRzL0xheW91dC9MYXlvdXQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwge1xuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBQYW5lbEltcGVyYXRpdmVIYW5kbGUgfSBmcm9tIFwicmVhY3QtcmVzaXphYmxlLXBhbmVsc1wiO1xuaW1wb3J0IHsgUGFuZWwgfSBmcm9tIFwiLi4vSW50ZXJuYWwvUGFuZWwvUGFuZWxcIjtcbmltcG9ydCB0eXBlIHsgUGFuZWxJdGVtIH0gZnJvbSBcIi4uL0ludGVybmFsL1BhbmVsL1BhbmVsXCI7XG5pbXBvcnQgeyBMYXlvdXRGbG9hdCB9IGZyb20gXCIuLi9JbnRlcm5hbC9MYXlvdXRGbG9hdC9MYXlvdXRGbG9hdFwiO1xuaW1wb3J0IHsgdXNlQnJlYWtwb2ludHMgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZUJyZWFrcG9pbnRzXCI7XG5pbXBvcnQgeyBQQU5FTF9PUkRFUiwgUEFORUxfV0lEVEhfVkFSLCBTbG90IH0gZnJvbSBcIi4vLWNvbnN0YW50c1wiO1xuaW1wb3J0IHsgdXNlTGF5b3V0UGFuZWxzRW5hYmxlZCwgdXNlTGF5b3V0UGVyc2lzdGVuY2UgfSBmcm9tIFwiLi9jb250ZXh0XCI7XG5pbXBvcnQge1xuICBNb2JpbGVTcGxpdFN0YWNrQ29udGV4dCxcbiAgdHlwZSBNb2JpbGVTcGxpdFN0YWNrVmFsdWUsXG59IGZyb20gXCIuL1NwbGl0L01vYmlsZVNwbGl0Vmlldy91c2VNb2JpbGVTcGxpdFN0YWNrXCI7XG5pbXBvcnQgeyB1c2VNb2JpbGVTcGxpdFZpZXdFbmFibGVkIH0gZnJvbSBcIi4vU3BsaXQvTW9iaWxlU3BsaXRWaWV3L3VzZU1vYmlsZVNwbGl0Vmlld1wiO1xuaW1wb3J0IHsgTGF5b3V0UHJvdmlkZXIgfSBmcm9tIFwiLi9MYXlvdXRQcm92aWRlclwiO1xuaW1wb3J0IHsgQ29udGVudCB9IGZyb20gXCIuL0NvbnRlbnQvQ29udGVudFwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbCB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbFwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbEhlYWRlciB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbEhlYWRlclwiO1xuaW1wb3J0IHsgUmlnaHRQYW5lbEZvb3RlciB9IGZyb20gXCIuL1JpZ2h0UGFuZWwvUmlnaHRQYW5lbEZvb3RlclwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbFwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsSGVhZGVyIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbEhlYWRlclwiO1xuaW1wb3J0IHsgTGVmdFBhbmVsRm9vdGVyIH0gZnJvbSBcIi4vTGVmdFBhbmVsL0xlZnRQYW5lbEZvb3RlclwiO1xuaW1wb3J0IHsgU3BsaXQgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdFwiO1xuaW1wb3J0IHsgU3BsaXRIZWFkZXIgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdEhlYWRlclwiO1xuaW1wb3J0IHsgU3BsaXRGb290ZXIgfSBmcm9tIFwiLi9TcGxpdC9TcGxpdEZvb3RlclwiO1xuaW1wb3J0IHtcbiAgTGF5b3V0UG9ydGFsQ29udGV4dCxcbiAgUGFuZWxSZWdpc3RyeUNvbnRleHQsXG4gIFBhbmVsRGVjbGFyYXRpb25zQ29udGV4dCxcbiAgUGFuZWxQcmVzZW5jZUNvbnRleHQsXG4gIFBhbmVsQW5pbWF0aW9uQ29udGV4dCxcbiAgdHlwZSBQb3J0YWxUYXJnZXRzLFxuICB0eXBlIFBhbmVsUmVnLFxuICB0eXBlIFBhbmVsUmVnaXN0cnksXG4gIHR5cGUgUGFuZWxQcmVzZW5jZSxcbiAgdHlwZSBQYW5lbEFuaW1hdGlvbkNvbnRyb2wsXG59IGZyb20gXCIuL3JlZ2lzdHJ5XCI7XG5pbXBvcnQgeyB1c2VGbG9hdGFibGVQb3J0YWxUYXJnZXRzIH0gZnJvbSBcIi4vdXNlRmxvYXRhYmxlUG9ydGFsVGFyZ2V0c1wiO1xuaW1wb3J0IHsgTGF5b3V0RmxvYXREcmFnUHJvdmlkZXIgfSBmcm9tIFwiLi4vSW50ZXJuYWwvTGF5b3V0RmxvYXQvTGF5b3V0RmxvYXREcmFnUHJvdmlkZXJcIjtcbmltcG9ydCB7IHVzZUxheW91dFZhciwgdHlwZSBMYXlvdXRWYXJIYW5kbGUgfSBmcm9tIFwiLi9MYXlvdXRDc3NWYXJzXCI7XG5pbXBvcnQgeyB1c2VMYXlvdXQgfSBmcm9tIFwiLi91c2VMYXlvdXRcIjtcbmltcG9ydCB0eXBlIHsgTGF5b3V0UHJvcHMsIExheW91dFN0YXRlLCBTaXplLCBTbG90S2V5IH0gZnJvbSBcIi4vLXR5cGVzXCI7XG5cbi8vIE9ubHkgdGhlIHNpZGUgcGFuZWxzIGNhcnJ5IGByZXNpemFibGVgIGluIHN0YXRlIChpdCBjb21lcyBmcm9tIHRoZSBwcm92aWRlclxuLy8gY29uZmlnKTsgdGhlIGNvbnRlbnQvc3BsaXR2aWV3IHNsb3RzIHRha2UgaXQgZnJvbSB0aGVpciBkZWNsYXJhdGlvbiBhbG9uZS5cbmNvbnN0IHJlc2l6YWJsZUZyb21TdGF0ZSA9IChcbiAgc2xvdFN0YXRlOiBMYXlvdXRTdGF0ZVtTbG90S2V5XVxuKTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9PlxuICBzbG90U3RhdGUua2luZCA9PT0gXCJzaWRlUGFuZWxcIiA/IHNsb3RTdGF0ZS5yZXNpemFibGUgOiB1bmRlZmluZWQ7XG5cbi8qKlxuICogUHVibGlzaGVzIGVhY2ggcGFuZWwncyBsaXZlIHBpeGVsIHdpZHRoIGFzIGEgbGF5b3V0IENTUyB2YXIgKGUuZy5cbiAqIGAtLWRzLWxheW91dC1yaWdodFBhbmVsLXdpZHRoYCksIHRyYWNraW5nIGRyYWctIGFuZCB3aW5kb3ctcmVzaXplcy4gQSBoaWRkZW5cbiAqIHBhcnQgKG5vIGhvc3Qgbm9kZSkgcmVhZHMgYDBweGAsIHNvIHRoZSB2YXIgaXMgYWx3YXlzIGRlZmluZWQuIE9uZVxuICogYHVzZUxheW91dFZhcmAgcGVyIHNsb3QgaW4gYFBBTkVMX1dJRFRIX1ZBUmAuXG4gKi9cbmNvbnN0IHVzZUdsb2JhbENzc1ZhcmlhYmxlcyA9IChzbG90SG9zdHM6IFBvcnRhbFRhcmdldHMpOiB2b2lkID0+IHtcbiAgY29uc3QgY29udGVudFdpZHRoQ3NzVmFyID0gdXNlTGF5b3V0VmFyKFBBTkVMX1dJRFRIX1ZBUi5jb250ZW50KTtcbiAgY29uc3QgcmlnaHRQYW5lbFdpZHRoQ3NzVmFyID0gdXNlTGF5b3V0VmFyKFBBTkVMX1dJRFRIX1ZBUi5yaWdodFBhbmVsKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHRhcmdldHM6IFtTbG90S2V5LCBMYXlvdXRWYXJIYW5kbGVdW10gPSBbXG4gICAgICBbU2xvdC5jb250ZW50LCBjb250ZW50V2lkdGhDc3NWYXJdLFxuICAgICAgW1Nsb3QucmlnaHRQYW5lbCwgcmlnaHRQYW5lbFdpZHRoQ3NzVmFyXSxcbiAgICBdO1xuICAgIGNvbnN0IG9ic2VydmVyczogUmVzaXplT2JzZXJ2ZXJbXSA9IFtdO1xuXG4gICAgdGFyZ2V0cy5mb3JFYWNoKChbc2xvdCwgaGFuZGxlXSkgPT4ge1xuICAgICAgY29uc3Qgbm9kZSA9IHNsb3RIb3N0c1tzbG90XSA/PyBudWxsO1xuICAgICAgaWYgKCFub2RlKSB7XG4gICAgICAgIGhhbmRsZS5zZXQoXCIwcHhcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHB1Ymxpc2hOb2RlV2lkdGggPSAoKTogdm9pZCA9PlxuICAgICAgICBoYW5kbGUuc2V0KGAke25vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGh9cHhgKTtcbiAgICAgIHB1Ymxpc2hOb2RlV2lkdGgoKTtcbiAgICAgIC8vIGpzZG9tIChhbmQgb2xkIGJyb3dzZXJzKSBsYWNrIFJlc2l6ZU9ic2VydmVyIOKAlCBza2lwIGxpdmUgdHJhY2tpbmcgdGhlcmUuXG4gICAgICBpZiAodHlwZW9mIFJlc2l6ZU9ic2VydmVyID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm47XG4gICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihwdWJsaXNoTm9kZVdpZHRoKTtcbiAgICAgIG9ic2VydmVyLm9ic2VydmUobm9kZSk7XG4gICAgICBvYnNlcnZlcnMucHVzaChvYnNlcnZlcik7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4gb2JzZXJ2ZXJzLmZvckVhY2goKG9ic2VydmVyKSA9PiBvYnNlcnZlci5kaXNjb25uZWN0KCkpO1xuICB9LCBbY29udGVudFdpZHRoQ3NzVmFyLCByaWdodFBhbmVsV2lkdGhDc3NWYXIsIHNsb3RIb3N0c10pO1xufTtcblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIExheW91dCAtIHJlZ2lzdHJ5ICsgaG9zdHM7IG1hcmtlcnMgZGVjbGFyZS9wb3J0YWw7IHRoZSByZXNpemFibGUgcGFuZWwgcm93ICAgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbi8vIGBwb3NpdGlvbjogcmVsYXRpdmVgIGFuY2hvcnMgdGhlIGFic29sdXRlbHktcG9zaXRpb25lZCBzcGxpdCBzdGFjayBob3N0IGFuZFxuLy8gdGhlIGZsb2F0aW5nIHdpbmRvdy4gT3ZlcmZsb3cgaXMgbGVmdCB1bnRvdWNoZWQgKHZpc2libGUpIHNvIGEgcGFnZSByZWx5aW5nXG4vLyBvbiBkb2N1bWVudC9hbmNlc3RvciBzY3JvbGxpbmcgaXMgdW5hZmZlY3RlZCAtIHRoZSBvZmZzY3JlZW4gc3BsaXQgbGF5ZXJzIGFyZVxuLy8gY2xpcHBlZCBieSB0aGVpciBvd24gaG9zdCBiZWxvdywgbm90IGhlcmUuXG5jb25zdCBTdHlsZWRMYXlvdXQgPSBzdHlsZWQuZGl2KHtcbiAgcG9zaXRpb246IFwicmVsYXRpdmVcIixcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgd2lkdGg6IFwiMTAwJVwiLFxufSk7XG5cbi8vIFNvbG8tbW9kZSBob3N0OiBhIGxvbmUgcGFuZWwgKG5vIHJlc2l6YWJsZSBzaWJsaW5nKSBpcyBob3N0ZWQgaGVyZSBpbnN0ZWFkIG9mXG4vLyBpbnNpZGUgcmVhY3QtcmVzaXphYmxlLXBhbmVscy4gTWF0Y2hlcyB0aGUgcGVyLXBhbmVsIGhvc3QgdGhlIEdyb3VwIHJlbmRlcnNcbi8vIChgcmVsYXRpdmVgICsgZnVsbC1ibGVlZCkgc28gY29udGVudCByZWZsb3dzL3Njcm9sbHMgaWRlbnRpY2FsbHkgZWl0aGVyIHdheS5cbmNvbnN0IFN0eWxlZFNvbG9Ib3N0ID0gc3R5bGVkLmRpdih7XG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIGhlaWdodDogXCIxMDAlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG4vLyBGdWxsLWFyZWEgb3ZlcmxheSBhdCB0aGUgbGF5b3V0IHJvb3QgdGhhdCBob3N0cyB0aGUgbW9iaWxlIHNwbGl0IHN0YWNrLiBUaGVcbi8vIGxhc3QgY2hpbGQgb2YgYFN0eWxlZExheW91dGAsIHNvIGl0IHN0YWNrcyBhYm92ZSB0aGUgcGFuZWwgcm93OyBgY29udGVudGAgYW5kXG4vLyB0aGUgc3BsaXQgdmlld3MgcG9ydGFsIHRoZWlyIHNsaWRpbmcgbGF5ZXJzIGluIGhlcmUuIGBwb2ludGVyLWV2ZW50czogbm9uZWBcbi8vIHNvIGl0IG5ldmVyIGJsb2NrcyB0aGUgbGF5b3V0IGJlbmVhdGggLSBlYWNoIGxheWVyIHJlLWVuYWJsZXMgZXZlbnRzIHdoZW5cbi8vIGl0J3MgdGhlIGFjdGl2ZSAoZnJvbnQpIHZpZXcuIGBvdmVyZmxvdzogaGlkZGVuYCBjbGlwcyB0aGUgaW5hY3RpdmUgbGF5ZXJzJ1xuLy8gb2Zmc2NyZWVuIHJlc3RpbmcgcG9zaXRpb24gKHRyYW5zbGF0ZVggcGFzdCB0aGUgZWRnZSkgc28gdGhleSBkb24ndCB3aWRlblxuLy8gdGhlIHBhZ2UgLSBzY29wZWQgaGVyZSwgbm90IG9uIHRoZSByb290LCBzbyBpdCBuZXZlciBhZmZlY3RzIHBhZ2Ugc2Nyb2xsaW5nLlxuY29uc3QgU3R5bGVkTW9iaWxlU3BsaXRTdGFja0hvc3QgPSBzdHlsZWQuZGl2KHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgaW5zZXQ6IDAsXG4gIG92ZXJmbG93OiBcImhpZGRlblwiLFxuICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbn0pO1xuXG5mdW5jdGlvbiBMYXlvdXRCYXNlKHtcbiAgY2hpbGRyZW4sXG4gIHBlcnNpc3RlbmNlS2V5LFxuICBzdG9yYWdlLFxufTogTGF5b3V0UHJvcHMpOiBSZWFjdC5SZWFjdEVsZW1lbnQge1xuICBjb25zdCBbZGVjbGFyZWQsIHNldERlY2xhcmVkXSA9IHVzZVN0YXRlPFBhcnRpYWw8UmVjb3JkPFNsb3RLZXksIFBhbmVsUmVnPj4+KFxuICAgIHt9XG4gICk7XG4gIGNvbnN0IHsgc3RhdGU6IGxheW91dFN0YXRlLCAuLi5wYW5lbENhbGxiYWNrcyB9ID0gdXNlTGF5b3V0KCk7XG4gIGNvbnN0IHBlcnNpc3RlbmNlID0gdXNlTGF5b3V0UGVyc2lzdGVuY2UoKTtcbiAgY29uc3QgcmVzb2x2ZWRLZXkgPSBwZXJzaXN0ZW5jZUtleSA/PyBwZXJzaXN0ZW5jZS5wZXJzaXN0ZW5jZUtleTtcbiAgY29uc3QgcmVzb2x2ZWRTdG9yYWdlID0gc3RvcmFnZSA/PyBwZXJzaXN0ZW5jZS5zdG9yYWdlO1xuXG4gIC8vIEJlbG93IHRoZSBtb2JpbGUgYnJlYWtwb2ludCB0aGUgcmlnaHRQYW5lbCByZW5kZXJzIGFzIGEgYm90dG9tIHNoZWV0IChpdHNcbiAgLy8gbWFya2VyIHJlbmRlcnMgdGhlIFNoZWV0IGl0c2VsZikgLSBhbiBhdXRvbWF0aWMsIHJlbmRlci1sZXZlbCBhZGFwdGF0aW9uLlxuICAvLyBUaGUgc3RvcmVkIHZhcmlhbnQgaXMgdW50b3VjaGVkLCBzbyByZXNpemluZyBiYWNrIHRvIGRlc2t0b3AgcmVzdG9yZXMgdGhlXG4gIC8vIGV4YWN0IHByZXNlbnRhdGlvbiAoZG9ja2VkIG9yIGZsb2F0aW5nKSB0aGUgdXNlciBsZWZ0LlxuICBjb25zdCB7IGlzTW9iaWxlIH0gPSB1c2VCcmVha3BvaW50cygpO1xuICBjb25zdCBpc1JpZ2h0UGFuZWxTaGVldCA9IGlzTW9iaWxlO1xuXG4gIC8vIFRoZSBtb2JpbGUgc3BsaXQgc3RhY2sncyBzaGFyZWQgc3RhdGUsIHNjb3BlZCB0byB0aGlzIExheW91dDogdGhlIGhvc3RcbiAgLy8gZWxlbWVudCBtYXJrZXJzIHBvcnRhbCBpbnRvIChvbmx5IHJlbmRlcmVkIHdoaWxlIHRoZSBzdGFjayBhcHBsaWVzIHRvIHRoZVxuICAvLyB2aWV3cG9ydCkgYW5kIGhvdyBtYW55IHNwbGl0IHZpZXdzIGFyZSBtb3VudGVkIChhIGNvdW50IHRvbGVyYXRlcyB0cmFuc2llbnRcbiAgLy8gZG91YmxlLW1vdW50cykuIGBjb250ZW50YCByZWFkcyBwcmVzZW5jZSB0byBkZWNpZGUgd2hldGhlciB0byBqb2luIHRoZVxuICAvLyBzdGFjazsgYm90aCBhcmUgcHVibGlzaGVkIHRvZ2V0aGVyIHZpYSBNb2JpbGVTcGxpdFN0YWNrQ29udGV4dC5cbiAgY29uc3Qgc2hvd01vYmlsZVNwbGl0U3RhY2sgPSB1c2VNb2JpbGVTcGxpdFZpZXdFbmFibGVkKCk7XG4gIGNvbnN0IFttb2JpbGVTcGxpdFN0YWNrSG9zdCwgc2V0TW9iaWxlU3BsaXRTdGFja0hvc3RdID1cbiAgICB1c2VTdGF0ZTxIVE1MRWxlbWVudCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBbc3BsaXRDb3VudCwgc2V0U3BsaXRDb3VudF0gPSB1c2VTdGF0ZSgwKTtcbiAgY29uc3QgcmVnaXN0ZXJTcGxpdCA9IHVzZUNhbGxiYWNrPFxuICAgIE1vYmlsZVNwbGl0U3RhY2tWYWx1ZVtcInJlZ2lzdGVyU3BsaXRcIl1cbiAgPigoKSA9PiB7XG4gICAgc2V0U3BsaXRDb3VudCgoY291bnQpID0+IGNvdW50ICsgMSk7XG4gICAgcmV0dXJuICgpID0+IHNldFNwbGl0Q291bnQoKGNvdW50KSA9PiBjb3VudCAtIDEpO1xuICB9LCBbXSk7XG4gIGNvbnN0IG1vYmlsZVNwbGl0U3RhY2sgPSB1c2VNZW1vPE1vYmlsZVNwbGl0U3RhY2tWYWx1ZT4oXG4gICAgKCkgPT4gKHtcbiAgICAgIGhvc3Q6IG1vYmlsZVNwbGl0U3RhY2tIb3N0LFxuICAgICAgaXNTcGxpdFByZXNlbnQ6IHNwbGl0Q291bnQgPiAwLFxuICAgICAgcmVnaXN0ZXJTcGxpdCxcbiAgICB9KSxcbiAgICBbbW9iaWxlU3BsaXRTdGFja0hvc3QsIHNwbGl0Q291bnQsIHJlZ2lzdGVyU3BsaXRdXG4gICk7XG5cbiAgLy8gQSBmbG9hdGluZyByaWdodFBhbmVsIHN0YXlzIHZpc2libGUgKGl0cyBtYXJrZXIga2VlcHMgcmVuZGVyaW5nIGNvbnRlbnQpXG4gIC8vIGJ1dCBsZWF2ZXMgdGhlIHJlc2l6YWJsZSByb3cgLSBleGFjdGx5IGxpa2UgYSBoaWRkZW4gcGFuZWwgZG9lcy4gVGhlXG4gIC8vIG1vYmlsZSBzaGVldCB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgdGhlIGZsb2F0LiBGbG9hdCBpcyBhXG4gIC8vIGRlc2t0b3AgcHJlc2VudGF0aW9uLCBzbyBvbmx5IG1vZGUgYHRydWVgIGVuYWJsZXMgaXQuIFRoZSBzdG9yZSdzIHZhcmlhbnRcbiAgLy8gc3RhcnRzIHVuc2V0OyB0aGUgbWFya2VyJ3MgZGVjbGFyZWQgYHZhcmlhbnRgIHByb3AgaXMgdGhlIGluaXRpYWxcbiAgLy8gcHJlc2VudGF0aW9uIHVudGlsIHRoZSBmaXJzdCBgc2V0VmFyaWFudGAgd3JpdGVzIHRvIHRoZSBzdG9yZS5cbiAgY29uc3QgcGFuZWxzRW5hYmxlZCA9IHVzZUxheW91dFBhbmVsc0VuYWJsZWQoKTtcbiAgY29uc3QgcmlnaHRQYW5lbFZhcmlhbnQgPVxuICAgIGxheW91dFN0YXRlW1Nsb3QucmlnaHRQYW5lbF0udmFyaWFudCA/P1xuICAgIGRlY2xhcmVkW1Nsb3QucmlnaHRQYW5lbF0/LnZhcmlhbnQgPz9cbiAgICBcInNpZGViYXJcIjtcbiAgY29uc3QgaXNSaWdodFBhbmVsRmxvYXRpbmcgPVxuICAgIHBhbmVsc0VuYWJsZWQgPT09IHRydWUgJiZcbiAgICAhaXNSaWdodFBhbmVsU2hlZXQgJiZcbiAgICByaWdodFBhbmVsVmFyaWFudCA9PT0gXCJmbG9hdFwiO1xuXG4gIGNvbnN0IGlzU2hvd24gPSAoc2xvdDogU2xvdEtleSk6IGJvb2xlYW4gPT5cbiAgICBsYXlvdXRTdGF0ZVtzbG90XS52aXNpYmxlICYmXG4gICAgIShzbG90ID09PSBTbG90LnJpZ2h0UGFuZWwgJiYgKGlzUmlnaHRQYW5lbEZsb2F0aW5nIHx8IGlzUmlnaHRQYW5lbFNoZWV0KSk7XG5cbiAgLy8gU2xvdHMga2VwdCBtb3VudGVkIHRocm91Z2ggdGhlaXIgZXhpdCBhbmltYXRpb24gKHJlcG9ydGVkIHZpYVxuICAvLyBgdXNlUGFuZWxQcmVzZW5jZWApLiBBIHByZXNlbnQtYnV0LWhpZGRlbiBzbG90IHN0YXlzIGluIHRoZSByb3cgc28gaXRzXG4gIC8vIGNsb3NlIGFuaW1hdGlvbiBjYW4gcGxheTsgaXQncyByZW1vdmVkIG9uY2UgcHJlc2VuY2UgZmxpcHMgZmFsc2UuXG4gIGNvbnN0IFtwcmVzZW50LCBzZXRQcmVzZW50XSA9IHVzZVN0YXRlPFBhcnRpYWw8UmVjb3JkPFNsb3RLZXksIGJvb2xlYW4+Pj4oe30pO1xuICBjb25zdCBwcmVzZW5jZSA9IHVzZU1lbW88UGFuZWxQcmVzZW5jZT4oXG4gICAgKCkgPT4gKHtcbiAgICAgIHNldFByZXNlbnQ6IChzbG90LCBpc1ByZXNlbnQpID0+XG4gICAgICAgIHNldFByZXNlbnQoKHByZXYpID0+XG4gICAgICAgICAgcHJldltzbG90XSA9PT0gaXNQcmVzZW50ID8gcHJldiA6IHsgLi4ucHJldiwgW3Nsb3RdOiBpc1ByZXNlbnQgfVxuICAgICAgICApLFxuICAgIH0pLFxuICAgIFtdXG4gICk7XG5cbiAgLy8gQW5pbWF0aW9uIGNvbnRyb2wgZm9yIHRoZSBkb2NrZWQgc2lkZSBwYW5lbHMnIG9wZW4vY2xvc2Ugd2lkdGggc2xpZGUuIEFsbFxuICAvLyByZWYtYmFzZWQgb24gcHVycG9zZTogcmVnaXN0ZXJpbmcgaGFuZGxlcy9lbGVtZW50cyBhbmQgdG9nZ2xpbmcgc3VwcHJlc3Npb25cbiAgLy8gaGFwcGVuIGR1cmluZyBjb21taXRzIGFuZCBwZXItZnJhbWUgLSBub25lIG9mIGl0IG1heSByZS1yZW5kZXIgdGhlIExheW91dC5cbiAgY29uc3QgcGFuZWxIYW5kbGVzID0gdXNlUmVmPFxuICAgIFBhcnRpYWw8UmVjb3JkPFNsb3RLZXksIFBhbmVsSW1wZXJhdGl2ZUhhbmRsZSB8IG51bGw+PlxuICA+KHt9KTtcbiAgY29uc3QgcGFuZWxFbGVtZW50cyA9IHVzZVJlZjxQYXJ0aWFsPFJlY29yZDxTbG90S2V5LCBIVE1MRWxlbWVudCB8IG51bGw+Pj4oXG4gICAge31cbiAgKTtcbiAgY29uc3QgcmVzaXplU3VwcHJlc3NlZCA9IHVzZVJlZjxQYXJ0aWFsPFJlY29yZDxTbG90S2V5LCBib29sZWFuPj4+KHt9KTtcbiAgY29uc3QgYW5pbWF0aW9uQ29udHJvbCA9IHVzZU1lbW88UGFuZWxBbmltYXRpb25Db250cm9sPihcbiAgICAoKSA9PiAoe1xuICAgICAgc2V0SGFuZGxlOiAoc2xvdCwgaGFuZGxlKSA9PiB7XG4gICAgICAgIHBhbmVsSGFuZGxlcy5jdXJyZW50W3Nsb3RdID0gaGFuZGxlO1xuICAgICAgfSxcbiAgICAgIGdldEhhbmRsZTogKHNsb3QpID0+IHBhbmVsSGFuZGxlcy5jdXJyZW50W3Nsb3RdID8/IG51bGwsXG4gICAgICBzZXRFbGVtZW50OiAoc2xvdCwgZWxlbWVudCkgPT4ge1xuICAgICAgICBwYW5lbEVsZW1lbnRzLmN1cnJlbnRbc2xvdF0gPSBlbGVtZW50O1xuICAgICAgfSxcbiAgICAgIGdldEVsZW1lbnQ6IChzbG90KSA9PiBwYW5lbEVsZW1lbnRzLmN1cnJlbnRbc2xvdF0gPz8gbnVsbCxcbiAgICAgIHNldFJlc2l6ZVN1cHByZXNzZWQ6IChzbG90LCBzdXBwcmVzc2VkKSA9PiB7XG4gICAgICAgIHJlc2l6ZVN1cHByZXNzZWQuY3VycmVudFtzbG90XSA9IHN1cHByZXNzZWQ7XG4gICAgICB9LFxuICAgIH0pLFxuICAgIFtdXG4gICk7XG4gIC8vIFN0YWJsZSBwZXItc2xvdCByZWYgY2FsbGJhY2tzIC0gYSBmcmVzaCBjYWxsYmFjayBpZGVudGl0eSBwZXIgcmVuZGVyIHdvdWxkXG4gIC8vIG1ha2UgUmVhY3QgZGV0YWNoL3JlYXR0YWNoIHRoZSByZWZzIG9uIGV2ZXJ5IExheW91dCByZS1yZW5kZXIuXG4gIGNvbnN0IHBhbmVsUmVmQ2FsbGJhY2tzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlQ2FsbGJhY2tzID0gbmV3IE1hcDxcbiAgICAgIHN0cmluZyxcbiAgICAgIChoYW5kbGU6IFBhbmVsSW1wZXJhdGl2ZUhhbmRsZSB8IG51bGwpID0+IHZvaWRcbiAgICA+KCk7XG4gICAgY29uc3QgZWxlbWVudENhbGxiYWNrcyA9IG5ldyBNYXA8XG4gICAgICBzdHJpbmcsXG4gICAgICAoZWxlbWVudDogSFRNTERpdkVsZW1lbnQgfCBudWxsKSA9PiB2b2lkXG4gICAgPigpO1xuICAgIHJldHVybiB7XG4gICAgICBoYW5kbGVGb3I6IChpZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGxldCBjYWxsYmFjayA9IGhhbmRsZUNhbGxiYWNrcy5nZXQoaWQpO1xuICAgICAgICBpZiAoIWNhbGxiYWNrKSB7XG4gICAgICAgICAgY2FsbGJhY2sgPSAoaGFuZGxlKSA9PlxuICAgICAgICAgICAgYW5pbWF0aW9uQ29udHJvbC5zZXRIYW5kbGUoaWQgYXMgU2xvdEtleSwgaGFuZGxlKTtcbiAgICAgICAgICBoYW5kbGVDYWxsYmFja3Muc2V0KGlkLCBjYWxsYmFjayk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNhbGxiYWNrO1xuICAgICAgfSxcbiAgICAgIGVsZW1lbnRGb3I6IChpZDogc3RyaW5nKSA9PiB7XG4gICAgICAgIGxldCBjYWxsYmFjayA9IGVsZW1lbnRDYWxsYmFja3MuZ2V0KGlkKTtcbiAgICAgICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgICAgIGNhbGxiYWNrID0gKGVsZW1lbnQpID0+XG4gICAgICAgICAgICBhbmltYXRpb25Db250cm9sLnNldEVsZW1lbnQoaWQgYXMgU2xvdEtleSwgZWxlbWVudCk7XG4gICAgICAgICAgZWxlbWVudENhbGxiYWNrcy5zZXQoaWQsIGNhbGxiYWNrKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2FsbGJhY2s7XG4gICAgICB9LFxuICAgIH07XG4gIH0sIFthbmltYXRpb25Db250cm9sXSk7XG4gIGNvbnN0IHNob3VsZFN1cHByZXNzTGF5b3V0Q2FsbGJhY2sgPSB1c2VDYWxsYmFjayhcbiAgICAoKSA9PiBPYmplY3QudmFsdWVzKHJlc2l6ZVN1cHByZXNzZWQuY3VycmVudCkuc29tZShCb29sZWFuKSxcbiAgICBbXVxuICApO1xuXG4gIGNvbnN0IHJlZ2lzdHJ5ID0gdXNlTWVtbzxQYW5lbFJlZ2lzdHJ5PihcbiAgICAoKSA9PiAoe1xuICAgICAgcmVnaXN0ZXI6IChzbG90LCByZWcpID0+XG4gICAgICAgIHNldERlY2xhcmVkKChwcmV2KSA9PiAoeyAuLi5wcmV2LCBbc2xvdF06IHJlZyB9KSksXG4gICAgICB1bnJlZ2lzdGVyOiAoc2xvdCkgPT5cbiAgICAgICAgc2V0RGVjbGFyZWQoKHByZXYpID0+IHtcbiAgICAgICAgICBpZiAoIShzbG90IGluIHByZXYpKSByZXR1cm4gcHJldjtcbiAgICAgICAgICBjb25zdCBuZXh0ID0geyAuLi5wcmV2IH07XG4gICAgICAgICAgZGVsZXRlIG5leHRbc2xvdF07XG4gICAgICAgICAgcmV0dXJuIG5leHQ7XG4gICAgICAgIH0pLFxuICAgIH0pLFxuICAgIFtdXG4gICk7XG5cbiAgY29uc3QgeyBwb3J0YWxUYXJnZXRzLCBzbG90SG9zdHMsIHNsb3RIb3N0UmVmcywgZmxvYXRIb3N0UmVmIH0gPVxuICAgIHVzZUZsb2F0YWJsZVBvcnRhbFRhcmdldHMoe1xuICAgICAgc2xvdHM6IFBBTkVMX09SREVSLFxuICAgICAgZmxvYXRhYmxlU2xvdDogU2xvdC5yaWdodFBhbmVsLFxuICAgICAgaXNGbG9hdGluZzogaXNSaWdodFBhbmVsRmxvYXRpbmcsXG4gICAgfSk7XG5cbiAgdXNlR2xvYmFsQ3NzVmFyaWFibGVzKHNsb3RIb3N0cyk7XG5cbiAgLy8gUGFuZWxzIHRoYXQgZXhpc3QgaW4gdGhlIGxheW91dCwgcmVnYXJkbGVzcyBvZiB2aXNpYmlsaXR5LiBEcml2ZXMgdGhlXG4gIC8vIHNvbG8tdnMtcmVzaXphYmxlIGRlY2lzaW9uIGJlbG93IC0ga2V5ZWQgb24gREVDTEFSRUQgKG5vdCBzaG93bikgc28gdGhhdFxuICAvLyBzaG93aW5nL2hpZGluZyBhIHBhbmVsIG5ldmVyIGZsaXBzIHRoZSBtb2RlLlxuICBjb25zdCBkZWNsYXJlZFNsb3RzID0gUEFORUxfT1JERVIuZmlsdGVyKChzbG90KSA9PiBkZWNsYXJlZFtzbG90XSk7XG5cbiAgLy8gU29sbyBtb2RlOiBhIHNpbmdsZSBwYW5lbCBpcyBkZWNsYXJlZCAoZS5nLiBqdXN0IGBDb250ZW50YCwgd2l0aCBub1xuICAvLyBSaWdodFBhbmVsL0xlZnRQYW5lbC9TcGxpdCBpbiB0aGUgdHJlZSkgLSBub3RoaW5nIHRvIHJlc2l6ZSBhZ2FpbnN0LCBzbyBob3N0XG4gIC8vIGl0IGluIGEgcGxhaW4gZGl2IGFuZCBza2lwIHJlYWN0LXJlc2l6YWJsZS1wYW5lbHMgZW50aXJlbHkuIEJlY2F1c2UgdGhlXG4gIC8vIGNoZWNrIGlzIG9uIERFQ0xBUkVEIHBhbmVscywgdG9nZ2xpbmcgYSAqZGVjbGFyZWQqIHBhbmVsJ3MgdmlzaWJpbGl0eSBrZWVwc1xuICAvLyB0aGUgbW9kZSBzdGFibGUsIHNvIGBDb250ZW50YCBpcyBuZXZlciByZW1vdW50ZWQgYnkgYSBzaG93L2hpZGUuIFRoZSBtb2RlXG4gIC8vIG9ubHkgZmxpcHMgd2hlbiBhIHBhbmVsIG1hcmtlciBpcyBhZGRlZCB0byAvIHJlbW92ZWQgZnJvbSB0aGUgdHJlZSAoYVxuICAvLyBzdHJ1Y3R1cmFsIGNoYW5nZSksIHdoZXJlIGEgb25lLXRpbWUgcmVtb3VudCBpcyBhY2NlcHRhYmxlLlxuICBjb25zdCBpc1NvbG8gPSBkZWNsYXJlZFNsb3RzLmxlbmd0aCA8PSAxO1xuICBjb25zdCBzb2xvU2xvdCA9IGRlY2xhcmVkU2xvdHNbMF07XG5cbiAgLy8gY29udGVudCBmbGV4ZXMgKG5vIGZpeGVkIHNpemUpOyBvdGhlcnMgdXNlIHRoZSBkZWNsYXJlZCBkZWZhdWx0LCBmYWxsaW5nXG4gIC8vIGJhY2sgdG8gdGhlIHBlcnNpc3RlZC9jb25maWcgc2l6ZS5cbiAgY29uc3QgZGVmYXVsdFNpemVGb3IgPSAoc2xvdDogU2xvdEtleSk6IFNpemUgfCB1bmRlZmluZWQgPT4ge1xuICAgIGlmIChzbG90ID09PSBTbG90LmNvbnRlbnQpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIGRlY2xhcmVkW3Nsb3RdPy5kZWZhdWx0U2l6ZSA/PyBsYXlvdXRTdGF0ZVtzbG90XS5zaXplO1xuICB9O1xuXG4gIC8vIE9ubHkgdGhlIHBhbmVscyB0aGF0IGFyZSBkZWNsYXJlZCBBTkQgKGN1cnJlbnRseSBzaG93biBPUiBtaWQtZXhpdCkuIEFcbiAgLy8gaGlkZGVuLWJ1dC1wcmVzZW50IHNsb3QgbGluZ2VycyBzbyBpdHMgY2xvc2UgYW5pbWF0aW9uIGNhbiBwbGF5OyBvdGhlcndpc2VcbiAgLy8gY2xvc2VkIHBhbmVscyByZXNlcnZlIG5vIHNwYWNlLlxuICBjb25zdCBwYW5lbEl0ZW1zOiBQYW5lbEl0ZW1bXSA9IFBBTkVMX09SREVSLmZpbHRlcihcbiAgICAoc2xvdCkgPT4gZGVjbGFyZWRbc2xvdF0gJiYgKGlzU2hvd24oc2xvdCkgfHwgcHJlc2VudFtzbG90XSlcbiAgKS5tYXAoKHNsb3QpID0+ICh7XG4gICAgaWQ6IHNsb3QsXG4gICAgZGVmYXVsdFNpemU6IGRlZmF1bHRTaXplRm9yKHNsb3QpLFxuICAgIG1pblNpemU6IGRlY2xhcmVkW3Nsb3RdPy5taW5TaXplID8/IGxheW91dFN0YXRlW3Nsb3RdLm1pblNpemUsXG4gICAgbWF4U2l6ZTogZGVjbGFyZWRbc2xvdF0/Lm1heFNpemUgPz8gbGF5b3V0U3RhdGVbc2xvdF0ubWF4U2l6ZSxcbiAgICBjb2xsYXBzaWJsZTogc2xvdCAhPT0gU2xvdC5jb250ZW50ICYmIChkZWNsYXJlZFtzbG90XT8uY29sbGFwc2libGUgPz8gdHJ1ZSksXG4gICAgcmVzaXphYmxlOlxuICAgICAgZGVjbGFyZWRbc2xvdF0/LnJlc2l6YWJsZSA/PyByZXNpemFibGVGcm9tU3RhdGUobGF5b3V0U3RhdGVbc2xvdF0pLFxuICB9KSk7XG5cbiAgLy8gU29sbyBtb2RlIGhvc3RzIHRoZSBsb25lIHBhbmVsIGluIGEgcGxhaW4gZGl2LCBubyByZXNpemFibGUgR3JvdXAuIEEgaGlkZGVuXG4gIC8vIGxvbmUgcGFuZWwgcmVuZGVycyBub3RoaW5nIChDb250ZW50IGlzIGFsd2F5cyBzaG93bikuXG4gIGNvbnN0IHNvbG9Ib3N0ID1cbiAgICBzb2xvU2xvdCAmJiBpc1Nob3duKHNvbG9TbG90KSA/IChcbiAgICAgIDxTdHlsZWRTb2xvSG9zdCByZWY9e3Nsb3RIb3N0UmVmc1tzb2xvU2xvdF19IC8+XG4gICAgKSA6IG51bGw7XG5cbiAgLy8gVGhlIHJlc2l6YWJsZSBHcm91cC4gYGtleWAgPSB0aGUgcGVyc2lzdGVuY2UgbmFtZXNwYWNlOiByZWFjdC1yZXNpemFibGUtcGFuZWxzXG4gIC8vIHJlYWRzIHN0b3JlZCBzaXplcyBvbmx5IG9uIG1vdW50LCBzbyByZW1vdW50IHdoZW4gdGhlIGtleSBjaGFuZ2VzIHRvIGxvYWRcbiAgLy8gdGhhdCBpbnN0YW5jZSdzIHNpemVzIChwZXItcm91dGUgc2l6ZSBtZW1vcnkpLiBUaGUga2V5IG5ldmVyIGNoYW5nZXMgb25cbiAgLy8gcGFuZWwgb3Blbi9jbG9zZSwgc28gbm9ybWFsIHRvZ2dsaW5nIHN0YXlzIHJlbW91bnQtZnJlZS5cbiAgY29uc3QgcGFuZWxHcm91cCA9XG4gICAgcGFuZWxJdGVtcy5sZW5ndGggPiAwID8gKFxuICAgICAgPFBhbmVsXG4gICAgICAgIGtleT17cmVzb2x2ZWRLZXl9XG4gICAgICAgIHBhbmVscz17cGFuZWxJdGVtc31cbiAgICAgICAgcGVyc2lzdGVuY2VLZXk9e3Jlc29sdmVkS2V5fVxuICAgICAgICBzdG9yYWdlPXtyZXNvbHZlZFN0b3JhZ2V9XG4gICAgICAgIGhvc3RGb3I9eyhpZCkgPT4gc2xvdEhvc3RSZWZzW2lkIGFzIFNsb3RLZXldfVxuICAgICAgICBvblJlc2l6ZT17KGlkLCBzaXplKSA9PiBwYW5lbENhbGxiYWNrc1tpZCBhcyBTbG90S2V5XS5yZXNpemUoc2l6ZSl9XG4gICAgICAgIG9uQ29sbGFwc2U9eyhpZCkgPT4gcGFuZWxDYWxsYmFja3NbaWQgYXMgU2xvdEtleV0uaGlkZSgpfVxuICAgICAgICBwYW5lbEhhbmRsZUZvcj17cGFuZWxSZWZDYWxsYmFja3MuaGFuZGxlRm9yfVxuICAgICAgICBwYW5lbEVsZW1lbnRGb3I9e3BhbmVsUmVmQ2FsbGJhY2tzLmVsZW1lbnRGb3J9XG4gICAgICAgIHNob3VsZFN1cHByZXNzTGF5b3V0Q2FsbGJhY2s9e3Nob3VsZFN1cHByZXNzTGF5b3V0Q2FsbGJhY2t9XG4gICAgICAvPlxuICAgICkgOiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPFBhbmVsUmVnaXN0cnlDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtyZWdpc3RyeX0+XG4gICAgICA8UGFuZWxEZWNsYXJhdGlvbnNDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXtkZWNsYXJlZH0+XG4gICAgICAgIDxQYW5lbFByZXNlbmNlQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17cHJlc2VuY2V9PlxuICAgICAgICAgIDxQYW5lbEFuaW1hdGlvbkNvbnRleHQuUHJvdmlkZXIgdmFsdWU9e2FuaW1hdGlvbkNvbnRyb2x9PlxuICAgICAgICAgICAgPExheW91dFBvcnRhbENvbnRleHQuUHJvdmlkZXIgdmFsdWU9e3BvcnRhbFRhcmdldHN9PlxuICAgICAgICAgICAgICA8TGF5b3V0RmxvYXREcmFnUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgPE1vYmlsZVNwbGl0U3RhY2tDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXttb2JpbGVTcGxpdFN0YWNrfT5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRMYXlvdXQgZGF0YS1kcy1pZD1cIkxheW91dFwiPlxuICAgICAgICAgICAgICAgICAgICB7aXNTb2xvID8gc29sb0hvc3QgOiBwYW5lbEdyb3VwfVxuICAgICAgICAgICAgICAgICAgICB7aXNSaWdodFBhbmVsRmxvYXRpbmcgJiZcbiAgICAgICAgICAgICAgICAgICAgICBsYXlvdXRTdGF0ZVtTbG90LnJpZ2h0UGFuZWxdLnZpc2libGUgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPExheW91dEZsb2F0IGhvc3RSZWY9e2Zsb2F0SG9zdFJlZn0gLz5cbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgICAgICAgIHtzaG93TW9iaWxlU3BsaXRTdGFjayAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPFN0eWxlZE1vYmlsZVNwbGl0U3RhY2tIb3N0XG4gICAgICAgICAgICAgICAgICAgICAgICByZWY9e3NldE1vYmlsZVNwbGl0U3RhY2tIb3N0fVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8L1N0eWxlZExheW91dD5cbiAgICAgICAgICAgICAgICA8L01vYmlsZVNwbGl0U3RhY2tDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICAgICAgICA8L0xheW91dEZsb2F0RHJhZ1Byb3ZpZGVyPlxuICAgICAgICAgICAgPC9MYXlvdXRQb3J0YWxDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgICAgIDwvUGFuZWxBbmltYXRpb25Db250ZXh0LlByb3ZpZGVyPlxuICAgICAgICA8L1BhbmVsUHJlc2VuY2VDb250ZXh0LlByb3ZpZGVyPlxuICAgICAgPC9QYW5lbERlY2xhcmF0aW9uc0NvbnRleHQuUHJvdmlkZXI+XG4gICAgPC9QYW5lbFJlZ2lzdHJ5Q29udGV4dC5Qcm92aWRlcj5cbiAgKTtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cbi8qIFB1YmxpYyBMYXlvdXQgLSB0aGUgcmVzaXphYmxlIHBhbmVsIHJvdyArIGNvbXBvdW5kIHBhcnRzIGFzIHN0YXRpY3MgICAgICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxudHlwZSBMYXlvdXRDb21wb25lbnQgPSB0eXBlb2YgTGF5b3V0QmFzZSAmIHtcbiAgUHJvdmlkZXI6IHR5cGVvZiBMYXlvdXRQcm92aWRlcjtcbiAgTGVmdFBhbmVsOiB0eXBlb2YgTGVmdFBhbmVsO1xuICBMZWZ0UGFuZWxIZWFkZXI6IHR5cGVvZiBMZWZ0UGFuZWxIZWFkZXI7XG4gIExlZnRQYW5lbEZvb3RlcjogdHlwZW9mIExlZnRQYW5lbEZvb3RlcjtcbiAgUmlnaHRQYW5lbDogdHlwZW9mIFJpZ2h0UGFuZWw7XG4gIFJpZ2h0UGFuZWxIZWFkZXI6IHR5cGVvZiBSaWdodFBhbmVsSGVhZGVyO1xuICBSaWdodFBhbmVsRm9vdGVyOiB0eXBlb2YgUmlnaHRQYW5lbEZvb3RlcjtcbiAgQ29udGVudDogdHlwZW9mIENvbnRlbnQ7XG4gIFNwbGl0OiB0eXBlb2YgU3BsaXQ7XG4gIFNwbGl0SGVhZGVyOiB0eXBlb2YgU3BsaXRIZWFkZXI7XG4gIFNwbGl0Rm9vdGVyOiB0eXBlb2YgU3BsaXRGb290ZXI7XG59O1xuXG5leHBvcnQgY29uc3QgTGF5b3V0ID0gTGF5b3V0QmFzZSBhcyBMYXlvdXRDb21wb25lbnQ7XG5cbkxheW91dC5Qcm92aWRlciA9IExheW91dFByb3ZpZGVyO1xuTGF5b3V0LkxlZnRQYW5lbCA9IExlZnRQYW5lbDtcbkxheW91dC5MZWZ0UGFuZWxIZWFkZXIgPSBMZWZ0UGFuZWxIZWFkZXI7XG5MYXlvdXQuTGVmdFBhbmVsRm9vdGVyID0gTGVmdFBhbmVsRm9vdGVyO1xuTGF5b3V0LlJpZ2h0UGFuZWwgPSBSaWdodFBhbmVsO1xuTGF5b3V0LlJpZ2h0UGFuZWxIZWFkZXIgPSBSaWdodFBhbmVsSGVhZGVyO1xuTGF5b3V0LlJpZ2h0UGFuZWxGb290ZXIgPSBSaWdodFBhbmVsRm9vdGVyO1xuTGF5b3V0LkNvbnRlbnQgPSBDb250ZW50O1xuTGF5b3V0LlNwbGl0ID0gU3BsaXQ7XG5MYXlvdXQuU3BsaXRIZWFkZXIgPSBTcGxpdEhlYWRlcjtcbkxheW91dC5TcGxpdEZvb3RlciA9IFNwbGl0Rm9vdGVyO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJIbUMifQ== */"),Layout=function({children,persistenceKey,storage}){let[declared,setDeclared]=(0,_react.useState)({}),{state:layoutState,...panelCallbacks}=(0,_useLayout.useLayout)(),persistence=(0,_context.useLayoutPersistence)(),resolvedKey=persistenceKey??persistence.persistenceKey,resolvedStorage=storage??persistence.storage,{isMobile}=(0,_useBreakpoints.useBreakpoints)(),showMobileSplitStack=(0,_useMobileSplitView.useMobileSplitViewEnabled)(),[mobileSplitStackHost,setMobileSplitStackHost]=(0,_react.useState)(null),[splitCount,setSplitCount]=(0,_react.useState)(0),registerSplit=(0,_react.useCallback)(()=>(setSplitCount(count=>count+1),()=>setSplitCount(count=>count-1)),[]),mobileSplitStack=(0,_react.useMemo)(()=>({host:mobileSplitStackHost,isSplitPresent:splitCount>0,registerSplit}),[mobileSplitStackHost,splitCount,registerSplit]),panelsEnabled=(0,_context.useLayoutPanelsEnabled)(),rightPanelVariant=layoutState[_constants.Slot.rightPanel].variant??declared[_constants.Slot.rightPanel]?.variant??"sidebar",isRightPanelFloating=!0===panelsEnabled&&!isMobile&&"float"===rightPanelVariant,isShown=slot=>layoutState[slot].visible&&!(slot===_constants.Slot.rightPanel&&(isRightPanelFloating||isMobile)),[present,setPresent]=(0,_react.useState)({}),presence=(0,_react.useMemo)(()=>({setPresent:(slot,isPresent)=>setPresent(prev=>prev[slot]===isPresent?prev:{...prev,[slot]:isPresent})}),[]),panelHandles=(0,_react.useRef)({}),panelElements=(0,_react.useRef)({}),resizeSuppressed=(0,_react.useRef)({}),animationControl=(0,_react.useMemo)(()=>({setHandle:(slot,handle)=>{panelHandles.current[slot]=handle},getHandle:slot=>panelHandles.current[slot]??null,setElement:(slot,element)=>{panelElements.current[slot]=element},getElement:slot=>panelElements.current[slot]??null,setResizeSuppressed:(slot,suppressed)=>{resizeSuppressed.current[slot]=suppressed}}),[]),panelRefCallbacks=(0,_react.useMemo)(()=>{let handleCallbacks=new Map,elementCallbacks=new Map;return{handleFor:id=>{let callback=handleCallbacks.get(id);return callback||(callback=handle=>animationControl.setHandle(id,handle),handleCallbacks.set(id,callback)),callback},elementFor:id=>{let callback=elementCallbacks.get(id);return callback||(callback=element=>animationControl.setElement(id,element),elementCallbacks.set(id,callback)),callback}}},[animationControl]),shouldSuppressLayoutCallback=(0,_react.useCallback)(()=>Object.values(resizeSuppressed.current).some(Boolean),[]),registry=(0,_react.useMemo)(()=>({register:(slot,reg)=>setDeclared(prev=>({...prev,[slot]:reg})),unregister:slot=>setDeclared(prev=>{if(!(slot in prev))return prev;let next={...prev};return delete next[slot],next})}),[]),{portalTargets,slotHosts,slotHostRefs,floatHostRef}=(0,_useFloatablePortalTargets.useFloatablePortalTargets)({slots:_constants.PANEL_ORDER,floatableSlot:_constants.Slot.rightPanel,isFloating:isRightPanelFloating});useGlobalCssVariables(slotHosts);let declaredSlots=_constants.PANEL_ORDER.filter(slot=>declared[slot]),isSolo=declaredSlots.length<=1,soloSlot=declaredSlots[0],defaultSizeFor=slot=>{if(slot!==_constants.Slot.content)return declared[slot]?.defaultSize??layoutState[slot].size},panelItems=_constants.PANEL_ORDER.filter(slot=>declared[slot]&&(isShown(slot)||present[slot])).map(slot=>({id:slot,defaultSize:defaultSizeFor(slot),minSize:declared[slot]?.minSize??layoutState[slot].minSize,maxSize:declared[slot]?.maxSize??layoutState[slot].maxSize,collapsible:slot!==_constants.Slot.content&&(declared[slot]?.collapsible??!0),resizable:declared[slot]?.resizable??resizableFromState(layoutState[slot])})),soloHost=soloSlot&&isShown(soloSlot)?_react.default.createElement(StyledSoloHost,{ref:slotHostRefs[soloSlot]}):null,panelGroup=panelItems.length>0?_react.default.createElement(_Panel.Panel,{key:resolvedKey,panels:panelItems,persistenceKey:resolvedKey,storage:resolvedStorage,hostFor:id=>slotHostRefs[id],onResize:(id,size)=>panelCallbacks[id].resize(size),onCollapse:id=>panelCallbacks[id].hide(),panelHandleFor:panelRefCallbacks.handleFor,panelElementFor:panelRefCallbacks.elementFor,shouldSuppressLayoutCallback:shouldSuppressLayoutCallback}):null;return _react.default.createElement(_registry.PanelRegistryContext.Provider,{value:registry},_react.default.createElement(_registry.PanelDeclarationsContext.Provider,{value:declared},_react.default.createElement(_registry.PanelPresenceContext.Provider,{value:presence},_react.default.createElement(_registry.PanelAnimationContext.Provider,{value:animationControl},_react.default.createElement(_registry.LayoutPortalContext.Provider,{value:portalTargets},_react.default.createElement(_LayoutFloatDragProvider.LayoutFloatDragProvider,null,_react.default.createElement(_useMobileSplitStack.MobileSplitStackContext.Provider,{value:mobileSplitStack},_react.default.createElement(StyledLayout,{"data-ds-id":"Layout"},isSolo?soloHost:panelGroup,isRightPanelFloating&&layoutState[_constants.Slot.rightPanel].visible&&_react.default.createElement(_LayoutFloat.LayoutFloat,{hostRef:floatHostRef}),children,showMobileSplitStack&&_react.default.createElement(StyledMobileSplitStackHost,{ref:setMobileSplitStackHost})))))))))};Layout.Provider=_LayoutProvider.LayoutProvider,Layout.LeftPanel=_LeftPanel.LeftPanel,Layout.LeftPanelHeader=_LeftPanelHeader.LeftPanelHeader,Layout.LeftPanelFooter=_LeftPanelFooter.LeftPanelFooter,Layout.RightPanel=_RightPanel.RightPanel,Layout.RightPanelHeader=_RightPanelHeader.RightPanelHeader,Layout.RightPanelFooter=_RightPanelFooter.RightPanelFooter,Layout.Content=_Content.Content,Layout.Split=_Split.Split,Layout.SplitHeader=_SplitHeader.SplitHeader,Layout.SplitFooter=_SplitFooter.SplitFooter;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"LeftPanel",{enumerable:!0,get:function(){return LeftPanel}});const _react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_default")._(require("react")),_useBreakpoints=require("../../../shared/useBreakpoints"),_constants=require("../-constants"),_registry=require("../registry"),_useLayout=require("../useLayout"),_context=require("../context"),_LeftPanelDocked=require("./LeftPanelDocked"),_LeftPanelDrawer=require("./LeftPanelDrawer"),LeftPanel=({children,defaultSize,minSize,maxSize,collapsible=!0,onVisibleChange,"aria-label":ariaLabel})=>{let{isMobile}=(0,_useBreakpoints.useBreakpoints)(),{isVisible,hide}=(0,_useLayout.useLayout)()[_constants.Slot.leftPanel],canRender=(0,_context.useCanRenderPanel)();return((0,_registry.useVisibleChange)(isVisible,onVisibleChange),canRender)?isMobile?_react.default.createElement(_LeftPanelDrawer.LeftPanelDrawer,{isVisible:isVisible,hide:hide,"aria-label":ariaLabel},children):_react.default.createElement(_LeftPanelDocked.LeftPanelDocked,{"aria-label":ariaLabel,defaultSize:defaultSize,minSize:minSize,maxSize:maxSize,collapsible:collapsible},children):null};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"LeftPanel",{enumerable:!0,get:function(){return LeftPanel}});const _react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_default")._(require("react")),_useBreakpoints=require("../../../shared/useBreakpoints"),_constants=require("../-constants"),_registry=require("../registry"),_useLayout=require("../useLayout"),_context=require("../context"),_LeftPanelDocked=require("./LeftPanelDocked"),_LeftPanelDrawer=require("./LeftPanelDrawer"),LeftPanel=({children,defaultSize,minSize,maxSize,collapsible=!0,resizable,onVisibleChange,"aria-label":ariaLabel})=>{let{isMobile}=(0,_useBreakpoints.useBreakpoints)(),{isVisible,hide}=(0,_useLayout.useLayout)()[_constants.Slot.leftPanel],canRender=(0,_context.useCanRenderPanel)();return((0,_registry.useVisibleChange)(isVisible,onVisibleChange),canRender)?isMobile?_react.default.createElement(_LeftPanelDrawer.LeftPanelDrawer,{isVisible:isVisible,hide:hide,"aria-label":ariaLabel},children):_react.default.createElement(_LeftPanelDocked.LeftPanelDocked,{"aria-label":ariaLabel,defaultSize:defaultSize,minSize:minSize,maxSize:maxSize,collapsible:collapsible,resizable:resizable},children):null};
@@ -7,6 +7,7 @@ export type LeftPanelDockedProps = {
7
7
  minSize?: Size;
8
8
  maxSize?: Size;
9
9
  collapsible?: boolean;
10
+ resizable?: boolean;
10
11
  };
11
12
  /**
12
13
  * Docked (desktop) left panel. Declares the `leftPanel` slot and portals its
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"LeftPanelDocked",{enumerable:!0,get:function(){return LeftPanelDocked}});const _react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_default")._(require("react")),_constants=require("../-constants"),_registry=require("../registry"),_usePanelDockedSlide=require("../usePanelDockedSlide"),_PanelSlideBody=require("../PanelSlideBody"),_PanelContainer=require("../PanelContainer"),LeftPanelDocked=({children,"aria-label":ariaLabel,defaultSize,minSize,maxSize,collapsible=!0})=>{let{isMounted,pinnedWidth}=(0,_usePanelDockedSlide.usePanelDockedSlide)({slot:_constants.Slot.leftPanel,defaultSize,minSize,maxSize,collapsible});return(0,_registry.useLayoutPortal)(_constants.Slot.leftPanel,isMounted?_react.default.createElement(_PanelSlideBody.PanelSlideBody,{anchor:"right",pinnedWidth:pinnedWidth},_react.default.createElement(_PanelContainer.PanelContainer,{"aria-label":ariaLabel},children)):null)};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"LeftPanelDocked",{enumerable:!0,get:function(){return LeftPanelDocked}});const _react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_default")._(require("react")),_constants=require("../-constants"),_registry=require("../registry"),_usePanelDockedSlide=require("../usePanelDockedSlide"),_PanelSlideBody=require("../PanelSlideBody"),_PanelContainer=require("../PanelContainer"),LeftPanelDocked=({children,"aria-label":ariaLabel,defaultSize,minSize,maxSize,collapsible=!0,resizable})=>{let{isMounted,pinnedWidth}=(0,_usePanelDockedSlide.usePanelDockedSlide)({slot:_constants.Slot.leftPanel,defaultSize,minSize,maxSize,collapsible,resizable});return(0,_registry.useLayoutPortal)(_constants.Slot.leftPanel,isMounted?_react.default.createElement(_PanelSlideBody.PanelSlideBody,{anchor:"right",pinnedWidth:pinnedWidth},_react.default.createElement(_PanelContainer.PanelContainer,{showBorderRight:!0,"aria-label":ariaLabel},children)):null)};
@@ -6,4 +6,4 @@ import type { PanelContainerProps } from "./-types";
6
6
  * (`Layout.LeftPanelHeader` etc.) render anywhere among `children` and stick
7
7
  * to the edges; everything else scrolls.
8
8
  */
9
- export declare function PanelContainer({ children, "aria-label": ariaLabel, scrollContainerRef, onScroll, showBorderLeft, "data-e2e-test-id": dataE2eTestId, }: PanelContainerProps): React.ReactElement;
9
+ export declare function PanelContainer({ children, "aria-label": ariaLabel, scrollContainerRef, onScroll, showBorderLeft, showBorderRight, "data-e2e-test-id": dataE2eTestId, }: PanelContainerProps): React.ReactElement;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"PanelContainer",{enumerable:!0,get:function(){return PanelContainer}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/_interop_require_default._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_Sandwich=require("../Internal/Sandwich/Sandwich"),_Container=require("../Container/Container"),CustomContainer=(0,_styled.default)(_Container.Container,{shouldForwardProp:prop=>"showBorderLeft"!==prop,target:"e1wvnxfu0",label:"CustomContainer"})(({theme,showBorderLeft})=>({height:"100%",borderLeft:showBorderLeft?`1px solid ${theme.values.color.border.secondary.default}`:void 0}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L1BhbmVsQ29udGFpbmVyLnRzeCIsInNvdXJjZXMiOlsic3JjL2NvbXBvbmVudHMvTGF5b3V0L1BhbmVsQ29udGFpbmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IFNhbmR3aWNoIH0gZnJvbSBcIi4uL0ludGVybmFsL1NhbmR3aWNoL1NhbmR3aWNoXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBQYW5lbENvbnRhaW5lclByb3BzIH0gZnJvbSBcIi4vLXR5cGVzXCI7XG5cbmNvbnN0IEJPUkRFUl9XSURUSCA9IDE7XG5cbmNvbnN0IEN1c3RvbUNvbnRhaW5lciA9IHN0eWxlZChDb250YWluZXIsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IChwcm9wKSA9PiBwcm9wICE9PSBcInNob3dCb3JkZXJMZWZ0XCIsXG59KTx7XG4gIHJvbGU/OiBSZWFjdC5BcmlhUm9sZTtcbiAgXCJhcmlhLWxhYmVsXCI/OiBzdHJpbmc7XG4gIHNob3dCb3JkZXJMZWZ0OiBib29sZWFuO1xufT4oKHsgdGhlbWUsIHNob3dCb3JkZXJMZWZ0IH0pID0+ICh7XG4gIGhlaWdodDogXCIxMDAlXCIsXG4gIGJvcmRlckxlZnQ6IHNob3dCb3JkZXJMZWZ0XG4gICAgPyBgJHtCT1JERVJfV0lEVEh9cHggc29saWQgJHt0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLnNlY29uZGFyeS5kZWZhdWx0fWBcbiAgICA6IHVuZGVmaW5lZCxcbn0pKTtcblxuLyoqXG4gKiBTaGFyZWQgc2hlbGwgb2YgZXZlcnkgbGF5b3V0IHBhbmVsOiBhIGZsYXQsIHNxdWFyZS1jb3JuZXJlZCBDb250YWluZXJcbiAqIGhvc3Rpbmcgb25lIHNjcm9sbGFibGUgcmVnaW9uLiBQYW5lbCBoZWFkZXIvZm9vdGVyIGNvbXBvbmVudHNcbiAqIChgTGF5b3V0LkxlZnRQYW5lbEhlYWRlcmAgZXRjLikgcmVuZGVyIGFueXdoZXJlIGFtb25nIGBjaGlsZHJlbmAgYW5kIHN0aWNrXG4gKiB0byB0aGUgZWRnZXM7IGV2ZXJ5dGhpbmcgZWxzZSBzY3JvbGxzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gUGFuZWxDb250YWluZXIoe1xuICBjaGlsZHJlbixcbiAgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCxcbiAgc2Nyb2xsQ29udGFpbmVyUmVmLFxuICBvblNjcm9sbCxcbiAgc2hvd0JvcmRlckxlZnQgPSBmYWxzZSxcbiAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG59OiBQYW5lbENvbnRhaW5lclByb3BzKTogUmVhY3QuUmVhY3RFbGVtZW50IHtcbiAgcmV0dXJuIChcbiAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICBlbGV2YXRpb249ezB9XG4gICAgICBzcXVhcmVDb3JuZXJzXG4gICAgICByb2xlPXthcmlhTGFiZWwgPyBcInJlZ2lvblwiIDogdW5kZWZpbmVkfVxuICAgICAgYXJpYS1sYWJlbD17YXJpYUxhYmVsfVxuICAgICAgc2hvd0JvcmRlckxlZnQ9e3Nob3dCb3JkZXJMZWZ0fVxuICAgICAgZGF0YS1kcy1pZD1cIlBhbmVsQ29udGFpbmVyXCJcbiAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgPlxuICAgICAgPFNhbmR3aWNoIHNjcm9sbFJlZj17c2Nyb2xsQ29udGFpbmVyUmVmfSBvblNjcm9sbD17b25TY3JvbGx9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L1NhbmR3aWNoPlxuICAgIDwvQ3VzdG9tQ29udGFpbmVyPlxuICApO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVF3QiJ9 */");function PanelContainer({children,"aria-label":ariaLabel,scrollContainerRef,onScroll,showBorderLeft=!1,"data-e2e-test-id":dataE2eTestId}){return _react.default.createElement(CustomContainer,{elevation:0,squareCorners:!0,role:ariaLabel?"region":void 0,"aria-label":ariaLabel,showBorderLeft:showBorderLeft,"data-ds-id":"PanelContainer","data-e2e-test-id":dataE2eTestId},_react.default.createElement(_Sandwich.Sandwich,{scrollRef:scrollContainerRef,onScroll:onScroll},children))}
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"PanelContainer",{enumerable:!0,get:function(){return PanelContainer}});const _interop_require_default=require("@swc/helpers/_/_interop_require_default"),_react=/*#__PURE__*/_interop_require_default._(require("react")),_styled=/*#__PURE__*/_interop_require_default._(require("@emotion/styled")),_Sandwich=require("../Internal/Sandwich/Sandwich"),_Container=require("../Container/Container"),CustomContainer=(0,_styled.default)(_Container.Container,{shouldForwardProp:prop=>"showBorderLeft"!==prop&&"showBorderRight"!==prop,target:"e1ypgo8f0",label:"CustomContainer"})(({theme,showBorderLeft,showBorderRight})=>({height:"100%",borderLeft:showBorderLeft?`1px solid ${theme.values.color.border.secondary.default}`:void 0,borderRight:showBorderRight?`1px solid ${theme.values.color.border.secondary.default}`:void 0}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvTGF5b3V0L1BhbmVsQ29udGFpbmVyLnRzeCIsInNvdXJjZXMiOlsic3JjL2NvbXBvbmVudHMvTGF5b3V0L1BhbmVsQ29udGFpbmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgc3R5bGVkIGZyb20gXCJAZW1vdGlvbi9zdHlsZWRcIjtcbmltcG9ydCB7IFNhbmR3aWNoIH0gZnJvbSBcIi4uL0ludGVybmFsL1NhbmR3aWNoL1NhbmR3aWNoXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBQYW5lbENvbnRhaW5lclByb3BzIH0gZnJvbSBcIi4vLXR5cGVzXCI7XG5cbmNvbnN0IEJPUkRFUl9XSURUSCA9IDE7XG5cbmNvbnN0IEN1c3RvbUNvbnRhaW5lciA9IHN0eWxlZChDb250YWluZXIsIHtcbiAgc2hvdWxkRm9yd2FyZFByb3A6IChwcm9wKSA9PlxuICAgIHByb3AgIT09IFwic2hvd0JvcmRlckxlZnRcIiAmJiBwcm9wICE9PSBcInNob3dCb3JkZXJSaWdodFwiLFxufSk8e1xuICByb2xlPzogUmVhY3QuQXJpYVJvbGU7XG4gIFwiYXJpYS1sYWJlbFwiPzogc3RyaW5nO1xuICBzaG93Qm9yZGVyTGVmdDogYm9vbGVhbjtcbiAgc2hvd0JvcmRlclJpZ2h0OiBib29sZWFuO1xufT4oKHsgdGhlbWUsIHNob3dCb3JkZXJMZWZ0LCBzaG93Qm9yZGVyUmlnaHQgfSkgPT4gKHtcbiAgaGVpZ2h0OiBcIjEwMCVcIixcbiAgYm9yZGVyTGVmdDogc2hvd0JvcmRlckxlZnRcbiAgICA/IGAke0JPUkRFUl9XSURUSH1weCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuc2Vjb25kYXJ5LmRlZmF1bHR9YFxuICAgIDogdW5kZWZpbmVkLFxuICBib3JkZXJSaWdodDogc2hvd0JvcmRlclJpZ2h0XG4gICAgPyBgJHtCT1JERVJfV0lEVEh9cHggc29saWQgJHt0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLnNlY29uZGFyeS5kZWZhdWx0fWBcbiAgICA6IHVuZGVmaW5lZCxcbn0pKTtcblxuLyoqXG4gKiBTaGFyZWQgc2hlbGwgb2YgZXZlcnkgbGF5b3V0IHBhbmVsOiBhIGZsYXQsIHNxdWFyZS1jb3JuZXJlZCBDb250YWluZXJcbiAqIGhvc3Rpbmcgb25lIHNjcm9sbGFibGUgcmVnaW9uLiBQYW5lbCBoZWFkZXIvZm9vdGVyIGNvbXBvbmVudHNcbiAqIChgTGF5b3V0LkxlZnRQYW5lbEhlYWRlcmAgZXRjLikgcmVuZGVyIGFueXdoZXJlIGFtb25nIGBjaGlsZHJlbmAgYW5kIHN0aWNrXG4gKiB0byB0aGUgZWRnZXM7IGV2ZXJ5dGhpbmcgZWxzZSBzY3JvbGxzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gUGFuZWxDb250YWluZXIoe1xuICBjaGlsZHJlbixcbiAgXCJhcmlhLWxhYmVsXCI6IGFyaWFMYWJlbCxcbiAgc2Nyb2xsQ29udGFpbmVyUmVmLFxuICBvblNjcm9sbCxcbiAgc2hvd0JvcmRlckxlZnQgPSBmYWxzZSxcbiAgc2hvd0JvcmRlclJpZ2h0ID0gZmFsc2UsXG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxufTogUGFuZWxDb250YWluZXJQcm9wcyk6IFJlYWN0LlJlYWN0RWxlbWVudCB7XG4gIHJldHVybiAoXG4gICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgZWxldmF0aW9uPXswfVxuICAgICAgc3F1YXJlQ29ybmVyc1xuICAgICAgcm9sZT17YXJpYUxhYmVsID8gXCJyZWdpb25cIiA6IHVuZGVmaW5lZH1cbiAgICAgIGFyaWEtbGFiZWw9e2FyaWFMYWJlbH1cbiAgICAgIHNob3dCb3JkZXJMZWZ0PXtzaG93Qm9yZGVyTGVmdH1cbiAgICAgIHNob3dCb3JkZXJSaWdodD17c2hvd0JvcmRlclJpZ2h0fVxuICAgICAgZGF0YS1kcy1pZD1cIlBhbmVsQ29udGFpbmVyXCJcbiAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgPlxuICAgICAgPFNhbmR3aWNoIHNjcm9sbFJlZj17c2Nyb2xsQ29udGFpbmVyUmVmfSBvblNjcm9sbD17b25TY3JvbGx9PlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L1NhbmR3aWNoPlxuICAgIDwvQ3VzdG9tQ29udGFpbmVyPlxuICApO1xufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVF3QiJ9 */");function PanelContainer({children,"aria-label":ariaLabel,scrollContainerRef,onScroll,showBorderLeft=!1,showBorderRight=!1,"data-e2e-test-id":dataE2eTestId}){return _react.default.createElement(CustomContainer,{elevation:0,squareCorners:!0,role:ariaLabel?"region":void 0,"aria-label":ariaLabel,showBorderLeft:showBorderLeft,showBorderRight:showBorderRight,"data-ds-id":"PanelContainer","data-e2e-test-id":dataE2eTestId},_react.default.createElement(_Sandwich.Sandwich,{scrollRef:scrollContainerRef,onScroll:onScroll},children))}
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"RightPanel",{enumerable:!0,get:function(){return RightPanel}});const _react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_default")._(require("react")),_constants=require("../-constants"),_registry=require("../registry"),_useLayout=require("../useLayout"),_context=require("../context"),_useBreakpoints=require("../../../shared/useBreakpoints"),_RightPanelDocked=require("./RightPanelDocked"),_RightPanelSheet=require("./RightPanelSheet"),RightPanel=({children,defaultSize=378,minSize=328,maxSize="30%",collapsible=!1,variant="sidebar",onVisibleChange,onVariantChange,"aria-label":ariaLabel,scrollContainerRef,onScroll})=>{let{state:layoutState,[_constants.Slot.rightPanel]:panel}=(0,_useLayout.useLayout)(),{isVisible,hide}=panel,{isMobile}=(0,_useBreakpoints.useBreakpoints)(),canRender=(0,_context.useCanRenderPanel)();(0,_registry.useDeclarePanel)(_constants.Slot.rightPanel,{defaultSize,minSize,maxSize,collapsible,variant});let resolvedVariant=layoutState[_constants.Slot.rightPanel].variant??variant;return((0,_registry.useRunCallbackOnValueChange)(isVisible,onVisibleChange),(0,_registry.useRunCallbackOnValueChange)(resolvedVariant,onVariantChange),canRender)?isMobile?_react.default.createElement(_RightPanelSheet.RightPanelSheet,{isVisible:isVisible,hide:hide,"aria-label":ariaLabel,scrollContainerRef:scrollContainerRef,onScroll:onScroll},children):_react.default.createElement(_RightPanelDocked.RightPanelDocked,{isVisible:isVisible,variant:resolvedVariant,"aria-label":ariaLabel,scrollContainerRef:scrollContainerRef,onScroll:onScroll},children):null};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"RightPanel",{enumerable:!0,get:function(){return RightPanel}});const _react=/*#__PURE__*/require("@swc/helpers/_/_interop_require_default")._(require("react")),_constants=require("../-constants"),_registry=require("../registry"),_useLayout=require("../useLayout"),_context=require("../context"),_useBreakpoints=require("../../../shared/useBreakpoints"),_RightPanelDocked=require("./RightPanelDocked"),_RightPanelSheet=require("./RightPanelSheet"),RightPanel=({children,defaultSize=378,minSize=328,maxSize="30%",collapsible=!1,resizable,variant="sidebar",onVisibleChange,onVariantChange,"aria-label":ariaLabel,scrollContainerRef,onScroll})=>{let{state:layoutState,[_constants.Slot.rightPanel]:panel}=(0,_useLayout.useLayout)(),{isVisible,hide}=panel,{isMobile}=(0,_useBreakpoints.useBreakpoints)(),canRender=(0,_context.useCanRenderPanel)();(0,_registry.useDeclarePanel)(_constants.Slot.rightPanel,{defaultSize,minSize,maxSize,collapsible,resizable,variant});let resolvedVariant=layoutState[_constants.Slot.rightPanel].variant??variant;return((0,_registry.useRunCallbackOnValueChange)(isVisible,onVisibleChange),(0,_registry.useRunCallbackOnValueChange)(resolvedVariant,onVariantChange),canRender)?isMobile?_react.default.createElement(_RightPanelSheet.RightPanelSheet,{isVisible:isVisible,hide:hide,"aria-label":ariaLabel,scrollContainerRef:scrollContainerRef,onScroll:onScroll},children):_react.default.createElement(_RightPanelDocked.RightPanelDocked,{isVisible:isVisible,variant:resolvedVariant,"aria-label":ariaLabel,scrollContainerRef:scrollContainerRef,onScroll:onScroll},children):null};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get createInitialState(){return createInitialState},get layoutReducer(){return layoutReducer}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});function sidePanelFields(config={}){return{kind:"sidePanel",visible:config.defaultVisible??!0,collapsible:config.collapsible??!0,size:config.defaultSize,minSize:config.minSize,maxSize:config.maxSize}}function panelState(config={}){return{kind:"panel",visible:config.defaultVisible??!0,size:config.defaultSize,minSize:config.minSize,maxSize:config.maxSize}}function createInitialState(config={}){return{leftPanel:sidePanelFields(config.leftPanel),rightPanel:{...sidePanelFields({defaultVisible:!1,...config.rightPanel}),variant:config.rightPanel?.variant},content:panelState(config.content),splitview:panelState({defaultVisible:!1,...config.splitview})}}const layoutReducer=(state,action,initial)=>{switch(action.type){case"setVisible":{let slot=state[action.slot];if(slot.visible===action.visible)return state;return{...state,[action.slot]:{...slot,visible:action.visible}}}case"setVariant":{let panel=state[action.panel];if(panel.variant===action.variant)return state;return{...state,[action.panel]:{...panel,variant:action.variant}}}case"resize":{let slot=state[action.slot];if(slot.size===action.size)return state;return{...state,[action.slot]:{...slot,size:action.size}}}case"reset":if(!initial)return state;if(!action.slot)return initial;if(state[action.slot]===initial[action.slot])return state;return{...state,[action.slot]:initial[action.slot]};default:return state}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var target=exports,all={get createInitialState(){return createInitialState},get layoutReducer(){return layoutReducer}};for(var name in all)Object.defineProperty(target,name,{enumerable:!0,get:Object.getOwnPropertyDescriptor(all,name).get});function sidePanelFields(config={}){return{kind:"sidePanel",visible:config.defaultVisible??!0,collapsible:config.collapsible??!0,resizable:config.resizable??!0,size:config.defaultSize,minSize:config.minSize,maxSize:config.maxSize}}function panelState(config={}){return{kind:"panel",visible:config.defaultVisible??!0,size:config.defaultSize,minSize:config.minSize,maxSize:config.maxSize}}function createInitialState(config={}){return{leftPanel:sidePanelFields({resizable:!1,...config.leftPanel}),rightPanel:{...sidePanelFields({defaultVisible:!1,...config.rightPanel}),variant:config.rightPanel?.variant},content:panelState(config.content),splitview:panelState({defaultVisible:!1,...config.splitview})}}const layoutReducer=(state,action,initial)=>{switch(action.type){case"setVisible":{let slot=state[action.slot];if(slot.visible===action.visible)return state;return{...state,[action.slot]:{...slot,visible:action.visible}}}case"setVariant":{let panel=state[action.panel];if(panel.variant===action.variant)return state;return{...state,[action.panel]:{...panel,variant:action.variant}}}case"resize":{let slot=state[action.slot];if(slot.size===action.size)return state;return{...state,[action.slot]:{...slot,size:action.size}}}case"reset":if(!initial)return state;if(!action.slot)return initial;if(state[action.slot]===initial[action.slot])return state;return{...state,[action.slot]:initial[action.slot]};default:return state}};
@@ -7,6 +7,10 @@ export type PanelDockedSlideOptions = {
7
7
  minSize?: Size;
8
8
  maxSize?: Size;
9
9
  collapsible: boolean;
10
+ /** Forwarded to the declaration; `undefined` leaves the config's value in
11
+ * charge. Doesn't affect the slide - the open/close resize goes through the
12
+ * imperative handle, which a fixed column still honours. */
13
+ resizable?: boolean;
10
14
  };
11
15
  export type PanelDockedSlide = {
12
16
  /** Whether the panel's content should render at all (entering, open, or
@@ -25,4 +29,4 @@ export type PanelDockedSlide = {
25
29
  * reduced motion is requested. The mobile modal-drawer lifecycle lives in
26
30
  * {@link useExitAnimation} and the Drawer's styled components.
27
31
  */
28
- export declare function usePanelDockedSlide({ slot, defaultSize, minSize, maxSize, collapsible, }: PanelDockedSlideOptions): PanelDockedSlide;
32
+ export declare function usePanelDockedSlide({ slot, defaultSize, minSize, maxSize, collapsible, resizable, }: PanelDockedSlideOptions): PanelDockedSlide;