@amboss/design-system 3.19.2 → 3.20.0

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 (41) hide show
  1. package/build/cjs/components/Badge/Badge.js +1 -1
  2. package/build/cjs/components/Form/SegmentedControl/SegmentedControlOption.js +1 -1
  3. package/build/cjs/components/IconTile/IconTile.d.ts +10 -0
  4. package/build/cjs/components/IconTile/IconTile.js +1 -0
  5. package/build/cjs/components/Logo/Logo.d.ts +4 -2
  6. package/build/cjs/components/Logo/Logo.js +1 -1
  7. package/build/cjs/components/PromptInput/PromptInput.d.ts +19 -32
  8. package/build/cjs/components/PromptInput/PromptInput.js +1 -1
  9. package/build/cjs/components/PromptInput/PromptTextArea.d.ts +5 -0
  10. package/build/cjs/components/PromptInput/PromptTextArea.js +1 -1
  11. package/build/cjs/index.d.ts +1 -0
  12. package/build/cjs/index.js +1 -1
  13. package/build/cjs/web-tokens/_colors.json +25 -7
  14. package/build/cjs/web-tokens/assets/icons.json +2 -0
  15. package/build/cjs/web-tokens/assets/icons16.json +2 -0
  16. package/build/cjs/web-tokens/navigationTheme.json +9 -9
  17. package/build/cjs/web-tokens/subNavigationTheme.json +6 -6
  18. package/build/cjs/web-tokens/visualConfig.d.ts +6 -0
  19. package/build/cjs/web-tokens/visualConfig.js +1 -1
  20. package/build/esm/components/Badge/Badge.js +1 -1
  21. package/build/esm/components/Form/SegmentedControl/SegmentedControlOption.js +1 -1
  22. package/build/esm/components/IconTile/IconTile.d.ts +10 -0
  23. package/build/esm/components/IconTile/IconTile.js +1 -0
  24. package/build/esm/components/Logo/Logo.d.ts +4 -2
  25. package/build/esm/components/Logo/Logo.js +1 -1
  26. package/build/esm/components/PromptInput/PromptInput.d.ts +19 -32
  27. package/build/esm/components/PromptInput/PromptInput.js +1 -1
  28. package/build/esm/components/PromptInput/PromptTextArea.d.ts +5 -0
  29. package/build/esm/components/PromptInput/PromptTextArea.js +1 -1
  30. package/build/esm/index.d.ts +1 -0
  31. package/build/esm/index.js +1 -1
  32. package/build/esm/web-tokens/_colors.json +25 -7
  33. package/build/esm/web-tokens/assets/icons.json +2 -0
  34. package/build/esm/web-tokens/assets/icons16.json +2 -0
  35. package/build/esm/web-tokens/navigationTheme.json +9 -9
  36. package/build/esm/web-tokens/subNavigationTheme.json +6 -6
  37. package/build/esm/web-tokens/visualConfig.d.ts +6 -0
  38. package/build/esm/web-tokens/visualConfig.js +1 -1
  39. package/build/scss/_theming.scss +11 -7
  40. package/build/scss/_variables.scss +2 -0
  41. package/package.json +1 -1
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"PromptInput",{enumerable:!0,get:function(){return PromptInput}});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")),_PromptTextArea=require("./PromptTextArea"),_Container=require("../Container"),_AutocompleteList=require("./AutocompleteList"),_CategoryList=require("./CategoryList"),_Text=require("../Typography/Text"),_Button=require("../Button/Button"),_Inline=require("../Inline/Inline"),_RoundButton=require("../RoundButton/RoundButton"),_PictogramButton=require("../PictogramButton/PictogramButton"),_Stack=require("../Stack/Stack"),_useOutsideClick=require("../../shared/useOutsideClick"),CustomContainer=(0,_styled.default)(_Container.Container,{target:"e1gnreap0",label:"CustomContainer"})(({theme,hideBorder})=>({border:`1px solid ${theme.values.color.border.primary.default}`,...hideBorder&&{borderColor:"transparent"},cursor:"text","&:has(textarea:focus-visible)":{outlineWidth:1,outlineStyle:"solid",outlineOffset:-1,outlineColor:theme.values.color.border.accent.default,boxShadow:theme.values.shadow.focusRing,"@media (-webkit-min-device-pixel-ratio:0)":{outlineColor:theme.values.color.border.accent.default}}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgYm90dG9tVG9vbGJhcj86IHtcbiAgICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIH07XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIgPSB7IGxlZnRDb250ZW50OiBudWxsLCByaWdodENvbnRlbnQ6IG51bGwgfSxcbiAgICAgIGlzUHJvY2Vzc2luZyxcbiAgICAgIHNlbmRCdXR0b25Qcm9wcyA9IHt9LFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uQ29tcGxldGUsXG4gICAgICBvbkNsZWFyLFxuICAgICAgb25FbnRlcktleSxcbiAgICAgIG9uRm9jdXMsXG4gICAgICBvbkJsdXIsXG4gICAgICBvbktleURvd24sXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgdGV4dEFyZWFDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGludGVybmFsUmVmID0gdXNlUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IFtzZWxlY3RlZEluZGV4LCBzZXRTZWxlY3RlZEluZGV4XSA9IHVzZVN0YXRlKC0xKTtcbiAgICBjb25zdCBbaXNDb2xsYXBzZWQsIHNldElzQ29sbGFwc2VkXSA9IHVzZVN0YXRlKGlzTmF2QmFyVmFyaWFudCk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgY29uc3QgbWVyZ2VkU2VuZEJ1dHRvblByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFNlbmRCdXR0b25Qcm9wcyxcbiAgICAgIC4uLnNlbmRCdXR0b25Qcm9wcyxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gIWlzQ29sbGFwc2VkICYmIChcbiAgICAgIDw+XG4gICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJyaWdodFwiIGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyLnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9eyF2YWx1ZSB8fCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWR9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkQ2xlYXIgLz5cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgIGlzQ29sbGFwc2VkPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgIG9uQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIHtjbGVhckJ1dHRvbkVsbX1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyRWxtfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvQ3VzdG9tQ29udGFpbmVyPlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG5cbmNvbnN0IEN1c3RvbUJ1dHRvbiA9IHN0eWxlZChCdXR0b24pKCh7IHRoZW1lIH0pID0+ICh7XG4gIGJvcmRlclJhZGl1czogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLmwsXG59KSk7XG5cbi8vIG5lZWQgdG8gc2ltcGxpZnkgdGhpcyB0eXBlIGZvciByZXVzZVxuY29uc3QgU3VnZ2VzdGlvbkJ1dHRvbiA9IGZvcndhcmRSZWYoXG4gIDxDIGV4dGVuZHMgUmVhY3QuRWxlbWVudFR5cGUgPSBcImJ1dHRvblwiPihcbiAgICBwcm9wczogUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWY8XG4gICAgICBDLFxuICAgICAgT21pdDxCdXR0b25Qcm9wcywgXCJ2YXJpYW50XCIgfCBcInNpemVcIiB8IFwicmVmXCI+XG4gICAgPixcbiAgICByZWY6IFBvbHltb3JwaGljUmVmPEM+XG4gICkgPT4gPEN1c3RvbUJ1dHRvbiB7Li4ucHJvcHN9IHZhcmlhbnQ9XCJzZWNvbmRhcnlcIiBzaXplPVwic1wiIHJlZj17cmVmfSAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gT2JqZWN0LmFzc2lnbihQcm9tcHRJbnB1dENvbXBvbmVudCwge1xuICBTdWdnZXN0aW9uQnV0dG9uLFxufSkgYXMgdHlwZW9mIFByb21wdElucHV0Q29tcG9uZW50ICYge1xuICBTdWdnZXN0aW9uQnV0dG9uOiB0eXBlb2YgU3VnZ2VzdGlvbkJ1dHRvbjtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkN3QiJ9 */"),StyledTextAreaContainer=(0,_styled.default)("div",{target:"e1gnreap1",label:"StyledTextAreaContainer"})({borderRadius:"inherit",position:"relative"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgYm90dG9tVG9vbGJhcj86IHtcbiAgICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIH07XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIgPSB7IGxlZnRDb250ZW50OiBudWxsLCByaWdodENvbnRlbnQ6IG51bGwgfSxcbiAgICAgIGlzUHJvY2Vzc2luZyxcbiAgICAgIHNlbmRCdXR0b25Qcm9wcyA9IHt9LFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uQ29tcGxldGUsXG4gICAgICBvbkNsZWFyLFxuICAgICAgb25FbnRlcktleSxcbiAgICAgIG9uRm9jdXMsXG4gICAgICBvbkJsdXIsXG4gICAgICBvbktleURvd24sXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgdGV4dEFyZWFDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGludGVybmFsUmVmID0gdXNlUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IFtzZWxlY3RlZEluZGV4LCBzZXRTZWxlY3RlZEluZGV4XSA9IHVzZVN0YXRlKC0xKTtcbiAgICBjb25zdCBbaXNDb2xsYXBzZWQsIHNldElzQ29sbGFwc2VkXSA9IHVzZVN0YXRlKGlzTmF2QmFyVmFyaWFudCk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgY29uc3QgbWVyZ2VkU2VuZEJ1dHRvblByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFNlbmRCdXR0b25Qcm9wcyxcbiAgICAgIC4uLnNlbmRCdXR0b25Qcm9wcyxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gIWlzQ29sbGFwc2VkICYmIChcbiAgICAgIDw+XG4gICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJyaWdodFwiIGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyLnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9eyF2YWx1ZSB8fCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWR9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkQ2xlYXIgLz5cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgIGlzQ29sbGFwc2VkPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgIG9uQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIHtjbGVhckJ1dHRvbkVsbX1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyRWxtfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvQ3VzdG9tQ29udGFpbmVyPlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG5cbmNvbnN0IEN1c3RvbUJ1dHRvbiA9IHN0eWxlZChCdXR0b24pKCh7IHRoZW1lIH0pID0+ICh7XG4gIGJvcmRlclJhZGl1czogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLmwsXG59KSk7XG5cbi8vIG5lZWQgdG8gc2ltcGxpZnkgdGhpcyB0eXBlIGZvciByZXVzZVxuY29uc3QgU3VnZ2VzdGlvbkJ1dHRvbiA9IGZvcndhcmRSZWYoXG4gIDxDIGV4dGVuZHMgUmVhY3QuRWxlbWVudFR5cGUgPSBcImJ1dHRvblwiPihcbiAgICBwcm9wczogUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWY8XG4gICAgICBDLFxuICAgICAgT21pdDxCdXR0b25Qcm9wcywgXCJ2YXJpYW50XCIgfCBcInNpemVcIiB8IFwicmVmXCI+XG4gICAgPixcbiAgICByZWY6IFBvbHltb3JwaGljUmVmPEM+XG4gICkgPT4gPEN1c3RvbUJ1dHRvbiB7Li4ucHJvcHN9IHZhcmlhbnQ9XCJzZWNvbmRhcnlcIiBzaXplPVwic1wiIHJlZj17cmVmfSAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gT2JqZWN0LmFzc2lnbihQcm9tcHRJbnB1dENvbXBvbmVudCwge1xuICBTdWdnZXN0aW9uQnV0dG9uLFxufSkgYXMgdHlwZW9mIFByb21wdElucHV0Q29tcG9uZW50ICYge1xuICBTdWdnZXN0aW9uQnV0dG9uOiB0eXBlb2YgU3VnZ2VzdGlvbkJ1dHRvbjtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBZ0VnQyJ9 */"),StyledEmptyStateTopRightContentContainer=(0,_styled.default)("div",{target:"e1gnreap2",label:"StyledEmptyStateTopRightContentContainer"})(({theme,isNavBarVariant})=>({position:"absolute",top:isNavBarVariant?theme.variables.size.spacing.xxs:theme.variables.size.spacing.m,right:theme.variables.size.spacing.m,userSelect:"none",pointerEvents:"none"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgYm90dG9tVG9vbGJhcj86IHtcbiAgICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIH07XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIgPSB7IGxlZnRDb250ZW50OiBudWxsLCByaWdodENvbnRlbnQ6IG51bGwgfSxcbiAgICAgIGlzUHJvY2Vzc2luZyxcbiAgICAgIHNlbmRCdXR0b25Qcm9wcyA9IHt9LFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uQ29tcGxldGUsXG4gICAgICBvbkNsZWFyLFxuICAgICAgb25FbnRlcktleSxcbiAgICAgIG9uRm9jdXMsXG4gICAgICBvbkJsdXIsXG4gICAgICBvbktleURvd24sXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgdGV4dEFyZWFDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGludGVybmFsUmVmID0gdXNlUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IFtzZWxlY3RlZEluZGV4LCBzZXRTZWxlY3RlZEluZGV4XSA9IHVzZVN0YXRlKC0xKTtcbiAgICBjb25zdCBbaXNDb2xsYXBzZWQsIHNldElzQ29sbGFwc2VkXSA9IHVzZVN0YXRlKGlzTmF2QmFyVmFyaWFudCk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgY29uc3QgbWVyZ2VkU2VuZEJ1dHRvblByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFNlbmRCdXR0b25Qcm9wcyxcbiAgICAgIC4uLnNlbmRCdXR0b25Qcm9wcyxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gIWlzQ29sbGFwc2VkICYmIChcbiAgICAgIDw+XG4gICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJyaWdodFwiIGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyLnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9eyF2YWx1ZSB8fCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWR9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkQ2xlYXIgLz5cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgIGlzQ29sbGFwc2VkPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgIG9uQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIHtjbGVhckJ1dHRvbkVsbX1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyRWxtfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvQ3VzdG9tQ29udGFpbmVyPlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG5cbmNvbnN0IEN1c3RvbUJ1dHRvbiA9IHN0eWxlZChCdXR0b24pKCh7IHRoZW1lIH0pID0+ICh7XG4gIGJvcmRlclJhZGl1czogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLmwsXG59KSk7XG5cbi8vIG5lZWQgdG8gc2ltcGxpZnkgdGhpcyB0eXBlIGZvciByZXVzZVxuY29uc3QgU3VnZ2VzdGlvbkJ1dHRvbiA9IGZvcndhcmRSZWYoXG4gIDxDIGV4dGVuZHMgUmVhY3QuRWxlbWVudFR5cGUgPSBcImJ1dHRvblwiPihcbiAgICBwcm9wczogUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWY8XG4gICAgICBDLFxuICAgICAgT21pdDxCdXR0b25Qcm9wcywgXCJ2YXJpYW50XCIgfCBcInNpemVcIiB8IFwicmVmXCI+XG4gICAgPixcbiAgICByZWY6IFBvbHltb3JwaGljUmVmPEM+XG4gICkgPT4gPEN1c3RvbUJ1dHRvbiB7Li4ucHJvcHN9IHZhcmlhbnQ9XCJzZWNvbmRhcnlcIiBzaXplPVwic1wiIHJlZj17cmVmfSAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gT2JqZWN0LmFzc2lnbihQcm9tcHRJbnB1dENvbXBvbmVudCwge1xuICBTdWdnZXN0aW9uQnV0dG9uLFxufSkgYXMgdHlwZW9mIFByb21wdElucHV0Q29tcG9uZW50ICYge1xuICBTdWdnZXN0aW9uQnV0dG9uOiB0eXBlb2YgU3VnZ2VzdGlvbkJ1dHRvbjtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMkVFIn0= */"),StyledClearButton=(0,_styled.default)(_PictogramButton.PictogramButton,{target:"e1gnreap3",label:"StyledClearButton"})(({theme,isNavBarVariant})=>({position:"absolute",right:theme.variables.size.spacing.s,top:isNavBarVariant?0:theme.variables.size.spacing.s}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgYm90dG9tVG9vbGJhcj86IHtcbiAgICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIH07XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIgPSB7IGxlZnRDb250ZW50OiBudWxsLCByaWdodENvbnRlbnQ6IG51bGwgfSxcbiAgICAgIGlzUHJvY2Vzc2luZyxcbiAgICAgIHNlbmRCdXR0b25Qcm9wcyA9IHt9LFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uQ29tcGxldGUsXG4gICAgICBvbkNsZWFyLFxuICAgICAgb25FbnRlcktleSxcbiAgICAgIG9uRm9jdXMsXG4gICAgICBvbkJsdXIsXG4gICAgICBvbktleURvd24sXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgdGV4dEFyZWFDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGludGVybmFsUmVmID0gdXNlUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IFtzZWxlY3RlZEluZGV4LCBzZXRTZWxlY3RlZEluZGV4XSA9IHVzZVN0YXRlKC0xKTtcbiAgICBjb25zdCBbaXNDb2xsYXBzZWQsIHNldElzQ29sbGFwc2VkXSA9IHVzZVN0YXRlKGlzTmF2QmFyVmFyaWFudCk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgY29uc3QgbWVyZ2VkU2VuZEJ1dHRvblByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFNlbmRCdXR0b25Qcm9wcyxcbiAgICAgIC4uLnNlbmRCdXR0b25Qcm9wcyxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gIWlzQ29sbGFwc2VkICYmIChcbiAgICAgIDw+XG4gICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJyaWdodFwiIGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyLnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9eyF2YWx1ZSB8fCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWR9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkQ2xlYXIgLz5cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgIGlzQ29sbGFwc2VkPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgIG9uQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIHtjbGVhckJ1dHRvbkVsbX1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyRWxtfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvQ3VzdG9tQ29udGFpbmVyPlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG5cbmNvbnN0IEN1c3RvbUJ1dHRvbiA9IHN0eWxlZChCdXR0b24pKCh7IHRoZW1lIH0pID0+ICh7XG4gIGJvcmRlclJhZGl1czogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLmwsXG59KSk7XG5cbi8vIG5lZWQgdG8gc2ltcGxpZnkgdGhpcyB0eXBlIGZvciByZXVzZVxuY29uc3QgU3VnZ2VzdGlvbkJ1dHRvbiA9IGZvcndhcmRSZWYoXG4gIDxDIGV4dGVuZHMgUmVhY3QuRWxlbWVudFR5cGUgPSBcImJ1dHRvblwiPihcbiAgICBwcm9wczogUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWY8XG4gICAgICBDLFxuICAgICAgT21pdDxCdXR0b25Qcm9wcywgXCJ2YXJpYW50XCIgfCBcInNpemVcIiB8IFwicmVmXCI+XG4gICAgPixcbiAgICByZWY6IFBvbHltb3JwaGljUmVmPEM+XG4gICkgPT4gPEN1c3RvbUJ1dHRvbiB7Li4ucHJvcHN9IHZhcmlhbnQ9XCJzZWNvbmRhcnlcIiBzaXplPVwic1wiIHJlZj17cmVmfSAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gT2JqZWN0LmFzc2lnbihQcm9tcHRJbnB1dENvbXBvbmVudCwge1xuICBTdWdnZXN0aW9uQnV0dG9uLFxufSkgYXMgdHlwZW9mIFByb21wdElucHV0Q29tcG9uZW50ICYge1xuICBTdWdnZXN0aW9uQnV0dG9uOiB0eXBlb2YgU3VnZ2VzdGlvbkJ1dHRvbjtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMEYwQiJ9 */"),StyledSlot=(0,_styled.default)("div",{target:"e1gnreap4",label:"StyledSlot"})(({position,theme})=>({float:position,margin:theme.variables.size.spacing.m,cursor:"default"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgYm90dG9tVG9vbGJhcj86IHtcbiAgICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIH07XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIgPSB7IGxlZnRDb250ZW50OiBudWxsLCByaWdodENvbnRlbnQ6IG51bGwgfSxcbiAgICAgIGlzUHJvY2Vzc2luZyxcbiAgICAgIHNlbmRCdXR0b25Qcm9wcyA9IHt9LFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uQ29tcGxldGUsXG4gICAgICBvbkNsZWFyLFxuICAgICAgb25FbnRlcktleSxcbiAgICAgIG9uRm9jdXMsXG4gICAgICBvbkJsdXIsXG4gICAgICBvbktleURvd24sXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgdGV4dEFyZWFDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGludGVybmFsUmVmID0gdXNlUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IFtzZWxlY3RlZEluZGV4LCBzZXRTZWxlY3RlZEluZGV4XSA9IHVzZVN0YXRlKC0xKTtcbiAgICBjb25zdCBbaXNDb2xsYXBzZWQsIHNldElzQ29sbGFwc2VkXSA9IHVzZVN0YXRlKGlzTmF2QmFyVmFyaWFudCk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgY29uc3QgbWVyZ2VkU2VuZEJ1dHRvblByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFNlbmRCdXR0b25Qcm9wcyxcbiAgICAgIC4uLnNlbmRCdXR0b25Qcm9wcyxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gIWlzQ29sbGFwc2VkICYmIChcbiAgICAgIDw+XG4gICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJyaWdodFwiIGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyLnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9eyF2YWx1ZSB8fCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWR9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkQ2xlYXIgLz5cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgIGlzQ29sbGFwc2VkPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgIG9uQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIHtjbGVhckJ1dHRvbkVsbX1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyRWxtfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvQ3VzdG9tQ29udGFpbmVyPlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG5cbmNvbnN0IEN1c3RvbUJ1dHRvbiA9IHN0eWxlZChCdXR0b24pKCh7IHRoZW1lIH0pID0+ICh7XG4gIGJvcmRlclJhZGl1czogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLmwsXG59KSk7XG5cbi8vIG5lZWQgdG8gc2ltcGxpZnkgdGhpcyB0eXBlIGZvciByZXVzZVxuY29uc3QgU3VnZ2VzdGlvbkJ1dHRvbiA9IGZvcndhcmRSZWYoXG4gIDxDIGV4dGVuZHMgUmVhY3QuRWxlbWVudFR5cGUgPSBcImJ1dHRvblwiPihcbiAgICBwcm9wczogUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWY8XG4gICAgICBDLFxuICAgICAgT21pdDxCdXR0b25Qcm9wcywgXCJ2YXJpYW50XCIgfCBcInNpemVcIiB8IFwicmVmXCI+XG4gICAgPixcbiAgICByZWY6IFBvbHltb3JwaGljUmVmPEM+XG4gICkgPT4gPEN1c3RvbUJ1dHRvbiB7Li4ucHJvcHN9IHZhcmlhbnQ9XCJzZWNvbmRhcnlcIiBzaXplPVwic1wiIHJlZj17cmVmfSAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gT2JqZWN0LmFzc2lnbihQcm9tcHRJbnB1dENvbXBvbmVudCwge1xuICBTdWdnZXN0aW9uQnV0dG9uLFxufSkgYXMgdHlwZW9mIFByb21wdElucHV0Q29tcG9uZW50ICYge1xuICBTdWdnZXN0aW9uQnV0dG9uOiB0eXBlb2YgU3VnZ2VzdGlvbkJ1dHRvbjtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBb0dtQiJ9 */"),StyledClear=(0,_styled.default)("div",{target:"e1gnreap5",label:"StyledClear"})({clear:"both"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgYm90dG9tVG9vbGJhcj86IHtcbiAgICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIH07XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIgPSB7IGxlZnRDb250ZW50OiBudWxsLCByaWdodENvbnRlbnQ6IG51bGwgfSxcbiAgICAgIGlzUHJvY2Vzc2luZyxcbiAgICAgIHNlbmRCdXR0b25Qcm9wcyA9IHt9LFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uQ29tcGxldGUsXG4gICAgICBvbkNsZWFyLFxuICAgICAgb25FbnRlcktleSxcbiAgICAgIG9uRm9jdXMsXG4gICAgICBvbkJsdXIsXG4gICAgICBvbktleURvd24sXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgdGV4dEFyZWFDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGludGVybmFsUmVmID0gdXNlUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IFtzZWxlY3RlZEluZGV4LCBzZXRTZWxlY3RlZEluZGV4XSA9IHVzZVN0YXRlKC0xKTtcbiAgICBjb25zdCBbaXNDb2xsYXBzZWQsIHNldElzQ29sbGFwc2VkXSA9IHVzZVN0YXRlKGlzTmF2QmFyVmFyaWFudCk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgY29uc3QgbWVyZ2VkU2VuZEJ1dHRvblByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFNlbmRCdXR0b25Qcm9wcyxcbiAgICAgIC4uLnNlbmRCdXR0b25Qcm9wcyxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gIWlzQ29sbGFwc2VkICYmIChcbiAgICAgIDw+XG4gICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJyaWdodFwiIGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyLnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9eyF2YWx1ZSB8fCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWR9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkQ2xlYXIgLz5cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgIGlzQ29sbGFwc2VkPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgIG9uQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIHtjbGVhckJ1dHRvbkVsbX1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyRWxtfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvQ3VzdG9tQ29udGFpbmVyPlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG5cbmNvbnN0IEN1c3RvbUJ1dHRvbiA9IHN0eWxlZChCdXR0b24pKCh7IHRoZW1lIH0pID0+ICh7XG4gIGJvcmRlclJhZGl1czogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLmwsXG59KSk7XG5cbi8vIG5lZWQgdG8gc2ltcGxpZnkgdGhpcyB0eXBlIGZvciByZXVzZVxuY29uc3QgU3VnZ2VzdGlvbkJ1dHRvbiA9IGZvcndhcmRSZWYoXG4gIDxDIGV4dGVuZHMgUmVhY3QuRWxlbWVudFR5cGUgPSBcImJ1dHRvblwiPihcbiAgICBwcm9wczogUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWY8XG4gICAgICBDLFxuICAgICAgT21pdDxCdXR0b25Qcm9wcywgXCJ2YXJpYW50XCIgfCBcInNpemVcIiB8IFwicmVmXCI+XG4gICAgPixcbiAgICByZWY6IFBvbHltb3JwaGljUmVmPEM+XG4gICkgPT4gPEN1c3RvbUJ1dHRvbiB7Li4ucHJvcHN9IHZhcmlhbnQ9XCJzZWNvbmRhcnlcIiBzaXplPVwic1wiIHJlZj17cmVmfSAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gT2JqZWN0LmFzc2lnbihQcm9tcHRJbnB1dENvbXBvbmVudCwge1xuICBTdWdnZXN0aW9uQnV0dG9uLFxufSkgYXMgdHlwZW9mIFByb21wdElucHV0Q29tcG9uZW50ICYge1xuICBTdWdnZXN0aW9uQnV0dG9uOiB0eXBlb2YgU3VnZ2VzdGlvbkJ1dHRvbjtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNEdvQiJ9 */"),defaultSendButtonProps={type:"submit",icon:"arrow-up"},PromptInputComponent=(0,_react.forwardRef)(({"data-e2e-test-id":dataE2eTestId,name,autocompleteListItems=[],value,bottomToolbar={leftContent:null,rightContent:null},isProcessing,sendButtonProps={},autocompleteListFooter,clearButtonAriaLabel="Clear input",hint,emptyStateTopRightContent,isNavBarVariant,portalContainer,onChange,onComplete,onClear,onEnterKey,onFocus,onBlur,onKeyDown,...rest},ref)=>{let containerRef=(0,_react.useRef)(null),textAreaContainerRef=(0,_react.useRef)(null),internalRef=(0,_react.useRef)(null),[selectedIndex,setSelectedIndex]=(0,_react.useState)(-1),[isCollapsed,setIsCollapsed]=(0,_react.useState)(isNavBarVariant),userTypedQuery=(0,_react.useRef)(""),[isAutocompleteListOpen,setIsAutocompleteListOpen]=(0,_react.useState)(!1),textAreaRef=ref||internalRef,mergedSendButtonProps={...defaultSendButtonProps,...sendButtonProps};(0,_useOutsideClick.useOutsideClick)(containerRef,evt=>{containerRef.current.contains(evt.target)||portalContainer?.contains(evt.target)||null===evt.target||setIsCollapsed(!0)},!isCollapsed&&isNavBarVariant);let closeAutocompleteList=(0,_react.useCallback)(()=>{setIsAutocompleteListOpen(!1),setSelectedIndex(-1)},[]),openAutocompleteList=(0,_react.useCallback)(()=>{autocompleteListItems.length&&(setIsAutocompleteListOpen(!0),setSelectedIndex(-1))},[autocompleteListItems]),acceptTextSelection=()=>{userTypedQuery.current=value,textAreaRef.current.setSelectionRange(value.length,value.length)};(0,_react.useEffect)(()=>{autocompleteListItems.length&&!isCollapsed?openAutocompleteList():closeAutocompleteList()},[autocompleteListItems,openAutocompleteList,closeAutocompleteList,isCollapsed]),(0,_react.useEffect)(()=>{value&&value!==userTypedQuery.current&&isAutocompleteListOpen&&textAreaRef.current.setSelectionRange(userTypedQuery.current.length,value.length)},[value,textAreaRef,isAutocompleteListOpen]),(0,_react.useEffect)(()=>{let handler,container=containerRef.current;return isNavBarVariant&&container&&(handler=evt=>{containerRef.current.contains(evt.relatedTarget)||portalContainer?.contains(evt.relatedTarget)||null===evt.relatedTarget||setIsCollapsed(!0)},window.addEventListener("focusout",handler)),()=>{container&&window.removeEventListener("focusout",handler)}},[isNavBarVariant,containerRef,portalContainer]);let flattenedListItems=(0,_react.useMemo)(()=>{let list=[];return autocompleteListItems.forEach(listItem=>{listItem.items.forEach((item,index)=>{list.push({category:listItem.category,indexInCategory:index,value:item.value,id:(0,_CategoryList.getListItemId)(name,listItem.category,index)})})}),list},[autocompleteListItems,name]),handleSelectedIndexChange=(index,evt)=>{if(setSelectedIndex(index),-1!==index){let{category,value:itemValue}=flattenedListItems[index];onComplete({value:itemValue,category,evt,index})}},handlePreventFocus=evt=>{evt.preventDefault()},selectedListItem=-1!==selectedIndex?flattenedListItems[selectedIndex]:null,emptyStateTopRightContentElm=emptyStateTopRightContent?_react.default.createElement(StyledEmptyStateTopRightContentContainer,{isNavBarVariant:isNavBarVariant},_react.default.createElement(_Text.Text,{color:"tertiary"},emptyStateTopRightContent)):null,clearButtonElm=value?_react.default.createElement(StyledClearButton,{size:"s",icon:"x-circle-filled","aria-label":clearButtonAriaLabel,isNavBarVariant:isNavBarVariant,onPointerDown:handlePreventFocus,onClick:onClear}):emptyStateTopRightContentElm,hintElm=!!hint&&_react.default.createElement(_Inline.Inline,{alignItems:"center"},_react.default.createElement(_Text.Text,{size:"s",color:"tertiary"},hint)),bottomToolbarElm=!isCollapsed&&_react.default.createElement(_react.default.Fragment,null,_react.default.createElement(StyledSlot,{position:"left"},bottomToolbar.leftContent),_react.default.createElement(StyledSlot,{position:"right","data-e2e-test-id":"bottomToolbar"},_react.default.createElement(_Inline.Inline,{space:"xs",vAlignItems:"center"},bottomToolbar.rightContent,_react.default.createElement(_RoundButton.RoundButton,{ariaAttributes:{"aria-label":isProcessing?"Processing query":"Submit query"},...mergedSendButtonProps,disabled:!value||mergedSendButtonProps.disabled,onClick:evt=>{mergedSendButtonProps.onClick?.(evt),closeAutocompleteList(),isNavBarVariant&&setIsCollapsed(!0)},onPointerDown:handlePreventFocus,variant:"primary",icon:isProcessing?"stop-filled":mergedSendButtonProps.icon}))),_react.default.createElement(StyledClear,null));return _react.default.createElement(_react.default.Fragment,null,_react.default.createElement("div",{"data-e2e-test-id":dataE2eTestId,"data-ds-id":"PromptInput",ref:containerRef,translate:"no"},_react.default.createElement(_Stack.Stack,{space:"s"},_react.default.createElement(CustomContainer,{elevation:0,borderRadius:isCollapsed?"xs":"m",hideBorder:isCollapsed},_react.default.createElement("div",{ref:textAreaContainerRef,onPointerDown:evt=>{evt.target===evt.currentTarget&&(textAreaRef.current?.focus(),evt.preventDefault())}},_react.default.createElement(StyledTextAreaContainer,null,_react.default.createElement(_PromptTextArea.PromptTextArea,{...rest,dataE2eTestId:dataE2eTestId?`${dataE2eTestId}-input`:void 0,name:name,value:value,ref:textAreaRef,isNavBarVariant:isNavBarVariant,selectedListItem:selectedListItem,isAutocompleteListOpen:isAutocompleteListOpen,isCollapsed:isCollapsed,onFocus:evt=>{setIsCollapsed(!1),onFocus?.(evt)},onBlur:evt=>{value!==userTypedQuery.current&&onComplete?.({value:userTypedQuery.current,evt}),onBlur?.(evt)},onChange:evt=>{userTypedQuery.current=evt.target.value,onChange(evt)},onKeyDown:evt=>{if(isAutocompleteListOpen)switch(evt.key){case"Escape":closeAutocompleteList(),onComplete({value:userTypedQuery.current,evt}),isNavBarVariant&&setIsCollapsed(!0);break;case"Enter":!evt.shiftKey&&(evt.preventDefault(),closeAutocompleteList(),acceptTextSelection(),value&&(onEnterKey?.(),isNavBarVariant&&setIsCollapsed(!0)));break;case" ":acceptTextSelection();break;case"ArrowUp":evt.preventDefault(),selectedIndex>-1&&handleSelectedIndexChange(selectedIndex-1,evt);break;case"ArrowDown":evt.preventDefault(),selectedIndex<flattenedListItems.length-1&&handleSelectedIndexChange(selectedIndex+1,evt)}else switch(evt.key){case"Escape":onClear?.();break;case"Enter":!evt.shiftKey&&(evt.preventDefault(),value&&onEnterKey?.())}onKeyDown?.(evt)}}),clearButtonElm),bottomToolbarElm)),hintElm)),_react.default.createElement(_AutocompleteList.AutocompleteList,{name:name,value:value,autocompleteListItems:autocompleteListItems,triggerRef:textAreaContainerRef,selectedListItem:selectedListItem,isOpen:isAutocompleteListOpen,autocompleteListFooter:autocompleteListFooter,portalContainer:portalContainer,onListItemClick:(category,indexInCategory,evt)=>{handleSelectedIndexChange(flattenedListItems.findIndex(listItem=>listItem.category===category&&listItem.indexInCategory===indexInCategory),evt),closeAutocompleteList(),isNavBarVariant&&setIsCollapsed(!0)}}))}),CustomButton=(0,_styled.default)(_Button.Button,{target:"e1gnreap6",label:"CustomButton"})(({theme})=>({borderRadius:theme.variables.size.borderRadius.l}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgUHJvbXB0VGV4dEFyZWEgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSBcIi4uL0NvbnRhaW5lclwiO1xuaW1wb3J0IHR5cGUgeyBBdXRvY29tcGxldGVMaXN0UHJvcHMgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVMaXN0IH0gZnJvbSBcIi4vQXV0b2NvbXBsZXRlTGlzdFwiO1xuaW1wb3J0IHtcbiAgZ2V0TGlzdEl0ZW1JZCxcbiAgdHlwZSBGbGF0dGVuZWRMaXN0SXRlbSxcbiAgdHlwZSBMaXN0SXRlbVZhbHVlLFxufSBmcm9tIFwiLi9DYXRlZ29yeUxpc3RcIjtcbmltcG9ydCB7IFRleHQgfSBmcm9tIFwiLi4vVHlwb2dyYXBoeS9UZXh0XCI7XG5pbXBvcnQgeyBCdXR0b24sIHR5cGUgQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vQnV0dG9uL0J1dHRvblwiO1xuaW1wb3J0IHR5cGUge1xuICBQb2x5bW9ycGhpY1JlZixcbiAgUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWYsXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgSW5saW5lIH0gZnJvbSBcIi4uL0lubGluZS9JbmxpbmVcIjtcbmltcG9ydCB0eXBlIHsgUm91bmRCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHsgUm91bmRCdXR0b24gfSBmcm9tIFwiLi4vUm91bmRCdXR0b24vUm91bmRCdXR0b25cIjtcbmltcG9ydCB0eXBlIHsgUGljdG9ncmFtQnV0dG9uUHJvcHMgfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgUGljdG9ncmFtQnV0dG9uIH0gZnJvbSBcIi4uL1BpY3RvZ3JhbUJ1dHRvbi9QaWN0b2dyYW1CdXR0b25cIjtcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcIi4uL1N0YWNrL1N0YWNrXCI7XG5pbXBvcnQgeyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi4vLi4vc2hhcmVkL3VzZU91dHNpZGVDbGlja1wiO1xuXG5jb25zdCBDdXN0b21Db250YWluZXIgPSBzdHlsZWQoQ29udGFpbmVyKTx7IGhpZGVCb3JkZXI6IGJvb2xlYW4gfT4oXG4gICh7IHRoZW1lLCBoaWRlQm9yZGVyIH0pID0+ICh7XG4gICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7dGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5wcmltYXJ5LmRlZmF1bHR9YCxcbiAgICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgICBib3JkZXJDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICAgIH0pLFxuICAgIGN1cnNvcjogXCJ0ZXh0XCIsXG4gICAgW2AmOmhhcyh0ZXh0YXJlYTpmb2N1cy12aXNpYmxlKWBdOiB7XG4gICAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgICBvdXRsaW5lU3R5bGU6IFwic29saWRcIixcbiAgICAgIG91dGxpbmVPZmZzZXQ6IC0xLFxuICAgICAgb3V0bGluZUNvbG9yOiB0aGVtZS52YWx1ZXMuY29sb3IuYm9yZGVyLmFjY2VudC5kZWZhdWx0LFxuICAgICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcblxuICAgICAgXCJAbWVkaWEgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzowKVwiOiB7XG4gICAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG59KTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbi8vIFVzaW5nIGZsb2F0IGluIG9yZGVyIHRvIGF2b2lkIHRoZSBpbnZpc2libGUgYXJlYSBiZXR3ZWVuIHRoZSBzbG90c1xuLy8gdGhhdCBwcmV2ZW50cyB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyBmb2N1c2VkXG5jb25zdCBTdHlsZWRTbG90ID0gc3R5bGVkLmRpdjx7IHBvc2l0aW9uOiBcImxlZnRcIiB8IFwicmlnaHRcIiB9PihcbiAgKHsgcG9zaXRpb24sIHRoZW1lIH0pID0+ICh7XG4gICAgZmxvYXQ6IHBvc2l0aW9uLFxuICAgIG1hcmdpbjogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5tLFxuICAgIGN1cnNvcjogXCJkZWZhdWx0XCIsXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRDbGVhciA9IHN0eWxlZC5kaXYoe1xuICBjbGVhcjogXCJib3RoXCIsXG59KTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgYm90dG9tVG9vbGJhcj86IHtcbiAgICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIH07XG4gIC8qKiBDdXJyZW50bHkgc2hvd3Mgc2VuZCBidXR0b24gcHJvY2Vzc2luZyBzdGF0ZSAgKi9cbiAgaXNQcm9jZXNzaW5nPzogYm9vbGVhbjtcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIgPSB7IGxlZnRDb250ZW50OiBudWxsLCByaWdodENvbnRlbnQ6IG51bGwgfSxcbiAgICAgIGlzUHJvY2Vzc2luZyxcbiAgICAgIHNlbmRCdXR0b25Qcm9wcyA9IHt9LFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBvbkNoYW5nZSxcbiAgICAgIG9uQ29tcGxldGUsXG4gICAgICBvbkNsZWFyLFxuICAgICAgb25FbnRlcktleSxcbiAgICAgIG9uRm9jdXMsXG4gICAgICBvbkJsdXIsXG4gICAgICBvbktleURvd24sXG4gICAgICAuLi5yZXN0XG4gICAgfTogUHJvbXB0SW5wdXRQcm9wcyxcbiAgICByZWY6IFJlZk9iamVjdDxIVE1MVGV4dEFyZWFFbGVtZW50PlxuICApOiBSZWFjdEVsZW1lbnQgPT4ge1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgdGV4dEFyZWFDb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IGludGVybmFsUmVmID0gdXNlUmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IFtzZWxlY3RlZEluZGV4LCBzZXRTZWxlY3RlZEluZGV4XSA9IHVzZVN0YXRlKC0xKTtcbiAgICBjb25zdCBbaXNDb2xsYXBzZWQsIHNldElzQ29sbGFwc2VkXSA9IHVzZVN0YXRlKGlzTmF2QmFyVmFyaWFudCk7XG4gICAgY29uc3QgdXNlclR5cGVkUXVlcnkgPSB1c2VSZWYoXCJcIik7XG4gICAgY29uc3QgW2lzQXV0b2NvbXBsZXRlTGlzdE9wZW4sIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW5dID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IHRleHRBcmVhUmVmID0gcmVmIHx8IGludGVybmFsUmVmO1xuXG4gICAgY29uc3QgbWVyZ2VkU2VuZEJ1dHRvblByb3BzID0ge1xuICAgICAgLi4uZGVmYXVsdFNlbmRCdXR0b25Qcm9wcyxcbiAgICAgIC4uLnNlbmRCdXR0b25Qcm9wcyxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gIWlzQ29sbGFwc2VkICYmIChcbiAgICAgIDw+XG4gICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgPFN0eWxlZFNsb3QgcG9zaXRpb249XCJyaWdodFwiIGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCI+XG4gICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgIHtib3R0b21Ub29sYmFyLnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICBhcmlhQXR0cmlidXRlcz17e1xuICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgIDogXCJTdWJtaXQgcXVlcnlcIixcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgZGlzYWJsZWQ9eyF2YWx1ZSB8fCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuZGlzYWJsZWR9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICB2YXJpYW50PVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICA8U3R5bGVkQ2xlYXIgLz5cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIDxQcm9tcHRUZXh0QXJlYVxuICAgICAgICAgICAgICAgICAgICB7Li4ucmVzdH1cbiAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZD17XG4gICAgICAgICAgICAgICAgICAgICAgZGF0YUUyZVRlc3RJZCA/IGAke2RhdGFFMmVUZXN0SWR9LWlucHV0YCA6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0ZXh0QXJlYVJlZn1cbiAgICAgICAgICAgICAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgICAgICAgICAgIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgICAgICAgICAgIGlzQ29sbGFwc2VkPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlRm9jdXN9XG4gICAgICAgICAgICAgICAgICAgIG9uQmx1cj17aGFuZGxlQmx1cn1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUNoYW5nZX1cbiAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIHtjbGVhckJ1dHRvbkVsbX1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZFRleHRBcmVhQ29udGFpbmVyPlxuICAgICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyRWxtfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvQ3VzdG9tQ29udGFpbmVyPlxuICAgICAgICAgICAge2hpbnRFbG19XG4gICAgICAgICAgPC9TdGFjaz5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPEF1dG9jb21wbGV0ZUxpc3RcbiAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXM9e2F1dG9jb21wbGV0ZUxpc3RJdGVtc31cbiAgICAgICAgICB0cmlnZ2VyUmVmPXt0ZXh0QXJlYUNvbnRhaW5lclJlZn1cbiAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgIGlzT3Blbj17aXNBdXRvY29tcGxldGVMaXN0T3Blbn1cbiAgICAgICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyPXthdXRvY29tcGxldGVMaXN0Rm9vdGVyfVxuICAgICAgICAgIHBvcnRhbENvbnRhaW5lcj17cG9ydGFsQ29udGFpbmVyfVxuICAgICAgICAgIG9uTGlzdEl0ZW1DbGljaz17aGFuZGxlTGlzdEl0ZW1DbGlja31cbiAgICAgICAgLz5cbiAgICAgIDwvPlxuICAgICk7XG4gIH1cbik7XG5cbmNvbnN0IEN1c3RvbUJ1dHRvbiA9IHN0eWxlZChCdXR0b24pKCh7IHRoZW1lIH0pID0+ICh7XG4gIGJvcmRlclJhZGl1czogdGhlbWUudmFyaWFibGVzLnNpemUuYm9yZGVyUmFkaXVzLmwsXG59KSk7XG5cbi8vIG5lZWQgdG8gc2ltcGxpZnkgdGhpcyB0eXBlIGZvciByZXVzZVxuY29uc3QgU3VnZ2VzdGlvbkJ1dHRvbiA9IGZvcndhcmRSZWYoXG4gIDxDIGV4dGVuZHMgUmVhY3QuRWxlbWVudFR5cGUgPSBcImJ1dHRvblwiPihcbiAgICBwcm9wczogUG9seW1vcnBoaWNDb21wb25lbnRQcm9wc1dpdGhSZWY8XG4gICAgICBDLFxuICAgICAgT21pdDxCdXR0b25Qcm9wcywgXCJ2YXJpYW50XCIgfCBcInNpemVcIiB8IFwicmVmXCI+XG4gICAgPixcbiAgICByZWY6IFBvbHltb3JwaGljUmVmPEM+XG4gICkgPT4gPEN1c3RvbUJ1dHRvbiB7Li4ucHJvcHN9IHZhcmlhbnQ9XCJzZWNvbmRhcnlcIiBzaXplPVwic1wiIHJlZj17cmVmfSAvPlxuKTtcblxuZXhwb3J0IGNvbnN0IFByb21wdElucHV0ID0gT2JqZWN0LmFzc2lnbihQcm9tcHRJbnB1dENvbXBvbmVudCwge1xuICBTdWdnZXN0aW9uQnV0dG9uLFxufSkgYXMgdHlwZW9mIFByb21wdElucHV0Q29tcG9uZW50ICYge1xuICBTdWdnZXN0aW9uQnV0dG9uOiB0eXBlb2YgU3VnZ2VzdGlvbkJ1dHRvbjtcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBNGhCcUIifQ== */"),PromptInput=Object.assign(PromptInputComponent,{SuggestionButton:(0,_react.forwardRef)((props,ref)=>_react.default.createElement(CustomButton,{...props,variant:"secondary",size:"s",ref:ref}))});
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),Object.defineProperty(exports,"PromptInput",{enumerable:!0,get:function(){return PromptInput}});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")),_PromptTextArea=require("./PromptTextArea"),_Container=require("../Container"),_AutocompleteList=require("./AutocompleteList"),_CategoryList=require("./CategoryList"),_Text=require("../Typography/Text"),_Button=require("../Button/Button"),_Inline=require("../Inline/Inline"),_RoundButton=require("../RoundButton/RoundButton"),_PictogramButton=require("../PictogramButton/PictogramButton"),_Stack=require("../Stack/Stack"),_useOutsideClick=require("../../shared/useOutsideClick"),_Icon=require("../Icon/Icon"),CustomContainer=(0,_styled.default)(_Container.Container,{target:"e1t8vt4l0",label:"CustomContainer"})(({theme,hideBorder})=>({border:`1px solid ${theme.values.color.border.primary.default}`,...hideBorder&&{borderColor:"transparent"},cursor:"text","&:has(textarea:focus-visible)":{outlineWidth:1,outlineStyle:"solid",outlineOffset:-1,outlineColor:theme.values.color.border.accent.default,boxShadow:theme.values.shadow.focusRing,"@media (-webkit-min-device-pixel-ratio:0)":{outlineColor:theme.values.color.border.accent.default}}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8eyBoaWRlQm9yZGVyOiBib29sZWFuIH0+KFxuICAoeyB0aGVtZSwgaGlkZUJvcmRlciB9KSA9PiAoe1xuICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICB9KSxcbiAgICBjdXJzb3I6IFwidGV4dFwiLFxuICAgIFtgJjpoYXModGV4dGFyZWE6Zm9jdXMtdmlzaWJsZSlgXToge1xuICAgICAgb3V0bGluZVdpZHRoOiAxLFxuICAgICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgICBvdXRsaW5lT2Zmc2V0OiAtMSxcbiAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG5cbiAgICAgIFwiQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MClcIjoge1xuICAgICAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxufSk7XG5cbmNvbnN0IFN0eWxlZExlZnRJY29uQ29udGFpbmVyID0gc3R5bGVkLmRpdigoeyB0aGVtZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSksXG4gIGxlZnQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lKSxcbn0pKTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lKSxcbiAgICAgIHJpZ2h0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSksXG4gICAgICB1c2VyU2VsZWN0OiBcIm5vbmVcIixcbiAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuICAgIH0pXG4gICk7XG5cbnR5cGUgU3R5bGVkQ2xlYXJCdXR0b25Qcm9wcyA9IFBpY3RvZ3JhbUJ1dHRvblByb3BzICZcbiAgUGljazxQcm9tcHRJbnB1dFByb3BzLCBcImlzTmF2QmFyVmFyaWFudFwiPjtcblxuY29uc3QgU3R5bGVkQ2xlYXJCdXR0b24gPSBzdHlsZWQoUGljdG9ncmFtQnV0dG9uKTxTdHlsZWRDbGVhckJ1dHRvblByb3BzPihcbiAgKHsgdGhlbWUsIGlzTmF2QmFyVmFyaWFudCB9KSA9PiAoe1xuICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgICB0b3A6IGlzTmF2QmFyVmFyaWFudCA/IDAgOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gIH0pXG4pO1xuXG4vLyBVc2luZyBmbG9hdCBpbiBvcmRlciB0byBhdm9pZCB0aGUgaW52aXNpYmxlIGFyZWEgYmV0d2VlbiB0aGUgc2xvdHNcbi8vIHRoYXQgcHJldmVudHMgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgZm9jdXNlZFxuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8eyBwb3NpdGlvbjogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfT4oXG4gICh7IHBvc2l0aW9uLCB0aGVtZSB9KSA9PiAoe1xuICAgIGZsb2F0OiBwb3NpdGlvbixcbiAgICBtYXJnaW46IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICBjdXJzb3I6IFwiZGVmYXVsdFwiLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkQ2xlYXIgPSBzdHlsZWQuZGl2KHtcbiAgY2xlYXI6IFwiYm90aFwiLFxufSk7XG5cbnR5cGUgU2VuZEJ1dHRvblByb3BzID0gT21pdDxSb3VuZEJ1dHRvblByb3BzLCBcImljb25cIiB8IFwidmFyaWFudFwiPiAmIHtcbiAgaWNvbj86IFwiYXJyb3ctdXBcIiB8IFwic2VhcmNoXCIgfCBcImFycm93LXJpZ2h0XCI7XG59O1xuXG50eXBlIEJvdHRvbVRvb2xiYXJDb25maWcgPSB7XG4gIC8qKiBUb29sYmFyIGVsZW1lbnRzIGJlbG93IHRleHQgYXJlYSAqL1xuICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgcmlnaHRDb250ZW50PzogUmVhY3RFbGVtZW50O1xufTtcblxudHlwZSBQcm9tcHRJbnB1dFNoYXJlZFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQ29sbGFwc2VkXCIgfCBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiXG4+ICZcbiAgUGljazxcbiAgICBBdXRvY29tcGxldGVMaXN0UHJvcHMsXG4gICAgXCJhdXRvY29tcGxldGVMaXN0SXRlbXNcIiB8IFwiYXV0b2NvbXBsZXRlTGlzdEZvb3RlclwiIHwgXCJwb3J0YWxDb250YWluZXJcIlxuICA+O1xuXG50eXBlIFByb21wdElucHV0V2l0aFRvb2xiYXJQcm9wcyA9IFByb21wdElucHV0U2hhcmVkUHJvcHMgJiB7XG4gIGJvdHRvbVRvb2xiYXI6IEJvdHRvbVRvb2xiYXJDb25maWc7XG4gIHNlbmRCdXR0b25Qcm9wcz86IFNlbmRCdXR0b25Qcm9wcztcbn07XG5cbnR5cGUgUHJvbXB0SW5wdXRXaXRob3V0VG9vbGJhclByb3BzID0gUHJvbXB0SW5wdXRTaGFyZWRQcm9wcyAmIHtcbiAgYm90dG9tVG9vbGJhcj86IHVuZGVmaW5lZDtcbiAgc2VuZEJ1dHRvblByb3BzPzogbmV2ZXI7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID1cbiAgfCBQcm9tcHRJbnB1dFdpdGhUb29sYmFyUHJvcHNcbiAgfCBQcm9tcHRJbnB1dFdpdGhvdXRUb29sYmFyUHJvcHM7XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgW2lzQ29sbGFwc2VkLCBzZXRJc0NvbGxhcHNlZF0gPSB1c2VTdGF0ZShpc05hdkJhclZhcmlhbnQpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQpICYmXG4gICAgICAhaXNDb2xsYXBzZWQgJiYgKFxuICAgICAgICA8PlxuICAgICAgICAgIHtib3R0b21Ub29sYmFyLmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwicmlnaHRcIiBkYXRhLWUyZS10ZXN0LWlkPVwiYm90dG9tVG9vbGJhclwiPlxuICAgICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgICAgYXJpYUF0dHJpYnV0ZXM9e3tcbiAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgPyBcIlByb2Nlc3NpbmcgcXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICA6IFwiU3VibWl0IHF1ZXJ5XCIsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB7Li4ubWVyZ2VkU2VuZEJ1dHRvblByb3BzfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshdmFsdWUgfHwgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICAgIDxTdHlsZWRDbGVhciAvPlxuICAgICAgICA8Lz5cbiAgICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9DdXN0b21Db250YWluZXI+XG4gICAgICAgICAgICB7aGludEVsbX1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8QXV0b2NvbXBsZXRlTGlzdFxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcz17YXV0b2NvbXBsZXRlTGlzdEl0ZW1zfVxuICAgICAgICAgIHRyaWdnZXJSZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgaXNPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RGb290ZXI9e2F1dG9jb21wbGV0ZUxpc3RGb290ZXJ9XG4gICAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgICAgb25MaXN0SXRlbUNsaWNrPXtoYW5kbGVMaXN0SXRlbUNsaWNrfVxuICAgICAgICAvPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuKTtcblxuY29uc3QgQ3VzdG9tQnV0dG9uID0gc3R5bGVkKEJ1dHRvbikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMubCxcbn0pKTtcblxuLy8gbmVlZCB0byBzaW1wbGlmeSB0aGlzIHR5cGUgZm9yIHJldXNlXG5jb25zdCBTdWdnZXN0aW9uQnV0dG9uID0gZm9yd2FyZFJlZihcbiAgPEMgZXh0ZW5kcyBSZWFjdC5FbGVtZW50VHlwZSA9IFwiYnV0dG9uXCI+KFxuICAgIHByb3BzOiBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZjxcbiAgICAgIEMsXG4gICAgICBPbWl0PEJ1dHRvblByb3BzLCBcInZhcmlhbnRcIiB8IFwic2l6ZVwiIHwgXCJyZWZcIj5cbiAgICA+LFxuICAgIHJlZjogUG9seW1vcnBoaWNSZWY8Qz5cbiAgKSA9PiA8Q3VzdG9tQnV0dG9uIHsuLi5wcm9wc30gdmFyaWFudD1cInNlY29uZGFyeVwiIHNpemU9XCJzXCIgcmVmPXtyZWZ9IC8+XG4pO1xuXG5leHBvcnQgY29uc3QgUHJvbXB0SW5wdXQgPSBPYmplY3QuYXNzaWduKFByb21wdElucHV0Q29tcG9uZW50LCB7XG4gIFN1Z2dlc3Rpb25CdXR0b24sXG59KSBhcyB0eXBlb2YgUHJvbXB0SW5wdXRDb21wb25lbnQgJiB7XG4gIFN1Z2dlc3Rpb25CdXR0b246IHR5cGVvZiBTdWdnZXN0aW9uQnV0dG9uO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpRHdCIn0= */"),StyledTextAreaContainer=(0,_styled.default)("div",{target:"e1t8vt4l1",label:"StyledTextAreaContainer"})({borderRadius:"inherit",position:"relative"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8eyBoaWRlQm9yZGVyOiBib29sZWFuIH0+KFxuICAoeyB0aGVtZSwgaGlkZUJvcmRlciB9KSA9PiAoe1xuICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICB9KSxcbiAgICBjdXJzb3I6IFwidGV4dFwiLFxuICAgIFtgJjpoYXModGV4dGFyZWE6Zm9jdXMtdmlzaWJsZSlgXToge1xuICAgICAgb3V0bGluZVdpZHRoOiAxLFxuICAgICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgICBvdXRsaW5lT2Zmc2V0OiAtMSxcbiAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG5cbiAgICAgIFwiQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MClcIjoge1xuICAgICAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxufSk7XG5cbmNvbnN0IFN0eWxlZExlZnRJY29uQ29udGFpbmVyID0gc3R5bGVkLmRpdigoeyB0aGVtZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSksXG4gIGxlZnQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lKSxcbn0pKTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lKSxcbiAgICAgIHJpZ2h0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSksXG4gICAgICB1c2VyU2VsZWN0OiBcIm5vbmVcIixcbiAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuICAgIH0pXG4gICk7XG5cbnR5cGUgU3R5bGVkQ2xlYXJCdXR0b25Qcm9wcyA9IFBpY3RvZ3JhbUJ1dHRvblByb3BzICZcbiAgUGljazxQcm9tcHRJbnB1dFByb3BzLCBcImlzTmF2QmFyVmFyaWFudFwiPjtcblxuY29uc3QgU3R5bGVkQ2xlYXJCdXR0b24gPSBzdHlsZWQoUGljdG9ncmFtQnV0dG9uKTxTdHlsZWRDbGVhckJ1dHRvblByb3BzPihcbiAgKHsgdGhlbWUsIGlzTmF2QmFyVmFyaWFudCB9KSA9PiAoe1xuICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgICB0b3A6IGlzTmF2QmFyVmFyaWFudCA/IDAgOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gIH0pXG4pO1xuXG4vLyBVc2luZyBmbG9hdCBpbiBvcmRlciB0byBhdm9pZCB0aGUgaW52aXNpYmxlIGFyZWEgYmV0d2VlbiB0aGUgc2xvdHNcbi8vIHRoYXQgcHJldmVudHMgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgZm9jdXNlZFxuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8eyBwb3NpdGlvbjogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfT4oXG4gICh7IHBvc2l0aW9uLCB0aGVtZSB9KSA9PiAoe1xuICAgIGZsb2F0OiBwb3NpdGlvbixcbiAgICBtYXJnaW46IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICBjdXJzb3I6IFwiZGVmYXVsdFwiLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkQ2xlYXIgPSBzdHlsZWQuZGl2KHtcbiAgY2xlYXI6IFwiYm90aFwiLFxufSk7XG5cbnR5cGUgU2VuZEJ1dHRvblByb3BzID0gT21pdDxSb3VuZEJ1dHRvblByb3BzLCBcImljb25cIiB8IFwidmFyaWFudFwiPiAmIHtcbiAgaWNvbj86IFwiYXJyb3ctdXBcIiB8IFwic2VhcmNoXCIgfCBcImFycm93LXJpZ2h0XCI7XG59O1xuXG50eXBlIEJvdHRvbVRvb2xiYXJDb25maWcgPSB7XG4gIC8qKiBUb29sYmFyIGVsZW1lbnRzIGJlbG93IHRleHQgYXJlYSAqL1xuICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgcmlnaHRDb250ZW50PzogUmVhY3RFbGVtZW50O1xufTtcblxudHlwZSBQcm9tcHRJbnB1dFNoYXJlZFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQ29sbGFwc2VkXCIgfCBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiXG4+ICZcbiAgUGljazxcbiAgICBBdXRvY29tcGxldGVMaXN0UHJvcHMsXG4gICAgXCJhdXRvY29tcGxldGVMaXN0SXRlbXNcIiB8IFwiYXV0b2NvbXBsZXRlTGlzdEZvb3RlclwiIHwgXCJwb3J0YWxDb250YWluZXJcIlxuICA+O1xuXG50eXBlIFByb21wdElucHV0V2l0aFRvb2xiYXJQcm9wcyA9IFByb21wdElucHV0U2hhcmVkUHJvcHMgJiB7XG4gIGJvdHRvbVRvb2xiYXI6IEJvdHRvbVRvb2xiYXJDb25maWc7XG4gIHNlbmRCdXR0b25Qcm9wcz86IFNlbmRCdXR0b25Qcm9wcztcbn07XG5cbnR5cGUgUHJvbXB0SW5wdXRXaXRob3V0VG9vbGJhclByb3BzID0gUHJvbXB0SW5wdXRTaGFyZWRQcm9wcyAmIHtcbiAgYm90dG9tVG9vbGJhcj86IHVuZGVmaW5lZDtcbiAgc2VuZEJ1dHRvblByb3BzPzogbmV2ZXI7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID1cbiAgfCBQcm9tcHRJbnB1dFdpdGhUb29sYmFyUHJvcHNcbiAgfCBQcm9tcHRJbnB1dFdpdGhvdXRUb29sYmFyUHJvcHM7XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgW2lzQ29sbGFwc2VkLCBzZXRJc0NvbGxhcHNlZF0gPSB1c2VTdGF0ZShpc05hdkJhclZhcmlhbnQpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQpICYmXG4gICAgICAhaXNDb2xsYXBzZWQgJiYgKFxuICAgICAgICA8PlxuICAgICAgICAgIHtib3R0b21Ub29sYmFyLmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwicmlnaHRcIiBkYXRhLWUyZS10ZXN0LWlkPVwiYm90dG9tVG9vbGJhclwiPlxuICAgICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgICAgYXJpYUF0dHJpYnV0ZXM9e3tcbiAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgPyBcIlByb2Nlc3NpbmcgcXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICA6IFwiU3VibWl0IHF1ZXJ5XCIsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB7Li4ubWVyZ2VkU2VuZEJ1dHRvblByb3BzfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshdmFsdWUgfHwgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICAgIDxTdHlsZWRDbGVhciAvPlxuICAgICAgICA8Lz5cbiAgICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9DdXN0b21Db250YWluZXI+XG4gICAgICAgICAgICB7aGludEVsbX1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8QXV0b2NvbXBsZXRlTGlzdFxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcz17YXV0b2NvbXBsZXRlTGlzdEl0ZW1zfVxuICAgICAgICAgIHRyaWdnZXJSZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgaXNPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RGb290ZXI9e2F1dG9jb21wbGV0ZUxpc3RGb290ZXJ9XG4gICAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgICAgb25MaXN0SXRlbUNsaWNrPXtoYW5kbGVMaXN0SXRlbUNsaWNrfVxuICAgICAgICAvPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuKTtcblxuY29uc3QgQ3VzdG9tQnV0dG9uID0gc3R5bGVkKEJ1dHRvbikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMubCxcbn0pKTtcblxuLy8gbmVlZCB0byBzaW1wbGlmeSB0aGlzIHR5cGUgZm9yIHJldXNlXG5jb25zdCBTdWdnZXN0aW9uQnV0dG9uID0gZm9yd2FyZFJlZihcbiAgPEMgZXh0ZW5kcyBSZWFjdC5FbGVtZW50VHlwZSA9IFwiYnV0dG9uXCI+KFxuICAgIHByb3BzOiBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZjxcbiAgICAgIEMsXG4gICAgICBPbWl0PEJ1dHRvblByb3BzLCBcInZhcmlhbnRcIiB8IFwic2l6ZVwiIHwgXCJyZWZcIj5cbiAgICA+LFxuICAgIHJlZjogUG9seW1vcnBoaWNSZWY8Qz5cbiAgKSA9PiA8Q3VzdG9tQnV0dG9uIHsuLi5wcm9wc30gdmFyaWFudD1cInNlY29uZGFyeVwiIHNpemU9XCJzXCIgcmVmPXtyZWZ9IC8+XG4pO1xuXG5leHBvcnQgY29uc3QgUHJvbXB0SW5wdXQgPSBPYmplY3QuYXNzaWduKFByb21wdElucHV0Q29tcG9uZW50LCB7XG4gIFN1Z2dlc3Rpb25CdXR0b24sXG59KSBhcyB0eXBlb2YgUHJvbXB0SW5wdXRDb21wb25lbnQgJiB7XG4gIFN1Z2dlc3Rpb25CdXR0b246IHR5cGVvZiBTdWdnZXN0aW9uQnV0dG9uO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzRWdDIn0= */"),StyledLeftIconContainer=(0,_styled.default)("div",{target:"e1t8vt4l2",label:"StyledLeftIconContainer"})(({theme})=>({position:"absolute",top:(0,_PromptTextArea.getPaddingVertical)(theme),left:(0,_PromptTextArea.getPaddingHorizontal)(theme)}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8eyBoaWRlQm9yZGVyOiBib29sZWFuIH0+KFxuICAoeyB0aGVtZSwgaGlkZUJvcmRlciB9KSA9PiAoe1xuICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICB9KSxcbiAgICBjdXJzb3I6IFwidGV4dFwiLFxuICAgIFtgJjpoYXModGV4dGFyZWE6Zm9jdXMtdmlzaWJsZSlgXToge1xuICAgICAgb3V0bGluZVdpZHRoOiAxLFxuICAgICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgICBvdXRsaW5lT2Zmc2V0OiAtMSxcbiAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG5cbiAgICAgIFwiQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MClcIjoge1xuICAgICAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxufSk7XG5cbmNvbnN0IFN0eWxlZExlZnRJY29uQ29udGFpbmVyID0gc3R5bGVkLmRpdigoeyB0aGVtZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSksXG4gIGxlZnQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lKSxcbn0pKTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lKSxcbiAgICAgIHJpZ2h0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSksXG4gICAgICB1c2VyU2VsZWN0OiBcIm5vbmVcIixcbiAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuICAgIH0pXG4gICk7XG5cbnR5cGUgU3R5bGVkQ2xlYXJCdXR0b25Qcm9wcyA9IFBpY3RvZ3JhbUJ1dHRvblByb3BzICZcbiAgUGljazxQcm9tcHRJbnB1dFByb3BzLCBcImlzTmF2QmFyVmFyaWFudFwiPjtcblxuY29uc3QgU3R5bGVkQ2xlYXJCdXR0b24gPSBzdHlsZWQoUGljdG9ncmFtQnV0dG9uKTxTdHlsZWRDbGVhckJ1dHRvblByb3BzPihcbiAgKHsgdGhlbWUsIGlzTmF2QmFyVmFyaWFudCB9KSA9PiAoe1xuICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgICB0b3A6IGlzTmF2QmFyVmFyaWFudCA/IDAgOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gIH0pXG4pO1xuXG4vLyBVc2luZyBmbG9hdCBpbiBvcmRlciB0byBhdm9pZCB0aGUgaW52aXNpYmxlIGFyZWEgYmV0d2VlbiB0aGUgc2xvdHNcbi8vIHRoYXQgcHJldmVudHMgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgZm9jdXNlZFxuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8eyBwb3NpdGlvbjogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfT4oXG4gICh7IHBvc2l0aW9uLCB0aGVtZSB9KSA9PiAoe1xuICAgIGZsb2F0OiBwb3NpdGlvbixcbiAgICBtYXJnaW46IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICBjdXJzb3I6IFwiZGVmYXVsdFwiLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkQ2xlYXIgPSBzdHlsZWQuZGl2KHtcbiAgY2xlYXI6IFwiYm90aFwiLFxufSk7XG5cbnR5cGUgU2VuZEJ1dHRvblByb3BzID0gT21pdDxSb3VuZEJ1dHRvblByb3BzLCBcImljb25cIiB8IFwidmFyaWFudFwiPiAmIHtcbiAgaWNvbj86IFwiYXJyb3ctdXBcIiB8IFwic2VhcmNoXCIgfCBcImFycm93LXJpZ2h0XCI7XG59O1xuXG50eXBlIEJvdHRvbVRvb2xiYXJDb25maWcgPSB7XG4gIC8qKiBUb29sYmFyIGVsZW1lbnRzIGJlbG93IHRleHQgYXJlYSAqL1xuICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgcmlnaHRDb250ZW50PzogUmVhY3RFbGVtZW50O1xufTtcblxudHlwZSBQcm9tcHRJbnB1dFNoYXJlZFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQ29sbGFwc2VkXCIgfCBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiXG4+ICZcbiAgUGljazxcbiAgICBBdXRvY29tcGxldGVMaXN0UHJvcHMsXG4gICAgXCJhdXRvY29tcGxldGVMaXN0SXRlbXNcIiB8IFwiYXV0b2NvbXBsZXRlTGlzdEZvb3RlclwiIHwgXCJwb3J0YWxDb250YWluZXJcIlxuICA+O1xuXG50eXBlIFByb21wdElucHV0V2l0aFRvb2xiYXJQcm9wcyA9IFByb21wdElucHV0U2hhcmVkUHJvcHMgJiB7XG4gIGJvdHRvbVRvb2xiYXI6IEJvdHRvbVRvb2xiYXJDb25maWc7XG4gIHNlbmRCdXR0b25Qcm9wcz86IFNlbmRCdXR0b25Qcm9wcztcbn07XG5cbnR5cGUgUHJvbXB0SW5wdXRXaXRob3V0VG9vbGJhclByb3BzID0gUHJvbXB0SW5wdXRTaGFyZWRQcm9wcyAmIHtcbiAgYm90dG9tVG9vbGJhcj86IHVuZGVmaW5lZDtcbiAgc2VuZEJ1dHRvblByb3BzPzogbmV2ZXI7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID1cbiAgfCBQcm9tcHRJbnB1dFdpdGhUb29sYmFyUHJvcHNcbiAgfCBQcm9tcHRJbnB1dFdpdGhvdXRUb29sYmFyUHJvcHM7XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgW2lzQ29sbGFwc2VkLCBzZXRJc0NvbGxhcHNlZF0gPSB1c2VTdGF0ZShpc05hdkJhclZhcmlhbnQpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQpICYmXG4gICAgICAhaXNDb2xsYXBzZWQgJiYgKFxuICAgICAgICA8PlxuICAgICAgICAgIHtib3R0b21Ub29sYmFyLmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwicmlnaHRcIiBkYXRhLWUyZS10ZXN0LWlkPVwiYm90dG9tVG9vbGJhclwiPlxuICAgICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgICAgYXJpYUF0dHJpYnV0ZXM9e3tcbiAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgPyBcIlByb2Nlc3NpbmcgcXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICA6IFwiU3VibWl0IHF1ZXJ5XCIsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB7Li4ubWVyZ2VkU2VuZEJ1dHRvblByb3BzfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshdmFsdWUgfHwgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICAgIDxTdHlsZWRDbGVhciAvPlxuICAgICAgICA8Lz5cbiAgICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9DdXN0b21Db250YWluZXI+XG4gICAgICAgICAgICB7aGludEVsbX1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8QXV0b2NvbXBsZXRlTGlzdFxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcz17YXV0b2NvbXBsZXRlTGlzdEl0ZW1zfVxuICAgICAgICAgIHRyaWdnZXJSZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgaXNPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RGb290ZXI9e2F1dG9jb21wbGV0ZUxpc3RGb290ZXJ9XG4gICAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgICAgb25MaXN0SXRlbUNsaWNrPXtoYW5kbGVMaXN0SXRlbUNsaWNrfVxuICAgICAgICAvPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuKTtcblxuY29uc3QgQ3VzdG9tQnV0dG9uID0gc3R5bGVkKEJ1dHRvbikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMubCxcbn0pKTtcblxuLy8gbmVlZCB0byBzaW1wbGlmeSB0aGlzIHR5cGUgZm9yIHJldXNlXG5jb25zdCBTdWdnZXN0aW9uQnV0dG9uID0gZm9yd2FyZFJlZihcbiAgPEMgZXh0ZW5kcyBSZWFjdC5FbGVtZW50VHlwZSA9IFwiYnV0dG9uXCI+KFxuICAgIHByb3BzOiBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZjxcbiAgICAgIEMsXG4gICAgICBPbWl0PEJ1dHRvblByb3BzLCBcInZhcmlhbnRcIiB8IFwic2l6ZVwiIHwgXCJyZWZcIj5cbiAgICA+LFxuICAgIHJlZjogUG9seW1vcnBoaWNSZWY8Qz5cbiAgKSA9PiA8Q3VzdG9tQnV0dG9uIHsuLi5wcm9wc30gdmFyaWFudD1cInNlY29uZGFyeVwiIHNpemU9XCJzXCIgcmVmPXtyZWZ9IC8+XG4pO1xuXG5leHBvcnQgY29uc3QgUHJvbXB0SW5wdXQgPSBPYmplY3QuYXNzaWduKFByb21wdElucHV0Q29tcG9uZW50LCB7XG4gIFN1Z2dlc3Rpb25CdXR0b24sXG59KSBhcyB0eXBlb2YgUHJvbXB0SW5wdXRDb21wb25lbnQgJiB7XG4gIFN1Z2dlc3Rpb25CdXR0b246IHR5cGVvZiBTdWdnZXN0aW9uQnV0dG9uO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEyRWdDIn0= */"),StyledEmptyStateTopRightContentContainer=(0,_styled.default)("div",{target:"e1t8vt4l3",label:"StyledEmptyStateTopRightContentContainer"})(({theme,isNavBarVariant})=>({position:"absolute",top:isNavBarVariant?theme.variables.size.spacing.xxs:(0,_PromptTextArea.getPaddingVertical)(theme),right:(0,_PromptTextArea.getPaddingHorizontal)(theme),userSelect:"none",pointerEvents:"none"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8eyBoaWRlQm9yZGVyOiBib29sZWFuIH0+KFxuICAoeyB0aGVtZSwgaGlkZUJvcmRlciB9KSA9PiAoe1xuICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICB9KSxcbiAgICBjdXJzb3I6IFwidGV4dFwiLFxuICAgIFtgJjpoYXModGV4dGFyZWE6Zm9jdXMtdmlzaWJsZSlgXToge1xuICAgICAgb3V0bGluZVdpZHRoOiAxLFxuICAgICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgICBvdXRsaW5lT2Zmc2V0OiAtMSxcbiAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG5cbiAgICAgIFwiQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MClcIjoge1xuICAgICAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxufSk7XG5cbmNvbnN0IFN0eWxlZExlZnRJY29uQ29udGFpbmVyID0gc3R5bGVkLmRpdigoeyB0aGVtZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSksXG4gIGxlZnQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lKSxcbn0pKTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lKSxcbiAgICAgIHJpZ2h0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSksXG4gICAgICB1c2VyU2VsZWN0OiBcIm5vbmVcIixcbiAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuICAgIH0pXG4gICk7XG5cbnR5cGUgU3R5bGVkQ2xlYXJCdXR0b25Qcm9wcyA9IFBpY3RvZ3JhbUJ1dHRvblByb3BzICZcbiAgUGljazxQcm9tcHRJbnB1dFByb3BzLCBcImlzTmF2QmFyVmFyaWFudFwiPjtcblxuY29uc3QgU3R5bGVkQ2xlYXJCdXR0b24gPSBzdHlsZWQoUGljdG9ncmFtQnV0dG9uKTxTdHlsZWRDbGVhckJ1dHRvblByb3BzPihcbiAgKHsgdGhlbWUsIGlzTmF2QmFyVmFyaWFudCB9KSA9PiAoe1xuICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgICB0b3A6IGlzTmF2QmFyVmFyaWFudCA/IDAgOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gIH0pXG4pO1xuXG4vLyBVc2luZyBmbG9hdCBpbiBvcmRlciB0byBhdm9pZCB0aGUgaW52aXNpYmxlIGFyZWEgYmV0d2VlbiB0aGUgc2xvdHNcbi8vIHRoYXQgcHJldmVudHMgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgZm9jdXNlZFxuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8eyBwb3NpdGlvbjogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfT4oXG4gICh7IHBvc2l0aW9uLCB0aGVtZSB9KSA9PiAoe1xuICAgIGZsb2F0OiBwb3NpdGlvbixcbiAgICBtYXJnaW46IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICBjdXJzb3I6IFwiZGVmYXVsdFwiLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkQ2xlYXIgPSBzdHlsZWQuZGl2KHtcbiAgY2xlYXI6IFwiYm90aFwiLFxufSk7XG5cbnR5cGUgU2VuZEJ1dHRvblByb3BzID0gT21pdDxSb3VuZEJ1dHRvblByb3BzLCBcImljb25cIiB8IFwidmFyaWFudFwiPiAmIHtcbiAgaWNvbj86IFwiYXJyb3ctdXBcIiB8IFwic2VhcmNoXCIgfCBcImFycm93LXJpZ2h0XCI7XG59O1xuXG50eXBlIEJvdHRvbVRvb2xiYXJDb25maWcgPSB7XG4gIC8qKiBUb29sYmFyIGVsZW1lbnRzIGJlbG93IHRleHQgYXJlYSAqL1xuICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgcmlnaHRDb250ZW50PzogUmVhY3RFbGVtZW50O1xufTtcblxudHlwZSBQcm9tcHRJbnB1dFNoYXJlZFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQ29sbGFwc2VkXCIgfCBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiXG4+ICZcbiAgUGljazxcbiAgICBBdXRvY29tcGxldGVMaXN0UHJvcHMsXG4gICAgXCJhdXRvY29tcGxldGVMaXN0SXRlbXNcIiB8IFwiYXV0b2NvbXBsZXRlTGlzdEZvb3RlclwiIHwgXCJwb3J0YWxDb250YWluZXJcIlxuICA+O1xuXG50eXBlIFByb21wdElucHV0V2l0aFRvb2xiYXJQcm9wcyA9IFByb21wdElucHV0U2hhcmVkUHJvcHMgJiB7XG4gIGJvdHRvbVRvb2xiYXI6IEJvdHRvbVRvb2xiYXJDb25maWc7XG4gIHNlbmRCdXR0b25Qcm9wcz86IFNlbmRCdXR0b25Qcm9wcztcbn07XG5cbnR5cGUgUHJvbXB0SW5wdXRXaXRob3V0VG9vbGJhclByb3BzID0gUHJvbXB0SW5wdXRTaGFyZWRQcm9wcyAmIHtcbiAgYm90dG9tVG9vbGJhcj86IHVuZGVmaW5lZDtcbiAgc2VuZEJ1dHRvblByb3BzPzogbmV2ZXI7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID1cbiAgfCBQcm9tcHRJbnB1dFdpdGhUb29sYmFyUHJvcHNcbiAgfCBQcm9tcHRJbnB1dFdpdGhvdXRUb29sYmFyUHJvcHM7XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgW2lzQ29sbGFwc2VkLCBzZXRJc0NvbGxhcHNlZF0gPSB1c2VTdGF0ZShpc05hdkJhclZhcmlhbnQpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQpICYmXG4gICAgICAhaXNDb2xsYXBzZWQgJiYgKFxuICAgICAgICA8PlxuICAgICAgICAgIHtib3R0b21Ub29sYmFyLmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwicmlnaHRcIiBkYXRhLWUyZS10ZXN0LWlkPVwiYm90dG9tVG9vbGJhclwiPlxuICAgICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgICAgYXJpYUF0dHJpYnV0ZXM9e3tcbiAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgPyBcIlByb2Nlc3NpbmcgcXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICA6IFwiU3VibWl0IHF1ZXJ5XCIsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB7Li4ubWVyZ2VkU2VuZEJ1dHRvblByb3BzfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshdmFsdWUgfHwgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICAgIDxTdHlsZWRDbGVhciAvPlxuICAgICAgICA8Lz5cbiAgICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9DdXN0b21Db250YWluZXI+XG4gICAgICAgICAgICB7aGludEVsbX1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8QXV0b2NvbXBsZXRlTGlzdFxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcz17YXV0b2NvbXBsZXRlTGlzdEl0ZW1zfVxuICAgICAgICAgIHRyaWdnZXJSZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgaXNPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RGb290ZXI9e2F1dG9jb21wbGV0ZUxpc3RGb290ZXJ9XG4gICAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgICAgb25MaXN0SXRlbUNsaWNrPXtoYW5kbGVMaXN0SXRlbUNsaWNrfVxuICAgICAgICAvPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuKTtcblxuY29uc3QgQ3VzdG9tQnV0dG9uID0gc3R5bGVkKEJ1dHRvbikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMubCxcbn0pKTtcblxuLy8gbmVlZCB0byBzaW1wbGlmeSB0aGlzIHR5cGUgZm9yIHJldXNlXG5jb25zdCBTdWdnZXN0aW9uQnV0dG9uID0gZm9yd2FyZFJlZihcbiAgPEMgZXh0ZW5kcyBSZWFjdC5FbGVtZW50VHlwZSA9IFwiYnV0dG9uXCI+KFxuICAgIHByb3BzOiBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZjxcbiAgICAgIEMsXG4gICAgICBPbWl0PEJ1dHRvblByb3BzLCBcInZhcmlhbnRcIiB8IFwic2l6ZVwiIHwgXCJyZWZcIj5cbiAgICA+LFxuICAgIHJlZjogUG9seW1vcnBoaWNSZWY8Qz5cbiAgKSA9PiA8Q3VzdG9tQnV0dG9uIHsuLi5wcm9wc30gdmFyaWFudD1cInNlY29uZGFyeVwiIHNpemU9XCJzXCIgcmVmPXtyZWZ9IC8+XG4pO1xuXG5leHBvcnQgY29uc3QgUHJvbXB0SW5wdXQgPSBPYmplY3QuYXNzaWduKFByb21wdElucHV0Q29tcG9uZW50LCB7XG4gIFN1Z2dlc3Rpb25CdXR0b24sXG59KSBhcyB0eXBlb2YgUHJvbXB0SW5wdXRDb21wb25lbnQgJiB7XG4gIFN1Z2dlc3Rpb25CdXR0b246IHR5cGVvZiBTdWdnZXN0aW9uQnV0dG9uO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF1RkUifQ== */"),StyledClearButton=(0,_styled.default)(_PictogramButton.PictogramButton,{target:"e1t8vt4l4",label:"StyledClearButton"})(({theme,isNavBarVariant})=>({position:"absolute",right:theme.variables.size.spacing.s,top:isNavBarVariant?0:theme.variables.size.spacing.s}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8eyBoaWRlQm9yZGVyOiBib29sZWFuIH0+KFxuICAoeyB0aGVtZSwgaGlkZUJvcmRlciB9KSA9PiAoe1xuICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICB9KSxcbiAgICBjdXJzb3I6IFwidGV4dFwiLFxuICAgIFtgJjpoYXModGV4dGFyZWE6Zm9jdXMtdmlzaWJsZSlgXToge1xuICAgICAgb3V0bGluZVdpZHRoOiAxLFxuICAgICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgICBvdXRsaW5lT2Zmc2V0OiAtMSxcbiAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG5cbiAgICAgIFwiQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MClcIjoge1xuICAgICAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxufSk7XG5cbmNvbnN0IFN0eWxlZExlZnRJY29uQ29udGFpbmVyID0gc3R5bGVkLmRpdigoeyB0aGVtZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSksXG4gIGxlZnQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lKSxcbn0pKTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lKSxcbiAgICAgIHJpZ2h0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSksXG4gICAgICB1c2VyU2VsZWN0OiBcIm5vbmVcIixcbiAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuICAgIH0pXG4gICk7XG5cbnR5cGUgU3R5bGVkQ2xlYXJCdXR0b25Qcm9wcyA9IFBpY3RvZ3JhbUJ1dHRvblByb3BzICZcbiAgUGljazxQcm9tcHRJbnB1dFByb3BzLCBcImlzTmF2QmFyVmFyaWFudFwiPjtcblxuY29uc3QgU3R5bGVkQ2xlYXJCdXR0b24gPSBzdHlsZWQoUGljdG9ncmFtQnV0dG9uKTxTdHlsZWRDbGVhckJ1dHRvblByb3BzPihcbiAgKHsgdGhlbWUsIGlzTmF2QmFyVmFyaWFudCB9KSA9PiAoe1xuICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgICB0b3A6IGlzTmF2QmFyVmFyaWFudCA/IDAgOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gIH0pXG4pO1xuXG4vLyBVc2luZyBmbG9hdCBpbiBvcmRlciB0byBhdm9pZCB0aGUgaW52aXNpYmxlIGFyZWEgYmV0d2VlbiB0aGUgc2xvdHNcbi8vIHRoYXQgcHJldmVudHMgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgZm9jdXNlZFxuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8eyBwb3NpdGlvbjogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfT4oXG4gICh7IHBvc2l0aW9uLCB0aGVtZSB9KSA9PiAoe1xuICAgIGZsb2F0OiBwb3NpdGlvbixcbiAgICBtYXJnaW46IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICBjdXJzb3I6IFwiZGVmYXVsdFwiLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkQ2xlYXIgPSBzdHlsZWQuZGl2KHtcbiAgY2xlYXI6IFwiYm90aFwiLFxufSk7XG5cbnR5cGUgU2VuZEJ1dHRvblByb3BzID0gT21pdDxSb3VuZEJ1dHRvblByb3BzLCBcImljb25cIiB8IFwidmFyaWFudFwiPiAmIHtcbiAgaWNvbj86IFwiYXJyb3ctdXBcIiB8IFwic2VhcmNoXCIgfCBcImFycm93LXJpZ2h0XCI7XG59O1xuXG50eXBlIEJvdHRvbVRvb2xiYXJDb25maWcgPSB7XG4gIC8qKiBUb29sYmFyIGVsZW1lbnRzIGJlbG93IHRleHQgYXJlYSAqL1xuICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgcmlnaHRDb250ZW50PzogUmVhY3RFbGVtZW50O1xufTtcblxudHlwZSBQcm9tcHRJbnB1dFNoYXJlZFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQ29sbGFwc2VkXCIgfCBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiXG4+ICZcbiAgUGljazxcbiAgICBBdXRvY29tcGxldGVMaXN0UHJvcHMsXG4gICAgXCJhdXRvY29tcGxldGVMaXN0SXRlbXNcIiB8IFwiYXV0b2NvbXBsZXRlTGlzdEZvb3RlclwiIHwgXCJwb3J0YWxDb250YWluZXJcIlxuICA+O1xuXG50eXBlIFByb21wdElucHV0V2l0aFRvb2xiYXJQcm9wcyA9IFByb21wdElucHV0U2hhcmVkUHJvcHMgJiB7XG4gIGJvdHRvbVRvb2xiYXI6IEJvdHRvbVRvb2xiYXJDb25maWc7XG4gIHNlbmRCdXR0b25Qcm9wcz86IFNlbmRCdXR0b25Qcm9wcztcbn07XG5cbnR5cGUgUHJvbXB0SW5wdXRXaXRob3V0VG9vbGJhclByb3BzID0gUHJvbXB0SW5wdXRTaGFyZWRQcm9wcyAmIHtcbiAgYm90dG9tVG9vbGJhcj86IHVuZGVmaW5lZDtcbiAgc2VuZEJ1dHRvblByb3BzPzogbmV2ZXI7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID1cbiAgfCBQcm9tcHRJbnB1dFdpdGhUb29sYmFyUHJvcHNcbiAgfCBQcm9tcHRJbnB1dFdpdGhvdXRUb29sYmFyUHJvcHM7XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgW2lzQ29sbGFwc2VkLCBzZXRJc0NvbGxhcHNlZF0gPSB1c2VTdGF0ZShpc05hdkJhclZhcmlhbnQpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQpICYmXG4gICAgICAhaXNDb2xsYXBzZWQgJiYgKFxuICAgICAgICA8PlxuICAgICAgICAgIHtib3R0b21Ub29sYmFyLmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwicmlnaHRcIiBkYXRhLWUyZS10ZXN0LWlkPVwiYm90dG9tVG9vbGJhclwiPlxuICAgICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgICAgYXJpYUF0dHJpYnV0ZXM9e3tcbiAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgPyBcIlByb2Nlc3NpbmcgcXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICA6IFwiU3VibWl0IHF1ZXJ5XCIsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB7Li4ubWVyZ2VkU2VuZEJ1dHRvblByb3BzfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshdmFsdWUgfHwgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICAgIDxTdHlsZWRDbGVhciAvPlxuICAgICAgICA8Lz5cbiAgICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9DdXN0b21Db250YWluZXI+XG4gICAgICAgICAgICB7aGludEVsbX1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8QXV0b2NvbXBsZXRlTGlzdFxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcz17YXV0b2NvbXBsZXRlTGlzdEl0ZW1zfVxuICAgICAgICAgIHRyaWdnZXJSZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgaXNPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RGb290ZXI9e2F1dG9jb21wbGV0ZUxpc3RGb290ZXJ9XG4gICAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgICAgb25MaXN0SXRlbUNsaWNrPXtoYW5kbGVMaXN0SXRlbUNsaWNrfVxuICAgICAgICAvPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuKTtcblxuY29uc3QgQ3VzdG9tQnV0dG9uID0gc3R5bGVkKEJ1dHRvbikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMubCxcbn0pKTtcblxuLy8gbmVlZCB0byBzaW1wbGlmeSB0aGlzIHR5cGUgZm9yIHJldXNlXG5jb25zdCBTdWdnZXN0aW9uQnV0dG9uID0gZm9yd2FyZFJlZihcbiAgPEMgZXh0ZW5kcyBSZWFjdC5FbGVtZW50VHlwZSA9IFwiYnV0dG9uXCI+KFxuICAgIHByb3BzOiBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZjxcbiAgICAgIEMsXG4gICAgICBPbWl0PEJ1dHRvblByb3BzLCBcInZhcmlhbnRcIiB8IFwic2l6ZVwiIHwgXCJyZWZcIj5cbiAgICA+LFxuICAgIHJlZjogUG9seW1vcnBoaWNSZWY8Qz5cbiAgKSA9PiA8Q3VzdG9tQnV0dG9uIHsuLi5wcm9wc30gdmFyaWFudD1cInNlY29uZGFyeVwiIHNpemU9XCJzXCIgcmVmPXtyZWZ9IC8+XG4pO1xuXG5leHBvcnQgY29uc3QgUHJvbXB0SW5wdXQgPSBPYmplY3QuYXNzaWduKFByb21wdElucHV0Q29tcG9uZW50LCB7XG4gIFN1Z2dlc3Rpb25CdXR0b24sXG59KSBhcyB0eXBlb2YgUHJvbXB0SW5wdXRDb21wb25lbnQgJiB7XG4gIFN1Z2dlc3Rpb25CdXR0b246IHR5cGVvZiBTdWdnZXN0aW9uQnV0dG9uO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFzRzBCIn0= */"),StyledSlot=(0,_styled.default)("div",{target:"e1t8vt4l5",label:"StyledSlot"})(({position,theme})=>({float:position,margin:theme.variables.size.spacing.m,cursor:"default"}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8eyBoaWRlQm9yZGVyOiBib29sZWFuIH0+KFxuICAoeyB0aGVtZSwgaGlkZUJvcmRlciB9KSA9PiAoe1xuICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICB9KSxcbiAgICBjdXJzb3I6IFwidGV4dFwiLFxuICAgIFtgJjpoYXModGV4dGFyZWE6Zm9jdXMtdmlzaWJsZSlgXToge1xuICAgICAgb3V0bGluZVdpZHRoOiAxLFxuICAgICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgICBvdXRsaW5lT2Zmc2V0OiAtMSxcbiAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG5cbiAgICAgIFwiQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MClcIjoge1xuICAgICAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxufSk7XG5cbmNvbnN0IFN0eWxlZExlZnRJY29uQ29udGFpbmVyID0gc3R5bGVkLmRpdigoeyB0aGVtZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSksXG4gIGxlZnQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lKSxcbn0pKTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lKSxcbiAgICAgIHJpZ2h0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSksXG4gICAgICB1c2VyU2VsZWN0OiBcIm5vbmVcIixcbiAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuICAgIH0pXG4gICk7XG5cbnR5cGUgU3R5bGVkQ2xlYXJCdXR0b25Qcm9wcyA9IFBpY3RvZ3JhbUJ1dHRvblByb3BzICZcbiAgUGljazxQcm9tcHRJbnB1dFByb3BzLCBcImlzTmF2QmFyVmFyaWFudFwiPjtcblxuY29uc3QgU3R5bGVkQ2xlYXJCdXR0b24gPSBzdHlsZWQoUGljdG9ncmFtQnV0dG9uKTxTdHlsZWRDbGVhckJ1dHRvblByb3BzPihcbiAgKHsgdGhlbWUsIGlzTmF2QmFyVmFyaWFudCB9KSA9PiAoe1xuICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgICB0b3A6IGlzTmF2QmFyVmFyaWFudCA/IDAgOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gIH0pXG4pO1xuXG4vLyBVc2luZyBmbG9hdCBpbiBvcmRlciB0byBhdm9pZCB0aGUgaW52aXNpYmxlIGFyZWEgYmV0d2VlbiB0aGUgc2xvdHNcbi8vIHRoYXQgcHJldmVudHMgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgZm9jdXNlZFxuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8eyBwb3NpdGlvbjogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfT4oXG4gICh7IHBvc2l0aW9uLCB0aGVtZSB9KSA9PiAoe1xuICAgIGZsb2F0OiBwb3NpdGlvbixcbiAgICBtYXJnaW46IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICBjdXJzb3I6IFwiZGVmYXVsdFwiLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkQ2xlYXIgPSBzdHlsZWQuZGl2KHtcbiAgY2xlYXI6IFwiYm90aFwiLFxufSk7XG5cbnR5cGUgU2VuZEJ1dHRvblByb3BzID0gT21pdDxSb3VuZEJ1dHRvblByb3BzLCBcImljb25cIiB8IFwidmFyaWFudFwiPiAmIHtcbiAgaWNvbj86IFwiYXJyb3ctdXBcIiB8IFwic2VhcmNoXCIgfCBcImFycm93LXJpZ2h0XCI7XG59O1xuXG50eXBlIEJvdHRvbVRvb2xiYXJDb25maWcgPSB7XG4gIC8qKiBUb29sYmFyIGVsZW1lbnRzIGJlbG93IHRleHQgYXJlYSAqL1xuICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgcmlnaHRDb250ZW50PzogUmVhY3RFbGVtZW50O1xufTtcblxudHlwZSBQcm9tcHRJbnB1dFNoYXJlZFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQ29sbGFwc2VkXCIgfCBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiXG4+ICZcbiAgUGljazxcbiAgICBBdXRvY29tcGxldGVMaXN0UHJvcHMsXG4gICAgXCJhdXRvY29tcGxldGVMaXN0SXRlbXNcIiB8IFwiYXV0b2NvbXBsZXRlTGlzdEZvb3RlclwiIHwgXCJwb3J0YWxDb250YWluZXJcIlxuICA+O1xuXG50eXBlIFByb21wdElucHV0V2l0aFRvb2xiYXJQcm9wcyA9IFByb21wdElucHV0U2hhcmVkUHJvcHMgJiB7XG4gIGJvdHRvbVRvb2xiYXI6IEJvdHRvbVRvb2xiYXJDb25maWc7XG4gIHNlbmRCdXR0b25Qcm9wcz86IFNlbmRCdXR0b25Qcm9wcztcbn07XG5cbnR5cGUgUHJvbXB0SW5wdXRXaXRob3V0VG9vbGJhclByb3BzID0gUHJvbXB0SW5wdXRTaGFyZWRQcm9wcyAmIHtcbiAgYm90dG9tVG9vbGJhcj86IHVuZGVmaW5lZDtcbiAgc2VuZEJ1dHRvblByb3BzPzogbmV2ZXI7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID1cbiAgfCBQcm9tcHRJbnB1dFdpdGhUb29sYmFyUHJvcHNcbiAgfCBQcm9tcHRJbnB1dFdpdGhvdXRUb29sYmFyUHJvcHM7XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgW2lzQ29sbGFwc2VkLCBzZXRJc0NvbGxhcHNlZF0gPSB1c2VTdGF0ZShpc05hdkJhclZhcmlhbnQpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQpICYmXG4gICAgICAhaXNDb2xsYXBzZWQgJiYgKFxuICAgICAgICA8PlxuICAgICAgICAgIHtib3R0b21Ub29sYmFyLmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwicmlnaHRcIiBkYXRhLWUyZS10ZXN0LWlkPVwiYm90dG9tVG9vbGJhclwiPlxuICAgICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgICAgYXJpYUF0dHJpYnV0ZXM9e3tcbiAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgPyBcIlByb2Nlc3NpbmcgcXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICA6IFwiU3VibWl0IHF1ZXJ5XCIsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB7Li4ubWVyZ2VkU2VuZEJ1dHRvblByb3BzfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshdmFsdWUgfHwgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICAgIDxTdHlsZWRDbGVhciAvPlxuICAgICAgICA8Lz5cbiAgICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9DdXN0b21Db250YWluZXI+XG4gICAgICAgICAgICB7aGludEVsbX1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8QXV0b2NvbXBsZXRlTGlzdFxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcz17YXV0b2NvbXBsZXRlTGlzdEl0ZW1zfVxuICAgICAgICAgIHRyaWdnZXJSZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgaXNPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RGb290ZXI9e2F1dG9jb21wbGV0ZUxpc3RGb290ZXJ9XG4gICAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgICAgb25MaXN0SXRlbUNsaWNrPXtoYW5kbGVMaXN0SXRlbUNsaWNrfVxuICAgICAgICAvPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuKTtcblxuY29uc3QgQ3VzdG9tQnV0dG9uID0gc3R5bGVkKEJ1dHRvbikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMubCxcbn0pKTtcblxuLy8gbmVlZCB0byBzaW1wbGlmeSB0aGlzIHR5cGUgZm9yIHJldXNlXG5jb25zdCBTdWdnZXN0aW9uQnV0dG9uID0gZm9yd2FyZFJlZihcbiAgPEMgZXh0ZW5kcyBSZWFjdC5FbGVtZW50VHlwZSA9IFwiYnV0dG9uXCI+KFxuICAgIHByb3BzOiBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZjxcbiAgICAgIEMsXG4gICAgICBPbWl0PEJ1dHRvblByb3BzLCBcInZhcmlhbnRcIiB8IFwic2l6ZVwiIHwgXCJyZWZcIj5cbiAgICA+LFxuICAgIHJlZjogUG9seW1vcnBoaWNSZWY8Qz5cbiAgKSA9PiA8Q3VzdG9tQnV0dG9uIHsuLi5wcm9wc30gdmFyaWFudD1cInNlY29uZGFyeVwiIHNpemU9XCJzXCIgcmVmPXtyZWZ9IC8+XG4pO1xuXG5leHBvcnQgY29uc3QgUHJvbXB0SW5wdXQgPSBPYmplY3QuYXNzaWduKFByb21wdElucHV0Q29tcG9uZW50LCB7XG4gIFN1Z2dlc3Rpb25CdXR0b24sXG59KSBhcyB0eXBlb2YgUHJvbXB0SW5wdXRDb21wb25lbnQgJiB7XG4gIFN1Z2dlc3Rpb25CdXR0b246IHR5cGVvZiBTdWdnZXN0aW9uQnV0dG9uO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnSG1CIn0= */"),StyledClear=(0,_styled.default)("div",{target:"e1t8vt4l6",label:"StyledClear"})({clear:"both"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8eyBoaWRlQm9yZGVyOiBib29sZWFuIH0+KFxuICAoeyB0aGVtZSwgaGlkZUJvcmRlciB9KSA9PiAoe1xuICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICB9KSxcbiAgICBjdXJzb3I6IFwidGV4dFwiLFxuICAgIFtgJjpoYXModGV4dGFyZWE6Zm9jdXMtdmlzaWJsZSlgXToge1xuICAgICAgb3V0bGluZVdpZHRoOiAxLFxuICAgICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgICBvdXRsaW5lT2Zmc2V0OiAtMSxcbiAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG5cbiAgICAgIFwiQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MClcIjoge1xuICAgICAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxufSk7XG5cbmNvbnN0IFN0eWxlZExlZnRJY29uQ29udGFpbmVyID0gc3R5bGVkLmRpdigoeyB0aGVtZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSksXG4gIGxlZnQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lKSxcbn0pKTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lKSxcbiAgICAgIHJpZ2h0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSksXG4gICAgICB1c2VyU2VsZWN0OiBcIm5vbmVcIixcbiAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuICAgIH0pXG4gICk7XG5cbnR5cGUgU3R5bGVkQ2xlYXJCdXR0b25Qcm9wcyA9IFBpY3RvZ3JhbUJ1dHRvblByb3BzICZcbiAgUGljazxQcm9tcHRJbnB1dFByb3BzLCBcImlzTmF2QmFyVmFyaWFudFwiPjtcblxuY29uc3QgU3R5bGVkQ2xlYXJCdXR0b24gPSBzdHlsZWQoUGljdG9ncmFtQnV0dG9uKTxTdHlsZWRDbGVhckJ1dHRvblByb3BzPihcbiAgKHsgdGhlbWUsIGlzTmF2QmFyVmFyaWFudCB9KSA9PiAoe1xuICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgICB0b3A6IGlzTmF2QmFyVmFyaWFudCA/IDAgOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gIH0pXG4pO1xuXG4vLyBVc2luZyBmbG9hdCBpbiBvcmRlciB0byBhdm9pZCB0aGUgaW52aXNpYmxlIGFyZWEgYmV0d2VlbiB0aGUgc2xvdHNcbi8vIHRoYXQgcHJldmVudHMgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgZm9jdXNlZFxuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8eyBwb3NpdGlvbjogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfT4oXG4gICh7IHBvc2l0aW9uLCB0aGVtZSB9KSA9PiAoe1xuICAgIGZsb2F0OiBwb3NpdGlvbixcbiAgICBtYXJnaW46IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICBjdXJzb3I6IFwiZGVmYXVsdFwiLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkQ2xlYXIgPSBzdHlsZWQuZGl2KHtcbiAgY2xlYXI6IFwiYm90aFwiLFxufSk7XG5cbnR5cGUgU2VuZEJ1dHRvblByb3BzID0gT21pdDxSb3VuZEJ1dHRvblByb3BzLCBcImljb25cIiB8IFwidmFyaWFudFwiPiAmIHtcbiAgaWNvbj86IFwiYXJyb3ctdXBcIiB8IFwic2VhcmNoXCIgfCBcImFycm93LXJpZ2h0XCI7XG59O1xuXG50eXBlIEJvdHRvbVRvb2xiYXJDb25maWcgPSB7XG4gIC8qKiBUb29sYmFyIGVsZW1lbnRzIGJlbG93IHRleHQgYXJlYSAqL1xuICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgcmlnaHRDb250ZW50PzogUmVhY3RFbGVtZW50O1xufTtcblxudHlwZSBQcm9tcHRJbnB1dFNoYXJlZFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQ29sbGFwc2VkXCIgfCBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiXG4+ICZcbiAgUGljazxcbiAgICBBdXRvY29tcGxldGVMaXN0UHJvcHMsXG4gICAgXCJhdXRvY29tcGxldGVMaXN0SXRlbXNcIiB8IFwiYXV0b2NvbXBsZXRlTGlzdEZvb3RlclwiIHwgXCJwb3J0YWxDb250YWluZXJcIlxuICA+O1xuXG50eXBlIFByb21wdElucHV0V2l0aFRvb2xiYXJQcm9wcyA9IFByb21wdElucHV0U2hhcmVkUHJvcHMgJiB7XG4gIGJvdHRvbVRvb2xiYXI6IEJvdHRvbVRvb2xiYXJDb25maWc7XG4gIHNlbmRCdXR0b25Qcm9wcz86IFNlbmRCdXR0b25Qcm9wcztcbn07XG5cbnR5cGUgUHJvbXB0SW5wdXRXaXRob3V0VG9vbGJhclByb3BzID0gUHJvbXB0SW5wdXRTaGFyZWRQcm9wcyAmIHtcbiAgYm90dG9tVG9vbGJhcj86IHVuZGVmaW5lZDtcbiAgc2VuZEJ1dHRvblByb3BzPzogbmV2ZXI7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID1cbiAgfCBQcm9tcHRJbnB1dFdpdGhUb29sYmFyUHJvcHNcbiAgfCBQcm9tcHRJbnB1dFdpdGhvdXRUb29sYmFyUHJvcHM7XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgW2lzQ29sbGFwc2VkLCBzZXRJc0NvbGxhcHNlZF0gPSB1c2VTdGF0ZShpc05hdkJhclZhcmlhbnQpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQpICYmXG4gICAgICAhaXNDb2xsYXBzZWQgJiYgKFxuICAgICAgICA8PlxuICAgICAgICAgIHtib3R0b21Ub29sYmFyLmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwicmlnaHRcIiBkYXRhLWUyZS10ZXN0LWlkPVwiYm90dG9tVG9vbGJhclwiPlxuICAgICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgICAgYXJpYUF0dHJpYnV0ZXM9e3tcbiAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgPyBcIlByb2Nlc3NpbmcgcXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICA6IFwiU3VibWl0IHF1ZXJ5XCIsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB7Li4ubWVyZ2VkU2VuZEJ1dHRvblByb3BzfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshdmFsdWUgfHwgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICAgIDxTdHlsZWRDbGVhciAvPlxuICAgICAgICA8Lz5cbiAgICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9DdXN0b21Db250YWluZXI+XG4gICAgICAgICAgICB7aGludEVsbX1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8QXV0b2NvbXBsZXRlTGlzdFxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcz17YXV0b2NvbXBsZXRlTGlzdEl0ZW1zfVxuICAgICAgICAgIHRyaWdnZXJSZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgaXNPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RGb290ZXI9e2F1dG9jb21wbGV0ZUxpc3RGb290ZXJ9XG4gICAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgICAgb25MaXN0SXRlbUNsaWNrPXtoYW5kbGVMaXN0SXRlbUNsaWNrfVxuICAgICAgICAvPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuKTtcblxuY29uc3QgQ3VzdG9tQnV0dG9uID0gc3R5bGVkKEJ1dHRvbikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMubCxcbn0pKTtcblxuLy8gbmVlZCB0byBzaW1wbGlmeSB0aGlzIHR5cGUgZm9yIHJldXNlXG5jb25zdCBTdWdnZXN0aW9uQnV0dG9uID0gZm9yd2FyZFJlZihcbiAgPEMgZXh0ZW5kcyBSZWFjdC5FbGVtZW50VHlwZSA9IFwiYnV0dG9uXCI+KFxuICAgIHByb3BzOiBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZjxcbiAgICAgIEMsXG4gICAgICBPbWl0PEJ1dHRvblByb3BzLCBcInZhcmlhbnRcIiB8IFwic2l6ZVwiIHwgXCJyZWZcIj5cbiAgICA+LFxuICAgIHJlZjogUG9seW1vcnBoaWNSZWY8Qz5cbiAgKSA9PiA8Q3VzdG9tQnV0dG9uIHsuLi5wcm9wc30gdmFyaWFudD1cInNlY29uZGFyeVwiIHNpemU9XCJzXCIgcmVmPXtyZWZ9IC8+XG4pO1xuXG5leHBvcnQgY29uc3QgUHJvbXB0SW5wdXQgPSBPYmplY3QuYXNzaWduKFByb21wdElucHV0Q29tcG9uZW50LCB7XG4gIFN1Z2dlc3Rpb25CdXR0b24sXG59KSBhcyB0eXBlb2YgUHJvbXB0SW5wdXRDb21wb25lbnQgJiB7XG4gIFN1Z2dlc3Rpb25CdXR0b246IHR5cGVvZiBTdWdnZXN0aW9uQnV0dG9uO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3SG9CIn0= */"),defaultSendButtonProps={type:"submit",icon:"arrow-up"},PromptInputComponent=(0,_react.forwardRef)(({"data-e2e-test-id":dataE2eTestId,name,autocompleteListItems=[],value,bottomToolbar,isProcessing,sendButtonProps,autocompleteListFooter,clearButtonAriaLabel="Clear input",hint,emptyStateTopRightContent,isNavBarVariant,portalContainer,leftIcon,onChange,onComplete,onClear,onEnterKey,onFocus,onBlur,onKeyDown,...rest},ref)=>{let containerRef=(0,_react.useRef)(null),textAreaContainerRef=(0,_react.useRef)(null),internalRef=(0,_react.useRef)(null),[selectedIndex,setSelectedIndex]=(0,_react.useState)(-1),[isCollapsed,setIsCollapsed]=(0,_react.useState)(isNavBarVariant),userTypedQuery=(0,_react.useRef)(""),[isAutocompleteListOpen,setIsAutocompleteListOpen]=(0,_react.useState)(!1),textAreaRef=ref||internalRef,mergedSendButtonProps={...defaultSendButtonProps,...sendButtonProps??{}};(0,_useOutsideClick.useOutsideClick)(containerRef,evt=>{containerRef.current.contains(evt.target)||portalContainer?.contains(evt.target)||null===evt.target||setIsCollapsed(!0)},!isCollapsed&&isNavBarVariant);let closeAutocompleteList=(0,_react.useCallback)(()=>{setIsAutocompleteListOpen(!1),setSelectedIndex(-1)},[]),openAutocompleteList=(0,_react.useCallback)(()=>{autocompleteListItems.length&&(setIsAutocompleteListOpen(!0),setSelectedIndex(-1))},[autocompleteListItems]),acceptTextSelection=()=>{userTypedQuery.current=value,textAreaRef.current.setSelectionRange(value.length,value.length)};(0,_react.useEffect)(()=>{autocompleteListItems.length&&!isCollapsed?openAutocompleteList():closeAutocompleteList()},[autocompleteListItems,openAutocompleteList,closeAutocompleteList,isCollapsed]),(0,_react.useEffect)(()=>{value&&value!==userTypedQuery.current&&isAutocompleteListOpen&&textAreaRef.current.setSelectionRange(userTypedQuery.current.length,value.length)},[value,textAreaRef,isAutocompleteListOpen]),(0,_react.useEffect)(()=>{let handler,container=containerRef.current;return isNavBarVariant&&container&&(handler=evt=>{containerRef.current.contains(evt.relatedTarget)||portalContainer?.contains(evt.relatedTarget)||null===evt.relatedTarget||setIsCollapsed(!0)},window.addEventListener("focusout",handler)),()=>{container&&window.removeEventListener("focusout",handler)}},[isNavBarVariant,containerRef,portalContainer]);let flattenedListItems=(0,_react.useMemo)(()=>{let list=[];return autocompleteListItems.forEach(listItem=>{listItem.items.forEach((item,index)=>{list.push({category:listItem.category,indexInCategory:index,value:item.value,id:(0,_CategoryList.getListItemId)(name,listItem.category,index)})})}),list},[autocompleteListItems,name]),handleSelectedIndexChange=(index,evt)=>{if(setSelectedIndex(index),-1!==index){let{category,value:itemValue}=flattenedListItems[index];onComplete({value:itemValue,category,evt,index})}},handlePreventFocus=evt=>{evt.preventDefault()},selectedListItem=-1!==selectedIndex?flattenedListItems[selectedIndex]:null,emptyStateTopRightContentElm=emptyStateTopRightContent?_react.default.createElement(StyledEmptyStateTopRightContentContainer,{isNavBarVariant:isNavBarVariant},_react.default.createElement(_Text.Text,{color:"tertiary"},emptyStateTopRightContent)):null,clearButtonElm=value?_react.default.createElement(StyledClearButton,{size:"s",icon:"x-circle-filled","aria-label":clearButtonAriaLabel,isNavBarVariant:isNavBarVariant,onPointerDown:handlePreventFocus,onClick:onClear}):emptyStateTopRightContentElm,hintElm=!!hint&&_react.default.createElement(_Inline.Inline,{alignItems:"center"},_react.default.createElement(_Text.Text,{size:"s",color:"tertiary"},hint)),bottomToolbarElm=(bottomToolbar?.rightContent||bottomToolbar?.leftContent)&&!isCollapsed&&_react.default.createElement(_react.default.Fragment,null,bottomToolbar.leftContent&&_react.default.createElement(StyledSlot,{position:"left"},bottomToolbar.leftContent),_react.default.createElement(StyledSlot,{position:"right","data-e2e-test-id":"bottomToolbar"},_react.default.createElement(_Inline.Inline,{space:"xs",vAlignItems:"center"},bottomToolbar?.rightContent,_react.default.createElement(_RoundButton.RoundButton,{ariaAttributes:{"aria-label":isProcessing?"Processing query":"Submit query"},...mergedSendButtonProps,disabled:!value||mergedSendButtonProps.disabled,onClick:evt=>{mergedSendButtonProps.onClick?.(evt),closeAutocompleteList(),isNavBarVariant&&setIsCollapsed(!0)},onPointerDown:handlePreventFocus,variant:"primary",icon:isProcessing?"stop-filled":mergedSendButtonProps.icon}))),_react.default.createElement(StyledClear,null));return _react.default.createElement(_react.default.Fragment,null,_react.default.createElement("div",{"data-e2e-test-id":dataE2eTestId,"data-ds-id":"PromptInput",ref:containerRef,translate:"no"},_react.default.createElement(_Stack.Stack,{space:"s"},_react.default.createElement(CustomContainer,{elevation:0,borderRadius:isCollapsed?"xs":"m",hideBorder:isCollapsed},_react.default.createElement("div",{ref:textAreaContainerRef,onPointerDown:evt=>{evt.target===evt.currentTarget&&(textAreaRef.current?.focus(),evt.preventDefault())}},_react.default.createElement(StyledTextAreaContainer,null,leftIcon&&_react.default.createElement(StyledLeftIconContainer,null,_react.default.createElement(_Icon.Icon,{name:leftIcon,size:"m",color:"tertiary","aria-hidden":"true"})),_react.default.createElement(_PromptTextArea.PromptTextArea,{...rest,dataE2eTestId:dataE2eTestId?`${dataE2eTestId}-input`:void 0,name:name,value:value,ref:textAreaRef,isNavBarVariant:isNavBarVariant,selectedListItem:selectedListItem,isAutocompleteListOpen:isAutocompleteListOpen,isCollapsed:isCollapsed,hasLeftIcon:!!leftIcon,onFocus:evt=>{setIsCollapsed(!1),onFocus?.(evt)},onBlur:evt=>{value!==userTypedQuery.current&&onComplete?.({value:userTypedQuery.current,evt}),onBlur?.(evt)},onChange:evt=>{userTypedQuery.current=evt.target.value,onChange(evt)},onKeyDown:evt=>{if(isAutocompleteListOpen)switch(evt.key){case"Escape":closeAutocompleteList(),onComplete({value:userTypedQuery.current,evt}),isNavBarVariant&&setIsCollapsed(!0);break;case"Enter":!evt.shiftKey&&(evt.preventDefault(),closeAutocompleteList(),acceptTextSelection(),value&&(onEnterKey?.(),isNavBarVariant&&setIsCollapsed(!0)));break;case" ":acceptTextSelection();break;case"ArrowUp":evt.preventDefault(),selectedIndex>-1&&handleSelectedIndexChange(selectedIndex-1,evt);break;case"ArrowDown":evt.preventDefault(),selectedIndex<flattenedListItems.length-1&&handleSelectedIndexChange(selectedIndex+1,evt)}else switch(evt.key){case"Escape":onClear?.();break;case"Enter":!evt.shiftKey&&(evt.preventDefault(),value&&onEnterKey?.())}onKeyDown?.(evt)}}),clearButtonElm),bottomToolbarElm)),hintElm)),_react.default.createElement(_AutocompleteList.AutocompleteList,{name:name,value:value,autocompleteListItems:autocompleteListItems,triggerRef:textAreaContainerRef,selectedListItem:selectedListItem,isOpen:isAutocompleteListOpen,autocompleteListFooter:autocompleteListFooter,portalContainer:portalContainer,onListItemClick:(category,indexInCategory,evt)=>{handleSelectedIndexChange(flattenedListItems.findIndex(listItem=>listItem.category===category&&listItem.indexInCategory===indexInCategory),evt),closeAutocompleteList(),isNavBarVariant&&setIsCollapsed(!0)}}))}),CustomButton=(0,_styled.default)(_Button.Button,{target:"e1t8vt4l7",label:"CustomButton"})(({theme})=>({borderRadius:theme.variables.size.borderRadius.l}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8eyBoaWRlQm9yZGVyOiBib29sZWFuIH0+KFxuICAoeyB0aGVtZSwgaGlkZUJvcmRlciB9KSA9PiAoe1xuICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICB9KSxcbiAgICBjdXJzb3I6IFwidGV4dFwiLFxuICAgIFtgJjpoYXModGV4dGFyZWE6Zm9jdXMtdmlzaWJsZSlgXToge1xuICAgICAgb3V0bGluZVdpZHRoOiAxLFxuICAgICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgICBvdXRsaW5lT2Zmc2V0OiAtMSxcbiAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG5cbiAgICAgIFwiQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MClcIjoge1xuICAgICAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxufSk7XG5cbmNvbnN0IFN0eWxlZExlZnRJY29uQ29udGFpbmVyID0gc3R5bGVkLmRpdigoeyB0aGVtZSB9KSA9PiAoe1xuICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICB0b3A6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSksXG4gIGxlZnQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lKSxcbn0pKTtcblxudHlwZSBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHMgPSBQaWNrPFxuICBQcm9tcHRJbnB1dFByb3BzLFxuICBcImlzTmF2QmFyVmFyaWFudFwiXG4+O1xuXG5jb25zdCBTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyID1cbiAgc3R5bGVkLmRpdjxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyUHJvcHM+KFxuICAgICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgICB0b3A6IGlzTmF2QmFyVmFyaWFudFxuICAgICAgICA/IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcueHhzXG4gICAgICAgIDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lKSxcbiAgICAgIHJpZ2h0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSksXG4gICAgICB1c2VyU2VsZWN0OiBcIm5vbmVcIixcbiAgICAgIHBvaW50ZXJFdmVudHM6IFwibm9uZVwiLFxuICAgIH0pXG4gICk7XG5cbnR5cGUgU3R5bGVkQ2xlYXJCdXR0b25Qcm9wcyA9IFBpY3RvZ3JhbUJ1dHRvblByb3BzICZcbiAgUGljazxQcm9tcHRJbnB1dFByb3BzLCBcImlzTmF2QmFyVmFyaWFudFwiPjtcblxuY29uc3QgU3R5bGVkQ2xlYXJCdXR0b24gPSBzdHlsZWQoUGljdG9ncmFtQnV0dG9uKTxTdHlsZWRDbGVhckJ1dHRvblByb3BzPihcbiAgKHsgdGhlbWUsIGlzTmF2QmFyVmFyaWFudCB9KSA9PiAoe1xuICAgIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gICAgcmlnaHQ6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgICB0b3A6IGlzTmF2QmFyVmFyaWFudCA/IDAgOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gIH0pXG4pO1xuXG4vLyBVc2luZyBmbG9hdCBpbiBvcmRlciB0byBhdm9pZCB0aGUgaW52aXNpYmxlIGFyZWEgYmV0d2VlbiB0aGUgc2xvdHNcbi8vIHRoYXQgcHJldmVudHMgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgZm9jdXNlZFxuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8eyBwb3NpdGlvbjogXCJsZWZ0XCIgfCBcInJpZ2h0XCIgfT4oXG4gICh7IHBvc2l0aW9uLCB0aGVtZSB9KSA9PiAoe1xuICAgIGZsb2F0OiBwb3NpdGlvbixcbiAgICBtYXJnaW46IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcubSxcbiAgICBjdXJzb3I6IFwiZGVmYXVsdFwiLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkQ2xlYXIgPSBzdHlsZWQuZGl2KHtcbiAgY2xlYXI6IFwiYm90aFwiLFxufSk7XG5cbnR5cGUgU2VuZEJ1dHRvblByb3BzID0gT21pdDxSb3VuZEJ1dHRvblByb3BzLCBcImljb25cIiB8IFwidmFyaWFudFwiPiAmIHtcbiAgaWNvbj86IFwiYXJyb3ctdXBcIiB8IFwic2VhcmNoXCIgfCBcImFycm93LXJpZ2h0XCI7XG59O1xuXG50eXBlIEJvdHRvbVRvb2xiYXJDb25maWcgPSB7XG4gIC8qKiBUb29sYmFyIGVsZW1lbnRzIGJlbG93IHRleHQgYXJlYSAqL1xuICBsZWZ0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgcmlnaHRDb250ZW50PzogUmVhY3RFbGVtZW50O1xufTtcblxudHlwZSBQcm9tcHRJbnB1dFNoYXJlZFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQ29sbGFwc2VkXCIgfCBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiXG4+ICZcbiAgUGljazxcbiAgICBBdXRvY29tcGxldGVMaXN0UHJvcHMsXG4gICAgXCJhdXRvY29tcGxldGVMaXN0SXRlbXNcIiB8IFwiYXV0b2NvbXBsZXRlTGlzdEZvb3RlclwiIHwgXCJwb3J0YWxDb250YWluZXJcIlxuICA+O1xuXG50eXBlIFByb21wdElucHV0V2l0aFRvb2xiYXJQcm9wcyA9IFByb21wdElucHV0U2hhcmVkUHJvcHMgJiB7XG4gIGJvdHRvbVRvb2xiYXI6IEJvdHRvbVRvb2xiYXJDb25maWc7XG4gIHNlbmRCdXR0b25Qcm9wcz86IFNlbmRCdXR0b25Qcm9wcztcbn07XG5cbnR5cGUgUHJvbXB0SW5wdXRXaXRob3V0VG9vbGJhclByb3BzID0gUHJvbXB0SW5wdXRTaGFyZWRQcm9wcyAmIHtcbiAgYm90dG9tVG9vbGJhcj86IHVuZGVmaW5lZDtcbiAgc2VuZEJ1dHRvblByb3BzPzogbmV2ZXI7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID1cbiAgfCBQcm9tcHRJbnB1dFdpdGhUb29sYmFyUHJvcHNcbiAgfCBQcm9tcHRJbnB1dFdpdGhvdXRUb29sYmFyUHJvcHM7XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgW2lzQ29sbGFwc2VkLCBzZXRJc0NvbGxhcHNlZF0gPSB1c2VTdGF0ZShpc05hdkJhclZhcmlhbnQpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKHZhbHVlLmxlbmd0aCwgdmFsdWUubGVuZ3RoKTtcbiAgICB9O1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoICYmICFpc0NvbGxhcHNlZCkge1xuICAgICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9XG4gICAgfSwgW1xuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLFxuICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QsXG4gICAgICBpc0NvbGxhcHNlZCxcbiAgICBdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgJiYgaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQubGVuZ3RoLFxuICAgICAgICAgIHZhbHVlLmxlbmd0aFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0sIFt2YWx1ZSwgdGV4dEFyZWFSZWYsIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW5dKTtcblxuICAgIC8vIERldGVybWluZSB3aGVuIGZvY3VzIGxlYXZlcyB0aGUgY29udGFpbmVyIHRvIGNvbGxhcHNlIGl0XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGxldCBoYW5kbGVyOiAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB2b2lkO1xuICAgICAgY29uc3QgY29udGFpbmVyID0gY29udGFpbmVyUmVmLmN1cnJlbnQ7XG5cbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQgJiYgY29udGFpbmVyKSB7XG4gICAgICAgIGhhbmRsZXIgPSAoZXZ0OiBGb2N1c0V2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgZXZ0LnJlbGF0ZWRUYXJnZXQgIT09IG51bGxcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgaWYgKGNvbnRhaW5lcikge1xuICAgICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfSwgW2lzTmF2QmFyVmFyaWFudCwgY29udGFpbmVyUmVmLCBwb3J0YWxDb250YWluZXJdKTtcblxuICAgIGNvbnN0IGZsYXR0ZW5lZExpc3RJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdDogRmxhdHRlbmVkTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMuZm9yRWFjaCgobGlzdEl0ZW0pID0+IHtcbiAgICAgICAgbGlzdEl0ZW0uaXRlbXMuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgICBsaXN0LnB1c2goe1xuICAgICAgICAgICAgY2F0ZWdvcnk6IGxpc3RJdGVtLmNhdGVnb3J5LFxuICAgICAgICAgICAgaW5kZXhJbkNhdGVnb3J5OiBpbmRleCxcbiAgICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgICAgaWQ6IGdldExpc3RJdGVtSWQobmFtZSwgbGlzdEl0ZW0uY2F0ZWdvcnksIGluZGV4KSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXMsIG5hbWVdKTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UgPSAoaW5kZXg6IG51bWJlciwgZXZ0PzogU3ludGhldGljRXZlbnQpID0+IHtcbiAgICAgIHNldFNlbGVjdGVkSW5kZXgoaW5kZXgpO1xuICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICBjb25zdCB7IGNhdGVnb3J5LCB2YWx1ZTogaXRlbVZhbHVlIH0gPSBmbGF0dGVuZWRMaXN0SXRlbXNbaW5kZXhdO1xuXG4gICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogaXRlbVZhbHVlLCBjYXRlZ29yeSwgZXZ0LCBpbmRleCB9KTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTGlzdEl0ZW1DbGljayA9IChcbiAgICAgIGNhdGVnb3J5OiBzdHJpbmcsXG4gICAgICBpbmRleEluQ2F0ZWdvcnk6IG51bWJlcixcbiAgICAgIGV2dD86IE1vdXNlRXZlbnRcbiAgICApID0+IHtcbiAgICAgIGNvbnN0IGluZGV4ID0gZmxhdHRlbmVkTGlzdEl0ZW1zLmZpbmRJbmRleChcbiAgICAgICAgKGxpc3RJdGVtKSA9PlxuICAgICAgICAgIGxpc3RJdGVtLmNhdGVnb3J5ID09PSBjYXRlZ29yeSAmJlxuICAgICAgICAgIGxpc3RJdGVtLmluZGV4SW5DYXRlZ29yeSA9PT0gaW5kZXhJbkNhdGVnb3J5XG4gICAgICApO1xuXG4gICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKGluZGV4LCBldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVLZXlEb3duOiBLZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmIChpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcblxuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCIgXCI6XG4gICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dVcFwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCAtIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiQXJyb3dEb3duXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4IDwgZmxhdHRlbmVkTGlzdEl0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4ICsgMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHN3aXRjaCAoZXZ0LmtleSkge1xuICAgICAgICAgIGNhc2UgXCJFc2NhcGVcIjpcbiAgICAgICAgICAgIG9uQ2xlYXI/LigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkVudGVyXCI6XG4gICAgICAgICAgICBpZiAoIWV2dC5zaGlmdEtleSkge1xuICAgICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBvbktleURvd24/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2U6IENoYW5nZUV2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQgPSBldnQudGFyZ2V0LnZhbHVlO1xuICAgICAgb25DaGFuZ2UoZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlRm9jdXM6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgc2V0SXNDb2xsYXBzZWQoZmFsc2UpO1xuICAgICAgb25Gb2N1cz8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUJsdXI6IEZvY3VzRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50KSB7XG4gICAgICAgIG9uQ29tcGxldGU/Lih7IHZhbHVlOiB1c2VyVHlwZWRRdWVyeS5jdXJyZW50LCBldnQgfSk7XG4gICAgICB9XG4gICAgICBvbkJsdXI/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVTZW5kQnV0dG9uQ2xpY2sgPSAoZXZ0OiBNb3VzZUV2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4ge1xuICAgICAgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLm9uQ2xpY2s/LihldnQpO1xuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50KSB7XG4gICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVQcmV2ZW50Rm9jdXMgPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIFByZXZlbnQgdGhlIHRleHRhcmVhIGZyb20gYmVpbmcgdW5mb2N1c2VkXG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlT25Db250YWluZXJQb2ludGVyRG93biA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gRm9jdXMgdGV4dGFyZWEgd2hlbiBjbGlja2luZyBvbiB0aGUgY29udGFpbmVyIG9ubHlcbiAgICAgIGlmIChldnQudGFyZ2V0ID09PSBldnQuY3VycmVudFRhcmdldCkge1xuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgc2VsZWN0ZWRMaXN0SXRlbSA9XG4gICAgICBzZWxlY3RlZEluZGV4ICE9PSAtMSA/IGZsYXR0ZW5lZExpc3RJdGVtc1tzZWxlY3RlZEluZGV4XSA6IG51bGw7XG5cbiAgICBjb25zdCBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtID0gZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCA/IChcbiAgICAgIDxTdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyXG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgPlxuICAgICAgICA8VGV4dCBjb2xvcj1cInRlcnRpYXJ5XCI+e2VtcHR5U3RhdGVUb3BSaWdodENvbnRlbnR9PC9UZXh0PlxuICAgICAgPC9TdHlsZWRFbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50Q29udGFpbmVyPlxuICAgICkgOiBudWxsO1xuXG4gICAgY29uc3QgY2xlYXJCdXR0b25FbG0gPSB2YWx1ZSA/IChcbiAgICAgIDxTdHlsZWRDbGVhckJ1dHRvblxuICAgICAgICBzaXplPVwic1wiXG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQpICYmXG4gICAgICAhaXNDb2xsYXBzZWQgJiYgKFxuICAgICAgICA8PlxuICAgICAgICAgIHtib3R0b21Ub29sYmFyLmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwibGVmdFwiPntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdHlsZWRTbG90IHBvc2l0aW9uPVwicmlnaHRcIiBkYXRhLWUyZS10ZXN0LWlkPVwiYm90dG9tVG9vbGJhclwiPlxuICAgICAgICAgICAgPElubGluZSBzcGFjZT1cInhzXCIgdkFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudH1cbiAgICAgICAgICAgICAgPFJvdW5kQnV0dG9uXG4gICAgICAgICAgICAgICAgYXJpYUF0dHJpYnV0ZXM9e3tcbiAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgPyBcIlByb2Nlc3NpbmcgcXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICA6IFwiU3VibWl0IHF1ZXJ5XCIsXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICB7Li4ubWVyZ2VkU2VuZEJ1dHRvblByb3BzfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshdmFsdWUgfHwgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgIGljb249e2lzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29ufVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9JbmxpbmU+XG4gICAgICAgICAgPC9TdHlsZWRTbG90PlxuICAgICAgICAgIDxTdHlsZWRDbGVhciAvPlxuICAgICAgICA8Lz5cbiAgICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGRhdGEtZTJlLXRlc3QtaWQ9e2RhdGFFMmVUZXN0SWR9XG4gICAgICAgICAgZGF0YS1kcy1pZD1cIlByb21wdElucHV0XCJcbiAgICAgICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgICAgICAvLyBUcmFuc2xhdGlvbiBkaXNhYmxlZCBmb3IgY29uc2lzdGVuY3kgd2l0aCB0aGUgYXV0b2NvbXBsZXRlIGxpc3RcbiAgICAgICAgICB0cmFuc2xhdGU9XCJub1wiXG4gICAgICAgID5cbiAgICAgICAgICA8U3RhY2sgc3BhY2U9XCJzXCI+XG4gICAgICAgICAgICA8Q3VzdG9tQ29udGFpbmVyXG4gICAgICAgICAgICAgIGVsZXZhdGlvbj17MH1cbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPXtpc0NvbGxhcHNlZCA/IFwieHNcIiA6IFwibVwifVxuICAgICAgICAgICAgICBoaWRlQm9yZGVyPXtpc0NvbGxhcHNlZH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9DdXN0b21Db250YWluZXI+XG4gICAgICAgICAgICB7aGludEVsbX1cbiAgICAgICAgICA8L1N0YWNrPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8QXV0b2NvbXBsZXRlTGlzdFxuICAgICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcz17YXV0b2NvbXBsZXRlTGlzdEl0ZW1zfVxuICAgICAgICAgIHRyaWdnZXJSZWY9e3RleHRBcmVhQ29udGFpbmVyUmVmfVxuICAgICAgICAgIHNlbGVjdGVkTGlzdEl0ZW09e3NlbGVjdGVkTGlzdEl0ZW19XG4gICAgICAgICAgaXNPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgIGF1dG9jb21wbGV0ZUxpc3RGb290ZXI9e2F1dG9jb21wbGV0ZUxpc3RGb290ZXJ9XG4gICAgICAgICAgcG9ydGFsQ29udGFpbmVyPXtwb3J0YWxDb250YWluZXJ9XG4gICAgICAgICAgb25MaXN0SXRlbUNsaWNrPXtoYW5kbGVMaXN0SXRlbUNsaWNrfVxuICAgICAgICAvPlxuICAgICAgPC8+XG4gICAgKTtcbiAgfVxuKTtcblxuY29uc3QgQ3VzdG9tQnV0dG9uID0gc3R5bGVkKEJ1dHRvbikoKHsgdGhlbWUgfSkgPT4gKHtcbiAgYm9yZGVyUmFkaXVzOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5ib3JkZXJSYWRpdXMubCxcbn0pKTtcblxuLy8gbmVlZCB0byBzaW1wbGlmeSB0aGlzIHR5cGUgZm9yIHJldXNlXG5jb25zdCBTdWdnZXN0aW9uQnV0dG9uID0gZm9yd2FyZFJlZihcbiAgPEMgZXh0ZW5kcyBSZWFjdC5FbGVtZW50VHlwZSA9IFwiYnV0dG9uXCI+KFxuICAgIHByb3BzOiBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZjxcbiAgICAgIEMsXG4gICAgICBPbWl0PEJ1dHRvblByb3BzLCBcInZhcmlhbnRcIiB8IFwic2l6ZVwiIHwgXCJyZWZcIj5cbiAgICA+LFxuICAgIHJlZjogUG9seW1vcnBoaWNSZWY8Qz5cbiAgKSA9PiA8Q3VzdG9tQnV0dG9uIHsuLi5wcm9wc30gdmFyaWFudD1cInNlY29uZGFyeVwiIHNpemU9XCJzXCIgcmVmPXtyZWZ9IC8+XG4pO1xuXG5leHBvcnQgY29uc3QgUHJvbXB0SW5wdXQgPSBPYmplY3QuYXNzaWduKFByb21wdElucHV0Q29tcG9uZW50LCB7XG4gIFN1Z2dlc3Rpb25CdXR0b24sXG59KSBhcyB0eXBlb2YgUHJvbXB0SW5wdXRDb21wb25lbnQgJiB7XG4gIFN1Z2dlc3Rpb25CdXR0b246IHR5cGVvZiBTdWdnZXN0aW9uQnV0dG9uO1xufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3a0JxQiJ9 */"),PromptInput=Object.assign(PromptInputComponent,{SuggestionButton:(0,_react.forwardRef)((props,ref)=>_react.default.createElement(CustomButton,{...props,variant:"secondary",size:"s",ref:ref}))});