@amboss/design-system 3.23.0 → 3.24.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.
@@ -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"),_Icon=require("../Icon/Icon"),CustomContainer=(0,_styled.default)(_Container.Container,{target:"e865e320",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+KFxuICAoeyB0aGVtZSwgaGlkZUJvcmRlciB9KSA9PiAoe1xuICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICB9KSxcbiAgICBjdXJzb3I6IFwidGV4dFwiLFxuICAgIFtgJjpoYXModGV4dGFyZWE6Zm9jdXMtdmlzaWJsZSlgXToge1xuICAgICAgb3V0bGluZVdpZHRoOiAxLFxuICAgICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgICBvdXRsaW5lT2Zmc2V0OiAtMSxcbiAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG5cbiAgICAgIFwiQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MClcIjoge1xuICAgICAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuY29uc3QgU3R5bGVkTGVmdEljb25Db250YWluZXIgPSBzdHlsZWQuZGl2KCh7IHRoZW1lIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lKSxcbiAgbGVmdDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUpLFxufSkpO1xuXG50eXBlIFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJQcm9wcyA9IFBpY2s8XG4gIFByb21wdElucHV0UHJvcHMsXG4gIFwiaXNOYXZCYXJWYXJpYW50XCJcbj47XG5cbmNvbnN0IFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgPVxuICBzdHlsZWQuZGl2PFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJQcm9wcz4oXG4gICAgKHsgdGhlbWUsIGlzTmF2QmFyVmFyaWFudCB9KSA9PiAoe1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHRvcDogaXNOYXZCYXJWYXJpYW50XG4gICAgICAgID8gdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54eHNcbiAgICAgICAgOiBnZXRQYWRkaW5nVmVydGljYWwodGhlbWUpLFxuICAgICAgcmlnaHQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lKSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFNsb3RzQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGRpc3BsYXk6IFwiZmxleFwiLFxuICBmbGV4V3JhcDogXCJ3cmFwXCIsXG4gIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG59KTtcblxuLy8gSXQgbmVlZHMgbWFyZ2luIGR1ZSB0byBlbXB0eSBjbGlja2FibGUgc3BhY2UgdGhhdCBmb2N1c2VzIHRoZSB0ZXh0YXJlYVxuLy8gU2xvdHMgc2hvdWxkIG5vdCBiZSBpbiB0aGUgZGl2LCBiZWNhdXNlIGFyZWEgYmV0d2VlbiBzaG91bGQgYmUgY2xpY2thYmxlIGFsc29cbnR5cGUgU2xvdFByb3BzID0ge1xuICBzaWRlPzogXCJyaWdodFwiO1xufTtcbmNvbnN0IFN0eWxlZFNsb3QgPSBzdHlsZWQuZGl2PFNsb3RQcm9wcz4oKHsgdGhlbWUsIHNpZGUgfSkgPT4gKHtcbiAgbWFyZ2luOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm0sXG5cbiAgLi4uKHNpZGUgPT09IFwicmlnaHRcIiAmJiB7XG4gICAgbWFyZ2luTGVmdDogXCJhdXRvXCIsXG4gIH0pLFxufSkpO1xuXG50eXBlIFNlbmRCdXR0b25Qcm9wcyA9IE9taXQ8Um91bmRCdXR0b25Qcm9wcywgXCJpY29uXCIgfCBcInZhcmlhbnRcIj4gJiB7XG4gIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiO1xufTtcblxudHlwZSBCb3R0b21Ub29sYmFyQ29uZmlnID0ge1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgbGVmdENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogQ3VycmVudGx5IHNob3dzIHNlbmQgYnV0dG9uIHByb2Nlc3Npbmcgc3RhdGUgICovXG4gIGJvdHRvbVRvb2xiYXI/OiBCb3R0b21Ub29sYmFyQ29uZmlnO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBTZW5kQnV0dG9uUHJvcHM7XG4gIGlzUHJvY2Vzc2luZz86IGJvb2xlYW47XG4gIGNsZWFyQnV0dG9uQXJpYUxhYmVsPzogc3RyaW5nO1xuICBoaW50PzogUmVhY3RFbGVtZW50O1xuICAvKiogU2hvd3MgaW4gdGhlIGNsZWFyIGJ1dHRvbiBzcGFjZSBpbiBlbXB0eSBzdGF0ZSAqL1xuICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICBvbkNsZWFyOiAoKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gdXNlciBzZWxlY3RzIChvciByZWplY3RzKSBhIGxpc3QgaXRlbSBmcm9tIGF1dG9jb21wbGV0ZSBsaXN0ICovXG4gIG9uQ29tcGxldGU/OiAoe1xuICAgIHZhbHVlLFxuICAgIGNhdGVnb3J5LFxuICAgIGV2dCxcbiAgICBpbmRleCxcbiAgfToge1xuICAgIHZhbHVlOiBMaXN0SXRlbVZhbHVlO1xuICAgIGNhdGVnb3J5Pzogc3RyaW5nO1xuICAgIGV2dD86IFN5bnRoZXRpY0V2ZW50O1xuICAgIGluZGV4PzogbnVtYmVyO1xuICB9KSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIG9uIEVudGVyIGtleSB0byBzdWJtaXQgdGhlIGZvcm0gICovXG4gIG9uRW50ZXJLZXk6ICgpID0+IHZvaWQ7XG4gIC8qKiBSZW5kZXJzIGFuIGljb24gdG8gdGhlIGxlZnQgaW5zaWRlIHRoZSB0ZXh0YXJlYSAqL1xuICBsZWZ0SWNvbj86IEljb25OYW1lO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCIgfCBcImhhc0xlZnRJY29uXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgW2lzQ29sbGFwc2VkLCBzZXRJc0NvbGxhcHNlZF0gPSB1c2VTdGF0ZShpc05hdkJhclZhcmlhbnQpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICBpZiAoXG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQgIT09IHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uRW5kXG4gICAgICApIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZSh2YWx1ZS5sZW5ndGgsIHZhbHVlLmxlbmd0aCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCAmJiAhaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyxcbiAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0LFxuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0LFxuICAgICAgaXNDb2xsYXBzZWQsXG4gICAgXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ICYmIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZShcbiAgICAgICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50Lmxlbmd0aCxcbiAgICAgICAgICB2YWx1ZS5sZW5ndGhcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LCBbdmFsdWUsIHRleHRBcmVhUmVmLCBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSk7XG5cbiAgICAvLyBEZXRlcm1pbmUgd2hlbiBmb2N1cyBsZWF2ZXMgdGhlIGNvbnRhaW5lciB0byBjb2xsYXBzZSBpdFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBsZXQgaGFuZGxlcjogKGV2dDogRm9jdXNFdmVudCkgPT4gdm9pZDtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRhaW5lclJlZi5jdXJyZW50O1xuXG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50ICYmIGNvbnRhaW5lcikge1xuICAgICAgICBoYW5kbGVyID0gKGV2dDogRm9jdXNFdmVudCkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFjb250YWluZXJSZWYuY3VycmVudC5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgIXBvcnRhbENvbnRhaW5lcj8uY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgIGV2dC5yZWxhdGVkVGFyZ2V0ICE9PSBudWxsXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0sIFtpc05hdkJhclZhcmlhbnQsIGNvbnRhaW5lclJlZiwgcG9ydGFsQ29udGFpbmVyXSk7XG5cbiAgICBjb25zdCBmbGF0dGVuZWRMaXN0SXRlbXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IGxpc3Q6IEZsYXR0ZW5lZExpc3RJdGVtW10gPSBbXTtcblxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmZvckVhY2goKGxpc3RJdGVtKSA9PiB7XG4gICAgICAgIGxpc3RJdGVtLml0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgbGlzdC5wdXNoKHtcbiAgICAgICAgICAgIGNhdGVnb3J5OiBsaXN0SXRlbS5jYXRlZ29yeSxcbiAgICAgICAgICAgIGluZGV4SW5DYXRlZ29yeTogaW5kZXgsXG4gICAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgICAgICAgIGlkOiBnZXRMaXN0SXRlbUlkKG5hbWUsIGxpc3RJdGVtLmNhdGVnb3J5LCBpbmRleCksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbGlzdDtcbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLCBuYW1lXSk7XG5cbiAgICBjb25zdCBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlID0gKGluZGV4OiBudW1iZXIsIGV2dD86IFN5bnRoZXRpY0V2ZW50KSA9PiB7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KGluZGV4KTtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgY29uc3QgeyBjYXRlZ29yeSwgdmFsdWU6IGl0ZW1WYWx1ZSB9ID0gZmxhdHRlbmVkTGlzdEl0ZW1zW2luZGV4XTtcblxuICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IGl0ZW1WYWx1ZSwgY2F0ZWdvcnksIGV2dCwgaW5kZXggfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUxpc3RJdGVtQ2xpY2sgPSAoXG4gICAgICBjYXRlZ29yeTogc3RyaW5nLFxuICAgICAgaW5kZXhJbkNhdGVnb3J5OiBudW1iZXIsXG4gICAgICBldnQ/OiBNb3VzZUV2ZW50XG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IGZsYXR0ZW5lZExpc3RJdGVtcy5maW5kSW5kZXgoXG4gICAgICAgIChsaXN0SXRlbSkgPT5cbiAgICAgICAgICBsaXN0SXRlbS5jYXRlZ29yeSA9PT0gY2F0ZWdvcnkgJiZcbiAgICAgICAgICBsaXN0SXRlbS5pbmRleEluQ2F0ZWdvcnkgPT09IGluZGV4SW5DYXRlZ29yeVxuICAgICAgKTtcblxuICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShpbmRleCwgZXZ0KTtcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlS2V5RG93bjogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAoaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiIFwiOlxuICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkFycm93VXBcIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggLSAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkFycm93RG93blwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA8IGZsYXR0ZW5lZExpc3RJdGVtcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCArIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBvbkNsZWFyPy4oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgb25LZXlEb3duPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlOiBDaGFuZ2VFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gZXZ0LnRhcmdldC52YWx1ZTtcbiAgICAgIG9uQ2hhbmdlKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUZvY3VzOiBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHNldElzQ29sbGFwc2VkKGZhbHNlKTtcbiAgICAgIG9uRm9jdXM/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVCbHVyOiBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCkge1xuICAgICAgICBvbkNvbXBsZXRlPy4oeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgfVxuICAgICAgb25CbHVyPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlU2VuZEJ1dHRvbkNsaWNrID0gKGV2dDogTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHtcbiAgICAgIG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5vbkNsaWNrPy4oZXZ0KTtcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlUHJldmVudEZvY3VzID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBQcmV2ZW50IHRoZSB0ZXh0YXJlYSBmcm9tIGJlaW5nIHVuZm9jdXNlZFxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd24gPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIEZvY3VzIHRleHRhcmVhIHdoZW4gY2xpY2tpbmcgb24gdGhlIGNvbnRhaW5lciBvbmx5XG4gICAgICBpZiAoZXZ0LnRhcmdldCA9PT0gZXZ0LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbGVjdGVkTGlzdEl0ZW0gPVxuICAgICAgc2VsZWN0ZWRJbmRleCAhPT0gLTEgPyBmbGF0dGVuZWRMaXN0SXRlbXNbc2VsZWN0ZWRJbmRleF0gOiBudWxsO1xuXG4gICAgY29uc3QgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbSA9IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQgPyAoXG4gICAgICA8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclxuICAgICAgICBpc05hdkJhclZhcmlhbnQ9e2lzTmF2QmFyVmFyaWFudH1cbiAgICAgID5cbiAgICAgICAgPFRleHQgY29sb3I9XCJ0ZXJ0aWFyeVwiPntlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50fTwvVGV4dD5cbiAgICAgIDwvU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lcj5cbiAgICApIDogbnVsbDtcblxuICAgIGNvbnN0IGNsZWFyQnV0dG9uRWxtID0gdmFsdWUgPyAoXG4gICAgICA8U3R5bGVkQ2xlYXJCdXR0b25cbiAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgfHxcbiAgICAgICEhc2VuZEJ1dHRvblByb3BzKSAmJlxuICAgICAgIWlzQ29sbGFwc2VkICYmIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7Ym90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgJiYgKFxuICAgICAgICAgICAgPFN0eWxlZFNsb3Q+e2JvdHRvbVRvb2xiYXIubGVmdENvbnRlbnR9PC9TdHlsZWRTbG90PlxuICAgICAgICAgICl9XG4gICAgICAgICAgPFN0eWxlZFNsb3QgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIiBzaWRlPVwicmlnaHRcIj5cbiAgICAgICAgICAgIDxJbmxpbmUgc3BhY2U9XCJ4c1wiIHZBbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnR9XG4gICAgICAgICAgICAgIHtzZW5kQnV0dG9uUHJvcHMgJiYgKFxuICAgICAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgYXJpYUF0dHJpYnV0ZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IGlzUHJvY2Vzc2luZ1xuICAgICAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICA6IFwiU3VibWl0IHF1ZXJ5XCIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXshdmFsdWUgfHwgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZEJ1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17XG4gICAgICAgICAgICAgICAgICAgIGlzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29uXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvSW5saW5lPlxuICAgICAgICAgIDwvU3R5bGVkU2xvdD5cbiAgICAgICAgPC8+XG4gICAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICBlbGV2YXRpb249ezB9XG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17aXNDb2xsYXBzZWQgPyBcInhzXCIgOiBcIm1cIn1cbiAgICAgICAgICAgICAgaGlkZUJvcmRlcj17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlEd0IifQ== */"),StyledTextAreaContainer=(0,_styled.default)("div",{target:"e865e321",label:"StyledTextAreaContainer"})({borderRadius:"inherit",position:"relative",width:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8eyBoaWRlQm9yZGVyOiBib29sZWFuIH0+KFxuICAoeyB0aGVtZSwgaGlkZUJvcmRlciB9KSA9PiAoe1xuICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICB9KSxcbiAgICBjdXJzb3I6IFwidGV4dFwiLFxuICAgIFtgJjpoYXModGV4dGFyZWE6Zm9jdXMtdmlzaWJsZSlgXToge1xuICAgICAgb3V0bGluZVdpZHRoOiAxLFxuICAgICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgICBvdXRsaW5lT2Zmc2V0OiAtMSxcbiAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG5cbiAgICAgIFwiQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MClcIjoge1xuICAgICAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuY29uc3QgU3R5bGVkTGVmdEljb25Db250YWluZXIgPSBzdHlsZWQuZGl2KCh7IHRoZW1lIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lKSxcbiAgbGVmdDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUpLFxufSkpO1xuXG50eXBlIFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJQcm9wcyA9IFBpY2s8XG4gIFByb21wdElucHV0UHJvcHMsXG4gIFwiaXNOYXZCYXJWYXJpYW50XCJcbj47XG5cbmNvbnN0IFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgPVxuICBzdHlsZWQuZGl2PFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJQcm9wcz4oXG4gICAgKHsgdGhlbWUsIGlzTmF2QmFyVmFyaWFudCB9KSA9PiAoe1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHRvcDogaXNOYXZCYXJWYXJpYW50XG4gICAgICAgID8gdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54eHNcbiAgICAgICAgOiBnZXRQYWRkaW5nVmVydGljYWwodGhlbWUpLFxuICAgICAgcmlnaHQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lKSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFNsb3RzQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGRpc3BsYXk6IFwiZmxleFwiLFxuICBmbGV4V3JhcDogXCJ3cmFwXCIsXG4gIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG59KTtcblxuLy8gSXQgbmVlZHMgbWFyZ2luIGR1ZSB0byBlbXB0eSBjbGlja2FibGUgc3BhY2UgdGhhdCBmb2N1c2VzIHRoZSB0ZXh0YXJlYVxuLy8gU2xvdHMgc2hvdWxkIG5vdCBiZSBpbiB0aGUgZGl2LCBiZWNhdXNlIGFyZWEgYmV0d2VlbiBzaG91bGQgYmUgY2xpY2thYmxlIGFsc29cbnR5cGUgU2xvdFByb3BzID0ge1xuICBzaWRlPzogXCJyaWdodFwiO1xufTtcbmNvbnN0IFN0eWxlZFNsb3QgPSBzdHlsZWQuZGl2PFNsb3RQcm9wcz4oKHsgdGhlbWUsIHNpZGUgfSkgPT4gKHtcbiAgbWFyZ2luOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm0sXG5cbiAgLi4uKHNpZGUgPT09IFwicmlnaHRcIiAmJiB7XG4gICAgbWFyZ2luTGVmdDogXCJhdXRvXCIsXG4gIH0pLFxufSkpO1xuXG50eXBlIFNlbmRCdXR0b25Qcm9wcyA9IE9taXQ8Um91bmRCdXR0b25Qcm9wcywgXCJpY29uXCIgfCBcInZhcmlhbnRcIj4gJiB7XG4gIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiO1xufTtcblxudHlwZSBCb3R0b21Ub29sYmFyQ29uZmlnID0ge1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgbGVmdENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogQ3VycmVudGx5IHNob3dzIHNlbmQgYnV0dG9uIHByb2Nlc3Npbmcgc3RhdGUgICovXG4gIGJvdHRvbVRvb2xiYXI/OiBCb3R0b21Ub29sYmFyQ29uZmlnO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBTZW5kQnV0dG9uUHJvcHM7XG4gIGlzUHJvY2Vzc2luZz86IGJvb2xlYW47XG4gIGNsZWFyQnV0dG9uQXJpYUxhYmVsPzogc3RyaW5nO1xuICBoaW50PzogUmVhY3RFbGVtZW50O1xuICAvKiogU2hvd3MgaW4gdGhlIGNsZWFyIGJ1dHRvbiBzcGFjZSBpbiBlbXB0eSBzdGF0ZSAqL1xuICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICBvbkNsZWFyOiAoKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gdXNlciBzZWxlY3RzIChvciByZWplY3RzKSBhIGxpc3QgaXRlbSBmcm9tIGF1dG9jb21wbGV0ZSBsaXN0ICovXG4gIG9uQ29tcGxldGU/OiAoe1xuICAgIHZhbHVlLFxuICAgIGNhdGVnb3J5LFxuICAgIGV2dCxcbiAgICBpbmRleCxcbiAgfToge1xuICAgIHZhbHVlOiBMaXN0SXRlbVZhbHVlO1xuICAgIGNhdGVnb3J5Pzogc3RyaW5nO1xuICAgIGV2dD86IFN5bnRoZXRpY0V2ZW50O1xuICAgIGluZGV4PzogbnVtYmVyO1xuICB9KSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIG9uIEVudGVyIGtleSB0byBzdWJtaXQgdGhlIGZvcm0gICovXG4gIG9uRW50ZXJLZXk6ICgpID0+IHZvaWQ7XG4gIC8qKiBSZW5kZXJzIGFuIGljb24gdG8gdGhlIGxlZnQgaW5zaWRlIHRoZSB0ZXh0YXJlYSAqL1xuICBsZWZ0SWNvbj86IEljb25OYW1lO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCIgfCBcImhhc0xlZnRJY29uXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgW2lzQ29sbGFwc2VkLCBzZXRJc0NvbGxhcHNlZF0gPSB1c2VTdGF0ZShpc05hdkJhclZhcmlhbnQpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICBpZiAoXG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQgIT09IHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uRW5kXG4gICAgICApIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZSh2YWx1ZS5sZW5ndGgsIHZhbHVlLmxlbmd0aCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCAmJiAhaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyxcbiAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0LFxuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0LFxuICAgICAgaXNDb2xsYXBzZWQsXG4gICAgXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ICYmIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZShcbiAgICAgICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50Lmxlbmd0aCxcbiAgICAgICAgICB2YWx1ZS5sZW5ndGhcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LCBbdmFsdWUsIHRleHRBcmVhUmVmLCBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSk7XG5cbiAgICAvLyBEZXRlcm1pbmUgd2hlbiBmb2N1cyBsZWF2ZXMgdGhlIGNvbnRhaW5lciB0byBjb2xsYXBzZSBpdFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBsZXQgaGFuZGxlcjogKGV2dDogRm9jdXNFdmVudCkgPT4gdm9pZDtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRhaW5lclJlZi5jdXJyZW50O1xuXG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50ICYmIGNvbnRhaW5lcikge1xuICAgICAgICBoYW5kbGVyID0gKGV2dDogRm9jdXNFdmVudCkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFjb250YWluZXJSZWYuY3VycmVudC5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgIXBvcnRhbENvbnRhaW5lcj8uY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgIGV2dC5yZWxhdGVkVGFyZ2V0ICE9PSBudWxsXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0sIFtpc05hdkJhclZhcmlhbnQsIGNvbnRhaW5lclJlZiwgcG9ydGFsQ29udGFpbmVyXSk7XG5cbiAgICBjb25zdCBmbGF0dGVuZWRMaXN0SXRlbXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IGxpc3Q6IEZsYXR0ZW5lZExpc3RJdGVtW10gPSBbXTtcblxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmZvckVhY2goKGxpc3RJdGVtKSA9PiB7XG4gICAgICAgIGxpc3RJdGVtLml0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgbGlzdC5wdXNoKHtcbiAgICAgICAgICAgIGNhdGVnb3J5OiBsaXN0SXRlbS5jYXRlZ29yeSxcbiAgICAgICAgICAgIGluZGV4SW5DYXRlZ29yeTogaW5kZXgsXG4gICAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgICAgICAgIGlkOiBnZXRMaXN0SXRlbUlkKG5hbWUsIGxpc3RJdGVtLmNhdGVnb3J5LCBpbmRleCksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbGlzdDtcbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLCBuYW1lXSk7XG5cbiAgICBjb25zdCBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlID0gKGluZGV4OiBudW1iZXIsIGV2dD86IFN5bnRoZXRpY0V2ZW50KSA9PiB7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KGluZGV4KTtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgY29uc3QgeyBjYXRlZ29yeSwgdmFsdWU6IGl0ZW1WYWx1ZSB9ID0gZmxhdHRlbmVkTGlzdEl0ZW1zW2luZGV4XTtcblxuICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IGl0ZW1WYWx1ZSwgY2F0ZWdvcnksIGV2dCwgaW5kZXggfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUxpc3RJdGVtQ2xpY2sgPSAoXG4gICAgICBjYXRlZ29yeTogc3RyaW5nLFxuICAgICAgaW5kZXhJbkNhdGVnb3J5OiBudW1iZXIsXG4gICAgICBldnQ/OiBNb3VzZUV2ZW50XG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IGZsYXR0ZW5lZExpc3RJdGVtcy5maW5kSW5kZXgoXG4gICAgICAgIChsaXN0SXRlbSkgPT5cbiAgICAgICAgICBsaXN0SXRlbS5jYXRlZ29yeSA9PT0gY2F0ZWdvcnkgJiZcbiAgICAgICAgICBsaXN0SXRlbS5pbmRleEluQ2F0ZWdvcnkgPT09IGluZGV4SW5DYXRlZ29yeVxuICAgICAgKTtcblxuICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShpbmRleCwgZXZ0KTtcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlS2V5RG93bjogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAoaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiIFwiOlxuICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkFycm93VXBcIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggLSAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkFycm93RG93blwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA8IGZsYXR0ZW5lZExpc3RJdGVtcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCArIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBvbkNsZWFyPy4oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgb25LZXlEb3duPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlOiBDaGFuZ2VFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gZXZ0LnRhcmdldC52YWx1ZTtcbiAgICAgIG9uQ2hhbmdlKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUZvY3VzOiBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHNldElzQ29sbGFwc2VkKGZhbHNlKTtcbiAgICAgIG9uRm9jdXM/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVCbHVyOiBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCkge1xuICAgICAgICBvbkNvbXBsZXRlPy4oeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgfVxuICAgICAgb25CbHVyPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlU2VuZEJ1dHRvbkNsaWNrID0gKGV2dDogTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHtcbiAgICAgIG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5vbkNsaWNrPy4oZXZ0KTtcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlUHJldmVudEZvY3VzID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBQcmV2ZW50IHRoZSB0ZXh0YXJlYSBmcm9tIGJlaW5nIHVuZm9jdXNlZFxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd24gPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIEZvY3VzIHRleHRhcmVhIHdoZW4gY2xpY2tpbmcgb24gdGhlIGNvbnRhaW5lciBvbmx5XG4gICAgICBpZiAoZXZ0LnRhcmdldCA9PT0gZXZ0LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbGVjdGVkTGlzdEl0ZW0gPVxuICAgICAgc2VsZWN0ZWRJbmRleCAhPT0gLTEgPyBmbGF0dGVuZWRMaXN0SXRlbXNbc2VsZWN0ZWRJbmRleF0gOiBudWxsO1xuXG4gICAgY29uc3QgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbSA9IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQgPyAoXG4gICAgICA8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclxuICAgICAgICBpc05hdkJhclZhcmlhbnQ9e2lzTmF2QmFyVmFyaWFudH1cbiAgICAgID5cbiAgICAgICAgPFRleHQgY29sb3I9XCJ0ZXJ0aWFyeVwiPntlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50fTwvVGV4dD5cbiAgICAgIDwvU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lcj5cbiAgICApIDogbnVsbDtcblxuICAgIGNvbnN0IGNsZWFyQnV0dG9uRWxtID0gdmFsdWUgPyAoXG4gICAgICA8U3R5bGVkQ2xlYXJCdXR0b25cbiAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgfHxcbiAgICAgICEhc2VuZEJ1dHRvblByb3BzKSAmJlxuICAgICAgIWlzQ29sbGFwc2VkICYmIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7Ym90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgJiYgKFxuICAgICAgICAgICAgPFN0eWxlZFNsb3Q+e2JvdHRvbVRvb2xiYXIubGVmdENvbnRlbnR9PC9TdHlsZWRTbG90PlxuICAgICAgICAgICl9XG4gICAgICAgICAgPFN0eWxlZFNsb3QgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIiBzaWRlPVwicmlnaHRcIj5cbiAgICAgICAgICAgIDxJbmxpbmUgc3BhY2U9XCJ4c1wiIHZBbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnR9XG4gICAgICAgICAgICAgIHtzZW5kQnV0dG9uUHJvcHMgJiYgKFxuICAgICAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgYXJpYUF0dHJpYnV0ZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IGlzUHJvY2Vzc2luZ1xuICAgICAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICA6IFwiU3VibWl0IHF1ZXJ5XCIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXshdmFsdWUgfHwgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZEJ1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17XG4gICAgICAgICAgICAgICAgICAgIGlzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29uXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvSW5saW5lPlxuICAgICAgICAgIDwvU3R5bGVkU2xvdD5cbiAgICAgICAgPC8+XG4gICAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICBlbGV2YXRpb249ezB9XG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17aXNDb2xsYXBzZWQgPyBcInhzXCIgOiBcIm1cIn1cbiAgICAgICAgICAgICAgaGlkZUJvcmRlcj17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNFZ0MifQ== */"),StyledLeftIconContainer=(0,_styled.default)("div",{target:"e865e322",label:"StyledLeftIconContainer"})(({theme})=>({position:"absolute",top:(0,_PromptTextArea.getPaddingVertical)(theme),left:(0,_PromptTextArea.getPaddingHorizontal)(theme)}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8eyBoaWRlQm9yZGVyOiBib29sZWFuIH0+KFxuICAoeyB0aGVtZSwgaGlkZUJvcmRlciB9KSA9PiAoe1xuICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICB9KSxcbiAgICBjdXJzb3I6IFwidGV4dFwiLFxuICAgIFtgJjpoYXModGV4dGFyZWE6Zm9jdXMtdmlzaWJsZSlgXToge1xuICAgICAgb3V0bGluZVdpZHRoOiAxLFxuICAgICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgICBvdXRsaW5lT2Zmc2V0OiAtMSxcbiAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG5cbiAgICAgIFwiQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MClcIjoge1xuICAgICAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuY29uc3QgU3R5bGVkTGVmdEljb25Db250YWluZXIgPSBzdHlsZWQuZGl2KCh7IHRoZW1lIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lKSxcbiAgbGVmdDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUpLFxufSkpO1xuXG50eXBlIFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJQcm9wcyA9IFBpY2s8XG4gIFByb21wdElucHV0UHJvcHMsXG4gIFwiaXNOYXZCYXJWYXJpYW50XCJcbj47XG5cbmNvbnN0IFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgPVxuICBzdHlsZWQuZGl2PFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJQcm9wcz4oXG4gICAgKHsgdGhlbWUsIGlzTmF2QmFyVmFyaWFudCB9KSA9PiAoe1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHRvcDogaXNOYXZCYXJWYXJpYW50XG4gICAgICAgID8gdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54eHNcbiAgICAgICAgOiBnZXRQYWRkaW5nVmVydGljYWwodGhlbWUpLFxuICAgICAgcmlnaHQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lKSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFNsb3RzQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGRpc3BsYXk6IFwiZmxleFwiLFxuICBmbGV4V3JhcDogXCJ3cmFwXCIsXG4gIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG59KTtcblxuLy8gSXQgbmVlZHMgbWFyZ2luIGR1ZSB0byBlbXB0eSBjbGlja2FibGUgc3BhY2UgdGhhdCBmb2N1c2VzIHRoZSB0ZXh0YXJlYVxuLy8gU2xvdHMgc2hvdWxkIG5vdCBiZSBpbiB0aGUgZGl2LCBiZWNhdXNlIGFyZWEgYmV0d2VlbiBzaG91bGQgYmUgY2xpY2thYmxlIGFsc29cbnR5cGUgU2xvdFByb3BzID0ge1xuICBzaWRlPzogXCJyaWdodFwiO1xufTtcbmNvbnN0IFN0eWxlZFNsb3QgPSBzdHlsZWQuZGl2PFNsb3RQcm9wcz4oKHsgdGhlbWUsIHNpZGUgfSkgPT4gKHtcbiAgbWFyZ2luOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm0sXG5cbiAgLi4uKHNpZGUgPT09IFwicmlnaHRcIiAmJiB7XG4gICAgbWFyZ2luTGVmdDogXCJhdXRvXCIsXG4gIH0pLFxufSkpO1xuXG50eXBlIFNlbmRCdXR0b25Qcm9wcyA9IE9taXQ8Um91bmRCdXR0b25Qcm9wcywgXCJpY29uXCIgfCBcInZhcmlhbnRcIj4gJiB7XG4gIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiO1xufTtcblxudHlwZSBCb3R0b21Ub29sYmFyQ29uZmlnID0ge1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgbGVmdENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogQ3VycmVudGx5IHNob3dzIHNlbmQgYnV0dG9uIHByb2Nlc3Npbmcgc3RhdGUgICovXG4gIGJvdHRvbVRvb2xiYXI/OiBCb3R0b21Ub29sYmFyQ29uZmlnO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBTZW5kQnV0dG9uUHJvcHM7XG4gIGlzUHJvY2Vzc2luZz86IGJvb2xlYW47XG4gIGNsZWFyQnV0dG9uQXJpYUxhYmVsPzogc3RyaW5nO1xuICBoaW50PzogUmVhY3RFbGVtZW50O1xuICAvKiogU2hvd3MgaW4gdGhlIGNsZWFyIGJ1dHRvbiBzcGFjZSBpbiBlbXB0eSBzdGF0ZSAqL1xuICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICBvbkNsZWFyOiAoKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gdXNlciBzZWxlY3RzIChvciByZWplY3RzKSBhIGxpc3QgaXRlbSBmcm9tIGF1dG9jb21wbGV0ZSBsaXN0ICovXG4gIG9uQ29tcGxldGU/OiAoe1xuICAgIHZhbHVlLFxuICAgIGNhdGVnb3J5LFxuICAgIGV2dCxcbiAgICBpbmRleCxcbiAgfToge1xuICAgIHZhbHVlOiBMaXN0SXRlbVZhbHVlO1xuICAgIGNhdGVnb3J5Pzogc3RyaW5nO1xuICAgIGV2dD86IFN5bnRoZXRpY0V2ZW50O1xuICAgIGluZGV4PzogbnVtYmVyO1xuICB9KSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIG9uIEVudGVyIGtleSB0byBzdWJtaXQgdGhlIGZvcm0gICovXG4gIG9uRW50ZXJLZXk6ICgpID0+IHZvaWQ7XG4gIC8qKiBSZW5kZXJzIGFuIGljb24gdG8gdGhlIGxlZnQgaW5zaWRlIHRoZSB0ZXh0YXJlYSAqL1xuICBsZWZ0SWNvbj86IEljb25OYW1lO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCIgfCBcImhhc0xlZnRJY29uXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgW2lzQ29sbGFwc2VkLCBzZXRJc0NvbGxhcHNlZF0gPSB1c2VTdGF0ZShpc05hdkJhclZhcmlhbnQpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICBpZiAoXG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQgIT09IHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uRW5kXG4gICAgICApIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZSh2YWx1ZS5sZW5ndGgsIHZhbHVlLmxlbmd0aCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCAmJiAhaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyxcbiAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0LFxuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0LFxuICAgICAgaXNDb2xsYXBzZWQsXG4gICAgXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ICYmIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZShcbiAgICAgICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50Lmxlbmd0aCxcbiAgICAgICAgICB2YWx1ZS5sZW5ndGhcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LCBbdmFsdWUsIHRleHRBcmVhUmVmLCBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSk7XG5cbiAgICAvLyBEZXRlcm1pbmUgd2hlbiBmb2N1cyBsZWF2ZXMgdGhlIGNvbnRhaW5lciB0byBjb2xsYXBzZSBpdFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBsZXQgaGFuZGxlcjogKGV2dDogRm9jdXNFdmVudCkgPT4gdm9pZDtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRhaW5lclJlZi5jdXJyZW50O1xuXG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50ICYmIGNvbnRhaW5lcikge1xuICAgICAgICBoYW5kbGVyID0gKGV2dDogRm9jdXNFdmVudCkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFjb250YWluZXJSZWYuY3VycmVudC5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgIXBvcnRhbENvbnRhaW5lcj8uY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgIGV2dC5yZWxhdGVkVGFyZ2V0ICE9PSBudWxsXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0sIFtpc05hdkJhclZhcmlhbnQsIGNvbnRhaW5lclJlZiwgcG9ydGFsQ29udGFpbmVyXSk7XG5cbiAgICBjb25zdCBmbGF0dGVuZWRMaXN0SXRlbXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IGxpc3Q6IEZsYXR0ZW5lZExpc3RJdGVtW10gPSBbXTtcblxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmZvckVhY2goKGxpc3RJdGVtKSA9PiB7XG4gICAgICAgIGxpc3RJdGVtLml0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgbGlzdC5wdXNoKHtcbiAgICAgICAgICAgIGNhdGVnb3J5OiBsaXN0SXRlbS5jYXRlZ29yeSxcbiAgICAgICAgICAgIGluZGV4SW5DYXRlZ29yeTogaW5kZXgsXG4gICAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgICAgICAgIGlkOiBnZXRMaXN0SXRlbUlkKG5hbWUsIGxpc3RJdGVtLmNhdGVnb3J5LCBpbmRleCksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbGlzdDtcbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLCBuYW1lXSk7XG5cbiAgICBjb25zdCBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlID0gKGluZGV4OiBudW1iZXIsIGV2dD86IFN5bnRoZXRpY0V2ZW50KSA9PiB7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KGluZGV4KTtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgY29uc3QgeyBjYXRlZ29yeSwgdmFsdWU6IGl0ZW1WYWx1ZSB9ID0gZmxhdHRlbmVkTGlzdEl0ZW1zW2luZGV4XTtcblxuICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IGl0ZW1WYWx1ZSwgY2F0ZWdvcnksIGV2dCwgaW5kZXggfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUxpc3RJdGVtQ2xpY2sgPSAoXG4gICAgICBjYXRlZ29yeTogc3RyaW5nLFxuICAgICAgaW5kZXhJbkNhdGVnb3J5OiBudW1iZXIsXG4gICAgICBldnQ/OiBNb3VzZUV2ZW50XG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IGZsYXR0ZW5lZExpc3RJdGVtcy5maW5kSW5kZXgoXG4gICAgICAgIChsaXN0SXRlbSkgPT5cbiAgICAgICAgICBsaXN0SXRlbS5jYXRlZ29yeSA9PT0gY2F0ZWdvcnkgJiZcbiAgICAgICAgICBsaXN0SXRlbS5pbmRleEluQ2F0ZWdvcnkgPT09IGluZGV4SW5DYXRlZ29yeVxuICAgICAgKTtcblxuICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShpbmRleCwgZXZ0KTtcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlS2V5RG93bjogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAoaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiIFwiOlxuICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkFycm93VXBcIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggLSAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkFycm93RG93blwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA8IGZsYXR0ZW5lZExpc3RJdGVtcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCArIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBvbkNsZWFyPy4oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgb25LZXlEb3duPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlOiBDaGFuZ2VFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gZXZ0LnRhcmdldC52YWx1ZTtcbiAgICAgIG9uQ2hhbmdlKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUZvY3VzOiBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHNldElzQ29sbGFwc2VkKGZhbHNlKTtcbiAgICAgIG9uRm9jdXM/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVCbHVyOiBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCkge1xuICAgICAgICBvbkNvbXBsZXRlPy4oeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgfVxuICAgICAgb25CbHVyPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlU2VuZEJ1dHRvbkNsaWNrID0gKGV2dDogTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHtcbiAgICAgIG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5vbkNsaWNrPy4oZXZ0KTtcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlUHJldmVudEZvY3VzID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBQcmV2ZW50IHRoZSB0ZXh0YXJlYSBmcm9tIGJlaW5nIHVuZm9jdXNlZFxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd24gPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIEZvY3VzIHRleHRhcmVhIHdoZW4gY2xpY2tpbmcgb24gdGhlIGNvbnRhaW5lciBvbmx5XG4gICAgICBpZiAoZXZ0LnRhcmdldCA9PT0gZXZ0LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbGVjdGVkTGlzdEl0ZW0gPVxuICAgICAgc2VsZWN0ZWRJbmRleCAhPT0gLTEgPyBmbGF0dGVuZWRMaXN0SXRlbXNbc2VsZWN0ZWRJbmRleF0gOiBudWxsO1xuXG4gICAgY29uc3QgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbSA9IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQgPyAoXG4gICAgICA8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclxuICAgICAgICBpc05hdkJhclZhcmlhbnQ9e2lzTmF2QmFyVmFyaWFudH1cbiAgICAgID5cbiAgICAgICAgPFRleHQgY29sb3I9XCJ0ZXJ0aWFyeVwiPntlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50fTwvVGV4dD5cbiAgICAgIDwvU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lcj5cbiAgICApIDogbnVsbDtcblxuICAgIGNvbnN0IGNsZWFyQnV0dG9uRWxtID0gdmFsdWUgPyAoXG4gICAgICA8U3R5bGVkQ2xlYXJCdXR0b25cbiAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgfHxcbiAgICAgICEhc2VuZEJ1dHRvblByb3BzKSAmJlxuICAgICAgIWlzQ29sbGFwc2VkICYmIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7Ym90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgJiYgKFxuICAgICAgICAgICAgPFN0eWxlZFNsb3Q+e2JvdHRvbVRvb2xiYXIubGVmdENvbnRlbnR9PC9TdHlsZWRTbG90PlxuICAgICAgICAgICl9XG4gICAgICAgICAgPFN0eWxlZFNsb3QgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIiBzaWRlPVwicmlnaHRcIj5cbiAgICAgICAgICAgIDxJbmxpbmUgc3BhY2U9XCJ4c1wiIHZBbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnR9XG4gICAgICAgICAgICAgIHtzZW5kQnV0dG9uUHJvcHMgJiYgKFxuICAgICAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgYXJpYUF0dHJpYnV0ZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IGlzUHJvY2Vzc2luZ1xuICAgICAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICA6IFwiU3VibWl0IHF1ZXJ5XCIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXshdmFsdWUgfHwgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZEJ1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17XG4gICAgICAgICAgICAgICAgICAgIGlzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29uXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvSW5saW5lPlxuICAgICAgICAgIDwvU3R5bGVkU2xvdD5cbiAgICAgICAgPC8+XG4gICAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICBlbGV2YXRpb249ezB9XG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17aXNDb2xsYXBzZWQgPyBcInhzXCIgOiBcIm1cIn1cbiAgICAgICAgICAgICAgaGlkZUJvcmRlcj17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRFZ0MifQ== */"),StyledEmptyStateTopRightContentContainer=(0,_styled.default)("div",{target:"e865e323",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+KFxuICAoeyB0aGVtZSwgaGlkZUJvcmRlciB9KSA9PiAoe1xuICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICB9KSxcbiAgICBjdXJzb3I6IFwidGV4dFwiLFxuICAgIFtgJjpoYXModGV4dGFyZWE6Zm9jdXMtdmlzaWJsZSlgXToge1xuICAgICAgb3V0bGluZVdpZHRoOiAxLFxuICAgICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgICBvdXRsaW5lT2Zmc2V0OiAtMSxcbiAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG5cbiAgICAgIFwiQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MClcIjoge1xuICAgICAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuY29uc3QgU3R5bGVkTGVmdEljb25Db250YWluZXIgPSBzdHlsZWQuZGl2KCh7IHRoZW1lIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lKSxcbiAgbGVmdDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUpLFxufSkpO1xuXG50eXBlIFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJQcm9wcyA9IFBpY2s8XG4gIFByb21wdElucHV0UHJvcHMsXG4gIFwiaXNOYXZCYXJWYXJpYW50XCJcbj47XG5cbmNvbnN0IFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgPVxuICBzdHlsZWQuZGl2PFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJQcm9wcz4oXG4gICAgKHsgdGhlbWUsIGlzTmF2QmFyVmFyaWFudCB9KSA9PiAoe1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHRvcDogaXNOYXZCYXJWYXJpYW50XG4gICAgICAgID8gdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54eHNcbiAgICAgICAgOiBnZXRQYWRkaW5nVmVydGljYWwodGhlbWUpLFxuICAgICAgcmlnaHQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lKSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFNsb3RzQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGRpc3BsYXk6IFwiZmxleFwiLFxuICBmbGV4V3JhcDogXCJ3cmFwXCIsXG4gIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG59KTtcblxuLy8gSXQgbmVlZHMgbWFyZ2luIGR1ZSB0byBlbXB0eSBjbGlja2FibGUgc3BhY2UgdGhhdCBmb2N1c2VzIHRoZSB0ZXh0YXJlYVxuLy8gU2xvdHMgc2hvdWxkIG5vdCBiZSBpbiB0aGUgZGl2LCBiZWNhdXNlIGFyZWEgYmV0d2VlbiBzaG91bGQgYmUgY2xpY2thYmxlIGFsc29cbnR5cGUgU2xvdFByb3BzID0ge1xuICBzaWRlPzogXCJyaWdodFwiO1xufTtcbmNvbnN0IFN0eWxlZFNsb3QgPSBzdHlsZWQuZGl2PFNsb3RQcm9wcz4oKHsgdGhlbWUsIHNpZGUgfSkgPT4gKHtcbiAgbWFyZ2luOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm0sXG5cbiAgLi4uKHNpZGUgPT09IFwicmlnaHRcIiAmJiB7XG4gICAgbWFyZ2luTGVmdDogXCJhdXRvXCIsXG4gIH0pLFxufSkpO1xuXG50eXBlIFNlbmRCdXR0b25Qcm9wcyA9IE9taXQ8Um91bmRCdXR0b25Qcm9wcywgXCJpY29uXCIgfCBcInZhcmlhbnRcIj4gJiB7XG4gIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiO1xufTtcblxudHlwZSBCb3R0b21Ub29sYmFyQ29uZmlnID0ge1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgbGVmdENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogQ3VycmVudGx5IHNob3dzIHNlbmQgYnV0dG9uIHByb2Nlc3Npbmcgc3RhdGUgICovXG4gIGJvdHRvbVRvb2xiYXI/OiBCb3R0b21Ub29sYmFyQ29uZmlnO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBTZW5kQnV0dG9uUHJvcHM7XG4gIGlzUHJvY2Vzc2luZz86IGJvb2xlYW47XG4gIGNsZWFyQnV0dG9uQXJpYUxhYmVsPzogc3RyaW5nO1xuICBoaW50PzogUmVhY3RFbGVtZW50O1xuICAvKiogU2hvd3MgaW4gdGhlIGNsZWFyIGJ1dHRvbiBzcGFjZSBpbiBlbXB0eSBzdGF0ZSAqL1xuICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICBvbkNsZWFyOiAoKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gdXNlciBzZWxlY3RzIChvciByZWplY3RzKSBhIGxpc3QgaXRlbSBmcm9tIGF1dG9jb21wbGV0ZSBsaXN0ICovXG4gIG9uQ29tcGxldGU/OiAoe1xuICAgIHZhbHVlLFxuICAgIGNhdGVnb3J5LFxuICAgIGV2dCxcbiAgICBpbmRleCxcbiAgfToge1xuICAgIHZhbHVlOiBMaXN0SXRlbVZhbHVlO1xuICAgIGNhdGVnb3J5Pzogc3RyaW5nO1xuICAgIGV2dD86IFN5bnRoZXRpY0V2ZW50O1xuICAgIGluZGV4PzogbnVtYmVyO1xuICB9KSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIG9uIEVudGVyIGtleSB0byBzdWJtaXQgdGhlIGZvcm0gICovXG4gIG9uRW50ZXJLZXk6ICgpID0+IHZvaWQ7XG4gIC8qKiBSZW5kZXJzIGFuIGljb24gdG8gdGhlIGxlZnQgaW5zaWRlIHRoZSB0ZXh0YXJlYSAqL1xuICBsZWZ0SWNvbj86IEljb25OYW1lO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCIgfCBcImhhc0xlZnRJY29uXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgW2lzQ29sbGFwc2VkLCBzZXRJc0NvbGxhcHNlZF0gPSB1c2VTdGF0ZShpc05hdkJhclZhcmlhbnQpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICBpZiAoXG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQgIT09IHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uRW5kXG4gICAgICApIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZSh2YWx1ZS5sZW5ndGgsIHZhbHVlLmxlbmd0aCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCAmJiAhaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyxcbiAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0LFxuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0LFxuICAgICAgaXNDb2xsYXBzZWQsXG4gICAgXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ICYmIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZShcbiAgICAgICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50Lmxlbmd0aCxcbiAgICAgICAgICB2YWx1ZS5sZW5ndGhcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LCBbdmFsdWUsIHRleHRBcmVhUmVmLCBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSk7XG5cbiAgICAvLyBEZXRlcm1pbmUgd2hlbiBmb2N1cyBsZWF2ZXMgdGhlIGNvbnRhaW5lciB0byBjb2xsYXBzZSBpdFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBsZXQgaGFuZGxlcjogKGV2dDogRm9jdXNFdmVudCkgPT4gdm9pZDtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRhaW5lclJlZi5jdXJyZW50O1xuXG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50ICYmIGNvbnRhaW5lcikge1xuICAgICAgICBoYW5kbGVyID0gKGV2dDogRm9jdXNFdmVudCkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFjb250YWluZXJSZWYuY3VycmVudC5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgIXBvcnRhbENvbnRhaW5lcj8uY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgIGV2dC5yZWxhdGVkVGFyZ2V0ICE9PSBudWxsXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0sIFtpc05hdkJhclZhcmlhbnQsIGNvbnRhaW5lclJlZiwgcG9ydGFsQ29udGFpbmVyXSk7XG5cbiAgICBjb25zdCBmbGF0dGVuZWRMaXN0SXRlbXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IGxpc3Q6IEZsYXR0ZW5lZExpc3RJdGVtW10gPSBbXTtcblxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmZvckVhY2goKGxpc3RJdGVtKSA9PiB7XG4gICAgICAgIGxpc3RJdGVtLml0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgbGlzdC5wdXNoKHtcbiAgICAgICAgICAgIGNhdGVnb3J5OiBsaXN0SXRlbS5jYXRlZ29yeSxcbiAgICAgICAgICAgIGluZGV4SW5DYXRlZ29yeTogaW5kZXgsXG4gICAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgICAgICAgIGlkOiBnZXRMaXN0SXRlbUlkKG5hbWUsIGxpc3RJdGVtLmNhdGVnb3J5LCBpbmRleCksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbGlzdDtcbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLCBuYW1lXSk7XG5cbiAgICBjb25zdCBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlID0gKGluZGV4OiBudW1iZXIsIGV2dD86IFN5bnRoZXRpY0V2ZW50KSA9PiB7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KGluZGV4KTtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgY29uc3QgeyBjYXRlZ29yeSwgdmFsdWU6IGl0ZW1WYWx1ZSB9ID0gZmxhdHRlbmVkTGlzdEl0ZW1zW2luZGV4XTtcblxuICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IGl0ZW1WYWx1ZSwgY2F0ZWdvcnksIGV2dCwgaW5kZXggfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUxpc3RJdGVtQ2xpY2sgPSAoXG4gICAgICBjYXRlZ29yeTogc3RyaW5nLFxuICAgICAgaW5kZXhJbkNhdGVnb3J5OiBudW1iZXIsXG4gICAgICBldnQ/OiBNb3VzZUV2ZW50XG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IGZsYXR0ZW5lZExpc3RJdGVtcy5maW5kSW5kZXgoXG4gICAgICAgIChsaXN0SXRlbSkgPT5cbiAgICAgICAgICBsaXN0SXRlbS5jYXRlZ29yeSA9PT0gY2F0ZWdvcnkgJiZcbiAgICAgICAgICBsaXN0SXRlbS5pbmRleEluQ2F0ZWdvcnkgPT09IGluZGV4SW5DYXRlZ29yeVxuICAgICAgKTtcblxuICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShpbmRleCwgZXZ0KTtcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlS2V5RG93bjogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAoaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiIFwiOlxuICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkFycm93VXBcIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggLSAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkFycm93RG93blwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA8IGZsYXR0ZW5lZExpc3RJdGVtcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCArIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBvbkNsZWFyPy4oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgb25LZXlEb3duPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlOiBDaGFuZ2VFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gZXZ0LnRhcmdldC52YWx1ZTtcbiAgICAgIG9uQ2hhbmdlKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUZvY3VzOiBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHNldElzQ29sbGFwc2VkKGZhbHNlKTtcbiAgICAgIG9uRm9jdXM/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVCbHVyOiBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCkge1xuICAgICAgICBvbkNvbXBsZXRlPy4oeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgfVxuICAgICAgb25CbHVyPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlU2VuZEJ1dHRvbkNsaWNrID0gKGV2dDogTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHtcbiAgICAgIG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5vbkNsaWNrPy4oZXZ0KTtcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlUHJldmVudEZvY3VzID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBQcmV2ZW50IHRoZSB0ZXh0YXJlYSBmcm9tIGJlaW5nIHVuZm9jdXNlZFxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd24gPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIEZvY3VzIHRleHRhcmVhIHdoZW4gY2xpY2tpbmcgb24gdGhlIGNvbnRhaW5lciBvbmx5XG4gICAgICBpZiAoZXZ0LnRhcmdldCA9PT0gZXZ0LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbGVjdGVkTGlzdEl0ZW0gPVxuICAgICAgc2VsZWN0ZWRJbmRleCAhPT0gLTEgPyBmbGF0dGVuZWRMaXN0SXRlbXNbc2VsZWN0ZWRJbmRleF0gOiBudWxsO1xuXG4gICAgY29uc3QgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbSA9IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQgPyAoXG4gICAgICA8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclxuICAgICAgICBpc05hdkJhclZhcmlhbnQ9e2lzTmF2QmFyVmFyaWFudH1cbiAgICAgID5cbiAgICAgICAgPFRleHQgY29sb3I9XCJ0ZXJ0aWFyeVwiPntlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50fTwvVGV4dD5cbiAgICAgIDwvU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lcj5cbiAgICApIDogbnVsbDtcblxuICAgIGNvbnN0IGNsZWFyQnV0dG9uRWxtID0gdmFsdWUgPyAoXG4gICAgICA8U3R5bGVkQ2xlYXJCdXR0b25cbiAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgfHxcbiAgICAgICEhc2VuZEJ1dHRvblByb3BzKSAmJlxuICAgICAgIWlzQ29sbGFwc2VkICYmIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7Ym90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgJiYgKFxuICAgICAgICAgICAgPFN0eWxlZFNsb3Q+e2JvdHRvbVRvb2xiYXIubGVmdENvbnRlbnR9PC9TdHlsZWRTbG90PlxuICAgICAgICAgICl9XG4gICAgICAgICAgPFN0eWxlZFNsb3QgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIiBzaWRlPVwicmlnaHRcIj5cbiAgICAgICAgICAgIDxJbmxpbmUgc3BhY2U9XCJ4c1wiIHZBbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnR9XG4gICAgICAgICAgICAgIHtzZW5kQnV0dG9uUHJvcHMgJiYgKFxuICAgICAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgYXJpYUF0dHJpYnV0ZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IGlzUHJvY2Vzc2luZ1xuICAgICAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICA6IFwiU3VibWl0IHF1ZXJ5XCIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXshdmFsdWUgfHwgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZEJ1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17XG4gICAgICAgICAgICAgICAgICAgIGlzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29uXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvSW5saW5lPlxuICAgICAgICAgIDwvU3R5bGVkU2xvdD5cbiAgICAgICAgPC8+XG4gICAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICBlbGV2YXRpb249ezB9XG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17aXNDb2xsYXBzZWQgPyBcInhzXCIgOiBcIm1cIn1cbiAgICAgICAgICAgICAgaGlkZUJvcmRlcj17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdGRSJ9 */"),StyledClearButton=(0,_styled.default)(_PictogramButton.PictogramButton,{target:"e865e324",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+KFxuICAoeyB0aGVtZSwgaGlkZUJvcmRlciB9KSA9PiAoe1xuICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICB9KSxcbiAgICBjdXJzb3I6IFwidGV4dFwiLFxuICAgIFtgJjpoYXModGV4dGFyZWE6Zm9jdXMtdmlzaWJsZSlgXToge1xuICAgICAgb3V0bGluZVdpZHRoOiAxLFxuICAgICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgICBvdXRsaW5lT2Zmc2V0OiAtMSxcbiAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG5cbiAgICAgIFwiQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MClcIjoge1xuICAgICAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuY29uc3QgU3R5bGVkTGVmdEljb25Db250YWluZXIgPSBzdHlsZWQuZGl2KCh7IHRoZW1lIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lKSxcbiAgbGVmdDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUpLFxufSkpO1xuXG50eXBlIFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJQcm9wcyA9IFBpY2s8XG4gIFByb21wdElucHV0UHJvcHMsXG4gIFwiaXNOYXZCYXJWYXJpYW50XCJcbj47XG5cbmNvbnN0IFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgPVxuICBzdHlsZWQuZGl2PFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJQcm9wcz4oXG4gICAgKHsgdGhlbWUsIGlzTmF2QmFyVmFyaWFudCB9KSA9PiAoe1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHRvcDogaXNOYXZCYXJWYXJpYW50XG4gICAgICAgID8gdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54eHNcbiAgICAgICAgOiBnZXRQYWRkaW5nVmVydGljYWwodGhlbWUpLFxuICAgICAgcmlnaHQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lKSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFNsb3RzQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGRpc3BsYXk6IFwiZmxleFwiLFxuICBmbGV4V3JhcDogXCJ3cmFwXCIsXG4gIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG59KTtcblxuLy8gSXQgbmVlZHMgbWFyZ2luIGR1ZSB0byBlbXB0eSBjbGlja2FibGUgc3BhY2UgdGhhdCBmb2N1c2VzIHRoZSB0ZXh0YXJlYVxuLy8gU2xvdHMgc2hvdWxkIG5vdCBiZSBpbiB0aGUgZGl2LCBiZWNhdXNlIGFyZWEgYmV0d2VlbiBzaG91bGQgYmUgY2xpY2thYmxlIGFsc29cbnR5cGUgU2xvdFByb3BzID0ge1xuICBzaWRlPzogXCJyaWdodFwiO1xufTtcbmNvbnN0IFN0eWxlZFNsb3QgPSBzdHlsZWQuZGl2PFNsb3RQcm9wcz4oKHsgdGhlbWUsIHNpZGUgfSkgPT4gKHtcbiAgbWFyZ2luOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm0sXG5cbiAgLi4uKHNpZGUgPT09IFwicmlnaHRcIiAmJiB7XG4gICAgbWFyZ2luTGVmdDogXCJhdXRvXCIsXG4gIH0pLFxufSkpO1xuXG50eXBlIFNlbmRCdXR0b25Qcm9wcyA9IE9taXQ8Um91bmRCdXR0b25Qcm9wcywgXCJpY29uXCIgfCBcInZhcmlhbnRcIj4gJiB7XG4gIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiO1xufTtcblxudHlwZSBCb3R0b21Ub29sYmFyQ29uZmlnID0ge1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgbGVmdENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogQ3VycmVudGx5IHNob3dzIHNlbmQgYnV0dG9uIHByb2Nlc3Npbmcgc3RhdGUgICovXG4gIGJvdHRvbVRvb2xiYXI/OiBCb3R0b21Ub29sYmFyQ29uZmlnO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBTZW5kQnV0dG9uUHJvcHM7XG4gIGlzUHJvY2Vzc2luZz86IGJvb2xlYW47XG4gIGNsZWFyQnV0dG9uQXJpYUxhYmVsPzogc3RyaW5nO1xuICBoaW50PzogUmVhY3RFbGVtZW50O1xuICAvKiogU2hvd3MgaW4gdGhlIGNsZWFyIGJ1dHRvbiBzcGFjZSBpbiBlbXB0eSBzdGF0ZSAqL1xuICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICBvbkNsZWFyOiAoKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gdXNlciBzZWxlY3RzIChvciByZWplY3RzKSBhIGxpc3QgaXRlbSBmcm9tIGF1dG9jb21wbGV0ZSBsaXN0ICovXG4gIG9uQ29tcGxldGU/OiAoe1xuICAgIHZhbHVlLFxuICAgIGNhdGVnb3J5LFxuICAgIGV2dCxcbiAgICBpbmRleCxcbiAgfToge1xuICAgIHZhbHVlOiBMaXN0SXRlbVZhbHVlO1xuICAgIGNhdGVnb3J5Pzogc3RyaW5nO1xuICAgIGV2dD86IFN5bnRoZXRpY0V2ZW50O1xuICAgIGluZGV4PzogbnVtYmVyO1xuICB9KSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIG9uIEVudGVyIGtleSB0byBzdWJtaXQgdGhlIGZvcm0gICovXG4gIG9uRW50ZXJLZXk6ICgpID0+IHZvaWQ7XG4gIC8qKiBSZW5kZXJzIGFuIGljb24gdG8gdGhlIGxlZnQgaW5zaWRlIHRoZSB0ZXh0YXJlYSAqL1xuICBsZWZ0SWNvbj86IEljb25OYW1lO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCIgfCBcImhhc0xlZnRJY29uXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgW2lzQ29sbGFwc2VkLCBzZXRJc0NvbGxhcHNlZF0gPSB1c2VTdGF0ZShpc05hdkJhclZhcmlhbnQpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICBpZiAoXG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQgIT09IHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uRW5kXG4gICAgICApIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZSh2YWx1ZS5sZW5ndGgsIHZhbHVlLmxlbmd0aCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCAmJiAhaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyxcbiAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0LFxuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0LFxuICAgICAgaXNDb2xsYXBzZWQsXG4gICAgXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ICYmIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZShcbiAgICAgICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50Lmxlbmd0aCxcbiAgICAgICAgICB2YWx1ZS5sZW5ndGhcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LCBbdmFsdWUsIHRleHRBcmVhUmVmLCBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSk7XG5cbiAgICAvLyBEZXRlcm1pbmUgd2hlbiBmb2N1cyBsZWF2ZXMgdGhlIGNvbnRhaW5lciB0byBjb2xsYXBzZSBpdFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBsZXQgaGFuZGxlcjogKGV2dDogRm9jdXNFdmVudCkgPT4gdm9pZDtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRhaW5lclJlZi5jdXJyZW50O1xuXG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50ICYmIGNvbnRhaW5lcikge1xuICAgICAgICBoYW5kbGVyID0gKGV2dDogRm9jdXNFdmVudCkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFjb250YWluZXJSZWYuY3VycmVudC5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgIXBvcnRhbENvbnRhaW5lcj8uY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgIGV2dC5yZWxhdGVkVGFyZ2V0ICE9PSBudWxsXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0sIFtpc05hdkJhclZhcmlhbnQsIGNvbnRhaW5lclJlZiwgcG9ydGFsQ29udGFpbmVyXSk7XG5cbiAgICBjb25zdCBmbGF0dGVuZWRMaXN0SXRlbXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IGxpc3Q6IEZsYXR0ZW5lZExpc3RJdGVtW10gPSBbXTtcblxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmZvckVhY2goKGxpc3RJdGVtKSA9PiB7XG4gICAgICAgIGxpc3RJdGVtLml0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgbGlzdC5wdXNoKHtcbiAgICAgICAgICAgIGNhdGVnb3J5OiBsaXN0SXRlbS5jYXRlZ29yeSxcbiAgICAgICAgICAgIGluZGV4SW5DYXRlZ29yeTogaW5kZXgsXG4gICAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgICAgICAgIGlkOiBnZXRMaXN0SXRlbUlkKG5hbWUsIGxpc3RJdGVtLmNhdGVnb3J5LCBpbmRleCksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbGlzdDtcbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLCBuYW1lXSk7XG5cbiAgICBjb25zdCBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlID0gKGluZGV4OiBudW1iZXIsIGV2dD86IFN5bnRoZXRpY0V2ZW50KSA9PiB7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KGluZGV4KTtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgY29uc3QgeyBjYXRlZ29yeSwgdmFsdWU6IGl0ZW1WYWx1ZSB9ID0gZmxhdHRlbmVkTGlzdEl0ZW1zW2luZGV4XTtcblxuICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IGl0ZW1WYWx1ZSwgY2F0ZWdvcnksIGV2dCwgaW5kZXggfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUxpc3RJdGVtQ2xpY2sgPSAoXG4gICAgICBjYXRlZ29yeTogc3RyaW5nLFxuICAgICAgaW5kZXhJbkNhdGVnb3J5OiBudW1iZXIsXG4gICAgICBldnQ/OiBNb3VzZUV2ZW50XG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IGZsYXR0ZW5lZExpc3RJdGVtcy5maW5kSW5kZXgoXG4gICAgICAgIChsaXN0SXRlbSkgPT5cbiAgICAgICAgICBsaXN0SXRlbS5jYXRlZ29yeSA9PT0gY2F0ZWdvcnkgJiZcbiAgICAgICAgICBsaXN0SXRlbS5pbmRleEluQ2F0ZWdvcnkgPT09IGluZGV4SW5DYXRlZ29yeVxuICAgICAgKTtcblxuICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShpbmRleCwgZXZ0KTtcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlS2V5RG93bjogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAoaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiIFwiOlxuICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkFycm93VXBcIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggLSAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkFycm93RG93blwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA8IGZsYXR0ZW5lZExpc3RJdGVtcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCArIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBvbkNsZWFyPy4oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgb25LZXlEb3duPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlOiBDaGFuZ2VFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gZXZ0LnRhcmdldC52YWx1ZTtcbiAgICAgIG9uQ2hhbmdlKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUZvY3VzOiBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHNldElzQ29sbGFwc2VkKGZhbHNlKTtcbiAgICAgIG9uRm9jdXM/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVCbHVyOiBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCkge1xuICAgICAgICBvbkNvbXBsZXRlPy4oeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgfVxuICAgICAgb25CbHVyPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlU2VuZEJ1dHRvbkNsaWNrID0gKGV2dDogTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHtcbiAgICAgIG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5vbkNsaWNrPy4oZXZ0KTtcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlUHJldmVudEZvY3VzID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBQcmV2ZW50IHRoZSB0ZXh0YXJlYSBmcm9tIGJlaW5nIHVuZm9jdXNlZFxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd24gPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIEZvY3VzIHRleHRhcmVhIHdoZW4gY2xpY2tpbmcgb24gdGhlIGNvbnRhaW5lciBvbmx5XG4gICAgICBpZiAoZXZ0LnRhcmdldCA9PT0gZXZ0LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbGVjdGVkTGlzdEl0ZW0gPVxuICAgICAgc2VsZWN0ZWRJbmRleCAhPT0gLTEgPyBmbGF0dGVuZWRMaXN0SXRlbXNbc2VsZWN0ZWRJbmRleF0gOiBudWxsO1xuXG4gICAgY29uc3QgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbSA9IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQgPyAoXG4gICAgICA8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclxuICAgICAgICBpc05hdkJhclZhcmlhbnQ9e2lzTmF2QmFyVmFyaWFudH1cbiAgICAgID5cbiAgICAgICAgPFRleHQgY29sb3I9XCJ0ZXJ0aWFyeVwiPntlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50fTwvVGV4dD5cbiAgICAgIDwvU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lcj5cbiAgICApIDogbnVsbDtcblxuICAgIGNvbnN0IGNsZWFyQnV0dG9uRWxtID0gdmFsdWUgPyAoXG4gICAgICA8U3R5bGVkQ2xlYXJCdXR0b25cbiAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgfHxcbiAgICAgICEhc2VuZEJ1dHRvblByb3BzKSAmJlxuICAgICAgIWlzQ29sbGFwc2VkICYmIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7Ym90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgJiYgKFxuICAgICAgICAgICAgPFN0eWxlZFNsb3Q+e2JvdHRvbVRvb2xiYXIubGVmdENvbnRlbnR9PC9TdHlsZWRTbG90PlxuICAgICAgICAgICl9XG4gICAgICAgICAgPFN0eWxlZFNsb3QgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIiBzaWRlPVwicmlnaHRcIj5cbiAgICAgICAgICAgIDxJbmxpbmUgc3BhY2U9XCJ4c1wiIHZBbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnR9XG4gICAgICAgICAgICAgIHtzZW5kQnV0dG9uUHJvcHMgJiYgKFxuICAgICAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgYXJpYUF0dHJpYnV0ZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IGlzUHJvY2Vzc2luZ1xuICAgICAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICA6IFwiU3VibWl0IHF1ZXJ5XCIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXshdmFsdWUgfHwgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZEJ1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17XG4gICAgICAgICAgICAgICAgICAgIGlzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29uXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvSW5saW5lPlxuICAgICAgICAgIDwvU3R5bGVkU2xvdD5cbiAgICAgICAgPC8+XG4gICAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICBlbGV2YXRpb249ezB9XG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17aXNDb2xsYXBzZWQgPyBcInhzXCIgOiBcIm1cIn1cbiAgICAgICAgICAgICAgaGlkZUJvcmRlcj17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXVHMEIifQ== */"),StyledSlotsContainer=(0,_styled.default)("div",{target:"e865e325",label:"StyledSlotsContainer"})({display:"flex",flexWrap:"wrap",alignItems:"center"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8eyBoaWRlQm9yZGVyOiBib29sZWFuIH0+KFxuICAoeyB0aGVtZSwgaGlkZUJvcmRlciB9KSA9PiAoe1xuICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICB9KSxcbiAgICBjdXJzb3I6IFwidGV4dFwiLFxuICAgIFtgJjpoYXModGV4dGFyZWE6Zm9jdXMtdmlzaWJsZSlgXToge1xuICAgICAgb3V0bGluZVdpZHRoOiAxLFxuICAgICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgICBvdXRsaW5lT2Zmc2V0OiAtMSxcbiAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG5cbiAgICAgIFwiQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MClcIjoge1xuICAgICAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuY29uc3QgU3R5bGVkTGVmdEljb25Db250YWluZXIgPSBzdHlsZWQuZGl2KCh7IHRoZW1lIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lKSxcbiAgbGVmdDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUpLFxufSkpO1xuXG50eXBlIFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJQcm9wcyA9IFBpY2s8XG4gIFByb21wdElucHV0UHJvcHMsXG4gIFwiaXNOYXZCYXJWYXJpYW50XCJcbj47XG5cbmNvbnN0IFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgPVxuICBzdHlsZWQuZGl2PFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJQcm9wcz4oXG4gICAgKHsgdGhlbWUsIGlzTmF2QmFyVmFyaWFudCB9KSA9PiAoe1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHRvcDogaXNOYXZCYXJWYXJpYW50XG4gICAgICAgID8gdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54eHNcbiAgICAgICAgOiBnZXRQYWRkaW5nVmVydGljYWwodGhlbWUpLFxuICAgICAgcmlnaHQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lKSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFNsb3RzQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGRpc3BsYXk6IFwiZmxleFwiLFxuICBmbGV4V3JhcDogXCJ3cmFwXCIsXG4gIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG59KTtcblxuLy8gSXQgbmVlZHMgbWFyZ2luIGR1ZSB0byBlbXB0eSBjbGlja2FibGUgc3BhY2UgdGhhdCBmb2N1c2VzIHRoZSB0ZXh0YXJlYVxuLy8gU2xvdHMgc2hvdWxkIG5vdCBiZSBpbiB0aGUgZGl2LCBiZWNhdXNlIGFyZWEgYmV0d2VlbiBzaG91bGQgYmUgY2xpY2thYmxlIGFsc29cbnR5cGUgU2xvdFByb3BzID0ge1xuICBzaWRlPzogXCJyaWdodFwiO1xufTtcbmNvbnN0IFN0eWxlZFNsb3QgPSBzdHlsZWQuZGl2PFNsb3RQcm9wcz4oKHsgdGhlbWUsIHNpZGUgfSkgPT4gKHtcbiAgbWFyZ2luOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm0sXG5cbiAgLi4uKHNpZGUgPT09IFwicmlnaHRcIiAmJiB7XG4gICAgbWFyZ2luTGVmdDogXCJhdXRvXCIsXG4gIH0pLFxufSkpO1xuXG50eXBlIFNlbmRCdXR0b25Qcm9wcyA9IE9taXQ8Um91bmRCdXR0b25Qcm9wcywgXCJpY29uXCIgfCBcInZhcmlhbnRcIj4gJiB7XG4gIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiO1xufTtcblxudHlwZSBCb3R0b21Ub29sYmFyQ29uZmlnID0ge1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgbGVmdENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogQ3VycmVudGx5IHNob3dzIHNlbmQgYnV0dG9uIHByb2Nlc3Npbmcgc3RhdGUgICovXG4gIGJvdHRvbVRvb2xiYXI/OiBCb3R0b21Ub29sYmFyQ29uZmlnO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBTZW5kQnV0dG9uUHJvcHM7XG4gIGlzUHJvY2Vzc2luZz86IGJvb2xlYW47XG4gIGNsZWFyQnV0dG9uQXJpYUxhYmVsPzogc3RyaW5nO1xuICBoaW50PzogUmVhY3RFbGVtZW50O1xuICAvKiogU2hvd3MgaW4gdGhlIGNsZWFyIGJ1dHRvbiBzcGFjZSBpbiBlbXB0eSBzdGF0ZSAqL1xuICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICBvbkNsZWFyOiAoKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gdXNlciBzZWxlY3RzIChvciByZWplY3RzKSBhIGxpc3QgaXRlbSBmcm9tIGF1dG9jb21wbGV0ZSBsaXN0ICovXG4gIG9uQ29tcGxldGU/OiAoe1xuICAgIHZhbHVlLFxuICAgIGNhdGVnb3J5LFxuICAgIGV2dCxcbiAgICBpbmRleCxcbiAgfToge1xuICAgIHZhbHVlOiBMaXN0SXRlbVZhbHVlO1xuICAgIGNhdGVnb3J5Pzogc3RyaW5nO1xuICAgIGV2dD86IFN5bnRoZXRpY0V2ZW50O1xuICAgIGluZGV4PzogbnVtYmVyO1xuICB9KSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIG9uIEVudGVyIGtleSB0byBzdWJtaXQgdGhlIGZvcm0gICovXG4gIG9uRW50ZXJLZXk6ICgpID0+IHZvaWQ7XG4gIC8qKiBSZW5kZXJzIGFuIGljb24gdG8gdGhlIGxlZnQgaW5zaWRlIHRoZSB0ZXh0YXJlYSAqL1xuICBsZWZ0SWNvbj86IEljb25OYW1lO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCIgfCBcImhhc0xlZnRJY29uXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgW2lzQ29sbGFwc2VkLCBzZXRJc0NvbGxhcHNlZF0gPSB1c2VTdGF0ZShpc05hdkJhclZhcmlhbnQpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICBpZiAoXG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQgIT09IHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uRW5kXG4gICAgICApIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZSh2YWx1ZS5sZW5ndGgsIHZhbHVlLmxlbmd0aCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCAmJiAhaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyxcbiAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0LFxuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0LFxuICAgICAgaXNDb2xsYXBzZWQsXG4gICAgXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ICYmIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZShcbiAgICAgICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50Lmxlbmd0aCxcbiAgICAgICAgICB2YWx1ZS5sZW5ndGhcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LCBbdmFsdWUsIHRleHRBcmVhUmVmLCBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSk7XG5cbiAgICAvLyBEZXRlcm1pbmUgd2hlbiBmb2N1cyBsZWF2ZXMgdGhlIGNvbnRhaW5lciB0byBjb2xsYXBzZSBpdFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBsZXQgaGFuZGxlcjogKGV2dDogRm9jdXNFdmVudCkgPT4gdm9pZDtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRhaW5lclJlZi5jdXJyZW50O1xuXG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50ICYmIGNvbnRhaW5lcikge1xuICAgICAgICBoYW5kbGVyID0gKGV2dDogRm9jdXNFdmVudCkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFjb250YWluZXJSZWYuY3VycmVudC5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgIXBvcnRhbENvbnRhaW5lcj8uY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgIGV2dC5yZWxhdGVkVGFyZ2V0ICE9PSBudWxsXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0sIFtpc05hdkJhclZhcmlhbnQsIGNvbnRhaW5lclJlZiwgcG9ydGFsQ29udGFpbmVyXSk7XG5cbiAgICBjb25zdCBmbGF0dGVuZWRMaXN0SXRlbXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IGxpc3Q6IEZsYXR0ZW5lZExpc3RJdGVtW10gPSBbXTtcblxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmZvckVhY2goKGxpc3RJdGVtKSA9PiB7XG4gICAgICAgIGxpc3RJdGVtLml0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgbGlzdC5wdXNoKHtcbiAgICAgICAgICAgIGNhdGVnb3J5OiBsaXN0SXRlbS5jYXRlZ29yeSxcbiAgICAgICAgICAgIGluZGV4SW5DYXRlZ29yeTogaW5kZXgsXG4gICAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgICAgICAgIGlkOiBnZXRMaXN0SXRlbUlkKG5hbWUsIGxpc3RJdGVtLmNhdGVnb3J5LCBpbmRleCksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbGlzdDtcbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLCBuYW1lXSk7XG5cbiAgICBjb25zdCBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlID0gKGluZGV4OiBudW1iZXIsIGV2dD86IFN5bnRoZXRpY0V2ZW50KSA9PiB7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KGluZGV4KTtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgY29uc3QgeyBjYXRlZ29yeSwgdmFsdWU6IGl0ZW1WYWx1ZSB9ID0gZmxhdHRlbmVkTGlzdEl0ZW1zW2luZGV4XTtcblxuICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IGl0ZW1WYWx1ZSwgY2F0ZWdvcnksIGV2dCwgaW5kZXggfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUxpc3RJdGVtQ2xpY2sgPSAoXG4gICAgICBjYXRlZ29yeTogc3RyaW5nLFxuICAgICAgaW5kZXhJbkNhdGVnb3J5OiBudW1iZXIsXG4gICAgICBldnQ/OiBNb3VzZUV2ZW50XG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IGZsYXR0ZW5lZExpc3RJdGVtcy5maW5kSW5kZXgoXG4gICAgICAgIChsaXN0SXRlbSkgPT5cbiAgICAgICAgICBsaXN0SXRlbS5jYXRlZ29yeSA9PT0gY2F0ZWdvcnkgJiZcbiAgICAgICAgICBsaXN0SXRlbS5pbmRleEluQ2F0ZWdvcnkgPT09IGluZGV4SW5DYXRlZ29yeVxuICAgICAgKTtcblxuICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShpbmRleCwgZXZ0KTtcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlS2V5RG93bjogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAoaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiIFwiOlxuICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkFycm93VXBcIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggLSAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkFycm93RG93blwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA8IGZsYXR0ZW5lZExpc3RJdGVtcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCArIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBvbkNsZWFyPy4oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgb25LZXlEb3duPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlOiBDaGFuZ2VFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gZXZ0LnRhcmdldC52YWx1ZTtcbiAgICAgIG9uQ2hhbmdlKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUZvY3VzOiBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHNldElzQ29sbGFwc2VkKGZhbHNlKTtcbiAgICAgIG9uRm9jdXM/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVCbHVyOiBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCkge1xuICAgICAgICBvbkNvbXBsZXRlPy4oeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgfVxuICAgICAgb25CbHVyPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlU2VuZEJ1dHRvbkNsaWNrID0gKGV2dDogTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHtcbiAgICAgIG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5vbkNsaWNrPy4oZXZ0KTtcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlUHJldmVudEZvY3VzID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBQcmV2ZW50IHRoZSB0ZXh0YXJlYSBmcm9tIGJlaW5nIHVuZm9jdXNlZFxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd24gPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIEZvY3VzIHRleHRhcmVhIHdoZW4gY2xpY2tpbmcgb24gdGhlIGNvbnRhaW5lciBvbmx5XG4gICAgICBpZiAoZXZ0LnRhcmdldCA9PT0gZXZ0LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbGVjdGVkTGlzdEl0ZW0gPVxuICAgICAgc2VsZWN0ZWRJbmRleCAhPT0gLTEgPyBmbGF0dGVuZWRMaXN0SXRlbXNbc2VsZWN0ZWRJbmRleF0gOiBudWxsO1xuXG4gICAgY29uc3QgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbSA9IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQgPyAoXG4gICAgICA8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclxuICAgICAgICBpc05hdkJhclZhcmlhbnQ9e2lzTmF2QmFyVmFyaWFudH1cbiAgICAgID5cbiAgICAgICAgPFRleHQgY29sb3I9XCJ0ZXJ0aWFyeVwiPntlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50fTwvVGV4dD5cbiAgICAgIDwvU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lcj5cbiAgICApIDogbnVsbDtcblxuICAgIGNvbnN0IGNsZWFyQnV0dG9uRWxtID0gdmFsdWUgPyAoXG4gICAgICA8U3R5bGVkQ2xlYXJCdXR0b25cbiAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgfHxcbiAgICAgICEhc2VuZEJ1dHRvblByb3BzKSAmJlxuICAgICAgIWlzQ29sbGFwc2VkICYmIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7Ym90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgJiYgKFxuICAgICAgICAgICAgPFN0eWxlZFNsb3Q+e2JvdHRvbVRvb2xiYXIubGVmdENvbnRlbnR9PC9TdHlsZWRTbG90PlxuICAgICAgICAgICl9XG4gICAgICAgICAgPFN0eWxlZFNsb3QgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIiBzaWRlPVwicmlnaHRcIj5cbiAgICAgICAgICAgIDxJbmxpbmUgc3BhY2U9XCJ4c1wiIHZBbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnR9XG4gICAgICAgICAgICAgIHtzZW5kQnV0dG9uUHJvcHMgJiYgKFxuICAgICAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgYXJpYUF0dHJpYnV0ZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IGlzUHJvY2Vzc2luZ1xuICAgICAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICA6IFwiU3VibWl0IHF1ZXJ5XCIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXshdmFsdWUgfHwgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZEJ1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17XG4gICAgICAgICAgICAgICAgICAgIGlzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29uXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvSW5saW5lPlxuICAgICAgICAgIDwvU3R5bGVkU2xvdD5cbiAgICAgICAgPC8+XG4gICAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICBlbGV2YXRpb249ezB9XG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17aXNDb2xsYXBzZWQgPyBcInhzXCIgOiBcIm1cIn1cbiAgICAgICAgICAgICAgaGlkZUJvcmRlcj17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStHNkIifQ== */"),StyledSlot=(0,_styled.default)("div",{target:"e865e326",label:"StyledSlot"})(({theme,side})=>({margin:theme.variables.size.spacing.m,..."right"===side&&{marginLeft:"auto"}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8eyBoaWRlQm9yZGVyOiBib29sZWFuIH0+KFxuICAoeyB0aGVtZSwgaGlkZUJvcmRlciB9KSA9PiAoe1xuICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICB9KSxcbiAgICBjdXJzb3I6IFwidGV4dFwiLFxuICAgIFtgJjpoYXModGV4dGFyZWE6Zm9jdXMtdmlzaWJsZSlgXToge1xuICAgICAgb3V0bGluZVdpZHRoOiAxLFxuICAgICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgICBvdXRsaW5lT2Zmc2V0OiAtMSxcbiAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG5cbiAgICAgIFwiQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MClcIjoge1xuICAgICAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuY29uc3QgU3R5bGVkTGVmdEljb25Db250YWluZXIgPSBzdHlsZWQuZGl2KCh7IHRoZW1lIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lKSxcbiAgbGVmdDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUpLFxufSkpO1xuXG50eXBlIFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJQcm9wcyA9IFBpY2s8XG4gIFByb21wdElucHV0UHJvcHMsXG4gIFwiaXNOYXZCYXJWYXJpYW50XCJcbj47XG5cbmNvbnN0IFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgPVxuICBzdHlsZWQuZGl2PFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJQcm9wcz4oXG4gICAgKHsgdGhlbWUsIGlzTmF2QmFyVmFyaWFudCB9KSA9PiAoe1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHRvcDogaXNOYXZCYXJWYXJpYW50XG4gICAgICAgID8gdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54eHNcbiAgICAgICAgOiBnZXRQYWRkaW5nVmVydGljYWwodGhlbWUpLFxuICAgICAgcmlnaHQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lKSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFNsb3RzQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGRpc3BsYXk6IFwiZmxleFwiLFxuICBmbGV4V3JhcDogXCJ3cmFwXCIsXG4gIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG59KTtcblxuLy8gSXQgbmVlZHMgbWFyZ2luIGR1ZSB0byBlbXB0eSBjbGlja2FibGUgc3BhY2UgdGhhdCBmb2N1c2VzIHRoZSB0ZXh0YXJlYVxuLy8gU2xvdHMgc2hvdWxkIG5vdCBiZSBpbiB0aGUgZGl2LCBiZWNhdXNlIGFyZWEgYmV0d2VlbiBzaG91bGQgYmUgY2xpY2thYmxlIGFsc29cbnR5cGUgU2xvdFByb3BzID0ge1xuICBzaWRlPzogXCJyaWdodFwiO1xufTtcbmNvbnN0IFN0eWxlZFNsb3QgPSBzdHlsZWQuZGl2PFNsb3RQcm9wcz4oKHsgdGhlbWUsIHNpZGUgfSkgPT4gKHtcbiAgbWFyZ2luOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm0sXG5cbiAgLi4uKHNpZGUgPT09IFwicmlnaHRcIiAmJiB7XG4gICAgbWFyZ2luTGVmdDogXCJhdXRvXCIsXG4gIH0pLFxufSkpO1xuXG50eXBlIFNlbmRCdXR0b25Qcm9wcyA9IE9taXQ8Um91bmRCdXR0b25Qcm9wcywgXCJpY29uXCIgfCBcInZhcmlhbnRcIj4gJiB7XG4gIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiO1xufTtcblxudHlwZSBCb3R0b21Ub29sYmFyQ29uZmlnID0ge1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgbGVmdENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogQ3VycmVudGx5IHNob3dzIHNlbmQgYnV0dG9uIHByb2Nlc3Npbmcgc3RhdGUgICovXG4gIGJvdHRvbVRvb2xiYXI/OiBCb3R0b21Ub29sYmFyQ29uZmlnO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBTZW5kQnV0dG9uUHJvcHM7XG4gIGlzUHJvY2Vzc2luZz86IGJvb2xlYW47XG4gIGNsZWFyQnV0dG9uQXJpYUxhYmVsPzogc3RyaW5nO1xuICBoaW50PzogUmVhY3RFbGVtZW50O1xuICAvKiogU2hvd3MgaW4gdGhlIGNsZWFyIGJ1dHRvbiBzcGFjZSBpbiBlbXB0eSBzdGF0ZSAqL1xuICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICBvbkNsZWFyOiAoKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gdXNlciBzZWxlY3RzIChvciByZWplY3RzKSBhIGxpc3QgaXRlbSBmcm9tIGF1dG9jb21wbGV0ZSBsaXN0ICovXG4gIG9uQ29tcGxldGU/OiAoe1xuICAgIHZhbHVlLFxuICAgIGNhdGVnb3J5LFxuICAgIGV2dCxcbiAgICBpbmRleCxcbiAgfToge1xuICAgIHZhbHVlOiBMaXN0SXRlbVZhbHVlO1xuICAgIGNhdGVnb3J5Pzogc3RyaW5nO1xuICAgIGV2dD86IFN5bnRoZXRpY0V2ZW50O1xuICAgIGluZGV4PzogbnVtYmVyO1xuICB9KSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIG9uIEVudGVyIGtleSB0byBzdWJtaXQgdGhlIGZvcm0gICovXG4gIG9uRW50ZXJLZXk6ICgpID0+IHZvaWQ7XG4gIC8qKiBSZW5kZXJzIGFuIGljb24gdG8gdGhlIGxlZnQgaW5zaWRlIHRoZSB0ZXh0YXJlYSAqL1xuICBsZWZ0SWNvbj86IEljb25OYW1lO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCIgfCBcImhhc0xlZnRJY29uXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgW2lzQ29sbGFwc2VkLCBzZXRJc0NvbGxhcHNlZF0gPSB1c2VTdGF0ZShpc05hdkJhclZhcmlhbnQpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICBpZiAoXG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQgIT09IHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uRW5kXG4gICAgICApIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZSh2YWx1ZS5sZW5ndGgsIHZhbHVlLmxlbmd0aCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCAmJiAhaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyxcbiAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0LFxuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0LFxuICAgICAgaXNDb2xsYXBzZWQsXG4gICAgXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ICYmIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZShcbiAgICAgICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50Lmxlbmd0aCxcbiAgICAgICAgICB2YWx1ZS5sZW5ndGhcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LCBbdmFsdWUsIHRleHRBcmVhUmVmLCBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSk7XG5cbiAgICAvLyBEZXRlcm1pbmUgd2hlbiBmb2N1cyBsZWF2ZXMgdGhlIGNvbnRhaW5lciB0byBjb2xsYXBzZSBpdFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBsZXQgaGFuZGxlcjogKGV2dDogRm9jdXNFdmVudCkgPT4gdm9pZDtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRhaW5lclJlZi5jdXJyZW50O1xuXG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50ICYmIGNvbnRhaW5lcikge1xuICAgICAgICBoYW5kbGVyID0gKGV2dDogRm9jdXNFdmVudCkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFjb250YWluZXJSZWYuY3VycmVudC5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgIXBvcnRhbENvbnRhaW5lcj8uY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgIGV2dC5yZWxhdGVkVGFyZ2V0ICE9PSBudWxsXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0sIFtpc05hdkJhclZhcmlhbnQsIGNvbnRhaW5lclJlZiwgcG9ydGFsQ29udGFpbmVyXSk7XG5cbiAgICBjb25zdCBmbGF0dGVuZWRMaXN0SXRlbXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IGxpc3Q6IEZsYXR0ZW5lZExpc3RJdGVtW10gPSBbXTtcblxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmZvckVhY2goKGxpc3RJdGVtKSA9PiB7XG4gICAgICAgIGxpc3RJdGVtLml0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgbGlzdC5wdXNoKHtcbiAgICAgICAgICAgIGNhdGVnb3J5OiBsaXN0SXRlbS5jYXRlZ29yeSxcbiAgICAgICAgICAgIGluZGV4SW5DYXRlZ29yeTogaW5kZXgsXG4gICAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgICAgICAgIGlkOiBnZXRMaXN0SXRlbUlkKG5hbWUsIGxpc3RJdGVtLmNhdGVnb3J5LCBpbmRleCksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbGlzdDtcbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLCBuYW1lXSk7XG5cbiAgICBjb25zdCBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlID0gKGluZGV4OiBudW1iZXIsIGV2dD86IFN5bnRoZXRpY0V2ZW50KSA9PiB7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KGluZGV4KTtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgY29uc3QgeyBjYXRlZ29yeSwgdmFsdWU6IGl0ZW1WYWx1ZSB9ID0gZmxhdHRlbmVkTGlzdEl0ZW1zW2luZGV4XTtcblxuICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IGl0ZW1WYWx1ZSwgY2F0ZWdvcnksIGV2dCwgaW5kZXggfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUxpc3RJdGVtQ2xpY2sgPSAoXG4gICAgICBjYXRlZ29yeTogc3RyaW5nLFxuICAgICAgaW5kZXhJbkNhdGVnb3J5OiBudW1iZXIsXG4gICAgICBldnQ/OiBNb3VzZUV2ZW50XG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IGZsYXR0ZW5lZExpc3RJdGVtcy5maW5kSW5kZXgoXG4gICAgICAgIChsaXN0SXRlbSkgPT5cbiAgICAgICAgICBsaXN0SXRlbS5jYXRlZ29yeSA9PT0gY2F0ZWdvcnkgJiZcbiAgICAgICAgICBsaXN0SXRlbS5pbmRleEluQ2F0ZWdvcnkgPT09IGluZGV4SW5DYXRlZ29yeVxuICAgICAgKTtcblxuICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShpbmRleCwgZXZ0KTtcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlS2V5RG93bjogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAoaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiIFwiOlxuICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkFycm93VXBcIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggLSAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkFycm93RG93blwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA8IGZsYXR0ZW5lZExpc3RJdGVtcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCArIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBvbkNsZWFyPy4oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgb25LZXlEb3duPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlOiBDaGFuZ2VFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gZXZ0LnRhcmdldC52YWx1ZTtcbiAgICAgIG9uQ2hhbmdlKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUZvY3VzOiBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHNldElzQ29sbGFwc2VkKGZhbHNlKTtcbiAgICAgIG9uRm9jdXM/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVCbHVyOiBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCkge1xuICAgICAgICBvbkNvbXBsZXRlPy4oeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgfVxuICAgICAgb25CbHVyPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlU2VuZEJ1dHRvbkNsaWNrID0gKGV2dDogTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHtcbiAgICAgIG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5vbkNsaWNrPy4oZXZ0KTtcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlUHJldmVudEZvY3VzID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBQcmV2ZW50IHRoZSB0ZXh0YXJlYSBmcm9tIGJlaW5nIHVuZm9jdXNlZFxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd24gPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIEZvY3VzIHRleHRhcmVhIHdoZW4gY2xpY2tpbmcgb24gdGhlIGNvbnRhaW5lciBvbmx5XG4gICAgICBpZiAoZXZ0LnRhcmdldCA9PT0gZXZ0LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbGVjdGVkTGlzdEl0ZW0gPVxuICAgICAgc2VsZWN0ZWRJbmRleCAhPT0gLTEgPyBmbGF0dGVuZWRMaXN0SXRlbXNbc2VsZWN0ZWRJbmRleF0gOiBudWxsO1xuXG4gICAgY29uc3QgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbSA9IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQgPyAoXG4gICAgICA8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclxuICAgICAgICBpc05hdkJhclZhcmlhbnQ9e2lzTmF2QmFyVmFyaWFudH1cbiAgICAgID5cbiAgICAgICAgPFRleHQgY29sb3I9XCJ0ZXJ0aWFyeVwiPntlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50fTwvVGV4dD5cbiAgICAgIDwvU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lcj5cbiAgICApIDogbnVsbDtcblxuICAgIGNvbnN0IGNsZWFyQnV0dG9uRWxtID0gdmFsdWUgPyAoXG4gICAgICA8U3R5bGVkQ2xlYXJCdXR0b25cbiAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgfHxcbiAgICAgICEhc2VuZEJ1dHRvblByb3BzKSAmJlxuICAgICAgIWlzQ29sbGFwc2VkICYmIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7Ym90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgJiYgKFxuICAgICAgICAgICAgPFN0eWxlZFNsb3Q+e2JvdHRvbVRvb2xiYXIubGVmdENvbnRlbnR9PC9TdHlsZWRTbG90PlxuICAgICAgICAgICl9XG4gICAgICAgICAgPFN0eWxlZFNsb3QgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIiBzaWRlPVwicmlnaHRcIj5cbiAgICAgICAgICAgIDxJbmxpbmUgc3BhY2U9XCJ4c1wiIHZBbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnR9XG4gICAgICAgICAgICAgIHtzZW5kQnV0dG9uUHJvcHMgJiYgKFxuICAgICAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgYXJpYUF0dHJpYnV0ZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IGlzUHJvY2Vzc2luZ1xuICAgICAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICA6IFwiU3VibWl0IHF1ZXJ5XCIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXshdmFsdWUgfHwgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZEJ1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17XG4gICAgICAgICAgICAgICAgICAgIGlzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29uXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvSW5saW5lPlxuICAgICAgICAgIDwvU3R5bGVkU2xvdD5cbiAgICAgICAgPC8+XG4gICAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICBlbGV2YXRpb249ezB9XG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17aXNDb2xsYXBzZWQgPyBcInhzXCIgOiBcIm1cIn1cbiAgICAgICAgICAgICAgaGlkZUJvcmRlcj17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTBIbUIifQ== */"),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.selectionStart!==textAreaRef.current.selectionEnd&&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","aria-hidden":"true",tabIndex:-1,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||!!sendButtonProps)&&!isCollapsed&&_react.default.createElement(_react.default.Fragment,null,bottomToolbar?.leftContent&&_react.default.createElement(StyledSlot,null,bottomToolbar.leftContent),_react.default.createElement(StyledSlot,{"data-e2e-test-id":"bottomToolbar",side:"right"},_react.default.createElement(_Inline.Inline,{space:"xs",vAlignItems:"center"},bottomToolbar?.rightContent,sendButtonProps&&_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}))));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(StyledSlotsContainer,{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:"e865e327",label:"CustomButton"})(({theme})=>({borderRadius:theme.variables.size.borderRadius.l}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8eyBoaWRlQm9yZGVyOiBib29sZWFuIH0+KFxuICAoeyB0aGVtZSwgaGlkZUJvcmRlciB9KSA9PiAoe1xuICAgIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gICAgLi4uKGhpZGVCb3JkZXIgJiYge1xuICAgICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgICB9KSxcbiAgICBjdXJzb3I6IFwidGV4dFwiLFxuICAgIFtgJjpoYXModGV4dGFyZWE6Zm9jdXMtdmlzaWJsZSlgXToge1xuICAgICAgb3V0bGluZVdpZHRoOiAxLFxuICAgICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgICBvdXRsaW5lT2Zmc2V0OiAtMSxcbiAgICAgIG91dGxpbmVDb2xvcjogdGhlbWUudmFsdWVzLmNvbG9yLmJvcmRlci5hY2NlbnQuZGVmYXVsdCxcbiAgICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5mb2N1c1JpbmcsXG5cbiAgICAgIFwiQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86MClcIjoge1xuICAgICAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRUZXh0QXJlYUNvbnRhaW5lciA9IHN0eWxlZC5kaXYoe1xuICBib3JkZXJSYWRpdXM6IFwiaW5oZXJpdFwiLFxuICBwb3NpdGlvbjogXCJyZWxhdGl2ZVwiLFxuICB3aWR0aDogXCIxMDAlXCIsXG59KTtcblxuY29uc3QgU3R5bGVkTGVmdEljb25Db250YWluZXIgPSBzdHlsZWQuZGl2KCh7IHRoZW1lIH0pID0+ICh7XG4gIHBvc2l0aW9uOiBcImFic29sdXRlXCIsXG4gIHRvcDogZ2V0UGFkZGluZ1ZlcnRpY2FsKHRoZW1lKSxcbiAgbGVmdDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUpLFxufSkpO1xuXG50eXBlIFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJQcm9wcyA9IFBpY2s8XG4gIFByb21wdElucHV0UHJvcHMsXG4gIFwiaXNOYXZCYXJWYXJpYW50XCJcbj47XG5cbmNvbnN0IFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXIgPVxuICBzdHlsZWQuZGl2PFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJQcm9wcz4oXG4gICAgKHsgdGhlbWUsIGlzTmF2QmFyVmFyaWFudCB9KSA9PiAoe1xuICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgIHRvcDogaXNOYXZCYXJWYXJpYW50XG4gICAgICAgID8gdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy54eHNcbiAgICAgICAgOiBnZXRQYWRkaW5nVmVydGljYWwodGhlbWUpLFxuICAgICAgcmlnaHQ6IGdldFBhZGRpbmdIb3Jpem9udGFsKHRoZW1lKSxcbiAgICAgIHVzZXJTZWxlY3Q6IFwibm9uZVwiLFxuICAgICAgcG9pbnRlckV2ZW50czogXCJub25lXCIsXG4gICAgfSlcbiAgKTtcblxudHlwZSBTdHlsZWRDbGVhckJ1dHRvblByb3BzID0gUGljdG9ncmFtQnV0dG9uUHJvcHMgJlxuICBQaWNrPFByb21wdElucHV0UHJvcHMsIFwiaXNOYXZCYXJWYXJpYW50XCI+O1xuXG5jb25zdCBTdHlsZWRDbGVhckJ1dHRvbiA9IHN0eWxlZChQaWN0b2dyYW1CdXR0b24pPFN0eWxlZENsZWFyQnV0dG9uUHJvcHM+KFxuICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICByaWdodDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICAgIHRvcDogaXNOYXZCYXJWYXJpYW50ID8gMCA6IHRoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcucyxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZFNsb3RzQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGRpc3BsYXk6IFwiZmxleFwiLFxuICBmbGV4V3JhcDogXCJ3cmFwXCIsXG4gIGFsaWduSXRlbXM6IFwiY2VudGVyXCIsXG59KTtcblxuLy8gSXQgbmVlZHMgbWFyZ2luIGR1ZSB0byBlbXB0eSBjbGlja2FibGUgc3BhY2UgdGhhdCBmb2N1c2VzIHRoZSB0ZXh0YXJlYVxuLy8gU2xvdHMgc2hvdWxkIG5vdCBiZSBpbiB0aGUgZGl2LCBiZWNhdXNlIGFyZWEgYmV0d2VlbiBzaG91bGQgYmUgY2xpY2thYmxlIGFsc29cbnR5cGUgU2xvdFByb3BzID0ge1xuICBzaWRlPzogXCJyaWdodFwiO1xufTtcbmNvbnN0IFN0eWxlZFNsb3QgPSBzdHlsZWQuZGl2PFNsb3RQcm9wcz4oKHsgdGhlbWUsIHNpZGUgfSkgPT4gKHtcbiAgbWFyZ2luOiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLm0sXG5cbiAgLi4uKHNpZGUgPT09IFwicmlnaHRcIiAmJiB7XG4gICAgbWFyZ2luTGVmdDogXCJhdXRvXCIsXG4gIH0pLFxufSkpO1xuXG50eXBlIFNlbmRCdXR0b25Qcm9wcyA9IE9taXQ8Um91bmRCdXR0b25Qcm9wcywgXCJpY29uXCIgfCBcInZhcmlhbnRcIj4gJiB7XG4gIGljb24/OiBcImFycm93LXVwXCIgfCBcInNlYXJjaFwiIHwgXCJhcnJvdy1yaWdodFwiO1xufTtcblxudHlwZSBCb3R0b21Ub29sYmFyQ29uZmlnID0ge1xuICAvKiogVG9vbGJhciBlbGVtZW50cyBiZWxvdyB0ZXh0IGFyZWEgKi9cbiAgbGVmdENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG4gIHJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbn07XG5cbmV4cG9ydCB0eXBlIFByb21wdElucHV0UHJvcHMgPSB7XG4gIFwiZGF0YS1lMmUtdGVzdC1pZFwiPzogc3RyaW5nO1xuICAvKiogQ3VycmVudGx5IHNob3dzIHNlbmQgYnV0dG9uIHByb2Nlc3Npbmcgc3RhdGUgICovXG4gIGJvdHRvbVRvb2xiYXI/OiBCb3R0b21Ub29sYmFyQ29uZmlnO1xuICBzZW5kQnV0dG9uUHJvcHM/OiBTZW5kQnV0dG9uUHJvcHM7XG4gIGlzUHJvY2Vzc2luZz86IGJvb2xlYW47XG4gIGNsZWFyQnV0dG9uQXJpYUxhYmVsPzogc3RyaW5nO1xuICBoaW50PzogUmVhY3RFbGVtZW50O1xuICAvKiogU2hvd3MgaW4gdGhlIGNsZWFyIGJ1dHRvbiBzcGFjZSBpbiBlbXB0eSBzdGF0ZSAqL1xuICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICBvbkNsZWFyOiAoKSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIHdoZW4gdXNlciBzZWxlY3RzIChvciByZWplY3RzKSBhIGxpc3QgaXRlbSBmcm9tIGF1dG9jb21wbGV0ZSBsaXN0ICovXG4gIG9uQ29tcGxldGU/OiAoe1xuICAgIHZhbHVlLFxuICAgIGNhdGVnb3J5LFxuICAgIGV2dCxcbiAgICBpbmRleCxcbiAgfToge1xuICAgIHZhbHVlOiBMaXN0SXRlbVZhbHVlO1xuICAgIGNhdGVnb3J5Pzogc3RyaW5nO1xuICAgIGV2dD86IFN5bnRoZXRpY0V2ZW50O1xuICAgIGluZGV4PzogbnVtYmVyO1xuICB9KSA9PiB2b2lkO1xuICAvKiogQ2FsbGVkIG9uIEVudGVyIGtleSB0byBzdWJtaXQgdGhlIGZvcm0gICovXG4gIG9uRW50ZXJLZXk6ICgpID0+IHZvaWQ7XG4gIC8qKiBSZW5kZXJzIGFuIGljb24gdG8gdGhlIGxlZnQgaW5zaWRlIHRoZSB0ZXh0YXJlYSAqL1xuICBsZWZ0SWNvbj86IEljb25OYW1lO1xufSAmIE9taXQ8XG4gIFByb21wdFRleHRBcmVhUHJvcHMsXG4gIFwiaXNDb2xsYXBzZWRcIiB8IFwiaXNBdXRvY29tcGxldGVMaXN0T3BlblwiIHwgXCJzZWxlY3RlZExpc3RJdGVtXCIgfCBcImhhc0xlZnRJY29uXCJcbj4gJlxuICBQaWNrPFxuICAgIEF1dG9jb21wbGV0ZUxpc3RQcm9wcyxcbiAgICBcImF1dG9jb21wbGV0ZUxpc3RJdGVtc1wiIHwgXCJhdXRvY29tcGxldGVMaXN0Rm9vdGVyXCIgfCBcInBvcnRhbENvbnRhaW5lclwiXG4gID47XG5cbmNvbnN0IGRlZmF1bHRTZW5kQnV0dG9uUHJvcHM6IFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgdHlwZTogXCJzdWJtaXRcIiBhcyBjb25zdCxcbiAgaWNvbjogXCJhcnJvdy11cFwiIGFzIGNvbnN0LFxufTtcblxuY29uc3QgUHJvbXB0SW5wdXRDb21wb25lbnQgPSBmb3J3YXJkUmVmKFxuICAoXG4gICAge1xuICAgICAgXCJkYXRhLWUyZS10ZXN0LWlkXCI6IGRhdGFFMmVUZXN0SWQsXG4gICAgICBuYW1lLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zID0gW10sXG4gICAgICB2YWx1ZSxcbiAgICAgIGJvdHRvbVRvb2xiYXIsXG4gICAgICBpc1Byb2Nlc3NpbmcsXG4gICAgICBzZW5kQnV0dG9uUHJvcHMsXG4gICAgICBhdXRvY29tcGxldGVMaXN0Rm9vdGVyLFxuICAgICAgY2xlYXJCdXR0b25BcmlhTGFiZWwgPSBcIkNsZWFyIGlucHV0XCIsXG4gICAgICBoaW50LFxuICAgICAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudCxcbiAgICAgIGlzTmF2QmFyVmFyaWFudCxcbiAgICAgIHBvcnRhbENvbnRhaW5lcixcbiAgICAgIGxlZnRJY29uLFxuICAgICAgb25DaGFuZ2UsXG4gICAgICBvbkNvbXBsZXRlLFxuICAgICAgb25DbGVhcixcbiAgICAgIG9uRW50ZXJLZXksXG4gICAgICBvbkZvY3VzLFxuICAgICAgb25CbHVyLFxuICAgICAgb25LZXlEb3duLFxuICAgICAgLi4ucmVzdFxuICAgIH06IFByb21wdElucHV0UHJvcHMsXG4gICAgcmVmOiBSZWZPYmplY3Q8SFRNTFRleHRBcmVhRWxlbWVudD5cbiAgKTogUmVhY3RFbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IHRleHRBcmVhQ29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBpbnRlcm5hbFJlZiA9IHVzZVJlZjxIVE1MVGV4dEFyZWFFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRJbmRleCwgc2V0U2VsZWN0ZWRJbmRleF0gPSB1c2VTdGF0ZSgtMSk7XG4gICAgY29uc3QgW2lzQ29sbGFwc2VkLCBzZXRJc0NvbGxhcHNlZF0gPSB1c2VTdGF0ZShpc05hdkJhclZhcmlhbnQpO1xuICAgIGNvbnN0IHVzZXJUeXBlZFF1ZXJ5ID0gdXNlUmVmKFwiXCIpO1xuICAgIGNvbnN0IFtpc0F1dG9jb21wbGV0ZUxpc3RPcGVuLCBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCB0ZXh0QXJlYVJlZiA9IHJlZiB8fCBpbnRlcm5hbFJlZjtcblxuICAgIGNvbnN0IG1lcmdlZFNlbmRCdXR0b25Qcm9wcyA9IHtcbiAgICAgIC4uLmRlZmF1bHRTZW5kQnV0dG9uUHJvcHMsXG4gICAgICAuLi4oc2VuZEJ1dHRvblByb3BzID8/IHt9KSxcbiAgICB9O1xuXG4gICAgdXNlT3V0c2lkZUNsaWNrKFxuICAgICAgY29udGFpbmVyUmVmLFxuICAgICAgKGV2dCkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbnRhaW5lclJlZi5jdXJyZW50LmNvbnRhaW5zKGV2dC50YXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAhcG9ydGFsQ29udGFpbmVyPy5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgZXZ0LnRhcmdldCAhPT0gbnVsbFxuICAgICAgICApIHtcbiAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgICFpc0NvbGxhcHNlZCAmJiBpc05hdkJhclZhcmlhbnRcbiAgICApO1xuXG4gICAgY29uc3QgY2xvc2VBdXRvY29tcGxldGVMaXN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNBdXRvY29tcGxldGVMaXN0T3BlbihmYWxzZSk7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICB9LCBbXSk7XG5cbiAgICBjb25zdCBvcGVuQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChhdXRvY29tcGxldGVMaXN0SXRlbXMubGVuZ3RoKSB7XG4gICAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4odHJ1ZSk7XG4gICAgICAgIHNldFNlbGVjdGVkSW5kZXgoLTEpO1xuICAgICAgfVxuICAgIH0sIFthdXRvY29tcGxldGVMaXN0SXRlbXNdKTtcblxuICAgIGNvbnN0IGFjY2VwdFRleHRTZWxlY3Rpb24gPSAoKSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gdmFsdWU7XG4gICAgICBpZiAoXG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQgIT09IHRleHRBcmVhUmVmLmN1cnJlbnQuc2VsZWN0aW9uRW5kXG4gICAgICApIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZSh2YWx1ZS5sZW5ndGgsIHZhbHVlLmxlbmd0aCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCAmJiAhaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgb3BlbkF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgfVxuICAgIH0sIFtcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyxcbiAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0LFxuICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0LFxuICAgICAgaXNDb2xsYXBzZWQsXG4gICAgXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHZhbHVlICYmIHZhbHVlICE9PSB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ICYmIGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudC5zZXRTZWxlY3Rpb25SYW5nZShcbiAgICAgICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50Lmxlbmd0aCxcbiAgICAgICAgICB2YWx1ZS5sZW5ndGhcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9LCBbdmFsdWUsIHRleHRBcmVhUmVmLCBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuXSk7XG5cbiAgICAvLyBEZXRlcm1pbmUgd2hlbiBmb2N1cyBsZWF2ZXMgdGhlIGNvbnRhaW5lciB0byBjb2xsYXBzZSBpdFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBsZXQgaGFuZGxlcjogKGV2dDogRm9jdXNFdmVudCkgPT4gdm9pZDtcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGNvbnRhaW5lclJlZi5jdXJyZW50O1xuXG4gICAgICBpZiAoaXNOYXZCYXJWYXJpYW50ICYmIGNvbnRhaW5lcikge1xuICAgICAgICBoYW5kbGVyID0gKGV2dDogRm9jdXNFdmVudCkgPT4ge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICFjb250YWluZXJSZWYuY3VycmVudC5jb250YWlucyhldnQucmVsYXRlZFRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgICAgIXBvcnRhbENvbnRhaW5lcj8uY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgIGV2dC5yZWxhdGVkVGFyZ2V0ICE9PSBudWxsXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiZm9jdXNvdXRcIiwgaGFuZGxlcik7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgIGlmIChjb250YWluZXIpIHtcbiAgICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgIH0sIFtpc05hdkJhclZhcmlhbnQsIGNvbnRhaW5lclJlZiwgcG9ydGFsQ29udGFpbmVyXSk7XG5cbiAgICBjb25zdCBmbGF0dGVuZWRMaXN0SXRlbXMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IGxpc3Q6IEZsYXR0ZW5lZExpc3RJdGVtW10gPSBbXTtcblxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmZvckVhY2goKGxpc3RJdGVtKSA9PiB7XG4gICAgICAgIGxpc3RJdGVtLml0ZW1zLmZvckVhY2goKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgbGlzdC5wdXNoKHtcbiAgICAgICAgICAgIGNhdGVnb3J5OiBsaXN0SXRlbS5jYXRlZ29yeSxcbiAgICAgICAgICAgIGluZGV4SW5DYXRlZ29yeTogaW5kZXgsXG4gICAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgICAgICAgIGlkOiBnZXRMaXN0SXRlbUlkKG5hbWUsIGxpc3RJdGVtLmNhdGVnb3J5LCBpbmRleCksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICByZXR1cm4gbGlzdDtcbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLCBuYW1lXSk7XG5cbiAgICBjb25zdCBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlID0gKGluZGV4OiBudW1iZXIsIGV2dD86IFN5bnRoZXRpY0V2ZW50KSA9PiB7XG4gICAgICBzZXRTZWxlY3RlZEluZGV4KGluZGV4KTtcbiAgICAgIGlmIChpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgY29uc3QgeyBjYXRlZ29yeSwgdmFsdWU6IGl0ZW1WYWx1ZSB9ID0gZmxhdHRlbmVkTGlzdEl0ZW1zW2luZGV4XTtcblxuICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IGl0ZW1WYWx1ZSwgY2F0ZWdvcnksIGV2dCwgaW5kZXggfSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUxpc3RJdGVtQ2xpY2sgPSAoXG4gICAgICBjYXRlZ29yeTogc3RyaW5nLFxuICAgICAgaW5kZXhJbkNhdGVnb3J5OiBudW1iZXIsXG4gICAgICBldnQ/OiBNb3VzZUV2ZW50XG4gICAgKSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IGZsYXR0ZW5lZExpc3RJdGVtcy5maW5kSW5kZXgoXG4gICAgICAgIChsaXN0SXRlbSkgPT5cbiAgICAgICAgICBsaXN0SXRlbS5jYXRlZ29yeSA9PT0gY2F0ZWdvcnkgJiZcbiAgICAgICAgICBsaXN0SXRlbS5pbmRleEluQ2F0ZWdvcnkgPT09IGluZGV4SW5DYXRlZ29yeVxuICAgICAgKTtcblxuICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShpbmRleCwgZXZ0KTtcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlS2V5RG93bjogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAoaXNBdXRvY29tcGxldGVMaXN0T3Blbikge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgIG9uQ29tcGxldGUoeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgICAgICAgICBhY2NlcHRUZXh0U2VsZWN0aW9uKCk7XG5cbiAgICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgb25FbnRlcktleT8uKCk7XG4gICAgICAgICAgICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiIFwiOlxuICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkFycm93VXBcIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggLSAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIkFycm93RG93blwiOlxuICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJbmRleCA8IGZsYXR0ZW5lZExpc3RJdGVtcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2Uoc2VsZWN0ZWRJbmRleCArIDEsIGV2dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzd2l0Y2ggKGV2dC5rZXkpIHtcbiAgICAgICAgICBjYXNlIFwiRXNjYXBlXCI6XG4gICAgICAgICAgICBvbkNsZWFyPy4oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJFbnRlclwiOlxuICAgICAgICAgICAgaWYgKCFldnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgb25LZXlEb3duPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlOiBDaGFuZ2VFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICB1c2VyVHlwZWRRdWVyeS5jdXJyZW50ID0gZXZ0LnRhcmdldC52YWx1ZTtcbiAgICAgIG9uQ2hhbmdlKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUZvY3VzOiBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIHNldElzQ29sbGFwc2VkKGZhbHNlKTtcbiAgICAgIG9uRm9jdXM/LihldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVCbHVyOiBGb2N1c0V2ZW50SGFuZGxlcjxIVE1MVGV4dEFyZWFFbGVtZW50PiA9IChldnQpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCkge1xuICAgICAgICBvbkNvbXBsZXRlPy4oeyB2YWx1ZTogdXNlclR5cGVkUXVlcnkuY3VycmVudCwgZXZ0IH0pO1xuICAgICAgfVxuICAgICAgb25CbHVyPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlU2VuZEJ1dHRvbkNsaWNrID0gKGV2dDogTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHtcbiAgICAgIG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5vbkNsaWNrPy4oZXZ0KTtcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCgpO1xuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCkge1xuICAgICAgICBzZXRJc0NvbGxhcHNlZCh0cnVlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlUHJldmVudEZvY3VzID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBQcmV2ZW50IHRoZSB0ZXh0YXJlYSBmcm9tIGJlaW5nIHVuZm9jdXNlZFxuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZU9uQ29udGFpbmVyUG9pbnRlckRvd24gPSAoZXZ0OiBSZWFjdC5Qb2ludGVyRXZlbnQpID0+IHtcbiAgICAgIC8vIEZvY3VzIHRleHRhcmVhIHdoZW4gY2xpY2tpbmcgb24gdGhlIGNvbnRhaW5lciBvbmx5XG4gICAgICBpZiAoZXZ0LnRhcmdldCA9PT0gZXZ0LmN1cnJlbnRUYXJnZXQpIHtcbiAgICAgICAgdGV4dEFyZWFSZWYuY3VycmVudD8uZm9jdXMoKTtcbiAgICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbGVjdGVkTGlzdEl0ZW0gPVxuICAgICAgc2VsZWN0ZWRJbmRleCAhPT0gLTEgPyBmbGF0dGVuZWRMaXN0SXRlbXNbc2VsZWN0ZWRJbmRleF0gOiBudWxsO1xuXG4gICAgY29uc3QgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudEVsbSA9IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQgPyAoXG4gICAgICA8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclxuICAgICAgICBpc05hdkJhclZhcmlhbnQ9e2lzTmF2QmFyVmFyaWFudH1cbiAgICAgID5cbiAgICAgICAgPFRleHQgY29sb3I9XCJ0ZXJ0aWFyeVwiPntlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50fTwvVGV4dD5cbiAgICAgIDwvU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lcj5cbiAgICApIDogbnVsbDtcblxuICAgIGNvbnN0IGNsZWFyQnV0dG9uRWxtID0gdmFsdWUgPyAoXG4gICAgICA8U3R5bGVkQ2xlYXJCdXR0b25cbiAgICAgICAgc2l6ZT1cInNcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICB0YWJJbmRleD17LTF9XG4gICAgICAgIGljb249XCJ4LWNpcmNsZS1maWxsZWRcIlxuICAgICAgICBhcmlhLWxhYmVsPXtjbGVhckJ1dHRvbkFyaWFMYWJlbH1cbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgb25DbGljaz17b25DbGVhcn1cbiAgICAgIC8+XG4gICAgKSA6IChcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG1cbiAgICApO1xuXG4gICAgY29uc3QgaGludEVsbSA9ICEhaGludCAmJiAoXG4gICAgICA8SW5saW5lIGFsaWduSXRlbXM9XCJjZW50ZXJcIj5cbiAgICAgICAgPFRleHQgc2l6ZT1cInNcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAge2hpbnR9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvSW5saW5lPlxuICAgICk7XG5cbiAgICBjb25zdCBib3R0b21Ub29sYmFyRWxtID0gKGJvdHRvbVRvb2xiYXI/LnJpZ2h0Q29udGVudCB8fFxuICAgICAgYm90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgfHxcbiAgICAgICEhc2VuZEJ1dHRvblByb3BzKSAmJlxuICAgICAgIWlzQ29sbGFwc2VkICYmIChcbiAgICAgICAgPD5cbiAgICAgICAgICB7Ym90dG9tVG9vbGJhcj8ubGVmdENvbnRlbnQgJiYgKFxuICAgICAgICAgICAgPFN0eWxlZFNsb3Q+e2JvdHRvbVRvb2xiYXIubGVmdENvbnRlbnR9PC9TdHlsZWRTbG90PlxuICAgICAgICAgICl9XG4gICAgICAgICAgPFN0eWxlZFNsb3QgZGF0YS1lMmUtdGVzdC1pZD1cImJvdHRvbVRvb2xiYXJcIiBzaWRlPVwicmlnaHRcIj5cbiAgICAgICAgICAgIDxJbmxpbmUgc3BhY2U9XCJ4c1wiIHZBbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgICAgICAgIHtib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnR9XG4gICAgICAgICAgICAgIHtzZW5kQnV0dG9uUHJvcHMgJiYgKFxuICAgICAgICAgICAgICAgIDxSb3VuZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgYXJpYUF0dHJpYnV0ZXM9e3tcbiAgICAgICAgICAgICAgICAgICAgXCJhcmlhLWxhYmVsXCI6IGlzUHJvY2Vzc2luZ1xuICAgICAgICAgICAgICAgICAgICAgID8gXCJQcm9jZXNzaW5nIHF1ZXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICA6IFwiU3VibWl0IHF1ZXJ5XCIsXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgey4uLm1lcmdlZFNlbmRCdXR0b25Qcm9wc31cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXshdmFsdWUgfHwgbWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZEJ1dHRvbkNsaWNrfVxuICAgICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlUHJldmVudEZvY3VzfVxuICAgICAgICAgICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgaWNvbj17XG4gICAgICAgICAgICAgICAgICAgIGlzUHJvY2Vzc2luZyA/IFwic3RvcC1maWxsZWRcIiA6IG1lcmdlZFNlbmRCdXR0b25Qcm9wcy5pY29uXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvSW5saW5lPlxuICAgICAgICAgIDwvU3R5bGVkU2xvdD5cbiAgICAgICAgPC8+XG4gICAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBkYXRhLWUyZS10ZXN0LWlkPXtkYXRhRTJlVGVzdElkfVxuICAgICAgICAgIGRhdGEtZHMtaWQ9XCJQcm9tcHRJbnB1dFwiXG4gICAgICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICAgICAgLy8gVHJhbnNsYXRpb24gZGlzYWJsZWQgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIGF1dG9jb21wbGV0ZSBsaXN0XG4gICAgICAgICAgdHJhbnNsYXRlPVwibm9cIlxuICAgICAgICA+XG4gICAgICAgICAgPFN0YWNrIHNwYWNlPVwic1wiPlxuICAgICAgICAgICAgPEN1c3RvbUNvbnRhaW5lclxuICAgICAgICAgICAgICBlbGV2YXRpb249ezB9XG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1cz17aXNDb2xsYXBzZWQgPyBcInhzXCIgOiBcIm1cIn1cbiAgICAgICAgICAgICAgaGlkZUJvcmRlcj17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRrQnFCIn0= */"),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:"e1wtb8mk0",label:"CustomContainer"})(({theme,hideBorder,hasShadow})=>({border:`1px solid ${theme.values.color.border.primary.default}`,...hasShadow&&{boxShadow:theme.values.shadow.defaultRing,transitionProperty:"box-shadow, border-color, outline-color",transitionDuration:theme.variables.animation.promptInput.focus.duration,transitionTimingFunction:theme.variables.animation.promptInput.focus.timingFunction},...hideBorder&&{borderColor:"transparent"},cursor:"text",outlineColor:"transparent","&:has(textarea:focus-visible)":{outlineWidth:1,outlineStyle:"solid",outlineOffset:-1,boxShadow:theme.values.shadow.focusRing,outlineColor:theme.values.color.border.accent.default}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8e1xuICBoaWRlQm9yZGVyOiBib29sZWFuO1xuICBoYXNTaGFkb3c6IGJvb2xlYW47XG59PigoeyB0aGVtZSwgaGlkZUJvcmRlciwgaGFzU2hhZG93IH0pID0+ICh7XG4gIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gIC4uLihoYXNTaGFkb3cgJiYge1xuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5kZWZhdWx0UmluZyxcbiAgICB0cmFuc2l0aW9uUHJvcGVydHk6IFwiYm94LXNoYWRvdywgYm9yZGVyLWNvbG9yLCBvdXRsaW5lLWNvbG9yXCIsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uOiB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLmR1cmF0aW9uLFxuICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjpcbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ucHJvbXB0SW5wdXQuZm9jdXMudGltaW5nRnVuY3Rpb24sXG4gIH0pLFxuICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgfSksXG4gIGN1cnNvcjogXCJ0ZXh0XCIsXG4gIG91dGxpbmVDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICBbYCY6aGFzKHRleHRhcmVhOmZvY3VzLXZpc2libGUpYF06IHtcbiAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgb3V0bGluZU9mZnNldDogLTEsXG4gICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcbiAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gIH0sXG59KSk7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG5jb25zdCBTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgdG9wOiBnZXRQYWRkaW5nVmVydGljYWwodGhlbWUpLFxuICBsZWZ0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSksXG59KSk7XG5cbnR5cGUgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclByb3BzID0gUGljazxcbiAgUHJvbXB0SW5wdXRQcm9wcyxcbiAgXCJpc05hdkJhclZhcmlhbnRcIlxuPjtcblxuY29uc3QgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciA9XG4gIHN0eWxlZC5kaXY8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclByb3BzPihcbiAgICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgdG9wOiBpc05hdkJhclZhcmlhbnRcbiAgICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4c1xuICAgICAgICA6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSksXG4gICAgICByaWdodDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUpLFxuICAgICAgdXNlclNlbGVjdDogXCJub25lXCIsXG4gICAgICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbiAgICB9KVxuICApO1xuXG50eXBlIFN0eWxlZENsZWFyQnV0dG9uUHJvcHMgPSBQaWN0b2dyYW1CdXR0b25Qcm9wcyAmXG4gIFBpY2s8UHJvbXB0SW5wdXRQcm9wcywgXCJpc05hdkJhclZhcmlhbnRcIj47XG5cbmNvbnN0IFN0eWxlZENsZWFyQnV0dG9uID0gc3R5bGVkKFBpY3RvZ3JhbUJ1dHRvbik8U3R5bGVkQ2xlYXJCdXR0b25Qcm9wcz4oXG4gICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgIHJpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gICAgdG9wOiBpc05hdkJhclZhcmlhbnQgPyAwIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkU2xvdHNDb250YWluZXIgPSBzdHlsZWQuZGl2KHtcbiAgZGlzcGxheTogXCJmbGV4XCIsXG4gIGZsZXhXcmFwOiBcIndyYXBcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbn0pO1xuXG4vLyBJdCBuZWVkcyBtYXJnaW4gZHVlIHRvIGVtcHR5IGNsaWNrYWJsZSBzcGFjZSB0aGF0IGZvY3VzZXMgdGhlIHRleHRhcmVhXG4vLyBTbG90cyBzaG91bGQgbm90IGJlIGluIHRoZSBkaXYsIGJlY2F1c2UgYXJlYSBiZXR3ZWVuIHNob3VsZCBiZSBjbGlja2FibGUgYWxzb1xudHlwZSBTbG90UHJvcHMgPSB7XG4gIHNpZGU/OiBcInJpZ2h0XCI7XG59O1xuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8U2xvdFByb3BzPigoeyB0aGVtZSwgc2lkZSB9KSA9PiAoe1xuICBtYXJnaW46IGAwICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc31gLFxuXG4gIC4uLihzaWRlID09PSBcInJpZ2h0XCIgJiYge1xuICAgIG1hcmdpbkxlZnQ6IFwiYXV0b1wiLFxuICB9KSxcbn0pKTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbnR5cGUgQm90dG9tVG9vbGJhckNvbmZpZyA9IHtcbiAgLyoqIFRvb2xiYXIgZWxlbWVudHMgYmVsb3cgdGV4dCBhcmVhICovXG4gIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBib3R0b21Ub29sYmFyPzogQm90dG9tVG9vbGJhckNvbmZpZztcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQ29sbGFwc2VkXCIgfCBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiXG4+ICZcbiAgUGljazxcbiAgICBBdXRvY29tcGxldGVMaXN0UHJvcHMsXG4gICAgXCJhdXRvY29tcGxldGVMaXN0SXRlbXNcIiB8IFwiYXV0b2NvbXBsZXRlTGlzdEZvb3RlclwiIHwgXCJwb3J0YWxDb250YWluZXJcIlxuICA+O1xuXG5jb25zdCBkZWZhdWx0U2VuZEJ1dHRvblByb3BzOiBTZW5kQnV0dG9uUHJvcHMgPSB7XG4gIHR5cGU6IFwic3VibWl0XCIgYXMgY29uc3QsXG4gIGljb246IFwiYXJyb3ctdXBcIiBhcyBjb25zdCxcbn07XG5cbmNvbnN0IFByb21wdElucHV0Q29tcG9uZW50ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyLFxuICAgICAgaXNQcm9jZXNzaW5nLFxuICAgICAgc2VuZEJ1dHRvblByb3BzLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBsZWZ0SWNvbixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIC4uLnJlc3RcbiAgICB9OiBQcm9tcHRJbnB1dFByb3BzLFxuICAgIHJlZjogUmVmT2JqZWN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+XG4gICk6IFJlYWN0RWxlbWVudCA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IFtpc0NvbGxhcHNlZCwgc2V0SXNDb2xsYXBzZWRdID0gdXNlU3RhdGUoaXNOYXZCYXJWYXJpYW50KTtcbiAgICBjb25zdCB1c2VyVHlwZWRRdWVyeSA9IHVzZVJlZihcIlwiKTtcbiAgICBjb25zdCBbaXNBdXRvY29tcGxldGVMaXN0T3Blbiwgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgdGV4dEFyZWFSZWYgPSByZWYgfHwgaW50ZXJuYWxSZWY7XG5cbiAgICBjb25zdCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0U2VuZEJ1dHRvblByb3BzLFxuICAgICAgLi4uKHNlbmRCdXR0b25Qcm9wcyA/PyB7fSksXG4gICAgfTtcblxuICAgIHVzZU91dHNpZGVDbGljayhcbiAgICAgIGNvbnRhaW5lclJlZixcbiAgICAgIChldnQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFjb250YWluZXJSZWYuY3VycmVudC5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgIXBvcnRhbENvbnRhaW5lcj8uY29udGFpbnMoZXZ0LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgIGV2dC50YXJnZXQgIT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAhaXNDb2xsYXBzZWQgJiYgaXNOYXZCYXJWYXJpYW50XG4gICAgKTtcblxuICAgIGNvbnN0IGNsb3NlQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4oZmFsc2UpO1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3Qgb3BlbkF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKHRydWUpO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICAgIH1cbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXSk7XG5cbiAgICBjb25zdCBhY2NlcHRUZXh0U2VsZWN0aW9uID0gKCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IHZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0ICE9PSB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvbkVuZFxuICAgICAgKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGggJiYgIWlzQ29sbGFwc2VkKSB7XG4gICAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMsXG4gICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGlzQ29sbGFwc2VkLFxuICAgIF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgLy8gRGV0ZXJtaW5lIHdoZW4gZm9jdXMgbGVhdmVzIHRoZSBjb250YWluZXIgdG8gY29sbGFwc2UgaXRcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgbGV0IGhhbmRsZXI6IChldnQ6IEZvY3VzRXZlbnQpID0+IHZvaWQ7XG4gICAgICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJSZWYuY3VycmVudDtcblxuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCAmJiBjb250YWluZXIpIHtcbiAgICAgICAgaGFuZGxlciA9IChldnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICBldnQucmVsYXRlZFRhcmdldCAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9LCBbaXNOYXZCYXJWYXJpYW50LCBjb250YWluZXJSZWYsIHBvcnRhbENvbnRhaW5lcl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuXG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBzZXRJc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBtZXJnZWRTZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJcbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICA+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICBpY29uPVwieC1jaXJjbGUtZmlsbGVkXCJcbiAgICAgICAgYXJpYS1sYWJlbD17Y2xlYXJCdXR0b25BcmlhTGFiZWx9XG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgIG9uQ2xpY2s9e29uQ2xlYXJ9XG4gICAgICAvPlxuICAgICkgOiAoXG4gICAgICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtXG4gICAgKTtcblxuICAgIGNvbnN0IGhpbnRFbG0gPSAhIWhpbnQgJiYgKFxuICAgICAgPElubGluZSBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIDxUZXh0IHNpemU9XCJzXCIgY29sb3I9XCJ0ZXJ0aWFyeVwiPlxuICAgICAgICAgIHtoaW50fVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0lubGluZT5cbiAgICApO1xuXG4gICAgY29uc3QgYm90dG9tVG9vbGJhckVsbSA9IChib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnQgfHxcbiAgICAgIGJvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50IHx8XG4gICAgICAhIXNlbmRCdXR0b25Qcm9wcykgJiZcbiAgICAgICFpc0NvbGxhcHNlZCAmJiAoXG4gICAgICAgIDw+XG4gICAgICAgICAge2JvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICAgIDxTdHlsZWRTbG90Pntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdHlsZWRTbG90IGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCIgc2lkZT1cInJpZ2h0XCI+XG4gICAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhcj8ucmlnaHRDb250ZW50fVxuICAgICAgICAgICAgICB7c2VuZEJ1dHRvblByb3BzICYmIChcbiAgICAgICAgICAgICAgICA8Um91bmRCdXR0b25cbiAgICAgICAgICAgICAgICAgIGFyaWFBdHRyaWJ1dGVzPXt7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiUHJvY2Vzc2luZyBxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlN1Ym1pdCBxdWVyeVwiLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHsuLi5tZXJnZWRTZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17bWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkID8/ICF2YWx1ZX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgIGljb249e1xuICAgICAgICAgICAgICAgICAgICBpc1Byb2Nlc3NpbmcgPyBcInN0b3AtZmlsbGVkXCIgOiBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuaWNvblxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICA8L1N0eWxlZFNsb3Q+XG4gICAgICAgIDwvPlxuICAgICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPVwiUHJvbXB0SW5wdXRcIlxuICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIGRpc2FibGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBhdXRvY29tcGxldGUgbGlzdFxuICAgICAgICAgIHRyYW5zbGF0ZT1cIm5vXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFjayBzcGFjZT1cInNcIj5cbiAgICAgICAgICAgIDxDdXN0b21Db250YWluZXJcbiAgICAgICAgICAgICAgZWxldmF0aW9uPXswfVxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9e2lzQ29sbGFwc2VkID8gXCJ4c1wiIDogXCJtXCJ9XG4gICAgICAgICAgICAgIGhpZGVCb3JkZXI9e2lzQ29sbGFwc2VkfVxuICAgICAgICAgICAgICBoYXNTaGFkb3c9eyFpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlEd0IifQ== */"),StyledTextAreaContainer=(0,_styled.default)("div",{target:"e1wtb8mk1",label:"StyledTextAreaContainer"})({borderRadius:"inherit",position:"relative",width:"100%"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8e1xuICBoaWRlQm9yZGVyOiBib29sZWFuO1xuICBoYXNTaGFkb3c6IGJvb2xlYW47XG59PigoeyB0aGVtZSwgaGlkZUJvcmRlciwgaGFzU2hhZG93IH0pID0+ICh7XG4gIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gIC4uLihoYXNTaGFkb3cgJiYge1xuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5kZWZhdWx0UmluZyxcbiAgICB0cmFuc2l0aW9uUHJvcGVydHk6IFwiYm94LXNoYWRvdywgYm9yZGVyLWNvbG9yLCBvdXRsaW5lLWNvbG9yXCIsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uOiB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLmR1cmF0aW9uLFxuICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjpcbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ucHJvbXB0SW5wdXQuZm9jdXMudGltaW5nRnVuY3Rpb24sXG4gIH0pLFxuICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgfSksXG4gIGN1cnNvcjogXCJ0ZXh0XCIsXG4gIG91dGxpbmVDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICBbYCY6aGFzKHRleHRhcmVhOmZvY3VzLXZpc2libGUpYF06IHtcbiAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgb3V0bGluZU9mZnNldDogLTEsXG4gICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcbiAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gIH0sXG59KSk7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG5jb25zdCBTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgdG9wOiBnZXRQYWRkaW5nVmVydGljYWwodGhlbWUpLFxuICBsZWZ0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSksXG59KSk7XG5cbnR5cGUgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclByb3BzID0gUGljazxcbiAgUHJvbXB0SW5wdXRQcm9wcyxcbiAgXCJpc05hdkJhclZhcmlhbnRcIlxuPjtcblxuY29uc3QgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciA9XG4gIHN0eWxlZC5kaXY8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclByb3BzPihcbiAgICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgdG9wOiBpc05hdkJhclZhcmlhbnRcbiAgICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4c1xuICAgICAgICA6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSksXG4gICAgICByaWdodDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUpLFxuICAgICAgdXNlclNlbGVjdDogXCJub25lXCIsXG4gICAgICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbiAgICB9KVxuICApO1xuXG50eXBlIFN0eWxlZENsZWFyQnV0dG9uUHJvcHMgPSBQaWN0b2dyYW1CdXR0b25Qcm9wcyAmXG4gIFBpY2s8UHJvbXB0SW5wdXRQcm9wcywgXCJpc05hdkJhclZhcmlhbnRcIj47XG5cbmNvbnN0IFN0eWxlZENsZWFyQnV0dG9uID0gc3R5bGVkKFBpY3RvZ3JhbUJ1dHRvbik8U3R5bGVkQ2xlYXJCdXR0b25Qcm9wcz4oXG4gICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgIHJpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gICAgdG9wOiBpc05hdkJhclZhcmlhbnQgPyAwIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkU2xvdHNDb250YWluZXIgPSBzdHlsZWQuZGl2KHtcbiAgZGlzcGxheTogXCJmbGV4XCIsXG4gIGZsZXhXcmFwOiBcIndyYXBcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbn0pO1xuXG4vLyBJdCBuZWVkcyBtYXJnaW4gZHVlIHRvIGVtcHR5IGNsaWNrYWJsZSBzcGFjZSB0aGF0IGZvY3VzZXMgdGhlIHRleHRhcmVhXG4vLyBTbG90cyBzaG91bGQgbm90IGJlIGluIHRoZSBkaXYsIGJlY2F1c2UgYXJlYSBiZXR3ZWVuIHNob3VsZCBiZSBjbGlja2FibGUgYWxzb1xudHlwZSBTbG90UHJvcHMgPSB7XG4gIHNpZGU/OiBcInJpZ2h0XCI7XG59O1xuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8U2xvdFByb3BzPigoeyB0aGVtZSwgc2lkZSB9KSA9PiAoe1xuICBtYXJnaW46IGAwICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc31gLFxuXG4gIC4uLihzaWRlID09PSBcInJpZ2h0XCIgJiYge1xuICAgIG1hcmdpbkxlZnQ6IFwiYXV0b1wiLFxuICB9KSxcbn0pKTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbnR5cGUgQm90dG9tVG9vbGJhckNvbmZpZyA9IHtcbiAgLyoqIFRvb2xiYXIgZWxlbWVudHMgYmVsb3cgdGV4dCBhcmVhICovXG4gIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBib3R0b21Ub29sYmFyPzogQm90dG9tVG9vbGJhckNvbmZpZztcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQ29sbGFwc2VkXCIgfCBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiXG4+ICZcbiAgUGljazxcbiAgICBBdXRvY29tcGxldGVMaXN0UHJvcHMsXG4gICAgXCJhdXRvY29tcGxldGVMaXN0SXRlbXNcIiB8IFwiYXV0b2NvbXBsZXRlTGlzdEZvb3RlclwiIHwgXCJwb3J0YWxDb250YWluZXJcIlxuICA+O1xuXG5jb25zdCBkZWZhdWx0U2VuZEJ1dHRvblByb3BzOiBTZW5kQnV0dG9uUHJvcHMgPSB7XG4gIHR5cGU6IFwic3VibWl0XCIgYXMgY29uc3QsXG4gIGljb246IFwiYXJyb3ctdXBcIiBhcyBjb25zdCxcbn07XG5cbmNvbnN0IFByb21wdElucHV0Q29tcG9uZW50ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyLFxuICAgICAgaXNQcm9jZXNzaW5nLFxuICAgICAgc2VuZEJ1dHRvblByb3BzLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBsZWZ0SWNvbixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIC4uLnJlc3RcbiAgICB9OiBQcm9tcHRJbnB1dFByb3BzLFxuICAgIHJlZjogUmVmT2JqZWN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+XG4gICk6IFJlYWN0RWxlbWVudCA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IFtpc0NvbGxhcHNlZCwgc2V0SXNDb2xsYXBzZWRdID0gdXNlU3RhdGUoaXNOYXZCYXJWYXJpYW50KTtcbiAgICBjb25zdCB1c2VyVHlwZWRRdWVyeSA9IHVzZVJlZihcIlwiKTtcbiAgICBjb25zdCBbaXNBdXRvY29tcGxldGVMaXN0T3Blbiwgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgdGV4dEFyZWFSZWYgPSByZWYgfHwgaW50ZXJuYWxSZWY7XG5cbiAgICBjb25zdCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0U2VuZEJ1dHRvblByb3BzLFxuICAgICAgLi4uKHNlbmRCdXR0b25Qcm9wcyA/PyB7fSksXG4gICAgfTtcblxuICAgIHVzZU91dHNpZGVDbGljayhcbiAgICAgIGNvbnRhaW5lclJlZixcbiAgICAgIChldnQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFjb250YWluZXJSZWYuY3VycmVudC5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgIXBvcnRhbENvbnRhaW5lcj8uY29udGFpbnMoZXZ0LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgIGV2dC50YXJnZXQgIT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAhaXNDb2xsYXBzZWQgJiYgaXNOYXZCYXJWYXJpYW50XG4gICAgKTtcblxuICAgIGNvbnN0IGNsb3NlQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4oZmFsc2UpO1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3Qgb3BlbkF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKHRydWUpO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICAgIH1cbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXSk7XG5cbiAgICBjb25zdCBhY2NlcHRUZXh0U2VsZWN0aW9uID0gKCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IHZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0ICE9PSB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvbkVuZFxuICAgICAgKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGggJiYgIWlzQ29sbGFwc2VkKSB7XG4gICAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMsXG4gICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGlzQ29sbGFwc2VkLFxuICAgIF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgLy8gRGV0ZXJtaW5lIHdoZW4gZm9jdXMgbGVhdmVzIHRoZSBjb250YWluZXIgdG8gY29sbGFwc2UgaXRcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgbGV0IGhhbmRsZXI6IChldnQ6IEZvY3VzRXZlbnQpID0+IHZvaWQ7XG4gICAgICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJSZWYuY3VycmVudDtcblxuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCAmJiBjb250YWluZXIpIHtcbiAgICAgICAgaGFuZGxlciA9IChldnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICBldnQucmVsYXRlZFRhcmdldCAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9LCBbaXNOYXZCYXJWYXJpYW50LCBjb250YWluZXJSZWYsIHBvcnRhbENvbnRhaW5lcl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuXG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBzZXRJc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBtZXJnZWRTZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJcbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICA+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICBpY29uPVwieC1jaXJjbGUtZmlsbGVkXCJcbiAgICAgICAgYXJpYS1sYWJlbD17Y2xlYXJCdXR0b25BcmlhTGFiZWx9XG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgIG9uQ2xpY2s9e29uQ2xlYXJ9XG4gICAgICAvPlxuICAgICkgOiAoXG4gICAgICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtXG4gICAgKTtcblxuICAgIGNvbnN0IGhpbnRFbG0gPSAhIWhpbnQgJiYgKFxuICAgICAgPElubGluZSBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIDxUZXh0IHNpemU9XCJzXCIgY29sb3I9XCJ0ZXJ0aWFyeVwiPlxuICAgICAgICAgIHtoaW50fVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0lubGluZT5cbiAgICApO1xuXG4gICAgY29uc3QgYm90dG9tVG9vbGJhckVsbSA9IChib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnQgfHxcbiAgICAgIGJvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50IHx8XG4gICAgICAhIXNlbmRCdXR0b25Qcm9wcykgJiZcbiAgICAgICFpc0NvbGxhcHNlZCAmJiAoXG4gICAgICAgIDw+XG4gICAgICAgICAge2JvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICAgIDxTdHlsZWRTbG90Pntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdHlsZWRTbG90IGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCIgc2lkZT1cInJpZ2h0XCI+XG4gICAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhcj8ucmlnaHRDb250ZW50fVxuICAgICAgICAgICAgICB7c2VuZEJ1dHRvblByb3BzICYmIChcbiAgICAgICAgICAgICAgICA8Um91bmRCdXR0b25cbiAgICAgICAgICAgICAgICAgIGFyaWFBdHRyaWJ1dGVzPXt7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiUHJvY2Vzc2luZyBxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlN1Ym1pdCBxdWVyeVwiLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHsuLi5tZXJnZWRTZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17bWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkID8/ICF2YWx1ZX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgIGljb249e1xuICAgICAgICAgICAgICAgICAgICBpc1Byb2Nlc3NpbmcgPyBcInN0b3AtZmlsbGVkXCIgOiBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuaWNvblxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICA8L1N0eWxlZFNsb3Q+XG4gICAgICAgIDwvPlxuICAgICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPVwiUHJvbXB0SW5wdXRcIlxuICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIGRpc2FibGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBhdXRvY29tcGxldGUgbGlzdFxuICAgICAgICAgIHRyYW5zbGF0ZT1cIm5vXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFjayBzcGFjZT1cInNcIj5cbiAgICAgICAgICAgIDxDdXN0b21Db250YWluZXJcbiAgICAgICAgICAgICAgZWxldmF0aW9uPXswfVxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9e2lzQ29sbGFwc2VkID8gXCJ4c1wiIDogXCJtXCJ9XG4gICAgICAgICAgICAgIGhpZGVCb3JkZXI9e2lzQ29sbGFwc2VkfVxuICAgICAgICAgICAgICBoYXNTaGFkb3c9eyFpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJFZ0MifQ== */"),StyledLeftIconContainer=(0,_styled.default)("div",{target:"e1wtb8mk2",label:"StyledLeftIconContainer"})(({theme})=>({position:"absolute",top:(0,_PromptTextArea.getPaddingVertical)(theme),left:(0,_PromptTextArea.getPaddingHorizontal)(theme)}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8e1xuICBoaWRlQm9yZGVyOiBib29sZWFuO1xuICBoYXNTaGFkb3c6IGJvb2xlYW47XG59PigoeyB0aGVtZSwgaGlkZUJvcmRlciwgaGFzU2hhZG93IH0pID0+ICh7XG4gIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gIC4uLihoYXNTaGFkb3cgJiYge1xuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5kZWZhdWx0UmluZyxcbiAgICB0cmFuc2l0aW9uUHJvcGVydHk6IFwiYm94LXNoYWRvdywgYm9yZGVyLWNvbG9yLCBvdXRsaW5lLWNvbG9yXCIsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uOiB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLmR1cmF0aW9uLFxuICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjpcbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ucHJvbXB0SW5wdXQuZm9jdXMudGltaW5nRnVuY3Rpb24sXG4gIH0pLFxuICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgfSksXG4gIGN1cnNvcjogXCJ0ZXh0XCIsXG4gIG91dGxpbmVDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICBbYCY6aGFzKHRleHRhcmVhOmZvY3VzLXZpc2libGUpYF06IHtcbiAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgb3V0bGluZU9mZnNldDogLTEsXG4gICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcbiAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gIH0sXG59KSk7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG5jb25zdCBTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgdG9wOiBnZXRQYWRkaW5nVmVydGljYWwodGhlbWUpLFxuICBsZWZ0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSksXG59KSk7XG5cbnR5cGUgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclByb3BzID0gUGljazxcbiAgUHJvbXB0SW5wdXRQcm9wcyxcbiAgXCJpc05hdkJhclZhcmlhbnRcIlxuPjtcblxuY29uc3QgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciA9XG4gIHN0eWxlZC5kaXY8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclByb3BzPihcbiAgICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgdG9wOiBpc05hdkJhclZhcmlhbnRcbiAgICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4c1xuICAgICAgICA6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSksXG4gICAgICByaWdodDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUpLFxuICAgICAgdXNlclNlbGVjdDogXCJub25lXCIsXG4gICAgICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbiAgICB9KVxuICApO1xuXG50eXBlIFN0eWxlZENsZWFyQnV0dG9uUHJvcHMgPSBQaWN0b2dyYW1CdXR0b25Qcm9wcyAmXG4gIFBpY2s8UHJvbXB0SW5wdXRQcm9wcywgXCJpc05hdkJhclZhcmlhbnRcIj47XG5cbmNvbnN0IFN0eWxlZENsZWFyQnV0dG9uID0gc3R5bGVkKFBpY3RvZ3JhbUJ1dHRvbik8U3R5bGVkQ2xlYXJCdXR0b25Qcm9wcz4oXG4gICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgIHJpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gICAgdG9wOiBpc05hdkJhclZhcmlhbnQgPyAwIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkU2xvdHNDb250YWluZXIgPSBzdHlsZWQuZGl2KHtcbiAgZGlzcGxheTogXCJmbGV4XCIsXG4gIGZsZXhXcmFwOiBcIndyYXBcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbn0pO1xuXG4vLyBJdCBuZWVkcyBtYXJnaW4gZHVlIHRvIGVtcHR5IGNsaWNrYWJsZSBzcGFjZSB0aGF0IGZvY3VzZXMgdGhlIHRleHRhcmVhXG4vLyBTbG90cyBzaG91bGQgbm90IGJlIGluIHRoZSBkaXYsIGJlY2F1c2UgYXJlYSBiZXR3ZWVuIHNob3VsZCBiZSBjbGlja2FibGUgYWxzb1xudHlwZSBTbG90UHJvcHMgPSB7XG4gIHNpZGU/OiBcInJpZ2h0XCI7XG59O1xuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8U2xvdFByb3BzPigoeyB0aGVtZSwgc2lkZSB9KSA9PiAoe1xuICBtYXJnaW46IGAwICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc31gLFxuXG4gIC4uLihzaWRlID09PSBcInJpZ2h0XCIgJiYge1xuICAgIG1hcmdpbkxlZnQ6IFwiYXV0b1wiLFxuICB9KSxcbn0pKTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbnR5cGUgQm90dG9tVG9vbGJhckNvbmZpZyA9IHtcbiAgLyoqIFRvb2xiYXIgZWxlbWVudHMgYmVsb3cgdGV4dCBhcmVhICovXG4gIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBib3R0b21Ub29sYmFyPzogQm90dG9tVG9vbGJhckNvbmZpZztcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQ29sbGFwc2VkXCIgfCBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiXG4+ICZcbiAgUGljazxcbiAgICBBdXRvY29tcGxldGVMaXN0UHJvcHMsXG4gICAgXCJhdXRvY29tcGxldGVMaXN0SXRlbXNcIiB8IFwiYXV0b2NvbXBsZXRlTGlzdEZvb3RlclwiIHwgXCJwb3J0YWxDb250YWluZXJcIlxuICA+O1xuXG5jb25zdCBkZWZhdWx0U2VuZEJ1dHRvblByb3BzOiBTZW5kQnV0dG9uUHJvcHMgPSB7XG4gIHR5cGU6IFwic3VibWl0XCIgYXMgY29uc3QsXG4gIGljb246IFwiYXJyb3ctdXBcIiBhcyBjb25zdCxcbn07XG5cbmNvbnN0IFByb21wdElucHV0Q29tcG9uZW50ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyLFxuICAgICAgaXNQcm9jZXNzaW5nLFxuICAgICAgc2VuZEJ1dHRvblByb3BzLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBsZWZ0SWNvbixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIC4uLnJlc3RcbiAgICB9OiBQcm9tcHRJbnB1dFByb3BzLFxuICAgIHJlZjogUmVmT2JqZWN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+XG4gICk6IFJlYWN0RWxlbWVudCA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IFtpc0NvbGxhcHNlZCwgc2V0SXNDb2xsYXBzZWRdID0gdXNlU3RhdGUoaXNOYXZCYXJWYXJpYW50KTtcbiAgICBjb25zdCB1c2VyVHlwZWRRdWVyeSA9IHVzZVJlZihcIlwiKTtcbiAgICBjb25zdCBbaXNBdXRvY29tcGxldGVMaXN0T3Blbiwgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgdGV4dEFyZWFSZWYgPSByZWYgfHwgaW50ZXJuYWxSZWY7XG5cbiAgICBjb25zdCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0U2VuZEJ1dHRvblByb3BzLFxuICAgICAgLi4uKHNlbmRCdXR0b25Qcm9wcyA/PyB7fSksXG4gICAgfTtcblxuICAgIHVzZU91dHNpZGVDbGljayhcbiAgICAgIGNvbnRhaW5lclJlZixcbiAgICAgIChldnQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFjb250YWluZXJSZWYuY3VycmVudC5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgIXBvcnRhbENvbnRhaW5lcj8uY29udGFpbnMoZXZ0LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgIGV2dC50YXJnZXQgIT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAhaXNDb2xsYXBzZWQgJiYgaXNOYXZCYXJWYXJpYW50XG4gICAgKTtcblxuICAgIGNvbnN0IGNsb3NlQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4oZmFsc2UpO1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3Qgb3BlbkF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKHRydWUpO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICAgIH1cbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXSk7XG5cbiAgICBjb25zdCBhY2NlcHRUZXh0U2VsZWN0aW9uID0gKCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IHZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0ICE9PSB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvbkVuZFxuICAgICAgKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGggJiYgIWlzQ29sbGFwc2VkKSB7XG4gICAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMsXG4gICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGlzQ29sbGFwc2VkLFxuICAgIF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgLy8gRGV0ZXJtaW5lIHdoZW4gZm9jdXMgbGVhdmVzIHRoZSBjb250YWluZXIgdG8gY29sbGFwc2UgaXRcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgbGV0IGhhbmRsZXI6IChldnQ6IEZvY3VzRXZlbnQpID0+IHZvaWQ7XG4gICAgICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJSZWYuY3VycmVudDtcblxuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCAmJiBjb250YWluZXIpIHtcbiAgICAgICAgaGFuZGxlciA9IChldnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICBldnQucmVsYXRlZFRhcmdldCAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9LCBbaXNOYXZCYXJWYXJpYW50LCBjb250YWluZXJSZWYsIHBvcnRhbENvbnRhaW5lcl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuXG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBzZXRJc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBtZXJnZWRTZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJcbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICA+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICBpY29uPVwieC1jaXJjbGUtZmlsbGVkXCJcbiAgICAgICAgYXJpYS1sYWJlbD17Y2xlYXJCdXR0b25BcmlhTGFiZWx9XG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgIG9uQ2xpY2s9e29uQ2xlYXJ9XG4gICAgICAvPlxuICAgICkgOiAoXG4gICAgICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtXG4gICAgKTtcblxuICAgIGNvbnN0IGhpbnRFbG0gPSAhIWhpbnQgJiYgKFxuICAgICAgPElubGluZSBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIDxUZXh0IHNpemU9XCJzXCIgY29sb3I9XCJ0ZXJ0aWFyeVwiPlxuICAgICAgICAgIHtoaW50fVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0lubGluZT5cbiAgICApO1xuXG4gICAgY29uc3QgYm90dG9tVG9vbGJhckVsbSA9IChib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnQgfHxcbiAgICAgIGJvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50IHx8XG4gICAgICAhIXNlbmRCdXR0b25Qcm9wcykgJiZcbiAgICAgICFpc0NvbGxhcHNlZCAmJiAoXG4gICAgICAgIDw+XG4gICAgICAgICAge2JvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICAgIDxTdHlsZWRTbG90Pntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdHlsZWRTbG90IGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCIgc2lkZT1cInJpZ2h0XCI+XG4gICAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhcj8ucmlnaHRDb250ZW50fVxuICAgICAgICAgICAgICB7c2VuZEJ1dHRvblByb3BzICYmIChcbiAgICAgICAgICAgICAgICA8Um91bmRCdXR0b25cbiAgICAgICAgICAgICAgICAgIGFyaWFBdHRyaWJ1dGVzPXt7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiUHJvY2Vzc2luZyBxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlN1Ym1pdCBxdWVyeVwiLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHsuLi5tZXJnZWRTZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17bWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkID8/ICF2YWx1ZX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgIGljb249e1xuICAgICAgICAgICAgICAgICAgICBpc1Byb2Nlc3NpbmcgPyBcInN0b3AtZmlsbGVkXCIgOiBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuaWNvblxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICA8L1N0eWxlZFNsb3Q+XG4gICAgICAgIDwvPlxuICAgICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPVwiUHJvbXB0SW5wdXRcIlxuICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIGRpc2FibGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBhdXRvY29tcGxldGUgbGlzdFxuICAgICAgICAgIHRyYW5zbGF0ZT1cIm5vXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFjayBzcGFjZT1cInNcIj5cbiAgICAgICAgICAgIDxDdXN0b21Db250YWluZXJcbiAgICAgICAgICAgICAgZWxldmF0aW9uPXswfVxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9e2lzQ29sbGFwc2VkID8gXCJ4c1wiIDogXCJtXCJ9XG4gICAgICAgICAgICAgIGhpZGVCb3JkZXI9e2lzQ29sbGFwc2VkfVxuICAgICAgICAgICAgICBoYXNTaGFkb3c9eyFpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlGZ0MifQ== */"),StyledEmptyStateTopRightContentContainer=(0,_styled.default)("div",{target:"e1wtb8mk3",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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8e1xuICBoaWRlQm9yZGVyOiBib29sZWFuO1xuICBoYXNTaGFkb3c6IGJvb2xlYW47XG59PigoeyB0aGVtZSwgaGlkZUJvcmRlciwgaGFzU2hhZG93IH0pID0+ICh7XG4gIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gIC4uLihoYXNTaGFkb3cgJiYge1xuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5kZWZhdWx0UmluZyxcbiAgICB0cmFuc2l0aW9uUHJvcGVydHk6IFwiYm94LXNoYWRvdywgYm9yZGVyLWNvbG9yLCBvdXRsaW5lLWNvbG9yXCIsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uOiB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLmR1cmF0aW9uLFxuICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjpcbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ucHJvbXB0SW5wdXQuZm9jdXMudGltaW5nRnVuY3Rpb24sXG4gIH0pLFxuICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgfSksXG4gIGN1cnNvcjogXCJ0ZXh0XCIsXG4gIG91dGxpbmVDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICBbYCY6aGFzKHRleHRhcmVhOmZvY3VzLXZpc2libGUpYF06IHtcbiAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgb3V0bGluZU9mZnNldDogLTEsXG4gICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcbiAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gIH0sXG59KSk7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG5jb25zdCBTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgdG9wOiBnZXRQYWRkaW5nVmVydGljYWwodGhlbWUpLFxuICBsZWZ0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSksXG59KSk7XG5cbnR5cGUgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclByb3BzID0gUGljazxcbiAgUHJvbXB0SW5wdXRQcm9wcyxcbiAgXCJpc05hdkJhclZhcmlhbnRcIlxuPjtcblxuY29uc3QgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciA9XG4gIHN0eWxlZC5kaXY8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclByb3BzPihcbiAgICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgdG9wOiBpc05hdkJhclZhcmlhbnRcbiAgICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4c1xuICAgICAgICA6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSksXG4gICAgICByaWdodDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUpLFxuICAgICAgdXNlclNlbGVjdDogXCJub25lXCIsXG4gICAgICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbiAgICB9KVxuICApO1xuXG50eXBlIFN0eWxlZENsZWFyQnV0dG9uUHJvcHMgPSBQaWN0b2dyYW1CdXR0b25Qcm9wcyAmXG4gIFBpY2s8UHJvbXB0SW5wdXRQcm9wcywgXCJpc05hdkJhclZhcmlhbnRcIj47XG5cbmNvbnN0IFN0eWxlZENsZWFyQnV0dG9uID0gc3R5bGVkKFBpY3RvZ3JhbUJ1dHRvbik8U3R5bGVkQ2xlYXJCdXR0b25Qcm9wcz4oXG4gICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgIHJpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gICAgdG9wOiBpc05hdkJhclZhcmlhbnQgPyAwIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkU2xvdHNDb250YWluZXIgPSBzdHlsZWQuZGl2KHtcbiAgZGlzcGxheTogXCJmbGV4XCIsXG4gIGZsZXhXcmFwOiBcIndyYXBcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbn0pO1xuXG4vLyBJdCBuZWVkcyBtYXJnaW4gZHVlIHRvIGVtcHR5IGNsaWNrYWJsZSBzcGFjZSB0aGF0IGZvY3VzZXMgdGhlIHRleHRhcmVhXG4vLyBTbG90cyBzaG91bGQgbm90IGJlIGluIHRoZSBkaXYsIGJlY2F1c2UgYXJlYSBiZXR3ZWVuIHNob3VsZCBiZSBjbGlja2FibGUgYWxzb1xudHlwZSBTbG90UHJvcHMgPSB7XG4gIHNpZGU/OiBcInJpZ2h0XCI7XG59O1xuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8U2xvdFByb3BzPigoeyB0aGVtZSwgc2lkZSB9KSA9PiAoe1xuICBtYXJnaW46IGAwICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc31gLFxuXG4gIC4uLihzaWRlID09PSBcInJpZ2h0XCIgJiYge1xuICAgIG1hcmdpbkxlZnQ6IFwiYXV0b1wiLFxuICB9KSxcbn0pKTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbnR5cGUgQm90dG9tVG9vbGJhckNvbmZpZyA9IHtcbiAgLyoqIFRvb2xiYXIgZWxlbWVudHMgYmVsb3cgdGV4dCBhcmVhICovXG4gIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBib3R0b21Ub29sYmFyPzogQm90dG9tVG9vbGJhckNvbmZpZztcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQ29sbGFwc2VkXCIgfCBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiXG4+ICZcbiAgUGljazxcbiAgICBBdXRvY29tcGxldGVMaXN0UHJvcHMsXG4gICAgXCJhdXRvY29tcGxldGVMaXN0SXRlbXNcIiB8IFwiYXV0b2NvbXBsZXRlTGlzdEZvb3RlclwiIHwgXCJwb3J0YWxDb250YWluZXJcIlxuICA+O1xuXG5jb25zdCBkZWZhdWx0U2VuZEJ1dHRvblByb3BzOiBTZW5kQnV0dG9uUHJvcHMgPSB7XG4gIHR5cGU6IFwic3VibWl0XCIgYXMgY29uc3QsXG4gIGljb246IFwiYXJyb3ctdXBcIiBhcyBjb25zdCxcbn07XG5cbmNvbnN0IFByb21wdElucHV0Q29tcG9uZW50ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyLFxuICAgICAgaXNQcm9jZXNzaW5nLFxuICAgICAgc2VuZEJ1dHRvblByb3BzLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBsZWZ0SWNvbixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIC4uLnJlc3RcbiAgICB9OiBQcm9tcHRJbnB1dFByb3BzLFxuICAgIHJlZjogUmVmT2JqZWN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+XG4gICk6IFJlYWN0RWxlbWVudCA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IFtpc0NvbGxhcHNlZCwgc2V0SXNDb2xsYXBzZWRdID0gdXNlU3RhdGUoaXNOYXZCYXJWYXJpYW50KTtcbiAgICBjb25zdCB1c2VyVHlwZWRRdWVyeSA9IHVzZVJlZihcIlwiKTtcbiAgICBjb25zdCBbaXNBdXRvY29tcGxldGVMaXN0T3Blbiwgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgdGV4dEFyZWFSZWYgPSByZWYgfHwgaW50ZXJuYWxSZWY7XG5cbiAgICBjb25zdCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0U2VuZEJ1dHRvblByb3BzLFxuICAgICAgLi4uKHNlbmRCdXR0b25Qcm9wcyA/PyB7fSksXG4gICAgfTtcblxuICAgIHVzZU91dHNpZGVDbGljayhcbiAgICAgIGNvbnRhaW5lclJlZixcbiAgICAgIChldnQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFjb250YWluZXJSZWYuY3VycmVudC5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgIXBvcnRhbENvbnRhaW5lcj8uY29udGFpbnMoZXZ0LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgIGV2dC50YXJnZXQgIT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAhaXNDb2xsYXBzZWQgJiYgaXNOYXZCYXJWYXJpYW50XG4gICAgKTtcblxuICAgIGNvbnN0IGNsb3NlQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4oZmFsc2UpO1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3Qgb3BlbkF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKHRydWUpO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICAgIH1cbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXSk7XG5cbiAgICBjb25zdCBhY2NlcHRUZXh0U2VsZWN0aW9uID0gKCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IHZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0ICE9PSB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvbkVuZFxuICAgICAgKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGggJiYgIWlzQ29sbGFwc2VkKSB7XG4gICAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMsXG4gICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGlzQ29sbGFwc2VkLFxuICAgIF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgLy8gRGV0ZXJtaW5lIHdoZW4gZm9jdXMgbGVhdmVzIHRoZSBjb250YWluZXIgdG8gY29sbGFwc2UgaXRcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgbGV0IGhhbmRsZXI6IChldnQ6IEZvY3VzRXZlbnQpID0+IHZvaWQ7XG4gICAgICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJSZWYuY3VycmVudDtcblxuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCAmJiBjb250YWluZXIpIHtcbiAgICAgICAgaGFuZGxlciA9IChldnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICBldnQucmVsYXRlZFRhcmdldCAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9LCBbaXNOYXZCYXJWYXJpYW50LCBjb250YWluZXJSZWYsIHBvcnRhbENvbnRhaW5lcl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuXG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBzZXRJc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBtZXJnZWRTZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJcbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICA+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICBpY29uPVwieC1jaXJjbGUtZmlsbGVkXCJcbiAgICAgICAgYXJpYS1sYWJlbD17Y2xlYXJCdXR0b25BcmlhTGFiZWx9XG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgIG9uQ2xpY2s9e29uQ2xlYXJ9XG4gICAgICAvPlxuICAgICkgOiAoXG4gICAgICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtXG4gICAgKTtcblxuICAgIGNvbnN0IGhpbnRFbG0gPSAhIWhpbnQgJiYgKFxuICAgICAgPElubGluZSBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIDxUZXh0IHNpemU9XCJzXCIgY29sb3I9XCJ0ZXJ0aWFyeVwiPlxuICAgICAgICAgIHtoaW50fVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0lubGluZT5cbiAgICApO1xuXG4gICAgY29uc3QgYm90dG9tVG9vbGJhckVsbSA9IChib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnQgfHxcbiAgICAgIGJvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50IHx8XG4gICAgICAhIXNlbmRCdXR0b25Qcm9wcykgJiZcbiAgICAgICFpc0NvbGxhcHNlZCAmJiAoXG4gICAgICAgIDw+XG4gICAgICAgICAge2JvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICAgIDxTdHlsZWRTbG90Pntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdHlsZWRTbG90IGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCIgc2lkZT1cInJpZ2h0XCI+XG4gICAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhcj8ucmlnaHRDb250ZW50fVxuICAgICAgICAgICAgICB7c2VuZEJ1dHRvblByb3BzICYmIChcbiAgICAgICAgICAgICAgICA8Um91bmRCdXR0b25cbiAgICAgICAgICAgICAgICAgIGFyaWFBdHRyaWJ1dGVzPXt7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiUHJvY2Vzc2luZyBxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlN1Ym1pdCBxdWVyeVwiLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHsuLi5tZXJnZWRTZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17bWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkID8/ICF2YWx1ZX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgIGljb249e1xuICAgICAgICAgICAgICAgICAgICBpc1Byb2Nlc3NpbmcgPyBcInN0b3AtZmlsbGVkXCIgOiBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuaWNvblxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICA8L1N0eWxlZFNsb3Q+XG4gICAgICAgIDwvPlxuICAgICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPVwiUHJvbXB0SW5wdXRcIlxuICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIGRpc2FibGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBhdXRvY29tcGxldGUgbGlzdFxuICAgICAgICAgIHRyYW5zbGF0ZT1cIm5vXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFjayBzcGFjZT1cInNcIj5cbiAgICAgICAgICAgIDxDdXN0b21Db250YWluZXJcbiAgICAgICAgICAgICAgZWxldmF0aW9uPXswfVxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9e2lzQ29sbGFwc2VkID8gXCJ4c1wiIDogXCJtXCJ9XG4gICAgICAgICAgICAgIGhpZGVCb3JkZXI9e2lzQ29sbGFwc2VkfVxuICAgICAgICAgICAgICBoYXNTaGFkb3c9eyFpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTZGRSJ9 */"),StyledClearButton=(0,_styled.default)(_PictogramButton.PictogramButton,{target:"e1wtb8mk4",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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8e1xuICBoaWRlQm9yZGVyOiBib29sZWFuO1xuICBoYXNTaGFkb3c6IGJvb2xlYW47XG59PigoeyB0aGVtZSwgaGlkZUJvcmRlciwgaGFzU2hhZG93IH0pID0+ICh7XG4gIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gIC4uLihoYXNTaGFkb3cgJiYge1xuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5kZWZhdWx0UmluZyxcbiAgICB0cmFuc2l0aW9uUHJvcGVydHk6IFwiYm94LXNoYWRvdywgYm9yZGVyLWNvbG9yLCBvdXRsaW5lLWNvbG9yXCIsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uOiB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLmR1cmF0aW9uLFxuICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjpcbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ucHJvbXB0SW5wdXQuZm9jdXMudGltaW5nRnVuY3Rpb24sXG4gIH0pLFxuICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgfSksXG4gIGN1cnNvcjogXCJ0ZXh0XCIsXG4gIG91dGxpbmVDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICBbYCY6aGFzKHRleHRhcmVhOmZvY3VzLXZpc2libGUpYF06IHtcbiAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgb3V0bGluZU9mZnNldDogLTEsXG4gICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcbiAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gIH0sXG59KSk7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG5jb25zdCBTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgdG9wOiBnZXRQYWRkaW5nVmVydGljYWwodGhlbWUpLFxuICBsZWZ0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSksXG59KSk7XG5cbnR5cGUgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclByb3BzID0gUGljazxcbiAgUHJvbXB0SW5wdXRQcm9wcyxcbiAgXCJpc05hdkJhclZhcmlhbnRcIlxuPjtcblxuY29uc3QgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciA9XG4gIHN0eWxlZC5kaXY8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclByb3BzPihcbiAgICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgdG9wOiBpc05hdkJhclZhcmlhbnRcbiAgICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4c1xuICAgICAgICA6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSksXG4gICAgICByaWdodDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUpLFxuICAgICAgdXNlclNlbGVjdDogXCJub25lXCIsXG4gICAgICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbiAgICB9KVxuICApO1xuXG50eXBlIFN0eWxlZENsZWFyQnV0dG9uUHJvcHMgPSBQaWN0b2dyYW1CdXR0b25Qcm9wcyAmXG4gIFBpY2s8UHJvbXB0SW5wdXRQcm9wcywgXCJpc05hdkJhclZhcmlhbnRcIj47XG5cbmNvbnN0IFN0eWxlZENsZWFyQnV0dG9uID0gc3R5bGVkKFBpY3RvZ3JhbUJ1dHRvbik8U3R5bGVkQ2xlYXJCdXR0b25Qcm9wcz4oXG4gICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgIHJpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gICAgdG9wOiBpc05hdkJhclZhcmlhbnQgPyAwIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkU2xvdHNDb250YWluZXIgPSBzdHlsZWQuZGl2KHtcbiAgZGlzcGxheTogXCJmbGV4XCIsXG4gIGZsZXhXcmFwOiBcIndyYXBcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbn0pO1xuXG4vLyBJdCBuZWVkcyBtYXJnaW4gZHVlIHRvIGVtcHR5IGNsaWNrYWJsZSBzcGFjZSB0aGF0IGZvY3VzZXMgdGhlIHRleHRhcmVhXG4vLyBTbG90cyBzaG91bGQgbm90IGJlIGluIHRoZSBkaXYsIGJlY2F1c2UgYXJlYSBiZXR3ZWVuIHNob3VsZCBiZSBjbGlja2FibGUgYWxzb1xudHlwZSBTbG90UHJvcHMgPSB7XG4gIHNpZGU/OiBcInJpZ2h0XCI7XG59O1xuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8U2xvdFByb3BzPigoeyB0aGVtZSwgc2lkZSB9KSA9PiAoe1xuICBtYXJnaW46IGAwICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc31gLFxuXG4gIC4uLihzaWRlID09PSBcInJpZ2h0XCIgJiYge1xuICAgIG1hcmdpbkxlZnQ6IFwiYXV0b1wiLFxuICB9KSxcbn0pKTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbnR5cGUgQm90dG9tVG9vbGJhckNvbmZpZyA9IHtcbiAgLyoqIFRvb2xiYXIgZWxlbWVudHMgYmVsb3cgdGV4dCBhcmVhICovXG4gIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBib3R0b21Ub29sYmFyPzogQm90dG9tVG9vbGJhckNvbmZpZztcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQ29sbGFwc2VkXCIgfCBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiXG4+ICZcbiAgUGljazxcbiAgICBBdXRvY29tcGxldGVMaXN0UHJvcHMsXG4gICAgXCJhdXRvY29tcGxldGVMaXN0SXRlbXNcIiB8IFwiYXV0b2NvbXBsZXRlTGlzdEZvb3RlclwiIHwgXCJwb3J0YWxDb250YWluZXJcIlxuICA+O1xuXG5jb25zdCBkZWZhdWx0U2VuZEJ1dHRvblByb3BzOiBTZW5kQnV0dG9uUHJvcHMgPSB7XG4gIHR5cGU6IFwic3VibWl0XCIgYXMgY29uc3QsXG4gIGljb246IFwiYXJyb3ctdXBcIiBhcyBjb25zdCxcbn07XG5cbmNvbnN0IFByb21wdElucHV0Q29tcG9uZW50ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyLFxuICAgICAgaXNQcm9jZXNzaW5nLFxuICAgICAgc2VuZEJ1dHRvblByb3BzLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBsZWZ0SWNvbixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIC4uLnJlc3RcbiAgICB9OiBQcm9tcHRJbnB1dFByb3BzLFxuICAgIHJlZjogUmVmT2JqZWN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+XG4gICk6IFJlYWN0RWxlbWVudCA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IFtpc0NvbGxhcHNlZCwgc2V0SXNDb2xsYXBzZWRdID0gdXNlU3RhdGUoaXNOYXZCYXJWYXJpYW50KTtcbiAgICBjb25zdCB1c2VyVHlwZWRRdWVyeSA9IHVzZVJlZihcIlwiKTtcbiAgICBjb25zdCBbaXNBdXRvY29tcGxldGVMaXN0T3Blbiwgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgdGV4dEFyZWFSZWYgPSByZWYgfHwgaW50ZXJuYWxSZWY7XG5cbiAgICBjb25zdCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0U2VuZEJ1dHRvblByb3BzLFxuICAgICAgLi4uKHNlbmRCdXR0b25Qcm9wcyA/PyB7fSksXG4gICAgfTtcblxuICAgIHVzZU91dHNpZGVDbGljayhcbiAgICAgIGNvbnRhaW5lclJlZixcbiAgICAgIChldnQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFjb250YWluZXJSZWYuY3VycmVudC5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgIXBvcnRhbENvbnRhaW5lcj8uY29udGFpbnMoZXZ0LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgIGV2dC50YXJnZXQgIT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAhaXNDb2xsYXBzZWQgJiYgaXNOYXZCYXJWYXJpYW50XG4gICAgKTtcblxuICAgIGNvbnN0IGNsb3NlQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4oZmFsc2UpO1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3Qgb3BlbkF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKHRydWUpO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICAgIH1cbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXSk7XG5cbiAgICBjb25zdCBhY2NlcHRUZXh0U2VsZWN0aW9uID0gKCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IHZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0ICE9PSB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvbkVuZFxuICAgICAgKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGggJiYgIWlzQ29sbGFwc2VkKSB7XG4gICAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMsXG4gICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGlzQ29sbGFwc2VkLFxuICAgIF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgLy8gRGV0ZXJtaW5lIHdoZW4gZm9jdXMgbGVhdmVzIHRoZSBjb250YWluZXIgdG8gY29sbGFwc2UgaXRcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgbGV0IGhhbmRsZXI6IChldnQ6IEZvY3VzRXZlbnQpID0+IHZvaWQ7XG4gICAgICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJSZWYuY3VycmVudDtcblxuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCAmJiBjb250YWluZXIpIHtcbiAgICAgICAgaGFuZGxlciA9IChldnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICBldnQucmVsYXRlZFRhcmdldCAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9LCBbaXNOYXZCYXJWYXJpYW50LCBjb250YWluZXJSZWYsIHBvcnRhbENvbnRhaW5lcl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuXG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBzZXRJc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBtZXJnZWRTZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJcbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICA+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICBpY29uPVwieC1jaXJjbGUtZmlsbGVkXCJcbiAgICAgICAgYXJpYS1sYWJlbD17Y2xlYXJCdXR0b25BcmlhTGFiZWx9XG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgIG9uQ2xpY2s9e29uQ2xlYXJ9XG4gICAgICAvPlxuICAgICkgOiAoXG4gICAgICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtXG4gICAgKTtcblxuICAgIGNvbnN0IGhpbnRFbG0gPSAhIWhpbnQgJiYgKFxuICAgICAgPElubGluZSBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIDxUZXh0IHNpemU9XCJzXCIgY29sb3I9XCJ0ZXJ0aWFyeVwiPlxuICAgICAgICAgIHtoaW50fVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0lubGluZT5cbiAgICApO1xuXG4gICAgY29uc3QgYm90dG9tVG9vbGJhckVsbSA9IChib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnQgfHxcbiAgICAgIGJvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50IHx8XG4gICAgICAhIXNlbmRCdXR0b25Qcm9wcykgJiZcbiAgICAgICFpc0NvbGxhcHNlZCAmJiAoXG4gICAgICAgIDw+XG4gICAgICAgICAge2JvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICAgIDxTdHlsZWRTbG90Pntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdHlsZWRTbG90IGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCIgc2lkZT1cInJpZ2h0XCI+XG4gICAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhcj8ucmlnaHRDb250ZW50fVxuICAgICAgICAgICAgICB7c2VuZEJ1dHRvblByb3BzICYmIChcbiAgICAgICAgICAgICAgICA8Um91bmRCdXR0b25cbiAgICAgICAgICAgICAgICAgIGFyaWFBdHRyaWJ1dGVzPXt7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiUHJvY2Vzc2luZyBxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlN1Ym1pdCBxdWVyeVwiLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHsuLi5tZXJnZWRTZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17bWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkID8/ICF2YWx1ZX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgIGljb249e1xuICAgICAgICAgICAgICAgICAgICBpc1Byb2Nlc3NpbmcgPyBcInN0b3AtZmlsbGVkXCIgOiBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuaWNvblxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICA8L1N0eWxlZFNsb3Q+XG4gICAgICAgIDwvPlxuICAgICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPVwiUHJvbXB0SW5wdXRcIlxuICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIGRpc2FibGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBhdXRvY29tcGxldGUgbGlzdFxuICAgICAgICAgIHRyYW5zbGF0ZT1cIm5vXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFjayBzcGFjZT1cInNcIj5cbiAgICAgICAgICAgIDxDdXN0b21Db250YWluZXJcbiAgICAgICAgICAgICAgZWxldmF0aW9uPXswfVxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9e2lzQ29sbGFwc2VkID8gXCJ4c1wiIDogXCJtXCJ9XG4gICAgICAgICAgICAgIGhpZGVCb3JkZXI9e2lzQ29sbGFwc2VkfVxuICAgICAgICAgICAgICBoYXNTaGFkb3c9eyFpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRHMEIifQ== */"),StyledSlotsContainer=(0,_styled.default)("div",{target:"e1wtb8mk5",label:"StyledSlotsContainer"})({display:"flex",flexWrap:"wrap",alignItems:"center"},"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8e1xuICBoaWRlQm9yZGVyOiBib29sZWFuO1xuICBoYXNTaGFkb3c6IGJvb2xlYW47XG59PigoeyB0aGVtZSwgaGlkZUJvcmRlciwgaGFzU2hhZG93IH0pID0+ICh7XG4gIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gIC4uLihoYXNTaGFkb3cgJiYge1xuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5kZWZhdWx0UmluZyxcbiAgICB0cmFuc2l0aW9uUHJvcGVydHk6IFwiYm94LXNoYWRvdywgYm9yZGVyLWNvbG9yLCBvdXRsaW5lLWNvbG9yXCIsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uOiB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLmR1cmF0aW9uLFxuICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjpcbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ucHJvbXB0SW5wdXQuZm9jdXMudGltaW5nRnVuY3Rpb24sXG4gIH0pLFxuICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgfSksXG4gIGN1cnNvcjogXCJ0ZXh0XCIsXG4gIG91dGxpbmVDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICBbYCY6aGFzKHRleHRhcmVhOmZvY3VzLXZpc2libGUpYF06IHtcbiAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgb3V0bGluZU9mZnNldDogLTEsXG4gICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcbiAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gIH0sXG59KSk7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG5jb25zdCBTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgdG9wOiBnZXRQYWRkaW5nVmVydGljYWwodGhlbWUpLFxuICBsZWZ0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSksXG59KSk7XG5cbnR5cGUgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclByb3BzID0gUGljazxcbiAgUHJvbXB0SW5wdXRQcm9wcyxcbiAgXCJpc05hdkJhclZhcmlhbnRcIlxuPjtcblxuY29uc3QgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciA9XG4gIHN0eWxlZC5kaXY8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclByb3BzPihcbiAgICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgdG9wOiBpc05hdkJhclZhcmlhbnRcbiAgICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4c1xuICAgICAgICA6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSksXG4gICAgICByaWdodDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUpLFxuICAgICAgdXNlclNlbGVjdDogXCJub25lXCIsXG4gICAgICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbiAgICB9KVxuICApO1xuXG50eXBlIFN0eWxlZENsZWFyQnV0dG9uUHJvcHMgPSBQaWN0b2dyYW1CdXR0b25Qcm9wcyAmXG4gIFBpY2s8UHJvbXB0SW5wdXRQcm9wcywgXCJpc05hdkJhclZhcmlhbnRcIj47XG5cbmNvbnN0IFN0eWxlZENsZWFyQnV0dG9uID0gc3R5bGVkKFBpY3RvZ3JhbUJ1dHRvbik8U3R5bGVkQ2xlYXJCdXR0b25Qcm9wcz4oXG4gICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgIHJpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gICAgdG9wOiBpc05hdkJhclZhcmlhbnQgPyAwIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkU2xvdHNDb250YWluZXIgPSBzdHlsZWQuZGl2KHtcbiAgZGlzcGxheTogXCJmbGV4XCIsXG4gIGZsZXhXcmFwOiBcIndyYXBcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbn0pO1xuXG4vLyBJdCBuZWVkcyBtYXJnaW4gZHVlIHRvIGVtcHR5IGNsaWNrYWJsZSBzcGFjZSB0aGF0IGZvY3VzZXMgdGhlIHRleHRhcmVhXG4vLyBTbG90cyBzaG91bGQgbm90IGJlIGluIHRoZSBkaXYsIGJlY2F1c2UgYXJlYSBiZXR3ZWVuIHNob3VsZCBiZSBjbGlja2FibGUgYWxzb1xudHlwZSBTbG90UHJvcHMgPSB7XG4gIHNpZGU/OiBcInJpZ2h0XCI7XG59O1xuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8U2xvdFByb3BzPigoeyB0aGVtZSwgc2lkZSB9KSA9PiAoe1xuICBtYXJnaW46IGAwICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc31gLFxuXG4gIC4uLihzaWRlID09PSBcInJpZ2h0XCIgJiYge1xuICAgIG1hcmdpbkxlZnQ6IFwiYXV0b1wiLFxuICB9KSxcbn0pKTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbnR5cGUgQm90dG9tVG9vbGJhckNvbmZpZyA9IHtcbiAgLyoqIFRvb2xiYXIgZWxlbWVudHMgYmVsb3cgdGV4dCBhcmVhICovXG4gIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBib3R0b21Ub29sYmFyPzogQm90dG9tVG9vbGJhckNvbmZpZztcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQ29sbGFwc2VkXCIgfCBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiXG4+ICZcbiAgUGljazxcbiAgICBBdXRvY29tcGxldGVMaXN0UHJvcHMsXG4gICAgXCJhdXRvY29tcGxldGVMaXN0SXRlbXNcIiB8IFwiYXV0b2NvbXBsZXRlTGlzdEZvb3RlclwiIHwgXCJwb3J0YWxDb250YWluZXJcIlxuICA+O1xuXG5jb25zdCBkZWZhdWx0U2VuZEJ1dHRvblByb3BzOiBTZW5kQnV0dG9uUHJvcHMgPSB7XG4gIHR5cGU6IFwic3VibWl0XCIgYXMgY29uc3QsXG4gIGljb246IFwiYXJyb3ctdXBcIiBhcyBjb25zdCxcbn07XG5cbmNvbnN0IFByb21wdElucHV0Q29tcG9uZW50ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyLFxuICAgICAgaXNQcm9jZXNzaW5nLFxuICAgICAgc2VuZEJ1dHRvblByb3BzLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBsZWZ0SWNvbixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIC4uLnJlc3RcbiAgICB9OiBQcm9tcHRJbnB1dFByb3BzLFxuICAgIHJlZjogUmVmT2JqZWN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+XG4gICk6IFJlYWN0RWxlbWVudCA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IFtpc0NvbGxhcHNlZCwgc2V0SXNDb2xsYXBzZWRdID0gdXNlU3RhdGUoaXNOYXZCYXJWYXJpYW50KTtcbiAgICBjb25zdCB1c2VyVHlwZWRRdWVyeSA9IHVzZVJlZihcIlwiKTtcbiAgICBjb25zdCBbaXNBdXRvY29tcGxldGVMaXN0T3Blbiwgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgdGV4dEFyZWFSZWYgPSByZWYgfHwgaW50ZXJuYWxSZWY7XG5cbiAgICBjb25zdCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0U2VuZEJ1dHRvblByb3BzLFxuICAgICAgLi4uKHNlbmRCdXR0b25Qcm9wcyA/PyB7fSksXG4gICAgfTtcblxuICAgIHVzZU91dHNpZGVDbGljayhcbiAgICAgIGNvbnRhaW5lclJlZixcbiAgICAgIChldnQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFjb250YWluZXJSZWYuY3VycmVudC5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgIXBvcnRhbENvbnRhaW5lcj8uY29udGFpbnMoZXZ0LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgIGV2dC50YXJnZXQgIT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAhaXNDb2xsYXBzZWQgJiYgaXNOYXZCYXJWYXJpYW50XG4gICAgKTtcblxuICAgIGNvbnN0IGNsb3NlQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4oZmFsc2UpO1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3Qgb3BlbkF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKHRydWUpO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICAgIH1cbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXSk7XG5cbiAgICBjb25zdCBhY2NlcHRUZXh0U2VsZWN0aW9uID0gKCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IHZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0ICE9PSB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvbkVuZFxuICAgICAgKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGggJiYgIWlzQ29sbGFwc2VkKSB7XG4gICAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMsXG4gICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGlzQ29sbGFwc2VkLFxuICAgIF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgLy8gRGV0ZXJtaW5lIHdoZW4gZm9jdXMgbGVhdmVzIHRoZSBjb250YWluZXIgdG8gY29sbGFwc2UgaXRcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgbGV0IGhhbmRsZXI6IChldnQ6IEZvY3VzRXZlbnQpID0+IHZvaWQ7XG4gICAgICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJSZWYuY3VycmVudDtcblxuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCAmJiBjb250YWluZXIpIHtcbiAgICAgICAgaGFuZGxlciA9IChldnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICBldnQucmVsYXRlZFRhcmdldCAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9LCBbaXNOYXZCYXJWYXJpYW50LCBjb250YWluZXJSZWYsIHBvcnRhbENvbnRhaW5lcl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuXG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBzZXRJc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBtZXJnZWRTZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJcbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICA+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICBpY29uPVwieC1jaXJjbGUtZmlsbGVkXCJcbiAgICAgICAgYXJpYS1sYWJlbD17Y2xlYXJCdXR0b25BcmlhTGFiZWx9XG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgIG9uQ2xpY2s9e29uQ2xlYXJ9XG4gICAgICAvPlxuICAgICkgOiAoXG4gICAgICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtXG4gICAgKTtcblxuICAgIGNvbnN0IGhpbnRFbG0gPSAhIWhpbnQgJiYgKFxuICAgICAgPElubGluZSBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIDxUZXh0IHNpemU9XCJzXCIgY29sb3I9XCJ0ZXJ0aWFyeVwiPlxuICAgICAgICAgIHtoaW50fVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0lubGluZT5cbiAgICApO1xuXG4gICAgY29uc3QgYm90dG9tVG9vbGJhckVsbSA9IChib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnQgfHxcbiAgICAgIGJvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50IHx8XG4gICAgICAhIXNlbmRCdXR0b25Qcm9wcykgJiZcbiAgICAgICFpc0NvbGxhcHNlZCAmJiAoXG4gICAgICAgIDw+XG4gICAgICAgICAge2JvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICAgIDxTdHlsZWRTbG90Pntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdHlsZWRTbG90IGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCIgc2lkZT1cInJpZ2h0XCI+XG4gICAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhcj8ucmlnaHRDb250ZW50fVxuICAgICAgICAgICAgICB7c2VuZEJ1dHRvblByb3BzICYmIChcbiAgICAgICAgICAgICAgICA8Um91bmRCdXR0b25cbiAgICAgICAgICAgICAgICAgIGFyaWFBdHRyaWJ1dGVzPXt7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiUHJvY2Vzc2luZyBxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlN1Ym1pdCBxdWVyeVwiLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHsuLi5tZXJnZWRTZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17bWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkID8/ICF2YWx1ZX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgIGljb249e1xuICAgICAgICAgICAgICAgICAgICBpc1Byb2Nlc3NpbmcgPyBcInN0b3AtZmlsbGVkXCIgOiBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuaWNvblxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICA8L1N0eWxlZFNsb3Q+XG4gICAgICAgIDwvPlxuICAgICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPVwiUHJvbXB0SW5wdXRcIlxuICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIGRpc2FibGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBhdXRvY29tcGxldGUgbGlzdFxuICAgICAgICAgIHRyYW5zbGF0ZT1cIm5vXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFjayBzcGFjZT1cInNcIj5cbiAgICAgICAgICAgIDxDdXN0b21Db250YWluZXJcbiAgICAgICAgICAgICAgZWxldmF0aW9uPXswfVxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9e2lzQ29sbGFwc2VkID8gXCJ4c1wiIDogXCJtXCJ9XG4gICAgICAgICAgICAgIGhpZGVCb3JkZXI9e2lzQ29sbGFwc2VkfVxuICAgICAgICAgICAgICBoYXNTaGFkb3c9eyFpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9INkIifQ== */"),StyledSlot=(0,_styled.default)("div",{target:"e1wtb8mk6",label:"StyledSlot"})(({theme,side})=>({margin:`0 ${theme.variables.size.spacing.s} ${theme.variables.size.spacing.s}`,..."right"===side&&{marginLeft:"auto"}}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8e1xuICBoaWRlQm9yZGVyOiBib29sZWFuO1xuICBoYXNTaGFkb3c6IGJvb2xlYW47XG59PigoeyB0aGVtZSwgaGlkZUJvcmRlciwgaGFzU2hhZG93IH0pID0+ICh7XG4gIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gIC4uLihoYXNTaGFkb3cgJiYge1xuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5kZWZhdWx0UmluZyxcbiAgICB0cmFuc2l0aW9uUHJvcGVydHk6IFwiYm94LXNoYWRvdywgYm9yZGVyLWNvbG9yLCBvdXRsaW5lLWNvbG9yXCIsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uOiB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLmR1cmF0aW9uLFxuICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjpcbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ucHJvbXB0SW5wdXQuZm9jdXMudGltaW5nRnVuY3Rpb24sXG4gIH0pLFxuICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgfSksXG4gIGN1cnNvcjogXCJ0ZXh0XCIsXG4gIG91dGxpbmVDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICBbYCY6aGFzKHRleHRhcmVhOmZvY3VzLXZpc2libGUpYF06IHtcbiAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgb3V0bGluZU9mZnNldDogLTEsXG4gICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcbiAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gIH0sXG59KSk7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG5jb25zdCBTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgdG9wOiBnZXRQYWRkaW5nVmVydGljYWwodGhlbWUpLFxuICBsZWZ0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSksXG59KSk7XG5cbnR5cGUgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclByb3BzID0gUGljazxcbiAgUHJvbXB0SW5wdXRQcm9wcyxcbiAgXCJpc05hdkJhclZhcmlhbnRcIlxuPjtcblxuY29uc3QgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciA9XG4gIHN0eWxlZC5kaXY8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclByb3BzPihcbiAgICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgdG9wOiBpc05hdkJhclZhcmlhbnRcbiAgICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4c1xuICAgICAgICA6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSksXG4gICAgICByaWdodDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUpLFxuICAgICAgdXNlclNlbGVjdDogXCJub25lXCIsXG4gICAgICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbiAgICB9KVxuICApO1xuXG50eXBlIFN0eWxlZENsZWFyQnV0dG9uUHJvcHMgPSBQaWN0b2dyYW1CdXR0b25Qcm9wcyAmXG4gIFBpY2s8UHJvbXB0SW5wdXRQcm9wcywgXCJpc05hdkJhclZhcmlhbnRcIj47XG5cbmNvbnN0IFN0eWxlZENsZWFyQnV0dG9uID0gc3R5bGVkKFBpY3RvZ3JhbUJ1dHRvbik8U3R5bGVkQ2xlYXJCdXR0b25Qcm9wcz4oXG4gICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgIHJpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gICAgdG9wOiBpc05hdkJhclZhcmlhbnQgPyAwIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkU2xvdHNDb250YWluZXIgPSBzdHlsZWQuZGl2KHtcbiAgZGlzcGxheTogXCJmbGV4XCIsXG4gIGZsZXhXcmFwOiBcIndyYXBcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbn0pO1xuXG4vLyBJdCBuZWVkcyBtYXJnaW4gZHVlIHRvIGVtcHR5IGNsaWNrYWJsZSBzcGFjZSB0aGF0IGZvY3VzZXMgdGhlIHRleHRhcmVhXG4vLyBTbG90cyBzaG91bGQgbm90IGJlIGluIHRoZSBkaXYsIGJlY2F1c2UgYXJlYSBiZXR3ZWVuIHNob3VsZCBiZSBjbGlja2FibGUgYWxzb1xudHlwZSBTbG90UHJvcHMgPSB7XG4gIHNpZGU/OiBcInJpZ2h0XCI7XG59O1xuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8U2xvdFByb3BzPigoeyB0aGVtZSwgc2lkZSB9KSA9PiAoe1xuICBtYXJnaW46IGAwICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc31gLFxuXG4gIC4uLihzaWRlID09PSBcInJpZ2h0XCIgJiYge1xuICAgIG1hcmdpbkxlZnQ6IFwiYXV0b1wiLFxuICB9KSxcbn0pKTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbnR5cGUgQm90dG9tVG9vbGJhckNvbmZpZyA9IHtcbiAgLyoqIFRvb2xiYXIgZWxlbWVudHMgYmVsb3cgdGV4dCBhcmVhICovXG4gIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBib3R0b21Ub29sYmFyPzogQm90dG9tVG9vbGJhckNvbmZpZztcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQ29sbGFwc2VkXCIgfCBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiXG4+ICZcbiAgUGljazxcbiAgICBBdXRvY29tcGxldGVMaXN0UHJvcHMsXG4gICAgXCJhdXRvY29tcGxldGVMaXN0SXRlbXNcIiB8IFwiYXV0b2NvbXBsZXRlTGlzdEZvb3RlclwiIHwgXCJwb3J0YWxDb250YWluZXJcIlxuICA+O1xuXG5jb25zdCBkZWZhdWx0U2VuZEJ1dHRvblByb3BzOiBTZW5kQnV0dG9uUHJvcHMgPSB7XG4gIHR5cGU6IFwic3VibWl0XCIgYXMgY29uc3QsXG4gIGljb246IFwiYXJyb3ctdXBcIiBhcyBjb25zdCxcbn07XG5cbmNvbnN0IFByb21wdElucHV0Q29tcG9uZW50ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyLFxuICAgICAgaXNQcm9jZXNzaW5nLFxuICAgICAgc2VuZEJ1dHRvblByb3BzLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBsZWZ0SWNvbixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIC4uLnJlc3RcbiAgICB9OiBQcm9tcHRJbnB1dFByb3BzLFxuICAgIHJlZjogUmVmT2JqZWN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+XG4gICk6IFJlYWN0RWxlbWVudCA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IFtpc0NvbGxhcHNlZCwgc2V0SXNDb2xsYXBzZWRdID0gdXNlU3RhdGUoaXNOYXZCYXJWYXJpYW50KTtcbiAgICBjb25zdCB1c2VyVHlwZWRRdWVyeSA9IHVzZVJlZihcIlwiKTtcbiAgICBjb25zdCBbaXNBdXRvY29tcGxldGVMaXN0T3Blbiwgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgdGV4dEFyZWFSZWYgPSByZWYgfHwgaW50ZXJuYWxSZWY7XG5cbiAgICBjb25zdCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0U2VuZEJ1dHRvblByb3BzLFxuICAgICAgLi4uKHNlbmRCdXR0b25Qcm9wcyA/PyB7fSksXG4gICAgfTtcblxuICAgIHVzZU91dHNpZGVDbGljayhcbiAgICAgIGNvbnRhaW5lclJlZixcbiAgICAgIChldnQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFjb250YWluZXJSZWYuY3VycmVudC5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgIXBvcnRhbENvbnRhaW5lcj8uY29udGFpbnMoZXZ0LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgIGV2dC50YXJnZXQgIT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAhaXNDb2xsYXBzZWQgJiYgaXNOYXZCYXJWYXJpYW50XG4gICAgKTtcblxuICAgIGNvbnN0IGNsb3NlQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4oZmFsc2UpO1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3Qgb3BlbkF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKHRydWUpO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICAgIH1cbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXSk7XG5cbiAgICBjb25zdCBhY2NlcHRUZXh0U2VsZWN0aW9uID0gKCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IHZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0ICE9PSB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvbkVuZFxuICAgICAgKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGggJiYgIWlzQ29sbGFwc2VkKSB7XG4gICAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMsXG4gICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGlzQ29sbGFwc2VkLFxuICAgIF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgLy8gRGV0ZXJtaW5lIHdoZW4gZm9jdXMgbGVhdmVzIHRoZSBjb250YWluZXIgdG8gY29sbGFwc2UgaXRcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgbGV0IGhhbmRsZXI6IChldnQ6IEZvY3VzRXZlbnQpID0+IHZvaWQ7XG4gICAgICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJSZWYuY3VycmVudDtcblxuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCAmJiBjb250YWluZXIpIHtcbiAgICAgICAgaGFuZGxlciA9IChldnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICBldnQucmVsYXRlZFRhcmdldCAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9LCBbaXNOYXZCYXJWYXJpYW50LCBjb250YWluZXJSZWYsIHBvcnRhbENvbnRhaW5lcl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuXG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBzZXRJc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBtZXJnZWRTZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJcbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICA+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICBpY29uPVwieC1jaXJjbGUtZmlsbGVkXCJcbiAgICAgICAgYXJpYS1sYWJlbD17Y2xlYXJCdXR0b25BcmlhTGFiZWx9XG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgIG9uQ2xpY2s9e29uQ2xlYXJ9XG4gICAgICAvPlxuICAgICkgOiAoXG4gICAgICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtXG4gICAgKTtcblxuICAgIGNvbnN0IGhpbnRFbG0gPSAhIWhpbnQgJiYgKFxuICAgICAgPElubGluZSBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIDxUZXh0IHNpemU9XCJzXCIgY29sb3I9XCJ0ZXJ0aWFyeVwiPlxuICAgICAgICAgIHtoaW50fVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0lubGluZT5cbiAgICApO1xuXG4gICAgY29uc3QgYm90dG9tVG9vbGJhckVsbSA9IChib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnQgfHxcbiAgICAgIGJvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50IHx8XG4gICAgICAhIXNlbmRCdXR0b25Qcm9wcykgJiZcbiAgICAgICFpc0NvbGxhcHNlZCAmJiAoXG4gICAgICAgIDw+XG4gICAgICAgICAge2JvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICAgIDxTdHlsZWRTbG90Pntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdHlsZWRTbG90IGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCIgc2lkZT1cInJpZ2h0XCI+XG4gICAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhcj8ucmlnaHRDb250ZW50fVxuICAgICAgICAgICAgICB7c2VuZEJ1dHRvblByb3BzICYmIChcbiAgICAgICAgICAgICAgICA8Um91bmRCdXR0b25cbiAgICAgICAgICAgICAgICAgIGFyaWFBdHRyaWJ1dGVzPXt7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiUHJvY2Vzc2luZyBxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlN1Ym1pdCBxdWVyeVwiLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHsuLi5tZXJnZWRTZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17bWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkID8/ICF2YWx1ZX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgIGljb249e1xuICAgICAgICAgICAgICAgICAgICBpc1Byb2Nlc3NpbmcgPyBcInN0b3AtZmlsbGVkXCIgOiBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuaWNvblxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICA8L1N0eWxlZFNsb3Q+XG4gICAgICAgIDwvPlxuICAgICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPVwiUHJvbXB0SW5wdXRcIlxuICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIGRpc2FibGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBhdXRvY29tcGxldGUgbGlzdFxuICAgICAgICAgIHRyYW5zbGF0ZT1cIm5vXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFjayBzcGFjZT1cInNcIj5cbiAgICAgICAgICAgIDxDdXN0b21Db250YWluZXJcbiAgICAgICAgICAgICAgZWxldmF0aW9uPXswfVxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9e2lzQ29sbGFwc2VkID8gXCJ4c1wiIDogXCJtXCJ9XG4gICAgICAgICAgICAgIGhpZGVCb3JkZXI9e2lzQ29sbGFwc2VkfVxuICAgICAgICAgICAgICBoYXNTaGFkb3c9eyFpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQStIbUIifQ== */"),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.selectionStart!==textAreaRef.current.selectionEnd&&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","aria-hidden":"true",tabIndex:-1,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||!!sendButtonProps)&&!isCollapsed&&_react.default.createElement(_react.default.Fragment,null,bottomToolbar?.leftContent&&_react.default.createElement(StyledSlot,null,bottomToolbar.leftContent),_react.default.createElement(StyledSlot,{"data-e2e-test-id":"bottomToolbar",side:"right"},_react.default.createElement(_Inline.Inline,{space:"xs",vAlignItems:"center"},bottomToolbar?.rightContent,sendButtonProps&&_react.default.createElement(_RoundButton.RoundButton,{ariaAttributes:{"aria-label":isProcessing?"Processing query":"Submit query"},...mergedSendButtonProps,disabled:mergedSendButtonProps.disabled??!value,onClick:evt=>{mergedSendButtonProps.onClick?.(evt),closeAutocompleteList(),isNavBarVariant&&setIsCollapsed(!0)},onPointerDown:handlePreventFocus,variant:"primary",icon:isProcessing?"stop-filled":mergedSendButtonProps.icon}))));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,hasShadow:!isNavBarVariant},_react.default.createElement(StyledSlotsContainer,{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:"e1wtb8mk7",label:"CustomButton"})(({theme})=>({borderRadius:theme.variables.size.borderRadius.l}),"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3JjL2NvbXBvbmVudHMvUHJvbXB0SW5wdXQvUHJvbXB0SW5wdXQudHN4Iiwic291cmNlcyI6WyJzcmMvY29tcG9uZW50cy9Qcm9tcHRJbnB1dC9Qcm9tcHRJbnB1dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUge1xuICBSZWFjdEVsZW1lbnQsXG4gIENoYW5nZUV2ZW50SGFuZGxlcixcbiAgS2V5Ym9hcmRFdmVudEhhbmRsZXIsXG4gIFJlZk9iamVjdCxcbiAgRm9jdXNFdmVudEhhbmRsZXIsXG4gIFN5bnRoZXRpY0V2ZW50LFxuICBNb3VzZUV2ZW50LFxufSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVJlZixcbiAgdXNlTWVtbyxcbiAgdXNlU3RhdGUsXG4gIHVzZUVmZmVjdCxcbiAgdXNlQ2FsbGJhY2ssXG4gIGZvcndhcmRSZWYsXG59IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHN0eWxlZCBmcm9tIFwiQGVtb3Rpb24vc3R5bGVkXCI7XG5pbXBvcnQgdHlwZSB7IFByb21wdFRleHRBcmVhUHJvcHMgfSBmcm9tIFwiLi9Qcm9tcHRUZXh0QXJlYVwiO1xuaW1wb3J0IHtcbiAgUHJvbXB0VGV4dEFyZWEsXG4gIGdldFBhZGRpbmdIb3Jpem9udGFsLFxuICBnZXRQYWRkaW5nVmVydGljYWwsXG59IGZyb20gXCIuL1Byb21wdFRleHRBcmVhXCI7XG5pbXBvcnQgeyBDb250YWluZXIgfSBmcm9tIFwiLi4vQ29udGFpbmVyXCI7XG5pbXBvcnQgdHlwZSB7IEF1dG9jb21wbGV0ZUxpc3RQcm9wcyB9IGZyb20gXCIuL0F1dG9jb21wbGV0ZUxpc3RcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUxpc3QgfSBmcm9tIFwiLi9BdXRvY29tcGxldGVMaXN0XCI7XG5pbXBvcnQge1xuICBnZXRMaXN0SXRlbUlkLFxuICB0eXBlIEZsYXR0ZW5lZExpc3RJdGVtLFxuICB0eXBlIExpc3RJdGVtVmFsdWUsXG59IGZyb20gXCIuL0NhdGVnb3J5TGlzdFwiO1xuaW1wb3J0IHsgVGV4dCB9IGZyb20gXCIuLi9UeXBvZ3JhcGh5L1RleHRcIjtcbmltcG9ydCB7IEJ1dHRvbiwgdHlwZSBCdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9CdXR0b24vQnV0dG9uXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFBvbHltb3JwaGljUmVmLFxuICBQb2x5bW9ycGhpY0NvbXBvbmVudFByb3BzV2l0aFJlZixcbn0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBJbmxpbmUgfSBmcm9tIFwiLi4vSW5saW5lL0lubGluZVwiO1xuaW1wb3J0IHR5cGUgeyBSb3VuZEJ1dHRvblByb3BzIH0gZnJvbSBcIi4uL1JvdW5kQnV0dG9uL1JvdW5kQnV0dG9uXCI7XG5pbXBvcnQgeyBSb3VuZEJ1dHRvbiB9IGZyb20gXCIuLi9Sb3VuZEJ1dHRvbi9Sb3VuZEJ1dHRvblwiO1xuaW1wb3J0IHR5cGUgeyBQaWN0b2dyYW1CdXR0b25Qcm9wcyB9IGZyb20gXCIuLi9QaWN0b2dyYW1CdXR0b24vUGljdG9ncmFtQnV0dG9uXCI7XG5pbXBvcnQgeyBQaWN0b2dyYW1CdXR0b24gfSBmcm9tIFwiLi4vUGljdG9ncmFtQnV0dG9uL1BpY3RvZ3JhbUJ1dHRvblwiO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tIFwiLi4vU3RhY2svU3RhY2tcIjtcbmltcG9ydCB7IHVzZU91dHNpZGVDbGljayB9IGZyb20gXCIuLi8uLi9zaGFyZWQvdXNlT3V0c2lkZUNsaWNrXCI7XG5pbXBvcnQgdHlwZSB7IEljb25OYW1lIH0gZnJvbSBcIi4uL0ljb24vSWNvblwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uL0ljb25cIjtcblxuY29uc3QgQ3VzdG9tQ29udGFpbmVyID0gc3R5bGVkKENvbnRhaW5lcik8e1xuICBoaWRlQm9yZGVyOiBib29sZWFuO1xuICBoYXNTaGFkb3c6IGJvb2xlYW47XG59PigoeyB0aGVtZSwgaGlkZUJvcmRlciwgaGFzU2hhZG93IH0pID0+ICh7XG4gIGJvcmRlcjogYDFweCBzb2xpZCAke3RoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIucHJpbWFyeS5kZWZhdWx0fWAsXG4gIC4uLihoYXNTaGFkb3cgJiYge1xuICAgIGJveFNoYWRvdzogdGhlbWUudmFsdWVzLnNoYWRvdy5kZWZhdWx0UmluZyxcbiAgICB0cmFuc2l0aW9uUHJvcGVydHk6IFwiYm94LXNoYWRvdywgYm9yZGVyLWNvbG9yLCBvdXRsaW5lLWNvbG9yXCIsXG4gICAgdHJhbnNpdGlvbkR1cmF0aW9uOiB0aGVtZS52YXJpYWJsZXMuYW5pbWF0aW9uLnByb21wdElucHV0LmZvY3VzLmR1cmF0aW9uLFxuICAgIHRyYW5zaXRpb25UaW1pbmdGdW5jdGlvbjpcbiAgICAgIHRoZW1lLnZhcmlhYmxlcy5hbmltYXRpb24ucHJvbXB0SW5wdXQuZm9jdXMudGltaW5nRnVuY3Rpb24sXG4gIH0pLFxuICAuLi4oaGlkZUJvcmRlciAmJiB7XG4gICAgYm9yZGVyQ29sb3I6IFwidHJhbnNwYXJlbnRcIixcbiAgfSksXG4gIGN1cnNvcjogXCJ0ZXh0XCIsXG4gIG91dGxpbmVDb2xvcjogXCJ0cmFuc3BhcmVudFwiLFxuICBbYCY6aGFzKHRleHRhcmVhOmZvY3VzLXZpc2libGUpYF06IHtcbiAgICBvdXRsaW5lV2lkdGg6IDEsXG4gICAgb3V0bGluZVN0eWxlOiBcInNvbGlkXCIsXG4gICAgb3V0bGluZU9mZnNldDogLTEsXG4gICAgYm94U2hhZG93OiB0aGVtZS52YWx1ZXMuc2hhZG93LmZvY3VzUmluZyxcbiAgICBvdXRsaW5lQ29sb3I6IHRoZW1lLnZhbHVlcy5jb2xvci5ib3JkZXIuYWNjZW50LmRlZmF1bHQsXG4gIH0sXG59KSk7XG5cbmNvbnN0IFN0eWxlZFRleHRBcmVhQ29udGFpbmVyID0gc3R5bGVkLmRpdih7XG4gIGJvcmRlclJhZGl1czogXCJpbmhlcml0XCIsXG4gIHBvc2l0aW9uOiBcInJlbGF0aXZlXCIsXG4gIHdpZHRoOiBcIjEwMCVcIixcbn0pO1xuXG5jb25zdCBTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lciA9IHN0eWxlZC5kaXYoKHsgdGhlbWUgfSkgPT4gKHtcbiAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgdG9wOiBnZXRQYWRkaW5nVmVydGljYWwodGhlbWUpLFxuICBsZWZ0OiBnZXRQYWRkaW5nSG9yaXpvbnRhbCh0aGVtZSksXG59KSk7XG5cbnR5cGUgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclByb3BzID0gUGljazxcbiAgUHJvbXB0SW5wdXRQcm9wcyxcbiAgXCJpc05hdkJhclZhcmlhbnRcIlxuPjtcblxuY29uc3QgU3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lciA9XG4gIHN0eWxlZC5kaXY8U3R5bGVkRW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudENvbnRhaW5lclByb3BzPihcbiAgICAoeyB0aGVtZSwgaXNOYXZCYXJWYXJpYW50IH0pID0+ICh7XG4gICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgdG9wOiBpc05hdkJhclZhcmlhbnRcbiAgICAgICAgPyB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnh4c1xuICAgICAgICA6IGdldFBhZGRpbmdWZXJ0aWNhbCh0aGVtZSksXG4gICAgICByaWdodDogZ2V0UGFkZGluZ0hvcml6b250YWwodGhlbWUpLFxuICAgICAgdXNlclNlbGVjdDogXCJub25lXCIsXG4gICAgICBwb2ludGVyRXZlbnRzOiBcIm5vbmVcIixcbiAgICB9KVxuICApO1xuXG50eXBlIFN0eWxlZENsZWFyQnV0dG9uUHJvcHMgPSBQaWN0b2dyYW1CdXR0b25Qcm9wcyAmXG4gIFBpY2s8UHJvbXB0SW5wdXRQcm9wcywgXCJpc05hdkJhclZhcmlhbnRcIj47XG5cbmNvbnN0IFN0eWxlZENsZWFyQnV0dG9uID0gc3R5bGVkKFBpY3RvZ3JhbUJ1dHRvbik8U3R5bGVkQ2xlYXJCdXR0b25Qcm9wcz4oXG4gICh7IHRoZW1lLCBpc05hdkJhclZhcmlhbnQgfSkgPT4gKHtcbiAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgIHJpZ2h0OiB0aGVtZS52YXJpYWJsZXMuc2l6ZS5zcGFjaW5nLnMsXG4gICAgdG9wOiBpc05hdkJhclZhcmlhbnQgPyAwIDogdGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zLFxuICB9KVxuKTtcblxuY29uc3QgU3R5bGVkU2xvdHNDb250YWluZXIgPSBzdHlsZWQuZGl2KHtcbiAgZGlzcGxheTogXCJmbGV4XCIsXG4gIGZsZXhXcmFwOiBcIndyYXBcIixcbiAgYWxpZ25JdGVtczogXCJjZW50ZXJcIixcbn0pO1xuXG4vLyBJdCBuZWVkcyBtYXJnaW4gZHVlIHRvIGVtcHR5IGNsaWNrYWJsZSBzcGFjZSB0aGF0IGZvY3VzZXMgdGhlIHRleHRhcmVhXG4vLyBTbG90cyBzaG91bGQgbm90IGJlIGluIHRoZSBkaXYsIGJlY2F1c2UgYXJlYSBiZXR3ZWVuIHNob3VsZCBiZSBjbGlja2FibGUgYWxzb1xudHlwZSBTbG90UHJvcHMgPSB7XG4gIHNpZGU/OiBcInJpZ2h0XCI7XG59O1xuY29uc3QgU3R5bGVkU2xvdCA9IHN0eWxlZC5kaXY8U2xvdFByb3BzPigoeyB0aGVtZSwgc2lkZSB9KSA9PiAoe1xuICBtYXJnaW46IGAwICR7dGhlbWUudmFyaWFibGVzLnNpemUuc3BhY2luZy5zfSAke3RoZW1lLnZhcmlhYmxlcy5zaXplLnNwYWNpbmcuc31gLFxuXG4gIC4uLihzaWRlID09PSBcInJpZ2h0XCIgJiYge1xuICAgIG1hcmdpbkxlZnQ6IFwiYXV0b1wiLFxuICB9KSxcbn0pKTtcblxudHlwZSBTZW5kQnV0dG9uUHJvcHMgPSBPbWl0PFJvdW5kQnV0dG9uUHJvcHMsIFwiaWNvblwiIHwgXCJ2YXJpYW50XCI+ICYge1xuICBpY29uPzogXCJhcnJvdy11cFwiIHwgXCJzZWFyY2hcIiB8IFwiYXJyb3ctcmlnaHRcIjtcbn07XG5cbnR5cGUgQm90dG9tVG9vbGJhckNvbmZpZyA9IHtcbiAgLyoqIFRvb2xiYXIgZWxlbWVudHMgYmVsb3cgdGV4dCBhcmVhICovXG4gIGxlZnRDb250ZW50PzogUmVhY3RFbGVtZW50O1xuICByaWdodENvbnRlbnQ/OiBSZWFjdEVsZW1lbnQ7XG59O1xuXG5leHBvcnQgdHlwZSBQcm9tcHRJbnB1dFByb3BzID0ge1xuICBcImRhdGEtZTJlLXRlc3QtaWRcIj86IHN0cmluZztcbiAgLyoqIEN1cnJlbnRseSBzaG93cyBzZW5kIGJ1dHRvbiBwcm9jZXNzaW5nIHN0YXRlICAqL1xuICBib3R0b21Ub29sYmFyPzogQm90dG9tVG9vbGJhckNvbmZpZztcbiAgc2VuZEJ1dHRvblByb3BzPzogU2VuZEJ1dHRvblByb3BzO1xuICBpc1Byb2Nlc3Npbmc/OiBib29sZWFuO1xuICBjbGVhckJ1dHRvbkFyaWFMYWJlbD86IHN0cmluZztcbiAgaGludD86IFJlYWN0RWxlbWVudDtcbiAgLyoqIFNob3dzIGluIHRoZSBjbGVhciBidXR0b24gc3BhY2UgaW4gZW1wdHkgc3RhdGUgKi9cbiAgZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudD86IFJlYWN0RWxlbWVudDtcbiAgb25DbGVhcjogKCkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCB3aGVuIHVzZXIgc2VsZWN0cyAob3IgcmVqZWN0cykgYSBsaXN0IGl0ZW0gZnJvbSBhdXRvY29tcGxldGUgbGlzdCAqL1xuICBvbkNvbXBsZXRlPzogKHtcbiAgICB2YWx1ZSxcbiAgICBjYXRlZ29yeSxcbiAgICBldnQsXG4gICAgaW5kZXgsXG4gIH06IHtcbiAgICB2YWx1ZTogTGlzdEl0ZW1WYWx1ZTtcbiAgICBjYXRlZ29yeT86IHN0cmluZztcbiAgICBldnQ/OiBTeW50aGV0aWNFdmVudDtcbiAgICBpbmRleD86IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcbiAgLyoqIENhbGxlZCBvbiBFbnRlciBrZXkgdG8gc3VibWl0IHRoZSBmb3JtICAqL1xuICBvbkVudGVyS2V5OiAoKSA9PiB2b2lkO1xuICAvKiogUmVuZGVycyBhbiBpY29uIHRvIHRoZSBsZWZ0IGluc2lkZSB0aGUgdGV4dGFyZWEgKi9cbiAgbGVmdEljb24/OiBJY29uTmFtZTtcbn0gJiBPbWl0PFxuICBQcm9tcHRUZXh0QXJlYVByb3BzLFxuICBcImlzQ29sbGFwc2VkXCIgfCBcImlzQXV0b2NvbXBsZXRlTGlzdE9wZW5cIiB8IFwic2VsZWN0ZWRMaXN0SXRlbVwiIHwgXCJoYXNMZWZ0SWNvblwiXG4+ICZcbiAgUGljazxcbiAgICBBdXRvY29tcGxldGVMaXN0UHJvcHMsXG4gICAgXCJhdXRvY29tcGxldGVMaXN0SXRlbXNcIiB8IFwiYXV0b2NvbXBsZXRlTGlzdEZvb3RlclwiIHwgXCJwb3J0YWxDb250YWluZXJcIlxuICA+O1xuXG5jb25zdCBkZWZhdWx0U2VuZEJ1dHRvblByb3BzOiBTZW5kQnV0dG9uUHJvcHMgPSB7XG4gIHR5cGU6IFwic3VibWl0XCIgYXMgY29uc3QsXG4gIGljb246IFwiYXJyb3ctdXBcIiBhcyBjb25zdCxcbn07XG5cbmNvbnN0IFByb21wdElucHV0Q29tcG9uZW50ID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIFwiZGF0YS1lMmUtdGVzdC1pZFwiOiBkYXRhRTJlVGVzdElkLFxuICAgICAgbmFtZSxcbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcyA9IFtdLFxuICAgICAgdmFsdWUsXG4gICAgICBib3R0b21Ub29sYmFyLFxuICAgICAgaXNQcm9jZXNzaW5nLFxuICAgICAgc2VuZEJ1dHRvblByb3BzLFxuICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3RlcixcbiAgICAgIGNsZWFyQnV0dG9uQXJpYUxhYmVsID0gXCJDbGVhciBpbnB1dFwiLFxuICAgICAgaGludCxcbiAgICAgIGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnQsXG4gICAgICBpc05hdkJhclZhcmlhbnQsXG4gICAgICBwb3J0YWxDb250YWluZXIsXG4gICAgICBsZWZ0SWNvbixcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25Db21wbGV0ZSxcbiAgICAgIG9uQ2xlYXIsXG4gICAgICBvbkVudGVyS2V5LFxuICAgICAgb25Gb2N1cyxcbiAgICAgIG9uQmx1cixcbiAgICAgIG9uS2V5RG93bixcbiAgICAgIC4uLnJlc3RcbiAgICB9OiBQcm9tcHRJbnB1dFByb3BzLFxuICAgIHJlZjogUmVmT2JqZWN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+XG4gICk6IFJlYWN0RWxlbWVudCA9PiB7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCB0ZXh0QXJlYUNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgaW50ZXJuYWxSZWYgPSB1c2VSZWY8SFRNTFRleHRBcmVhRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3NlbGVjdGVkSW5kZXgsIHNldFNlbGVjdGVkSW5kZXhdID0gdXNlU3RhdGUoLTEpO1xuICAgIGNvbnN0IFtpc0NvbGxhcHNlZCwgc2V0SXNDb2xsYXBzZWRdID0gdXNlU3RhdGUoaXNOYXZCYXJWYXJpYW50KTtcbiAgICBjb25zdCB1c2VyVHlwZWRRdWVyeSA9IHVzZVJlZihcIlwiKTtcbiAgICBjb25zdCBbaXNBdXRvY29tcGxldGVMaXN0T3Blbiwgc2V0SXNBdXRvY29tcGxldGVMaXN0T3Blbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgdGV4dEFyZWFSZWYgPSByZWYgfHwgaW50ZXJuYWxSZWY7XG5cbiAgICBjb25zdCBtZXJnZWRTZW5kQnV0dG9uUHJvcHMgPSB7XG4gICAgICAuLi5kZWZhdWx0U2VuZEJ1dHRvblByb3BzLFxuICAgICAgLi4uKHNlbmRCdXR0b25Qcm9wcyA/PyB7fSksXG4gICAgfTtcblxuICAgIHVzZU91dHNpZGVDbGljayhcbiAgICAgIGNvbnRhaW5lclJlZixcbiAgICAgIChldnQpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICFjb250YWluZXJSZWYuY3VycmVudC5jb250YWlucyhldnQudGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgIXBvcnRhbENvbnRhaW5lcj8uY29udGFpbnMoZXZ0LnRhcmdldCBhcyBOb2RlKSAmJlxuICAgICAgICAgIGV2dC50YXJnZXQgIT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAhaXNDb2xsYXBzZWQgJiYgaXNOYXZCYXJWYXJpYW50XG4gICAgKTtcblxuICAgIGNvbnN0IGNsb3NlQXV0b2NvbXBsZXRlTGlzdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldElzQXV0b2NvbXBsZXRlTGlzdE9wZW4oZmFsc2UpO1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleCgtMSk7XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3Qgb3BlbkF1dG9jb21wbGV0ZUxpc3QgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAoYXV0b2NvbXBsZXRlTGlzdEl0ZW1zLmxlbmd0aCkge1xuICAgICAgICBzZXRJc0F1dG9jb21wbGV0ZUxpc3RPcGVuKHRydWUpO1xuICAgICAgICBzZXRTZWxlY3RlZEluZGV4KC0xKTtcbiAgICAgIH1cbiAgICB9LCBbYXV0b2NvbXBsZXRlTGlzdEl0ZW1zXSk7XG5cbiAgICBjb25zdCBhY2NlcHRUZXh0U2VsZWN0aW9uID0gKCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IHZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0ICE9PSB0ZXh0QXJlYVJlZi5jdXJyZW50LnNlbGVjdGlvbkVuZFxuICAgICAgKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UodmFsdWUubGVuZ3RoLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5sZW5ndGggJiYgIWlzQ29sbGFwc2VkKSB7XG4gICAgICAgIG9wZW5BdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIH1cbiAgICB9LCBbXG4gICAgICBhdXRvY29tcGxldGVMaXN0SXRlbXMsXG4gICAgICBvcGVuQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGNsb3NlQXV0b2NvbXBsZXRlTGlzdCxcbiAgICAgIGlzQ29sbGFwc2VkLFxuICAgIF0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gdXNlclR5cGVkUXVlcnkuY3VycmVudCAmJiBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuKSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQuc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudC5sZW5ndGgsXG4gICAgICAgICAgdmFsdWUubGVuZ3RoXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSwgW3ZhbHVlLCB0ZXh0QXJlYVJlZiwgaXNBdXRvY29tcGxldGVMaXN0T3Blbl0pO1xuXG4gICAgLy8gRGV0ZXJtaW5lIHdoZW4gZm9jdXMgbGVhdmVzIHRoZSBjb250YWluZXIgdG8gY29sbGFwc2UgaXRcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgbGV0IGhhbmRsZXI6IChldnQ6IEZvY3VzRXZlbnQpID0+IHZvaWQ7XG4gICAgICBjb25zdCBjb250YWluZXIgPSBjb250YWluZXJSZWYuY3VycmVudDtcblxuICAgICAgaWYgKGlzTmF2QmFyVmFyaWFudCAmJiBjb250YWluZXIpIHtcbiAgICAgICAgaGFuZGxlciA9IChldnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZXZ0LnJlbGF0ZWRUYXJnZXQgYXMgTm9kZSkgJiZcbiAgICAgICAgICAgICFwb3J0YWxDb250YWluZXI/LmNvbnRhaW5zKGV2dC5yZWxhdGVkVGFyZ2V0IGFzIE5vZGUpICYmXG4gICAgICAgICAgICBldnQucmVsYXRlZFRhcmdldCAhPT0gbnVsbFxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImZvY3Vzb3V0XCIsIGhhbmRsZXIpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJmb2N1c291dFwiLCBoYW5kbGVyKTtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9LCBbaXNOYXZCYXJWYXJpYW50LCBjb250YWluZXJSZWYsIHBvcnRhbENvbnRhaW5lcl0pO1xuXG4gICAgY29uc3QgZmxhdHRlbmVkTGlzdEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBsaXN0OiBGbGF0dGVuZWRMaXN0SXRlbVtdID0gW107XG5cbiAgICAgIGF1dG9jb21wbGV0ZUxpc3RJdGVtcy5mb3JFYWNoKChsaXN0SXRlbSkgPT4ge1xuICAgICAgICBsaXN0SXRlbS5pdGVtcy5mb3JFYWNoKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaCh7XG4gICAgICAgICAgICBjYXRlZ29yeTogbGlzdEl0ZW0uY2F0ZWdvcnksXG4gICAgICAgICAgICBpbmRleEluQ2F0ZWdvcnk6IGluZGV4LFxuICAgICAgICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICBpZDogZ2V0TGlzdEl0ZW1JZChuYW1lLCBsaXN0SXRlbS5jYXRlZ29yeSwgaW5kZXgpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIGxpc3Q7XG4gICAgfSwgW2F1dG9jb21wbGV0ZUxpc3RJdGVtcywgbmFtZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZSA9IChpbmRleDogbnVtYmVyLCBldnQ/OiBTeW50aGV0aWNFdmVudCkgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCk7XG4gICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgIGNvbnN0IHsgY2F0ZWdvcnksIHZhbHVlOiBpdGVtVmFsdWUgfSA9IGZsYXR0ZW5lZExpc3RJdGVtc1tpbmRleF07XG5cbiAgICAgICAgb25Db21wbGV0ZSh7IHZhbHVlOiBpdGVtVmFsdWUsIGNhdGVnb3J5LCBldnQsIGluZGV4IH0pO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVMaXN0SXRlbUNsaWNrID0gKFxuICAgICAgY2F0ZWdvcnk6IHN0cmluZyxcbiAgICAgIGluZGV4SW5DYXRlZ29yeTogbnVtYmVyLFxuICAgICAgZXZ0PzogTW91c2VFdmVudFxuICAgICkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBmbGF0dGVuZWRMaXN0SXRlbXMuZmluZEluZGV4KFxuICAgICAgICAobGlzdEl0ZW0pID0+XG4gICAgICAgICAgbGlzdEl0ZW0uY2F0ZWdvcnkgPT09IGNhdGVnb3J5ICYmXG4gICAgICAgICAgbGlzdEl0ZW0uaW5kZXhJbkNhdGVnb3J5ID09PSBpbmRleEluQ2F0ZWdvcnlcbiAgICAgICk7XG5cbiAgICAgIGhhbmRsZVNlbGVjdGVkSW5kZXhDaGFuZ2UoaW5kZXgsIGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUtleURvd246IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgaWYgKGlzQXV0b2NvbXBsZXRlTGlzdE9wZW4pIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgY2xvc2VBdXRvY29tcGxldGVMaXN0KCk7XG4gICAgICAgICAgICBvbkNvbXBsZXRlKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgICAgICAgICAgYWNjZXB0VGV4dFNlbGVjdGlvbigpO1xuXG4gICAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIG9uRW50ZXJLZXk/LigpO1xuICAgICAgICAgICAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgICAgICAgICAgIHNldElzQ29sbGFwc2VkKHRydWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBcIiBcIjpcbiAgICAgICAgICAgIGFjY2VwdFRleHRTZWxlY3Rpb24oKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd1VwXCI6XG4gICAgICAgICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0ZWRJbmRleENoYW5nZShzZWxlY3RlZEluZGV4IC0gMSwgZXZ0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgXCJBcnJvd0Rvd25cIjpcbiAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPCBmbGF0dGVuZWRMaXN0SXRlbXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICBoYW5kbGVTZWxlY3RlZEluZGV4Q2hhbmdlKHNlbGVjdGVkSW5kZXggKyAxLCBldnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgc3dpdGNoIChldnQua2V5KSB7XG4gICAgICAgICAgY2FzZSBcIkVzY2FwZVwiOlxuICAgICAgICAgICAgb25DbGVhcj8uKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFwiRW50ZXJcIjpcbiAgICAgICAgICAgIGlmICghZXZ0LnNoaWZ0S2V5KSB7XG4gICAgICAgICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICBvbkVudGVyS2V5Py4oKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIG9uS2V5RG93bj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZTogQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxUZXh0QXJlYUVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgICAgdXNlclR5cGVkUXVlcnkuY3VycmVudCA9IGV2dC50YXJnZXQudmFsdWU7XG4gICAgICBvbkNoYW5nZShldnQpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVGb2N1czogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBzZXRJc0NvbGxhcHNlZChmYWxzZSk7XG4gICAgICBvbkZvY3VzPy4oZXZ0KTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmx1cjogRm9jdXNFdmVudEhhbmRsZXI8SFRNTFRleHRBcmVhRWxlbWVudD4gPSAoZXZ0KSA9PiB7XG4gICAgICBpZiAodmFsdWUgIT09IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQpIHtcbiAgICAgICAgb25Db21wbGV0ZT8uKHsgdmFsdWU6IHVzZXJUeXBlZFF1ZXJ5LmN1cnJlbnQsIGV2dCB9KTtcbiAgICAgIH1cbiAgICAgIG9uQmx1cj8uKGV2dCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVNlbmRCdXR0b25DbGljayA9IChldnQ6IE1vdXNlRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB7XG4gICAgICBtZXJnZWRTZW5kQnV0dG9uUHJvcHMub25DbGljaz8uKGV2dCk7XG4gICAgICBjbG9zZUF1dG9jb21wbGV0ZUxpc3QoKTtcbiAgICAgIGlmIChpc05hdkJhclZhcmlhbnQpIHtcbiAgICAgICAgc2V0SXNDb2xsYXBzZWQodHJ1ZSk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZVByZXZlbnRGb2N1cyA9IChldnQ6IFJlYWN0LlBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgLy8gUHJldmVudCB0aGUgdGV4dGFyZWEgZnJvbSBiZWluZyB1bmZvY3VzZWRcbiAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVPbkNvbnRhaW5lclBvaW50ZXJEb3duID0gKGV2dDogUmVhY3QuUG9pbnRlckV2ZW50KSA9PiB7XG4gICAgICAvLyBGb2N1cyB0ZXh0YXJlYSB3aGVuIGNsaWNraW5nIG9uIHRoZSBjb250YWluZXIgb25seVxuICAgICAgaWYgKGV2dC50YXJnZXQgPT09IGV2dC5jdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgIHRleHRBcmVhUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICAgIGV2dC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBzZWxlY3RlZExpc3RJdGVtID1cbiAgICAgIHNlbGVjdGVkSW5kZXggIT09IC0xID8gZmxhdHRlbmVkTGlzdEl0ZW1zW3NlbGVjdGVkSW5kZXhdIDogbnVsbDtcblxuICAgIGNvbnN0IGVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRFbG0gPSBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50ID8gKFxuICAgICAgPFN0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXJcbiAgICAgICAgaXNOYXZCYXJWYXJpYW50PXtpc05hdkJhclZhcmlhbnR9XG4gICAgICA+XG4gICAgICAgIDxUZXh0IGNvbG9yPVwidGVydGlhcnlcIj57ZW1wdHlTdGF0ZVRvcFJpZ2h0Q29udGVudH08L1RleHQ+XG4gICAgICA8L1N0eWxlZEVtcHR5U3RhdGVUb3BSaWdodENvbnRlbnRDb250YWluZXI+XG4gICAgKSA6IG51bGw7XG5cbiAgICBjb25zdCBjbGVhckJ1dHRvbkVsbSA9IHZhbHVlID8gKFxuICAgICAgPFN0eWxlZENsZWFyQnV0dG9uXG4gICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgdGFiSW5kZXg9ey0xfVxuICAgICAgICBpY29uPVwieC1jaXJjbGUtZmlsbGVkXCJcbiAgICAgICAgYXJpYS1sYWJlbD17Y2xlYXJCdXR0b25BcmlhTGFiZWx9XG4gICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICBvblBvaW50ZXJEb3duPXtoYW5kbGVQcmV2ZW50Rm9jdXN9XG4gICAgICAgIG9uQ2xpY2s9e29uQ2xlYXJ9XG4gICAgICAvPlxuICAgICkgOiAoXG4gICAgICBlbXB0eVN0YXRlVG9wUmlnaHRDb250ZW50RWxtXG4gICAgKTtcblxuICAgIGNvbnN0IGhpbnRFbG0gPSAhIWhpbnQgJiYgKFxuICAgICAgPElubGluZSBhbGlnbkl0ZW1zPVwiY2VudGVyXCI+XG4gICAgICAgIDxUZXh0IHNpemU9XCJzXCIgY29sb3I9XCJ0ZXJ0aWFyeVwiPlxuICAgICAgICAgIHtoaW50fVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0lubGluZT5cbiAgICApO1xuXG4gICAgY29uc3QgYm90dG9tVG9vbGJhckVsbSA9IChib3R0b21Ub29sYmFyPy5yaWdodENvbnRlbnQgfHxcbiAgICAgIGJvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50IHx8XG4gICAgICAhIXNlbmRCdXR0b25Qcm9wcykgJiZcbiAgICAgICFpc0NvbGxhcHNlZCAmJiAoXG4gICAgICAgIDw+XG4gICAgICAgICAge2JvdHRvbVRvb2xiYXI/LmxlZnRDb250ZW50ICYmIChcbiAgICAgICAgICAgIDxTdHlsZWRTbG90Pntib3R0b21Ub29sYmFyLmxlZnRDb250ZW50fTwvU3R5bGVkU2xvdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxTdHlsZWRTbG90IGRhdGEtZTJlLXRlc3QtaWQ9XCJib3R0b21Ub29sYmFyXCIgc2lkZT1cInJpZ2h0XCI+XG4gICAgICAgICAgICA8SW5saW5lIHNwYWNlPVwieHNcIiB2QWxpZ25JdGVtcz1cImNlbnRlclwiPlxuICAgICAgICAgICAgICB7Ym90dG9tVG9vbGJhcj8ucmlnaHRDb250ZW50fVxuICAgICAgICAgICAgICB7c2VuZEJ1dHRvblByb3BzICYmIChcbiAgICAgICAgICAgICAgICA8Um91bmRCdXR0b25cbiAgICAgICAgICAgICAgICAgIGFyaWFBdHRyaWJ1dGVzPXt7XG4gICAgICAgICAgICAgICAgICAgIFwiYXJpYS1sYWJlbFwiOiBpc1Byb2Nlc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiUHJvY2Vzc2luZyBxdWVyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcIlN1Ym1pdCBxdWVyeVwiLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIHsuLi5tZXJnZWRTZW5kQnV0dG9uUHJvcHN9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17bWVyZ2VkU2VuZEJ1dHRvblByb3BzLmRpc2FibGVkID8/ICF2YWx1ZX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVNlbmRCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgICAgIG9uUG9pbnRlckRvd249e2hhbmRsZVByZXZlbnRGb2N1c31cbiAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgIGljb249e1xuICAgICAgICAgICAgICAgICAgICBpc1Byb2Nlc3NpbmcgPyBcInN0b3AtZmlsbGVkXCIgOiBtZXJnZWRTZW5kQnV0dG9uUHJvcHMuaWNvblxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L0lubGluZT5cbiAgICAgICAgICA8L1N0eWxlZFNsb3Q+XG4gICAgICAgIDwvPlxuICAgICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgZGF0YS1lMmUtdGVzdC1pZD17ZGF0YUUyZVRlc3RJZH1cbiAgICAgICAgICBkYXRhLWRzLWlkPVwiUHJvbXB0SW5wdXRcIlxuICAgICAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgICAgIC8vIFRyYW5zbGF0aW9uIGRpc2FibGVkIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBhdXRvY29tcGxldGUgbGlzdFxuICAgICAgICAgIHRyYW5zbGF0ZT1cIm5vXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxTdGFjayBzcGFjZT1cInNcIj5cbiAgICAgICAgICAgIDxDdXN0b21Db250YWluZXJcbiAgICAgICAgICAgICAgZWxldmF0aW9uPXswfVxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9e2lzQ29sbGFwc2VkID8gXCJ4c1wiIDogXCJtXCJ9XG4gICAgICAgICAgICAgIGhpZGVCb3JkZXI9e2lzQ29sbGFwc2VkfVxuICAgICAgICAgICAgICBoYXNTaGFkb3c9eyFpc05hdkJhclZhcmlhbnR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRTbG90c0NvbnRhaW5lclxuICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgICAgICAgb25Qb2ludGVyRG93bj17aGFuZGxlT25Db250YWluZXJQb2ludGVyRG93bn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRUZXh0QXJlYUNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgIHtsZWZ0SWNvbiAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT17bGVmdEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInRlcnRpYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRMZWZ0SWNvbkNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICA8UHJvbXB0VGV4dEFyZWFcbiAgICAgICAgICAgICAgICAgICAgey4uLnJlc3R9XG4gICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQ9e1xuICAgICAgICAgICAgICAgICAgICAgIGRhdGFFMmVUZXN0SWQgPyBgJHtkYXRhRTJlVGVzdElkfS1pbnB1dGAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17dGV4dEFyZWFSZWZ9XG4gICAgICAgICAgICAgICAgICAgIGlzTmF2QmFyVmFyaWFudD17aXNOYXZCYXJWYXJpYW50fVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExpc3RJdGVtPXtzZWxlY3RlZExpc3RJdGVtfVxuICAgICAgICAgICAgICAgICAgICBpc0F1dG9jb21wbGV0ZUxpc3RPcGVuPXtpc0F1dG9jb21wbGV0ZUxpc3RPcGVufVxuICAgICAgICAgICAgICAgICAgICBpc0NvbGxhcHNlZD17aXNDb2xsYXBzZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc0xlZnRJY29uPXshIWxlZnRJY29ufVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25CbHVyPXtoYW5kbGVCbHVyfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249e2hhbmRsZUtleURvd259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAge2NsZWFyQnV0dG9uRWxtfVxuICAgICAgICAgICAgICAgIDwvU3R5bGVkVGV4dEFyZWFDb250YWluZXI+XG4gICAgICAgICAgICAgICAge2JvdHRvbVRvb2xiYXJFbG19XG4gICAgICAgICAgICAgIDwvU3R5bGVkU2xvdHNDb250YWluZXI+XG4gICAgICAgICAgICA8L0N1c3RvbUNvbnRhaW5lcj5cbiAgICAgICAgICAgIHtoaW50RWxtfVxuICAgICAgICAgIDwvU3RhY2s+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxBdXRvY29tcGxldGVMaXN0XG4gICAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEl0ZW1zPXthdXRvY29tcGxldGVMaXN0SXRlbXN9XG4gICAgICAgICAgdHJpZ2dlclJlZj17dGV4dEFyZWFDb250YWluZXJSZWZ9XG4gICAgICAgICAgc2VsZWN0ZWRMaXN0SXRlbT17c2VsZWN0ZWRMaXN0SXRlbX1cbiAgICAgICAgICBpc09wZW49e2lzQXV0b2NvbXBsZXRlTGlzdE9wZW59XG4gICAgICAgICAgYXV0b2NvbXBsZXRlTGlzdEZvb3Rlcj17YXV0b2NvbXBsZXRlTGlzdEZvb3Rlcn1cbiAgICAgICAgICBwb3J0YWxDb250YWluZXI9e3BvcnRhbENvbnRhaW5lcn1cbiAgICAgICAgICBvbkxpc3RJdGVtQ2xpY2s9e2hhbmRsZUxpc3RJdGVtQ2xpY2t9XG4gICAgICAgIC8+XG4gICAgICA8Lz5cbiAgICApO1xuICB9XG4pO1xuXG5jb25zdCBDdXN0b21CdXR0b24gPSBzdHlsZWQoQnV0dG9uKSgoeyB0aGVtZSB9KSA9PiAoe1xuICBib3JkZXJSYWRpdXM6IHRoZW1lLnZhcmlhYmxlcy5zaXplLmJvcmRlclJhZGl1cy5sLFxufSkpO1xuXG4vLyBuZWVkIHRvIHNpbXBsaWZ5IHRoaXMgdHlwZSBmb3IgcmV1c2VcbmNvbnN0IFN1Z2dlc3Rpb25CdXR0b24gPSBmb3J3YXJkUmVmKFxuICA8QyBleHRlbmRzIFJlYWN0LkVsZW1lbnRUeXBlID0gXCJidXR0b25cIj4oXG4gICAgcHJvcHM6IFBvbHltb3JwaGljQ29tcG9uZW50UHJvcHNXaXRoUmVmPFxuICAgICAgQyxcbiAgICAgIE9taXQ8QnV0dG9uUHJvcHMsIFwidmFyaWFudFwiIHwgXCJzaXplXCIgfCBcInJlZlwiPlxuICAgID4sXG4gICAgcmVmOiBQb2x5bW9ycGhpY1JlZjxDPlxuICApID0+IDxDdXN0b21CdXR0b24gey4uLnByb3BzfSB2YXJpYW50PVwic2Vjb25kYXJ5XCIgc2l6ZT1cInNcIiByZWY9e3JlZn0gLz5cbik7XG5cbmV4cG9ydCBjb25zdCBQcm9tcHRJbnB1dCA9IE9iamVjdC5hc3NpZ24oUHJvbXB0SW5wdXRDb21wb25lbnQsIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbixcbn0pIGFzIHR5cGVvZiBQcm9tcHRJbnB1dENvbXBvbmVudCAmIHtcbiAgU3VnZ2VzdGlvbkJ1dHRvbjogdHlwZW9mIFN1Z2dlc3Rpb25CdXR0b247XG59O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtsQnFCIn0= */"),PromptInput=Object.assign(PromptInputComponent,{SuggestionButton:(0,_react.forwardRef)((props,ref)=>_react.default.createElement(CustomButton,{...props,variant:"secondary",size:"s",ref:ref}))});