@touchtech/baselayer-ui 2.8.2 → 2.8.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- !function(e,t){for(var n in t)e[n]=t[n]}(exports,function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=10)}([function(e,t){e.exports=require("react")},function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return a}));var r=Array.isArray;function a(e){var t="";if("string"==typeof e||"number"==typeof e)return e||"";if(r(e))for(var n,o=0;o<e.length;o++)""!==(n=a(e[o]))&&(t+=(t&&" ")+n);else for(var o in e)e.hasOwnProperty(o)&&e[o]&&(t+=(t&&" ")+o);return t}},function(e,t,n){e.exports=n(49)()},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Label=void 0;var a=n(17);Object.defineProperty(t,"Label",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Icon=void 0;var a=n(33);Object.defineProperty(t,"Icon",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ButtonLink=void 0;var a=n(13);Object.defineProperty(t,"ButtonLink",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";n.r(t),t.default={listViewItem:"_1fj2anieQ0JKxCAZkSaapk"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Button=void 0;var a=n(11);Object.defineProperty(t,"Button",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ColorSwatch=void 0;var a=n(22);Object.defineProperty(t,"ColorSwatch",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Modal=void 0;var a=n(27);Object.defineProperty(t,"Modal",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),a(n(7),t),a(n(5),t),a(n(15),t),a(n(20),t),a(n(8),t),a(n(25),t),a(n(30),t),a(n(4),t),a(n(35),t),a(n(38),t),a(n(41),t),a(n(44),t),a(n(51),t),a(n(9),t),a(n(60),t),a(n(3),t),a(n(63),t),a(n(66),t),a(n(71),t),a(n(74),t)},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(12));t.default=function(e){var t,n=e.children,r=e.className,u=e.onClick,l=e.containerRef,d=e.disabled,f=void 0!==d&&d,c=e.inverted,s=void 0!==c&&c,v=e.rounded,_=void 0!==v&&v,p=e.noShadow,m=void 0!==p&&p,h=e.noPadding,y=void 0!==h&&h,b=e.noBorder,O=void 0!==b&&b,g=e.transparent,P=void 0!==g&&g,j=e.stretchHorizontally,M=void 0!==j&&j,E=e.stretchVertically,k=void 0!==E&&E,w=e.offsetSides,C=void 0===w?[]:w,N=e.align,S=void 0===N?"center":N,x=e.size,D=void 0===x?"medium":x,I=e.type;return a.default.createElement("button",{ref:l,className:o.default([i.default.container,i.default[D],i.default[S],(t={},t[i.default.inverted]=s,t[i.default.rounded]=_,t[i.default.noShadow]=m,t[i.default.noPadding]=y,t[i.default.noBorder]=O,t[i.default.transparent]=P,t[i.default.stretchHorizontally]=M,t[i.default.stretchVertically]=k,t[i.default.leftOffset]=_&&C.includes("left"),t[i.default.rightOffset]=_&&C.includes("right"),t),r]),disabled:f,onClick:u,type:I,role:"button"},"string"!=typeof n&&Array.isArray(n)&&n.length?a.default.createElement("div",{className:i.default.content},n):n)}},function(e,t,n){"use strict";n.r(t),t.default={container:"_12w5WOF3Ksa2JB5-YOXyD7",left:"_2TFV72DrQx5JGShNcut4E-",small:"uTBrcjpHp96RCwF5UDzf0",large:"_14SSfs5SVWK7NxuZBqMgzB",inverted:"_2hZhhi8BgE_ekQVn9eX9DX",rounded:"VBDOScYcQnU2eytkA_Pc6",rightOffset:"_2GTY3XmaOu923M9sERs6ak",leftOffset:"_15Q0GGkgYJ_aLm01nGE5Yh",noShadow:"RewmDqjp6nUeEYHEKzTJD",noBorder:"nZqIUPT8cZ87BW4r8kxU",transparent:"_669lR4y2AH97A1ly5MYWO",stretchHorizontally:"_3icutXHwzIiowt7bVa3Yib",stretchVertically:"_2kCkxPkplP1xqjfkepoyNp",noPadding:"_3kNbCgcI-R_FFQ-3O6T0la",content:"_2bF1AScExskuOpuzd-cD_6"}},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},a=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),u=o(n(1)),l=o(n(14));t.default=function(e){var t,n=e.as,o=e.children,d=e.className,f=e.size,c=e.containerRef,s=e.inverted,v=void 0!==s&&s,_=e.rounded,p=void 0!==_&&_,m=e.transparent,h=void 0!==m&&m,y=e.noShadow,b=void 0!==y&&y,O=e.noPadding,g=void 0!==O&&O,P=e.noBorder,j=void 0!==P&&P,M=e.stretchHorizontally,E=void 0!==M&&M,k=e.stretchVertically,w=void 0!==k&&k,C=e.offsetSides,N=void 0===C?[]:C,S=e.align,x=void 0===S?"center":S,D=a(e,["as","children","className","size","containerRef","inverted","rounded","transparent","noShadow","noPadding","noBorder","stretchHorizontally","stretchVertically","offsetSides","align"]);return void 0===n&&(n="a"),i.default.createElement(n,r({ref:c,"data-testid":"button-link",className:u.default([l.default.container,l.default[f],l.default[x],(t={},t[l.default.inverted]=v,t[l.default.rounded]=p,t[l.default.noShadow]=b,t[l.default.noPadding]=g,t[l.default.noBorder]=j,t[l.default.transparent]=h,t[l.default.stretchHorizontally]=E,t[l.default.stretchVertically]=w,t[l.default.leftOffset]=p&&N.includes("left"),t[l.default.rightOffset]=p&&N.includes("right"),t),d])},D),"string"!=typeof o&&Array.isArray(o)&&o.length?i.default.createElement("div",{className:l.default.content},o):o)}},function(e,t,n){"use strict";n.r(t),t.default={container:"_2Qu9RaG55pWyJaT__3_oFA",left:"_3nx3gNPzj6LT_1hwnQHxOJ",small:"_2Lv_6xx2Gl335KT9Iooj3g",medium:"_3Hx8phaz3zLqNseApNIWZH",large:"_2-OEYFoIvls4N2CRuY-eJr",inverted:"_2pEGiK3KuPnEvwiOCDgFDa",rounded:"_1zyVKsmozPRtLHDt_j614N",rightOffset:"_1rYvtqnZyI4RrulC7KGcou",leftOffset:"_3Tr7eO4Es1Both2K_siTAN",noShadow:"_2wZ3GII3oNd8IX7aga-aMu",transparent:"_1TKgpSYl_A0ISkBcT1jly7",stretchHorizontally:"_3p2TY4nodViu9jx-LzGCNe",stretchVertically:"_3gEwkRprnS_IREu3KtNzMD",noPadding:"_2JpKJrumATcTTRT7xiff9i",noBorder:"_1P3P274wou6lEA87g6rFV2",content:"sNDrq3cX6I6Q-Ouusz7Ti"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Checkbox=void 0;var a=n(16);Object.defineProperty(t,"Checkbox",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var u=o(n(0)),l=i(n(1)),d=n(3),f=i(n(19));t.default=function(e){var t=e.label,n=e.onChange,r=e.placeholder,a=e.checked,o=e.disabled,i=e.name,c=e.indeterminate,s=e.size,v=void 0===s?"small":s,_=e.autoFocus,p=void 0!==_&&_,m=u.useCallback((function(e){return n(e.target.checked)}),[n]);return u.default.createElement(d.Label,{value:t},u.default.createElement("input",{"data-testid":"checkbox",ref:function(e){e&&(e.indeterminate=c)},checked:a,disabled:o,className:l.default([f.default.input,f.default[v]]),onChange:m,placeholder:r,name:i,type:"checkbox",autoFocus:p}))}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(18));t.default=function(e){var t=e.children,n=e.value,r=e.containerRef;return a.default.createElement("label",{ref:r,className:o.default.container},n,t)}},function(e,t,n){"use strict";n.r(t),t.default={container:"_15Dbs_X5IT9tkmAsMXPNVJ"}},function(e,t,n){"use strict";n.r(t),t.default={input:"_1p2hmjmM1qNZTZIiFHFIxu",small:"_1Ji__9U-D5UdW2NJWWUPrC",medium:"_3KJS2FRS2td90Qr6r33L28",large:"_1j7odCEEX2DkggpIZuF4MI"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ColorPicker=void 0;var a=n(21);Object.defineProperty(t,"ColorPicker",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=n(8),u=r(n(24));t.default=function(e){var t=e.colors,n=e.containerRef,r=e.onSelect,l=e.selectedColor,d=e.direction,f=void 0===d?"vertical":d;return a.default.createElement("div",{ref:n,className:o.default([u.default.colorPicker,u.default[f]])},t.map((function(e){return a.default.createElement(i.ColorSwatch,{key:e.key,color:e,isSelected:e===l,onClick:function(){return r(e)}})})))}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(23));t.default=function(e){var t,n=e.color,r=e.containerRef,u=e.onClick,l=e.isSelected,d=void 0!==l&&l;return a.default.createElement("button",{ref:r,className:o.default([i.default.colorSwatch,(t={},t[i.default.selected]=d,t)]),"data-testid":"color-swatch",disabled:d,onClick:u,style:{backgroundColor:n.hexCode}},a.default.createElement("span",{className:i.default.srOnly},"Select "+n.label+" color"))}},function(e,t,n){"use strict";n.r(t),t.default={colorSwatch:"dv7iucTQq-ZhURUup-PuV",selected:"_1LbAgyiiE_1ujW90d-6iuu",srOnly:"_1etkuslhZVEPNsk1QghTEo"}},function(e,t,n){"use strict";n.r(t),t.default={colorPicker:"_2F1On-SA3mMkhZPFrDjWIc",horizontal:"_1WFYyMkkYLL73n__rPUUbv",vertical:"_1lIoa2bj_tbkQie0IpE2Ln"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ConfirmationModal=void 0;var a=n(26);Object.defineProperty(t,"ConfirmationModal",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=n(9),u=r(n(29));function l(e){var t,n=e.children,r=e.containerRef,l=e.header,d=e.isOpen,f=e.buttonsLeft,c=void 0===f?[]:f,s=e.buttonsRight,v=void 0===s?[]:s,_=e.onClose,p=void 0===_?function(){}:_,m=e.noPadding,h=void 0!==m&&m;return a.default.createElement(i.Modal,{containerRef:r,isOpen:d,onClose:p},a.default.createElement("div",{className:u.default.container},a.default.createElement("h1",{className:u.default.modalHeader},l),a.default.createElement("div",{className:o.default([u.default.modalContent,(t={},t[u.default.noPadding]=h,t)])},n),a.default.createElement("div",{className:u.default.modalButtonsContainer},a.default.createElement("div",{className:u.default.modalButtons},c),a.default.createElement("div",{className:u.default.modalButtons},v))))}l.displayName="ConfirmationModal",t.default=l},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var u=o(n(0)),l=n(77),d=i(n(1)),f=i(n(28));t.default=function(e){var t,n=e.children,r=e.containerRef,a=e.isOpen,o=e.button,i=e.transparent,c=void 0!==i&&i,s=e.noShadow,v=void 0!==s&&s,_=e.onClose,p=void 0===_?function(){}:_;l.useHotkeys("Escape",p);var m=u.useCallback((function(){p()}),[p]);return a&&u.default.createElement("div",{ref:r},u.default.createElement("div",{className:f.default.overlay,"data-testid":"modal-overlay",onClick:m}),u.default.createElement("div",{className:d.default([f.default.modal,(t={},t[f.default.transparent]=c,t[f.default.noShadow]=v,t)]),"data-testid":"modal"},n),o&&u.default.createElement("div",{className:f.default.modalButton},o))}},function(e,t,n){"use strict";n.r(t),t.default={overlay:"_20ZKGY4TwZxp0KZ6E7y4WB",modal:"_25LBN31_mI1I1uHDDP4O0I",transparent:"_3Z2Kl1rEHZQMLUsXF1f7lo",noShadow:"_3CfST-tn-tsvcodSxeliQq",modalButton:"_1eO0x3M0pN8-79IuYuT_Cl"}},function(e,t,n){"use strict";n.r(t),t.default={container:"KgC5pwtsHavuVOLubALae",modalHeader:"_1bTNXMR5mZFXs1o0uxkhRP",modalContent:"quP5o4Q9nlUo1fT7sbPVA",noPadding:"_1Ugo_DHST4RbWzIxHPhj7n",modalButtonsContainer:"_2bGL7XjDy6sE3JleU98hjy",modalButtons:"_3XffFeN9VEIpythmVJ2U8C"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.FloatingPanel=void 0;var a=n(31);Object.defineProperty(t,"FloatingPanel",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(32));t.default=function(e){var t,n=e.children,r=e.containerRef,u=e.layout,l=void 0===u?"column":u,d=e.placement,f=void 0===d?{horizontal:"center",vertical:"bottom",parent:"viewport"}:d,c="center"===f.horizontal?"horizontalCenter":f.horizontal,s="center"===f.vertical?"verticalCenter":f.vertical;return a.default.createElement("div",{ref:r,"data-testid":"floating-panel",className:o.default([i.default.container,i.default[c],i.default[s],i.default[l],(t={},t[i.default.fixed]="container"!==f.parent,t)])},n)}},function(e,t,n){"use strict";n.r(t),t.default={container:"_2r0FkYJ7SK1YjB3HKHMAih",row:"_3R-FF8eMu0CS4eNX3lTdCR",column:"_1oKOeAgZjwxNM3uGfLt6IO",fixed:"_3oQGWgSINbytb4uv92CSvT",plain:"iMf8od-bIqsHAvxofDuzb",transparent:"d2oyx5pysqj898aS8G3E8",top:"_11cPYq1dhQyzVIMZek1_Io",topEdge:"_2_ineCy1MQlYP6qMewd1z5",topOnEdge:"_1rvCsDod5blTOyAl4kDwN0",right:"_1SIYBcRgqS4VPhW9M80Y4z",rightEdge:"QA69f0D8bTCJHrDOr8m1r",rightOnEdge:"_2PiTUl0JYzECnO0851gz3a",bottom:"_305gBmTwAeXZfA_M9tsVNo",bottomEdge:"_1PcDXbLZ2XHPkei_H_r58p",bottomOnEdge:"_2vot4qpr58Wnb6pvHYnjkc",left:"sItgBV4WtDx4vZ3a-P4ix",leftEdge:"_1NJ1FzI_abKi-W6kc2r2c6",leftOnEdge:"_12EvwbaVQNWPZe37So8L_m",horizontalCenter:"_2jiSxEbCTKVzDteGQ1uoEf",verticalCenter:"_2f9D46BB-gezPvw8TZxJvp"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(34));t.default=function(e){var t,n=e.src,r=e.alt,u=e.containerRef,l=e.size,d=void 0===l?"medium":l,f=e.inverted,c=void 0!==f&&f;return a.default.createElement("img",{ref:u,className:o.default([i.default.icon,i.default[d],(t={},t[i.default.inverted]=c,t)]),crossOrigin:"anonymous","data-testid":"icon",alt:r,src:n})}},function(e,t,n){"use strict";n.r(t),t.default={icon:"_33cTM8i8qajFGy-00ty0Rw",small:"MUi3ikzcPZdo59AfoXdOF",medium:"_2VCKqy59NSFdfDiE0oxasz",large:"_2UUUf2n_a0PYpQ8kowKHzp",inverted:"_2qzUtU1Td_c58vM8ALqSVW"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.IconButton=void 0;var a=n(36);Object.defineProperty(t,"IconButton",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=n(4),u=r(n(37));t.default=function(e){var t,n=e.className,r=e.containerRef,l=e.src,d=e.alt,f=e.offsetSides,c=void 0===f?[]:f,s=e.onClick,v=void 0===s?function(){}:s,_=e.disabled,p=void 0!==_&&_,m=e.inverted,h=void 0!==m&&m,y=e.noShadow,b=void 0!==y&&y,O=e.noBorder,g=void 0!==O&&O,P=e.transparent,j=void 0!==P&&P,M=e.rounded,E=void 0!==M&&M,k=e.size,w=void 0===k?"medium":k,C=e.type,N=void 0===C?"button":C;return a.default.createElement("button",{ref:r,className:o.default([u.default.container,u.default[w],(t={},t[u.default.inverted]=h,t[u.default.rounded]=E,t[u.default.noShadow]=b,t[u.default.noBorder]=g,t[u.default.transparent]=j,t[u.default.topOffset]=E&&c.includes("top"),t[u.default.rightOffset]=E&&c.includes("right"),t[u.default.bottomOffset]=E&&c.includes("bottom"),t[u.default.leftOffset]=E&&c.includes("left"),t),n]),disabled:p,onClick:v,type:N,role:"button"},a.default.createElement(i.Icon,{src:l,alt:d,size:w,inverted:h}))}},function(e,t,n){"use strict";n.r(t),t.default={container:"RgyllXTqp3_jZ6A2Nbvg6",small:"_1w0hZlObeL7EG87zsL-9vN",medium:"EK1bvJZjW119Do79StL7I",large:"PgyQXK1yyCMq8BSaYCbch",rounded:"_3qqa1k0C9JMPsBRSz6Z0yY",topOffset:"_3VZP7DohhZ7z8fi4z-H8jN",rightOffset:"_2XXhJ3-cYcXbIVNmmnO8yH",bottomOffset:"ZJIX7Vq5musjd6s4hCSbP",leftOffset:"_1QVWiyivW9UxeoNu3Udnv6",inverted:"_2jZzXhnHqqbtum4dBdl1lK",noShadow:"_3fxvWiONFFYtMuDcXp8syu",noBorder:"_3EuxupnqOVuSoUsbKzNn",transparent:"_35bRIi8BtD4RKSJvZbj_sm"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.IconButtonLink=void 0;var a=n(39);Object.defineProperty(t,"IconButtonLink",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},a=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),u=o(n(1)),l=n(4),d=o(n(40));t.default=function(e){var t,n=e.as,o=e.containerRef,f=e.className,c=e.src,s=e.alt,v=e.inverted,_=void 0!==v&&v,p=e.noShadow,m=void 0!==p&&p,h=e.noBorder,y=void 0!==h&&h,b=e.transparent,O=void 0!==b&&b,g=e.rounded,P=void 0!==g&&g,j=e.offsetSides,M=void 0===j?[]:j,E=e.size,k=void 0===E?"medium":E,w=a(e,["as","containerRef","className","src","alt","inverted","noShadow","noBorder","transparent","rounded","offsetSides","size"]);return void 0===n&&(n="a"),i.default.createElement(n,r({ref:o,"data-testid":"icon-button-link",className:u.default([d.default.container,d.default[k],(t={},t[d.default.inverted]=_,t[d.default.rounded]=P,t[d.default.noShadow]=m,t[d.default.noBorder]=y,t[d.default.transparent]=O,t[d.default.topOffset]=P&&M.includes("top"),t[d.default.rightOffset]=P&&M.includes("right"),t[d.default.bottomOffset]=P&&M.includes("bottom"),t[d.default.leftOffset]=P&&M.includes("left"),t),f])},w),i.default.createElement(l.Icon,{src:c,alt:s,size:k,inverted:_}))}},function(e,t,n){"use strict";n.r(t),t.default={container:"_3wjxjCzv_lphdWm73JgAyp",small:"_32MYmZbHzUU0b3dMcmJsiM",large:"_2aYSSTUg8wvrADOS188xM",rounded:"_18ih67LL0n7Xl61gLG8s0k",topOffset:"_1p7h7W6QsDHpba6mgyWUL9",rightOffset:"_3fxMIB_Jz5CYIfwuZhQ28i",bottomOffset:"_113m4CWimLvsjU9xIxPq7i",leftOffset:"_6Chov2MoyUxyhWxKn368K",inverted:"_3eqOJQz4ue-eXLvq27AsY5",noShadow:"lF6D_V20x32v9ZysqwC68",noBorder:"_3s6qColLjpjl4Rro7mVTxS",transparent:"_2IZO9pK131U91cyKXixgxD"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Image=void 0;var a=n(42);Object.defineProperty(t,"Image",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.emptyImage=void 0;var u=o(n(0)),l=i(n(1)),d=i(n(43));t.emptyImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=",t.default=function(e){var n,r,a=e.src,o=e.alt,i=e.srcWidth,f=e.srcHeight,c=e.children,s=e.animation,v=e.containerRef,_=e.layout,p=void 0===_?"contain":_,m=u.useState(!1),h=m[0],y=m[1],b=u.useRef(null);return u.useEffect((function(){var e=new Image;return e.crossOrigin="anonymous",e.src=a,e.onload=function(){var e;null===(e=b.current)||void 0===e||e.setAttribute("src",a),y(!0)},function(){e.src="",delete e.onload,delete e.src,delete e.crossOrigin,e=null}}),[a]),c?u.default.createElement("div",{ref:v,className:l.default([d.default.container,d.default.hasOverlay])},u.default.createElement("img",{ref:b,className:l.default([d.default.image,d.default[p],(n={},n[d.default.fadeIn]="fadeIn"===s&&h,n[d.default.scaleUp]="scaleUp"===s&&h,n)]),crossOrigin:"anonymous","data-testid":"image",alt:o,src:t.emptyImage,width:i,height:f}),c&&u.default.createElement("div",{className:d.default.overlay},c)):u.default.createElement("img",{ref:b,className:l.default([d.default.image,d.default[p],(r={},r[d.default.fadeIn]="fadeIn"===s&&h,r[d.default.scaleUp]="scaleUp"===s&&h,r)]),crossOrigin:"anonymous","data-testid":"image",alt:o,src:t.emptyImage,width:i,height:f})}},function(e,t,n){"use strict";n.r(t),t.default={container:"_1V00Gpz_keqUWGEfZ74wjS",hasOverlay:"_2MtUfYpw5V8Uprxq_E_ySa",overlay:"z1DVHxj1ZPK73OIQRck7j",image:"_39OjTGWd7xmxcl6nuI-g2L",cover:"_3qKdp2mK6f7G5zAzXlzgrE",contain:"_2o_G4XbB-Qozbfuk4_V00h",stretchHorizontally:"_2xguDkGu1mR2yPaY-hzN8o",stretchVertically:"_19WMa3tqRxvUhDKFZ8Y2PB",fadeIn:"_36OS2GcsjwEgHP0o-8Ax1m",fadeInAnimation:"-eymN6hWzJnRx8Xhk1DWO",scaleUp:"_1UURABZnMlLf0KPUUD2RNz",scaleUpAnimation:"_3kotwV9jvpHSPmjtOUlg7M"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ListViewLinkItem=t.ListViewItem=t.ListView=void 0;var a=n(45);Object.defineProperty(t,"ListView",{enumerable:!0,get:function(){return r(a).default}});var o=n(47);Object.defineProperty(t,"ListViewItem",{enumerable:!0,get:function(){return r(o).default}});var i=n(48);Object.defineProperty(t,"ListViewLinkItem",{enumerable:!0,get:function(){return r(i).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(46));t.default=function(e){var t=e.children,n=e.className,r=e.containerRef,u=e.header,l=e.headerActions;return a.default.createElement("div",{ref:r,className:o.default([i.default.container,n])},(u||l)&&a.default.createElement("div",{className:i.default.header},u&&a.default.createElement("h3",{className:i.default.headerLabel},u),l),a.default.createElement("ul",{className:i.default.list},t))}},function(e,t,n){"use strict";n.r(t),t.default={container:"DcWoEbiol9px-FQA_TpOk",header:"_2javB8sADx6dDgqXN3MCLP",headerLabel:"_3iMOfIyNL1SEmv2J8ZDDmW",list:"_3_KmtbMPpPHgJFM9ZB_xnA"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=n(7),u=r(n(6));t.default=function(e){var t=e.children,n=e.active,r=void 0!==n&&n,l=e.disabled,d=void 0!==l&&l,f=e.transparent,c=void 0!==f&&f,s=e.noPadding,v=void 0!==s&&s,_=e.size,p=void 0===_?"medium":_,m=e.align,h=void 0===m?"center":m,y=e.onClick,b=void 0===y?function(){}:y;return a.default.createElement("li",{className:o.default([u.default.listViewItem])},a.default.createElement(i.Button,{onClick:b,disabled:d,inverted:r,transparent:c,noPadding:v,align:h,size:p,stretchHorizontally:!0,noShadow:!0,noBorder:!0},t))}},function(e,t,n){"use strict";n.r(t);var r=n(0),a=n.n(r),o=n(2),i=n.n(o),u=n(1),l=n(5),d=n(6);function f(){return(f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function c({children:e,active:t,transparent:n,noPadding:r,size:o,align:i,as:c,...s}){return a.a.createElement("li",{className:Object(u.default)([d.default.listViewItem])},a.a.createElement(l.ButtonLink,f({as:c,inverted:t,transparent:n,noPadding:r,align:i,size:o,stretchHorizontally:!0,noShadow:!0,noBorder:!0},s),e))}c.defaultProps={active:!1,transparent:!1,noPadding:!1,size:"medium",align:"center",as:"a"},c.propTypes={children:i.a.node.isRequired,as:i.a.elementType,active:i.a.bool,transparent:i.a.bool,noPadding:i.a.bool,align:i.a.oneOf(["left","center"]),size:i.a.string,onClick:i.a.func},t.default=c},function(e,t,n){"use strict";var r=n(50);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var u=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw u.name="Invariant Violation",u}}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MenuLinkItem=t.MenuItem=t.MenuContainer=t.Menu=void 0;var a=n(52);Object.defineProperty(t,"Menu",{enumerable:!0,get:function(){return r(a).default}});var o=n(54);Object.defineProperty(t,"MenuContainer",{enumerable:!0,get:function(){return r(o).default}});var i=n(56);Object.defineProperty(t,"MenuItem",{enumerable:!0,get:function(){return r(i).default}});var u=n(58);Object.defineProperty(t,"MenuLinkItem",{enumerable:!0,get:function(){return r(u).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(53));t.default=function(e){var t,n=e.children,r=e.containerRef,u=e.className,l=e.isOpen,d=void 0===l||l,f=e.placement,c=void 0===f?{horizontal:"left",vertical:"bottom"}:f,s=e.header;return a.default.createElement("div",{ref:r,className:o.default([i.default.menu,i.default[c.horizontal],i.default[c.vertical],(t={},t[i.default.open]=d,t),u])},s&&d&&a.default.createElement("h3",{className:i.default.menuHeader},s),a.default.createElement("ul",null,d&&n))}},function(e,t,n){"use strict";n.r(t),t.default={menu:"_1L5-pv_P6M2oGeoReMnO2J",top:"_31ldYGU4U0xpKuU_--Wcja",right:"ObHxMivl35i1KgI7Tggc9",left:"_2Gzc0XfL-h5NyHKVDv5r-k",bottom:"_3EDmiSfPRZMlHlSH9347lG",open:"_1J7pFkvkjQQRWkmg-0XTWZ",entrance:"_3cqesQGf9Cyu66DsoKtF0q",menuHeader:"_2oxsPOspAHPCeKTPHegeHU"}},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var u=o(n(0)),l=i(n(1)),d=i(n(55));t.default=u.forwardRef((function(e,t){var n=e.children,r=e.className;return u.default.createElement("div",{ref:t,className:l.default([d.default.menuContainer,r])},n)}))},function(e,t,n){"use strict";n.r(t),t.default={menuContainer:"_1_2sFFVzNXmJX_PTpHZgEL"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(57));t.default=function(e){var t,n=e.children,r=e.className,u=e.onClick,l=e.isActive,d=void 0!==l&&l;return a.default.createElement("li",{className:o.default([i.default.menuItem,(t={},t[i.default.active]=d,t),r]),onClick:u},n)}},function(e,t,n){"use strict";n.r(t),t.default={menuItem:"_2KsRCEgE_M7woXjhpRuVuo",active:"_1XnXZiArhvUeyXgqUaG-P7"}},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},a=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),u=o(n(1)),l=o(n(59));t.default=function(e){var t=e.as,n=e.children,o=e.className,d=a(e,["as","children","className"]);return void 0===t&&(t="a"),i.default.createElement(t,r({"data-testid":"menu-link-item",className:u.default([l.default.menuLinkItem,o])},d),n)}},function(e,t,n){"use strict";n.r(t),t.default={menuLinkItem:"_3z5t9CAhcAwVOtOVlA_4Gw",active:"_1Z-mPvewGUg484QPc9Hxq2",menuItem:"_3tIWAhMDtPzAH4bArwpROv"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Overlay=void 0;var a=n(61);Object.defineProperty(t,"Overlay",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(62));t.default=function(e){var t,n=e.children,r=e.containerRef,u=e.transparent,l=void 0!==u&&u,d=e.isFixed,f=void 0!==d&&d,c=e.onClick,s=void 0===c?function(){}:c;return a.default.createElement("div",{ref:r,"data-testid":"overlay",className:o.default([i.default.overlay,(t={},t[i.default.transparent]=l,t[i.default.fixed]=f,t)]),onClick:s},n)}},function(e,t,n){"use strict";n.r(t),t.default={overlay:"I0dm-Ldm-SiS0v5X-vo0g",transparent:"_3qdDdlynHLnofN1DKvvYQ8",fixed:"_1gXy9XS3F-JtqdjZBcoKSw"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.TextInput=void 0;var a=n(64);Object.defineProperty(t,"TextInput",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var u=o(n(0)),l=i(n(1)),d=n(3),f=i(n(65));t.default=function(e){var t=e.label,n=e.onChange,r=e.placeholder,a=e.value,o=e.name,i=e.inputRef,c=e.size,s=void 0===c?"medium":c,v=e.autoFocus,_=void 0!==v&&v,p=e.type,m=void 0===p?"text":p,h=u.useCallback((function(e){return n(e.target.value)}),[n]),y=u.default.createElement("input",{"data-testid":"input",ref:i,className:l.default([f.default.textInput,f.default[s]]),onChange:i?void 0:h,placeholder:r,name:o,type:m,value:a,autoFocus:_});return t?u.default.createElement(d.Label,{value:t},y):u.default.createElement(u.default.Fragment,null,y)}},function(e,t,n){"use strict";n.r(t),t.default={textInput:"_2ifFTByxvQF5eRYwMASae7",small:"_18iLNhqc5Tz5PPo2k4_TBh",medium:"_1jaRyjeatJRxEujgPGzWzx",large:"_34d5H3X8W0UgX9B8dtPRAO"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ToastContainer=t.Toast=void 0;var a=n(67);Object.defineProperty(t,"Toast",{enumerable:!0,get:function(){return r(a).default}});var o=n(69);Object.defineProperty(t,"ToastContainer",{enumerable:!0,get:function(){return r(o).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(68));t.default=function(e){var t=e.children,n=e.containerRef,r=e.image,u=e.buttons,l=e.onClick,d=void 0===l?function(){}:l;return a.default.createElement("div",{ref:n,className:o.default([i.default.toast]),onClick:d,"data-testid":"toast"},r&&a.default.createElement("img",{"data-testid":"toast-image",className:i.default.toastImage,src:r.src,alt:r.alt}),a.default.createElement("div",{className:i.default.toastContent},t),a.default.createElement("div",{className:i.default.toastButtons},u))}},function(e,t,n){"use strict";n.r(t),t.default={toast:"_2N3XiH8RVnEAYlzBD_JCqZ",entrance:"_19cw3zx6fU4RMGMaGM5zJZ",toastContent:"_2nd3UqZrAojeaI50xQuBNX",toastImage:"PHyzkAsBv9GyKyM_oULHO",toastButtons:"_2eo9rz8mbcI2OU6xKAz6pV"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(70));t.default=function(e){var t=e.children;return a.default.createElement("div",{className:o.default([i.default.toastContainer]),"data-testid":"toast-container"},t)}},function(e,t,n){"use strict";n.r(t),t.default={toastContainer:"_3RT2abfzK0rt-YjcrqXLnr"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Video=void 0;var a=n(72);Object.defineProperty(t,"Video",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(73));t.default=function(e){var t=e.src,n=e.type,r=e.children,u=e.containerRef,l=e.muted,d=void 0===l||l,f=e.loop,c=void 0===f||f,s=e.autoPlay,v=void 0===s||s,_=e.layout,p=void 0===_?"contain":_;return r?a.default.createElement("div",{ref:u,className:o.default([i.default.container,i.default.hasOverlay])},a.default.createElement("video",{"data-testid":"video",crossOrigin:"anonymous",className:o.default([i.default.video,i.default[p]]),muted:d,loop:c,autoPlay:v,playsInline:!0},a.default.createElement("source",{"data-testid":"source",src:t,type:n})),r&&a.default.createElement("div",{className:i.default.overlay},r)):a.default.createElement("video",{"data-testid":"video",crossOrigin:"anonymous",className:o.default([i.default.video,i.default[p]]),muted:d,loop:c,autoPlay:v,playsInline:!0},a.default.createElement("source",{"data-testid":"source",src:t,type:n}))}},function(e,t,n){"use strict";n.r(t),t.default={container:"_1d55wXuQKpt97PqQHYx5mW",hasOverlay:"_2DAM1x7P1wuYNP8TDmXGXc",video:"_3jQ_qpULtr0uFSTWbD0NVZ",cover:"_1qnVLheGzDI6No9_nwb7hl",contain:"_1X286NISI0wq2KK3djVhu3",stretchHorizontally:"Oegl-8gd2K5lz3mUGJ_Uz",stretchVertically:"_1-HzpTY_WtGcZc25wCoteY",overlay:"_2TvXsqAIUnGSqm6knJFhL3"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.useOutsideClick=t.useToggle=void 0;var a=n(75);Object.defineProperty(t,"useToggle",{enumerable:!0,get:function(){return r(a).default}});var o=n(76);Object.defineProperty(t,"useOutsideClick",{enumerable:!0,get:function(){return r(o).default}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.default=function(e){void 0===e&&(e=!1);var t=r.useState(e),n=t[0],a=t[1];return[n,r.useCallback((function(e){a("boolean"==typeof e?e:function(e){return!e})}),[n])]}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.default=function(e){var t=r.useRef();return r.useEffect((function(){var n=function(n){t.current&&!t.current.contains(n.target)&&e(n)};return document.addEventListener("click",n),document.addEventListener("touchstart",n),function(){document.removeEventListener("click",n),document.removeEventListener("touchstart",n)}}),[e]),t}},function(e,t,n){"use strict";n.r(t),n.d(t,"useHotkeys",(function(){return N})),n.d(t,"useIsHotkeyPressed",(function(){return C}));
1
+ !function(e,t){for(var n in t)e[n]=t[n]}(exports,function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=9)}([function(e,t){e.exports=require("react")},function(e,t,n){"use strict";n.r(t),n.d(t,"default",(function(){return a}));var r=Array.isArray;function a(e){var t="";if("string"==typeof e||"number"==typeof e)return e||"";if(r(e))for(var n,o=0;o<e.length;o++)""!==(n=a(e[o]))&&(t+=(t&&" ")+n);else for(var o in e)e.hasOwnProperty(o)&&e[o]&&(t+=(t&&" ")+o);return t}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Label=void 0;var a=n(16);Object.defineProperty(t,"Label",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Icon=void 0;var a=n(32);Object.defineProperty(t,"Icon",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Button=void 0;var a=n(10);Object.defineProperty(t,"Button",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ButtonLink=void 0;var a=n(12);Object.defineProperty(t,"ButtonLink",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ColorSwatch=void 0;var a=n(21);Object.defineProperty(t,"ColorSwatch",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Modal=void 0;var a=n(26);Object.defineProperty(t,"Modal",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";n.r(t),t.default={listViewItem:"_1fj2anieQ0JKxCAZkSaapk"}},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__exportStar||function(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||r(t,e,n)};Object.defineProperty(t,"__esModule",{value:!0}),a(n(4),t),a(n(5),t),a(n(14),t),a(n(19),t),a(n(6),t),a(n(24),t),a(n(29),t),a(n(3),t),a(n(34),t),a(n(37),t),a(n(40),t),a(n(43),t),a(n(48),t),a(n(7),t),a(n(57),t),a(n(2),t),a(n(60),t),a(n(63),t),a(n(68),t),a(n(71),t)},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(11));t.default=function(e){var t,n=e.children,r=e.className,u=e.onClick,l=e.containerRef,d=e.disabled,f=void 0!==d&&d,c=e.inverted,s=void 0!==c&&c,v=e.rounded,_=void 0!==v&&v,p=e.noShadow,m=void 0!==p&&p,h=e.noPadding,y=void 0!==h&&h,b=e.noBorder,O=void 0!==b&&b,g=e.transparent,P=void 0!==g&&g,j=e.stretchHorizontally,M=void 0!==j&&j,w=e.stretchVertically,E=void 0!==w&&w,k=e.offsetSides,C=void 0===k?[]:k,N=e.align,S=void 0===N?"center":N,x=e.size,D=void 0===x?"medium":x,I=e.type;return a.default.createElement("button",{ref:l,className:o.default([i.default.container,i.default[D],i.default[S],(t={},t[i.default.inverted]=s,t[i.default.rounded]=_,t[i.default.noShadow]=m,t[i.default.noPadding]=y,t[i.default.noBorder]=O,t[i.default.transparent]=P,t[i.default.stretchHorizontally]=M,t[i.default.stretchVertically]=E,t[i.default.leftOffset]=_&&C.includes("left"),t[i.default.rightOffset]=_&&C.includes("right"),t),r]),disabled:f,onClick:u,type:I,role:"button"},"string"!=typeof n&&Array.isArray(n)&&n.length?a.default.createElement("div",{className:i.default.content},n):n)}},function(e,t,n){"use strict";n.r(t),t.default={container:"_12w5WOF3Ksa2JB5-YOXyD7",left:"_2TFV72DrQx5JGShNcut4E-",small:"uTBrcjpHp96RCwF5UDzf0",large:"_14SSfs5SVWK7NxuZBqMgzB",inverted:"_2hZhhi8BgE_ekQVn9eX9DX",rounded:"VBDOScYcQnU2eytkA_Pc6",rightOffset:"_2GTY3XmaOu923M9sERs6ak",leftOffset:"_15Q0GGkgYJ_aLm01nGE5Yh",noShadow:"RewmDqjp6nUeEYHEKzTJD",noBorder:"nZqIUPT8cZ87BW4r8kxU",transparent:"_669lR4y2AH97A1ly5MYWO",stretchHorizontally:"_3icutXHwzIiowt7bVa3Yib",stretchVertically:"_2kCkxPkplP1xqjfkepoyNp",noPadding:"_3kNbCgcI-R_FFQ-3O6T0la",content:"_2bF1AScExskuOpuzd-cD_6"}},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},a=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),u=o(n(1)),l=o(n(13));t.default=function(e){var t,n=e.as,o=e.children,d=e.className,f=e.size,c=e.containerRef,s=e.inverted,v=void 0!==s&&s,_=e.rounded,p=void 0!==_&&_,m=e.transparent,h=void 0!==m&&m,y=e.noShadow,b=void 0!==y&&y,O=e.noPadding,g=void 0!==O&&O,P=e.noBorder,j=void 0!==P&&P,M=e.stretchHorizontally,w=void 0!==M&&M,E=e.stretchVertically,k=void 0!==E&&E,C=e.offsetSides,N=void 0===C?[]:C,S=e.align,x=void 0===S?"center":S,D=a(e,["as","children","className","size","containerRef","inverted","rounded","transparent","noShadow","noPadding","noBorder","stretchHorizontally","stretchVertically","offsetSides","align"]);return void 0===n&&(n="a"),i.default.createElement(n,r({ref:c,"data-testid":"button-link",className:u.default([l.default.container,l.default[f],l.default[x],(t={},t[l.default.inverted]=v,t[l.default.rounded]=p,t[l.default.noShadow]=b,t[l.default.noPadding]=g,t[l.default.noBorder]=j,t[l.default.transparent]=h,t[l.default.stretchHorizontally]=w,t[l.default.stretchVertically]=k,t[l.default.leftOffset]=p&&N.includes("left"),t[l.default.rightOffset]=p&&N.includes("right"),t),d])},D),"string"!=typeof o&&Array.isArray(o)&&o.length?i.default.createElement("div",{className:l.default.content},o):o)}},function(e,t,n){"use strict";n.r(t),t.default={container:"_2Qu9RaG55pWyJaT__3_oFA",left:"_3nx3gNPzj6LT_1hwnQHxOJ",small:"_2Lv_6xx2Gl335KT9Iooj3g",medium:"_3Hx8phaz3zLqNseApNIWZH",large:"_2-OEYFoIvls4N2CRuY-eJr",inverted:"_2pEGiK3KuPnEvwiOCDgFDa",rounded:"_1zyVKsmozPRtLHDt_j614N",rightOffset:"_1rYvtqnZyI4RrulC7KGcou",leftOffset:"_3Tr7eO4Es1Both2K_siTAN",noShadow:"_2wZ3GII3oNd8IX7aga-aMu",transparent:"_1TKgpSYl_A0ISkBcT1jly7",stretchHorizontally:"_3p2TY4nodViu9jx-LzGCNe",stretchVertically:"_3gEwkRprnS_IREu3KtNzMD",noPadding:"_2JpKJrumATcTTRT7xiff9i",noBorder:"_1P3P274wou6lEA87g6rFV2",content:"sNDrq3cX6I6Q-Ouusz7Ti"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Checkbox=void 0;var a=n(15);Object.defineProperty(t,"Checkbox",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var u=o(n(0)),l=i(n(1)),d=n(2),f=i(n(18));t.default=function(e){var t=e.label,n=e.onChange,r=e.placeholder,a=e.checked,o=e.disabled,i=e.name,c=e.indeterminate,s=e.size,v=void 0===s?"small":s,_=e.autoFocus,p=void 0!==_&&_,m=u.useCallback((function(e){return n(e.target.checked)}),[n]);return u.default.createElement(d.Label,{value:t},u.default.createElement("input",{"data-testid":"checkbox",ref:function(e){e&&(e.indeterminate=c)},checked:a,disabled:o,className:l.default([f.default.input,f.default[v]]),onChange:m,placeholder:r,name:i,type:"checkbox",autoFocus:p}))}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(17));t.default=function(e){var t=e.children,n=e.value,r=e.containerRef;return a.default.createElement("label",{ref:r,className:o.default.container},n,t)}},function(e,t,n){"use strict";n.r(t),t.default={container:"_15Dbs_X5IT9tkmAsMXPNVJ"}},function(e,t,n){"use strict";n.r(t),t.default={input:"_1p2hmjmM1qNZTZIiFHFIxu",small:"_1Ji__9U-D5UdW2NJWWUPrC",medium:"_3KJS2FRS2td90Qr6r33L28",large:"_1j7odCEEX2DkggpIZuF4MI"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ColorPicker=void 0;var a=n(20);Object.defineProperty(t,"ColorPicker",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=n(6),u=r(n(23));t.default=function(e){var t=e.colors,n=e.containerRef,r=e.onSelect,l=e.selectedColor,d=e.direction,f=void 0===d?"vertical":d;return a.default.createElement("div",{ref:n,className:o.default([u.default.colorPicker,u.default[f]])},t.map((function(e){return a.default.createElement(i.ColorSwatch,{key:e.key,color:e,isSelected:e===l,onClick:function(){return r(e)}})})))}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(22));t.default=function(e){var t,n=e.color,r=e.containerRef,u=e.onClick,l=e.isSelected,d=void 0!==l&&l;return a.default.createElement("button",{ref:r,className:o.default([i.default.colorSwatch,(t={},t[i.default.selected]=d,t)]),"data-testid":"color-swatch",disabled:d,onClick:u,style:{backgroundColor:n.hexCode}},a.default.createElement("span",{className:i.default.srOnly},"Select "+n.label+" color"))}},function(e,t,n){"use strict";n.r(t),t.default={colorSwatch:"dv7iucTQq-ZhURUup-PuV",selected:"_1LbAgyiiE_1ujW90d-6iuu",srOnly:"_1etkuslhZVEPNsk1QghTEo"}},function(e,t,n){"use strict";n.r(t),t.default={colorPicker:"_2F1On-SA3mMkhZPFrDjWIc",horizontal:"_1WFYyMkkYLL73n__rPUUbv",vertical:"_1lIoa2bj_tbkQie0IpE2Ln"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ConfirmationModal=void 0;var a=n(25);Object.defineProperty(t,"ConfirmationModal",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=n(7),u=r(n(28));function l(e){var t,n=e.children,r=e.containerRef,l=e.header,d=e.isOpen,f=e.buttonsLeft,c=void 0===f?[]:f,s=e.buttonsRight,v=void 0===s?[]:s,_=e.onClose,p=void 0===_?function(){}:_,m=e.noPadding,h=void 0!==m&&m;return a.default.createElement(i.Modal,{containerRef:r,isOpen:d,onClose:p},a.default.createElement("div",{className:u.default.container},a.default.createElement("h1",{className:u.default.modalHeader},l),a.default.createElement("div",{className:o.default([u.default.modalContent,(t={},t[u.default.noPadding]=h,t)])},n),a.default.createElement("div",{className:u.default.modalButtonsContainer},a.default.createElement("div",{className:u.default.modalButtons},c),a.default.createElement("div",{className:u.default.modalButtons},v))))}l.displayName="ConfirmationModal",t.default=l},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var u=o(n(0)),l=n(74),d=i(n(1)),f=i(n(27));t.default=function(e){var t,n=e.children,r=e.containerRef,a=e.isOpen,o=e.button,i=e.transparent,c=void 0!==i&&i,s=e.noShadow,v=void 0!==s&&s,_=e.onClose,p=void 0===_?function(){}:_;l.useHotkeys("Escape",p);var m=u.useCallback((function(){p()}),[p]);return a&&u.default.createElement("div",{ref:r},u.default.createElement("div",{className:f.default.overlay,"data-testid":"modal-overlay",onClick:m}),u.default.createElement("div",{className:d.default([f.default.modal,(t={},t[f.default.transparent]=c,t[f.default.noShadow]=v,t)]),"data-testid":"modal"},n),o&&u.default.createElement("div",{className:f.default.modalButton},o))}},function(e,t,n){"use strict";n.r(t),t.default={overlay:"_20ZKGY4TwZxp0KZ6E7y4WB",modal:"_25LBN31_mI1I1uHDDP4O0I",transparent:"_3Z2Kl1rEHZQMLUsXF1f7lo",noShadow:"_3CfST-tn-tsvcodSxeliQq",modalButton:"_1eO0x3M0pN8-79IuYuT_Cl"}},function(e,t,n){"use strict";n.r(t),t.default={container:"KgC5pwtsHavuVOLubALae",modalHeader:"_1bTNXMR5mZFXs1o0uxkhRP",modalContent:"quP5o4Q9nlUo1fT7sbPVA",noPadding:"_1Ugo_DHST4RbWzIxHPhj7n",modalButtonsContainer:"_2bGL7XjDy6sE3JleU98hjy",modalButtons:"_3XffFeN9VEIpythmVJ2U8C"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.FloatingPanel=void 0;var a=n(30);Object.defineProperty(t,"FloatingPanel",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(31));t.default=function(e){var t,n=e.children,r=e.containerRef,u=e.layout,l=void 0===u?"column":u,d=e.placement,f=void 0===d?{horizontal:"center",vertical:"bottom",parent:"viewport"}:d,c="center"===f.horizontal?"horizontalCenter":f.horizontal,s="center"===f.vertical?"verticalCenter":f.vertical;return a.default.createElement("div",{ref:r,"data-testid":"floating-panel",className:o.default([i.default.container,i.default[c],i.default[s],i.default[l],(t={},t[i.default.fixed]="container"!==f.parent,t)])},n)}},function(e,t,n){"use strict";n.r(t),t.default={container:"_2r0FkYJ7SK1YjB3HKHMAih",row:"_3R-FF8eMu0CS4eNX3lTdCR",column:"_1oKOeAgZjwxNM3uGfLt6IO",fixed:"_3oQGWgSINbytb4uv92CSvT",plain:"iMf8od-bIqsHAvxofDuzb",transparent:"d2oyx5pysqj898aS8G3E8",top:"_11cPYq1dhQyzVIMZek1_Io",topEdge:"_2_ineCy1MQlYP6qMewd1z5",topOnEdge:"_1rvCsDod5blTOyAl4kDwN0",right:"_1SIYBcRgqS4VPhW9M80Y4z",rightEdge:"QA69f0D8bTCJHrDOr8m1r",rightOnEdge:"_2PiTUl0JYzECnO0851gz3a",bottom:"_305gBmTwAeXZfA_M9tsVNo",bottomEdge:"_1PcDXbLZ2XHPkei_H_r58p",bottomOnEdge:"_2vot4qpr58Wnb6pvHYnjkc",left:"sItgBV4WtDx4vZ3a-P4ix",leftEdge:"_1NJ1FzI_abKi-W6kc2r2c6",leftOnEdge:"_12EvwbaVQNWPZe37So8L_m",horizontalCenter:"_2jiSxEbCTKVzDteGQ1uoEf",verticalCenter:"_2f9D46BB-gezPvw8TZxJvp"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(33));t.default=function(e){var t,n=e.src,r=e.alt,u=e.containerRef,l=e.size,d=void 0===l?"medium":l,f=e.inverted,c=void 0!==f&&f;return a.default.createElement("img",{ref:u,className:o.default([i.default.icon,i.default[d],(t={},t[i.default.inverted]=c,t)]),crossOrigin:"anonymous","data-testid":"icon",alt:r,src:n})}},function(e,t,n){"use strict";n.r(t),t.default={icon:"_33cTM8i8qajFGy-00ty0Rw",small:"MUi3ikzcPZdo59AfoXdOF",medium:"_2VCKqy59NSFdfDiE0oxasz",large:"_2UUUf2n_a0PYpQ8kowKHzp",inverted:"_2qzUtU1Td_c58vM8ALqSVW"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.IconButton=void 0;var a=n(35);Object.defineProperty(t,"IconButton",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=n(3),u=r(n(36));t.default=function(e){var t,n=e.className,r=e.containerRef,l=e.src,d=e.alt,f=e.offsetSides,c=void 0===f?[]:f,s=e.onClick,v=void 0===s?function(){}:s,_=e.disabled,p=void 0!==_&&_,m=e.inverted,h=void 0!==m&&m,y=e.noShadow,b=void 0!==y&&y,O=e.noBorder,g=void 0!==O&&O,P=e.transparent,j=void 0!==P&&P,M=e.rounded,w=void 0!==M&&M,E=e.size,k=void 0===E?"medium":E,C=e.type,N=void 0===C?"button":C;return a.default.createElement("button",{ref:r,className:o.default([u.default.container,u.default[k],(t={},t[u.default.inverted]=h,t[u.default.rounded]=w,t[u.default.noShadow]=b,t[u.default.noBorder]=g,t[u.default.transparent]=j,t[u.default.topOffset]=w&&c.includes("top"),t[u.default.rightOffset]=w&&c.includes("right"),t[u.default.bottomOffset]=w&&c.includes("bottom"),t[u.default.leftOffset]=w&&c.includes("left"),t),n]),disabled:p,onClick:v,type:N,role:"button"},a.default.createElement(i.Icon,{src:l,alt:d,size:k,inverted:h}))}},function(e,t,n){"use strict";n.r(t),t.default={container:"RgyllXTqp3_jZ6A2Nbvg6",small:"_1w0hZlObeL7EG87zsL-9vN",medium:"EK1bvJZjW119Do79StL7I",large:"PgyQXK1yyCMq8BSaYCbch",rounded:"_3qqa1k0C9JMPsBRSz6Z0yY",topOffset:"_3VZP7DohhZ7z8fi4z-H8jN",rightOffset:"_2XXhJ3-cYcXbIVNmmnO8yH",bottomOffset:"ZJIX7Vq5musjd6s4hCSbP",leftOffset:"_1QVWiyivW9UxeoNu3Udnv6",inverted:"_2jZzXhnHqqbtum4dBdl1lK",noShadow:"_3fxvWiONFFYtMuDcXp8syu",noBorder:"_3EuxupnqOVuSoUsbKzNn",transparent:"_35bRIi8BtD4RKSJvZbj_sm"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.IconButtonLink=void 0;var a=n(38);Object.defineProperty(t,"IconButtonLink",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},a=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),u=o(n(1)),l=n(3),d=o(n(39));t.default=function(e){var t,n=e.as,o=e.containerRef,f=e.className,c=e.src,s=e.alt,v=e.inverted,_=void 0!==v&&v,p=e.noShadow,m=void 0!==p&&p,h=e.noBorder,y=void 0!==h&&h,b=e.transparent,O=void 0!==b&&b,g=e.rounded,P=void 0!==g&&g,j=e.offsetSides,M=void 0===j?[]:j,w=e.size,E=void 0===w?"medium":w,k=a(e,["as","containerRef","className","src","alt","inverted","noShadow","noBorder","transparent","rounded","offsetSides","size"]);return void 0===n&&(n="a"),i.default.createElement(n,r({ref:o,"data-testid":"icon-button-link",className:u.default([d.default.container,d.default[E],(t={},t[d.default.inverted]=_,t[d.default.rounded]=P,t[d.default.noShadow]=m,t[d.default.noBorder]=y,t[d.default.transparent]=O,t[d.default.topOffset]=P&&M.includes("top"),t[d.default.rightOffset]=P&&M.includes("right"),t[d.default.bottomOffset]=P&&M.includes("bottom"),t[d.default.leftOffset]=P&&M.includes("left"),t),f])},k),i.default.createElement(l.Icon,{src:c,alt:s,size:E,inverted:_}))}},function(e,t,n){"use strict";n.r(t),t.default={container:"_3wjxjCzv_lphdWm73JgAyp",small:"_32MYmZbHzUU0b3dMcmJsiM",large:"_2aYSSTUg8wvrADOS188xM",rounded:"_18ih67LL0n7Xl61gLG8s0k",topOffset:"_1p7h7W6QsDHpba6mgyWUL9",rightOffset:"_3fxMIB_Jz5CYIfwuZhQ28i",bottomOffset:"_113m4CWimLvsjU9xIxPq7i",leftOffset:"_6Chov2MoyUxyhWxKn368K",inverted:"_3eqOJQz4ue-eXLvq27AsY5",noShadow:"lF6D_V20x32v9ZysqwC68",noBorder:"_3s6qColLjpjl4Rro7mVTxS",transparent:"_2IZO9pK131U91cyKXixgxD"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Image=void 0;var a=n(41);Object.defineProperty(t,"Image",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.emptyImage=void 0;var u=o(n(0)),l=i(n(1)),d=i(n(42));t.emptyImage="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=",t.default=function(e){var n,r,a=e.src,o=e.alt,i=e.srcWidth,f=e.srcHeight,c=e.children,s=e.animation,v=e.containerRef,_=e.layout,p=void 0===_?"contain":_,m=u.useState(!1),h=m[0],y=m[1],b=u.useRef(null);return u.useEffect((function(){var e=new Image;return e.crossOrigin="anonymous",e.src=a,e.onload=function(){var e;null===(e=b.current)||void 0===e||e.setAttribute("src",a),y(!0)},function(){e.src="",delete e.onload,delete e.src,delete e.crossOrigin,e=null}}),[a]),c?u.default.createElement("div",{ref:v,className:l.default([d.default.container,d.default.hasOverlay])},u.default.createElement("img",{ref:b,className:l.default([d.default.image,d.default[p],(n={},n[d.default.fadeIn]="fadeIn"===s&&h,n[d.default.scaleUp]="scaleUp"===s&&h,n)]),crossOrigin:"anonymous","data-testid":"image",alt:o,src:t.emptyImage,width:i,height:f}),c&&u.default.createElement("div",{className:d.default.overlay},c)):u.default.createElement("img",{ref:b,className:l.default([d.default.image,d.default[p],(r={},r[d.default.fadeIn]="fadeIn"===s&&h,r[d.default.scaleUp]="scaleUp"===s&&h,r)]),crossOrigin:"anonymous","data-testid":"image",alt:o,src:t.emptyImage,width:i,height:f})}},function(e,t,n){"use strict";n.r(t),t.default={container:"_1V00Gpz_keqUWGEfZ74wjS",hasOverlay:"_2MtUfYpw5V8Uprxq_E_ySa",overlay:"z1DVHxj1ZPK73OIQRck7j",image:"_39OjTGWd7xmxcl6nuI-g2L",cover:"_3qKdp2mK6f7G5zAzXlzgrE",contain:"_2o_G4XbB-Qozbfuk4_V00h",stretchHorizontally:"_2xguDkGu1mR2yPaY-hzN8o",stretchVertically:"_19WMa3tqRxvUhDKFZ8Y2PB",fadeIn:"_36OS2GcsjwEgHP0o-8Ax1m",fadeInAnimation:"-eymN6hWzJnRx8Xhk1DWO",scaleUp:"_1UURABZnMlLf0KPUUD2RNz",scaleUpAnimation:"_3kotwV9jvpHSPmjtOUlg7M"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ListViewLinkItem=t.ListViewItem=t.ListView=void 0;var a=n(44);Object.defineProperty(t,"ListView",{enumerable:!0,get:function(){return r(a).default}});var o=n(46);Object.defineProperty(t,"ListViewItem",{enumerable:!0,get:function(){return r(o).default}});var i=n(47);Object.defineProperty(t,"ListViewLinkItem",{enumerable:!0,get:function(){return r(i).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(45));t.default=function(e){var t=e.children,n=e.className,r=e.containerRef,u=e.header,l=e.headerActions;return a.default.createElement("div",{ref:r,className:o.default([i.default.container,n])},(u||l)&&a.default.createElement("div",{className:i.default.header},u&&a.default.createElement("h3",{className:i.default.headerLabel},u),l),a.default.createElement("ul",{className:i.default.list},t))}},function(e,t,n){"use strict";n.r(t),t.default={container:"DcWoEbiol9px-FQA_TpOk",header:"_2javB8sADx6dDgqXN3MCLP",headerLabel:"_3iMOfIyNL1SEmv2J8ZDDmW",list:"_3_KmtbMPpPHgJFM9ZB_xnA"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=n(4),u=r(n(8));t.default=function(e){var t=e.children,n=e.active,r=void 0!==n&&n,l=e.disabled,d=void 0!==l&&l,f=e.transparent,c=void 0!==f&&f,s=e.noPadding,v=void 0!==s&&s,_=e.size,p=void 0===_?"medium":_,m=e.align,h=void 0===m?"center":m,y=e.onClick,b=void 0===y?function(){}:y;return a.default.createElement("li",{className:o.default([u.default.listViewItem])},a.default.createElement(i.Button,{onClick:b,disabled:d,inverted:r,transparent:c,noPadding:v,align:h,size:p,stretchHorizontally:!0,noShadow:!0,noBorder:!0},t))}},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},a=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),u=o(n(1)),l=n(5),d=o(n(8));t.default=function(e){var t=e.children,n=e.as,o=e.active,f=void 0!==o&&o,c=e.transparent,s=void 0!==c&&c,v=e.noPadding,_=void 0!==v&&v,p=e.align,m=void 0===p?"center":p,h=e.size,y=void 0===h?"medium":h,b=a(e,["children","as","active","transparent","noPadding","align","size"]);return void 0===n&&(n="a"),i.default.createElement("li",{className:u.default([d.default.listViewItem])},i.default.createElement(l.ButtonLink,r({as:n,inverted:f,transparent:s,noPadding:_,align:m,size:y,stretchHorizontally:!0,noShadow:!0,noBorder:!0},b),t))}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.MenuLinkItem=t.MenuItem=t.MenuContainer=t.Menu=void 0;var a=n(49);Object.defineProperty(t,"Menu",{enumerable:!0,get:function(){return r(a).default}});var o=n(51);Object.defineProperty(t,"MenuContainer",{enumerable:!0,get:function(){return r(o).default}});var i=n(53);Object.defineProperty(t,"MenuItem",{enumerable:!0,get:function(){return r(i).default}});var u=n(55);Object.defineProperty(t,"MenuLinkItem",{enumerable:!0,get:function(){return r(u).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(50));t.default=function(e){var t,n=e.children,r=e.containerRef,u=e.className,l=e.isOpen,d=void 0===l||l,f=e.placement,c=void 0===f?{horizontal:"left",vertical:"bottom"}:f,s=e.header;return a.default.createElement("div",{ref:r,className:o.default([i.default.menu,i.default[c.horizontal],i.default[c.vertical],(t={},t[i.default.open]=d,t),u])},s&&d&&a.default.createElement("h3",{className:i.default.menuHeader},s),a.default.createElement("ul",null,d&&n))}},function(e,t,n){"use strict";n.r(t),t.default={menu:"_1L5-pv_P6M2oGeoReMnO2J",top:"_31ldYGU4U0xpKuU_--Wcja",right:"ObHxMivl35i1KgI7Tggc9",left:"_2Gzc0XfL-h5NyHKVDv5r-k",bottom:"_3EDmiSfPRZMlHlSH9347lG",open:"_1J7pFkvkjQQRWkmg-0XTWZ",entrance:"_3cqesQGf9Cyu66DsoKtF0q",menuHeader:"_2oxsPOspAHPCeKTPHegeHU"}},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var u=o(n(0)),l=i(n(1)),d=i(n(52));t.default=u.forwardRef((function(e,t){var n=e.children,r=e.className;return u.default.createElement("div",{ref:t,className:l.default([d.default.menuContainer,r])},n)}))},function(e,t,n){"use strict";n.r(t),t.default={menuContainer:"_1_2sFFVzNXmJX_PTpHZgEL"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(54));t.default=function(e){var t,n=e.children,r=e.className,u=e.onClick,l=e.isActive,d=void 0!==l&&l;return a.default.createElement("li",{className:o.default([i.default.menuItem,(t={},t[i.default.active]=d,t),r]),onClick:u},n)}},function(e,t,n){"use strict";n.r(t),t.default={menuItem:"_2KsRCEgE_M7woXjhpRuVuo",active:"_1XnXZiArhvUeyXgqUaG-P7"}},function(e,t,n){"use strict";var r=this&&this.__assign||function(){return(r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var a in t=arguments[n])Object.prototype.hasOwnProperty.call(t,a)&&(e[a]=t[a]);return e}).apply(this,arguments)},a=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(r=Object.getOwnPropertySymbols(e);a<r.length;a++)t.indexOf(r[a])<0&&Object.prototype.propertyIsEnumerable.call(e,r[a])&&(n[r[a]]=e[r[a]])}return n},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=o(n(0)),u=o(n(1)),l=o(n(56));t.default=function(e){var t=e.as,n=e.children,o=e.className,d=a(e,["as","children","className"]);return void 0===t&&(t="a"),i.default.createElement(t,r({"data-testid":"menu-link-item",className:u.default([l.default.menuLinkItem,o])},d),n)}},function(e,t,n){"use strict";n.r(t),t.default={menuLinkItem:"_3z5t9CAhcAwVOtOVlA_4Gw",active:"_1Z-mPvewGUg484QPc9Hxq2",menuItem:"_3tIWAhMDtPzAH4bArwpROv"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Overlay=void 0;var a=n(58);Object.defineProperty(t,"Overlay",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(59));t.default=function(e){var t,n=e.children,r=e.containerRef,u=e.transparent,l=void 0!==u&&u,d=e.isFixed,f=void 0!==d&&d,c=e.onClick,s=void 0===c?function(){}:c;return a.default.createElement("div",{ref:r,"data-testid":"overlay",className:o.default([i.default.overlay,(t={},t[i.default.transparent]=l,t[i.default.fixed]=f,t)]),onClick:s},n)}},function(e,t,n){"use strict";n.r(t),t.default={overlay:"I0dm-Ldm-SiS0v5X-vo0g",transparent:"_3qdDdlynHLnofN1DKvvYQ8",fixed:"_1gXy9XS3F-JtqdjZBcoKSw"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.TextInput=void 0;var a=n(61);Object.defineProperty(t,"TextInput",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n),Object.defineProperty(e,r,{enumerable:!0,get:function(){return t[n]}})}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&r(t,e,n);return a(t,e),t},i=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var u=o(n(0)),l=i(n(1)),d=n(2),f=i(n(62));t.default=function(e){var t=e.label,n=e.onChange,r=e.placeholder,a=e.value,o=e.name,i=e.inputRef,c=e.size,s=void 0===c?"medium":c,v=e.autoFocus,_=void 0!==v&&v,p=e.type,m=void 0===p?"text":p,h=u.useCallback((function(e){return n(e.target.value)}),[n]),y=u.default.createElement("input",{"data-testid":"input",ref:i,className:l.default([f.default.textInput,f.default[s]]),onChange:i?void 0:h,placeholder:r,name:o,type:m,value:a,autoFocus:_});return t?u.default.createElement(d.Label,{value:t},y):u.default.createElement(u.default.Fragment,null,y)}},function(e,t,n){"use strict";n.r(t),t.default={textInput:"_2ifFTByxvQF5eRYwMASae7",small:"_18iLNhqc5Tz5PPo2k4_TBh",medium:"_1jaRyjeatJRxEujgPGzWzx",large:"_34d5H3X8W0UgX9B8dtPRAO"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ToastContainer=t.Toast=void 0;var a=n(64);Object.defineProperty(t,"Toast",{enumerable:!0,get:function(){return r(a).default}});var o=n(66);Object.defineProperty(t,"ToastContainer",{enumerable:!0,get:function(){return r(o).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(65));t.default=function(e){var t=e.children,n=e.containerRef,r=e.image,u=e.buttons,l=e.onClick,d=void 0===l?function(){}:l;return a.default.createElement("div",{ref:n,className:o.default([i.default.toast]),onClick:d,"data-testid":"toast"},r&&a.default.createElement("img",{"data-testid":"toast-image",className:i.default.toastImage,src:r.src,alt:r.alt}),a.default.createElement("div",{className:i.default.toastContent},t),a.default.createElement("div",{className:i.default.toastButtons},u))}},function(e,t,n){"use strict";n.r(t),t.default={toast:"_2N3XiH8RVnEAYlzBD_JCqZ",entrance:"_19cw3zx6fU4RMGMaGM5zJZ",toastContent:"_2nd3UqZrAojeaI50xQuBNX",toastImage:"PHyzkAsBv9GyKyM_oULHO",toastButtons:"_2eo9rz8mbcI2OU6xKAz6pV"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(67));t.default=function(e){var t=e.children;return a.default.createElement("div",{className:o.default([i.default.toastContainer]),"data-testid":"toast-container"},t)}},function(e,t,n){"use strict";n.r(t),t.default={toastContainer:"_3RT2abfzK0rt-YjcrqXLnr"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Video=void 0;var a=n(69);Object.defineProperty(t,"Video",{enumerable:!0,get:function(){return r(a).default}})},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var a=r(n(0)),o=r(n(1)),i=r(n(70));t.default=function(e){var t=e.src,n=e.type,r=e.children,u=e.containerRef,l=e.muted,d=void 0===l||l,f=e.loop,c=void 0===f||f,s=e.autoPlay,v=void 0===s||s,_=e.layout,p=void 0===_?"contain":_;return r?a.default.createElement("div",{ref:u,className:o.default([i.default.container,i.default.hasOverlay])},a.default.createElement("video",{"data-testid":"video",crossOrigin:"anonymous",className:o.default([i.default.video,i.default[p]]),muted:d,loop:c,autoPlay:v,playsInline:!0},a.default.createElement("source",{"data-testid":"source",src:t,type:n})),r&&a.default.createElement("div",{className:i.default.overlay},r)):a.default.createElement("video",{"data-testid":"video",crossOrigin:"anonymous",className:o.default([i.default.video,i.default[p]]),muted:d,loop:c,autoPlay:v,playsInline:!0},a.default.createElement("source",{"data-testid":"source",src:t,type:n}))}},function(e,t,n){"use strict";n.r(t),t.default={container:"_1d55wXuQKpt97PqQHYx5mW",hasOverlay:"_2DAM1x7P1wuYNP8TDmXGXc",video:"_3jQ_qpULtr0uFSTWbD0NVZ",cover:"_1qnVLheGzDI6No9_nwb7hl",contain:"_1X286NISI0wq2KK3djVhu3",stretchHorizontally:"Oegl-8gd2K5lz3mUGJ_Uz",stretchVertically:"_1-HzpTY_WtGcZc25wCoteY",overlay:"_2TvXsqAIUnGSqm6knJFhL3"}},function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.useOutsideClick=t.useToggle=void 0;var a=n(72);Object.defineProperty(t,"useToggle",{enumerable:!0,get:function(){return r(a).default}});var o=n(73);Object.defineProperty(t,"useOutsideClick",{enumerable:!0,get:function(){return r(o).default}})},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.default=function(e){void 0===e&&(e=!1);var t=r.useState(e),n=t[0],a=t[1];return[n,r.useCallback((function(e){a("boolean"==typeof e?e:function(e){return!e})}),[n])]}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(0);t.default=function(e){var t=r.useRef();return r.useEffect((function(){var n=function(n){t.current&&!t.current.contains(n.target)&&e(n)};return document.addEventListener("click",n),document.addEventListener("touchstart",n),function(){document.removeEventListener("click",n),document.removeEventListener("touchstart",n)}}),[e]),t}},function(e,t,n){"use strict";n.r(t),n.d(t,"useHotkeys",(function(){return N})),n.d(t,"useIsHotkeyPressed",(function(){return C}));
2
2
  /*!
3
3
  * hotkeys-js v3.8.1
4
4
  * A simple micro-library for defining and dispatching keyboard shortcuts. It has no dependencies.
@@ -8,5 +8,5 @@
8
8
  *
9
9
  * Licensed under the MIT license.
10
10
  */
11
- var r="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function a(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent&&e.attachEvent("on".concat(t),(function(){n(window.event)}))}function o(e,t){for(var n=t.slice(0,t.length-1),r=0;r<n.length;r++)n[r]=e[n[r].toLowerCase()];return n}function i(e){"string"!=typeof e&&(e="");for(var t=(e=e.replace(/\s/g,"")).split(","),n=t.lastIndexOf("");n>=0;)t[n-1]+=",",t.splice(n,1),n=t.lastIndexOf("");return t}for(var u={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,"⇪":20,",":188,".":190,"/":191,"`":192,"-":r?173:189,"=":r?61:187,";":r?59:186,"'":222,"[":219,"]":221,"\\":220},l={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,cmd:91,command:91},d={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},f={16:!1,18:!1,17:!1,91:!1},c={},s=1;s<20;s++)u["f".concat(s)]=111+s;var v=[],_="all",p=[],m=function(e){return u[e.toLowerCase()]||l[e.toLowerCase()]||e.toUpperCase().charCodeAt(0)};function h(e){_=e||"all"}function y(){return _||"all"}var b=function(e){var t=e.key,n=e.scope,r=e.method,a=e.splitKey,u=void 0===a?"+":a;i(t).forEach((function(e){var t=e.split(u),a=t.length,i=t[a-1],d="*"===i?"*":m(i);if(c[d]){n||(n=y());var f=a>1?o(l,t):[];c[d]=c[d].map((function(e){return(!r||e.method===r)&&e.scope===n&&function(e,t){for(var n=e.length>=t.length?e:t,r=e.length>=t.length?t:e,a=!0,o=0;o<n.length;o++)-1===r.indexOf(n[o])&&(a=!1);return a}(e.mods,f)?{}:e}))}}))};function O(e,t,n){var r;if(t.scope===n||"all"===t.scope){for(var a in r=t.mods.length>0,f)Object.prototype.hasOwnProperty.call(f,a)&&(!f[a]&&t.mods.indexOf(+a)>-1||f[a]&&-1===t.mods.indexOf(+a))&&(r=!1);(0!==t.mods.length||f[16]||f[18]||f[17]||f[91])&&!r&&"*"!==t.shortcut||!1===t.method(e,t)&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}function g(e){var t=c["*"],n=e.keyCode||e.which||e.charCode;if(P.filter.call(this,e)){if(93!==n&&224!==n||(n=91),-1===v.indexOf(n)&&229!==n&&v.push(n),["ctrlKey","altKey","shiftKey","metaKey"].forEach((function(t){var n=d[t];e[t]&&-1===v.indexOf(n)?v.push(n):!e[t]&&v.indexOf(n)>-1?v.splice(v.indexOf(n),1):"metaKey"===t&&e[t]&&3===v.length&&(e.ctrlKey||e.shiftKey||e.altKey||(v=v.slice(v.indexOf(n))))})),n in f){for(var r in f[n]=!0,l)l[r]===n&&(P[r]=!0);if(!t)return}for(var a in f)Object.prototype.hasOwnProperty.call(f,a)&&(f[a]=e[d[a]]);e.getModifierState&&(!e.altKey||e.ctrlKey)&&e.getModifierState("AltGraph")&&(-1===v.indexOf(17)&&v.push(17),-1===v.indexOf(18)&&v.push(18),f[17]=!0,f[18]=!0);var o=y();if(t)for(var i=0;i<t.length;i++)t[i].scope===o&&("keydown"===e.type&&t[i].keydown||"keyup"===e.type&&t[i].keyup)&&O(e,t[i],o);if(n in c)for(var u=0;u<c[n].length;u++)if(("keydown"===e.type&&c[n][u].keydown||"keyup"===e.type&&c[n][u].keyup)&&c[n][u].key){for(var s=c[n][u],_=s.splitKey,p=s.key.split(_),h=[],b=0;b<p.length;b++)h.push(m(p[b]));h.sort().join("")===v.sort().join("")&&O(e,s,o)}}}function P(e,t,n){v=[];var r=i(e),u=[],d="all",s=document,_=0,h=!1,y=!0,b="+";for(void 0===n&&"function"==typeof t&&(n=t),"[object Object]"===Object.prototype.toString.call(t)&&(t.scope&&(d=t.scope),t.element&&(s=t.element),t.keyup&&(h=t.keyup),void 0!==t.keydown&&(y=t.keydown),"string"==typeof t.splitKey&&(b=t.splitKey)),"string"==typeof t&&(d=t);_<r.length;_++)u=[],(e=r[_].split(b)).length>1&&(u=o(l,e)),(e="*"===(e=e[e.length-1])?"*":m(e))in c||(c[e]=[]),c[e].push({keyup:h,keydown:y,scope:d,mods:u,shortcut:r[_],method:n,key:r[_],splitKey:b});void 0!==s&&!function(e){return p.indexOf(e)>-1}(s)&&window&&(p.push(s),a(s,"keydown",(function(e){g(e)})),a(window,"focus",(function(){v=[]})),a(s,"keyup",(function(e){g(e),function(e){var t=e.keyCode||e.which||e.charCode,n=v.indexOf(t);if(n>=0&&v.splice(n,1),e.key&&"meta"===e.key.toLowerCase()&&v.splice(0,v.length),93!==t&&224!==t||(t=91),t in f)for(var r in f[t]=!1,l)l[r]===t&&(P[r]=!1)}(e)})))}var j={setScope:h,getScope:y,deleteScope:function(e,t){var n,r;for(var a in e||(e=y()),c)if(Object.prototype.hasOwnProperty.call(c,a))for(n=c[a],r=0;r<n.length;)n[r].scope===e?n.splice(r,1):r++;y()===e&&h(t||"all")},getPressedKeyCodes:function(){return v.slice(0)},isPressed:function(e){return"string"==typeof e&&(e=m(e)),-1!==v.indexOf(e)},filter:function(e){var t=e.target||e.srcElement,n=t.tagName,r=!0;return!t.isContentEditable&&("INPUT"!==n&&"TEXTAREA"!==n&&"SELECT"!==n||t.readOnly)||(r=!1),r},unbind:function(e){if(e){if(Array.isArray(e))e.forEach((function(e){e.key&&b(e)}));else if("object"==typeof e)e.key&&b(e);else if("string"==typeof e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var a=n[0],o=n[1];"function"==typeof a&&(o=a,a=""),b({key:e,scope:a,method:o,splitKey:"+"})}}else Object.keys(c).forEach((function(e){return delete c[e]}))}};for(var M in j)Object.prototype.hasOwnProperty.call(j,M)&&(P[M]=j[M]);if("undefined"!=typeof window){var E=window.hotkeys;P.noConflict=function(e){return e&&window.hotkeys===P&&(window.hotkeys=E),P},window.hotkeys=P}var k=P,w=n(0);function C(){return k.isPressed}function N(e,t,n,r){n instanceof Array&&(r=n,n=void 0);var a=n||{},o=a.enableOnTags,i=a.filter,u=a.keyup,l=a.keydown,d=Object(w.useRef)(null),f=Object(w.useCallback)((function(e,n){return(null===d.current||document.activeElement===d.current)&&(t(e,n),!0)}),r?[d].concat(r):[d]);return Object(w.useEffect)((function(){return n&&n.enableOnTags&&(k.filter=function(e){var t=e.target,n=e.srcElement,r=t&&t.tagName||n&&n.tagName;return Boolean(r&&o&&o.includes(r))}),i&&(k.filter=i),u&&!0!==l&&(n.keydown=!1),k(e,n||{},f),function(){return k.unbind(e,f)}}),[f,n,o,i,e]),d}}]));
12
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwicmVhY3RcIiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2xhc3NjYXQvc3JjL2luZGV4LmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2luZGV4LmpzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xhYmVsL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb24vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQnV0dG9uTGluay9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9MaXN0Vmlld0l0ZW0ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b24vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTW9kYWwvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbi9CdXR0b24udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbi9CdXR0b24ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b25MaW5rL0J1dHRvbkxpbmsudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkxpbmsvQnV0dG9uTGluay5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NoZWNrYm94L2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NoZWNrYm94L0NoZWNrYm94LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MYWJlbC9MYWJlbC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGFiZWwvTGFiZWwubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9DaGVja2JveC9DaGVja2JveC5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL0NvbG9yUGlja2VyLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db2xvclN3YXRjaC9Db2xvclN3YXRjaC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvQ29sb3JTd2F0Y2gubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db2xvclBpY2tlci9Db2xvclBpY2tlci5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbmZpcm1hdGlvbk1vZGFsL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbmZpcm1hdGlvbk1vZGFsL0NvbmZpcm1hdGlvbk1vZGFsLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Nb2RhbC9Nb2RhbC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTW9kYWwvTW9kYWwubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0Zsb2F0aW5nUGFuZWwvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvRmxvYXRpbmdQYW5lbC9GbG9hdGluZ1BhbmVsLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9GbG9hdGluZ1BhbmVsL0Zsb2F0aW5nUGFuZWwubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uL0ljb24udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb24vSWNvbi5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb25CdXR0b24vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbi9JY29uQnV0dG9uLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uL0ljb25CdXR0b24ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uTGluay9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uTGluay9JY29uQnV0dG9uTGluay50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbkxpbmsvSWNvbkJ1dHRvbkxpbmsubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JbWFnZS9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JbWFnZS9JbWFnZS50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSW1hZ2UvSW1hZ2UubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9MaXN0Vmlldy50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXcubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9MaXN0Vmlld0l0ZW0udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xpc3RWaWV3L0xpc3RWaWV3TGlua0l0ZW0uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3Byb3AtdHlwZXMvZmFjdG9yeVdpdGhUaHJvd2luZ1NoaW1zLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9wcm9wLXR5cGVzL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldC5qcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudS50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51Q29udGFpbmVyLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVDb250YWluZXIubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVJdGVtLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVJdGVtLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51TGlua0l0ZW0udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUxpbmtJdGVtLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvT3ZlcmxheS9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9PdmVybGF5L092ZXJsYXkudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL092ZXJsYXkvT3ZlcmxheS5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RleHRJbnB1dC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9UZXh0SW5wdXQvVGV4dElucHV0LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9UZXh0SW5wdXQvVGV4dElucHV0Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVG9hc3QvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVG9hc3QvVG9hc3QudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RvYXN0L1RvYXN0Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVG9hc3QvVG9hc3RDb250YWluZXIudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RvYXN0L1RvYXN0Q29udGFpbmVyLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVmlkZW8vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVmlkZW8vVmlkZW8udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1ZpZGVvL1ZpZGVvLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2hvb2tzL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9ob29rcy91c2VUb2dnbGUudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2hvb2tzL3VzZU91dHNpZGVDbGljay50cyIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvaG90a2V5cy1qcy9kaXN0L2hvdGtleXMuZXNtLmpzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9yZWFjdC1ob3RrZXlzLWhvb2svZGlzdC9yZWFjdC1ob3RrZXlzLWhvb2suZXNtLmpzIl0sIm5hbWVzIjpbImluc3RhbGxlZE1vZHVsZXMiLCJfX3dlYnBhY2tfcmVxdWlyZV9fIiwibW9kdWxlSWQiLCJleHBvcnRzIiwibW9kdWxlIiwiaSIsImwiLCJtb2R1bGVzIiwiY2FsbCIsIm0iLCJjIiwiZCIsIm5hbWUiLCJnZXR0ZXIiLCJvIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJlbnVtZXJhYmxlIiwiZ2V0IiwiciIsIlN5bWJvbCIsInRvU3RyaW5nVGFnIiwidmFsdWUiLCJ0IiwibW9kZSIsIl9fZXNNb2R1bGUiLCJucyIsImNyZWF0ZSIsImtleSIsImJpbmQiLCJuIiwib2JqZWN0IiwicHJvcGVydHkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsInAiLCJzIiwicmVxdWlyZSIsImlzQXJyYXkiLCJBcnJheSIsImNjIiwib2JqIiwib3V0IiwidG1wIiwiayIsImxlbmd0aCIsImRlZmF1bHQiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsIm9uQ2xpY2siLCJjb250YWluZXJSZWYiLCJkaXNhYmxlZCIsImludmVydGVkIiwicm91bmRlZCIsIm5vU2hhZG93Iiwibm9QYWRkaW5nIiwibm9Cb3JkZXIiLCJ0cmFuc3BhcmVudCIsInN0cmV0Y2hIb3Jpem9udGFsbHkiLCJzdHJldGNoVmVydGljYWxseSIsIm9mZnNldFNpZGVzIiwiYWxpZ24iLCJzaXplIiwidHlwZSIsInJlZiIsImNvbnRhaW5lciIsImxlZnRPZmZzZXQiLCJpbmNsdWRlcyIsInJpZ2h0T2Zmc2V0Iiwicm9sZSIsImNvbnRlbnQiLCJDb21wb25lbnQiLCJwcm9wcyIsImxhYmVsIiwib25DaGFuZ2UiLCJwbGFjZWhvbGRlciIsImNoZWNrZWQiLCJpbmRldGVybWluYXRlIiwiYXV0b0ZvY3VzIiwiaGFuZGxlQ2hhbmdlIiwidXNlQ2FsbGJhY2siLCJlIiwidGFyZ2V0IiwiTGFiZWwiLCJpbnB1dFJlZiIsImlucHV0IiwiY29sb3JzIiwib25TZWxlY3QiLCJzZWxlY3RlZENvbG9yIiwiZGlyZWN0aW9uIiwiY29sb3JQaWNrZXIiLCJtYXAiLCJjb2xvciIsIkNvbG9yU3dhdGNoIiwiaXNTZWxlY3RlZCIsImNvbG9yU3dhdGNoIiwic2VsZWN0ZWQiLCJzdHlsZSIsImJhY2tncm91bmRDb2xvciIsImhleENvZGUiLCJzck9ubHkiLCJDb25maXJtYXRpb25Nb2RhbCIsImhlYWRlciIsImlzT3BlbiIsImJ1dHRvbnNMZWZ0IiwiYnV0dG9uc1JpZ2h0Iiwib25DbG9zZSIsIk1vZGFsIiwibW9kYWxIZWFkZXIiLCJtb2RhbENvbnRlbnQiLCJtb2RhbEJ1dHRvbnNDb250YWluZXIiLCJtb2RhbEJ1dHRvbnMiLCJkaXNwbGF5TmFtZSIsImJ1dHRvbiIsInVzZUhvdGtleXMiLCJoYW5kbGVPdmVybGF5Q2xpY2siLCJvdmVybGF5IiwibW9kYWwiLCJtb2RhbEJ1dHRvbiIsImxheW91dCIsInBsYWNlbWVudCIsImhvcml6b250YWwiLCJ2ZXJ0aWNhbCIsInBhcmVudCIsImhvcml6b250YWxQbGFjZW1lbnQiLCJ2ZXJ0aWNhbFBsYWNlbWVudCIsImZpeGVkIiwic3JjIiwiYWx0IiwiaWNvbiIsImNyb3NzT3JpZ2luIiwidG9wT2Zmc2V0IiwiYm90dG9tT2Zmc2V0IiwiSWNvbiIsImVtcHR5SW1hZ2UiLCJzcmNXaWR0aCIsInNyY0hlaWdodCIsImFuaW1hdGlvbiIsInVzZVN0YXRlIiwiaXNMb2FkZWQiLCJzZXRJc0xvYWRlZCIsImltYWdlUmVmIiwidXNlUmVmIiwidXNlRWZmZWN0IiwiaW1hZ2UiLCJJbWFnZSIsIm9ubG9hZCIsImN1cnJlbnQiLCJzZXRBdHRyaWJ1dGUiLCJoYXNPdmVybGF5IiwiZmFkZUluIiwic2NhbGVVcCIsIndpZHRoIiwiaGVpZ2h0IiwiaGVhZGVyQWN0aW9ucyIsImhlYWRlckxhYmVsIiwibGlzdCIsImFjdGl2ZSIsImxpc3RWaWV3SXRlbSIsIkJ1dHRvbiIsIkxpc3RWaWV3TGlua0l0ZW0iLCJhcyIsImNsYXNzY2F0Iiwic3R5bGVzIiwiZGVmYXVsdFByb3BzIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwibm9kZSIsImlzUmVxdWlyZWQiLCJlbGVtZW50VHlwZSIsImJvb2wiLCJvbmVPZiIsInN0cmluZyIsImZ1bmMiLCJSZWFjdFByb3BUeXBlc1NlY3JldCIsImVtcHR5RnVuY3Rpb24iLCJlbXB0eUZ1bmN0aW9uV2l0aFJlc2V0IiwicmVzZXRXYXJuaW5nQ2FjaGUiLCJzaGltIiwicHJvcE5hbWUiLCJjb21wb25lbnROYW1lIiwibG9jYXRpb24iLCJwcm9wRnVsbE5hbWUiLCJzZWNyZXQiLCJlcnIiLCJFcnJvciIsImdldFNoaW0iLCJSZWFjdFByb3BUeXBlcyIsImFycmF5IiwibnVtYmVyIiwic3ltYm9sIiwiYW55IiwiYXJyYXlPZiIsImVsZW1lbnQiLCJpbnN0YW5jZU9mIiwib2JqZWN0T2YiLCJvbmVPZlR5cGUiLCJzaGFwZSIsImV4YWN0IiwiY2hlY2tQcm9wVHlwZXMiLCJtZW51Iiwib3BlbiIsIm1lbnVIZWFkZXIiLCJmb3J3YXJkUmVmIiwibWVudUNvbnRhaW5lciIsImlzQWN0aXZlIiwibWVudUl0ZW0iLCJtZW51TGlua0l0ZW0iLCJpc0ZpeGVkIiwiaW5wdXRFbGVtZW50IiwidGV4dElucHV0IiwidW5kZWZpbmVkIiwiYnV0dG9ucyIsInRvYXN0IiwidG9hc3RJbWFnZSIsInRvYXN0Q29udGVudCIsInRvYXN0QnV0dG9ucyIsInRvYXN0Q29udGFpbmVyIiwibXV0ZWQiLCJsb29wIiwiYXV0b1BsYXkiLCJ2aWRlbyIsInBsYXlzSW5saW5lIiwiaW5pdGlhbFZhbHVlIiwic2V0VmFsdWUiLCJuZXdWYWx1ZSIsInByZXZWYWx1ZSIsImNhbGxiYWNrIiwiaGFuZGxlQ2xpY2siLCJldmVudCIsImNvbnRhaW5zIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImlzZmYiLCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiLCJ0b0xvd2VyQ2FzZSIsImluZGV4T2YiLCJhZGRFdmVudCIsIm1ldGhvZCIsImF0dGFjaEV2ZW50IiwiY29uY2F0Iiwid2luZG93IiwiZ2V0TW9kcyIsIm1vZGlmaWVyIiwibW9kcyIsInNsaWNlIiwiZ2V0S2V5cyIsImtleXMiLCJyZXBsYWNlIiwic3BsaXQiLCJpbmRleCIsImxhc3RJbmRleE9mIiwic3BsaWNlIiwiX2tleU1hcCIsImJhY2tzcGFjZSIsInRhYiIsImNsZWFyIiwiZW50ZXIiLCJyZXR1cm4iLCJlc2MiLCJlc2NhcGUiLCJzcGFjZSIsImxlZnQiLCJ1cCIsInJpZ2h0IiwiZG93biIsImRlbCIsImRlbGV0ZSIsImlucyIsImluc2VydCIsImhvbWUiLCJlbmQiLCJwYWdldXAiLCJwYWdlZG93biIsImNhcHNsb2NrIiwiJyIsIl9tb2RpZmllciIsInNoaWZ0Iiwib3B0aW9uIiwiY3RybCIsImNvbnRyb2wiLCJjbWQiLCJjb21tYW5kIiwibW9kaWZpZXJNYXAiLCIxNiIsIjE4IiwiMTciLCI5MSIsInNoaWZ0S2V5IiwiY3RybEtleSIsImFsdEtleSIsIm1ldGFLZXkiLCJfbW9kcyIsIl9oYW5kbGVycyIsIl9kb3duS2V5cyIsIl9zY29wZSIsImVsZW1lbnRIYXNCaW5kRXZlbnQiLCJjb2RlIiwieCIsInRvVXBwZXJDYXNlIiwiY2hhckNvZGVBdCIsInNldFNjb3BlIiwic2NvcGUiLCJnZXRTY29wZSIsImVhY2hVbmJpbmQiLCJfcmVmIiwiX3JlZiRzcGxpdEtleSIsInNwbGl0S2V5IiwiZm9yRWFjaCIsIm9yaWdpbktleSIsInVuYmluZEtleXMiLCJsZW4iLCJsYXN0S2V5Iiwia2V5Q29kZSIsInJlY29yZCIsImExIiwiYTIiLCJhcnIxIiwiYXJyMiIsImlzSW5kZXgiLCJjb21wYXJlQXJyYXkiLCJldmVudEhhbmRsZXIiLCJoYW5kbGVyIiwibW9kaWZpZXJzTWF0Y2giLCJ5Iiwic2hvcnRjdXQiLCJwcmV2ZW50RGVmYXVsdCIsInJldHVyblZhbHVlIiwic3RvcFByb3BhZ2F0aW9uIiwiY2FuY2VsQnViYmxlIiwiZGlzcGF0Y2giLCJhc3RlcmlzayIsIndoaWNoIiwiY2hhckNvZGUiLCJob3RrZXlzIiwiZmlsdGVyIiwidGhpcyIsInB1c2giLCJrZXlOYW1lIiwia2V5TnVtIiwiZ2V0TW9kaWZpZXJTdGF0ZSIsImtleWRvd24iLCJrZXl1cCIsIl9pIiwia2V5U2hvcnRjdXQiLCJfZG93bktleXNDdXJyZW50IiwiYSIsInNvcnQiLCJqb2luIiwidG9TdHJpbmciLCJpc0VsZW1lbnRCaW5kIiwiY2xlYXJNb2RpZmllciIsIl9hcGkiLCJkZWxldGVTY29wZSIsIm5ld1Njb3BlIiwiaGFuZGxlcnMiLCJnZXRQcmVzc2VkS2V5Q29kZXMiLCJpc1ByZXNzZWQiLCJzcmNFbGVtZW50IiwidGFnTmFtZSIsImZsYWciLCJpc0NvbnRlbnRFZGl0YWJsZSIsInJlYWRPbmx5IiwidW5iaW5kIiwia2V5c0luZm8iLCJpbmZvIiwiX2xlbiIsImFyZ3VtZW50cyIsImFyZ3MiLCJfa2V5IiwiX2hvdGtleXMiLCJub0NvbmZsaWN0IiwiZGVlcCIsInVzZUlzSG90a2V5UHJlc3NlZCIsIm9wdGlvbnMiLCJkZXBzIiwiZW5hYmxlT25UYWdzIiwibWVtb2lzZWRDYWxsYmFjayIsImtleWJvYXJkRXZlbnQiLCJob3RrZXlzRXZlbnQiLCJhY3RpdmVFbGVtZW50IiwiX3JlZjIiLCJ0YXJnZXRUYWdOYW1lIiwiQm9vbGVhbiJdLCJtYXBwaW5ncyI6IjZEQUNFLElBQUlBLEVBQW1CLEdBR3ZCLFNBQVNDLEVBQW9CQyxHQUc1QixHQUFHRixFQUFpQkUsR0FDbkIsT0FBT0YsRUFBaUJFLEdBQVVDLFFBR25DLElBQUlDLEVBQVNKLEVBQWlCRSxHQUFZLENBQ3pDRyxFQUFHSCxFQUNISSxHQUFHLEVBQ0hILFFBQVMsSUFVVixPQU5BSSxFQUFRTCxHQUFVTSxLQUFLSixFQUFPRCxRQUFTQyxFQUFRQSxFQUFPRCxRQUFTRixHQUcvREcsRUFBT0UsR0FBSSxFQUdKRixFQUFPRCxRQTBEZixPQXJEQUYsRUFBb0JRLEVBQUlGLEVBR3hCTixFQUFvQlMsRUFBSVYsRUFHeEJDLEVBQW9CVSxFQUFJLFNBQVNSLEVBQVNTLEVBQU1DLEdBQzNDWixFQUFvQmEsRUFBRVgsRUFBU1MsSUFDbENHLE9BQU9DLGVBQWViLEVBQVNTLEVBQU0sQ0FBRUssWUFBWSxFQUFNQyxJQUFLTCxLQUtoRVosRUFBb0JrQixFQUFJLFNBQVNoQixHQUNYLG9CQUFYaUIsUUFBMEJBLE9BQU9DLGFBQzFDTixPQUFPQyxlQUFlYixFQUFTaUIsT0FBT0MsWUFBYSxDQUFFQyxNQUFPLFdBRTdEUCxPQUFPQyxlQUFlYixFQUFTLGFBQWMsQ0FBRW1CLE9BQU8sS0FRdkRyQixFQUFvQnNCLEVBQUksU0FBU0QsRUFBT0UsR0FF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QWdCQSxFQUFhdlQsU0FBUzZULE1BSXRFL0MsSUFBUSxFQUFRQSxPQUFTQSxHQUV6Qk8sSUFBcUIsSUFBWkQsSUFDWGlDLEVBQVFqQyxTQUFVLEdBR3BCLEVBQVE5RixFQUFNK0gsR0FBVyxHQUFJRyxHQUN0QixXQUNMLE9BQU8sRUFBUWQsT0FBT3BILEVBQU1rSSxNQUU3QixDQUFDQSxFQUFrQkgsRUFBU0UsRUFBY3pDLEVBQVF4RixJQUM5Q3pMIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGVyIH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG4gXHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuIFx0XHR9XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gXHR9O1xuXG4gXHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3RcbiBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuIFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4gXHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3RcbiBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbiBcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpO1xuIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuIFx0XHRpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuIFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7XG4gXHRcdGlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTtcbiBcdFx0cmV0dXJuIG5zO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDEwKTtcbiIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcInJlYWN0XCIpOyIsInZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBjYyhvYmopIHtcbiAgdmFyIG91dCA9IFwiXCJcblxuICBpZiAodHlwZW9mIG9iaiA9PT0gXCJzdHJpbmdcIiB8fCB0eXBlb2Ygb2JqID09PSBcIm51bWJlclwiKSByZXR1cm4gb2JqIHx8IFwiXCJcblxuICBpZiAoaXNBcnJheShvYmopKVxuICAgIGZvciAodmFyIGsgPSAwLCB0bXA7IGsgPCBvYmoubGVuZ3RoOyBrKyspIHtcbiAgICAgIGlmICgodG1wID0gY2Mob2JqW2tdKSkgIT09IFwiXCIpIHtcbiAgICAgICAgb3V0ICs9IChvdXQgJiYgXCIgXCIpICsgdG1wXG4gICAgICB9XG4gICAgfVxuICBlbHNlXG4gICAgZm9yICh2YXIgayBpbiBvYmopIHtcbiAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoaykgJiYgb2JqW2tdKSBvdXQgKz0gKG91dCAmJiBcIiBcIikgKyBrXG4gICAgfVxuXG4gIHJldHVybiBvdXRcbn1cbiIsIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgdmFyIFJlYWN0SXMgPSByZXF1aXJlKCdyZWFjdC1pcycpO1xuXG4gIC8vIEJ5IGV4cGxpY2l0bHkgdXNpbmcgYHByb3AtdHlwZXNgIHlvdSBhcmUgb3B0aW5nIGludG8gbmV3IGRldmVsb3BtZW50IGJlaGF2aW9yLlxuICAvLyBodHRwOi8vZmIubWUvcHJvcC10eXBlcy1pbi1wcm9kXG4gIHZhciB0aHJvd09uRGlyZWN0QWNjZXNzID0gdHJ1ZTtcbiAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCcuL2ZhY3RvcnlXaXRoVHlwZUNoZWNrZXJzJykoUmVhY3RJcy5pc0VsZW1lbnQsIHRocm93T25EaXJlY3RBY2Nlc3MpO1xufSBlbHNlIHtcbiAgLy8gQnkgZXhwbGljaXRseSB1c2luZyBgcHJvcC10eXBlc2AgeW91IGFyZSBvcHRpbmcgaW50byBuZXcgcHJvZHVjdGlvbiBiZWhhdmlvci5cbiAgLy8gaHR0cDovL2ZiLm1lL3Byb3AtdHlwZXMtaW4tcHJvZFxuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vZmFjdG9yeVdpdGhUaHJvd2luZ1NoaW1zJykoKTtcbn1cbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgTGFiZWwgfSBmcm9tIFwiLi9MYWJlbFwiO1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBJY29uIH0gZnJvbSBcIi4vSWNvblwiO1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBCdXR0b25MaW5rIH0gZnJvbSBcIi4vQnV0dG9uTGlua1wiO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJsaXN0Vmlld0l0ZW1cIjpcIl8xZmoyYW5pZVEwSkt4Q0Faa1NhYXBrXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgQnV0dG9uIH0gZnJvbSBcIi4vQnV0dG9uXCI7XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIENvbG9yU3dhdGNoIH0gZnJvbSBcIi4vQ29sb3JTd2F0Y2hcIjtcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgTW9kYWwgfSBmcm9tIFwiLi9Nb2RhbFwiO1xuIiwiZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9CdXR0b25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvQnV0dG9uTGlua1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9DaGVja2JveFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9Db2xvclBpY2tlclwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9Db2xvclN3YXRjaFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9GbG9hdGluZ1BhbmVsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0ljb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvSWNvbkJ1dHRvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9JY29uQnV0dG9uTGlua1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9JbWFnZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9MaXN0Vmlld1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9NZW51XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL01vZGFsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL092ZXJsYXlcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvTGFiZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvVGV4dElucHV0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL1RvYXN0XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL1ZpZGVvXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9ob29rc1wiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0LCBTeW50aGV0aWNFdmVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0J1dHRvbi5tb2R1bGUuY3NzXCI7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgQnV0dG9uUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxCdXR0b25FbGVtZW50PjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBpbnZlcnRlZD86IGJvb2xlYW47XG4gIHJvdW5kZWQ/OiBib29sZWFuO1xuICBub1NoYWRvdz86IGJvb2xlYW47XG4gIG5vUGFkZGluZz86IGJvb2xlYW47XG4gIG5vQm9yZGVyPzogYm9vbGVhbjtcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xuICBzdHJldGNoSG9yaXpvbnRhbGx5PzogYm9vbGVhbjtcbiAgc3RyZXRjaFZlcnRpY2FsbHk/OiBib29sZWFuO1xuICBvbkNsaWNrPzogKGV2ZW50PzogU3ludGhldGljRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB2b2lkO1xuICBzaXplPzogU2l6ZTtcbiAgdHlwZT86IFwic3VibWl0XCIgfCBcInJlc2V0XCIgfCBcImJ1dHRvblwiO1xuICBhbGlnbj86IFwibGVmdFwiIHwgXCJjZW50ZXJcIjtcbiAgb2Zmc2V0U2lkZXM/OiBBcnJheTxcImxlZnRcIiB8IFwicmlnaHRcIj47XG59O1xuXG5mdW5jdGlvbiBCdXR0b24oe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBvbkNsaWNrLFxuICBjb250YWluZXJSZWYsXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIGludmVydGVkID0gZmFsc2UsXG4gIHJvdW5kZWQgPSBmYWxzZSxcbiAgbm9TaGFkb3cgPSBmYWxzZSxcbiAgbm9QYWRkaW5nID0gZmFsc2UsXG4gIG5vQm9yZGVyID0gZmFsc2UsXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXG4gIHN0cmV0Y2hIb3Jpem9udGFsbHkgPSBmYWxzZSxcbiAgc3RyZXRjaFZlcnRpY2FsbHkgPSBmYWxzZSxcbiAgb2Zmc2V0U2lkZXMgPSBbXSxcbiAgYWxpZ24gPSBcImNlbnRlclwiLFxuICBzaXplID0gXCJtZWRpdW1cIixcbiAgdHlwZSxcbn06IEJ1dHRvblByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGJ1dHRvblxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgc3R5bGVzLmNvbnRhaW5lcixcbiAgICAgICAgc3R5bGVzW3NpemVdLFxuICAgICAgICBzdHlsZXNbYWxpZ25dLFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlcy5pbnZlcnRlZF06IGludmVydGVkLFxuICAgICAgICAgIFtzdHlsZXMucm91bmRlZF06IHJvdW5kZWQsXG4gICAgICAgICAgW3N0eWxlcy5ub1NoYWRvd106IG5vU2hhZG93LFxuICAgICAgICAgIFtzdHlsZXMubm9QYWRkaW5nXTogbm9QYWRkaW5nLFxuICAgICAgICAgIFtzdHlsZXMubm9Cb3JkZXJdOiBub0JvcmRlcixcbiAgICAgICAgICBbc3R5bGVzLnRyYW5zcGFyZW50XTogdHJhbnNwYXJlbnQsXG4gICAgICAgICAgW3N0eWxlcy5zdHJldGNoSG9yaXpvbnRhbGx5XTogc3RyZXRjaEhvcml6b250YWxseSxcbiAgICAgICAgICBbc3R5bGVzLnN0cmV0Y2hWZXJ0aWNhbGx5XTogc3RyZXRjaFZlcnRpY2FsbHksXG4gICAgICAgICAgW3N0eWxlcy5sZWZ0T2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcImxlZnRcIiksXG4gICAgICAgICAgW3N0eWxlcy5yaWdodE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJyaWdodFwiKSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgXSl9XG4gICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgdHlwZT17dHlwZX1cbiAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgID5cbiAgICAgIHt0eXBlb2YgY2hpbGRyZW4gIT09IFwic3RyaW5nXCIgJiZcbiAgICAgIEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pICYmXG4gICAgICBjaGlsZHJlbi5sZW5ndGggPyAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuY29udGVudH0+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgKSA6IChcbiAgICAgICAgY2hpbGRyZW5cbiAgICAgICl9XG4gICAgPC9idXR0b24+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEJ1dHRvbjtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfMTJ3NVdPRjNLc2EySkI1LVlPWHlEN1wiLFwibGVmdFwiOlwiXzJURlY3MkRyUXg1SkdTaE5jdXQ0RS1cIixcInNtYWxsXCI6XCJ1VEJyY2pwSHA5NlJDd0Y1VUR6ZjBcIixcImxhcmdlXCI6XCJfMTRTU2ZzNVNWV0s3Tnh1WkJxTWd6QlwiLFwiaW52ZXJ0ZWRcIjpcIl8yaFpoaGk4QmdFX2VrUVZuOWVYOURYXCIsXCJyb3VuZGVkXCI6XCJWQkRPU2NZY1FuVTJleXRrQV9QYzZcIixcInJpZ2h0T2Zmc2V0XCI6XCJfMkdUWTNYbWFPdTkyM005c0VSczZha1wiLFwibGVmdE9mZnNldFwiOlwiXzE1UTBHR2tnWUpfYUxtMDFuR0U1WWhcIixcIm5vU2hhZG93XCI6XCJSZXdtRHFqcDZuVWVFWUhFS3pUSkRcIixcIm5vQm9yZGVyXCI6XCJuWnFJVVBUOGNaODdCVzRyOGt4VVwiLFwidHJhbnNwYXJlbnRcIjpcIl82NjlsUjR5MkFIOTdBMWx5NU1ZV09cIixcInN0cmV0Y2hIb3Jpem9udGFsbHlcIjpcIl8zaWN1dFhId3pJaW93dDdiVmEzWWliXCIsXCJzdHJldGNoVmVydGljYWxseVwiOlwiXzJrQ2t4UGtwbFAxeHFqZmtlcG95TnBcIixcIm5vUGFkZGluZ1wiOlwiXzNrTmJDZ2NJLVJfRkZRLTNPNlQwbGFcIixcImNvbnRlbnRcIjpcIl8yYkYxQVNjRXhza3VPcHV6ZC1jRF82XCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIEVsZW1lbnRUeXBlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9CdXR0b25MaW5rLm1vZHVsZS5jc3NcIjtcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxudHlwZSBPZmZzZXRTaWRlID0gXCJsZWZ0XCIgfCBcInJpZ2h0XCI7XG5cbnR5cGUgQnV0dG9uTGlua1Byb3BzID1cbiAgfCB7XG4gICAgICBhcz86IEVsZW1lbnRUeXBlO1xuICAgICAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgICAgIGNsYXNzTmFtZT86IHN0cmluZztcbiAgICAgIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRWxlbWVudD47XG4gICAgICBpbnZlcnRlZD86IGJvb2xlYW47XG4gICAgICByb3VuZGVkPzogYm9vbGVhbjtcbiAgICAgIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcbiAgICAgIG5vU2hhZG93PzogYm9vbGVhbjtcbiAgICAgIG5vUGFkZGluZz86IGJvb2xlYW47XG4gICAgICBub0JvcmRlcj86IGJvb2xlYW47XG4gICAgICBzdHJldGNoSG9yaXpvbnRhbGx5PzogYm9vbGVhbjtcbiAgICAgIHN0cmV0Y2hWZXJ0aWNhbGx5PzogYm9vbGVhbjtcbiAgICAgIHNpemU/OiBTaXplO1xuICAgICAgb2Zmc2V0U2lkZXM/OiBBcnJheTxPZmZzZXRTaWRlPjtcbiAgICAgIGFsaWduPzogXCJsZWZ0XCIgfCBcImNlbnRlclwiO1xuICAgIH1cbiAgfCBhbnk7XG5cbmZ1bmN0aW9uIEJ1dHRvbkxpbmsoe1xuICBhczogQ29tcG9uZW50LFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBzaXplLFxuICBjb250YWluZXJSZWYsXG4gIGludmVydGVkID0gZmFsc2UsXG4gIHJvdW5kZWQgPSBmYWxzZSxcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcbiAgbm9TaGFkb3cgPSBmYWxzZSxcbiAgbm9QYWRkaW5nID0gZmFsc2UsXG4gIG5vQm9yZGVyID0gZmFsc2UsXG4gIHN0cmV0Y2hIb3Jpem9udGFsbHkgPSBmYWxzZSxcbiAgc3RyZXRjaFZlcnRpY2FsbHkgPSBmYWxzZSxcbiAgb2Zmc2V0U2lkZXMgPSBbXSxcbiAgYWxpZ24gPSBcImNlbnRlclwiLFxuICAuLi5wcm9wc1xufTogQnV0dG9uTGlua1Byb3BzKSB7XG4gIGlmICh0eXBlb2YgQ29tcG9uZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgQ29tcG9uZW50ID0gXCJhXCI7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDb21wb25lbnRcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJidXR0b24tbGlua1wiXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgc3R5bGVzLmNvbnRhaW5lcixcbiAgICAgICAgc3R5bGVzW3NpemVdLFxuICAgICAgICBzdHlsZXNbYWxpZ25dLFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlcy5pbnZlcnRlZF06IGludmVydGVkLFxuICAgICAgICAgIFtzdHlsZXMucm91bmRlZF06IHJvdW5kZWQsXG4gICAgICAgICAgW3N0eWxlcy5ub1NoYWRvd106IG5vU2hhZG93LFxuICAgICAgICAgIFtzdHlsZXMubm9QYWRkaW5nXTogbm9QYWRkaW5nLFxuICAgICAgICAgIFtzdHlsZXMubm9Cb3JkZXJdOiBub0JvcmRlcixcbiAgICAgICAgICBbc3R5bGVzLnRyYW5zcGFyZW50XTogdHJhbnNwYXJlbnQsXG4gICAgICAgICAgW3N0eWxlcy5zdHJldGNoSG9yaXpvbnRhbGx5XTogc3RyZXRjaEhvcml6b250YWxseSxcbiAgICAgICAgICBbc3R5bGVzLnN0cmV0Y2hWZXJ0aWNhbGx5XTogc3RyZXRjaFZlcnRpY2FsbHksXG4gICAgICAgICAgW3N0eWxlcy5sZWZ0T2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcImxlZnRcIiksXG4gICAgICAgICAgW3N0eWxlcy5yaWdodE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJyaWdodFwiKSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgXSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAge3R5cGVvZiBjaGlsZHJlbiAhPT0gXCJzdHJpbmdcIiAmJlxuICAgICAgQXJyYXkuaXNBcnJheShjaGlsZHJlbikgJiZcbiAgICAgIGNoaWxkcmVuLmxlbmd0aCA/IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5jb250ZW50fT57Y2hpbGRyZW59PC9kaXY+XG4gICAgICApIDogKFxuICAgICAgICBjaGlsZHJlblxuICAgICAgKX1cbiAgICA8L0NvbXBvbmVudD5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQnV0dG9uTGluaztcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfMlF1OVJhRzU1cFd5SmFUX18zX29GQVwiLFwibGVmdFwiOlwiXzNueDNnTlB6ajZMVF8xaHduUUh4T0pcIixcInNtYWxsXCI6XCJfMkx2XzZ4eDJHbDMzNUtUOUlvb2ozZ1wiLFwibWVkaXVtXCI6XCJfM0h4OHBoYXozekxxTnNlQXBOSVdaSFwiLFwibGFyZ2VcIjpcIl8yLU9FWUZvSXZsczROMkNSdVktZUpyXCIsXCJpbnZlcnRlZFwiOlwiXzJwRUdpSzNLdVBuRXZ3aU9DRGdGRGFcIixcInJvdW5kZWRcIjpcIl8xenlWS3Ntb3pQUnRMSER0X2o2MTROXCIsXCJyaWdodE9mZnNldFwiOlwiXzFyWXZ0cW5aeUk0UnJ1bEM3S0djb3VcIixcImxlZnRPZmZzZXRcIjpcIl8zVHI3ZU80RXMxQm90aDJLX3NpVEFOXCIsXCJub1NoYWRvd1wiOlwiXzJ3WjNHSUkzb05kOElYN2FnYS1hTXVcIixcInRyYW5zcGFyZW50XCI6XCJfMVRLZ3BTWWxfQTBJU2tCY1Qxamx5N1wiLFwic3RyZXRjaEhvcml6b250YWxseVwiOlwiXzNwMlRZNG5vZFZpdTlqeC1MekdDTmVcIixcInN0cmV0Y2hWZXJ0aWNhbGx5XCI6XCJfM2dFd2tScHJuU19JUkV1M0t0TnpNRFwiLFwibm9QYWRkaW5nXCI6XCJfMkpwS0pydW1BVGNUVFJUN3hpZmY5aVwiLFwibm9Cb3JkZXJcIjpcIl8xUDNQMjc0d291NmxFQTg3ZzZyRlYyXCIsXCJjb250ZW50XCI6XCJzTkRycTNjWDZJNlEtT3V1c3o3VGlcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBDaGVja2JveCB9IGZyb20gXCIuL0NoZWNrYm94XCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgdXNlQ2FsbGJhY2ssIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgeyBMYWJlbCB9IGZyb20gXCIuLi9MYWJlbFwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9DaGVja2JveC5tb2R1bGUuY3NzXCI7XG5pbXBvcnQgeyBTaXplLCBUZXh0SW5wdXRUeXBlIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgQ2hlY2tib3hQcm9wcyA9IHtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG9uQ2hhbmdlOiAodmFsdWU6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBjaGVja2VkPzogYm9vbGVhbjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBuYW1lPzogc3RyaW5nO1xuICBzaXplPzogU2l6ZTtcbiAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcbiAgaW5kZXRlcm1pbmF0ZT86IGJvb2xlYW47XG59O1xuXG5mdW5jdGlvbiBDaGVja2JveCh7XG4gIGxhYmVsLFxuICBvbkNoYW5nZSxcbiAgcGxhY2Vob2xkZXIsXG4gIGNoZWNrZWQsXG4gIGRpc2FibGVkLFxuICBuYW1lLFxuICBpbmRldGVybWluYXRlLFxuICBzaXplID0gXCJzbWFsbFwiLFxuICBhdXRvRm9jdXMgPSBmYWxzZSxcbn06IENoZWNrYm94UHJvcHMpIHtcbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKGU6IFJlYWN0LkZvcm1FdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT5cbiAgICAgIG9uQ2hhbmdlKChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS5jaGVja2VkKSxcbiAgICBbb25DaGFuZ2VdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8TGFiZWwgdmFsdWU9e2xhYmVsfT5cbiAgICAgIDxpbnB1dFxuICAgICAgICBkYXRhLXRlc3RpZD1cImNoZWNrYm94XCJcbiAgICAgICAgcmVmPXsoaW5wdXRSZWYpID0+IHtcbiAgICAgICAgICBpZiAoaW5wdXRSZWYpIHtcbiAgICAgICAgICAgIGlucHV0UmVmLmluZGV0ZXJtaW5hdGUgPSBpbmRldGVybWluYXRlO1xuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgICAgY2hlY2tlZD17Y2hlY2tlZH1cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuaW5wdXQsIHN0eWxlc1tzaXplXV0pfVxuICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICAgIG5hbWU9e25hbWV9XG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgIGF1dG9Gb2N1cz17YXV0b0ZvY3VzfVxuICAgICAgLz5cbiAgICA8L0xhYmVsPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBDaGVja2JveDtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWZPYmplY3QsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0xhYmVsLm1vZHVsZS5jc3NcIjtcblxudHlwZSBMYWJlbElucHV0UHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTExhYmVsRWxlbWVudD47XG4gIHZhbHVlOiBzdHJpbmc7XG59O1xuXG5mdW5jdGlvbiBMYWJlbCh7IGNoaWxkcmVuLCB2YWx1ZSwgY29udGFpbmVyUmVmIH06IExhYmVsSW5wdXRQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxsYWJlbCByZWY9e2NvbnRhaW5lclJlZn0gY2xhc3NOYW1lPXtzdHlsZXMuY29udGFpbmVyfT5cbiAgICAgIHt2YWx1ZX1cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2xhYmVsPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBMYWJlbDtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfMTVEYnNfWDVJVDl0a21Bc01YUE5WSlwifTsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImlucHV0XCI6XCJfMXAyaG1qbU0xcU5aVFpJaUZIRkl4dVwiLFwic21hbGxcIjpcIl8xSmlfXzlVLUQ1VWRXMk5KV1dVUHJDXCIsXCJtZWRpdW1cIjpcIl8zS0pTMkZSUzJ0ZDkwUXI2cjMzTDI4XCIsXCJsYXJnZVwiOlwiXzFqN29kQ0VFWDJEa2dncEladUY0TUlcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBDb2xvclBpY2tlciB9IGZyb20gXCIuL0NvbG9yUGlja2VyXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCB7IENvbG9yU3dhdGNoIH0gZnJvbSBcIi4uL0NvbG9yU3dhdGNoXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0NvbG9yUGlja2VyLm1vZHVsZS5jc3NcIjtcbmltcG9ydCB7IENvbG9yIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgQ29sb3JQaWNrZXJQcm9wcyA9IHtcbiAgY29sb3JzOiBDb2xvcltdO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBkaXJlY3Rpb24/OiBcImhvcml6b250YWxcIiB8IFwidmVydGljYWxcIjtcbiAgb25TZWxlY3Q6IChjb2xvcjogQ29sb3IpID0+IHZvaWQ7XG4gIHNlbGVjdGVkQ29sb3I/OiBDb2xvcjtcbn07XG5cbmZ1bmN0aW9uIENvbG9yUGlja2VyKHtcbiAgY29sb3JzLFxuICBjb250YWluZXJSZWYsXG4gIG9uU2VsZWN0LFxuICBzZWxlY3RlZENvbG9yLFxuICBkaXJlY3Rpb24gPSBcInZlcnRpY2FsXCIsXG59OiBDb2xvclBpY2tlclByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuY29sb3JQaWNrZXIsIHN0eWxlc1tkaXJlY3Rpb25dXSl9XG4gICAgPlxuICAgICAge2NvbG9ycy5tYXAoKGNvbG9yOiBDb2xvcikgPT4ge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxDb2xvclN3YXRjaFxuICAgICAgICAgICAga2V5PXtjb2xvci5rZXl9XG4gICAgICAgICAgICBjb2xvcj17Y29sb3J9XG4gICAgICAgICAgICBpc1NlbGVjdGVkPXtjb2xvciA9PT0gc2VsZWN0ZWRDb2xvcn1cbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uU2VsZWN0KGNvbG9yKX1cbiAgICAgICAgICAvPlxuICAgICAgICApO1xuICAgICAgfSl9XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbG9yUGlja2VyO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0NvbG9yU3dhdGNoLm1vZHVsZS5jc3NcIjtcbmltcG9ydCB7IENvbG9yIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgQ29sb3JTd2F0Y2hQcm9wcyA9IHtcbiAgY29sb3I6IENvbG9yO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBpc1NlbGVjdGVkPzogYm9vbGVhbjtcbiAgb25DbGljazogKCkgPT4gdm9pZDtcbn07XG5cbmZ1bmN0aW9uIENvbG9yU3dhdGNoKHtcbiAgY29sb3IsXG4gIGNvbnRhaW5lclJlZixcbiAgb25DbGljayxcbiAgaXNTZWxlY3RlZCA9IGZhbHNlLFxufTogQ29sb3JTd2F0Y2hQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5jb2xvclN3YXRjaCxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuc2VsZWN0ZWRdOiBpc1NlbGVjdGVkLFxuICAgICAgICB9LFxuICAgICAgXSl9XG4gICAgICBkYXRhLXRlc3RpZD1cImNvbG9yLXN3YXRjaFwiXG4gICAgICBkaXNhYmxlZD17aXNTZWxlY3RlZH1cbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICBzdHlsZT17eyBiYWNrZ3JvdW5kQ29sb3I6IGNvbG9yLmhleENvZGUgfX1cbiAgICA+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9e3N0eWxlcy5zck9ubHl9PntgU2VsZWN0ICR7Y29sb3IubGFiZWx9IGNvbG9yYH08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IENvbG9yU3dhdGNoO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb2xvclN3YXRjaFwiOlwiZHY3aXVjVFFxLVpoVVJVdXAtUHVWXCIsXCJzZWxlY3RlZFwiOlwiXzFMYkFneWlpRV8xdWpXOTBkLTZpdXVcIixcInNyT25seVwiOlwiXzFldGt1c2xoWlZFUE5zazFRZ2hURW9cIn07IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb2xvclBpY2tlclwiOlwiXzJGMU9uLVNBM21Na2haUEZyRGpXSWNcIixcImhvcml6b250YWxcIjpcIl8xV0ZZeU1ra1lMTDczbl9fclBVVWJ2XCIsXCJ2ZXJ0aWNhbFwiOlwiXzFsSW9hMmJqX3Ria1FpZTBJcEUyTG5cIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBDb25maXJtYXRpb25Nb2RhbCB9IGZyb20gXCIuL0NvbmZpcm1hdGlvbk1vZGFsXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3RFbGVtZW50LCBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgeyBNb2RhbCB9IGZyb20gXCIuLi9Nb2RhbFwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9Db25maXJtYXRpb25Nb2RhbC5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgQ29uZmlybWF0aW9uTW9kYWxQcm9wcyA9IHtcbiAgYnV0dG9uc0xlZnQ/OiBSZWFjdEVsZW1lbnRbXTtcbiAgYnV0dG9uc1JpZ2h0PzogUmVhY3RFbGVtZW50W107XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBoZWFkZXI6IHN0cmluZztcbiAgaXNPcGVuOiBib29sZWFuO1xuICBub1BhZGRpbmc/OiBib29sZWFuO1xuICBvbkNsb3NlPzogKCkgPT4gdm9pZDtcbn07XG5cbmZ1bmN0aW9uIENvbmZpcm1hdGlvbk1vZGFsKHtcbiAgY2hpbGRyZW4sXG4gIGNvbnRhaW5lclJlZixcbiAgaGVhZGVyLFxuICBpc09wZW4sXG4gIGJ1dHRvbnNMZWZ0ID0gW10sXG4gIGJ1dHRvbnNSaWdodCA9IFtdLFxuICBvbkNsb3NlID0gKCkgPT4ge30sXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxufTogQ29uZmlybWF0aW9uTW9kYWxQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxNb2RhbCBjb250YWluZXJSZWY9e2NvbnRhaW5lclJlZn0gaXNPcGVuPXtpc09wZW59IG9uQ2xvc2U9e29uQ2xvc2V9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5jb250YWluZXJ9PlxuICAgICAgICA8aDEgY2xhc3NOYW1lPXtzdHlsZXMubW9kYWxIZWFkZXJ9PntoZWFkZXJ9PC9oMT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICAgICAgc3R5bGVzLm1vZGFsQ29udGVudCxcbiAgICAgICAgICAgIHsgW3N0eWxlcy5ub1BhZGRpbmddOiBub1BhZGRpbmcgfSxcbiAgICAgICAgICBdKX1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMubW9kYWxCdXR0b25zQ29udGFpbmVyfT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm1vZGFsQnV0dG9uc30+e2J1dHRvbnNMZWZ0fTwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMubW9kYWxCdXR0b25zfT57YnV0dG9uc1JpZ2h0fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvTW9kYWw+XG4gICk7XG59XG5cbkNvbmZpcm1hdGlvbk1vZGFsLmRpc3BsYXlOYW1lID0gXCJDb25maXJtYXRpb25Nb2RhbFwiO1xuXG5leHBvcnQgZGVmYXVsdCBDb25maXJtYXRpb25Nb2RhbDtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IHVzZUhvdGtleXMgfSBmcm9tIFwicmVhY3QtaG90a2V5cy1ob29rXCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTW9kYWwubW9kdWxlLmNzc1wiO1xuXG50eXBlIE1vZGFsUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGlzT3BlbjogYm9vbGVhbjtcbiAgb25DbG9zZT86ICgpID0+IHZvaWQ7XG4gIGJ1dHRvbj86IFJlYWN0Tm9kZTtcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xuICBub1NoYWRvdz86IGJvb2xlYW47XG59O1xuXG5mdW5jdGlvbiBNb2RhbCh7XG4gIGNoaWxkcmVuLFxuICBjb250YWluZXJSZWYsXG4gIGlzT3BlbixcbiAgYnV0dG9uLFxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxuICBub1NoYWRvdyA9IGZhbHNlLFxuICBvbkNsb3NlID0gKCkgPT4ge30sXG59OiBNb2RhbFByb3BzKSB7XG4gIHVzZUhvdGtleXMoXCJFc2NhcGVcIiwgb25DbG9zZSk7XG5cbiAgY29uc3QgaGFuZGxlT3ZlcmxheUNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIG9uQ2xvc2UoKTtcbiAgfSwgW29uQ2xvc2VdKTtcblxuICByZXR1cm4gKFxuICAgIGlzT3BlbiAmJiAoXG4gICAgICA8ZGl2IHJlZj17Y29udGFpbmVyUmVmfT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLm92ZXJsYXl9XG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJtb2RhbC1vdmVybGF5XCJcbiAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVPdmVybGF5Q2xpY2t9XG4gICAgICAgIC8+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgICAgc3R5bGVzLm1vZGFsLCBcbiAgICAgICAgICB7XG4gICAgICAgICAgICBbc3R5bGVzLnRyYW5zcGFyZW50XTogdHJhbnNwYXJlbnQsIFxuICAgICAgICAgICAgW3N0eWxlcy5ub1NoYWRvd106IG5vU2hhZG93XG4gICAgICAgICAgfVxuICAgICAgICBdKX0gZGF0YS10ZXN0aWQ9XCJtb2RhbFwiPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIHtidXR0b24gJiYgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5tb2RhbEJ1dHRvbn0+e2J1dHRvbn08L2Rpdj59XG4gICAgICA8L2Rpdj5cbiAgICApXG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1vZGFsO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJvdmVybGF5XCI6XCJfMjBaS0dZNFR3WnhwMEtaNkU3eTRXQlwiLFwibW9kYWxcIjpcIl8yNUxCTjMxX21JMUkxdUhERFA0TzBJXCIsXCJ0cmFuc3BhcmVudFwiOlwiXzNaMktsMXJFSFpRTUxVc1hGMWY3bG9cIixcIm5vU2hhZG93XCI6XCJfM0NmU1QtdG4tdHN2Y29kU3hlbGlRcVwiLFwibW9kYWxCdXR0b25cIjpcIl8xZU8weDNNMHBOOC03OUl1WXVUX0NsXCJ9OyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJLZ0M1cHd0c0hhdnVWT0x1YkFMYWVcIixcIm1vZGFsSGVhZGVyXCI6XCJfMWJUTlhNUjVtWkZYczFvMHV4a2hSUFwiLFwibW9kYWxDb250ZW50XCI6XCJxdVA1bzRROW5sVW8xZlQ3c2JQVkFcIixcIm5vUGFkZGluZ1wiOlwiXzFVZ29fREhTVDRSYld6SXhIUGhqN25cIixcIm1vZGFsQnV0dG9uc0NvbnRhaW5lclwiOlwiXzJiR0w3WGpEeTZzRTNKbGVVOThoanlcIixcIm1vZGFsQnV0dG9uc1wiOlwiXzNYZmZGZU45VkVJcHl0aG1WSjJVOENcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBGbG9hdGluZ1BhbmVsIH0gZnJvbSBcIi4vRmxvYXRpbmdQYW5lbFwiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vRmxvYXRpbmdQYW5lbC5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgUGxhY2VtZW50ID0ge1xuICBob3Jpem9udGFsOlxuICAgIHwgXCJyaWdodFwiXG4gICAgfCBcInJpZ2h0RWRnZVwiXG4gICAgfCBcInJpZ2h0T25FZGdlXCJcbiAgICB8IFwibGVmdFwiXG4gICAgfCBcImxlZnRFZGdlXCJcbiAgICB8IFwibGVmdE9uRWRnZVwiXG4gICAgfCBcImxlZnRPbkVkZ2VcIlxuICAgIHwgXCJjZW50ZXJcIjtcbiAgdmVydGljYWw6XG4gICAgfCBcInRvcFwiXG4gICAgfCBcInRvcEVkZ2VcIlxuICAgIHwgXCJib3R0b21cIlxuICAgIHwgXCJib3R0b21FZGdlXCJcbiAgICB8IFwiYm90dG9tT25FZGdlXCJcbiAgICB8IFwiY2VudGVyXCI7XG4gIHBhcmVudDogXCJ2aWV3cG9ydFwiIHwgXCJjb250YWluZXJcIjtcbn07XG5cbnR5cGUgRmxvYXRpbmdQYW5lbFByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBsYXlvdXQ/OiBcImNvbHVtblwiIHwgXCJyb3dcIjtcbiAgcGxhY2VtZW50PzogUGxhY2VtZW50O1xufTtcblxuZnVuY3Rpb24gRmxvYXRpbmdQYW5lbCh7XG4gIGNoaWxkcmVuLFxuICBjb250YWluZXJSZWYsXG4gIGxheW91dCA9IFwiY29sdW1uXCIsXG4gIHBsYWNlbWVudCA9IHsgaG9yaXpvbnRhbDogXCJjZW50ZXJcIiwgdmVydGljYWw6IFwiYm90dG9tXCIsIHBhcmVudDogXCJ2aWV3cG9ydFwiIH0sXG59OiBGbG9hdGluZ1BhbmVsUHJvcHMpIHtcbiAgY29uc3QgaG9yaXpvbnRhbFBsYWNlbWVudCA9XG4gICAgcGxhY2VtZW50Lmhvcml6b250YWwgPT09IFwiY2VudGVyXCJcbiAgICAgID8gXCJob3Jpem9udGFsQ2VudGVyXCJcbiAgICAgIDogcGxhY2VtZW50Lmhvcml6b250YWw7XG5cbiAgY29uc3QgdmVydGljYWxQbGFjZW1lbnQgPVxuICAgIHBsYWNlbWVudC52ZXJ0aWNhbCA9PT0gXCJjZW50ZXJcIiA/IFwidmVydGljYWxDZW50ZXJcIiA6IHBsYWNlbWVudC52ZXJ0aWNhbDtcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJmbG9hdGluZy1wYW5lbFwiXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgc3R5bGVzLmNvbnRhaW5lcixcbiAgICAgICAgc3R5bGVzW2hvcml6b250YWxQbGFjZW1lbnRdLFxuICAgICAgICBzdHlsZXNbdmVydGljYWxQbGFjZW1lbnRdLFxuICAgICAgICBzdHlsZXNbbGF5b3V0XSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuZml4ZWRdOiBwbGFjZW1lbnQucGFyZW50ICE9PSBcImNvbnRhaW5lclwiLFxuICAgICAgICB9LFxuICAgICAgXSl9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBGbG9hdGluZ1BhbmVsO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8ycjBGa1lKN1NLMVlqQjNIS0hNQWloXCIsXCJyb3dcIjpcIl8zUi1GRjhlTXUwQ1M0ZU5YM2xUZENSXCIsXCJjb2x1bW5cIjpcIl8xb0tPZUFnWmp3eE5NM3VHZkx0NklPXCIsXCJmaXhlZFwiOlwiXzNvUUdXZ1NJTmJ5dGI0dXY5MkNTdlRcIixcInBsYWluXCI6XCJpTWY4b2QtYklxc0hBdnhvZkR1emJcIixcInRyYW5zcGFyZW50XCI6XCJkMm95eDVweXNxajg5OGFTOEczRThcIixcInRvcFwiOlwiXzExY1BZcTFkaFF5elZJTVplazFfSW9cIixcInRvcEVkZ2VcIjpcIl8yX2luZUN5MU1RbFlQNnFNZXdkMXo1XCIsXCJ0b3BPbkVkZ2VcIjpcIl8xcnZDc0RvZDVibFRPeUFsNGtEd04wXCIsXCJyaWdodFwiOlwiXzFTSVlCY1JncVM0VlBoVzlNODBZNHpcIixcInJpZ2h0RWRnZVwiOlwiUUE2OWYwRDhiVENKSHJET3I4bTFyXCIsXCJyaWdodE9uRWRnZVwiOlwiXzJQaVRVbDBKWXpFQ25PMDg1MWd6M2FcIixcImJvdHRvbVwiOlwiXzMwNWdCbVR3QWVYWmZBX005dHNWTm9cIixcImJvdHRvbUVkZ2VcIjpcIl8xUGNEWGJMWjJYSFBrZWlfSF9yNThwXCIsXCJib3R0b21PbkVkZ2VcIjpcIl8ydm90NHFwcjU4V25iNnB2SFluamtjXCIsXCJsZWZ0XCI6XCJzSXRnQlY0V3REeDR2WjNhLVA0aXhcIixcImxlZnRFZGdlXCI6XCJfMU5KMUZ6SV9hYktpLVc2a2MycjJjNlwiLFwibGVmdE9uRWRnZVwiOlwiXzEyRXZ3YmFWUU5XUFplMzdTbzhMX21cIixcImhvcml6b250YWxDZW50ZXJcIjpcIl8yamlTeEViQ1RLVnpEdGVHUTF1b0VmXCIsXCJ2ZXJ0aWNhbENlbnRlclwiOlwiXzJmOUQ0NkJCLWdlelB2dzhUWnhKdnBcIn07IiwiaW1wb3J0IFJlYWN0LCB7IFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9JY29uLm1vZHVsZS5jc3NcIjtcblxudHlwZSBJY29uUHJvcHMgPSB7XG4gIGFsdD86IHN0cmluZztcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxJbWFnZUVsZW1lbnQ+O1xuICBpbnZlcnRlZD86IGJvb2xlYW47XG4gIHNyYzogc3RyaW5nO1xuICBzaXplPzogXCJzbWFsbFwiIHwgXCJtZWRpdW1cIiB8IFwibGFyZ2VcIjtcbn07XG5mdW5jdGlvbiBJY29uKHtcbiAgc3JjLFxuICBhbHQsXG4gIGNvbnRhaW5lclJlZixcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXG4gIGludmVydGVkID0gZmFsc2UsXG59OiBJY29uUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8aW1nXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICBzdHlsZXMuaWNvbixcbiAgICAgICAgc3R5bGVzW3NpemVdLFxuICAgICAgICB7IFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCB9LFxuICAgICAgXSl9XG4gICAgICBjcm9zc09yaWdpbj1cImFub255bW91c1wiXG4gICAgICBkYXRhLXRlc3RpZD1cImljb25cIlxuICAgICAgYWx0PXthbHR9XG4gICAgICBzcmM9e3NyY31cbiAgICAvPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBJY29uO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJpY29uXCI6XCJfMzNjVE04aThxYWpGR3ktMDB0eTBSd1wiLFwic21hbGxcIjpcIk1VaTNpa3pjUFpkbzU5QWZvWGRPRlwiLFwibWVkaXVtXCI6XCJfMlZDS3F5NTlOU0ZkZkRpRTBveGFzelwiLFwibGFyZ2VcIjpcIl8yVVVVZjJuX2EwUFlwUThrb3dLSHpwXCIsXCJpbnZlcnRlZFwiOlwiXzJxelV0VTFUZF9jNTh2TThBTHFTVldcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBJY29uQnV0dG9uIH0gZnJvbSBcIi4vSWNvbkJ1dHRvblwiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlZk9iamVjdCwgU3ludGhldGljRXZlbnQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0ljb25CdXR0b24ubW9kdWxlLmNzc1wiO1xuXG50eXBlIEljb25CdXR0b25Qcm9wcyA9IHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBzcmM6IHN0cmluZztcbiAgYWx0OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaW52ZXJ0ZWQ/OiBib29sZWFuO1xuICBub1NoYWRvdz86IGJvb2xlYW47XG4gIG5vQm9yZGVyPzogYm9vbGVhbjtcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xuICByb3VuZGVkPzogYm9vbGVhbjtcbiAgb25DbGljaz86IChldmVudD86IFN5bnRoZXRpY0V2ZW50PEhUTUxCdXR0b25FbGVtZW50PikgPT4gdm9pZDtcbiAgc2l6ZT86IFwic21hbGxcIiB8IFwibWVkaXVtXCIgfCBcImxhcmdlXCI7XG4gIHR5cGU/OiBcInN1Ym1pdFwiIHwgXCJyZXNldFwiIHwgXCJidXR0b25cIjtcbiAgb2Zmc2V0U2lkZXM/OiBBcnJheTxcInRvcFwiIHwgXCJyaWdodFwiIHwgXCJib3R0b21cIiB8IFwibGVmdFwiPjtcbn07XG5cbmZ1bmN0aW9uIEljb25CdXR0b24oe1xuICBjbGFzc05hbWUsXG4gIGNvbnRhaW5lclJlZixcbiAgc3JjLFxuICBhbHQsXG4gIG9mZnNldFNpZGVzID0gW10sXG4gIG9uQ2xpY2sgPSAoKSA9PiB7fSxcbiAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgaW52ZXJ0ZWQgPSBmYWxzZSxcbiAgbm9TaGFkb3cgPSBmYWxzZSxcbiAgbm9Cb3JkZXIgPSBmYWxzZSxcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcbiAgcm91bmRlZCA9IGZhbHNlLFxuICBzaXplID0gXCJtZWRpdW1cIixcbiAgdHlwZSA9IFwiYnV0dG9uXCIsXG59OiBJY29uQnV0dG9uUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8YnV0dG9uXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICBzdHlsZXMuY29udGFpbmVyLFxuICAgICAgICBzdHlsZXNbc2l6ZV0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzLmludmVydGVkXTogaW52ZXJ0ZWQsXG4gICAgICAgICAgW3N0eWxlcy5yb3VuZGVkXTogcm91bmRlZCxcbiAgICAgICAgICBbc3R5bGVzLm5vU2hhZG93XTogbm9TaGFkb3csXG4gICAgICAgICAgW3N0eWxlcy5ub0JvcmRlcl06IG5vQm9yZGVyLFxuICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCxcbiAgICAgICAgICBbc3R5bGVzLnRvcE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJ0b3BcIiksXG4gICAgICAgICAgW3N0eWxlcy5yaWdodE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJyaWdodFwiKSxcbiAgICAgICAgICBbc3R5bGVzLmJvdHRvbU9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJib3R0b21cIiksXG4gICAgICAgICAgW3N0eWxlcy5sZWZ0T2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcImxlZnRcIiksXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgIF0pfVxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIHR5cGU9e3R5cGV9XG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICA+XG4gICAgICA8SWNvbiBzcmM9e3NyY30gYWx0PXthbHR9IHNpemU9e3NpemV9IGludmVydGVkPXtpbnZlcnRlZH0gLz5cbiAgICA8L2J1dHRvbj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgSWNvbkJ1dHRvbjtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJSZ3lsbFhUcXAzX2paNkEyTmJ2ZzZcIixcInNtYWxsXCI6XCJfMXcwaFpsT2JlTDdFRzg3enNMLTl2TlwiLFwibWVkaXVtXCI6XCJFSzFidkpaalcxMTlEbzc5U3RMN0lcIixcImxhcmdlXCI6XCJQZ3lRWEsxeXlDTXE4QlNhWUNiY2hcIixcInJvdW5kZWRcIjpcIl8zcXFhMWswQzlKTVBzQlJTejZaMHlZXCIsXCJ0b3BPZmZzZXRcIjpcIl8zVlpQN0RvaGhaN3o4Zmk0ei1IOGpOXCIsXCJyaWdodE9mZnNldFwiOlwiXzJYWGhKMy1jWWNYYklWTm1tbk84eUhcIixcImJvdHRvbU9mZnNldFwiOlwiWkpJWDdWcTVtdXNqZDZzNGhDU2JQXCIsXCJsZWZ0T2Zmc2V0XCI6XCJfMVFWV2l5aXZXOVV4ZW9OdTNVZG52NlwiLFwiaW52ZXJ0ZWRcIjpcIl8yalp6WGhuSHFxYnR1bTRkQmRsMWxLXCIsXCJub1NoYWRvd1wiOlwiXzNmeHZXaU9ORkZZdE11RGNYcDhzeXVcIixcIm5vQm9yZGVyXCI6XCJfM0V1eHVwbnFPVnVTb1VzYkt6Tm5cIixcInRyYW5zcGFyZW50XCI6XCJfMzViUklpOEJ0RDRSS1NKdlpial9zbVwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIEljb25CdXR0b25MaW5rIH0gZnJvbSBcIi4vSWNvbkJ1dHRvbkxpbmtcIjtcbiIsImltcG9ydCBSZWFjdCwgeyBFbGVtZW50VHlwZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcbmltcG9ydCB7IEljb24gfSBmcm9tIFwiLi4vSWNvblwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9JY29uQnV0dG9uTGluay5tb2R1bGUuY3NzXCI7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgT2Zmc2V0U2lkZSA9IFwidG9wXCIgfCBcInJpZ2h0XCIgfCBcImJvdHRvbVwiIHwgXCJsZWZ0XCI7XG5cbnR5cGUgSWNvbkJ1dHRvbkxpbmtQcm9wcyA9XG4gIHwge1xuICAgICAgYXM/OiBFbGVtZW50VHlwZTtcbiAgICAgIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRWxlbWVudD47XG4gICAgICBzcmM6IHN0cmluZztcbiAgICAgIGFsdDogc3RyaW5nO1xuICAgICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgICAgaW52ZXJ0ZWQ/OiBib29sZWFuO1xuICAgICAgcm91bmRlZD86IGJvb2xlYW47XG4gICAgICB0cmFuc3BhcmVudD86IGJvb2xlYW47XG4gICAgICBub1NoYWRvdz86IGJvb2xlYW47XG4gICAgICBub0JvcmRlcj86IGJvb2xlYW47XG4gICAgICBzaXplPzogU2l6ZTtcbiAgICAgIG9mZnNldFNpZGVzPzogQXJyYXk8T2Zmc2V0U2lkZT47XG4gICAgfVxuICB8IGFueTtcblxuZnVuY3Rpb24gSWNvbkJ1dHRvbkxpbmsoe1xuICBhczogQ29tcG9uZW50LFxuICBjb250YWluZXJSZWYsXG4gIGNsYXNzTmFtZSxcbiAgc3JjLFxuICBhbHQsXG4gIGludmVydGVkID0gZmFsc2UsXG4gIG5vU2hhZG93ID0gZmFsc2UsXG4gIG5vQm9yZGVyID0gZmFsc2UsXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXG4gIHJvdW5kZWQgPSBmYWxzZSxcbiAgb2Zmc2V0U2lkZXMgPSBbXSxcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXG4gIC4uLnByb3BzXG59OiBJY29uQnV0dG9uTGlua1Byb3BzKSB7XG4gIGlmICh0eXBlb2YgQ29tcG9uZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgQ29tcG9uZW50ID0gXCJhXCI7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDb21wb25lbnRcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJpY29uLWJ1dHRvbi1saW5rXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICBzdHlsZXMuY29udGFpbmVyLFxuICAgICAgICBzdHlsZXNbc2l6ZV0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzLmludmVydGVkXTogaW52ZXJ0ZWQsXG4gICAgICAgICAgW3N0eWxlcy5yb3VuZGVkXTogcm91bmRlZCxcbiAgICAgICAgICBbc3R5bGVzLm5vU2hhZG93XTogbm9TaGFkb3csXG4gICAgICAgICAgW3N0eWxlcy5ub0JvcmRlcl06IG5vQm9yZGVyLFxuICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCxcbiAgICAgICAgICBbc3R5bGVzLnRvcE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJ0b3BcIiksXG4gICAgICAgICAgW3N0eWxlcy5yaWdodE9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJyaWdodFwiKSxcbiAgICAgICAgICBbc3R5bGVzLmJvdHRvbU9mZnNldF06IHJvdW5kZWQgJiYgb2Zmc2V0U2lkZXMuaW5jbHVkZXMoXCJib3R0b21cIiksXG4gICAgICAgICAgW3N0eWxlcy5sZWZ0T2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcImxlZnRcIiksXG4gICAgICAgIH0sXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgIF0pfVxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIDxJY29uIHNyYz17c3JjfSBhbHQ9e2FsdH0gc2l6ZT17c2l6ZX0gaW52ZXJ0ZWQ9e2ludmVydGVkfSAvPlxuICAgIDwvQ29tcG9uZW50PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBJY29uQnV0dG9uTGluaztcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfM3dqeGpDenZfbHBoZFdtNzNKZ0F5cFwiLFwic21hbGxcIjpcIl8zMk1ZbVpiSHpVVTBiM2RNY21Kc2lNXCIsXCJsYXJnZVwiOlwiXzJhWVNTVFVnOHd2ckFET1MxODh4TVwiLFwicm91bmRlZFwiOlwiXzE4aWg2N0xMMG43WGw2MWdMRzhzMGtcIixcInRvcE9mZnNldFwiOlwiXzFwN2g3VzZRc0RIcGJhNm1neVdVTDlcIixcInJpZ2h0T2Zmc2V0XCI6XCJfM2Z4TUlCX0p6NUNZSWZ3dVpoUTI4aVwiLFwiYm90dG9tT2Zmc2V0XCI6XCJfMTEzbTRDV2ltTHZzalU5eEl4UHE3aVwiLFwibGVmdE9mZnNldFwiOlwiXzZDaG92Mk1veVV4eWhXeEtuMzY4S1wiLFwiaW52ZXJ0ZWRcIjpcIl8zZXFPSlF6NHVlLWVYTHZxMjdBc1k1XCIsXCJub1NoYWRvd1wiOlwibEY2RF9WMjB4MzJ2OVp5c3F3QzY4XCIsXCJub0JvcmRlclwiOlwiXzNzNnFDb2xManBqbDRScm83bVZUeFNcIixcInRyYW5zcGFyZW50XCI6XCJfMklaTzlwSzEzMVU5MWN5S1hpeGd4RFwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIEltYWdlIH0gZnJvbSBcIi4vSW1hZ2VcIjtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VSZWYsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0ltYWdlLm1vZHVsZS5jc3NcIjtcblxuZXhwb3J0IGNvbnN0IGVtcHR5SW1hZ2UgPVxuICBcImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFBQkNBUUFBQUMxSEF3Q0FBQUFDMGxFUVZSNDJtTmtZQUFBQUFZQUFqQ0IwQzhBQUFBQVNVVk9SSzVDWUlJPVwiOyAvLyAxeDFwbmdcblxudHlwZSBJbWFnZVByb3BzID0ge1xuICBhbmltYXRpb24/OiBcImZhZGVJblwiIHwgXCJzY2FsZVVwXCI7XG4gIGFsdD86IHN0cmluZztcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGxheW91dD86IFwiY292ZXJcIiB8IFwiY29udGFpblwiIHwgXCJzdHJldGNoSG9yaXpvbnRhbGx5XCIgfCBcInN0cmV0Y2hWZXJ0aWNhbGx5XCI7XG4gIHNyYzogc3RyaW5nO1xuICBzcmNXaWR0aD86IG51bWJlcjtcbiAgc3JjSGVpZ2h0PzogbnVtYmVyO1xufTtcblxuZnVuY3Rpb24gSW1hZ2VDb21wb25lbnQoe1xuICBzcmMsXG4gIGFsdCxcbiAgc3JjV2lkdGgsXG4gIHNyY0hlaWdodCxcbiAgY2hpbGRyZW4sXG4gIGFuaW1hdGlvbixcbiAgY29udGFpbmVyUmVmLFxuICBsYXlvdXQgPSBcImNvbnRhaW5cIixcbn06IEltYWdlUHJvcHMpIHtcbiAgY29uc3QgW2lzTG9hZGVkLCBzZXRJc0xvYWRlZF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IGltYWdlUmVmID0gdXNlUmVmKG51bGwpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGltYWdlID0gbmV3IEltYWdlKCk7XG4gICAgaW1hZ2UuY3Jvc3NPcmlnaW4gPSBcImFub255bW91c1wiO1xuICAgIGltYWdlLnNyYyA9IHNyYztcbiAgICBpbWFnZS5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBpbWFnZVJlZi5jdXJyZW50Py5zZXRBdHRyaWJ1dGUoXCJzcmNcIiwgc3JjKTtcbiAgICAgIHNldElzTG9hZGVkKHRydWUpO1xuICAgIH07XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgaW1hZ2Uuc3JjID0gXCJcIjtcbiAgICAgIGRlbGV0ZSBpbWFnZS5vbmxvYWQ7XG4gICAgICBkZWxldGUgaW1hZ2Uuc3JjO1xuICAgICAgZGVsZXRlIGltYWdlLmNyb3NzT3JpZ2luO1xuICAgICAgaW1hZ2UgPSBudWxsO1xuICAgIH07XG4gIH0sIFtzcmNdKTtcblxuICByZXR1cm4gY2hpbGRyZW4gPyAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuY29udGFpbmVyLCBzdHlsZXMuaGFzT3ZlcmxheV0pfVxuICAgID5cbiAgICAgIDxpbWdcbiAgICAgICAgcmVmPXtpbWFnZVJlZn1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgICAgc3R5bGVzLmltYWdlLFxuICAgICAgICAgIHN0eWxlc1tsYXlvdXRdLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFtzdHlsZXMuZmFkZUluXTogYW5pbWF0aW9uID09PSBcImZhZGVJblwiICYmIGlzTG9hZGVkLFxuICAgICAgICAgICAgW3N0eWxlcy5zY2FsZVVwXTogYW5pbWF0aW9uID09PSBcInNjYWxlVXBcIiAmJiBpc0xvYWRlZCxcbiAgICAgICAgICB9LFxuICAgICAgICBdKX1cbiAgICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxuICAgICAgICBkYXRhLXRlc3RpZD1cImltYWdlXCJcbiAgICAgICAgYWx0PXthbHR9XG4gICAgICAgIHNyYz17ZW1wdHlJbWFnZX1cbiAgICAgICAgd2lkdGg9e3NyY1dpZHRofVxuICAgICAgICBoZWlnaHQ9e3NyY0hlaWdodH1cbiAgICAgIC8+XG4gICAgICB7Y2hpbGRyZW4gJiYgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5vdmVybGF5fT57Y2hpbGRyZW59PC9kaXY+fVxuICAgIDwvZGl2PlxuICApIDogKFxuICAgIDxpbWdcbiAgICAgIHJlZj17aW1hZ2VSZWZ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgc3R5bGVzLmltYWdlLFxuICAgICAgICBzdHlsZXNbbGF5b3V0XSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuZmFkZUluXTogYW5pbWF0aW9uID09PSBcImZhZGVJblwiICYmIGlzTG9hZGVkLFxuICAgICAgICAgIFtzdHlsZXMuc2NhbGVVcF06IGFuaW1hdGlvbiA9PT0gXCJzY2FsZVVwXCIgJiYgaXNMb2FkZWQsXG4gICAgICAgIH0sXG4gICAgICBdKX1cbiAgICAgIGNyb3NzT3JpZ2luPVwiYW5vbnltb3VzXCJcbiAgICAgIGRhdGEtdGVzdGlkPVwiaW1hZ2VcIlxuICAgICAgYWx0PXthbHR9XG4gICAgICBzcmM9e2VtcHR5SW1hZ2V9XG4gICAgICB3aWR0aD17c3JjV2lkdGh9XG4gICAgICBoZWlnaHQ9e3NyY0hlaWdodH1cbiAgICAvPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBJbWFnZUNvbXBvbmVudDtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJfMVYwMEdwel9rZXFVV0dFZlo3NHdqU1wiLFwiaGFzT3ZlcmxheVwiOlwiXzJNdFVmWXB3NVY4VXByeHFfRV95U2FcIixcIm92ZXJsYXlcIjpcInoxRFZIeGoxWlBLNzNPSVFSY2s3alwiLFwiaW1hZ2VcIjpcIl8zOU9qVEdXZDd4bXhjbDZudUktZzJMXCIsXCJjb3ZlclwiOlwiXzNxS2RwMm1LNmY3RzV6QXpYbHpnckVcIixcImNvbnRhaW5cIjpcIl8yb19HNFhiQi1Rb3piZnVrNF9WMDBoXCIsXCJzdHJldGNoSG9yaXpvbnRhbGx5XCI6XCJfMnhndURrR3UxbVIyeVBhWS1oek44b1wiLFwic3RyZXRjaFZlcnRpY2FsbHlcIjpcIl8xOVdNYTN0cVJ4dlVoREtGWjhZMlBCXCIsXCJmYWRlSW5cIjpcIl8zNk9TMkdjc2p3RWdIUDBvLThBeDFtXCIsXCJmYWRlSW5BbmltYXRpb25cIjpcIi1leW1ONmhXekpuUng4WGhrMURXT1wiLFwic2NhbGVVcFwiOlwiXzFVVVJBQlpuTWxMZjBLUFVVRDJSTnpcIixcInNjYWxlVXBBbmltYXRpb25cIjpcIl8za290d1Y5anZwSFNQbWp0T1VsZzdNXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgTGlzdFZpZXcgfSBmcm9tIFwiLi9MaXN0Vmlld1wiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaXN0Vmlld0l0ZW0gfSBmcm9tIFwiLi9MaXN0Vmlld0l0ZW1cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTGlzdFZpZXdMaW5rSXRlbSB9IGZyb20gXCIuL0xpc3RWaWV3TGlua0l0ZW1cIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0xpc3RWaWV3Lm1vZHVsZS5jc3NcIjtcblxudHlwZSBMaXN0Vmlld1Byb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGhlYWRlcj86IHN0cmluZztcbiAgaGVhZGVyQWN0aW9ucz86IFJlYWN0Tm9kZTtcbn07XG5cbmZ1bmN0aW9uIExpc3RWaWV3KHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgY29udGFpbmVyUmVmLFxuICBoZWFkZXIsXG4gIGhlYWRlckFjdGlvbnMsXG59OiBMaXN0Vmlld1Byb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiByZWY9e2NvbnRhaW5lclJlZn0gY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmNvbnRhaW5lciwgY2xhc3NOYW1lXSl9PlxuICAgICAgeyhoZWFkZXIgfHwgaGVhZGVyQWN0aW9ucykgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmhlYWRlcn0+XG4gICAgICAgICAge2hlYWRlciAmJiA8aDMgY2xhc3NOYW1lPXtzdHlsZXMuaGVhZGVyTGFiZWx9PntoZWFkZXJ9PC9oMz59XG4gICAgICAgICAge2hlYWRlckFjdGlvbnN9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICAgIDx1bCBjbGFzc05hbWU9e3N0eWxlcy5saXN0fT57Y2hpbGRyZW59PC91bD5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTGlzdFZpZXc7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiRGNXb0ViaW9sOXB4LUZRQV9UcE9rXCIsXCJoZWFkZXJcIjpcIl8yamF2QjhzQUR4NmREZ3FYTjNNQ0xQXCIsXCJoZWFkZXJMYWJlbFwiOlwiXzNpTU9mSXlOTDFTRW12Mko4WkREbVdcIixcImxpc3RcIjpcIl8zX0ttdGJNUHBQSGdKRk05WkJfeG5BXCJ9OyIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHsgQnV0dG9uIH0gZnJvbSBcIi4uL0J1dHRvblwiO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9MaXN0Vmlld0l0ZW0ubW9kdWxlLmNzc1wiO1xuXG50eXBlIExpc3RWaWV3SXRlbVByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBhY3RpdmU/OiBib29sZWFuO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcbiAgbm9QYWRkaW5nPzogYm9vbGVhbjtcbiAgc2l6ZT86IFNpemU7XG4gIGFsaWduPzogXCJsZWZ0XCIgfCBcImNlbnRlclwiO1xuICBvbkNsaWNrPzogKCkgPT4gdm9pZCxcbn1cblxuZnVuY3Rpb24gTGlzdFZpZXdJdGVtKHtcbiAgY2hpbGRyZW4sXG4gIGFjdGl2ZSA9IGZhbHNlLFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxuICBub1BhZGRpbmcgPSBmYWxzZSxcbiAgc2l6ZSA9IFwibWVkaXVtXCIsXG4gIGFsaWduID0gXCJjZW50ZXJcIixcbiAgb25DbGljayA9ICgpID0+IHt9LFxufTogTGlzdFZpZXdJdGVtUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8bGkgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmxpc3RWaWV3SXRlbV0pfT5cbiAgICAgIDxCdXR0b25cbiAgICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICBpbnZlcnRlZD17YWN0aXZlfVxuICAgICAgICB0cmFuc3BhcmVudD17dHJhbnNwYXJlbnR9XG4gICAgICAgIG5vUGFkZGluZz17bm9QYWRkaW5nfVxuICAgICAgICBhbGlnbj17YWxpZ259XG4gICAgICAgIHNpemU9e3NpemV9XG4gICAgICAgIHN0cmV0Y2hIb3Jpem9udGFsbHlcbiAgICAgICAgbm9TaGFkb3dcbiAgICAgICAgbm9Cb3JkZXJcbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9CdXR0b24+XG4gICAgPC9saT5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTGlzdFZpZXdJdGVtO1xuIiwiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuaW1wb3J0IHsgQnV0dG9uTGluayB9IGZyb20gXCIuLi9CdXR0b25MaW5rXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0xpc3RWaWV3SXRlbS5tb2R1bGUuY3NzXCI7XG5cbmZ1bmN0aW9uIExpc3RWaWV3TGlua0l0ZW0oe1xuICBjaGlsZHJlbixcbiAgYWN0aXZlLFxuICB0cmFuc3BhcmVudCxcbiAgbm9QYWRkaW5nLFxuICBzaXplLFxuICBhbGlnbixcbiAgYXMsXG4gIC4uLnByb3BzXG59KSB7XG4gIHJldHVybiAoXG4gICAgPGxpIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5saXN0Vmlld0l0ZW1dKX0+XG4gICAgICA8QnV0dG9uTGlua1xuICAgICAgICBhcz17YXN9XG4gICAgICAgIGludmVydGVkPXthY3RpdmV9XG4gICAgICAgIHRyYW5zcGFyZW50PXt0cmFuc3BhcmVudH1cbiAgICAgICAgbm9QYWRkaW5nPXtub1BhZGRpbmd9XG4gICAgICAgIGFsaWduPXthbGlnbn1cbiAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgc3RyZXRjaEhvcml6b250YWxseVxuICAgICAgICBub1NoYWRvd1xuICAgICAgICBub0JvcmRlclxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvQnV0dG9uTGluaz5cbiAgICA8L2xpPlxuICApO1xufVxuXG5MaXN0Vmlld0xpbmtJdGVtLmRlZmF1bHRQcm9wcyA9IHtcbiAgYWN0aXZlOiBmYWxzZSxcbiAgdHJhbnNwYXJlbnQ6IGZhbHNlLFxuICBub1BhZGRpbmc6IGZhbHNlLFxuICBzaXplOiBcIm1lZGl1bVwiLFxuICBhbGlnbjogXCJjZW50ZXJcIixcbiAgYXM6IFwiYVwiLFxufTtcblxuTGlzdFZpZXdMaW5rSXRlbS5wcm9wVHlwZXMgPSB7XG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZS5pc1JlcXVpcmVkLFxuICBhczogUHJvcFR5cGVzLmVsZW1lbnRUeXBlLFxuICBhY3RpdmU6IFByb3BUeXBlcy5ib29sLFxuICB0cmFuc3BhcmVudDogUHJvcFR5cGVzLmJvb2wsXG4gIG5vUGFkZGluZzogUHJvcFR5cGVzLmJvb2wsXG4gIGFsaWduOiBQcm9wVHlwZXMub25lT2YoW1wibGVmdFwiLCBcImNlbnRlclwiXSksXG4gIHNpemU6IFByb3BUeXBlcy5zdHJpbmcsXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgTGlzdFZpZXdMaW5rSXRlbTtcbiIsIi8qKlxuICogQ29weXJpZ2h0IChjKSAyMDEzLXByZXNlbnQsIEZhY2Vib29rLCBJbmMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG52YXIgUmVhY3RQcm9wVHlwZXNTZWNyZXQgPSByZXF1aXJlKCcuL2xpYi9SZWFjdFByb3BUeXBlc1NlY3JldCcpO1xuXG5mdW5jdGlvbiBlbXB0eUZ1bmN0aW9uKCkge31cbmZ1bmN0aW9uIGVtcHR5RnVuY3Rpb25XaXRoUmVzZXQoKSB7fVxuZW1wdHlGdW5jdGlvbldpdGhSZXNldC5yZXNldFdhcm5pbmdDYWNoZSA9IGVtcHR5RnVuY3Rpb247XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24oKSB7XG4gIGZ1bmN0aW9uIHNoaW0ocHJvcHMsIHByb3BOYW1lLCBjb21wb25lbnROYW1lLCBsb2NhdGlvbiwgcHJvcEZ1bGxOYW1lLCBzZWNyZXQpIHtcbiAgICBpZiAoc2VjcmV0ID09PSBSZWFjdFByb3BUeXBlc1NlY3JldCkge1xuICAgICAgLy8gSXQgaXMgc3RpbGwgc2FmZSB3aGVuIGNhbGxlZCBmcm9tIFJlYWN0LlxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB2YXIgZXJyID0gbmV3IEVycm9yKFxuICAgICAgJ0NhbGxpbmcgUHJvcFR5cGVzIHZhbGlkYXRvcnMgZGlyZWN0bHkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgYHByb3AtdHlwZXNgIHBhY2thZ2UuICcgK1xuICAgICAgJ1VzZSBQcm9wVHlwZXMuY2hlY2tQcm9wVHlwZXMoKSB0byBjYWxsIHRoZW0uICcgK1xuICAgICAgJ1JlYWQgbW9yZSBhdCBodHRwOi8vZmIubWUvdXNlLWNoZWNrLXByb3AtdHlwZXMnXG4gICAgKTtcbiAgICBlcnIubmFtZSA9ICdJbnZhcmlhbnQgVmlvbGF0aW9uJztcbiAgICB0aHJvdyBlcnI7XG4gIH07XG4gIHNoaW0uaXNSZXF1aXJlZCA9IHNoaW07XG4gIGZ1bmN0aW9uIGdldFNoaW0oKSB7XG4gICAgcmV0dXJuIHNoaW07XG4gIH07XG4gIC8vIEltcG9ydGFudCFcbiAgLy8gS2VlcCB0aGlzIGxpc3QgaW4gc3luYyB3aXRoIHByb2R1Y3Rpb24gdmVyc2lvbiBpbiBgLi9mYWN0b3J5V2l0aFR5cGVDaGVja2Vycy5qc2AuXG4gIHZhciBSZWFjdFByb3BUeXBlcyA9IHtcbiAgICBhcnJheTogc2hpbSxcbiAgICBib29sOiBzaGltLFxuICAgIGZ1bmM6IHNoaW0sXG4gICAgbnVtYmVyOiBzaGltLFxuICAgIG9iamVjdDogc2hpbSxcbiAgICBzdHJpbmc6IHNoaW0sXG4gICAgc3ltYm9sOiBzaGltLFxuXG4gICAgYW55OiBzaGltLFxuICAgIGFycmF5T2Y6IGdldFNoaW0sXG4gICAgZWxlbWVudDogc2hpbSxcbiAgICBlbGVtZW50VHlwZTogc2hpbSxcbiAgICBpbnN0YW5jZU9mOiBnZXRTaGltLFxuICAgIG5vZGU6IHNoaW0sXG4gICAgb2JqZWN0T2Y6IGdldFNoaW0sXG4gICAgb25lT2Y6IGdldFNoaW0sXG4gICAgb25lT2ZUeXBlOiBnZXRTaGltLFxuICAgIHNoYXBlOiBnZXRTaGltLFxuICAgIGV4YWN0OiBnZXRTaGltLFxuXG4gICAgY2hlY2tQcm9wVHlwZXM6IGVtcHR5RnVuY3Rpb25XaXRoUmVzZXQsXG4gICAgcmVzZXRXYXJuaW5nQ2FjaGU6IGVtcHR5RnVuY3Rpb25cbiAgfTtcblxuICBSZWFjdFByb3BUeXBlcy5Qcm9wVHlwZXMgPSBSZWFjdFByb3BUeXBlcztcblxuICByZXR1cm4gUmVhY3RQcm9wVHlwZXM7XG59O1xuIiwiLyoqXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTMtcHJlc2VudCwgRmFjZWJvb2ssIEluYy5cbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG4ndXNlIHN0cmljdCc7XG5cbnZhciBSZWFjdFByb3BUeXBlc1NlY3JldCA9ICdTRUNSRVRfRE9fTk9UX1BBU1NfVEhJU19PUl9ZT1VfV0lMTF9CRV9GSVJFRCc7XG5cbm1vZHVsZS5leHBvcnRzID0gUmVhY3RQcm9wVHlwZXNTZWNyZXQ7XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIE1lbnUgfSBmcm9tIFwiLi9NZW51XCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lbnVDb250YWluZXIgfSBmcm9tIFwiLi9NZW51Q29udGFpbmVyXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lbnVJdGVtIH0gZnJvbSBcIi4vTWVudUl0ZW1cIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgTWVudUxpbmtJdGVtIH0gZnJvbSBcIi4vTWVudUxpbmtJdGVtXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTWVudS5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgUGxhY2VtZW50ID0ge1xuICBob3Jpem9udGFsOiBcInJpZ2h0XCIgfCBcImxlZnRcIjtcbiAgdmVydGljYWw6IFwidG9wXCIgfCBcImJvdHRvbVwiO1xufTtcblxudHlwZSBNZW51UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgaXNPcGVuPzogYm9vbGVhbjtcbiAgaGVhZGVyPzogc3RyaW5nO1xuICBwbGFjZW1lbnQ/OiBQbGFjZW1lbnQ7XG59O1xuXG5mdW5jdGlvbiBNZW51KHtcbiAgY2hpbGRyZW4sXG4gIGNvbnRhaW5lclJlZixcbiAgY2xhc3NOYW1lLFxuICBpc09wZW4gPSB0cnVlLFxuICBwbGFjZW1lbnQgPSB7IGhvcml6b250YWw6IFwibGVmdFwiLCB2ZXJ0aWNhbDogXCJib3R0b21cIiB9LFxuICBoZWFkZXIsXG59OiBNZW51UHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICBzdHlsZXMubWVudSxcbiAgICAgICAgc3R5bGVzW3BsYWNlbWVudC5ob3Jpem9udGFsXSxcbiAgICAgICAgc3R5bGVzW3BsYWNlbWVudC52ZXJ0aWNhbF0sXG4gICAgICAgIHsgW3N0eWxlcy5vcGVuXTogaXNPcGVuIH0sXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgIF0pfVxuICAgID5cbiAgICAgIHtoZWFkZXIgJiYgaXNPcGVuICYmIDxoMyBjbGFzc05hbWU9e3N0eWxlcy5tZW51SGVhZGVyfT57aGVhZGVyfTwvaDM+fVxuICAgICAgPHVsPntpc09wZW4gJiYgY2hpbGRyZW59PC91bD5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWVudTtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wibWVudVwiOlwiXzFMNS1wdl9QNk0yb0dlb1JlTW5PMkpcIixcInRvcFwiOlwiXzMxbGRZR1U0VTB4cEt1VV8tLVdjamFcIixcInJpZ2h0XCI6XCJPYkh4TWl2bDM1aTFLZ0k3VGdnYzlcIixcImxlZnRcIjpcIl8yR3pjMFhmTC1oNU55SEtWRHY1ci1rXCIsXCJib3R0b21cIjpcIl8zRURtaVNmUFJaTWxIbFNIOTM0N2xHXCIsXCJvcGVuXCI6XCJfMUo3cEZrdmtqUVFSV2ttZy0wWFRXWlwiLFwiZW50cmFuY2VcIjpcIl8zY3Flc1FHZjlDeXU2NkRzb0t0RjBxXCIsXCJtZW51SGVhZGVyXCI6XCJfMm94c1BPc3BBSFBDZUtUUEhlZ2VIVVwifTsiLCJpbXBvcnQgUmVhY3QsIHsgZm9yd2FyZFJlZiwgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9NZW51Q29udGFpbmVyLm1vZHVsZS5jc3NcIjtcblxudHlwZSBNZW51Q29udGFpbmVyUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgcmVmPzogKCkgPT4gdm9pZCB8IHsgY3VycmVudDogYW55IH07XG59XG5cbmZ1bmN0aW9uIE1lbnVDb250YWluZXIoeyBjaGlsZHJlbiwgY2xhc3NOYW1lfTogTWVudUNvbnRhaW5lclByb3BzLCByZWY6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD4pIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17cmVmfSBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMubWVudUNvbnRhaW5lciwgY2xhc3NOYW1lXSl9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmb3J3YXJkUmVmKE1lbnVDb250YWluZXIpO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJtZW51Q29udGFpbmVyXCI6XCJfMV8yc0ZGVnpOWG1KWF9QVHBIWmdFTFwifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTWVudUl0ZW0ubW9kdWxlLmNzc1wiO1xuXG50eXBlIE1lbnVJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgaXNBY3RpdmU/OiBib29sZWFuLFxuICBvbkNsaWNrPzogKCkgPT4gdm9pZCxcbn07XG5cbmZ1bmN0aW9uIE1lbnVJdGVtKHtcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgb25DbGljayxcbiAgaXNBY3RpdmUgPSBmYWxzZVxufTogTWVudUl0ZW1Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxsaVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5tZW51SXRlbSxcbiAgICAgICAgeyBbc3R5bGVzLmFjdGl2ZV06IGlzQWN0aXZlIH0sXG4gICAgICAgIGNsYXNzTmFtZSxcbiAgICAgIF0pfVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9saT5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWVudUl0ZW07XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcIm1lbnVJdGVtXCI6XCJfMktzUkNFZ0VfTTd3b1hqaHBSdVZ1b1wiLFwiYWN0aXZlXCI6XCJfMVhuWFppQXJodlVleVhncVVhRy1QN1wifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBFbGVtZW50VHlwZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL01lbnVMaW5rSXRlbS5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgTWVudUxpbmtJdGVtUHJvcHMgPVxuICB8IHtcbiAgICAgIGFzOiBFbGVtZW50VHlwZTtcbiAgICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gICAgICBjbGFzc05hbWU6IHN0cmluZztcbiAgICB9XG4gIHwgYW55O1xuXG5mdW5jdGlvbiBNZW51TGlua0l0ZW0oe1xuICBhczogQ29tcG9uZW50LFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICAuLi5wcm9wc1xufTogTWVudUxpbmtJdGVtUHJvcHMpIHtcbiAgaWYgKHR5cGVvZiBDb21wb25lbnQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBDb21wb25lbnQgPSBcImFcIjtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPENvbXBvbmVudFxuICAgICAgZGF0YS10ZXN0aWQ9XCJtZW51LWxpbmstaXRlbVwiXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMubWVudUxpbmtJdGVtLCBjbGFzc05hbWVdKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9Db21wb25lbnQ+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1lbnVMaW5rSXRlbTtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wibWVudUxpbmtJdGVtXCI6XCJfM3o1dDlDQWhjQXdWT3RPVmxBXzRHd1wiLFwiYWN0aXZlXCI6XCJfMVotbVB2ZXdHVWc0ODRRUGM5SHhxMlwiLFwibWVudUl0ZW1cIjpcIl8zdElXQWhNRHRQekFINGJBcndwUk92XCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgT3ZlcmxheSB9IGZyb20gXCIuL092ZXJsYXlcIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9PdmVybGF5Lm1vZHVsZS5jc3NcIjtcblxudHlwZSBPdmVybGF5UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcbiAgaXNGaXhlZD86IGJvb2xlYW47XG4gIG9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xufTtcblxuZnVuY3Rpb24gT3ZlcmxheSh7XG4gIGNoaWxkcmVuLFxuICBjb250YWluZXJSZWYsXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXG4gIGlzRml4ZWQgPSBmYWxzZSxcbiAgb25DbGljayA9ICgpID0+IHt9LFxufTogT3ZlcmxheVByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBkYXRhLXRlc3RpZD1cIm92ZXJsYXlcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5vdmVybGF5LFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxuICAgICAgICAgIFtzdHlsZXMuZml4ZWRdOiBpc0ZpeGVkLFxuICAgICAgICB9LFxuICAgICAgXSl9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgT3ZlcmxheTtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wib3ZlcmxheVwiOlwiSTBkbS1MZG0tU2lTMHY1WC12bzBnXCIsXCJ0cmFuc3BhcmVudFwiOlwiXzNxZERkbHluSExub2ZOMURLdnZZUThcIixcImZpeGVkXCI6XCJfMWdYeTlYUzNGLUp0cWRqWkJjb0tTd1wifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIFRleHRJbnB1dCB9IGZyb20gXCIuL1RleHRJbnB1dFwiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCB7IExhYmVsIH0gZnJvbSBcIi4uL0xhYmVsXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL1RleHRJbnB1dC5tb2R1bGUuY3NzXCI7XG5pbXBvcnQgeyBTaXplLCBUZXh0SW5wdXRUeXBlIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5cbnR5cGUgVGV4dElucHV0UHJvcHMgPSB7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBvbkNoYW5nZT86ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgdmFsdWU/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHR5cGU/OiBUZXh0SW5wdXRUeXBlO1xuICBzaXplPzogU2l6ZTtcbiAgYXV0b0ZvY3VzPzogYm9vbGVhbjtcbiAgaW5wdXRSZWY/OiBSZWFjdC5SZWZPYmplY3Q8SFRNTElucHV0RWxlbWVudD47XG59O1xuXG5mdW5jdGlvbiBUZXh0SW5wdXQoe1xuICBsYWJlbCxcbiAgb25DaGFuZ2UsXG4gIHBsYWNlaG9sZGVyLFxuICB2YWx1ZSxcbiAgbmFtZSxcbiAgaW5wdXRSZWYsXG4gIHNpemUgPSBcIm1lZGl1bVwiLFxuICBhdXRvRm9jdXMgPSBmYWxzZSxcbiAgdHlwZSA9IFwidGV4dFwiLFxufTogVGV4dElucHV0UHJvcHMpIHtcbiAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgKGU6IFJlYWN0LkZvcm1FdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT5cbiAgICAgIG9uQ2hhbmdlKChlLnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSksXG4gICAgW29uQ2hhbmdlXVxuICApO1xuXG4gIGNvbnN0IGlucHV0RWxlbWVudCA9IChcbiAgICA8aW5wdXRcbiAgICAgIGRhdGEtdGVzdGlkPVwiaW5wdXRcIlxuICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy50ZXh0SW5wdXQsIHN0eWxlc1tzaXplXV0pfVxuICAgICAgb25DaGFuZ2U9eyFpbnB1dFJlZiA/IGhhbmRsZUNoYW5nZSA6IHVuZGVmaW5lZH1cbiAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgIG5hbWU9e25hbWV9XG4gICAgICB0eXBlPXt0eXBlfVxuICAgICAgdmFsdWU9e3ZhbHVlfVxuICAgICAgYXV0b0ZvY3VzPXthdXRvRm9jdXN9XG4gICAgLz5cbiAgKTtcbiAgaWYgKGxhYmVsKSB7XG4gICAgcmV0dXJuIDxMYWJlbCB2YWx1ZT17bGFiZWx9PntpbnB1dEVsZW1lbnR9PC9MYWJlbD47XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIDw+e2lucHV0RWxlbWVudH08Lz47XG4gIH1cbn1cbmV4cG9ydCBkZWZhdWx0IFRleHRJbnB1dDtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1widGV4dElucHV0XCI6XCJfMmlmRlRCeXh2UUY1ZVJZd01BU2FlN1wiLFwic21hbGxcIjpcIl8xOGlMTmhxYzVUejVQUG8yazRfVEJoXCIsXCJtZWRpdW1cIjpcIl8xamFSeWplYXRKUnhFdWpnUEd6V3p4XCIsXCJsYXJnZVwiOlwiXzM0ZDVIM1g4VzBVZ1g5QjhkdFBSQU9cIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBUb2FzdCB9IGZyb20gXCIuL1RvYXN0XCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIFRvYXN0Q29udGFpbmVyIH0gZnJvbSBcIi4vVG9hc3RDb250YWluZXJcIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlYWN0Tm9kZUFycmF5LCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9Ub2FzdC5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgSW1hZ2VUeXBlID0ge1xuICBzcmM6IHN0cmluZztcbiAgYWx0OiBzdHJpbmc7XG59O1xuXG50eXBlIFRvYXN0UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGJ1dHRvbnM6IFJlYWN0Tm9kZUFycmF5O1xuICBpbWFnZT86IEltYWdlVHlwZTtcbiAgb25DbGljaz86ICgpID0+IHZvaWQ7XG59O1xuXG5mdW5jdGlvbiBUb2FzdCh7XG4gIGNoaWxkcmVuLFxuICBjb250YWluZXJSZWYsXG4gIGltYWdlLFxuICBidXR0b25zLFxuICBvbkNsaWNrID0gKCkgPT4ge30sXG59OiBUb2FzdFByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMudG9hc3RdKX1cbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICBkYXRhLXRlc3RpZD1cInRvYXN0XCJcbiAgICA+XG4gICAgICB7aW1hZ2UgJiYgKFxuICAgICAgICA8aW1nXG4gICAgICAgICAgZGF0YS10ZXN0aWQ9XCJ0b2FzdC1pbWFnZVwiXG4gICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMudG9hc3RJbWFnZX1cbiAgICAgICAgICBzcmM9e2ltYWdlLnNyY31cbiAgICAgICAgICBhbHQ9e2ltYWdlLmFsdH1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLnRvYXN0Q29udGVudH0+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy50b2FzdEJ1dHRvbnN9PntidXR0b25zfTwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBUb2FzdDtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1widG9hc3RcIjpcIl8yTjNYaUg4UlZuRUFZbHpCRF9KQ3FaXCIsXCJlbnRyYW5jZVwiOlwiXzE5Y3czeng2ZlU0Uk1HTWFHTTV6SlpcIixcInRvYXN0Q29udGVudFwiOlwiXzJuZDNVcVpyQW9qZWFJNTB4UXVCTlhcIixcInRvYXN0SW1hZ2VcIjpcIlBIeXprQXNCdjlHeUt5TV9vVUxIT1wiLFwidG9hc3RCdXR0b25zXCI6XCJfMmVvOXJ6OG1iY0kyT1U2eEtBejZwVlwifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vVG9hc3RDb250YWluZXIubW9kdWxlLmNzc1wiO1xuXG50eXBlIFRvYXN0Q29udGFpbmVyUHJvcHMgPSB7XG4gIGNoaWxkcmVuPzogUmVhY3ROb2RlO1xufVxuZnVuY3Rpb24gVG9hc3RDb250YWluZXIoeyBjaGlsZHJlbiB9OiBUb2FzdENvbnRhaW5lclByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLnRvYXN0Q29udGFpbmVyXSl9XG4gICAgICBkYXRhLXRlc3RpZD1cInRvYXN0LWNvbnRhaW5lclwiXG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBUb2FzdENvbnRhaW5lcjtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1widG9hc3RDb250YWluZXJcIjpcIl8zUlQyYWJmekswcnQtWWpjcnFYTG5yXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgVmlkZW8gfSBmcm9tIFwiLi9WaWRlb1wiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vVmlkZW8ubW9kdWxlLmNzc1wiO1xuXG4vKipcbiAqIFRoZXJlIGlzIGEga25vd24gaXNzdWUgaW4gUmVhY3QgaW4gcmVnYXJkcyB0byB0aGUgJ211dGVkJyBwcm9wZXJ0eSB3aGljaCBjYXVzZXMgdGhlIHdhcm5pbmc6XG4gKiBcIldhcm5pbmc6IHVuc3RhYmxlX2ZsdXNoRGlzY3JldGVVcGRhdGVzOiBDYW5ub3QgZmx1c2ggdXBkYXRlcyB3aGVuIFJlYWN0IGlzIGFscmVhZHkgcmVuZGVyaW5nLlwiXG4gKlxuICogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy8xMDM4OVxuICogaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL3JlYWN0L2lzc3Vlcy82NTQ0XG4gKiBodHRwczovL2dpdGh1Yi5jb20vdGVzdGluZy1saWJyYXJ5L3JlYWN0LXRlc3RpbmctbGlicmFyeS9pc3N1ZXMvNDcwXG4gKi9cblxudHlwZSBMYXlvdXQgPSBcImNvdmVyXCIgfCBcImNvbnRhaW5cIiB8IFwic3RyZXRjaEhvcml6b250YWxseVwiIHwgXCJzdHJldGNoVmVydGljYWxseVwiO1xuXG50eXBlIFZpZGVvUHJvcHMgPSB7XG4gIHNyYzogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGxheW91dD86IExheW91dDtcbiAgYXV0b1BsYXk/OiBib29sZWFuO1xuICBsb29wPzogYm9vbGVhbjtcbiAgbXV0ZWQ/OiBib29sZWFuO1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50Pjtcbn07XG5cbmZ1bmN0aW9uIFZpZGVvKHtcbiAgc3JjLFxuICB0eXBlLFxuICBjaGlsZHJlbixcbiAgY29udGFpbmVyUmVmLFxuICBtdXRlZCA9IHRydWUsXG4gIGxvb3AgPSB0cnVlLFxuICBhdXRvUGxheSA9IHRydWUsXG4gIGxheW91dCA9IFwiY29udGFpblwiLFxufTogVmlkZW9Qcm9wcykge1xuICByZXR1cm4gY2hpbGRyZW4gPyAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuY29udGFpbmVyLCBzdHlsZXMuaGFzT3ZlcmxheV0pfVxuICAgID5cbiAgICAgIDx2aWRlb1xuICAgICAgICBkYXRhLXRlc3RpZD1cInZpZGVvXCJcbiAgICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMudmlkZW8sIHN0eWxlc1tsYXlvdXRdXSl9XG4gICAgICAgIG11dGVkPXttdXRlZH1cbiAgICAgICAgbG9vcD17bG9vcH1cbiAgICAgICAgYXV0b1BsYXk9e2F1dG9QbGF5fVxuICAgICAgICBwbGF5c0lubGluZT17dHJ1ZX1cbiAgICAgID5cbiAgICAgICAgPHNvdXJjZSBkYXRhLXRlc3RpZD1cInNvdXJjZVwiIHNyYz17c3JjfSB0eXBlPXt0eXBlfSAvPlxuICAgICAgPC92aWRlbz5cbiAgICAgIHtjaGlsZHJlbiAmJiA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm92ZXJsYXl9PntjaGlsZHJlbn08L2Rpdj59XG4gICAgPC9kaXY+XG4gICkgOiAoXG4gICAgPHZpZGVvXG4gICAgICBkYXRhLXRlc3RpZD1cInZpZGVvXCJcbiAgICAgIGNyb3NzT3JpZ2luPVwiYW5vbnltb3VzXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy52aWRlbywgc3R5bGVzW2xheW91dF1dKX1cbiAgICAgIG11dGVkPXttdXRlZH1cbiAgICAgIGxvb3A9e2xvb3B9XG4gICAgICBhdXRvUGxheT17YXV0b1BsYXl9XG4gICAgICBwbGF5c0lubGluZT17dHJ1ZX1cbiAgICA+XG4gICAgICA8c291cmNlIGRhdGEtdGVzdGlkPVwic291cmNlXCIgc3JjPXtzcmN9IHR5cGU9e3R5cGV9IC8+XG4gICAgPC92aWRlbz5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgVmlkZW87XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzFkNTV3WHVRS3B0OTdQcVFIWXg1bVdcIixcImhhc092ZXJsYXlcIjpcIl8yREFNMXg3UDF3dVlOUDhURG1YR1hjXCIsXCJ2aWRlb1wiOlwiXzNqUV9xcFVMdHIwdUZTVFdiRDBOVlpcIixcImNvdmVyXCI6XCJfMXFuVkxoZUd6REk2Tm85X253YjdobFwiLFwiY29udGFpblwiOlwiXzFYMjg2TklTSTB3cTJLSzNkalZodTNcIixcInN0cmV0Y2hIb3Jpem9udGFsbHlcIjpcIk9lZ2wtOGdkMks1bHozbVVHSl9VelwiLFwic3RyZXRjaFZlcnRpY2FsbHlcIjpcIl8xLUh6cFRZX1d0R2NaYzI1d0NvdGVZXCIsXCJvdmVybGF5XCI6XCJfMlR2WHNxQUlVbkdTcW02a25KRmhMM1wifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIHVzZVRvZ2dsZSB9IGZyb20gXCIuL3VzZVRvZ2dsZVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VPdXRzaWRlQ2xpY2sgfSBmcm9tIFwiLi91c2VPdXRzaWRlQ2xpY2tcIjtcbiIsImltcG9ydCB7IHVzZUNhbGxiYWNrLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VUb2dnbGUoXG4gIGluaXRpYWxWYWx1ZSA9IGZhbHNlXG4pOiBbYm9vbGVhbiwgKG5ld1ZhbHVlPzogYm9vbGVhbikgPT4gdm9pZF0ge1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGluaXRpYWxWYWx1ZSk7XG5cbiAgY29uc3QgdG9nZ2xlID0gKG5ld1ZhbHVlPzogYm9vbGVhbikgPT4ge1xuICAgIGlmICh0eXBlb2YgbmV3VmFsdWUgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICBzZXRWYWx1ZShuZXdWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldFZhbHVlKChwcmV2VmFsdWUpID0+IHtcbiAgICAgICAgcmV0dXJuICFwcmV2VmFsdWU7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIFt2YWx1ZSwgdXNlQ2FsbGJhY2sodG9nZ2xlLCBbdmFsdWVdKV07XG59XG5cbiIsImltcG9ydCB7IHVzZUVmZmVjdCwgdXNlUmVmIH0gZnJvbSBcInJlYWN0XCI7XG5cbnR5cGUgQ2FsbGJhY2sgPSAoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB1c2VPdXRzaWRlQ2xpY2soY2FsbGJhY2s6IENhbGxiYWNrKSB7XG4gIGNvbnN0IHJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgICAgaWYgKCFyZWYuY3VycmVudCB8fCByZWYuY3VycmVudC5jb250YWlucyhldmVudC50YXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjYWxsYmFjayhldmVudCk7XG4gICAgfTtcblxuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBoYW5kbGVDbGljayk7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIiwgaGFuZGxlQ2xpY2spO1xuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBoYW5kbGVDbGljayk7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwidG91Y2hzdGFydFwiLCBoYW5kbGVDbGljayk7XG4gICAgfTtcbiAgfSwgW2NhbGxiYWNrXSk7XG5cbiAgcmV0dXJuIHJlZjtcbn1cbiIsIi8qIVxuICogaG90a2V5cy1qcyB2My44LjFcbiAqIEEgc2ltcGxlIG1pY3JvLWxpYnJhcnkgZm9yIGRlZmluaW5nIGFuZCBkaXNwYXRjaGluZyBrZXlib2FyZCBzaG9ydGN1dHMuIEl0IGhhcyBubyBkZXBlbmRlbmNpZXMuXG4gKiBcbiAqIENvcHlyaWdodCAoYykgMjAyMCBrZW5ueSB3b25nIDx3b3dvaG9vQHFxLmNvbT5cbiAqIGh0dHA6Ly9qYXl3Y2psb3ZlLmdpdGh1Yi5pby9ob3RrZXlzXG4gKiBcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZS5cbiAqL1xuXG52YXIgaXNmZiA9IHR5cGVvZiBuYXZpZ2F0b3IgIT09ICd1bmRlZmluZWQnID8gbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLmluZGV4T2YoJ2ZpcmVmb3gnKSA+IDAgOiBmYWxzZTsgLy8g57uR5a6a5LqL5Lu2XG5cbmZ1bmN0aW9uIGFkZEV2ZW50KG9iamVjdCwgZXZlbnQsIG1ldGhvZCkge1xuICBpZiAob2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIpIHtcbiAgICBvYmplY3QuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgbWV0aG9kLCBmYWxzZSk7XG4gIH0gZWxzZSBpZiAob2JqZWN0LmF0dGFjaEV2ZW50KSB7XG4gICAgb2JqZWN0LmF0dGFjaEV2ZW50KFwib25cIi5jb25jYXQoZXZlbnQpLCBmdW5jdGlvbiAoKSB7XG4gICAgICBtZXRob2Qod2luZG93LmV2ZW50KTtcbiAgICB9KTtcbiAgfVxufSAvLyDkv67ppbDplK7ovazmjaLmiJDlr7nlupTnmoTplK7noIFcblxuXG5mdW5jdGlvbiBnZXRNb2RzKG1vZGlmaWVyLCBrZXkpIHtcbiAgdmFyIG1vZHMgPSBrZXkuc2xpY2UoMCwga2V5Lmxlbmd0aCAtIDEpO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbW9kcy5sZW5ndGg7IGkrKykge1xuICAgIG1vZHNbaV0gPSBtb2RpZmllclttb2RzW2ldLnRvTG93ZXJDYXNlKCldO1xuICB9XG5cbiAgcmV0dXJuIG1vZHM7XG59IC8vIOWkhOeQhuS8oOeahGtleeWtl+espuS4sui9rOaNouaIkOaVsOe7hFxuXG5cbmZ1bmN0aW9uIGdldEtleXMoa2V5KSB7XG4gIGlmICh0eXBlb2Yga2V5ICE9PSAnc3RyaW5nJykga2V5ID0gJyc7XG4gIGtleSA9IGtleS5yZXBsYWNlKC9cXHMvZywgJycpOyAvLyDljLnphY3ku7vkvZXnqbrnmb3lrZfnrKYs5YyF5ous56m65qC844CB5Yi26KGo56ym44CB5o2i6aG156ym562J562JXG5cbiAgdmFyIGtleXMgPSBrZXkuc3BsaXQoJywnKTsgLy8g5ZCM5pe26K6+572u5aSa5Liq5b+r5o236ZSu77yM5LulJywn5YiG5YmyXG5cbiAgdmFyIGluZGV4ID0ga2V5cy5sYXN0SW5kZXhPZignJyk7IC8vIOW/q+aNt+mUruWPr+iDveWMheWQqycsJ++8jOmcgOeJueauiuWkhOeQhlxuXG4gIGZvciAoOyBpbmRleCA+PSAwOykge1xuICAgIGtleXNbaW5kZXggLSAxXSArPSAnLCc7XG4gICAga2V5cy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIGluZGV4ID0ga2V5cy5sYXN0SW5kZXhPZignJyk7XG4gIH1cblxuICByZXR1cm4ga2V5cztcbn0gLy8g5q+U6L6D5L+u6aWw6ZSu55qE5pWw57uEXG5cblxuZnVuY3Rpb24gY29tcGFyZUFycmF5KGExLCBhMikge1xuICB2YXIgYXJyMSA9IGExLmxlbmd0aCA+PSBhMi5sZW5ndGggPyBhMSA6IGEyO1xuICB2YXIgYXJyMiA9IGExLmxlbmd0aCA+PSBhMi5sZW5ndGggPyBhMiA6IGExO1xuICB2YXIgaXNJbmRleCA9IHRydWU7XG5cbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnIxLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKGFycjIuaW5kZXhPZihhcnIxW2ldKSA9PT0gLTEpIGlzSW5kZXggPSBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBpc0luZGV4O1xufVxuXG52YXIgX2tleU1hcCA9IHtcbiAgYmFja3NwYWNlOiA4LFxuICB0YWI6IDksXG4gIGNsZWFyOiAxMixcbiAgZW50ZXI6IDEzLFxuICByZXR1cm46IDEzLFxuICBlc2M6IDI3LFxuICBlc2NhcGU6IDI3LFxuICBzcGFjZTogMzIsXG4gIGxlZnQ6IDM3LFxuICB1cDogMzgsXG4gIHJpZ2h0OiAzOSxcbiAgZG93bjogNDAsXG4gIGRlbDogNDYsXG4gIGRlbGV0ZTogNDYsXG4gIGluczogNDUsXG4gIGluc2VydDogNDUsXG4gIGhvbWU6IDM2LFxuICBlbmQ6IDM1LFxuICBwYWdldXA6IDMzLFxuICBwYWdlZG93bjogMzQsXG4gIGNhcHNsb2NrOiAyMCxcbiAgJ+KHqic6IDIwLFxuICAnLCc6IDE4OCxcbiAgJy4nOiAxOTAsXG4gICcvJzogMTkxLFxuICAnYCc6IDE5MixcbiAgJy0nOiBpc2ZmID8gMTczIDogMTg5LFxuICAnPSc6IGlzZmYgPyA2MSA6IDE4NyxcbiAgJzsnOiBpc2ZmID8gNTkgOiAxODYsXG4gICdcXCcnOiAyMjIsXG4gICdbJzogMjE5LFxuICAnXSc6IDIyMSxcbiAgJ1xcXFwnOiAyMjBcbn07IC8vIE1vZGlmaWVyIEtleXNcblxudmFyIF9tb2RpZmllciA9IHtcbiAgLy8gc2hpZnRLZXlcbiAgJ+KHpyc6IDE2LFxuICBzaGlmdDogMTYsXG4gIC8vIGFsdEtleVxuICAn4oylJzogMTgsXG4gIGFsdDogMTgsXG4gIG9wdGlvbjogMTgsXG4gIC8vIGN0cmxLZXlcbiAgJ+KMgyc6IDE3LFxuICBjdHJsOiAxNyxcbiAgY29udHJvbDogMTcsXG4gIC8vIG1ldGFLZXlcbiAgJ+KMmCc6IDkxLFxuICBjbWQ6IDkxLFxuICBjb21tYW5kOiA5MVxufTtcbnZhciBtb2RpZmllck1hcCA9IHtcbiAgMTY6ICdzaGlmdEtleScsXG4gIDE4OiAnYWx0S2V5JyxcbiAgMTc6ICdjdHJsS2V5JyxcbiAgOTE6ICdtZXRhS2V5JyxcbiAgc2hpZnRLZXk6IDE2LFxuICBjdHJsS2V5OiAxNyxcbiAgYWx0S2V5OiAxOCxcbiAgbWV0YUtleTogOTFcbn07XG52YXIgX21vZHMgPSB7XG4gIDE2OiBmYWxzZSxcbiAgMTg6IGZhbHNlLFxuICAxNzogZmFsc2UsXG4gIDkxOiBmYWxzZVxufTtcbnZhciBfaGFuZGxlcnMgPSB7fTsgLy8gRjF+RjEyIHNwZWNpYWwga2V5XG5cbmZvciAodmFyIGsgPSAxOyBrIDwgMjA7IGsrKykge1xuICBfa2V5TWFwW1wiZlwiLmNvbmNhdChrKV0gPSAxMTEgKyBrO1xufVxuXG52YXIgX2Rvd25LZXlzID0gW107IC8vIOiusOW9leaRgeS4i+eahOe7keWumumUrlxuXG52YXIgX3Njb3BlID0gJ2FsbCc7IC8vIOm7mOiupOeDremUruiMg+WbtFxuXG52YXIgZWxlbWVudEhhc0JpbmRFdmVudCA9IFtdOyAvLyDlt7Lnu5Hlrprkuovku7bnmoToioLngrnorrDlvZVcbi8vIOi/lOWbnumUrueggVxuXG52YXIgY29kZSA9IGZ1bmN0aW9uIGNvZGUoeCkge1xuICByZXR1cm4gX2tleU1hcFt4LnRvTG93ZXJDYXNlKCldIHx8IF9tb2RpZmllclt4LnRvTG93ZXJDYXNlKCldIHx8IHgudG9VcHBlckNhc2UoKS5jaGFyQ29kZUF0KDApO1xufTsgLy8g6K6+572u6I635Y+W5b2T5YmN6IyD5Zu077yI6buY6K6k5Li6J+aJgOaciSfvvIlcblxuXG5mdW5jdGlvbiBzZXRTY29wZShzY29wZSkge1xuICBfc2NvcGUgPSBzY29wZSB8fCAnYWxsJztcbn0gLy8g6I635Y+W5b2T5YmN6IyD5Zu0XG5cblxuZnVuY3Rpb24gZ2V0U2NvcGUoKSB7XG4gIHJldHVybiBfc2NvcGUgfHwgJ2FsbCc7XG59IC8vIOiOt+WPluaRgeS4i+e7keWumumUrueahOmUruWAvFxuXG5cbmZ1bmN0aW9uIGdldFByZXNzZWRLZXlDb2RlcygpIHtcbiAgcmV0dXJuIF9kb3duS2V5cy5zbGljZSgwKTtcbn0gLy8g6KGo5Y2V5o6n5Lu25o6n5Lu25Yik5patIOi/lOWbniBCb29sZWFuXG4vLyBob3RrZXkgaXMgZWZmZWN0aXZlIG9ubHkgd2hlbiBmaWx0ZXIgcmV0dXJuIHRydWVcblxuXG5mdW5jdGlvbiBmaWx0ZXIoZXZlbnQpIHtcbiAgdmFyIHRhcmdldCA9IGV2ZW50LnRhcmdldCB8fCBldmVudC5zcmNFbGVtZW50O1xuICB2YXIgdGFnTmFtZSA9IHRhcmdldC50YWdOYW1lO1xuICB2YXIgZmxhZyA9IHRydWU7IC8vIGlnbm9yZTogaXNDb250ZW50RWRpdGFibGUgPT09ICd0cnVlJywgPGlucHV0PiBhbmQgPHRleHRhcmVhPiB3aGVuIHJlYWRPbmx5IHN0YXRlIGlzIGZhbHNlLCA8c2VsZWN0PlxuXG4gIGlmICh0YXJnZXQuaXNDb250ZW50RWRpdGFibGUgfHwgKHRhZ05hbWUgPT09ICdJTlBVVCcgfHwgdGFnTmFtZSA9PT0gJ1RFWFRBUkVBJyB8fCB0YWdOYW1lID09PSAnU0VMRUNUJykgJiYgIXRhcmdldC5yZWFkT25seSkge1xuICAgIGZsYWcgPSBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiBmbGFnO1xufSAvLyDliKTmlq3mkYHkuIvnmoTplK7mmK/lkKbkuLrmn5DkuKrplK7vvIzov5Tlm550cnVl5oiW6ICFZmFsc2VcblxuXG5mdW5jdGlvbiBpc1ByZXNzZWQoa2V5Q29kZSkge1xuICBpZiAodHlwZW9mIGtleUNvZGUgPT09ICdzdHJpbmcnKSB7XG4gICAga2V5Q29kZSA9IGNvZGUoa2V5Q29kZSk7IC8vIOi9rOaNouaIkOmUrueggVxuICB9XG5cbiAgcmV0dXJuIF9kb3duS2V5cy5pbmRleE9mKGtleUNvZGUpICE9PSAtMTtcbn0gLy8g5b6q546v5Yig6ZmkaGFuZGxlcnPkuK3nmoTmiYDmnIkgc2NvcGUo6IyD5Zu0KVxuXG5cbmZ1bmN0aW9uIGRlbGV0ZVNjb3BlKHNjb3BlLCBuZXdTY29wZSkge1xuICB2YXIgaGFuZGxlcnM7XG4gIHZhciBpOyAvLyDmsqHmnInmjIflrppzY29wZe+8jOiOt+WPlnNjb3BlXG5cbiAgaWYgKCFzY29wZSkgc2NvcGUgPSBnZXRTY29wZSgpO1xuXG4gIGZvciAodmFyIGtleSBpbiBfaGFuZGxlcnMpIHtcbiAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKF9oYW5kbGVycywga2V5KSkge1xuICAgICAgaGFuZGxlcnMgPSBfaGFuZGxlcnNba2V5XTtcblxuICAgICAgZm9yIChpID0gMDsgaSA8IGhhbmRsZXJzLmxlbmd0aDspIHtcbiAgICAgICAgaWYgKGhhbmRsZXJzW2ldLnNjb3BlID09PSBzY29wZSkgaGFuZGxlcnMuc3BsaWNlKGksIDEpO2Vsc2UgaSsrO1xuICAgICAgfVxuICAgIH1cbiAgfSAvLyDlpoLmnpxzY29wZeiiq+WIoOmZpO+8jOWwhnNjb3Bl6YeN572u5Li6YWxsXG5cblxuICBpZiAoZ2V0U2NvcGUoKSA9PT0gc2NvcGUpIHNldFNjb3BlKG5ld1Njb3BlIHx8ICdhbGwnKTtcbn0gLy8g5riF6Zmk5L+u6aWw6ZSuXG5cblxuZnVuY3Rpb24gY2xlYXJNb2RpZmllcihldmVudCkge1xuICB2YXIga2V5ID0gZXZlbnQua2V5Q29kZSB8fCBldmVudC53aGljaCB8fCBldmVudC5jaGFyQ29kZTtcblxuICB2YXIgaSA9IF9kb3duS2V5cy5pbmRleE9mKGtleSk7IC8vIOS7juWIl+ihqOS4rea4hemZpOaMieWOi+i/h+eahOmUrlxuXG5cbiAgaWYgKGkgPj0gMCkge1xuICAgIF9kb3duS2V5cy5zcGxpY2UoaSwgMSk7XG4gIH0gLy8g54m55q6K5aSE55CGIGNtbWFuZCDplK7vvIzlnKggY21tYW5kIOe7hOWQiOW/q+aNt+mUriBrZXl1cCDlj6rmiafooYzkuIDmrKHnmoTpl67pophcblxuXG4gIGlmIChldmVudC5rZXkgJiYgZXZlbnQua2V5LnRvTG93ZXJDYXNlKCkgPT09ICdtZXRhJykge1xuICAgIF9kb3duS2V5cy5zcGxpY2UoMCwgX2Rvd25LZXlzLmxlbmd0aCk7XG4gIH0gLy8g5L+u6aWw6ZSuIHNoaWZ0S2V5IGFsdEtleSBjdHJsS2V5IChjb21tYW5kfHxtZXRhS2V5KSDmuIXpmaRcblxuXG4gIGlmIChrZXkgPT09IDkzIHx8IGtleSA9PT0gMjI0KSBrZXkgPSA5MTtcblxuICBpZiAoa2V5IGluIF9tb2RzKSB7XG4gICAgX21vZHNba2V5XSA9IGZhbHNlOyAvLyDlsIbkv67ppbDplK7ph43nva7kuLpmYWxzZVxuXG4gICAgZm9yICh2YXIgayBpbiBfbW9kaWZpZXIpIHtcbiAgICAgIGlmIChfbW9kaWZpZXJba10gPT09IGtleSkgaG90a2V5c1trXSA9IGZhbHNlO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiB1bmJpbmQoa2V5c0luZm8pIHtcbiAgLy8gdW5iaW5kKCksIHVuYmluZCBhbGwga2V5c1xuICBpZiAoIWtleXNJbmZvKSB7XG4gICAgT2JqZWN0LmtleXMoX2hhbmRsZXJzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgIHJldHVybiBkZWxldGUgX2hhbmRsZXJzW2tleV07XG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShrZXlzSW5mbykpIHtcbiAgICAvLyBzdXBwb3J0IGxpa2UgOiB1bmJpbmQoW3trZXk6ICdjdHJsK2EnLCBzY29wZTogJ3MxJ30sIHtrZXk6ICdjdHJsLWEnLCBzY29wZTogJ3MyJywgc3BsaXRLZXk6ICctJ31dKVxuICAgIGtleXNJbmZvLmZvckVhY2goZnVuY3Rpb24gKGluZm8pIHtcbiAgICAgIGlmIChpbmZvLmtleSkgZWFjaFVuYmluZChpbmZvKTtcbiAgICB9KTtcbiAgfSBlbHNlIGlmICh0eXBlb2Yga2V5c0luZm8gPT09ICdvYmplY3QnKSB7XG4gICAgLy8gc3VwcG9ydCBsaWtlIHVuYmluZCh7a2V5OiAnY3RybCthLCBjdHJsK2InLCBzY29wZTonYWJjJ30pXG4gICAgaWYgKGtleXNJbmZvLmtleSkgZWFjaFVuYmluZChrZXlzSW5mbyk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGtleXNJbmZvID09PSAnc3RyaW5nJykge1xuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4gPiAxID8gX2xlbiAtIDEgOiAwKSwgX2tleSA9IDE7IF9rZXkgPCBfbGVuOyBfa2V5KyspIHtcbiAgICAgIGFyZ3NbX2tleSAtIDFdID0gYXJndW1lbnRzW19rZXldO1xuICAgIH1cblxuICAgIC8vIHN1cHBvcnQgb2xkIG1ldGhvZFxuICAgIC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgICB2YXIgc2NvcGUgPSBhcmdzWzBdLFxuICAgICAgICBtZXRob2QgPSBhcmdzWzFdO1xuXG4gICAgaWYgKHR5cGVvZiBzY29wZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgbWV0aG9kID0gc2NvcGU7XG4gICAgICBzY29wZSA9ICcnO1xuICAgIH1cblxuICAgIGVhY2hVbmJpbmQoe1xuICAgICAga2V5OiBrZXlzSW5mbyxcbiAgICAgIHNjb3BlOiBzY29wZSxcbiAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgICAgc3BsaXRLZXk6ICcrJ1xuICAgIH0pO1xuICB9XG59IC8vIOino+mZpOe7keWumuafkOS4quiMg+WbtOeahOW/q+aNt+mUrlxuXG5cbnZhciBlYWNoVW5iaW5kID0gZnVuY3Rpb24gZWFjaFVuYmluZChfcmVmKSB7XG4gIHZhciBrZXkgPSBfcmVmLmtleSxcbiAgICAgIHNjb3BlID0gX3JlZi5zY29wZSxcbiAgICAgIG1ldGhvZCA9IF9yZWYubWV0aG9kLFxuICAgICAgX3JlZiRzcGxpdEtleSA9IF9yZWYuc3BsaXRLZXksXG4gICAgICBzcGxpdEtleSA9IF9yZWYkc3BsaXRLZXkgPT09IHZvaWQgMCA/ICcrJyA6IF9yZWYkc3BsaXRLZXk7XG4gIHZhciBtdWx0aXBsZUtleXMgPSBnZXRLZXlzKGtleSk7XG4gIG11bHRpcGxlS2V5cy5mb3JFYWNoKGZ1bmN0aW9uIChvcmlnaW5LZXkpIHtcbiAgICB2YXIgdW5iaW5kS2V5cyA9IG9yaWdpbktleS5zcGxpdChzcGxpdEtleSk7XG4gICAgdmFyIGxlbiA9IHVuYmluZEtleXMubGVuZ3RoO1xuICAgIHZhciBsYXN0S2V5ID0gdW5iaW5kS2V5c1tsZW4gLSAxXTtcbiAgICB2YXIga2V5Q29kZSA9IGxhc3RLZXkgPT09ICcqJyA/ICcqJyA6IGNvZGUobGFzdEtleSk7XG4gICAgaWYgKCFfaGFuZGxlcnNba2V5Q29kZV0pIHJldHVybjsgLy8g5Yik5pat5piv5ZCm5Lyg5YWl6IyD5Zu077yM5rKh5pyJ5bCx6I635Y+W6IyD5Zu0XG5cbiAgICBpZiAoIXNjb3BlKSBzY29wZSA9IGdldFNjb3BlKCk7XG4gICAgdmFyIG1vZHMgPSBsZW4gPiAxID8gZ2V0TW9kcyhfbW9kaWZpZXIsIHVuYmluZEtleXMpIDogW107XG4gICAgX2hhbmRsZXJzW2tleUNvZGVdID0gX2hhbmRsZXJzW2tleUNvZGVdLm1hcChmdW5jdGlvbiAocmVjb3JkKSB7XG4gICAgICAvLyDpgJrov4flh73mlbDliKTmlq3vvIzmmK/lkKbop6PpmaTnu5HlrprvvIzlh73mlbDnm7jnrYnnm7TmjqXov5Tlm55cbiAgICAgIHZhciBpc01hdGNoaW5nTWV0aG9kID0gbWV0aG9kID8gcmVjb3JkLm1ldGhvZCA9PT0gbWV0aG9kIDogdHJ1ZTtcblxuICAgICAgaWYgKGlzTWF0Y2hpbmdNZXRob2QgJiYgcmVjb3JkLnNjb3BlID09PSBzY29wZSAmJiBjb21wYXJlQXJyYXkocmVjb3JkLm1vZHMsIG1vZHMpKSB7XG4gICAgICAgIHJldHVybiB7fTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlY29yZDtcbiAgICB9KTtcbiAgfSk7XG59OyAvLyDlr7nnm5HlkKzlr7nlupTlv6vmjbfplK7nmoTlm57osIPlh73mlbDov5vooYzlpITnkIZcblxuXG5mdW5jdGlvbiBldmVudEhhbmRsZXIoZXZlbnQsIGhhbmRsZXIsIHNjb3BlKSB7XG4gIHZhciBtb2RpZmllcnNNYXRjaDsgLy8g55yL5a6D5piv5ZCm5Zyo5b2T5YmN6IyD5Zu0XG5cbiAgaWYgKGhhbmRsZXIuc2NvcGUgPT09IHNjb3BlIHx8IGhhbmRsZXIuc2NvcGUgPT09ICdhbGwnKSB7XG4gICAgLy8g5qOA5p+l5piv5ZCm5Yy56YWN5L+u6aWw56ym77yI5aaC5p6c5pyJ6L+U5ZuedHJ1Ze+8iVxuICAgIG1vZGlmaWVyc01hdGNoID0gaGFuZGxlci5tb2RzLmxlbmd0aCA+IDA7XG5cbiAgICBmb3IgKHZhciB5IGluIF9tb2RzKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKF9tb2RzLCB5KSkge1xuICAgICAgICBpZiAoIV9tb2RzW3ldICYmIGhhbmRsZXIubW9kcy5pbmRleE9mKCt5KSA+IC0xIHx8IF9tb2RzW3ldICYmIGhhbmRsZXIubW9kcy5pbmRleE9mKCt5KSA9PT0gLTEpIHtcbiAgICAgICAgICBtb2RpZmllcnNNYXRjaCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSAvLyDosIPnlKjlpITnkIbnqIvluo/vvIzlpoLmnpzmmK/kv67ppbDplK7kuI3lgZrlpITnkIZcblxuXG4gICAgaWYgKGhhbmRsZXIubW9kcy5sZW5ndGggPT09IDAgJiYgIV9tb2RzWzE2XSAmJiAhX21vZHNbMThdICYmICFfbW9kc1sxN10gJiYgIV9tb2RzWzkxXSB8fCBtb2RpZmllcnNNYXRjaCB8fCBoYW5kbGVyLnNob3J0Y3V0ID09PSAnKicpIHtcbiAgICAgIGlmIChoYW5kbGVyLm1ldGhvZChldmVudCwgaGFuZGxlcikgPT09IGZhbHNlKSB7XG4gICAgICAgIGlmIChldmVudC5wcmV2ZW50RGVmYXVsdCkgZXZlbnQucHJldmVudERlZmF1bHQoKTtlbHNlIGV2ZW50LnJldHVyblZhbHVlID0gZmFsc2U7XG4gICAgICAgIGlmIChldmVudC5zdG9wUHJvcGFnYXRpb24pIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBpZiAoZXZlbnQuY2FuY2VsQnViYmxlKSBldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufSAvLyDlpITnkIZrZXlkb3du5LqL5Lu2XG5cblxuZnVuY3Rpb24gZGlzcGF0Y2goZXZlbnQpIHtcbiAgdmFyIGFzdGVyaXNrID0gX2hhbmRsZXJzWycqJ107XG4gIHZhciBrZXkgPSBldmVudC5rZXlDb2RlIHx8IGV2ZW50LndoaWNoIHx8IGV2ZW50LmNoYXJDb2RlOyAvLyDooajljZXmjqfku7bov4fmu6Qg6buY6K6k6KGo5Y2V5o6n5Lu25LiN6Kem5Y+R5b+r5o236ZSuXG5cbiAgaWYgKCFob3RrZXlzLmZpbHRlci5jYWxsKHRoaXMsIGV2ZW50KSkgcmV0dXJuOyAvLyBHZWNrbyhGaXJlZm94KeeahGNvbW1hbmTplK7lgLwyMjTvvIzlnKhXZWJraXQoQ2hyb21lKeS4reS/neaMgeS4gOiHtFxuICAvLyBXZWJraXTlt6blj7MgY29tbWFuZCDplK7lgLzkuI3kuIDmoLdcblxuICBpZiAoa2V5ID09PSA5MyB8fCBrZXkgPT09IDIyNCkga2V5ID0gOTE7XG4gIC8qKlxuICAgKiBDb2xsZWN0IGJvdW5kIGtleXNcbiAgICogSWYgYW4gSW5wdXQgTWV0aG9kIEVkaXRvciBpcyBwcm9jZXNzaW5nIGtleSBpbnB1dCBhbmQgdGhlIGV2ZW50IGlzIGtleWRvd24sIHJldHVybiAyMjkuXG4gICAqIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzI1MDQzOTM0L2lzLWl0LW9rLXRvLWlnbm9yZS1rZXlkb3duLWV2ZW50cy13aXRoLWtleWNvZGUtMjI5XG4gICAqIGh0dHA6Ly9saXN0cy53My5vcmcvQXJjaGl2ZXMvUHVibGljL3d3dy1kb20vMjAxMEp1bFNlcC9hdHQtMDE4Mi9rZXlDb2RlLXNwZWMuaHRtbFxuICAgKi9cblxuICBpZiAoX2Rvd25LZXlzLmluZGV4T2Yoa2V5KSA9PT0gLTEgJiYga2V5ICE9PSAyMjkpIF9kb3duS2V5cy5wdXNoKGtleSk7XG4gIC8qKlxuICAgKiBKZXN0IHRlc3QgY2FzZXMgYXJlIHJlcXVpcmVkLlxuICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAqL1xuXG4gIFsnY3RybEtleScsICdhbHRLZXknLCAnc2hpZnRLZXknLCAnbWV0YUtleSddLmZvckVhY2goZnVuY3Rpb24gKGtleU5hbWUpIHtcbiAgICB2YXIga2V5TnVtID0gbW9kaWZpZXJNYXBba2V5TmFtZV07XG5cbiAgICBpZiAoZXZlbnRba2V5TmFtZV0gJiYgX2Rvd25LZXlzLmluZGV4T2Yoa2V5TnVtKSA9PT0gLTEpIHtcbiAgICAgIF9kb3duS2V5cy5wdXNoKGtleU51bSk7XG4gICAgfSBlbHNlIGlmICghZXZlbnRba2V5TmFtZV0gJiYgX2Rvd25LZXlzLmluZGV4T2Yoa2V5TnVtKSA+IC0xKSB7XG4gICAgICBfZG93bktleXMuc3BsaWNlKF9kb3duS2V5cy5pbmRleE9mKGtleU51bSksIDEpO1xuICAgIH0gZWxzZSBpZiAoa2V5TmFtZSA9PT0gJ21ldGFLZXknICYmIGV2ZW50W2tleU5hbWVdICYmIF9kb3duS2V5cy5sZW5ndGggPT09IDMpIHtcbiAgICAgIC8qKlxuICAgICAgICogRml4IGlmIENvbW1hbmQgaXMgcHJlc3NlZDpcbiAgICAgICAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgICAgICAqL1xuICAgICAgaWYgKCEoZXZlbnQuY3RybEtleSB8fCBldmVudC5zaGlmdEtleSB8fCBldmVudC5hbHRLZXkpKSB7XG4gICAgICAgIF9kb3duS2V5cyA9IF9kb3duS2V5cy5zbGljZShfZG93bktleXMuaW5kZXhPZihrZXlOdW0pKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICAvKipcbiAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgKi9cblxuICBpZiAoa2V5IGluIF9tb2RzKSB7XG4gICAgX21vZHNba2V5XSA9IHRydWU7IC8vIOWwhueJueauiuWtl+espueahGtleeazqOWGjOWIsCBob3RrZXlzIOS4ilxuXG4gICAgZm9yICh2YXIgayBpbiBfbW9kaWZpZXIpIHtcbiAgICAgIGlmIChfbW9kaWZpZXJba10gPT09IGtleSkgaG90a2V5c1trXSA9IHRydWU7XG4gICAgfVxuXG4gICAgaWYgKCFhc3RlcmlzaykgcmV0dXJuO1xuICB9IC8vIOWwhiBtb2RpZmllck1hcCDph4zpnaLnmoTkv67ppbDplK7nu5HlrprliLAgZXZlbnQg5LitXG5cblxuICBmb3IgKHZhciBlIGluIF9tb2RzKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChfbW9kcywgZSkpIHtcbiAgICAgIF9tb2RzW2VdID0gZXZlbnRbbW9kaWZpZXJNYXBbZV1dO1xuICAgIH1cbiAgfVxuICAvKipcbiAgICogaHR0cHM6Ly9naXRodWIuY29tL2pheXdjamxvdmUvaG90a2V5cy9wdWxsLzEyOVxuICAgKiBUaGlzIHNvbHZlcyB0aGUgaXNzdWUgaW4gRmlyZWZveCBvbiBXaW5kb3dzIHdoZXJlIGhvdGtleXMgY29ycmVzcG9uZGluZyB0byBzcGVjaWFsIGNoYXJhY3RlcnMgd291bGQgbm90IHRyaWdnZXIuXG4gICAqIEFuIGV4YW1wbGUgb2YgdGhpcyBpcyBjdHJsK2FsdCttIG9uIGEgU3dlZGlzaCBrZXlib2FyZCB3aGljaCBpcyB1c2VkIHRvIHR5cGUgzrwuXG4gICAqIEJyb3dzZXIgc3VwcG9ydDogaHR0cHM6Ly9jYW5pdXNlLmNvbS8jZmVhdD1rZXlib2FyZGV2ZW50LWdldG1vZGlmaWVyc3RhdGVcbiAgICovXG5cblxuICBpZiAoZXZlbnQuZ2V0TW9kaWZpZXJTdGF0ZSAmJiAhKGV2ZW50LmFsdEtleSAmJiAhZXZlbnQuY3RybEtleSkgJiYgZXZlbnQuZ2V0TW9kaWZpZXJTdGF0ZSgnQWx0R3JhcGgnKSkge1xuICAgIGlmIChfZG93bktleXMuaW5kZXhPZigxNykgPT09IC0xKSB7XG4gICAgICBfZG93bktleXMucHVzaCgxNyk7XG4gICAgfVxuXG4gICAgaWYgKF9kb3duS2V5cy5pbmRleE9mKDE4KSA9PT0gLTEpIHtcbiAgICAgIF9kb3duS2V5cy5wdXNoKDE4KTtcbiAgICB9XG5cbiAgICBfbW9kc1sxN10gPSB0cnVlO1xuICAgIF9tb2RzWzE4XSA9IHRydWU7XG4gIH0gLy8g6I635Y+W6IyD5Zu0IOm7mOiupOS4uiBgYWxsYFxuXG5cbiAgdmFyIHNjb3BlID0gZ2V0U2NvcGUoKTsgLy8g5a+55Lu75L2V5b+r5o236ZSu6YO96ZyA6KaB5YGa55qE5aSE55CGXG5cbiAgaWYgKGFzdGVyaXNrKSB7XG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhc3Rlcmlzay5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKGFzdGVyaXNrW2ldLnNjb3BlID09PSBzY29wZSAmJiAoZXZlbnQudHlwZSA9PT0gJ2tleWRvd24nICYmIGFzdGVyaXNrW2ldLmtleWRvd24gfHwgZXZlbnQudHlwZSA9PT0gJ2tleXVwJyAmJiBhc3Rlcmlza1tpXS5rZXl1cCkpIHtcbiAgICAgICAgZXZlbnRIYW5kbGVyKGV2ZW50LCBhc3Rlcmlza1tpXSwgc2NvcGUpO1xuICAgICAgfVxuICAgIH1cbiAgfSAvLyBrZXkg5LiN5ZyoIF9oYW5kbGVycyDkuK3ov5Tlm55cblxuXG4gIGlmICghKGtleSBpbiBfaGFuZGxlcnMpKSByZXR1cm47XG5cbiAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IF9oYW5kbGVyc1trZXldLmxlbmd0aDsgX2krKykge1xuICAgIGlmIChldmVudC50eXBlID09PSAna2V5ZG93bicgJiYgX2hhbmRsZXJzW2tleV1bX2ldLmtleWRvd24gfHwgZXZlbnQudHlwZSA9PT0gJ2tleXVwJyAmJiBfaGFuZGxlcnNba2V5XVtfaV0ua2V5dXApIHtcbiAgICAgIGlmIChfaGFuZGxlcnNba2V5XVtfaV0ua2V5KSB7XG4gICAgICAgIHZhciByZWNvcmQgPSBfaGFuZGxlcnNba2V5XVtfaV07XG4gICAgICAgIHZhciBzcGxpdEtleSA9IHJlY29yZC5zcGxpdEtleTtcbiAgICAgICAgdmFyIGtleVNob3J0Y3V0ID0gcmVjb3JkLmtleS5zcGxpdChzcGxpdEtleSk7XG4gICAgICAgIHZhciBfZG93bktleXNDdXJyZW50ID0gW107IC8vIOiusOW9leW9k+WJjeaMiemUrumUruWAvFxuXG4gICAgICAgIGZvciAodmFyIGEgPSAwOyBhIDwga2V5U2hvcnRjdXQubGVuZ3RoOyBhKyspIHtcbiAgICAgICAgICBfZG93bktleXNDdXJyZW50LnB1c2goY29kZShrZXlTaG9ydGN1dFthXSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKF9kb3duS2V5c0N1cnJlbnQuc29ydCgpLmpvaW4oJycpID09PSBfZG93bktleXMuc29ydCgpLmpvaW4oJycpKSB7XG4gICAgICAgICAgLy8g5om+5Yiw5aSE55CG5YaF5a65XG4gICAgICAgICAgZXZlbnRIYW5kbGVyKGV2ZW50LCByZWNvcmQsIHNjb3BlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufSAvLyDliKTmlq0gZWxlbWVudCDmmK/lkKblt7Lnu4/nu5Hlrprkuovku7ZcblxuXG5mdW5jdGlvbiBpc0VsZW1lbnRCaW5kKGVsZW1lbnQpIHtcbiAgcmV0dXJuIGVsZW1lbnRIYXNCaW5kRXZlbnQuaW5kZXhPZihlbGVtZW50KSA+IC0xO1xufVxuXG5mdW5jdGlvbiBob3RrZXlzKGtleSwgb3B0aW9uLCBtZXRob2QpIHtcbiAgX2Rvd25LZXlzID0gW107XG4gIHZhciBrZXlzID0gZ2V0S2V5cyhrZXkpOyAvLyDpnIDopoHlpITnkIbnmoTlv6vmjbfplK7liJfooahcblxuICB2YXIgbW9kcyA9IFtdO1xuICB2YXIgc2NvcGUgPSAnYWxsJzsgLy8gc2NvcGXpu5jorqTkuLphbGzvvIzmiYDmnInojIPlm7Tpg73mnInmlYhcblxuICB2YXIgZWxlbWVudCA9IGRvY3VtZW50OyAvLyDlv6vmjbfplK7kuovku7bnu5HlrproioLngrlcblxuICB2YXIgaSA9IDA7XG4gIHZhciBrZXl1cCA9IGZhbHNlO1xuICB2YXIga2V5ZG93biA9IHRydWU7XG4gIHZhciBzcGxpdEtleSA9ICcrJzsgLy8g5a+55Li66K6+5a6a6IyD5Zu055qE5Yik5patXG5cbiAgaWYgKG1ldGhvZCA9PT0gdW5kZWZpbmVkICYmIHR5cGVvZiBvcHRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICBtZXRob2QgPSBvcHRpb247XG4gIH1cblxuICBpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9wdGlvbikgPT09ICdbb2JqZWN0IE9iamVjdF0nKSB7XG4gICAgaWYgKG9wdGlvbi5zY29wZSkgc2NvcGUgPSBvcHRpb24uc2NvcGU7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICAgIGlmIChvcHRpb24uZWxlbWVudCkgZWxlbWVudCA9IG9wdGlvbi5lbGVtZW50OyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgICBpZiAob3B0aW9uLmtleXVwKSBrZXl1cCA9IG9wdGlvbi5rZXl1cDsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gICAgaWYgKG9wdGlvbi5rZXlkb3duICE9PSB1bmRlZmluZWQpIGtleWRvd24gPSBvcHRpb24ua2V5ZG93bjsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gICAgaWYgKHR5cGVvZiBvcHRpb24uc3BsaXRLZXkgPT09ICdzdHJpbmcnKSBzcGxpdEtleSA9IG9wdGlvbi5zcGxpdEtleTsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuICB9XG5cbiAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdzdHJpbmcnKSBzY29wZSA9IG9wdGlvbjsgLy8g5a+55LqO5q+P5Liq5b+r5o236ZSu6L+b6KGM5aSE55CGXG5cbiAgZm9yICg7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAga2V5ID0ga2V5c1tpXS5zcGxpdChzcGxpdEtleSk7IC8vIOaMiemUruWIl+ihqFxuXG4gICAgbW9kcyA9IFtdOyAvLyDlpoLmnpzmmK/nu4TlkIjlv6vmjbfplK7lj5blvpfnu4TlkIjlv6vmjbfplK5cblxuICAgIGlmIChrZXkubGVuZ3RoID4gMSkgbW9kcyA9IGdldE1vZHMoX21vZGlmaWVyLCBrZXkpOyAvLyDlsIbpnZ7kv67ppbDplK7ovazljJbkuLrplK7noIFcblxuICAgIGtleSA9IGtleVtrZXkubGVuZ3RoIC0gMV07XG4gICAga2V5ID0ga2V5ID09PSAnKicgPyAnKicgOiBjb2RlKGtleSk7IC8vICrooajnpLrljLnphY3miYDmnInlv6vmjbfplK5cbiAgICAvLyDliKTmlq1rZXnmmK/lkKblnKhfaGFuZGxlcnPkuK3vvIzkuI3lnKjlsLHotYvkuIDkuKrnqbrmlbDnu4RcblxuICAgIGlmICghKGtleSBpbiBfaGFuZGxlcnMpKSBfaGFuZGxlcnNba2V5XSA9IFtdO1xuXG4gICAgX2hhbmRsZXJzW2tleV0ucHVzaCh7XG4gICAgICBrZXl1cDoga2V5dXAsXG4gICAgICBrZXlkb3duOiBrZXlkb3duLFxuICAgICAgc2NvcGU6IHNjb3BlLFxuICAgICAgbW9kczogbW9kcyxcbiAgICAgIHNob3J0Y3V0OiBrZXlzW2ldLFxuICAgICAgbWV0aG9kOiBtZXRob2QsXG4gICAgICBrZXk6IGtleXNbaV0sXG4gICAgICBzcGxpdEtleTogc3BsaXRLZXlcbiAgICB9KTtcbiAgfSAvLyDlnKjlhajlsYBkb2N1bWVudOS4iuiuvue9ruW/q+aNt+mUrlxuXG5cbiAgaWYgKHR5cGVvZiBlbGVtZW50ICE9PSAndW5kZWZpbmVkJyAmJiAhaXNFbGVtZW50QmluZChlbGVtZW50KSAmJiB3aW5kb3cpIHtcbiAgICBlbGVtZW50SGFzQmluZEV2ZW50LnB1c2goZWxlbWVudCk7XG4gICAgYWRkRXZlbnQoZWxlbWVudCwgJ2tleWRvd24nLCBmdW5jdGlvbiAoZSkge1xuICAgICAgZGlzcGF0Y2goZSk7XG4gICAgfSk7XG4gICAgYWRkRXZlbnQod2luZG93LCAnZm9jdXMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBfZG93bktleXMgPSBbXTtcbiAgICB9KTtcbiAgICBhZGRFdmVudChlbGVtZW50LCAna2V5dXAnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgZGlzcGF0Y2goZSk7XG4gICAgICBjbGVhck1vZGlmaWVyKGUpO1xuICAgIH0pO1xuICB9XG59XG5cbnZhciBfYXBpID0ge1xuICBzZXRTY29wZTogc2V0U2NvcGUsXG4gIGdldFNjb3BlOiBnZXRTY29wZSxcbiAgZGVsZXRlU2NvcGU6IGRlbGV0ZVNjb3BlLFxuICBnZXRQcmVzc2VkS2V5Q29kZXM6IGdldFByZXNzZWRLZXlDb2RlcyxcbiAgaXNQcmVzc2VkOiBpc1ByZXNzZWQsXG4gIGZpbHRlcjogZmlsdGVyLFxuICB1bmJpbmQ6IHVuYmluZFxufTtcblxuZm9yICh2YXIgYSBpbiBfYXBpKSB7XG4gIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoX2FwaSwgYSkpIHtcbiAgICBob3RrZXlzW2FdID0gX2FwaVthXTtcbiAgfVxufVxuXG5pZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgdmFyIF9ob3RrZXlzID0gd2luZG93LmhvdGtleXM7XG5cbiAgaG90a2V5cy5ub0NvbmZsaWN0ID0gZnVuY3Rpb24gKGRlZXApIHtcbiAgICBpZiAoZGVlcCAmJiB3aW5kb3cuaG90a2V5cyA9PT0gaG90a2V5cykge1xuICAgICAgd2luZG93LmhvdGtleXMgPSBfaG90a2V5cztcbiAgICB9XG5cbiAgICByZXR1cm4gaG90a2V5cztcbiAgfTtcblxuICB3aW5kb3cuaG90a2V5cyA9IGhvdGtleXM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGhvdGtleXM7XG4iLCJpbXBvcnQgaG90a2V5cyBmcm9tICdob3RrZXlzLWpzJztcbmltcG9ydCB7IHVzZVJlZiwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcblxuZnVuY3Rpb24gdXNlSXNIb3RrZXlQcmVzc2VkKCkge1xuICByZXR1cm4gaG90a2V5cy5pc1ByZXNzZWQ7XG59XG5cbmZ1bmN0aW9uIHVzZUhvdGtleXMoa2V5cywgY2FsbGJhY2ssIG9wdGlvbnMsIGRlcHMpIHtcbiAgaWYgKG9wdGlvbnMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgIGRlcHMgPSBvcHRpb25zO1xuICAgIG9wdGlvbnMgPSB1bmRlZmluZWQ7XG4gIH1cblxuICB2YXIgX3JlZiA9IG9wdGlvbnMgfHwge30sXG4gICAgICBlbmFibGVPblRhZ3MgPSBfcmVmLmVuYWJsZU9uVGFncyxcbiAgICAgIGZpbHRlciA9IF9yZWYuZmlsdGVyLFxuICAgICAga2V5dXAgPSBfcmVmLmtleXVwLFxuICAgICAga2V5ZG93biA9IF9yZWYua2V5ZG93bjtcblxuICB2YXIgcmVmID0gdXNlUmVmKG51bGwpO1xuICB2YXIgbWVtb2lzZWRDYWxsYmFjayA9IHVzZUNhbGxiYWNrKGZ1bmN0aW9uIChrZXlib2FyZEV2ZW50LCBob3RrZXlzRXZlbnQpIHtcbiAgICBpZiAocmVmLmN1cnJlbnQgPT09IG51bGwgfHwgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA9PT0gcmVmLmN1cnJlbnQpIHtcbiAgICAgIGNhbGxiYWNrKGtleWJvYXJkRXZlbnQsIGhvdGtleXNFdmVudCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0sIGRlcHMgPyBbcmVmXS5jb25jYXQoZGVwcykgOiBbcmVmXSk7XG4gIHVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKG9wdGlvbnMgJiYgb3B0aW9ucy5lbmFibGVPblRhZ3MpIHtcbiAgICAgIGhvdGtleXMuZmlsdGVyID0gZnVuY3Rpb24gKF9yZWYyKSB7XG4gICAgICAgIHZhciB0YXJnZXQgPSBfcmVmMi50YXJnZXQsXG4gICAgICAgICAgICBzcmNFbGVtZW50ID0gX3JlZjIuc3JjRWxlbWVudDtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICB2YXIgdGFyZ2V0VGFnTmFtZSA9IHRhcmdldCAmJiB0YXJnZXQudGFnTmFtZSB8fCBzcmNFbGVtZW50ICYmIHNyY0VsZW1lbnQudGFnTmFtZTtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4odGFyZ2V0VGFnTmFtZSAmJiBlbmFibGVPblRhZ3MgJiYgZW5hYmxlT25UYWdzLmluY2x1ZGVzKHRhcmdldFRhZ05hbWUpKTtcbiAgICAgIH07XG4gICAgfVxuXG4gICAgaWYgKGZpbHRlcikgaG90a2V5cy5maWx0ZXIgPSBmaWx0ZXI7XG5cbiAgICBpZiAoa2V5dXAgJiYga2V5ZG93biAhPT0gdHJ1ZSkge1xuICAgICAgb3B0aW9ucy5rZXlkb3duID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaG90a2V5cyhrZXlzLCBvcHRpb25zIHx8IHt9LCBtZW1vaXNlZENhbGxiYWNrKTtcbiAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIGhvdGtleXMudW5iaW5kKGtleXMsIG1lbW9pc2VkQ2FsbGJhY2spO1xuICAgIH07XG4gIH0sIFttZW1vaXNlZENhbGxiYWNrLCBvcHRpb25zLCBlbmFibGVPblRhZ3MsIGZpbHRlciwga2V5c10pO1xuICByZXR1cm4gcmVmO1xufVxuXG5leHBvcnQgeyB1c2VIb3RrZXlzLCB1c2VJc0hvdGtleVByZXNzZWQgfTtcbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXJlYWN0LWhvdGtleXMtaG9vay5lc20uanMubWFwXG4iXSwic291cmNlUm9vdCI6IiJ9
11
+ var r="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function a(e,t,n){e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent&&e.attachEvent("on".concat(t),(function(){n(window.event)}))}function o(e,t){for(var n=t.slice(0,t.length-1),r=0;r<n.length;r++)n[r]=e[n[r].toLowerCase()];return n}function i(e){"string"!=typeof e&&(e="");for(var t=(e=e.replace(/\s/g,"")).split(","),n=t.lastIndexOf("");n>=0;)t[n-1]+=",",t.splice(n,1),n=t.lastIndexOf("");return t}for(var u={backspace:8,tab:9,clear:12,enter:13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,"⇪":20,",":188,".":190,"/":191,"`":192,"-":r?173:189,"=":r?61:187,";":r?59:186,"'":222,"[":219,"]":221,"\\":220},l={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,cmd:91,command:91},d={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},f={16:!1,18:!1,17:!1,91:!1},c={},s=1;s<20;s++)u["f".concat(s)]=111+s;var v=[],_="all",p=[],m=function(e){return u[e.toLowerCase()]||l[e.toLowerCase()]||e.toUpperCase().charCodeAt(0)};function h(e){_=e||"all"}function y(){return _||"all"}var b=function(e){var t=e.key,n=e.scope,r=e.method,a=e.splitKey,u=void 0===a?"+":a;i(t).forEach((function(e){var t=e.split(u),a=t.length,i=t[a-1],d="*"===i?"*":m(i);if(c[d]){n||(n=y());var f=a>1?o(l,t):[];c[d]=c[d].map((function(e){return(!r||e.method===r)&&e.scope===n&&function(e,t){for(var n=e.length>=t.length?e:t,r=e.length>=t.length?t:e,a=!0,o=0;o<n.length;o++)-1===r.indexOf(n[o])&&(a=!1);return a}(e.mods,f)?{}:e}))}}))};function O(e,t,n){var r;if(t.scope===n||"all"===t.scope){for(var a in r=t.mods.length>0,f)Object.prototype.hasOwnProperty.call(f,a)&&(!f[a]&&t.mods.indexOf(+a)>-1||f[a]&&-1===t.mods.indexOf(+a))&&(r=!1);(0!==t.mods.length||f[16]||f[18]||f[17]||f[91])&&!r&&"*"!==t.shortcut||!1===t.method(e,t)&&(e.preventDefault?e.preventDefault():e.returnValue=!1,e.stopPropagation&&e.stopPropagation(),e.cancelBubble&&(e.cancelBubble=!0))}}function g(e){var t=c["*"],n=e.keyCode||e.which||e.charCode;if(P.filter.call(this,e)){if(93!==n&&224!==n||(n=91),-1===v.indexOf(n)&&229!==n&&v.push(n),["ctrlKey","altKey","shiftKey","metaKey"].forEach((function(t){var n=d[t];e[t]&&-1===v.indexOf(n)?v.push(n):!e[t]&&v.indexOf(n)>-1?v.splice(v.indexOf(n),1):"metaKey"===t&&e[t]&&3===v.length&&(e.ctrlKey||e.shiftKey||e.altKey||(v=v.slice(v.indexOf(n))))})),n in f){for(var r in f[n]=!0,l)l[r]===n&&(P[r]=!0);if(!t)return}for(var a in f)Object.prototype.hasOwnProperty.call(f,a)&&(f[a]=e[d[a]]);e.getModifierState&&(!e.altKey||e.ctrlKey)&&e.getModifierState("AltGraph")&&(-1===v.indexOf(17)&&v.push(17),-1===v.indexOf(18)&&v.push(18),f[17]=!0,f[18]=!0);var o=y();if(t)for(var i=0;i<t.length;i++)t[i].scope===o&&("keydown"===e.type&&t[i].keydown||"keyup"===e.type&&t[i].keyup)&&O(e,t[i],o);if(n in c)for(var u=0;u<c[n].length;u++)if(("keydown"===e.type&&c[n][u].keydown||"keyup"===e.type&&c[n][u].keyup)&&c[n][u].key){for(var s=c[n][u],_=s.splitKey,p=s.key.split(_),h=[],b=0;b<p.length;b++)h.push(m(p[b]));h.sort().join("")===v.sort().join("")&&O(e,s,o)}}}function P(e,t,n){v=[];var r=i(e),u=[],d="all",s=document,_=0,h=!1,y=!0,b="+";for(void 0===n&&"function"==typeof t&&(n=t),"[object Object]"===Object.prototype.toString.call(t)&&(t.scope&&(d=t.scope),t.element&&(s=t.element),t.keyup&&(h=t.keyup),void 0!==t.keydown&&(y=t.keydown),"string"==typeof t.splitKey&&(b=t.splitKey)),"string"==typeof t&&(d=t);_<r.length;_++)u=[],(e=r[_].split(b)).length>1&&(u=o(l,e)),(e="*"===(e=e[e.length-1])?"*":m(e))in c||(c[e]=[]),c[e].push({keyup:h,keydown:y,scope:d,mods:u,shortcut:r[_],method:n,key:r[_],splitKey:b});void 0!==s&&!function(e){return p.indexOf(e)>-1}(s)&&window&&(p.push(s),a(s,"keydown",(function(e){g(e)})),a(window,"focus",(function(){v=[]})),a(s,"keyup",(function(e){g(e),function(e){var t=e.keyCode||e.which||e.charCode,n=v.indexOf(t);if(n>=0&&v.splice(n,1),e.key&&"meta"===e.key.toLowerCase()&&v.splice(0,v.length),93!==t&&224!==t||(t=91),t in f)for(var r in f[t]=!1,l)l[r]===t&&(P[r]=!1)}(e)})))}var j={setScope:h,getScope:y,deleteScope:function(e,t){var n,r;for(var a in e||(e=y()),c)if(Object.prototype.hasOwnProperty.call(c,a))for(n=c[a],r=0;r<n.length;)n[r].scope===e?n.splice(r,1):r++;y()===e&&h(t||"all")},getPressedKeyCodes:function(){return v.slice(0)},isPressed:function(e){return"string"==typeof e&&(e=m(e)),-1!==v.indexOf(e)},filter:function(e){var t=e.target||e.srcElement,n=t.tagName,r=!0;return!t.isContentEditable&&("INPUT"!==n&&"TEXTAREA"!==n&&"SELECT"!==n||t.readOnly)||(r=!1),r},unbind:function(e){if(e){if(Array.isArray(e))e.forEach((function(e){e.key&&b(e)}));else if("object"==typeof e)e.key&&b(e);else if("string"==typeof e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];var a=n[0],o=n[1];"function"==typeof a&&(o=a,a=""),b({key:e,scope:a,method:o,splitKey:"+"})}}else Object.keys(c).forEach((function(e){return delete c[e]}))}};for(var M in j)Object.prototype.hasOwnProperty.call(j,M)&&(P[M]=j[M]);if("undefined"!=typeof window){var w=window.hotkeys;P.noConflict=function(e){return e&&window.hotkeys===P&&(window.hotkeys=w),P},window.hotkeys=P}var E=P,k=n(0);function C(){return E.isPressed}function N(e,t,n,r){n instanceof Array&&(r=n,n=void 0);var a=n||{},o=a.enableOnTags,i=a.filter,u=a.keyup,l=a.keydown,d=Object(k.useRef)(null),f=Object(k.useCallback)((function(e,n){return(null===d.current||document.activeElement===d.current)&&(t(e,n),!0)}),r?[d].concat(r):[d]);return Object(k.useEffect)((function(){return n&&n.enableOnTags&&(E.filter=function(e){var t=e.target,n=e.srcElement,r=t&&t.tagName||n&&n.tagName;return Boolean(r&&o&&o.includes(r))}),i&&(E.filter=i),u&&!0!==l&&(n.keydown=!1),E(e,n||{},f),function(){return E.unbind(e,f)}}),[f,n,o,i,e]),d}}]));
12
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIFwicmVhY3RcIiIsIndlYnBhY2s6Ly8vLi9ub2RlX21vZHVsZXMvY2xhc3NjYXQvc3JjL2luZGV4LmpzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xhYmVsL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb24vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQnV0dG9uL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkxpbmsvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTW9kYWwvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXdJdGVtLm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbi9CdXR0b24udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbi9CdXR0b24ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9CdXR0b25MaW5rL0J1dHRvbkxpbmsudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0J1dHRvbkxpbmsvQnV0dG9uTGluay5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NoZWNrYm94L2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NoZWNrYm94L0NoZWNrYm94LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MYWJlbC9MYWJlbC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGFiZWwvTGFiZWwubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9DaGVja2JveC9DaGVja2JveC5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbG9yUGlja2VyL0NvbG9yUGlja2VyLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db2xvclN3YXRjaC9Db2xvclN3YXRjaC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvQ29sb3JTd2F0Y2gvQ29sb3JTd2F0Y2gubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db2xvclBpY2tlci9Db2xvclBpY2tlci5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbmZpcm1hdGlvbk1vZGFsL2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0NvbmZpcm1hdGlvbk1vZGFsL0NvbmZpcm1hdGlvbk1vZGFsLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Nb2RhbC9Nb2RhbC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTW9kYWwvTW9kYWwubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Db25maXJtYXRpb25Nb2RhbC9Db25maXJtYXRpb25Nb2RhbC5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0Zsb2F0aW5nUGFuZWwvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvRmxvYXRpbmdQYW5lbC9GbG9hdGluZ1BhbmVsLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9GbG9hdGluZ1BhbmVsL0Zsb2F0aW5nUGFuZWwubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uL0ljb24udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb24vSWNvbi5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0ljb25CdXR0b24vaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbi9JY29uQnV0dG9uLnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uL0ljb25CdXR0b24ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uTGluay9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JY29uQnV0dG9uTGluay9JY29uQnV0dG9uTGluay50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSWNvbkJ1dHRvbkxpbmsvSWNvbkJ1dHRvbkxpbmsubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JbWFnZS9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9JbWFnZS9JbWFnZS50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvSW1hZ2UvSW1hZ2UubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9MaXN0Vmlldy50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTGlzdFZpZXcvTGlzdFZpZXcubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9MaXN0Vmlldy9MaXN0Vmlld0l0ZW0udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL0xpc3RWaWV3L0xpc3RWaWV3TGlua0l0ZW0udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51LnRzeCIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnUubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVDb250YWluZXIudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUNvbnRhaW5lci5tb2R1bGUuY3NzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUl0ZW0udHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL01lbnUvTWVudUl0ZW0ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9NZW51L01lbnVMaW5rSXRlbS50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvTWVudS9NZW51TGlua0l0ZW0ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9PdmVybGF5L2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL092ZXJsYXkvT3ZlcmxheS50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvT3ZlcmxheS9PdmVybGF5Lm1vZHVsZS5jc3MiLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVGV4dElucHV0L2luZGV4LnRzIiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RleHRJbnB1dC9UZXh0SW5wdXQudHN4Iiwid2VicGFjazovLy8uL3NyYy9jb21wb25lbnRzL1RleHRJbnB1dC9UZXh0SW5wdXQubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9Ub2FzdC50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVG9hc3QvVG9hc3QubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9Ub2FzdC9Ub2FzdENvbnRhaW5lci50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVG9hc3QvVG9hc3RDb250YWluZXIubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9WaWRlby9pbmRleC50cyIsIndlYnBhY2s6Ly8vLi9zcmMvY29tcG9uZW50cy9WaWRlby9WaWRlby50c3giLCJ3ZWJwYWNrOi8vLy4vc3JjL2NvbXBvbmVudHMvVmlkZW8vVmlkZW8ubW9kdWxlLmNzcyIsIndlYnBhY2s6Ly8vLi9zcmMvaG9va3MvaW5kZXgudHMiLCJ3ZWJwYWNrOi8vLy4vc3JjL2hvb2tzL3VzZVRvZ2dsZS50cyIsIndlYnBhY2s6Ly8vLi9zcmMvaG9va3MvdXNlT3V0c2lkZUNsaWNrLnRzIiwid2VicGFjazovLy8uL25vZGVfbW9kdWxlcy9ob3RrZXlzLWpzL2Rpc3QvaG90a2V5cy5lc20uanMiLCJ3ZWJwYWNrOi8vLy4vbm9kZV9tb2R1bGVzL3JlYWN0LWhvdGtleXMtaG9vay9kaXN0L3JlYWN0LWhvdGtleXMtaG9vay5lc20uanMiXSwibmFtZXMiOlsiaW5zdGFsbGVkTW9kdWxlcyIsIl9fd2VicGFja19yZXF1aXJlX18iLCJtb2R1bGVJZCIsImV4cG9ydHMiLCJtb2R1bGUiLCJpIiwibCIsIm1vZHVsZXMiLCJjYWxsIiwibSIsImMiLCJkIiwibmFtZSIsImdldHRlciIsIm8iLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImVudW1lcmFibGUiLCJnZXQiLCJyIiwiU3ltYm9sIiwidG9TdHJpbmdUYWciLCJ2YWx1ZSIsInQiLCJtb2RlIiwiX19lc01vZHVsZSIsIm5zIiwiY3JlYXRlIiwia2V5IiwiYmluZCIsIm4iLCJvYmplY3QiLCJwcm9wZXJ0eSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwicCIsInMiLCJyZXF1aXJlIiwiaXNBcnJheSIsIkFycmF5IiwiY2MiLCJvYmoiLCJvdXQiLCJ0bXAiLCJrIiwibGVuZ3RoIiwiZGVmYXVsdCIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwib25DbGljayIsImNvbnRhaW5lclJlZiIsImRpc2FibGVkIiwiaW52ZXJ0ZWQiLCJyb3VuZGVkIiwibm9TaGFkb3ciLCJub1BhZGRpbmciLCJub0JvcmRlciIsInRyYW5zcGFyZW50Iiwic3RyZXRjaEhvcml6b250YWxseSIsInN0cmV0Y2hWZXJ0aWNhbGx5Iiwib2Zmc2V0U2lkZXMiLCJhbGlnbiIsInNpemUiLCJ0eXBlIiwicmVmIiwiY29udGFpbmVyIiwibGVmdE9mZnNldCIsImluY2x1ZGVzIiwicmlnaHRPZmZzZXQiLCJyb2xlIiwiY29udGVudCIsIkNvbXBvbmVudCIsInByb3BzIiwibGFiZWwiLCJvbkNoYW5nZSIsInBsYWNlaG9sZGVyIiwiY2hlY2tlZCIsImluZGV0ZXJtaW5hdGUiLCJhdXRvRm9jdXMiLCJoYW5kbGVDaGFuZ2UiLCJ1c2VDYWxsYmFjayIsImUiLCJ0YXJnZXQiLCJMYWJlbCIsImlucHV0UmVmIiwiaW5wdXQiLCJjb2xvcnMiLCJvblNlbGVjdCIsInNlbGVjdGVkQ29sb3IiLCJkaXJlY3Rpb24iLCJjb2xvclBpY2tlciIsIm1hcCIsImNvbG9yIiwiQ29sb3JTd2F0Y2giLCJpc1NlbGVjdGVkIiwiY29sb3JTd2F0Y2giLCJzZWxlY3RlZCIsInN0eWxlIiwiYmFja2dyb3VuZENvbG9yIiwiaGV4Q29kZSIsInNyT25seSIsIkNvbmZpcm1hdGlvbk1vZGFsIiwiaGVhZGVyIiwiaXNPcGVuIiwiYnV0dG9uc0xlZnQiLCJidXR0b25zUmlnaHQiLCJvbkNsb3NlIiwiTW9kYWwiLCJtb2RhbEhlYWRlciIsIm1vZGFsQ29udGVudCIsIm1vZGFsQnV0dG9uc0NvbnRhaW5lciIsIm1vZGFsQnV0dG9ucyIsImRpc3BsYXlOYW1lIiwiYnV0dG9uIiwidXNlSG90a2V5cyIsImhhbmRsZU92ZXJsYXlDbGljayIsIm92ZXJsYXkiLCJtb2RhbCIsIm1vZGFsQnV0dG9uIiwibGF5b3V0IiwicGxhY2VtZW50IiwiaG9yaXpvbnRhbCIsInZlcnRpY2FsIiwicGFyZW50IiwiaG9yaXpvbnRhbFBsYWNlbWVudCIsInZlcnRpY2FsUGxhY2VtZW50IiwiZml4ZWQiLCJzcmMiLCJhbHQiLCJpY29uIiwiY3Jvc3NPcmlnaW4iLCJ0b3BPZmZzZXQiLCJib3R0b21PZmZzZXQiLCJJY29uIiwiZW1wdHlJbWFnZSIsInNyY1dpZHRoIiwic3JjSGVpZ2h0IiwiYW5pbWF0aW9uIiwidXNlU3RhdGUiLCJpc0xvYWRlZCIsInNldElzTG9hZGVkIiwiaW1hZ2VSZWYiLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJpbWFnZSIsIkltYWdlIiwib25sb2FkIiwiY3VycmVudCIsInNldEF0dHJpYnV0ZSIsImhhc092ZXJsYXkiLCJmYWRlSW4iLCJzY2FsZVVwIiwid2lkdGgiLCJoZWlnaHQiLCJoZWFkZXJBY3Rpb25zIiwiaGVhZGVyTGFiZWwiLCJsaXN0IiwiYWN0aXZlIiwibGlzdFZpZXdJdGVtIiwiQnV0dG9uIiwiQnV0dG9uTGluayIsImFzIiwibWVudSIsIm9wZW4iLCJtZW51SGVhZGVyIiwiZm9yd2FyZFJlZiIsIm1lbnVDb250YWluZXIiLCJpc0FjdGl2ZSIsIm1lbnVJdGVtIiwibWVudUxpbmtJdGVtIiwiaXNGaXhlZCIsImlucHV0RWxlbWVudCIsInRleHRJbnB1dCIsInVuZGVmaW5lZCIsImJ1dHRvbnMiLCJ0b2FzdCIsInRvYXN0SW1hZ2UiLCJ0b2FzdENvbnRlbnQiLCJ0b2FzdEJ1dHRvbnMiLCJ0b2FzdENvbnRhaW5lciIsIm11dGVkIiwibG9vcCIsImF1dG9QbGF5IiwidmlkZW8iLCJwbGF5c0lubGluZSIsImluaXRpYWxWYWx1ZSIsInNldFZhbHVlIiwibmV3VmFsdWUiLCJwcmV2VmFsdWUiLCJjYWxsYmFjayIsImhhbmRsZUNsaWNrIiwiZXZlbnQiLCJjb250YWlucyIsImRvY3VtZW50IiwiYWRkRXZlbnRMaXN0ZW5lciIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJpc2ZmIiwibmF2aWdhdG9yIiwidXNlckFnZW50IiwidG9Mb3dlckNhc2UiLCJpbmRleE9mIiwiYWRkRXZlbnQiLCJtZXRob2QiLCJhdHRhY2hFdmVudCIsImNvbmNhdCIsIndpbmRvdyIsImdldE1vZHMiLCJtb2RpZmllciIsIm1vZHMiLCJzbGljZSIsImdldEtleXMiLCJrZXlzIiwicmVwbGFjZSIsInNwbGl0IiwiaW5kZXgiLCJsYXN0SW5kZXhPZiIsInNwbGljZSIsIl9rZXlNYXAiLCJiYWNrc3BhY2UiLCJ0YWIiLCJjbGVhciIsImVudGVyIiwicmV0dXJuIiwiZXNjIiwiZXNjYXBlIiwic3BhY2UiLCJsZWZ0IiwidXAiLCJyaWdodCIsImRvd24iLCJkZWwiLCJkZWxldGUiLCJpbnMiLCJpbnNlcnQiLCJob21lIiwiZW5kIiwicGFnZXVwIiwicGFnZWRvd24iLCJjYXBzbG9jayIsIiciLCJfbW9kaWZpZXIiLCJzaGlmdCIsIm9wdGlvbiIsImN0cmwiLCJjb250cm9sIiwiY21kIiwiY29tbWFuZCIsIm1vZGlmaWVyTWFwIiwiMTYiLCIxOCIsIjE3IiwiOTEiLCJzaGlmdEtleSIsImN0cmxLZXkiLCJhbHRLZXkiLCJtZXRhS2V5IiwiX21vZHMiLCJfaGFuZGxlcnMiLCJfZG93bktleXMiLCJfc2NvcGUiLCJlbGVtZW50SGFzQmluZEV2ZW50IiwiY29kZSIsIngiLCJ0b1VwcGVyQ2FzZSIsImNoYXJDb2RlQXQiLCJzZXRTY29wZSIsInNjb3BlIiwiZ2V0U2NvcGUiLCJlYWNoVW5iaW5kIiwiX3JlZiIsIl9yZWYkc3BsaXRLZXkiLCJzcGxpdEtleSIsImZvckVhY2giLCJvcmlnaW5LZXkiLCJ1bmJpbmRLZXlzIiwibGVuIiwibGFzdEtleSIsImtleUNvZGUiLCJyZWNvcmQiLCJhMSIsImEyIiwiYXJyMSIsImFycjIiLCJpc0luZGV4IiwiY29tcGFyZUFycmF5IiwiZXZlbnRIYW5kbGVyIiwiaGFuZGxlciIsIm1vZGlmaWVyc01hdGNoIiwieSIsInNob3J0Y3V0IiwicHJldmVudERlZmF1bHQiLCJyZXR1cm5WYWx1ZSIsInN0b3BQcm9wYWdhdGlvbiIsImNhbmNlbEJ1YmJsZSIsImRpc3BhdGNoIiwiYXN0ZXJpc2siLCJ3aGljaCIsImNoYXJDb2RlIiwiaG90a2V5cyIsImZpbHRlciIsInRoaXMiLCJwdXNoIiwia2V5TmFtZSIsImtleU51bSIsImdldE1vZGlmaWVyU3RhdGUiLCJrZXlkb3duIiwia2V5dXAiLCJfaSIsImtleVNob3J0Y3V0IiwiX2Rvd25LZXlzQ3VycmVudCIsImEiLCJzb3J0Iiwiam9pbiIsImVsZW1lbnQiLCJ0b1N0cmluZyIsImlzRWxlbWVudEJpbmQiLCJjbGVhck1vZGlmaWVyIiwiX2FwaSIsImRlbGV0ZVNjb3BlIiwibmV3U2NvcGUiLCJoYW5kbGVycyIsImdldFByZXNzZWRLZXlDb2RlcyIsImlzUHJlc3NlZCIsInNyY0VsZW1lbnQiLCJ0YWdOYW1lIiwiZmxhZyIsImlzQ29udGVudEVkaXRhYmxlIiwicmVhZE9ubHkiLCJ1bmJpbmQiLCJrZXlzSW5mbyIsImluZm8iLCJfbGVuIiwiYXJndW1lbnRzIiwiYXJncyIsIl9rZXkiLCJfaG90a2V5cyIsIm5vQ29uZmxpY3QiLCJkZWVwIiwidXNlSXNIb3RrZXlQcmVzc2VkIiwib3B0aW9ucyIsImRlcHMiLCJlbmFibGVPblRhZ3MiLCJtZW1vaXNlZENhbGxiYWNrIiwia2V5Ym9hcmRFdmVudCIsImhvdGtleXNFdmVudCIsImFjdGl2ZUVsZW1lbnQiLCJfcmVmMiIsInRhcmdldFRhZ05hbWUiLCJCb29sZWFuIl0sIm1hcHBpbmdzIjoiNkRBQ0UsSUFBSUEsRUFBbUIsR0FHdkIsU0FBU0MsRUFBb0JDLEdBRzVCLEdBQUdGLEVBQWlCRSxHQUNuQixPQUFPRixFQUFpQkUsR0FBVUMsUUFHbkMsSUFBSUMsRUFBU0osRUFBaUJFLEdBQVksQ0FDekNHLEVBQUdILEVBQ0hJLEdBQUcsRUFDSEgsUUFBUyxJQVVWLE9BTkFJLEVBQVFMLEdBQVVNLEtBQUtKLEVBQU9ELFFBQVNDLEVBQVFBLEVBQU9ELFFBQVNGLEdBRy9ERyxFQUFPRSxHQUFJLEVBR0pGLEVBQU9ELFFBMERmLE9BckRBRixFQUFvQlEsRUFBSUYsRUFHeEJOLEVBQW9CUyxFQUFJVixFQUd4QkMsRUFB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LEVBQUtxQyxNQUNiRCxFQUFVcEMsRUFBS29DLFFBRWZqUCxFQUFNLGlCQUFPLE1BQ2JzUixFQUFtQix1QkFBWSxTQUFVQyxFQUFlQyxHQUMxRCxPQUFvQixPQUFoQnhSLEVBQUltRixTQUFvQjhDLFNBQVN3SixnQkFBa0J6UixFQUFJbUYsV0FDekQwQyxFQUFTMEosRUFBZUMsSUFDakIsS0FJUkosRUFBTyxDQUFDcFIsR0FBSzRJLE9BQU93SSxHQUFRLENBQUNwUixJQXVCaEMsT0F0QkEscUJBQVUsV0FrQlIsT0FqQkltUixHQUFXQSxFQUFRRSxlQUNyQixFQUFRMUMsT0FBUyxTQUFVK0MsR0FDekIsSUFBSXhRLEVBQVN3USxFQUFNeFEsT0FDZmlQLEVBQWF1QixFQUFNdkIsV0FFbkJ3QixFQUFnQnpRLEdBQVVBLEVBQU9rUCxTQUFXRCxHQUFjQSxFQUFXQyxRQUN6RSxPQUFPd0IsUUFBUUQsR0FBaUJOLEdBQWdCQSxFQUFhbFIsU0FBU3dSLE1BSXRFaEQsSUFBUSxFQUFRQSxPQUFTQSxHQUV6Qk8sSUFBcUIsSUFBWkQsSUFDWGtDLEVBQVFsQyxTQUFVLEdBR3BCLEVBQVE5RixFQUFNZ0ksR0FBVyxHQUFJRyxHQUN0QixXQUNMLE9BQU8sRUFBUWQsT0FBT3JILEVBQU1tSSxNQUU3QixDQUFDQSxFQUFrQkgsRUFBU0UsRUFBYzFDLEVBQVF4RixJQUM5Q25KIiwiZmlsZSI6ImluZGV4LmpzIiwic291cmNlc0NvbnRlbnQiOlsiIFx0Ly8gVGhlIG1vZHVsZSBjYWNoZVxuIFx0dmFyIGluc3RhbGxlZE1vZHVsZXMgPSB7fTtcblxuIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbiBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblxuIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbiBcdFx0aWYoaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0pIHtcbiBcdFx0XHRyZXR1cm4gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0uZXhwb3J0cztcbiBcdFx0fVxuIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuIFx0XHR2YXIgbW9kdWxlID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF0gPSB7XG4gXHRcdFx0aTogbW9kdWxlSWQsXG4gXHRcdFx0bDogZmFsc2UsXG4gXHRcdFx0ZXhwb3J0czoge31cbiBcdFx0fTtcblxuIFx0XHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cbiBcdFx0bW9kdWxlc1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cbiBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuIFx0XHRtb2R1bGUubCA9IHRydWU7XG5cbiBcdFx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcbiBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuIFx0fVxuXG5cbiBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlcyBvYmplY3QgKF9fd2VicGFja19tb2R1bGVzX18pXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBtb2R1bGVzO1xuXG4gXHQvLyBleHBvc2UgdGhlIG1vZHVsZSBjYWNoZVxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gaW5zdGFsbGVkTW9kdWxlcztcblxuIFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbiBmb3IgaGFybW9ueSBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSBmdW5jdGlvbihleHBvcnRzLCBuYW1lLCBnZXR0ZXIpIHtcbiBcdFx0aWYoIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBuYW1lKSkge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBuYW1lLCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZ2V0dGVyIH0pO1xuIFx0XHR9XG4gXHR9O1xuXG4gXHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSBmdW5jdGlvbihleHBvcnRzKSB7XG4gXHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuIFx0XHR9XG4gXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4gXHR9O1xuXG4gXHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3RcbiBcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuIFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4gXHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3RcbiBcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbiBcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4gXHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IF9fd2VicGFja19yZXF1aXJlX18odmFsdWUpO1xuIFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuIFx0XHRpZigobW9kZSAmIDQpICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuIFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuIFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkobnMsICdkZWZhdWx0JywgeyBlbnVtZXJhYmxlOiB0cnVlLCB2YWx1ZTogdmFsdWUgfSk7XG4gXHRcdGlmKG1vZGUgJiAyICYmIHR5cGVvZiB2YWx1ZSAhPSAnc3RyaW5nJykgZm9yKHZhciBrZXkgaW4gdmFsdWUpIF9fd2VicGFja19yZXF1aXJlX18uZChucywga2V5LCBmdW5jdGlvbihrZXkpIHsgcmV0dXJuIHZhbHVlW2tleV07IH0uYmluZChudWxsLCBrZXkpKTtcbiBcdFx0cmV0dXJuIG5zO1xuIFx0fTtcblxuIFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbiBcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IGZ1bmN0aW9uKG1vZHVsZSkge1xuIFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbiBcdFx0XHRmdW5jdGlvbiBnZXREZWZhdWx0KCkgeyByZXR1cm4gbW9kdWxlWydkZWZhdWx0J107IH0gOlxuIFx0XHRcdGZ1bmN0aW9uIGdldE1vZHVsZUV4cG9ydHMoKSB7IHJldHVybiBtb2R1bGU7IH07XG4gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsICdhJywgZ2V0dGVyKTtcbiBcdFx0cmV0dXJuIGdldHRlcjtcbiBcdH07XG5cbiBcdC8vIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbFxuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gZnVuY3Rpb24ob2JqZWN0LCBwcm9wZXJ0eSkgeyByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iamVjdCwgcHJvcGVydHkpOyB9O1xuXG4gXHQvLyBfX3dlYnBhY2tfcHVibGljX3BhdGhfX1xuIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCJcIjtcblxuXG4gXHQvLyBMb2FkIGVudHJ5IG1vZHVsZSBhbmQgcmV0dXJuIGV4cG9ydHNcbiBcdHJldHVybiBfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IDkpO1xuIiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3RcIik7IiwidmFyIGlzQXJyYXkgPSBBcnJheS5pc0FycmF5XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGNjKG9iaikge1xuICB2YXIgb3V0ID0gXCJcIlxuXG4gIGlmICh0eXBlb2Ygb2JqID09PSBcInN0cmluZ1wiIHx8IHR5cGVvZiBvYmogPT09IFwibnVtYmVyXCIpIHJldHVybiBvYmogfHwgXCJcIlxuXG4gIGlmIChpc0FycmF5KG9iaikpXG4gICAgZm9yICh2YXIgayA9IDAsIHRtcDsgayA8IG9iai5sZW5ndGg7IGsrKykge1xuICAgICAgaWYgKCh0bXAgPSBjYyhvYmpba10pKSAhPT0gXCJcIikge1xuICAgICAgICBvdXQgKz0gKG91dCAmJiBcIiBcIikgKyB0bXBcbiAgICAgIH1cbiAgICB9XG4gIGVsc2VcbiAgICBmb3IgKHZhciBrIGluIG9iaikge1xuICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrKSAmJiBvYmpba10pIG91dCArPSAob3V0ICYmIFwiIFwiKSArIGtcbiAgICB9XG5cbiAgcmV0dXJuIG91dFxufVxuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBMYWJlbCB9IGZyb20gXCIuL0xhYmVsXCI7XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIEljb24gfSBmcm9tIFwiLi9JY29uXCI7XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIEJ1dHRvbiB9IGZyb20gXCIuL0J1dHRvblwiO1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBCdXR0b25MaW5rIH0gZnJvbSBcIi4vQnV0dG9uTGlua1wiO1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBDb2xvclN3YXRjaCB9IGZyb20gXCIuL0NvbG9yU3dhdGNoXCI7XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIE1vZGFsIH0gZnJvbSBcIi4vTW9kYWxcIjtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wibGlzdFZpZXdJdGVtXCI6XCJfMWZqMmFuaWVRMEpLeENBWmtTYWFwa1wifTsiLCJleHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0J1dHRvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9CdXR0b25MaW5rXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0NoZWNrYm94XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0NvbG9yUGlja2VyXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0NvbG9yU3dhdGNoXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0NvbmZpcm1hdGlvbk1vZGFsXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0Zsb2F0aW5nUGFuZWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvSWNvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9JY29uQnV0dG9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0ljb25CdXR0b25MaW5rXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0ltYWdlXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL0xpc3RWaWV3XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jb21wb25lbnRzL01lbnVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvTW9kYWxcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvT3ZlcmxheVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9MYWJlbFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29tcG9uZW50cy9UZXh0SW5wdXRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvVG9hc3RcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2NvbXBvbmVudHMvVmlkZW9cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2hvb2tzXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QsIFN5bnRoZXRpY0V2ZW50IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQnV0dG9uLm1vZHVsZS5jc3NcIjtcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxudHlwZSBCdXR0b25Qcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEJ1dHRvbkVsZW1lbnQ+O1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGludmVydGVkPzogYm9vbGVhbjtcbiAgcm91bmRlZD86IGJvb2xlYW47XG4gIG5vU2hhZG93PzogYm9vbGVhbjtcbiAgbm9QYWRkaW5nPzogYm9vbGVhbjtcbiAgbm9Cb3JkZXI/OiBib29sZWFuO1xuICB0cmFuc3BhcmVudD86IGJvb2xlYW47XG4gIHN0cmV0Y2hIb3Jpem9udGFsbHk/OiBib29sZWFuO1xuICBzdHJldGNoVmVydGljYWxseT86IGJvb2xlYW47XG4gIG9uQ2xpY2s/OiAoZXZlbnQ/OiBTeW50aGV0aWNFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHZvaWQ7XG4gIHNpemU/OiBTaXplO1xuICB0eXBlPzogXCJzdWJtaXRcIiB8IFwicmVzZXRcIiB8IFwiYnV0dG9uXCI7XG4gIGFsaWduPzogXCJsZWZ0XCIgfCBcImNlbnRlclwiO1xuICBvZmZzZXRTaWRlcz86IEFycmF5PFwibGVmdFwiIHwgXCJyaWdodFwiPjtcbn07XG5cbmZ1bmN0aW9uIEJ1dHRvbih7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIG9uQ2xpY2ssXG4gIGNvbnRhaW5lclJlZixcbiAgZGlzYWJsZWQgPSBmYWxzZSxcbiAgaW52ZXJ0ZWQgPSBmYWxzZSxcbiAgcm91bmRlZCA9IGZhbHNlLFxuICBub1NoYWRvdyA9IGZhbHNlLFxuICBub1BhZGRpbmcgPSBmYWxzZSxcbiAgbm9Cb3JkZXIgPSBmYWxzZSxcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcbiAgc3RyZXRjaEhvcml6b250YWxseSA9IGZhbHNlLFxuICBzdHJldGNoVmVydGljYWxseSA9IGZhbHNlLFxuICBvZmZzZXRTaWRlcyA9IFtdLFxuICBhbGlnbiA9IFwiY2VudGVyXCIsXG4gIHNpemUgPSBcIm1lZGl1bVwiLFxuICB0eXBlLFxufTogQnV0dG9uUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8YnV0dG9uXG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICBzdHlsZXMuY29udGFpbmVyLFxuICAgICAgICBzdHlsZXNbc2l6ZV0sXG4gICAgICAgIHN0eWxlc1thbGlnbl0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzLmludmVydGVkXTogaW52ZXJ0ZWQsXG4gICAgICAgICAgW3N0eWxlcy5yb3VuZGVkXTogcm91bmRlZCxcbiAgICAgICAgICBbc3R5bGVzLm5vU2hhZG93XTogbm9TaGFkb3csXG4gICAgICAgICAgW3N0eWxlcy5ub1BhZGRpbmddOiBub1BhZGRpbmcsXG4gICAgICAgICAgW3N0eWxlcy5ub0JvcmRlcl06IG5vQm9yZGVyLFxuICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCxcbiAgICAgICAgICBbc3R5bGVzLnN0cmV0Y2hIb3Jpem9udGFsbHldOiBzdHJldGNoSG9yaXpvbnRhbGx5LFxuICAgICAgICAgIFtzdHlsZXMuc3RyZXRjaFZlcnRpY2FsbHldOiBzdHJldGNoVmVydGljYWxseSxcbiAgICAgICAgICBbc3R5bGVzLmxlZnRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwibGVmdFwiKSxcbiAgICAgICAgICBbc3R5bGVzLnJpZ2h0T2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcInJpZ2h0XCIpLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICBdKX1cbiAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICB0eXBlPXt0eXBlfVxuICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAge3R5cGVvZiBjaGlsZHJlbiAhPT0gXCJzdHJpbmdcIiAmJlxuICAgICAgQXJyYXkuaXNBcnJheShjaGlsZHJlbikgJiZcbiAgICAgIGNoaWxkcmVuLmxlbmd0aCA/IChcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5jb250ZW50fT57Y2hpbGRyZW59PC9kaXY+XG4gICAgICApIDogKFxuICAgICAgICBjaGlsZHJlblxuICAgICAgKX1cbiAgICA8L2J1dHRvbj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQnV0dG9uO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8xMnc1V09GM0tzYTJKQjUtWU9YeUQ3XCIsXCJsZWZ0XCI6XCJfMlRGVjcyRHJReDVKR1NoTmN1dDRFLVwiLFwic21hbGxcIjpcInVUQnJjanBIcDk2UkN3RjVVRHpmMFwiLFwibGFyZ2VcIjpcIl8xNFNTZnM1U1ZXSzdOeHVaQnFNZ3pCXCIsXCJpbnZlcnRlZFwiOlwiXzJoWmhoaThCZ0VfZWtRVm45ZVg5RFhcIixcInJvdW5kZWRcIjpcIlZCRE9TY1ljUW5VMmV5dGtBX1BjNlwiLFwicmlnaHRPZmZzZXRcIjpcIl8yR1RZM1htYU91OTIzTTlzRVJzNmFrXCIsXCJsZWZ0T2Zmc2V0XCI6XCJfMTVRMEdHa2dZSl9hTG0wMW5HRTVZaFwiLFwibm9TaGFkb3dcIjpcIlJld21EcWpwNm5VZUVZSEVLelRKRFwiLFwibm9Cb3JkZXJcIjpcIm5acUlVUFQ4Y1o4N0JXNHI4a3hVXCIsXCJ0cmFuc3BhcmVudFwiOlwiXzY2OWxSNHkyQUg5N0ExbHk1TVlXT1wiLFwic3RyZXRjaEhvcml6b250YWxseVwiOlwiXzNpY3V0WEh3eklpb3d0N2JWYTNZaWJcIixcInN0cmV0Y2hWZXJ0aWNhbGx5XCI6XCJfMmtDa3hQa3BsUDF4cWpma2Vwb3lOcFwiLFwibm9QYWRkaW5nXCI6XCJfM2tOYkNnY0ktUl9GRlEtM082VDBsYVwiLFwiY29udGVudFwiOlwiXzJiRjFBU2NFeHNrdU9wdXpkLWNEXzZcIn07IiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgRWxlbWVudFR5cGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0J1dHRvbkxpbmsubW9kdWxlLmNzc1wiO1xuaW1wb3J0IHsgU2l6ZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuXG50eXBlIE9mZnNldFNpZGUgPSBcImxlZnRcIiB8IFwicmlnaHRcIjtcblxudHlwZSBCdXR0b25MaW5rUHJvcHMgPVxuICB8IHtcbiAgICAgIGFzPzogRWxlbWVudFR5cGU7XG4gICAgICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICAgICAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICAgICAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxFbGVtZW50PjtcbiAgICAgIGludmVydGVkPzogYm9vbGVhbjtcbiAgICAgIHJvdW5kZWQ/OiBib29sZWFuO1xuICAgICAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xuICAgICAgbm9TaGFkb3c/OiBib29sZWFuO1xuICAgICAgbm9QYWRkaW5nPzogYm9vbGVhbjtcbiAgICAgIG5vQm9yZGVyPzogYm9vbGVhbjtcbiAgICAgIHN0cmV0Y2hIb3Jpem9udGFsbHk/OiBib29sZWFuO1xuICAgICAgc3RyZXRjaFZlcnRpY2FsbHk/OiBib29sZWFuO1xuICAgICAgc2l6ZT86IFNpemU7XG4gICAgICBvZmZzZXRTaWRlcz86IEFycmF5PE9mZnNldFNpZGU+O1xuICAgICAgYWxpZ24/OiBcImxlZnRcIiB8IFwiY2VudGVyXCI7XG4gICAgfVxuICB8IGFueTtcblxuZnVuY3Rpb24gQnV0dG9uTGluayh7XG4gIGFzOiBDb21wb25lbnQsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIHNpemUsXG4gIGNvbnRhaW5lclJlZixcbiAgaW52ZXJ0ZWQgPSBmYWxzZSxcbiAgcm91bmRlZCA9IGZhbHNlLFxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxuICBub1NoYWRvdyA9IGZhbHNlLFxuICBub1BhZGRpbmcgPSBmYWxzZSxcbiAgbm9Cb3JkZXIgPSBmYWxzZSxcbiAgc3RyZXRjaEhvcml6b250YWxseSA9IGZhbHNlLFxuICBzdHJldGNoVmVydGljYWxseSA9IGZhbHNlLFxuICBvZmZzZXRTaWRlcyA9IFtdLFxuICBhbGlnbiA9IFwiY2VudGVyXCIsXG4gIC4uLnByb3BzXG59OiBCdXR0b25MaW5rUHJvcHMpIHtcbiAgaWYgKHR5cGVvZiBDb21wb25lbnQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBDb21wb25lbnQgPSBcImFcIjtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPENvbXBvbmVudFxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBkYXRhLXRlc3RpZD1cImJ1dHRvbi1saW5rXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICBzdHlsZXMuY29udGFpbmVyLFxuICAgICAgICBzdHlsZXNbc2l6ZV0sXG4gICAgICAgIHN0eWxlc1thbGlnbl0sXG4gICAgICAgIHtcbiAgICAgICAgICBbc3R5bGVzLmludmVydGVkXTogaW52ZXJ0ZWQsXG4gICAgICAgICAgW3N0eWxlcy5yb3VuZGVkXTogcm91bmRlZCxcbiAgICAgICAgICBbc3R5bGVzLm5vU2hhZG93XTogbm9TaGFkb3csXG4gICAgICAgICAgW3N0eWxlcy5ub1BhZGRpbmddOiBub1BhZGRpbmcsXG4gICAgICAgICAgW3N0eWxlcy5ub0JvcmRlcl06IG5vQm9yZGVyLFxuICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCxcbiAgICAgICAgICBbc3R5bGVzLnN0cmV0Y2hIb3Jpem9udGFsbHldOiBzdHJldGNoSG9yaXpvbnRhbGx5LFxuICAgICAgICAgIFtzdHlsZXMuc3RyZXRjaFZlcnRpY2FsbHldOiBzdHJldGNoVmVydGljYWxseSxcbiAgICAgICAgICBbc3R5bGVzLmxlZnRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwibGVmdFwiKSxcbiAgICAgICAgICBbc3R5bGVzLnJpZ2h0T2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcInJpZ2h0XCIpLFxuICAgICAgICB9LFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICBdKX1cbiAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICB7dHlwZW9mIGNoaWxkcmVuICE9PSBcInN0cmluZ1wiICYmXG4gICAgICBBcnJheS5pc0FycmF5KGNoaWxkcmVuKSAmJlxuICAgICAgY2hpbGRyZW4ubGVuZ3RoID8gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmNvbnRlbnR9PntjaGlsZHJlbn08L2Rpdj5cbiAgICAgICkgOiAoXG4gICAgICAgIGNoaWxkcmVuXG4gICAgICApfVxuICAgIDwvQ29tcG9uZW50PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBCdXR0b25MaW5rO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8yUXU5UmFHNTVwV3lKYVRfXzNfb0ZBXCIsXCJsZWZ0XCI6XCJfM254M2dOUHpqNkxUXzFod25RSHhPSlwiLFwic21hbGxcIjpcIl8yTHZfNnh4MkdsMzM1S1Q5SW9vajNnXCIsXCJtZWRpdW1cIjpcIl8zSHg4cGhhejN6THFOc2VBcE5JV1pIXCIsXCJsYXJnZVwiOlwiXzItT0VZRm9JdmxzNE4yQ1J1WS1lSnJcIixcImludmVydGVkXCI6XCJfMnBFR2lLM0t1UG5FdndpT0NEZ0ZEYVwiLFwicm91bmRlZFwiOlwiXzF6eVZLc21velBSdExIRHRfajYxNE5cIixcInJpZ2h0T2Zmc2V0XCI6XCJfMXJZdnRxblp5STRScnVsQzdLR2NvdVwiLFwibGVmdE9mZnNldFwiOlwiXzNUcjdlTzRFczFCb3RoMktfc2lUQU5cIixcIm5vU2hhZG93XCI6XCJfMndaM0dJSTNvTmQ4SVg3YWdhLWFNdVwiLFwidHJhbnNwYXJlbnRcIjpcIl8xVEtncFNZbF9BMElTa0JjVDFqbHk3XCIsXCJzdHJldGNoSG9yaXpvbnRhbGx5XCI6XCJfM3AyVFk0bm9kVml1OWp4LUx6R0NOZVwiLFwic3RyZXRjaFZlcnRpY2FsbHlcIjpcIl8zZ0V3a1Jwcm5TX0lSRXUzS3ROek1EXCIsXCJub1BhZGRpbmdcIjpcIl8ySnBLSnJ1bUFUY1RUUlQ3eGlmZjlpXCIsXCJub0JvcmRlclwiOlwiXzFQM1AyNzR3b3U2bEVBODdnNnJGVjJcIixcImNvbnRlbnRcIjpcInNORHJxM2NYNkk2US1PdXVzejdUaVwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIENoZWNrYm94IH0gZnJvbSBcIi4vQ2hlY2tib3hcIjtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCB7IExhYmVsIH0gZnJvbSBcIi4uL0xhYmVsXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0NoZWNrYm94Lm1vZHVsZS5jc3NcIjtcbmltcG9ydCB7IFNpemUsIFRleHRJbnB1dFR5cGUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxudHlwZSBDaGVja2JveFByb3BzID0ge1xuICBsYWJlbD86IHN0cmluZztcbiAgb25DaGFuZ2U6ICh2YWx1ZTogYm9vbGVhbikgPT4gdm9pZDtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIGNoZWNrZWQ/OiBib29sZWFuO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIG5hbWU/OiBzdHJpbmc7XG4gIHNpemU/OiBTaXplO1xuICBhdXRvRm9jdXM/OiBib29sZWFuO1xuICBpbmRldGVybWluYXRlPzogYm9vbGVhbjtcbn07XG5cbmZ1bmN0aW9uIENoZWNrYm94KHtcbiAgbGFiZWwsXG4gIG9uQ2hhbmdlLFxuICBwbGFjZWhvbGRlcixcbiAgY2hlY2tlZCxcbiAgZGlzYWJsZWQsXG4gIG5hbWUsXG4gIGluZGV0ZXJtaW5hdGUsXG4gIHNpemUgPSBcInNtYWxsXCIsXG4gIGF1dG9Gb2N1cyA9IGZhbHNlLFxufTogQ2hlY2tib3hQcm9wcykge1xuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAoZTogUmVhY3QuRm9ybUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PlxuICAgICAgb25DaGFuZ2UoKGUudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLmNoZWNrZWQpLFxuICAgIFtvbkNoYW5nZV1cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxMYWJlbCB2YWx1ZT17bGFiZWx9PlxuICAgICAgPGlucHV0XG4gICAgICAgIGRhdGEtdGVzdGlkPVwiY2hlY2tib3hcIlxuICAgICAgICByZWY9eyhpbnB1dFJlZikgPT4ge1xuICAgICAgICAgIGlmIChpbnB1dFJlZikge1xuICAgICAgICAgICAgaW5wdXRSZWYuaW5kZXRlcm1pbmF0ZSA9IGluZGV0ZXJtaW5hdGU7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgICBjaGVja2VkPXtjaGVja2VkfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5pbnB1dCwgc3R5bGVzW3NpemVdXSl9XG4gICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgbmFtZT17bmFtZX1cbiAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgYXV0b0ZvY3VzPXthdXRvRm9jdXN9XG4gICAgICAvPlxuICAgIDwvTGFiZWw+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IENoZWNrYm94O1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlZk9iamVjdCwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTGFiZWwubW9kdWxlLmNzc1wiO1xuXG50eXBlIExhYmVsSW5wdXRQcm9wcyA9IHtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MTGFiZWxFbGVtZW50PjtcbiAgdmFsdWU6IHN0cmluZztcbn07XG5cbmZ1bmN0aW9uIExhYmVsKHsgY2hpbGRyZW4sIHZhbHVlLCBjb250YWluZXJSZWYgfTogTGFiZWxJbnB1dFByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGxhYmVsIHJlZj17Y29udGFpbmVyUmVmfSBjbGFzc05hbWU9e3N0eWxlcy5jb250YWluZXJ9PlxuICAgICAge3ZhbHVlfVxuICAgICAge2NoaWxkcmVufVxuICAgIDwvbGFiZWw+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IExhYmVsO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8xNURic19YNUlUOXRrbUFzTVhQTlZKXCJ9OyIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiaW5wdXRcIjpcIl8xcDJobWptTTFxTlpUWklpRkhGSXh1XCIsXCJzbWFsbFwiOlwiXzFKaV9fOVUtRDVVZFcyTkpXV1VQckNcIixcIm1lZGl1bVwiOlwiXzNLSlMyRlJTMnRkOTBRcjZyMzNMMjhcIixcImxhcmdlXCI6XCJfMWo3b2RDRUVYMkRrZ2dwSVp1RjRNSVwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIENvbG9yUGlja2VyIH0gZnJvbSBcIi4vQ29sb3JQaWNrZXJcIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHsgQ29sb3JTd2F0Y2ggfSBmcm9tIFwiLi4vQ29sb3JTd2F0Y2hcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQ29sb3JQaWNrZXIubW9kdWxlLmNzc1wiO1xuaW1wb3J0IHsgQ29sb3IgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxudHlwZSBDb2xvclBpY2tlclByb3BzID0ge1xuICBjb2xvcnM6IENvbG9yW107XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGRpcmVjdGlvbj86IFwiaG9yaXpvbnRhbFwiIHwgXCJ2ZXJ0aWNhbFwiO1xuICBvblNlbGVjdDogKGNvbG9yOiBDb2xvcikgPT4gdm9pZDtcbiAgc2VsZWN0ZWRDb2xvcj86IENvbG9yO1xufTtcblxuZnVuY3Rpb24gQ29sb3JQaWNrZXIoe1xuICBjb2xvcnMsXG4gIGNvbnRhaW5lclJlZixcbiAgb25TZWxlY3QsXG4gIHNlbGVjdGVkQ29sb3IsXG4gIGRpcmVjdGlvbiA9IFwidmVydGljYWxcIixcbn06IENvbG9yUGlja2VyUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5jb2xvclBpY2tlciwgc3R5bGVzW2RpcmVjdGlvbl1dKX1cbiAgICA+XG4gICAgICB7Y29sb3JzLm1hcCgoY29sb3I6IENvbG9yKSA9PiB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgPENvbG9yU3dhdGNoXG4gICAgICAgICAgICBrZXk9e2NvbG9yLmtleX1cbiAgICAgICAgICAgIGNvbG9yPXtjb2xvcn1cbiAgICAgICAgICAgIGlzU2VsZWN0ZWQ9e2NvbG9yID09PSBzZWxlY3RlZENvbG9yfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25TZWxlY3QoY29sb3IpfVxuICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgICB9KX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29sb3JQaWNrZXI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vQ29sb3JTd2F0Y2gubW9kdWxlLmNzc1wiO1xuaW1wb3J0IHsgQ29sb3IgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxudHlwZSBDb2xvclN3YXRjaFByb3BzID0ge1xuICBjb2xvcjogQ29sb3I7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MQnV0dG9uRWxlbWVudD47XG4gIGlzU2VsZWN0ZWQ/OiBib29sZWFuO1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkO1xufTtcblxuZnVuY3Rpb24gQ29sb3JTd2F0Y2goe1xuICBjb2xvcixcbiAgY29udGFpbmVyUmVmLFxuICBvbkNsaWNrLFxuICBpc1NlbGVjdGVkID0gZmFsc2UsXG59OiBDb2xvclN3YXRjaFByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGJ1dHRvblxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgc3R5bGVzLmNvbG9yU3dhdGNoLFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlcy5zZWxlY3RlZF06IGlzU2VsZWN0ZWQsXG4gICAgICAgIH0sXG4gICAgICBdKX1cbiAgICAgIGRhdGEtdGVzdGlkPVwiY29sb3Itc3dhdGNoXCJcbiAgICAgIGRpc2FibGVkPXtpc1NlbGVjdGVkfVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIHN0eWxlPXt7IGJhY2tncm91bmRDb2xvcjogY29sb3IuaGV4Q29kZSB9fVxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzTmFtZT17c3R5bGVzLnNyT25seX0+e2BTZWxlY3QgJHtjb2xvci5sYWJlbH0gY29sb3JgfTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29sb3JTd2F0Y2g7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbG9yU3dhdGNoXCI6XCJkdjdpdWNUUXEtWmhVUlV1cC1QdVZcIixcInNlbGVjdGVkXCI6XCJfMUxiQWd5aWlFXzF1alc5MGQtNml1dVwiLFwic3JPbmx5XCI6XCJfMWV0a3VzbGhaVkVQTnNrMVFnaFRFb1wifTsiLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbG9yUGlja2VyXCI6XCJfMkYxT24tU0EzbU1raFpQRnJEaldJY1wiLFwiaG9yaXpvbnRhbFwiOlwiXzFXRll5TWtrWUxMNzNuX19yUFVVYnZcIixcInZlcnRpY2FsXCI6XCJfMWxJb2EyYmpfdGJrUWllMElwRTJMblwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIENvbmZpcm1hdGlvbk1vZGFsIH0gZnJvbSBcIi4vQ29uZmlybWF0aW9uTW9kYWxcIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdEVsZW1lbnQsIFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCB7IE1vZGFsIH0gZnJvbSBcIi4uL01vZGFsXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0NvbmZpcm1hdGlvbk1vZGFsLm1vZHVsZS5jc3NcIjtcblxudHlwZSBDb25maXJtYXRpb25Nb2RhbFByb3BzID0ge1xuICBidXR0b25zTGVmdD86IFJlYWN0RWxlbWVudFtdO1xuICBidXR0b25zUmlnaHQ/OiBSZWFjdEVsZW1lbnRbXTtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGhlYWRlcjogc3RyaW5nO1xuICBpc09wZW46IGJvb2xlYW47XG4gIG5vUGFkZGluZz86IGJvb2xlYW47XG4gIG9uQ2xvc2U/OiAoKSA9PiB2b2lkO1xufTtcblxuZnVuY3Rpb24gQ29uZmlybWF0aW9uTW9kYWwoe1xuICBjaGlsZHJlbixcbiAgY29udGFpbmVyUmVmLFxuICBoZWFkZXIsXG4gIGlzT3BlbixcbiAgYnV0dG9uc0xlZnQgPSBbXSxcbiAgYnV0dG9uc1JpZ2h0ID0gW10sXG4gIG9uQ2xvc2UgPSAoKSA9PiB7fSxcbiAgbm9QYWRkaW5nID0gZmFsc2UsXG59OiBDb25maXJtYXRpb25Nb2RhbFByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPE1vZGFsIGNvbnRhaW5lclJlZj17Y29udGFpbmVyUmVmfSBpc09wZW49e2lzT3Blbn0gb25DbG9zZT17b25DbG9zZX0+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLmNvbnRhaW5lcn0+XG4gICAgICAgIDxoMSBjbGFzc05hbWU9e3N0eWxlcy5tb2RhbEhlYWRlcn0+e2hlYWRlcn08L2gxPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgICAgICBzdHlsZXMubW9kYWxDb250ZW50LFxuICAgICAgICAgICAgeyBbc3R5bGVzLm5vUGFkZGluZ106IG5vUGFkZGluZyB9LFxuICAgICAgICAgIF0pfVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5tb2RhbEJ1dHRvbnNDb250YWluZXJ9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMubW9kYWxCdXR0b25zfT57YnV0dG9uc0xlZnR9PC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5tb2RhbEJ1dHRvbnN9PntidXR0b25zUmlnaHR9PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9Nb2RhbD5cbiAgKTtcbn1cblxuQ29uZmlybWF0aW9uTW9kYWwuZGlzcGxheU5hbWUgPSBcIkNvbmZpcm1hdGlvbk1vZGFsXCI7XG5cbmV4cG9ydCBkZWZhdWx0IENvbmZpcm1hdGlvbk1vZGFsO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlSG90a2V5cyB9IGZyb20gXCJyZWFjdC1ob3RrZXlzLWhvb2tcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9Nb2RhbC5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgTW9kYWxQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZTtcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgaXNPcGVuOiBib29sZWFuO1xuICBvbkNsb3NlPzogKCkgPT4gdm9pZDtcbiAgYnV0dG9uPzogUmVhY3ROb2RlO1xuICB0cmFuc3BhcmVudD86IGJvb2xlYW47XG4gIG5vU2hhZG93PzogYm9vbGVhbjtcbn07XG5cbmZ1bmN0aW9uIE1vZGFsKHtcbiAgY2hpbGRyZW4sXG4gIGNvbnRhaW5lclJlZixcbiAgaXNPcGVuLFxuICBidXR0b24sXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXG4gIG5vU2hhZG93ID0gZmFsc2UsXG4gIG9uQ2xvc2UgPSAoKSA9PiB7fSxcbn06IE1vZGFsUHJvcHMpIHtcbiAgdXNlSG90a2V5cyhcIkVzY2FwZVwiLCBvbkNsb3NlKTtcblxuICBjb25zdCBoYW5kbGVPdmVybGF5Q2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgb25DbG9zZSgpO1xuICB9LCBbb25DbG9zZV0pO1xuXG4gIHJldHVybiAoXG4gICAgaXNPcGVuICYmIChcbiAgICAgIDxkaXYgcmVmPXtjb250YWluZXJSZWZ9PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXMub3ZlcmxheX1cbiAgICAgICAgICBkYXRhLXRlc3RpZD1cIm1vZGFsLW92ZXJsYXlcIlxuICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZU92ZXJsYXlDbGlja31cbiAgICAgICAgLz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgICBzdHlsZXMubW9kYWwsIFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCwgXG4gICAgICAgICAgICBbc3R5bGVzLm5vU2hhZG93XTogbm9TaGFkb3dcbiAgICAgICAgICB9XG4gICAgICAgIF0pfSBkYXRhLXRlc3RpZD1cIm1vZGFsXCI+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge2J1dHRvbiAmJiA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm1vZGFsQnV0dG9ufT57YnV0dG9ufTwvZGl2Pn1cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTW9kYWw7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcIm92ZXJsYXlcIjpcIl8yMFpLR1k0VHdaeHAwS1o2RTd5NFdCXCIsXCJtb2RhbFwiOlwiXzI1TEJOMzFfbUkxSTF1SEREUDRPMElcIixcInRyYW5zcGFyZW50XCI6XCJfM1oyS2wxckVIWlFNTFVzWEYxZjdsb1wiLFwibm9TaGFkb3dcIjpcIl8zQ2ZTVC10bi10c3Zjb2RTeGVsaVFxXCIsXCJtb2RhbEJ1dHRvblwiOlwiXzFlTzB4M00wcE44LTc5SXVZdVRfQ2xcIn07IiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIktnQzVwd3RzSGF2dVZPTHViQUxhZVwiLFwibW9kYWxIZWFkZXJcIjpcIl8xYlROWE1SNW1aRlhzMW8wdXhraFJQXCIsXCJtb2RhbENvbnRlbnRcIjpcInF1UDVvNFE5bmxVbzFmVDdzYlBWQVwiLFwibm9QYWRkaW5nXCI6XCJfMVVnb19ESFNUNFJiV3pJeEhQaGo3blwiLFwibW9kYWxCdXR0b25zQ29udGFpbmVyXCI6XCJfMmJHTDdYakR5NnNFM0psZVU5OGhqeVwiLFwibW9kYWxCdXR0b25zXCI6XCJfM1hmZkZlTjlWRUlweXRobVZKMlU4Q1wifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIEZsb2F0aW5nUGFuZWwgfSBmcm9tIFwiLi9GbG9hdGluZ1BhbmVsXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9GbG9hdGluZ1BhbmVsLm1vZHVsZS5jc3NcIjtcblxudHlwZSBQbGFjZW1lbnQgPSB7XG4gIGhvcml6b250YWw6XG4gICAgfCBcInJpZ2h0XCJcbiAgICB8IFwicmlnaHRFZGdlXCJcbiAgICB8IFwicmlnaHRPbkVkZ2VcIlxuICAgIHwgXCJsZWZ0XCJcbiAgICB8IFwibGVmdEVkZ2VcIlxuICAgIHwgXCJsZWZ0T25FZGdlXCJcbiAgICB8IFwibGVmdE9uRWRnZVwiXG4gICAgfCBcImNlbnRlclwiO1xuICB2ZXJ0aWNhbDpcbiAgICB8IFwidG9wXCJcbiAgICB8IFwidG9wRWRnZVwiXG4gICAgfCBcImJvdHRvbVwiXG4gICAgfCBcImJvdHRvbUVkZ2VcIlxuICAgIHwgXCJib3R0b21PbkVkZ2VcIlxuICAgIHwgXCJjZW50ZXJcIjtcbiAgcGFyZW50OiBcInZpZXdwb3J0XCIgfCBcImNvbnRhaW5lclwiO1xufTtcblxudHlwZSBGbG9hdGluZ1BhbmVsUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIGxheW91dD86IFwiY29sdW1uXCIgfCBcInJvd1wiO1xuICBwbGFjZW1lbnQ/OiBQbGFjZW1lbnQ7XG59O1xuXG5mdW5jdGlvbiBGbG9hdGluZ1BhbmVsKHtcbiAgY2hpbGRyZW4sXG4gIGNvbnRhaW5lclJlZixcbiAgbGF5b3V0ID0gXCJjb2x1bW5cIixcbiAgcGxhY2VtZW50ID0geyBob3Jpem9udGFsOiBcImNlbnRlclwiLCB2ZXJ0aWNhbDogXCJib3R0b21cIiwgcGFyZW50OiBcInZpZXdwb3J0XCIgfSxcbn06IEZsb2F0aW5nUGFuZWxQcm9wcykge1xuICBjb25zdCBob3Jpem9udGFsUGxhY2VtZW50ID1cbiAgICBwbGFjZW1lbnQuaG9yaXpvbnRhbCA9PT0gXCJjZW50ZXJcIlxuICAgICAgPyBcImhvcml6b250YWxDZW50ZXJcIlxuICAgICAgOiBwbGFjZW1lbnQuaG9yaXpvbnRhbDtcblxuICBjb25zdCB2ZXJ0aWNhbFBsYWNlbWVudCA9XG4gICAgcGxhY2VtZW50LnZlcnRpY2FsID09PSBcImNlbnRlclwiID8gXCJ2ZXJ0aWNhbENlbnRlclwiIDogcGxhY2VtZW50LnZlcnRpY2FsO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBkYXRhLXRlc3RpZD1cImZsb2F0aW5nLXBhbmVsXCJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICBzdHlsZXMuY29udGFpbmVyLFxuICAgICAgICBzdHlsZXNbaG9yaXpvbnRhbFBsYWNlbWVudF0sXG4gICAgICAgIHN0eWxlc1t2ZXJ0aWNhbFBsYWNlbWVudF0sXG4gICAgICAgIHN0eWxlc1tsYXlvdXRdLFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlcy5maXhlZF06IHBsYWNlbWVudC5wYXJlbnQgIT09IFwiY29udGFpbmVyXCIsXG4gICAgICAgIH0sXG4gICAgICBdKX1cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEZsb2F0aW5nUGFuZWw7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImNvbnRhaW5lclwiOlwiXzJyMEZrWUo3U0sxWWpCM0hLSE1BaWhcIixcInJvd1wiOlwiXzNSLUZGOGVNdTBDUzRlTlgzbFRkQ1JcIixcImNvbHVtblwiOlwiXzFvS09lQWdaand4Tk0zdUdmTHQ2SU9cIixcImZpeGVkXCI6XCJfM29RR1dnU0lOYnl0YjR1djkyQ1N2VFwiLFwicGxhaW5cIjpcImlNZjhvZC1iSXFzSEF2eG9mRHV6YlwiLFwidHJhbnNwYXJlbnRcIjpcImQyb3l4NXB5c3FqODk4YVM4RzNFOFwiLFwidG9wXCI6XCJfMTFjUFlxMWRoUXl6VklNWmVrMV9Jb1wiLFwidG9wRWRnZVwiOlwiXzJfaW5lQ3kxTVFsWVA2cU1ld2QxejVcIixcInRvcE9uRWRnZVwiOlwiXzFydkNzRG9kNWJsVE95QWw0a0R3TjBcIixcInJpZ2h0XCI6XCJfMVNJWUJjUmdxUzRWUGhXOU04MFk0elwiLFwicmlnaHRFZGdlXCI6XCJRQTY5ZjBEOGJUQ0pIckRPcjhtMXJcIixcInJpZ2h0T25FZGdlXCI6XCJfMlBpVFVsMEpZekVDbk8wODUxZ3ozYVwiLFwiYm90dG9tXCI6XCJfMzA1Z0JtVHdBZVhaZkFfTTl0c1ZOb1wiLFwiYm90dG9tRWRnZVwiOlwiXzFQY0RYYkxaMlhIUGtlaV9IX3I1OHBcIixcImJvdHRvbU9uRWRnZVwiOlwiXzJ2b3Q0cXByNThXbmI2cHZIWW5qa2NcIixcImxlZnRcIjpcInNJdGdCVjRXdER4NHZaM2EtUDRpeFwiLFwibGVmdEVkZ2VcIjpcIl8xTkoxRnpJX2FiS2ktVzZrYzJyMmM2XCIsXCJsZWZ0T25FZGdlXCI6XCJfMTJFdndiYVZRTldQWmUzN1NvOExfbVwiLFwiaG9yaXpvbnRhbENlbnRlclwiOlwiXzJqaVN4RWJDVEtWekR0ZUdRMXVvRWZcIixcInZlcnRpY2FsQ2VudGVyXCI6XCJfMmY5RDQ2QkItZ2V6UHZ3OFRaeEp2cFwifTsiLCJpbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0ljb24ubW9kdWxlLmNzc1wiO1xuXG50eXBlIEljb25Qcm9wcyA9IHtcbiAgYWx0Pzogc3RyaW5nO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTEltYWdlRWxlbWVudD47XG4gIGludmVydGVkPzogYm9vbGVhbjtcbiAgc3JjOiBzdHJpbmc7XG4gIHNpemU/OiBcInNtYWxsXCIgfCBcIm1lZGl1bVwiIHwgXCJsYXJnZVwiO1xufTtcbmZ1bmN0aW9uIEljb24oe1xuICBzcmMsXG4gIGFsdCxcbiAgY29udGFpbmVyUmVmLFxuICBzaXplID0gXCJtZWRpdW1cIixcbiAgaW52ZXJ0ZWQgPSBmYWxzZSxcbn06IEljb25Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxpbWdcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5pY29uLFxuICAgICAgICBzdHlsZXNbc2l6ZV0sXG4gICAgICAgIHsgW3N0eWxlcy5pbnZlcnRlZF06IGludmVydGVkIH0sXG4gICAgICBdKX1cbiAgICAgIGNyb3NzT3JpZ2luPVwiYW5vbnltb3VzXCJcbiAgICAgIGRhdGEtdGVzdGlkPVwiaWNvblwiXG4gICAgICBhbHQ9e2FsdH1cbiAgICAgIHNyYz17c3JjfVxuICAgIC8+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEljb247XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcImljb25cIjpcIl8zM2NUTThpOHFhakZHeS0wMHR5MFJ3XCIsXCJzbWFsbFwiOlwiTVVpM2lremNQWmRvNTlBZm9YZE9GXCIsXCJtZWRpdW1cIjpcIl8yVkNLcXk1OU5TRmRmRGlFMG94YXN6XCIsXCJsYXJnZVwiOlwiXzJVVVVmMm5fYTBQWXBROGtvd0tIenBcIixcImludmVydGVkXCI6XCJfMnF6VXRVMVRkX2M1OHZNOEFMcVNWV1wifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIEljb25CdXR0b24gfSBmcm9tIFwiLi9JY29uQnV0dG9uXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVmT2JqZWN0LCBTeW50aGV0aWNFdmVudCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgeyBJY29uIH0gZnJvbSBcIi4uL0ljb25cIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vSWNvbkJ1dHRvbi5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgSWNvbkJ1dHRvblByb3BzID0ge1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MQnV0dG9uRWxlbWVudD47XG4gIHNyYzogc3RyaW5nO1xuICBhbHQ6IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBpbnZlcnRlZD86IGJvb2xlYW47XG4gIG5vU2hhZG93PzogYm9vbGVhbjtcbiAgbm9Cb3JkZXI/OiBib29sZWFuO1xuICB0cmFuc3BhcmVudD86IGJvb2xlYW47XG4gIHJvdW5kZWQ/OiBib29sZWFuO1xuICBvbkNsaWNrPzogKGV2ZW50PzogU3ludGhldGljRXZlbnQ8SFRNTEJ1dHRvbkVsZW1lbnQ+KSA9PiB2b2lkO1xuICBzaXplPzogXCJzbWFsbFwiIHwgXCJtZWRpdW1cIiB8IFwibGFyZ2VcIjtcbiAgdHlwZT86IFwic3VibWl0XCIgfCBcInJlc2V0XCIgfCBcImJ1dHRvblwiO1xuICBvZmZzZXRTaWRlcz86IEFycmF5PFwidG9wXCIgfCBcInJpZ2h0XCIgfCBcImJvdHRvbVwiIHwgXCJsZWZ0XCI+O1xufTtcblxuZnVuY3Rpb24gSWNvbkJ1dHRvbih7XG4gIGNsYXNzTmFtZSxcbiAgY29udGFpbmVyUmVmLFxuICBzcmMsXG4gIGFsdCxcbiAgb2Zmc2V0U2lkZXMgPSBbXSxcbiAgb25DbGljayA9ICgpID0+IHt9LFxuICBkaXNhYmxlZCA9IGZhbHNlLFxuICBpbnZlcnRlZCA9IGZhbHNlLFxuICBub1NoYWRvdyA9IGZhbHNlLFxuICBub0JvcmRlciA9IGZhbHNlLFxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxuICByb3VuZGVkID0gZmFsc2UsXG4gIHNpemUgPSBcIm1lZGl1bVwiLFxuICB0eXBlID0gXCJidXR0b25cIixcbn06IEljb25CdXR0b25Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5jb250YWluZXIsXG4gICAgICAgIHN0eWxlc1tzaXplXSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcbiAgICAgICAgICBbc3R5bGVzLnJvdW5kZWRdOiByb3VuZGVkLFxuICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvdyxcbiAgICAgICAgICBbc3R5bGVzLm5vQm9yZGVyXTogbm9Cb3JkZXIsXG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxuICAgICAgICAgIFtzdHlsZXMudG9wT2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcInRvcFwiKSxcbiAgICAgICAgICBbc3R5bGVzLnJpZ2h0T2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcInJpZ2h0XCIpLFxuICAgICAgICAgIFtzdHlsZXMuYm90dG9tT2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcImJvdHRvbVwiKSxcbiAgICAgICAgICBbc3R5bGVzLmxlZnRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwibGVmdFwiKSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgXSl9XG4gICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgdHlwZT17dHlwZX1cbiAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgID5cbiAgICAgIDxJY29uIHNyYz17c3JjfSBhbHQ9e2FsdH0gc2l6ZT17c2l6ZX0gaW52ZXJ0ZWQ9e2ludmVydGVkfSAvPlxuICAgIDwvYnV0dG9uPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBJY29uQnV0dG9uO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIlJneWxsWFRxcDNfalo2QTJOYnZnNlwiLFwic21hbGxcIjpcIl8xdzBoWmxPYmVMN0VHODd6c0wtOXZOXCIsXCJtZWRpdW1cIjpcIkVLMWJ2SlpqVzExOURvNzlTdEw3SVwiLFwibGFyZ2VcIjpcIlBneVFYSzF5eUNNcThCU2FZQ2JjaFwiLFwicm91bmRlZFwiOlwiXzNxcWExazBDOUpNUHNCUlN6NloweVlcIixcInRvcE9mZnNldFwiOlwiXzNWWlA3RG9oaFo3ejhmaTR6LUg4ak5cIixcInJpZ2h0T2Zmc2V0XCI6XCJfMlhYaEozLWNZY1hiSVZObW1uTzh5SFwiLFwiYm90dG9tT2Zmc2V0XCI6XCJaSklYN1ZxNW11c2pkNnM0aENTYlBcIixcImxlZnRPZmZzZXRcIjpcIl8xUVZXaXlpdlc5VXhlb051M1VkbnY2XCIsXCJpbnZlcnRlZFwiOlwiXzJqWnpYaG5IcXFidHVtNGRCZGwxbEtcIixcIm5vU2hhZG93XCI6XCJfM2Z4dldpT05GRll0TXVEY1hwOHN5dVwiLFwibm9Cb3JkZXJcIjpcIl8zRXV4dXBucU9WdVNvVXNiS3pOblwiLFwidHJhbnNwYXJlbnRcIjpcIl8zNWJSSWk4QnRENFJLU0p2WmJqX3NtXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgSWNvbkJ1dHRvbkxpbmsgfSBmcm9tIFwiLi9JY29uQnV0dG9uTGlua1wiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IEVsZW1lbnRUeXBlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcblxuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuaW1wb3J0IHsgSWNvbiB9IGZyb20gXCIuLi9JY29uXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0ljb25CdXR0b25MaW5rLm1vZHVsZS5jc3NcIjtcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxudHlwZSBPZmZzZXRTaWRlID0gXCJ0b3BcIiB8IFwicmlnaHRcIiB8IFwiYm90dG9tXCIgfCBcImxlZnRcIjtcblxudHlwZSBJY29uQnV0dG9uTGlua1Byb3BzID1cbiAgfCB7XG4gICAgICBhcz86IEVsZW1lbnRUeXBlO1xuICAgICAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxFbGVtZW50PjtcbiAgICAgIHNyYzogc3RyaW5nO1xuICAgICAgYWx0OiBzdHJpbmc7XG4gICAgICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gICAgICBpbnZlcnRlZD86IGJvb2xlYW47XG4gICAgICByb3VuZGVkPzogYm9vbGVhbjtcbiAgICAgIHRyYW5zcGFyZW50PzogYm9vbGVhbjtcbiAgICAgIG5vU2hhZG93PzogYm9vbGVhbjtcbiAgICAgIG5vQm9yZGVyPzogYm9vbGVhbjtcbiAgICAgIHNpemU/OiBTaXplO1xuICAgICAgb2Zmc2V0U2lkZXM/OiBBcnJheTxPZmZzZXRTaWRlPjtcbiAgICB9XG4gIHwgYW55O1xuXG5mdW5jdGlvbiBJY29uQnV0dG9uTGluayh7XG4gIGFzOiBDb21wb25lbnQsXG4gIGNvbnRhaW5lclJlZixcbiAgY2xhc3NOYW1lLFxuICBzcmMsXG4gIGFsdCxcbiAgaW52ZXJ0ZWQgPSBmYWxzZSxcbiAgbm9TaGFkb3cgPSBmYWxzZSxcbiAgbm9Cb3JkZXIgPSBmYWxzZSxcbiAgdHJhbnNwYXJlbnQgPSBmYWxzZSxcbiAgcm91bmRlZCA9IGZhbHNlLFxuICBvZmZzZXRTaWRlcyA9IFtdLFxuICBzaXplID0gXCJtZWRpdW1cIixcbiAgLi4ucHJvcHNcbn06IEljb25CdXR0b25MaW5rUHJvcHMpIHtcbiAgaWYgKHR5cGVvZiBDb21wb25lbnQgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBDb21wb25lbnQgPSBcImFcIjtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPENvbXBvbmVudFxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBkYXRhLXRlc3RpZD1cImljb24tYnV0dG9uLWxpbmtcIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbXG4gICAgICAgIHN0eWxlcy5jb250YWluZXIsXG4gICAgICAgIHN0eWxlc1tzaXplXSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMuaW52ZXJ0ZWRdOiBpbnZlcnRlZCxcbiAgICAgICAgICBbc3R5bGVzLnJvdW5kZWRdOiByb3VuZGVkLFxuICAgICAgICAgIFtzdHlsZXMubm9TaGFkb3ddOiBub1NoYWRvdyxcbiAgICAgICAgICBbc3R5bGVzLm5vQm9yZGVyXTogbm9Cb3JkZXIsXG4gICAgICAgICAgW3N0eWxlcy50cmFuc3BhcmVudF06IHRyYW5zcGFyZW50LFxuICAgICAgICAgIFtzdHlsZXMudG9wT2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcInRvcFwiKSxcbiAgICAgICAgICBbc3R5bGVzLnJpZ2h0T2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcInJpZ2h0XCIpLFxuICAgICAgICAgIFtzdHlsZXMuYm90dG9tT2Zmc2V0XTogcm91bmRlZCAmJiBvZmZzZXRTaWRlcy5pbmNsdWRlcyhcImJvdHRvbVwiKSxcbiAgICAgICAgICBbc3R5bGVzLmxlZnRPZmZzZXRdOiByb3VuZGVkICYmIG9mZnNldFNpZGVzLmluY2x1ZGVzKFwibGVmdFwiKSxcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgXSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAgPEljb24gc3JjPXtzcmN9IGFsdD17YWx0fSBzaXplPXtzaXplfSBpbnZlcnRlZD17aW52ZXJ0ZWR9IC8+XG4gICAgPC9Db21wb25lbnQ+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEljb25CdXR0b25MaW5rO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8zd2p4akN6dl9scGhkV203M0pnQXlwXCIsXCJzbWFsbFwiOlwiXzMyTVltWmJIelVVMGIzZE1jbUpzaU1cIixcImxhcmdlXCI6XCJfMmFZU1NUVWc4d3ZyQURPUzE4OHhNXCIsXCJyb3VuZGVkXCI6XCJfMThpaDY3TEwwbjdYbDYxZ0xHOHMwa1wiLFwidG9wT2Zmc2V0XCI6XCJfMXA3aDdXNlFzREhwYmE2bWd5V1VMOVwiLFwicmlnaHRPZmZzZXRcIjpcIl8zZnhNSUJfSno1Q1lJZnd1WmhRMjhpXCIsXCJib3R0b21PZmZzZXRcIjpcIl8xMTNtNENXaW1MdnNqVTl4SXhQcTdpXCIsXCJsZWZ0T2Zmc2V0XCI6XCJfNkNob3YyTW95VXh5aFd4S24zNjhLXCIsXCJpbnZlcnRlZFwiOlwiXzNlcU9KUXo0dWUtZVhMdnEyN0FzWTVcIixcIm5vU2hhZG93XCI6XCJsRjZEX1YyMHgzMnY5WnlzcXdDNjhcIixcIm5vQm9yZGVyXCI6XCJfM3M2cUNvbExqcGpsNFJybzdtVlR4U1wiLFwidHJhbnNwYXJlbnRcIjpcIl8ySVpPOXBLMTMxVTkxY3lLWGl4Z3hEXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgSW1hZ2UgfSBmcm9tIFwiLi9JbWFnZVwiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QsIHVzZVJlZiwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vSW1hZ2UubW9kdWxlLmNzc1wiO1xuXG5leHBvcnQgY29uc3QgZW1wdHlJbWFnZSA9XG4gIFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFBRUFBQUFCQ0FRQUFBQzFIQXdDQUFBQUMwbEVRVlI0Mm1Oa1lBQUFBQVlBQWpDQjBDOEFBQUFBU1VWT1JLNUNZSUk9XCI7IC8vIDF4MXBuZ1xuXG50eXBlIEltYWdlUHJvcHMgPSB7XG4gIGFuaW1hdGlvbj86IFwiZmFkZUluXCIgfCBcInNjYWxlVXBcIjtcbiAgYWx0Pzogc3RyaW5nO1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgbGF5b3V0PzogXCJjb3ZlclwiIHwgXCJjb250YWluXCIgfCBcInN0cmV0Y2hIb3Jpem9udGFsbHlcIiB8IFwic3RyZXRjaFZlcnRpY2FsbHlcIjtcbiAgc3JjOiBzdHJpbmc7XG4gIHNyY1dpZHRoPzogbnVtYmVyO1xuICBzcmNIZWlnaHQ/OiBudW1iZXI7XG59O1xuXG5mdW5jdGlvbiBJbWFnZUNvbXBvbmVudCh7XG4gIHNyYyxcbiAgYWx0LFxuICBzcmNXaWR0aCxcbiAgc3JjSGVpZ2h0LFxuICBjaGlsZHJlbixcbiAgYW5pbWF0aW9uLFxuICBjb250YWluZXJSZWYsXG4gIGxheW91dCA9IFwiY29udGFpblwiLFxufTogSW1hZ2VQcm9wcykge1xuICBjb25zdCBbaXNMb2FkZWQsIHNldElzTG9hZGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgaW1hZ2VSZWYgPSB1c2VSZWYobnVsbCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBsZXQgaW1hZ2UgPSBuZXcgSW1hZ2UoKTtcbiAgICBpbWFnZS5jcm9zc09yaWdpbiA9IFwiYW5vbnltb3VzXCI7XG4gICAgaW1hZ2Uuc3JjID0gc3JjO1xuICAgIGltYWdlLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgIGltYWdlUmVmLmN1cnJlbnQ/LnNldEF0dHJpYnV0ZShcInNyY1wiLCBzcmMpO1xuICAgICAgc2V0SXNMb2FkZWQodHJ1ZSk7XG4gICAgfTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpbWFnZS5zcmMgPSBcIlwiO1xuICAgICAgZGVsZXRlIGltYWdlLm9ubG9hZDtcbiAgICAgIGRlbGV0ZSBpbWFnZS5zcmM7XG4gICAgICBkZWxldGUgaW1hZ2UuY3Jvc3NPcmlnaW47XG4gICAgICBpbWFnZSA9IG51bGw7XG4gICAgfTtcbiAgfSwgW3NyY10pO1xuXG4gIHJldHVybiBjaGlsZHJlbiA/IChcbiAgICA8ZGl2XG4gICAgICByZWY9e2NvbnRhaW5lclJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy5jb250YWluZXIsIHN0eWxlcy5oYXNPdmVybGF5XSl9XG4gICAgPlxuICAgICAgPGltZ1xuICAgICAgICByZWY9e2ltYWdlUmVmfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgICBzdHlsZXMuaW1hZ2UsXG4gICAgICAgICAgc3R5bGVzW2xheW91dF0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgW3N0eWxlcy5mYWRlSW5dOiBhbmltYXRpb24gPT09IFwiZmFkZUluXCIgJiYgaXNMb2FkZWQsXG4gICAgICAgICAgICBbc3R5bGVzLnNjYWxlVXBdOiBhbmltYXRpb24gPT09IFwic2NhbGVVcFwiICYmIGlzTG9hZGVkLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pfVxuICAgICAgICBjcm9zc09yaWdpbj1cImFub255bW91c1wiXG4gICAgICAgIGRhdGEtdGVzdGlkPVwiaW1hZ2VcIlxuICAgICAgICBhbHQ9e2FsdH1cbiAgICAgICAgc3JjPXtlbXB0eUltYWdlfVxuICAgICAgICB3aWR0aD17c3JjV2lkdGh9XG4gICAgICAgIGhlaWdodD17c3JjSGVpZ2h0fVxuICAgICAgLz5cbiAgICAgIHtjaGlsZHJlbiAmJiA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzLm92ZXJsYXl9PntjaGlsZHJlbn08L2Rpdj59XG4gICAgPC9kaXY+XG4gICkgOiAoXG4gICAgPGltZ1xuICAgICAgcmVmPXtpbWFnZVJlZn1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICBzdHlsZXMuaW1hZ2UsXG4gICAgICAgIHN0eWxlc1tsYXlvdXRdLFxuICAgICAgICB7XG4gICAgICAgICAgW3N0eWxlcy5mYWRlSW5dOiBhbmltYXRpb24gPT09IFwiZmFkZUluXCIgJiYgaXNMb2FkZWQsXG4gICAgICAgICAgW3N0eWxlcy5zY2FsZVVwXTogYW5pbWF0aW9uID09PSBcInNjYWxlVXBcIiAmJiBpc0xvYWRlZCxcbiAgICAgICAgfSxcbiAgICAgIF0pfVxuICAgICAgY3Jvc3NPcmlnaW49XCJhbm9ueW1vdXNcIlxuICAgICAgZGF0YS10ZXN0aWQ9XCJpbWFnZVwiXG4gICAgICBhbHQ9e2FsdH1cbiAgICAgIHNyYz17ZW1wdHlJbWFnZX1cbiAgICAgIHdpZHRoPXtzcmNXaWR0aH1cbiAgICAgIGhlaWdodD17c3JjSGVpZ2h0fVxuICAgIC8+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IEltYWdlQ29tcG9uZW50O1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8xVjAwR3B6X2tlcVVXR0VmWjc0d2pTXCIsXCJoYXNPdmVybGF5XCI6XCJfMk10VWZZcHc1VjhVcHJ4cV9FX3lTYVwiLFwib3ZlcmxheVwiOlwiejFEVkh4ajFaUEs3M09JUVJjazdqXCIsXCJpbWFnZVwiOlwiXzM5T2pUR1dkN3hteGNsNm51SS1nMkxcIixcImNvdmVyXCI6XCJfM3FLZHAybUs2ZjdHNXpBelhsemdyRVwiLFwiY29udGFpblwiOlwiXzJvX0c0WGJCLVFvemJmdWs0X1YwMGhcIixcInN0cmV0Y2hIb3Jpem9udGFsbHlcIjpcIl8yeGd1RGtHdTFtUjJ5UGFZLWh6TjhvXCIsXCJzdHJldGNoVmVydGljYWxseVwiOlwiXzE5V01hM3RxUnh2VWhES0ZaOFkyUEJcIixcImZhZGVJblwiOlwiXzM2T1MyR2NzandFZ0hQMG8tOEF4MW1cIixcImZhZGVJbkFuaW1hdGlvblwiOlwiLWV5bU42aFd6Sm5SeDhYaGsxRFdPXCIsXCJzY2FsZVVwXCI6XCJfMVVVUkFCWm5NbExmMEtQVVVEMlJOelwiLFwic2NhbGVVcEFuaW1hdGlvblwiOlwiXzNrb3R3VjlqdnBIU1BtanRPVWxnN01cIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBMaXN0VmlldyB9IGZyb20gXCIuL0xpc3RWaWV3XCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIExpc3RWaWV3SXRlbSB9IGZyb20gXCIuL0xpc3RWaWV3SXRlbVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBMaXN0Vmlld0xpbmtJdGVtIH0gZnJvbSBcIi4vTGlzdFZpZXdMaW5rSXRlbVwiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTGlzdFZpZXcubW9kdWxlLmNzc1wiO1xuXG50eXBlIExpc3RWaWV3UHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgY29udGFpbmVyUmVmPzogUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgaGVhZGVyPzogc3RyaW5nO1xuICBoZWFkZXJBY3Rpb25zPzogUmVhY3ROb2RlO1xufTtcblxuZnVuY3Rpb24gTGlzdFZpZXcoe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBjb250YWluZXJSZWYsXG4gIGhlYWRlcixcbiAgaGVhZGVyQWN0aW9ucyxcbn06IExpc3RWaWV3UHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17Y29udGFpbmVyUmVmfSBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMuY29udGFpbmVyLCBjbGFzc05hbWVdKX0+XG4gICAgICB7KGhlYWRlciB8fCBoZWFkZXJBY3Rpb25zKSAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuaGVhZGVyfT5cbiAgICAgICAgICB7aGVhZGVyICYmIDxoMyBjbGFzc05hbWU9e3N0eWxlcy5oZWFkZXJMYWJlbH0+e2hlYWRlcn08L2gzPn1cbiAgICAgICAgICB7aGVhZGVyQWN0aW9uc31cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgICAgPHVsIGNsYXNzTmFtZT17c3R5bGVzLmxpc3R9PntjaGlsZHJlbn08L3VsPlxuICAgIDwvZGl2PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBMaXN0VmlldztcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wiY29udGFpbmVyXCI6XCJEY1dvRWJpb2w5cHgtRlFBX1RwT2tcIixcImhlYWRlclwiOlwiXzJqYXZCOHNBRHg2ZERncVhOM01DTFBcIixcImhlYWRlckxhYmVsXCI6XCJfM2lNT2ZJeU5MMVNFbXYySjhaRERtV1wiLFwibGlzdFwiOlwiXzNfS210Yk1QcFBIZ0pGTTlaQl94bkFcIn07IiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tIFwiLi4vQnV0dG9uXCI7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSBcIi4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL0xpc3RWaWV3SXRlbS5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgTGlzdFZpZXdJdGVtUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gIGFjdGl2ZT86IGJvb2xlYW47XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgdHJhbnNwYXJlbnQ/OiBib29sZWFuO1xuICBub1BhZGRpbmc/OiBib29sZWFuO1xuICBzaXplPzogU2l6ZTtcbiAgYWxpZ24/OiBcImxlZnRcIiB8IFwiY2VudGVyXCI7XG4gIG9uQ2xpY2s/OiAoKSA9PiB2b2lkLFxufVxuXG5mdW5jdGlvbiBMaXN0Vmlld0l0ZW0oe1xuICBjaGlsZHJlbixcbiAgYWN0aXZlID0gZmFsc2UsXG4gIGRpc2FibGVkID0gZmFsc2UsXG4gIHRyYW5zcGFyZW50ID0gZmFsc2UsXG4gIG5vUGFkZGluZyA9IGZhbHNlLFxuICBzaXplID0gXCJtZWRpdW1cIixcbiAgYWxpZ24gPSBcImNlbnRlclwiLFxuICBvbkNsaWNrID0gKCkgPT4ge30sXG59OiBMaXN0Vmlld0l0ZW1Qcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxsaSBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMubGlzdFZpZXdJdGVtXSl9PlxuICAgICAgPEJ1dHRvblxuICAgICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgIGludmVydGVkPXthY3RpdmV9XG4gICAgICAgIHRyYW5zcGFyZW50PXt0cmFuc3BhcmVudH1cbiAgICAgICAgbm9QYWRkaW5nPXtub1BhZGRpbmd9XG4gICAgICAgIGFsaWduPXthbGlnbn1cbiAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgc3RyZXRjaEhvcml6b250YWxseVxuICAgICAgICBub1NoYWRvd1xuICAgICAgICBub0JvcmRlclxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L0J1dHRvbj5cbiAgICA8L2xpPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBMaXN0Vmlld0l0ZW07XG4iLCJpbXBvcnQgUmVhY3QsIHsgRWxlbWVudFR5cGUsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgeyBCdXR0b25MaW5rIH0gZnJvbSBcIi4uL0J1dHRvbkxpbmtcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTGlzdFZpZXdJdGVtLm1vZHVsZS5jc3NcIjtcbmltcG9ydCB7IFNpemUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcblxudHlwZSBMaXN0Vmlld0xpbmtJdGVtUHJvcHMgPVxuICB8IHtcbiAgICAgIGNoaWxkcmVuOiBSZWFjdE5vZGU7XG4gICAgICBhcz86IEVsZW1lbnRUeXBlO1xuICAgICAgYWN0aXZlOiBib29sZWFuO1xuICAgICAgdHJhbnNwYXJlbnQ6IGJvb2xlYW47XG4gICAgICBub1BhZGRpbmc6IGJvb2xlYW47XG4gICAgICBhbGlnbjogXCJsZWZ0XCIgfCBcImNlbnRlclwiO1xuICAgICAgc2l6ZTogU2l6ZTtcbiAgICB9XG4gIHwgYW55O1xuXG5mdW5jdGlvbiBMaXN0Vmlld0xpbmtJdGVtKHtcbiAgY2hpbGRyZW4sXG4gIGFzOiBDb21wb25lbnQsXG4gIGFjdGl2ZSA9IGZhbHNlLFxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxuICBub1BhZGRpbmcgPSBmYWxzZSxcbiAgYWxpZ24gPSBcImNlbnRlclwiLFxuICBzaXplID0gXCJtZWRpdW1cIixcbiAgLi4ucHJvcHNcbn06IExpc3RWaWV3TGlua0l0ZW1Qcm9wcykge1xuICBpZiAodHlwZW9mIENvbXBvbmVudCA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIENvbXBvbmVudCA9IFwiYVwiO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8bGkgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmxpc3RWaWV3SXRlbV0pfT5cbiAgICAgIDxCdXR0b25MaW5rXG4gICAgICAgIGFzPXtDb21wb25lbnR9XG4gICAgICAgIGludmVydGVkPXthY3RpdmV9XG4gICAgICAgIHRyYW5zcGFyZW50PXt0cmFuc3BhcmVudH1cbiAgICAgICAgbm9QYWRkaW5nPXtub1BhZGRpbmd9XG4gICAgICAgIGFsaWduPXthbGlnbn1cbiAgICAgICAgc2l6ZT17c2l6ZX1cbiAgICAgICAgc3RyZXRjaEhvcml6b250YWxseVxuICAgICAgICBub1NoYWRvd1xuICAgICAgICBub0JvcmRlclxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICA+XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvQnV0dG9uTGluaz5cbiAgICA8L2xpPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBMaXN0Vmlld0xpbmtJdGVtO1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51IH0gZnJvbSBcIi4vTWVudVwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51Q29udGFpbmVyIH0gZnJvbSBcIi4vTWVudUNvbnRhaW5lclwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBNZW51SXRlbSB9IGZyb20gXCIuL01lbnVJdGVtXCI7XG5leHBvcnQgeyBkZWZhdWx0IGFzIE1lbnVMaW5rSXRlbSB9IGZyb20gXCIuL01lbnVMaW5rSXRlbVwiO1xuIiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL01lbnUubW9kdWxlLmNzc1wiO1xuXG50eXBlIFBsYWNlbWVudCA9IHtcbiAgaG9yaXpvbnRhbDogXCJyaWdodFwiIHwgXCJsZWZ0XCI7XG4gIHZlcnRpY2FsOiBcInRvcFwiIHwgXCJib3R0b21cIjtcbn07XG5cbnR5cGUgTWVudVByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGlzT3Blbj86IGJvb2xlYW47XG4gIGhlYWRlcj86IHN0cmluZztcbiAgcGxhY2VtZW50PzogUGxhY2VtZW50O1xufTtcblxuZnVuY3Rpb24gTWVudSh7XG4gIGNoaWxkcmVuLFxuICBjb250YWluZXJSZWYsXG4gIGNsYXNzTmFtZSxcbiAgaXNPcGVuID0gdHJ1ZSxcbiAgcGxhY2VtZW50ID0geyBob3Jpem9udGFsOiBcImxlZnRcIiwgdmVydGljYWw6IFwiYm90dG9tXCIgfSxcbiAgaGVhZGVyLFxufTogTWVudVByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgcmVmPXtjb250YWluZXJSZWZ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtcbiAgICAgICAgc3R5bGVzLm1lbnUsXG4gICAgICAgIHN0eWxlc1twbGFjZW1lbnQuaG9yaXpvbnRhbF0sXG4gICAgICAgIHN0eWxlc1twbGFjZW1lbnQudmVydGljYWxdLFxuICAgICAgICB7IFtzdHlsZXMub3Blbl06IGlzT3BlbiB9LFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICBdKX1cbiAgICA+XG4gICAgICB7aGVhZGVyICYmIGlzT3BlbiAmJiA8aDMgY2xhc3NOYW1lPXtzdHlsZXMubWVudUhlYWRlcn0+e2hlYWRlcn08L2gzPn1cbiAgICAgIDx1bD57aXNPcGVuICYmIGNoaWxkcmVufTwvdWw+XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1lbnU7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcIm1lbnVcIjpcIl8xTDUtcHZfUDZNMm9HZW9SZU1uTzJKXCIsXCJ0b3BcIjpcIl8zMWxkWUdVNFUweHBLdVVfLS1XY2phXCIsXCJyaWdodFwiOlwiT2JIeE1pdmwzNWkxS2dJN1RnZ2M5XCIsXCJsZWZ0XCI6XCJfMkd6YzBYZkwtaDVOeUhLVkR2NXIta1wiLFwiYm90dG9tXCI6XCJfM0VEbWlTZlBSWk1sSGxTSDkzNDdsR1wiLFwib3BlblwiOlwiXzFKN3BGa3ZralFRUldrbWctMFhUV1pcIixcImVudHJhbmNlXCI6XCJfM2NxZXNRR2Y5Q3l1NjZEc29LdEYwcVwiLFwibWVudUhlYWRlclwiOlwiXzJveHNQT3NwQUhQQ2VLVFBIZWdlSFVcIn07IiwiaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIFJlYWN0Tm9kZSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vTWVudUNvbnRhaW5lci5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgTWVudUNvbnRhaW5lclByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIHJlZj86ICgpID0+IHZvaWQgfCB7IGN1cnJlbnQ6IGFueSB9O1xufVxuXG5mdW5jdGlvbiBNZW51Q29udGFpbmVyKHsgY2hpbGRyZW4sIGNsYXNzTmFtZX06IE1lbnVDb250YWluZXJQcm9wcywgcmVmOiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+KSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiByZWY9e3JlZn0gY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLm1lbnVDb250YWluZXIsIGNsYXNzTmFtZV0pfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZm9yd2FyZFJlZihNZW51Q29udGFpbmVyKTtcbiIsIi8vIGV4dHJhY3RlZCBieSBtaW5pLWNzcy1leHRyYWN0LXBsdWdpblxuZXhwb3J0IGRlZmF1bHQge1wibWVudUNvbnRhaW5lclwiOlwiXzFfMnNGRlZ6TlhtSlhfUFRwSFpnRUxcIn07IiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL01lbnVJdGVtLm1vZHVsZS5jc3NcIjtcblxudHlwZSBNZW51SXRlbVByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGlzQWN0aXZlPzogYm9vbGVhbixcbiAgb25DbGljaz86ICgpID0+IHZvaWQsXG59O1xuXG5mdW5jdGlvbiBNZW51SXRlbSh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIG9uQ2xpY2ssXG4gIGlzQWN0aXZlID0gZmFsc2Vcbn06IE1lbnVJdGVtUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8bGlcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICBzdHlsZXMubWVudUl0ZW0sXG4gICAgICAgIHsgW3N0eWxlcy5hY3RpdmVdOiBpc0FjdGl2ZSB9LFxuICAgICAgICBjbGFzc05hbWUsXG4gICAgICBdKX1cbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvbGk+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1lbnVJdGVtO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJtZW51SXRlbVwiOlwiXzJLc1JDRWdFX003d29YamhwUnVWdW9cIixcImFjdGl2ZVwiOlwiXzFYblhaaUFyaHZVZXlYZ3FVYUctUDdcIn07IiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSwgRWxlbWVudFR5cGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcblxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9NZW51TGlua0l0ZW0ubW9kdWxlLmNzc1wiO1xuXG50eXBlIE1lbnVMaW5rSXRlbVByb3BzID1cbiAgfCB7XG4gICAgICBhczogRWxlbWVudFR5cGU7XG4gICAgICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICAgICAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gICAgfVxuICB8IGFueTtcblxuZnVuY3Rpb24gTWVudUxpbmtJdGVtKHtcbiAgYXM6IENvbXBvbmVudCxcbiAgY2hpbGRyZW4sXG4gIGNsYXNzTmFtZSxcbiAgLi4ucHJvcHNcbn06IE1lbnVMaW5rSXRlbVByb3BzKSB7XG4gIGlmICh0eXBlb2YgQ29tcG9uZW50ID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgQ29tcG9uZW50ID0gXCJhXCI7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxDb21wb25lbnRcbiAgICAgIGRhdGEtdGVzdGlkPVwibWVudS1saW5rLWl0ZW1cIlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLm1lbnVMaW5rSXRlbSwgY2xhc3NOYW1lXSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvQ29tcG9uZW50PlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBNZW51TGlua0l0ZW07XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcIm1lbnVMaW5rSXRlbVwiOlwiXzN6NXQ5Q0FoY0F3Vk90T1ZsQV80R3dcIixcImFjdGl2ZVwiOlwiXzFaLW1QdmV3R1VnNDg0UVBjOUh4cTJcIixcIm1lbnVJdGVtXCI6XCJfM3RJV0FoTUR0UHpBSDRiQXJ3cFJPdlwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIE92ZXJsYXkgfSBmcm9tIFwiLi9PdmVybGF5XCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWZPYmplY3QgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBjbGFzc2NhdCBmcm9tIFwiY2xhc3NjYXRcIjtcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vT3ZlcmxheS5tb2R1bGUuY3NzXCI7XG5cbnR5cGUgT3ZlcmxheVByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICB0cmFuc3BhcmVudD86IGJvb2xlYW47XG4gIGlzRml4ZWQ/OiBib29sZWFuO1xuICBvbkNsaWNrPzogKCkgPT4gdm9pZDtcbn07XG5cbmZ1bmN0aW9uIE92ZXJsYXkoe1xuICBjaGlsZHJlbixcbiAgY29udGFpbmVyUmVmLFxuICB0cmFuc3BhcmVudCA9IGZhbHNlLFxuICBpc0ZpeGVkID0gZmFsc2UsXG4gIG9uQ2xpY2sgPSAoKSA9PiB7fSxcbn06IE92ZXJsYXlQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJvdmVybGF5XCJcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW1xuICAgICAgICBzdHlsZXMub3ZlcmxheSxcbiAgICAgICAge1xuICAgICAgICAgIFtzdHlsZXMudHJhbnNwYXJlbnRdOiB0cmFuc3BhcmVudCxcbiAgICAgICAgICBbc3R5bGVzLmZpeGVkXTogaXNGaXhlZCxcbiAgICAgICAgfSxcbiAgICAgIF0pfVxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9kaXY+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE92ZXJsYXk7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcIm92ZXJsYXlcIjpcIkkwZG0tTGRtLVNpUzB2NVgtdm8wZ1wiLFwidHJhbnNwYXJlbnRcIjpcIl8zcWREZGx5bkhMbm9mTjFES3Z2WVE4XCIsXCJmaXhlZFwiOlwiXzFnWHk5WFMzRi1KdHFkalpCY29LU3dcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBUZXh0SW5wdXQgfSBmcm9tIFwiLi9UZXh0SW5wdXRcIjtcbiIsImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjayB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgeyBMYWJlbCB9IGZyb20gXCIuLi9MYWJlbFwiO1xuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9UZXh0SW5wdXQubW9kdWxlLmNzc1wiO1xuaW1wb3J0IHsgU2l6ZSwgVGV4dElucHV0VHlwZSB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuXG50eXBlIFRleHRJbnB1dFByb3BzID0ge1xuICBsYWJlbD86IHN0cmluZztcbiAgb25DaGFuZ2U/OiAodmFsdWU6IHN0cmluZykgPT4gdm9pZDtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIHZhbHVlPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICB0eXBlPzogVGV4dElucHV0VHlwZTtcbiAgc2l6ZT86IFNpemU7XG4gIGF1dG9Gb2N1cz86IGJvb2xlYW47XG4gIGlucHV0UmVmPzogUmVhY3QuUmVmT2JqZWN0PEhUTUxJbnB1dEVsZW1lbnQ+O1xufTtcblxuZnVuY3Rpb24gVGV4dElucHV0KHtcbiAgbGFiZWwsXG4gIG9uQ2hhbmdlLFxuICBwbGFjZWhvbGRlcixcbiAgdmFsdWUsXG4gIG5hbWUsXG4gIGlucHV0UmVmLFxuICBzaXplID0gXCJtZWRpdW1cIixcbiAgYXV0b0ZvY3VzID0gZmFsc2UsXG4gIHR5cGUgPSBcInRleHRcIixcbn06IFRleHRJbnB1dFByb3BzKSB7XG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChlOiBSZWFjdC5Gb3JtRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+XG4gICAgICBvbkNoYW5nZSgoZS50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWUpLFxuICAgIFtvbkNoYW5nZV1cbiAgKTtcblxuICBjb25zdCBpbnB1dEVsZW1lbnQgPSAoXG4gICAgPGlucHV0XG4gICAgICBkYXRhLXRlc3RpZD1cImlucHV0XCJcbiAgICAgIHJlZj17aW5wdXRSZWZ9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMudGV4dElucHV0LCBzdHlsZXNbc2l6ZV1dKX1cbiAgICAgIG9uQ2hhbmdlPXshaW5wdXRSZWYgPyBoYW5kbGVDaGFuZ2UgOiB1bmRlZmluZWR9XG4gICAgICBwbGFjZWhvbGRlcj17cGxhY2Vob2xkZXJ9XG4gICAgICBuYW1lPXtuYW1lfVxuICAgICAgdHlwZT17dHlwZX1cbiAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgIGF1dG9Gb2N1cz17YXV0b0ZvY3VzfVxuICAgIC8+XG4gICk7XG4gIGlmIChsYWJlbCkge1xuICAgIHJldHVybiA8TGFiZWwgdmFsdWU9e2xhYmVsfT57aW5wdXRFbGVtZW50fTwvTGFiZWw+O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiA8PntpbnB1dEVsZW1lbnR9PC8+O1xuICB9XG59XG5leHBvcnQgZGVmYXVsdCBUZXh0SW5wdXQ7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcInRleHRJbnB1dFwiOlwiXzJpZkZUQnl4dlFGNWVSWXdNQVNhZTdcIixcInNtYWxsXCI6XCJfMThpTE5ocWM1VHo1UFBvMms0X1RCaFwiLFwibWVkaXVtXCI6XCJfMWphUnlqZWF0SlJ4RXVqZ1BHeld6eFwiLFwibGFyZ2VcIjpcIl8zNGQ1SDNYOFcwVWdYOUI4ZHRQUkFPXCJ9OyIsImV4cG9ydCB7IGRlZmF1bHQgYXMgVG9hc3QgfSBmcm9tIFwiLi9Ub2FzdFwiO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBUb2FzdENvbnRhaW5lciB9IGZyb20gXCIuL1RvYXN0Q29udGFpbmVyXCI7XG4iLCJpbXBvcnQgUmVhY3QsIHsgUmVhY3ROb2RlLCBSZWFjdE5vZGVBcnJheSwgUmVmT2JqZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5cbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vVG9hc3QubW9kdWxlLmNzc1wiO1xuXG50eXBlIEltYWdlVHlwZSA9IHtcbiAgc3JjOiBzdHJpbmc7XG4gIGFsdDogc3RyaW5nO1xufTtcblxudHlwZSBUb2FzdFByb3BzID0ge1xuICBjaGlsZHJlbjogUmVhY3ROb2RlO1xuICBjb250YWluZXJSZWY/OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBidXR0b25zOiBSZWFjdE5vZGVBcnJheTtcbiAgaW1hZ2U/OiBJbWFnZVR5cGU7XG4gIG9uQ2xpY2s/OiAoKSA9PiB2b2lkO1xufTtcblxuZnVuY3Rpb24gVG9hc3Qoe1xuICBjaGlsZHJlbixcbiAgY29udGFpbmVyUmVmLFxuICBpbWFnZSxcbiAgYnV0dG9ucyxcbiAgb25DbGljayA9ICgpID0+IHt9LFxufTogVG9hc3RQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLnRvYXN0XSl9XG4gICAgICBvbkNsaWNrPXtvbkNsaWNrfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJ0b2FzdFwiXG4gICAgPlxuICAgICAge2ltYWdlICYmIChcbiAgICAgICAgPGltZ1xuICAgICAgICAgIGRhdGEtdGVzdGlkPVwidG9hc3QtaW1hZ2VcIlxuICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLnRvYXN0SW1hZ2V9XG4gICAgICAgICAgc3JjPXtpbWFnZS5zcmN9XG4gICAgICAgICAgYWx0PXtpbWFnZS5hbHR9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy50b2FzdENvbnRlbnR9PntjaGlsZHJlbn08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMudG9hc3RCdXR0b25zfT57YnV0dG9uc308L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgVG9hc3Q7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcInRvYXN0XCI6XCJfMk4zWGlIOFJWbkVBWWx6QkRfSkNxWlwiLFwiZW50cmFuY2VcIjpcIl8xOWN3M3p4NmZVNFJNR01hR001ekpaXCIsXCJ0b2FzdENvbnRlbnRcIjpcIl8ybmQzVXFackFvamVhSTUweFF1Qk5YXCIsXCJ0b2FzdEltYWdlXCI6XCJQSHl6a0FzQnY5R3lLeU1fb1VMSE9cIixcInRvYXN0QnV0dG9uc1wiOlwiXzJlbzlyejhtYmNJMk9VNnhLQXo2cFZcIn07IiwiaW1wb3J0IFJlYWN0LCB7IFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgY2xhc3NjYXQgZnJvbSBcImNsYXNzY2F0XCI7XG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL1RvYXN0Q29udGFpbmVyLm1vZHVsZS5jc3NcIjtcblxudHlwZSBUb2FzdENvbnRhaW5lclByb3BzID0ge1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn1cbmZ1bmN0aW9uIFRvYXN0Q29udGFpbmVyKHsgY2hpbGRyZW4gfTogVG9hc3RDb250YWluZXJQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NjYXQoW3N0eWxlcy50b2FzdENvbnRhaW5lcl0pfVxuICAgICAgZGF0YS10ZXN0aWQ9XCJ0b2FzdC1jb250YWluZXJcIlxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgVG9hc3RDb250YWluZXI7XG4iLCIvLyBleHRyYWN0ZWQgYnkgbWluaS1jc3MtZXh0cmFjdC1wbHVnaW5cbmV4cG9ydCBkZWZhdWx0IHtcInRvYXN0Q29udGFpbmVyXCI6XCJfM1JUMmFiZnpLMHJ0LVlqY3JxWExuclwifTsiLCJleHBvcnQgeyBkZWZhdWx0IGFzIFZpZGVvIH0gZnJvbSBcIi4vVmlkZW9cIjtcbiIsImltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUsIFJlZk9iamVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IGNsYXNzY2F0IGZyb20gXCJjbGFzc2NhdFwiO1xuXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL1ZpZGVvLm1vZHVsZS5jc3NcIjtcblxuLyoqXG4gKiBUaGVyZSBpcyBhIGtub3duIGlzc3VlIGluIFJlYWN0IGluIHJlZ2FyZHMgdG8gdGhlICdtdXRlZCcgcHJvcGVydHkgd2hpY2ggY2F1c2VzIHRoZSB3YXJuaW5nOlxuICogXCJXYXJuaW5nOiB1bnN0YWJsZV9mbHVzaERpc2NyZXRlVXBkYXRlczogQ2Fubm90IGZsdXNoIHVwZGF0ZXMgd2hlbiBSZWFjdCBpcyBhbHJlYWR5IHJlbmRlcmluZy5cIlxuICpcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTAzODlcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvNjU0NFxuICogaHR0cHM6Ly9naXRodWIuY29tL3Rlc3RpbmctbGlicmFyeS9yZWFjdC10ZXN0aW5nLWxpYnJhcnkvaXNzdWVzLzQ3MFxuICovXG5cbnR5cGUgTGF5b3V0ID0gXCJjb3ZlclwiIHwgXCJjb250YWluXCIgfCBcInN0cmV0Y2hIb3Jpem9udGFsbHlcIiB8IFwic3RyZXRjaFZlcnRpY2FsbHlcIjtcblxudHlwZSBWaWRlb1Byb3BzID0ge1xuICBzcmM6IHN0cmluZztcbiAgdHlwZTogc3RyaW5nO1xuICBsYXlvdXQ/OiBMYXlvdXQ7XG4gIGF1dG9QbGF5PzogYm9vbGVhbjtcbiAgbG9vcD86IGJvb2xlYW47XG4gIG11dGVkPzogYm9vbGVhbjtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG4gIGNvbnRhaW5lclJlZj86IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG59O1xuXG5mdW5jdGlvbiBWaWRlbyh7XG4gIHNyYyxcbiAgdHlwZSxcbiAgY2hpbGRyZW4sXG4gIGNvbnRhaW5lclJlZixcbiAgbXV0ZWQgPSB0cnVlLFxuICBsb29wID0gdHJ1ZSxcbiAgYXV0b1BsYXkgPSB0cnVlLFxuICBsYXlvdXQgPSBcImNvbnRhaW5cIixcbn06IFZpZGVvUHJvcHMpIHtcbiAgcmV0dXJuIGNoaWxkcmVuID8gKFxuICAgIDxkaXZcbiAgICAgIHJlZj17Y29udGFpbmVyUmVmfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLmNvbnRhaW5lciwgc3R5bGVzLmhhc092ZXJsYXldKX1cbiAgICA+XG4gICAgICA8dmlkZW9cbiAgICAgICAgZGF0YS10ZXN0aWQ9XCJ2aWRlb1wiXG4gICAgICAgIGNyb3NzT3JpZ2luPVwiYW5vbnltb3VzXCJcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2NhdChbc3R5bGVzLnZpZGVvLCBzdHlsZXNbbGF5b3V0XV0pfVxuICAgICAgICBtdXRlZD17bXV0ZWR9XG4gICAgICAgIGxvb3A9e2xvb3B9XG4gICAgICAgIGF1dG9QbGF5PXthdXRvUGxheX1cbiAgICAgICAgcGxheXNJbmxpbmU9e3RydWV9XG4gICAgICA+XG4gICAgICAgIDxzb3VyY2UgZGF0YS10ZXN0aWQ9XCJzb3VyY2VcIiBzcmM9e3NyY30gdHlwZT17dHlwZX0gLz5cbiAgICAgIDwvdmlkZW8+XG4gICAgICB7Y2hpbGRyZW4gJiYgPGRpdiBjbGFzc05hbWU9e3N0eWxlcy5vdmVybGF5fT57Y2hpbGRyZW59PC9kaXY+fVxuICAgIDwvZGl2PlxuICApIDogKFxuICAgIDx2aWRlb1xuICAgICAgZGF0YS10ZXN0aWQ9XCJ2aWRlb1wiXG4gICAgICBjcm9zc09yaWdpbj1cImFub255bW91c1wiXG4gICAgICBjbGFzc05hbWU9e2NsYXNzY2F0KFtzdHlsZXMudmlkZW8sIHN0eWxlc1tsYXlvdXRdXSl9XG4gICAgICBtdXRlZD17bXV0ZWR9XG4gICAgICBsb29wPXtsb29wfVxuICAgICAgYXV0b1BsYXk9e2F1dG9QbGF5fVxuICAgICAgcGxheXNJbmxpbmU9e3RydWV9XG4gICAgPlxuICAgICAgPHNvdXJjZSBkYXRhLXRlc3RpZD1cInNvdXJjZVwiIHNyYz17c3JjfSB0eXBlPXt0eXBlfSAvPlxuICAgIDwvdmlkZW8+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFZpZGVvO1xuIiwiLy8gZXh0cmFjdGVkIGJ5IG1pbmktY3NzLWV4dHJhY3QtcGx1Z2luXG5leHBvcnQgZGVmYXVsdCB7XCJjb250YWluZXJcIjpcIl8xZDU1d1h1UUtwdDk3UHFRSFl4NW1XXCIsXCJoYXNPdmVybGF5XCI6XCJfMkRBTTF4N1Axd3VZTlA4VERtWEdYY1wiLFwidmlkZW9cIjpcIl8zalFfcXBVTHRyMHVGU1RXYkQwTlZaXCIsXCJjb3ZlclwiOlwiXzFxblZMaGVHekRJNk5vOV9ud2I3aGxcIixcImNvbnRhaW5cIjpcIl8xWDI4Nk5JU0kwd3EyS0szZGpWaHUzXCIsXCJzdHJldGNoSG9yaXpvbnRhbGx5XCI6XCJPZWdsLThnZDJLNWx6M21VR0pfVXpcIixcInN0cmV0Y2hWZXJ0aWNhbGx5XCI6XCJfMS1IenBUWV9XdEdjWmMyNXdDb3RlWVwiLFwib3ZlcmxheVwiOlwiXzJUdlhzcUFJVW5HU3FtNmtuSkZoTDNcIn07IiwiZXhwb3J0IHsgZGVmYXVsdCBhcyB1c2VUb2dnbGUgfSBmcm9tIFwiLi91c2VUb2dnbGVcIjtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgdXNlT3V0c2lkZUNsaWNrIH0gZnJvbSBcIi4vdXNlT3V0c2lkZUNsaWNrXCI7XG4iLCJpbXBvcnQgeyB1c2VDYWxsYmFjaywgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlVG9nZ2xlKFxuICBpbml0aWFsVmFsdWUgPSBmYWxzZVxuKTogW2Jvb2xlYW4sIChuZXdWYWx1ZT86IGJvb2xlYW4pID0+IHZvaWRdIHtcbiAgY29uc3QgW3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZTxib29sZWFuPihpbml0aWFsVmFsdWUpO1xuXG4gIGNvbnN0IHRvZ2dsZSA9IChuZXdWYWx1ZT86IGJvb2xlYW4pID0+IHtcbiAgICBpZiAodHlwZW9mIG5ld1ZhbHVlID09PSBcImJvb2xlYW5cIikge1xuICAgICAgc2V0VmFsdWUobmV3VmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRWYWx1ZSgocHJldlZhbHVlKSA9PiB7XG4gICAgICAgIHJldHVybiAhcHJldlZhbHVlO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBbdmFsdWUsIHVzZUNhbGxiYWNrKHRvZ2dsZSwgW3ZhbHVlXSldO1xufVxuXG4iLCJpbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiB9IGZyb20gXCJyZWFjdFwiO1xuXG50eXBlIENhbGxiYWNrID0gKGV2ZW50OiBFdmVudCkgPT4gdm9pZDtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdXNlT3V0c2lkZUNsaWNrKGNhbGxiYWNrOiBDYWxsYmFjaykge1xuICBjb25zdCByZWYgPSB1c2VSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBoYW5kbGVDbGljayA9IChldmVudDogRXZlbnQpID0+IHtcbiAgICAgIGlmICghcmVmLmN1cnJlbnQgfHwgcmVmLmN1cnJlbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0IGFzIE5vZGUpKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY2FsbGJhY2soZXZlbnQpO1xuICAgIH07XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgaGFuZGxlQ2xpY2spO1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ0b3VjaHN0YXJ0XCIsIGhhbmRsZUNsaWNrKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgaGFuZGxlQ2xpY2spO1xuICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInRvdWNoc3RhcnRcIiwgaGFuZGxlQ2xpY2spO1xuICAgIH07XG4gIH0sIFtjYWxsYmFja10pO1xuXG4gIHJldHVybiByZWY7XG59XG4iLCIvKiFcbiAqIGhvdGtleXMtanMgdjMuOC4xXG4gKiBBIHNpbXBsZSBtaWNyby1saWJyYXJ5IGZvciBkZWZpbmluZyBhbmQgZGlzcGF0Y2hpbmcga2V5Ym9hcmQgc2hvcnRjdXRzLiBJdCBoYXMgbm8gZGVwZW5kZW5jaWVzLlxuICogXG4gKiBDb3B5cmlnaHQgKGMpIDIwMjAga2Vubnkgd29uZyA8d293b2hvb0BxcS5jb20+XG4gKiBodHRwOi8vamF5d2NqbG92ZS5naXRodWIuaW8vaG90a2V5c1xuICogXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuXG4gKi9cblxudmFyIGlzZmYgPSB0eXBlb2YgbmF2aWdhdG9yICE9PSAndW5kZWZpbmVkJyA/IG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5pbmRleE9mKCdmaXJlZm94JykgPiAwIDogZmFsc2U7IC8vIOe7keWumuS6i+S7tlxuXG5mdW5jdGlvbiBhZGRFdmVudChvYmplY3QsIGV2ZW50LCBtZXRob2QpIHtcbiAgaWYgKG9iamVjdC5hZGRFdmVudExpc3RlbmVyKSB7XG4gICAgb2JqZWN0LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIG1ldGhvZCwgZmFsc2UpO1xuICB9IGVsc2UgaWYgKG9iamVjdC5hdHRhY2hFdmVudCkge1xuICAgIG9iamVjdC5hdHRhY2hFdmVudChcIm9uXCIuY29uY2F0KGV2ZW50KSwgZnVuY3Rpb24gKCkge1xuICAgICAgbWV0aG9kKHdpbmRvdy5ldmVudCk7XG4gICAgfSk7XG4gIH1cbn0gLy8g5L+u6aWw6ZSu6L2s5o2i5oiQ5a+55bqU55qE6ZSu56CBXG5cblxuZnVuY3Rpb24gZ2V0TW9kcyhtb2RpZmllciwga2V5KSB7XG4gIHZhciBtb2RzID0ga2V5LnNsaWNlKDAsIGtleS5sZW5ndGggLSAxKTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IG1vZHMubGVuZ3RoOyBpKyspIHtcbiAgICBtb2RzW2ldID0gbW9kaWZpZXJbbW9kc1tpXS50b0xvd2VyQ2FzZSgpXTtcbiAgfVxuXG4gIHJldHVybiBtb2RzO1xufSAvLyDlpITnkIbkvKDnmoRrZXnlrZfnrKbkuLLovazmjaLmiJDmlbDnu4RcblxuXG5mdW5jdGlvbiBnZXRLZXlzKGtleSkge1xuICBpZiAodHlwZW9mIGtleSAhPT0gJ3N0cmluZycpIGtleSA9ICcnO1xuICBrZXkgPSBrZXkucmVwbGFjZSgvXFxzL2csICcnKTsgLy8g5Yy56YWN5Lu75L2V56m655m95a2X56ymLOWMheaLrOepuuagvOOAgeWItuihqOespuOAgeaNoumhteespuetieetiVxuXG4gIHZhciBrZXlzID0ga2V5LnNwbGl0KCcsJyk7IC8vIOWQjOaXtuiuvue9ruWkmuS4quW/q+aNt+mUru+8jOS7pScsJ+WIhuWJslxuXG4gIHZhciBpbmRleCA9IGtleXMubGFzdEluZGV4T2YoJycpOyAvLyDlv6vmjbfplK7lj6/og73ljIXlkKsnLCfvvIzpnIDnibnmrorlpITnkIZcblxuICBmb3IgKDsgaW5kZXggPj0gMDspIHtcbiAgICBrZXlzW2luZGV4IC0gMV0gKz0gJywnO1xuICAgIGtleXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICBpbmRleCA9IGtleXMubGFzdEluZGV4T2YoJycpO1xuICB9XG5cbiAgcmV0dXJuIGtleXM7XG59IC8vIOavlOi+g+S/rumlsOmUrueahOaVsOe7hFxuXG5cbmZ1bmN0aW9uIGNvbXBhcmVBcnJheShhMSwgYTIpIHtcbiAgdmFyIGFycjEgPSBhMS5sZW5ndGggPj0gYTIubGVuZ3RoID8gYTEgOiBhMjtcbiAgdmFyIGFycjIgPSBhMS5sZW5ndGggPj0gYTIubGVuZ3RoID8gYTIgOiBhMTtcbiAgdmFyIGlzSW5kZXggPSB0cnVlO1xuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgYXJyMS5sZW5ndGg7IGkrKykge1xuICAgIGlmIChhcnIyLmluZGV4T2YoYXJyMVtpXSkgPT09IC0xKSBpc0luZGV4ID0gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gaXNJbmRleDtcbn1cblxudmFyIF9rZXlNYXAgPSB7XG4gIGJhY2tzcGFjZTogOCxcbiAgdGFiOiA5LFxuICBjbGVhcjogMTIsXG4gIGVudGVyOiAxMyxcbiAgcmV0dXJuOiAxMyxcbiAgZXNjOiAyNyxcbiAgZXNjYXBlOiAyNyxcbiAgc3BhY2U6IDMyLFxuICBsZWZ0OiAzNyxcbiAgdXA6IDM4LFxuICByaWdodDogMzksXG4gIGRvd246IDQwLFxuICBkZWw6IDQ2LFxuICBkZWxldGU6IDQ2LFxuICBpbnM6IDQ1LFxuICBpbnNlcnQ6IDQ1LFxuICBob21lOiAzNixcbiAgZW5kOiAzNSxcbiAgcGFnZXVwOiAzMyxcbiAgcGFnZWRvd246IDM0LFxuICBjYXBzbG9jazogMjAsXG4gICfih6onOiAyMCxcbiAgJywnOiAxODgsXG4gICcuJzogMTkwLFxuICAnLyc6IDE5MSxcbiAgJ2AnOiAxOTIsXG4gICctJzogaXNmZiA/IDE3MyA6IDE4OSxcbiAgJz0nOiBpc2ZmID8gNjEgOiAxODcsXG4gICc7JzogaXNmZiA/IDU5IDogMTg2LFxuICAnXFwnJzogMjIyLFxuICAnWyc6IDIxOSxcbiAgJ10nOiAyMjEsXG4gICdcXFxcJzogMjIwXG59OyAvLyBNb2RpZmllciBLZXlzXG5cbnZhciBfbW9kaWZpZXIgPSB7XG4gIC8vIHNoaWZ0S2V5XG4gICfih6cnOiAxNixcbiAgc2hpZnQ6IDE2LFxuICAvLyBhbHRLZXlcbiAgJ+KMpSc6IDE4LFxuICBhbHQ6IDE4LFxuICBvcHRpb246IDE4LFxuICAvLyBjdHJsS2V5XG4gICfijIMnOiAxNyxcbiAgY3RybDogMTcsXG4gIGNvbnRyb2w6IDE3LFxuICAvLyBtZXRhS2V5XG4gICfijJgnOiA5MSxcbiAgY21kOiA5MSxcbiAgY29tbWFuZDogOTFcbn07XG52YXIgbW9kaWZpZXJNYXAgPSB7XG4gIDE2OiAnc2hpZnRLZXknLFxuICAxODogJ2FsdEtleScsXG4gIDE3OiAnY3RybEtleScsXG4gIDkxOiAnbWV0YUtleScsXG4gIHNoaWZ0S2V5OiAxNixcbiAgY3RybEtleTogMTcsXG4gIGFsdEtleTogMTgsXG4gIG1ldGFLZXk6IDkxXG59O1xudmFyIF9tb2RzID0ge1xuICAxNjogZmFsc2UsXG4gIDE4OiBmYWxzZSxcbiAgMTc6IGZhbHNlLFxuICA5MTogZmFsc2Vcbn07XG52YXIgX2hhbmRsZXJzID0ge307IC8vIEYxfkYxMiBzcGVjaWFsIGtleVxuXG5mb3IgKHZhciBrID0gMTsgayA8IDIwOyBrKyspIHtcbiAgX2tleU1hcFtcImZcIi5jb25jYXQoayldID0gMTExICsgaztcbn1cblxudmFyIF9kb3duS2V5cyA9IFtdOyAvLyDorrDlvZXmkYHkuIvnmoTnu5HlrprplK5cblxudmFyIF9zY29wZSA9ICdhbGwnOyAvLyDpu5jorqTng63plK7ojIPlm7RcblxudmFyIGVsZW1lbnRIYXNCaW5kRXZlbnQgPSBbXTsgLy8g5bey57uR5a6a5LqL5Lu255qE6IqC54K56K6w5b2VXG4vLyDov5Tlm57plK7noIFcblxudmFyIGNvZGUgPSBmdW5jdGlvbiBjb2RlKHgpIHtcbiAgcmV0dXJuIF9rZXlNYXBbeC50b0xvd2VyQ2FzZSgpXSB8fCBfbW9kaWZpZXJbeC50b0xvd2VyQ2FzZSgpXSB8fCB4LnRvVXBwZXJDYXNlKCkuY2hhckNvZGVBdCgwKTtcbn07IC8vIOiuvue9ruiOt+WPluW9k+WJjeiMg+WbtO+8iOm7mOiupOS4uifmiYDmnIkn77yJXG5cblxuZnVuY3Rpb24gc2V0U2NvcGUoc2NvcGUpIHtcbiAgX3Njb3BlID0gc2NvcGUgfHwgJ2FsbCc7XG59IC8vIOiOt+WPluW9k+WJjeiMg+WbtFxuXG5cbmZ1bmN0aW9uIGdldFNjb3BlKCkge1xuICByZXR1cm4gX3Njb3BlIHx8ICdhbGwnO1xufSAvLyDojrflj5bmkYHkuIvnu5HlrprplK7nmoTplK7lgLxcblxuXG5mdW5jdGlvbiBnZXRQcmVzc2VkS2V5Q29kZXMoKSB7XG4gIHJldHVybiBfZG93bktleXMuc2xpY2UoMCk7XG59IC8vIOihqOWNleaOp+S7tuaOp+S7tuWIpOaWrSDov5Tlm54gQm9vbGVhblxuLy8gaG90a2V5IGlzIGVmZmVjdGl2ZSBvbmx5IHdoZW4gZmlsdGVyIHJldHVybiB0cnVlXG5cblxuZnVuY3Rpb24gZmlsdGVyKGV2ZW50KSB7XG4gIHZhciB0YXJnZXQgPSBldmVudC50YXJnZXQgfHwgZXZlbnQuc3JjRWxlbWVudDtcbiAgdmFyIHRhZ05hbWUgPSB0YXJnZXQudGFnTmFtZTtcbiAgdmFyIGZsYWcgPSB0cnVlOyAvLyBpZ25vcmU6IGlzQ29udGVudEVkaXRhYmxlID09PSAndHJ1ZScsIDxpbnB1dD4gYW5kIDx0ZXh0YXJlYT4gd2hlbiByZWFkT25seSBzdGF0ZSBpcyBmYWxzZSwgPHNlbGVjdD5cblxuICBpZiAodGFyZ2V0LmlzQ29udGVudEVkaXRhYmxlIHx8ICh0YWdOYW1lID09PSAnSU5QVVQnIHx8IHRhZ05hbWUgPT09ICdURVhUQVJFQScgfHwgdGFnTmFtZSA9PT0gJ1NFTEVDVCcpICYmICF0YXJnZXQucmVhZE9ubHkpIHtcbiAgICBmbGFnID0gZmFsc2U7XG4gIH1cblxuICByZXR1cm4gZmxhZztcbn0gLy8g5Yik5pat5pGB5LiL55qE6ZSu5piv5ZCm5Li65p+Q5Liq6ZSu77yM6L+U5ZuedHJ1ZeaIluiAhWZhbHNlXG5cblxuZnVuY3Rpb24gaXNQcmVzc2VkKGtleUNvZGUpIHtcbiAgaWYgKHR5cGVvZiBrZXlDb2RlID09PSAnc3RyaW5nJykge1xuICAgIGtleUNvZGUgPSBjb2RlKGtleUNvZGUpOyAvLyDovazmjaLmiJDplK7noIFcbiAgfVxuXG4gIHJldHVybiBfZG93bktleXMuaW5kZXhPZihrZXlDb2RlKSAhPT0gLTE7XG59IC8vIOW+queOr+WIoOmZpGhhbmRsZXJz5Lit55qE5omA5pyJIHNjb3BlKOiMg+WbtClcblxuXG5mdW5jdGlvbiBkZWxldGVTY29wZShzY29wZSwgbmV3U2NvcGUpIHtcbiAgdmFyIGhhbmRsZXJzO1xuICB2YXIgaTsgLy8g5rKh5pyJ5oyH5a6ac2NvcGXvvIzojrflj5ZzY29wZVxuXG4gIGlmICghc2NvcGUpIHNjb3BlID0gZ2V0U2NvcGUoKTtcblxuICBmb3IgKHZhciBrZXkgaW4gX2hhbmRsZXJzKSB7XG4gICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChfaGFuZGxlcnMsIGtleSkpIHtcbiAgICAgIGhhbmRsZXJzID0gX2hhbmRsZXJzW2tleV07XG5cbiAgICAgIGZvciAoaSA9IDA7IGkgPCBoYW5kbGVycy5sZW5ndGg7KSB7XG4gICAgICAgIGlmIChoYW5kbGVyc1tpXS5zY29wZSA9PT0gc2NvcGUpIGhhbmRsZXJzLnNwbGljZShpLCAxKTtlbHNlIGkrKztcbiAgICAgIH1cbiAgICB9XG4gIH0gLy8g5aaC5p6cc2NvcGXooqvliKDpmaTvvIzlsIZzY29wZemHjee9ruS4umFsbFxuXG5cbiAgaWYgKGdldFNjb3BlKCkgPT09IHNjb3BlKSBzZXRTY29wZShuZXdTY29wZSB8fCAnYWxsJyk7XG59IC8vIOa4hemZpOS/rumlsOmUrlxuXG5cbmZ1bmN0aW9uIGNsZWFyTW9kaWZpZXIoZXZlbnQpIHtcbiAgdmFyIGtleSA9IGV2ZW50LmtleUNvZGUgfHwgZXZlbnQud2hpY2ggfHwgZXZlbnQuY2hhckNvZGU7XG5cbiAgdmFyIGkgPSBfZG93bktleXMuaW5kZXhPZihrZXkpOyAvLyDku47liJfooajkuK3muIXpmaTmjInljovov4fnmoTplK5cblxuXG4gIGlmIChpID49IDApIHtcbiAgICBfZG93bktleXMuc3BsaWNlKGksIDEpO1xuICB9IC8vIOeJueauiuWkhOeQhiBjbW1hbmQg6ZSu77yM5ZyoIGNtbWFuZCDnu4TlkIjlv6vmjbfplK4ga2V5dXAg5Y+q5omn6KGM5LiA5qyh55qE6Zeu6aKYXG5cblxuICBpZiAoZXZlbnQua2V5ICYmIGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAnbWV0YScpIHtcbiAgICBfZG93bktleXMuc3BsaWNlKDAsIF9kb3duS2V5cy5sZW5ndGgpO1xuICB9IC8vIOS/rumlsOmUriBzaGlmdEtleSBhbHRLZXkgY3RybEtleSAoY29tbWFuZHx8bWV0YUtleSkg5riF6ZmkXG5cblxuICBpZiAoa2V5ID09PSA5MyB8fCBrZXkgPT09IDIyNCkga2V5ID0gOTE7XG5cbiAgaWYgKGtleSBpbiBfbW9kcykge1xuICAgIF9tb2RzW2tleV0gPSBmYWxzZTsgLy8g5bCG5L+u6aWw6ZSu6YeN572u5Li6ZmFsc2VcblxuICAgIGZvciAodmFyIGsgaW4gX21vZGlmaWVyKSB7XG4gICAgICBpZiAoX21vZGlmaWVyW2tdID09PSBrZXkpIGhvdGtleXNba10gPSBmYWxzZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdW5iaW5kKGtleXNJbmZvKSB7XG4gIC8vIHVuYmluZCgpLCB1bmJpbmQgYWxsIGtleXNcbiAgaWYgKCFrZXlzSW5mbykge1xuICAgIE9iamVjdC5rZXlzKF9oYW5kbGVycykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICByZXR1cm4gZGVsZXRlIF9oYW5kbGVyc1trZXldO1xuICAgIH0pO1xuICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoa2V5c0luZm8pKSB7XG4gICAgLy8gc3VwcG9ydCBsaWtlIDogdW5iaW5kKFt7a2V5OiAnY3RybCthJywgc2NvcGU6ICdzMSd9LCB7a2V5OiAnY3RybC1hJywgc2NvcGU6ICdzMicsIHNwbGl0S2V5OiAnLSd9XSlcbiAgICBrZXlzSW5mby5mb3JFYWNoKGZ1bmN0aW9uIChpbmZvKSB7XG4gICAgICBpZiAoaW5mby5rZXkpIGVhY2hVbmJpbmQoaW5mbyk7XG4gICAgfSk7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGtleXNJbmZvID09PSAnb2JqZWN0Jykge1xuICAgIC8vIHN1cHBvcnQgbGlrZSB1bmJpbmQoe2tleTogJ2N0cmwrYSwgY3RybCtiJywgc2NvcGU6J2FiYyd9KVxuICAgIGlmIChrZXlzSW5mby5rZXkpIGVhY2hVbmJpbmQoa2V5c0luZm8pO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBrZXlzSW5mbyA9PT0gJ3N0cmluZycpIHtcbiAgICBmb3IgKHZhciBfbGVuID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuID4gMSA/IF9sZW4gLSAxIDogMCksIF9rZXkgPSAxOyBfa2V5IDwgX2xlbjsgX2tleSsrKSB7XG4gICAgICBhcmdzW19rZXkgLSAxXSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG5cbiAgICAvLyBzdXBwb3J0IG9sZCBtZXRob2RcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG4gICAgdmFyIHNjb3BlID0gYXJnc1swXSxcbiAgICAgICAgbWV0aG9kID0gYXJnc1sxXTtcblxuICAgIGlmICh0eXBlb2Ygc2NvcGUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIG1ldGhvZCA9IHNjb3BlO1xuICAgICAgc2NvcGUgPSAnJztcbiAgICB9XG5cbiAgICBlYWNoVW5iaW5kKHtcbiAgICAgIGtleToga2V5c0luZm8sXG4gICAgICBzY29wZTogc2NvcGUsXG4gICAgICBtZXRob2Q6IG1ldGhvZCxcbiAgICAgIHNwbGl0S2V5OiAnKydcbiAgICB9KTtcbiAgfVxufSAvLyDop6PpmaTnu5Hlrprmn5DkuKrojIPlm7TnmoTlv6vmjbfplK5cblxuXG52YXIgZWFjaFVuYmluZCA9IGZ1bmN0aW9uIGVhY2hVbmJpbmQoX3JlZikge1xuICB2YXIga2V5ID0gX3JlZi5rZXksXG4gICAgICBzY29wZSA9IF9yZWYuc2NvcGUsXG4gICAgICBtZXRob2QgPSBfcmVmLm1ldGhvZCxcbiAgICAgIF9yZWYkc3BsaXRLZXkgPSBfcmVmLnNwbGl0S2V5LFxuICAgICAgc3BsaXRLZXkgPSBfcmVmJHNwbGl0S2V5ID09PSB2b2lkIDAgPyAnKycgOiBfcmVmJHNwbGl0S2V5O1xuICB2YXIgbXVsdGlwbGVLZXlzID0gZ2V0S2V5cyhrZXkpO1xuICBtdWx0aXBsZUtleXMuZm9yRWFjaChmdW5jdGlvbiAob3JpZ2luS2V5KSB7XG4gICAgdmFyIHVuYmluZEtleXMgPSBvcmlnaW5LZXkuc3BsaXQoc3BsaXRLZXkpO1xuICAgIHZhciBsZW4gPSB1bmJpbmRLZXlzLmxlbmd0aDtcbiAgICB2YXIgbGFzdEtleSA9IHVuYmluZEtleXNbbGVuIC0gMV07XG4gICAgdmFyIGtleUNvZGUgPSBsYXN0S2V5ID09PSAnKicgPyAnKicgOiBjb2RlKGxhc3RLZXkpO1xuICAgIGlmICghX2hhbmRsZXJzW2tleUNvZGVdKSByZXR1cm47IC8vIOWIpOaWreaYr+WQpuS8oOWFpeiMg+WbtO+8jOayoeacieWwseiOt+WPluiMg+WbtFxuXG4gICAgaWYgKCFzY29wZSkgc2NvcGUgPSBnZXRTY29wZSgpO1xuICAgIHZhciBtb2RzID0gbGVuID4gMSA/IGdldE1vZHMoX21vZGlmaWVyLCB1bmJpbmRLZXlzKSA6IFtdO1xuICAgIF9oYW5kbGVyc1trZXlDb2RlXSA9IF9oYW5kbGVyc1trZXlDb2RlXS5tYXAoZnVuY3Rpb24gKHJlY29yZCkge1xuICAgICAgLy8g6YCa6L+H5Ye95pWw5Yik5pat77yM5piv5ZCm6Kej6Zmk57uR5a6a77yM5Ye95pWw55u4562J55u05o6l6L+U5ZueXG4gICAgICB2YXIgaXNNYXRjaGluZ01ldGhvZCA9IG1ldGhvZCA/IHJlY29yZC5tZXRob2QgPT09IG1ldGhvZCA6IHRydWU7XG5cbiAgICAgIGlmIChpc01hdGNoaW5nTWV0aG9kICYmIHJlY29yZC5zY29wZSA9PT0gc2NvcGUgJiYgY29tcGFyZUFycmF5KHJlY29yZC5tb2RzLCBtb2RzKSkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZWNvcmQ7XG4gICAgfSk7XG4gIH0pO1xufTsgLy8g5a+555uR5ZCs5a+55bqU5b+r5o236ZSu55qE5Zue6LCD5Ye95pWw6L+b6KGM5aSE55CGXG5cblxuZnVuY3Rpb24gZXZlbnRIYW5kbGVyKGV2ZW50LCBoYW5kbGVyLCBzY29wZSkge1xuICB2YXIgbW9kaWZpZXJzTWF0Y2g7IC8vIOeci+Wug+aYr+WQpuWcqOW9k+WJjeiMg+WbtFxuXG4gIGlmIChoYW5kbGVyLnNjb3BlID09PSBzY29wZSB8fCBoYW5kbGVyLnNjb3BlID09PSAnYWxsJykge1xuICAgIC8vIOajgOafpeaYr+WQpuWMuemFjeS/rumlsOespu+8iOWmguaenOaciei/lOWbnnRydWXvvIlcbiAgICBtb2RpZmllcnNNYXRjaCA9IGhhbmRsZXIubW9kcy5sZW5ndGggPiAwO1xuXG4gICAgZm9yICh2YXIgeSBpbiBfbW9kcykge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChfbW9kcywgeSkpIHtcbiAgICAgICAgaWYgKCFfbW9kc1t5XSAmJiBoYW5kbGVyLm1vZHMuaW5kZXhPZigreSkgPiAtMSB8fCBfbW9kc1t5XSAmJiBoYW5kbGVyLm1vZHMuaW5kZXhPZigreSkgPT09IC0xKSB7XG4gICAgICAgICAgbW9kaWZpZXJzTWF0Y2ggPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gLy8g6LCD55So5aSE55CG56iL5bqP77yM5aaC5p6c5piv5L+u6aWw6ZSu5LiN5YGa5aSE55CGXG5cblxuICAgIGlmIChoYW5kbGVyLm1vZHMubGVuZ3RoID09PSAwICYmICFfbW9kc1sxNl0gJiYgIV9tb2RzWzE4XSAmJiAhX21vZHNbMTddICYmICFfbW9kc1s5MV0gfHwgbW9kaWZpZXJzTWF0Y2ggfHwgaGFuZGxlci5zaG9ydGN1dCA9PT0gJyonKSB7XG4gICAgICBpZiAoaGFuZGxlci5tZXRob2QoZXZlbnQsIGhhbmRsZXIpID09PSBmYWxzZSkge1xuICAgICAgICBpZiAoZXZlbnQucHJldmVudERlZmF1bHQpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7ZWxzZSBldmVudC5yZXR1cm5WYWx1ZSA9IGZhbHNlO1xuICAgICAgICBpZiAoZXZlbnQuc3RvcFByb3BhZ2F0aW9uKSBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgaWYgKGV2ZW50LmNhbmNlbEJ1YmJsZSkgZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0gLy8g5aSE55CGa2V5ZG93buS6i+S7tlxuXG5cbmZ1bmN0aW9uIGRpc3BhdGNoKGV2ZW50KSB7XG4gIHZhciBhc3RlcmlzayA9IF9oYW5kbGVyc1snKiddO1xuICB2YXIga2V5ID0gZXZlbnQua2V5Q29kZSB8fCBldmVudC53aGljaCB8fCBldmVudC5jaGFyQ29kZTsgLy8g6KGo5Y2V5o6n5Lu26L+H5rukIOm7mOiupOihqOWNleaOp+S7tuS4jeinpuWPkeW/q+aNt+mUrlxuXG4gIGlmICghaG90a2V5cy5maWx0ZXIuY2FsbCh0aGlzLCBldmVudCkpIHJldHVybjsgLy8gR2Vja28oRmlyZWZveCnnmoRjb21tYW5k6ZSu5YC8MjI077yM5ZyoV2Via2l0KENocm9tZSnkuK3kv53mjIHkuIDoh7RcbiAgLy8gV2Via2l05bem5Y+zIGNvbW1hbmQg6ZSu5YC85LiN5LiA5qC3XG5cbiAgaWYgKGtleSA9PT0gOTMgfHwga2V5ID09PSAyMjQpIGtleSA9IDkxO1xuICAvKipcbiAgICogQ29sbGVjdCBib3VuZCBrZXlzXG4gICAqIElmIGFuIElucHV0IE1ldGhvZCBFZGl0b3IgaXMgcHJvY2Vzc2luZyBrZXkgaW5wdXQgYW5kIHRoZSBldmVudCBpcyBrZXlkb3duLCByZXR1cm4gMjI5LlxuICAgKiBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8yNTA0MzkzNC9pcy1pdC1vay10by1pZ25vcmUta2V5ZG93bi1ldmVudHMtd2l0aC1rZXljb2RlLTIyOVxuICAgKiBodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy93d3ctZG9tLzIwMTBKdWxTZXAvYXR0LTAxODIva2V5Q29kZS1zcGVjLmh0bWxcbiAgICovXG5cbiAgaWYgKF9kb3duS2V5cy5pbmRleE9mKGtleSkgPT09IC0xICYmIGtleSAhPT0gMjI5KSBfZG93bktleXMucHVzaChrZXkpO1xuICAvKipcbiAgICogSmVzdCB0ZXN0IGNhc2VzIGFyZSByZXF1aXJlZC5cbiAgICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgKi9cblxuICBbJ2N0cmxLZXknLCAnYWx0S2V5JywgJ3NoaWZ0S2V5JywgJ21ldGFLZXknXS5mb3JFYWNoKGZ1bmN0aW9uIChrZXlOYW1lKSB7XG4gICAgdmFyIGtleU51bSA9IG1vZGlmaWVyTWFwW2tleU5hbWVdO1xuXG4gICAgaWYgKGV2ZW50W2tleU5hbWVdICYmIF9kb3duS2V5cy5pbmRleE9mKGtleU51bSkgPT09IC0xKSB7XG4gICAgICBfZG93bktleXMucHVzaChrZXlOdW0pO1xuICAgIH0gZWxzZSBpZiAoIWV2ZW50W2tleU5hbWVdICYmIF9kb3duS2V5cy5pbmRleE9mKGtleU51bSkgPiAtMSkge1xuICAgICAgX2Rvd25LZXlzLnNwbGljZShfZG93bktleXMuaW5kZXhPZihrZXlOdW0pLCAxKTtcbiAgICB9IGVsc2UgaWYgKGtleU5hbWUgPT09ICdtZXRhS2V5JyAmJiBldmVudFtrZXlOYW1lXSAmJiBfZG93bktleXMubGVuZ3RoID09PSAzKSB7XG4gICAgICAvKipcbiAgICAgICAqIEZpeCBpZiBDb21tYW5kIGlzIHByZXNzZWQ6XG4gICAgICAgKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICAgICAgKi9cbiAgICAgIGlmICghKGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQuc2hpZnRLZXkgfHwgZXZlbnQuYWx0S2V5KSkge1xuICAgICAgICBfZG93bktleXMgPSBfZG93bktleXMuc2xpY2UoX2Rvd25LZXlzLmluZGV4T2Yoa2V5TnVtKSk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgLyoqXG4gICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICovXG5cbiAgaWYgKGtleSBpbiBfbW9kcykge1xuICAgIF9tb2RzW2tleV0gPSB0cnVlOyAvLyDlsIbnibnmrorlrZfnrKbnmoRrZXnms6jlhozliLAgaG90a2V5cyDkuIpcblxuICAgIGZvciAodmFyIGsgaW4gX21vZGlmaWVyKSB7XG4gICAgICBpZiAoX21vZGlmaWVyW2tdID09PSBrZXkpIGhvdGtleXNba10gPSB0cnVlO1xuICAgIH1cblxuICAgIGlmICghYXN0ZXJpc2spIHJldHVybjtcbiAgfSAvLyDlsIYgbW9kaWZpZXJNYXAg6YeM6Z2i55qE5L+u6aWw6ZSu57uR5a6a5YiwIGV2ZW50IOS4rVxuXG5cbiAgZm9yICh2YXIgZSBpbiBfbW9kcykge1xuICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoX21vZHMsIGUpKSB7XG4gICAgICBfbW9kc1tlXSA9IGV2ZW50W21vZGlmaWVyTWFwW2VdXTtcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9qYXl3Y2psb3ZlL2hvdGtleXMvcHVsbC8xMjlcbiAgICogVGhpcyBzb2x2ZXMgdGhlIGlzc3VlIGluIEZpcmVmb3ggb24gV2luZG93cyB3aGVyZSBob3RrZXlzIGNvcnJlc3BvbmRpbmcgdG8gc3BlY2lhbCBjaGFyYWN0ZXJzIHdvdWxkIG5vdCB0cmlnZ2VyLlxuICAgKiBBbiBleGFtcGxlIG9mIHRoaXMgaXMgY3RybCthbHQrbSBvbiBhIFN3ZWRpc2gga2V5Ym9hcmQgd2hpY2ggaXMgdXNlZCB0byB0eXBlIM68LlxuICAgKiBCcm93c2VyIHN1cHBvcnQ6IGh0dHBzOi8vY2FuaXVzZS5jb20vI2ZlYXQ9a2V5Ym9hcmRldmVudC1nZXRtb2RpZmllcnN0YXRlXG4gICAqL1xuXG5cbiAgaWYgKGV2ZW50LmdldE1vZGlmaWVyU3RhdGUgJiYgIShldmVudC5hbHRLZXkgJiYgIWV2ZW50LmN0cmxLZXkpICYmIGV2ZW50LmdldE1vZGlmaWVyU3RhdGUoJ0FsdEdyYXBoJykpIHtcbiAgICBpZiAoX2Rvd25LZXlzLmluZGV4T2YoMTcpID09PSAtMSkge1xuICAgICAgX2Rvd25LZXlzLnB1c2goMTcpO1xuICAgIH1cblxuICAgIGlmIChfZG93bktleXMuaW5kZXhPZigxOCkgPT09IC0xKSB7XG4gICAgICBfZG93bktleXMucHVzaCgxOCk7XG4gICAgfVxuXG4gICAgX21vZHNbMTddID0gdHJ1ZTtcbiAgICBfbW9kc1sxOF0gPSB0cnVlO1xuICB9IC8vIOiOt+WPluiMg+WbtCDpu5jorqTkuLogYGFsbGBcblxuXG4gIHZhciBzY29wZSA9IGdldFNjb3BlKCk7IC8vIOWvueS7u+S9leW/q+aNt+mUrumDvemcgOimgeWBmueahOWkhOeQhlxuXG4gIGlmIChhc3Rlcmlzaykge1xuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXN0ZXJpc2subGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChhc3Rlcmlza1tpXS5zY29wZSA9PT0gc2NvcGUgJiYgKGV2ZW50LnR5cGUgPT09ICdrZXlkb3duJyAmJiBhc3Rlcmlza1tpXS5rZXlkb3duIHx8IGV2ZW50LnR5cGUgPT09ICdrZXl1cCcgJiYgYXN0ZXJpc2tbaV0ua2V5dXApKSB7XG4gICAgICAgIGV2ZW50SGFuZGxlcihldmVudCwgYXN0ZXJpc2tbaV0sIHNjb3BlKTtcbiAgICAgIH1cbiAgICB9XG4gIH0gLy8ga2V5IOS4jeWcqCBfaGFuZGxlcnMg5Lit6L+U5ZueXG5cblxuICBpZiAoIShrZXkgaW4gX2hhbmRsZXJzKSkgcmV0dXJuO1xuXG4gIGZvciAodmFyIF9pID0gMDsgX2kgPCBfaGFuZGxlcnNba2V5XS5sZW5ndGg7IF9pKyspIHtcbiAgICBpZiAoZXZlbnQudHlwZSA9PT0gJ2tleWRvd24nICYmIF9oYW5kbGVyc1trZXldW19pXS5rZXlkb3duIHx8IGV2ZW50LnR5cGUgPT09ICdrZXl1cCcgJiYgX2hhbmRsZXJzW2tleV1bX2ldLmtleXVwKSB7XG4gICAgICBpZiAoX2hhbmRsZXJzW2tleV1bX2ldLmtleSkge1xuICAgICAgICB2YXIgcmVjb3JkID0gX2hhbmRsZXJzW2tleV1bX2ldO1xuICAgICAgICB2YXIgc3BsaXRLZXkgPSByZWNvcmQuc3BsaXRLZXk7XG4gICAgICAgIHZhciBrZXlTaG9ydGN1dCA9IHJlY29yZC5rZXkuc3BsaXQoc3BsaXRLZXkpO1xuICAgICAgICB2YXIgX2Rvd25LZXlzQ3VycmVudCA9IFtdOyAvLyDorrDlvZXlvZPliY3mjInplK7plK7lgLxcblxuICAgICAgICBmb3IgKHZhciBhID0gMDsgYSA8IGtleVNob3J0Y3V0Lmxlbmd0aDsgYSsrKSB7XG4gICAgICAgICAgX2Rvd25LZXlzQ3VycmVudC5wdXNoKGNvZGUoa2V5U2hvcnRjdXRbYV0pKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChfZG93bktleXNDdXJyZW50LnNvcnQoKS5qb2luKCcnKSA9PT0gX2Rvd25LZXlzLnNvcnQoKS5qb2luKCcnKSkge1xuICAgICAgICAgIC8vIOaJvuWIsOWkhOeQhuWGheWuuVxuICAgICAgICAgIGV2ZW50SGFuZGxlcihldmVudCwgcmVjb3JkLCBzY29wZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn0gLy8g5Yik5patIGVsZW1lbnQg5piv5ZCm5bey57uP57uR5a6a5LqL5Lu2XG5cblxuZnVuY3Rpb24gaXNFbGVtZW50QmluZChlbGVtZW50KSB7XG4gIHJldHVybiBlbGVtZW50SGFzQmluZEV2ZW50LmluZGV4T2YoZWxlbWVudCkgPiAtMTtcbn1cblxuZnVuY3Rpb24gaG90a2V5cyhrZXksIG9wdGlvbiwgbWV0aG9kKSB7XG4gIF9kb3duS2V5cyA9IFtdO1xuICB2YXIga2V5cyA9IGdldEtleXMoa2V5KTsgLy8g6ZyA6KaB5aSE55CG55qE5b+r5o236ZSu5YiX6KGoXG5cbiAgdmFyIG1vZHMgPSBbXTtcbiAgdmFyIHNjb3BlID0gJ2FsbCc7IC8vIHNjb3Bl6buY6K6k5Li6YWxs77yM5omA5pyJ6IyD5Zu06YO95pyJ5pWIXG5cbiAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudDsgLy8g5b+r5o236ZSu5LqL5Lu257uR5a6a6IqC54K5XG5cbiAgdmFyIGkgPSAwO1xuICB2YXIga2V5dXAgPSBmYWxzZTtcbiAgdmFyIGtleWRvd24gPSB0cnVlO1xuICB2YXIgc3BsaXRLZXkgPSAnKyc7IC8vIOWvueS4uuiuvuWumuiMg+WbtOeahOWIpOaWrVxuXG4gIGlmIChtZXRob2QgPT09IHVuZGVmaW5lZCAmJiB0eXBlb2Ygb3B0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgbWV0aG9kID0gb3B0aW9uO1xuICB9XG5cbiAgaWYgKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChvcHRpb24pID09PSAnW29iamVjdCBPYmplY3RdJykge1xuICAgIGlmIChvcHRpb24uc2NvcGUpIHNjb3BlID0gb3B0aW9uLnNjb3BlOyAvLyBlc2xpbnQtZGlzYWJsZS1saW5lXG5cbiAgICBpZiAob3B0aW9uLmVsZW1lbnQpIGVsZW1lbnQgPSBvcHRpb24uZWxlbWVudDsgLy8gZXNsaW50LWRpc2FibGUtbGluZVxuXG4gICAgaWYgKG9wdGlvbi5rZXl1cCkga2V5dXAgPSBvcHRpb24ua2V5dXA7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICAgIGlmIChvcHRpb24ua2V5ZG93biAhPT0gdW5kZWZpbmVkKSBrZXlkb3duID0gb3B0aW9uLmtleWRvd247IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcblxuICAgIGlmICh0eXBlb2Ygb3B0aW9uLnNwbGl0S2V5ID09PSAnc3RyaW5nJykgc3BsaXRLZXkgPSBvcHRpb24uc3BsaXRLZXk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmVcbiAgfVxuXG4gIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnc3RyaW5nJykgc2NvcGUgPSBvcHRpb247IC8vIOWvueS6juavj+S4quW/q+aNt+mUrui/m+ihjOWkhOeQhlxuXG4gIGZvciAoOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xuICAgIGtleSA9IGtleXNbaV0uc3BsaXQoc3BsaXRLZXkpOyAvLyDmjInplK7liJfooahcblxuICAgIG1vZHMgPSBbXTsgLy8g5aaC5p6c5piv57uE5ZCI5b+r5o236ZSu5Y+W5b6X57uE5ZCI5b+r5o236ZSuXG5cbiAgICBpZiAoa2V5Lmxlbmd0aCA+IDEpIG1vZHMgPSBnZXRNb2RzKF9tb2RpZmllciwga2V5KTsgLy8g5bCG6Z2e5L+u6aWw6ZSu6L2s5YyW5Li66ZSu56CBXG5cbiAgICBrZXkgPSBrZXlba2V5Lmxlbmd0aCAtIDFdO1xuICAgIGtleSA9IGtleSA9PT0gJyonID8gJyonIDogY29kZShrZXkpOyAvLyAq6KGo56S65Yy56YWN5omA5pyJ5b+r5o236ZSuXG4gICAgLy8g5Yik5pata2V55piv5ZCm5ZyoX2hhbmRsZXJz5Lit77yM5LiN5Zyo5bCx6LWL5LiA5Liq56m65pWw57uEXG5cbiAgICBpZiAoIShrZXkgaW4gX2hhbmRsZXJzKSkgX2hhbmRsZXJzW2tleV0gPSBbXTtcblxuICAgIF9oYW5kbGVyc1trZXldLnB1c2goe1xuICAgICAga2V5dXA6IGtleXVwLFxuICAgICAga2V5ZG93bjoga2V5ZG93bixcbiAgICAgIHNjb3BlOiBzY29wZSxcbiAgICAgIG1vZHM6IG1vZHMsXG4gICAgICBzaG9ydGN1dDoga2V5c1tpXSxcbiAgICAgIG1ldGhvZDogbWV0aG9kLFxuICAgICAga2V5OiBrZXlzW2ldLFxuICAgICAgc3BsaXRLZXk6IHNwbGl0S2V5XG4gICAgfSk7XG4gIH0gLy8g5Zyo5YWo5bGAZG9jdW1lbnTkuIrorr7nva7lv6vmjbfplK5cblxuXG4gIGlmICh0eXBlb2YgZWxlbWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgIWlzRWxlbWVudEJpbmQoZWxlbWVudCkgJiYgd2luZG93KSB7XG4gICAgZWxlbWVudEhhc0JpbmRFdmVudC5wdXNoKGVsZW1lbnQpO1xuICAgIGFkZEV2ZW50KGVsZW1lbnQsICdrZXlkb3duJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgIGRpc3BhdGNoKGUpO1xuICAgIH0pO1xuICAgIGFkZEV2ZW50KHdpbmRvdywgJ2ZvY3VzJywgZnVuY3Rpb24gKCkge1xuICAgICAgX2Rvd25LZXlzID0gW107XG4gICAgfSk7XG4gICAgYWRkRXZlbnQoZWxlbWVudCwgJ2tleXVwJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgIGRpc3BhdGNoKGUpO1xuICAgICAgY2xlYXJNb2RpZmllcihlKTtcbiAgICB9KTtcbiAgfVxufVxuXG52YXIgX2FwaSA9IHtcbiAgc2V0U2NvcGU6IHNldFNjb3BlLFxuICBnZXRTY29wZTogZ2V0U2NvcGUsXG4gIGRlbGV0ZVNjb3BlOiBkZWxldGVTY29wZSxcbiAgZ2V0UHJlc3NlZEtleUNvZGVzOiBnZXRQcmVzc2VkS2V5Q29kZXMsXG4gIGlzUHJlc3NlZDogaXNQcmVzc2VkLFxuICBmaWx0ZXI6IGZpbHRlcixcbiAgdW5iaW5kOiB1bmJpbmRcbn07XG5cbmZvciAodmFyIGEgaW4gX2FwaSkge1xuICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKF9hcGksIGEpKSB7XG4gICAgaG90a2V5c1thXSA9IF9hcGlbYV07XG4gIH1cbn1cblxuaWYgKHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnKSB7XG4gIHZhciBfaG90a2V5cyA9IHdpbmRvdy5ob3RrZXlzO1xuXG4gIGhvdGtleXMubm9Db25mbGljdCA9IGZ1bmN0aW9uIChkZWVwKSB7XG4gICAgaWYgKGRlZXAgJiYgd2luZG93LmhvdGtleXMgPT09IGhvdGtleXMpIHtcbiAgICAgIHdpbmRvdy5ob3RrZXlzID0gX2hvdGtleXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGhvdGtleXM7XG4gIH07XG5cbiAgd2luZG93LmhvdGtleXMgPSBob3RrZXlzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBob3RrZXlzO1xuIiwiaW1wb3J0IGhvdGtleXMgZnJvbSAnaG90a2V5cy1qcyc7XG5pbXBvcnQgeyB1c2VSZWYsIHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5cbmZ1bmN0aW9uIHVzZUlzSG90a2V5UHJlc3NlZCgpIHtcbiAgcmV0dXJuIGhvdGtleXMuaXNQcmVzc2VkO1xufVxuXG5mdW5jdGlvbiB1c2VIb3RrZXlzKGtleXMsIGNhbGxiYWNrLCBvcHRpb25zLCBkZXBzKSB7XG4gIGlmIChvcHRpb25zIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICBkZXBzID0gb3B0aW9ucztcbiAgICBvcHRpb25zID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgdmFyIF9yZWYgPSBvcHRpb25zIHx8IHt9LFxuICAgICAgZW5hYmxlT25UYWdzID0gX3JlZi5lbmFibGVPblRhZ3MsXG4gICAgICBmaWx0ZXIgPSBfcmVmLmZpbHRlcixcbiAgICAgIGtleXVwID0gX3JlZi5rZXl1cCxcbiAgICAgIGtleWRvd24gPSBfcmVmLmtleWRvd247XG5cbiAgdmFyIHJlZiA9IHVzZVJlZihudWxsKTtcbiAgdmFyIG1lbW9pc2VkQ2FsbGJhY2sgPSB1c2VDYWxsYmFjayhmdW5jdGlvbiAoa2V5Ym9hcmRFdmVudCwgaG90a2V5c0V2ZW50KSB7XG4gICAgaWYgKHJlZi5jdXJyZW50ID09PSBudWxsIHx8IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IHJlZi5jdXJyZW50KSB7XG4gICAgICBjYWxsYmFjayhrZXlib2FyZEV2ZW50LCBob3RrZXlzRXZlbnQpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LCBkZXBzID8gW3JlZl0uY29uY2F0KGRlcHMpIDogW3JlZl0pO1xuICB1c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChvcHRpb25zICYmIG9wdGlvbnMuZW5hYmxlT25UYWdzKSB7XG4gICAgICBob3RrZXlzLmZpbHRlciA9IGZ1bmN0aW9uIChfcmVmMikge1xuICAgICAgICB2YXIgdGFyZ2V0ID0gX3JlZjIudGFyZ2V0LFxuICAgICAgICAgICAgc3JjRWxlbWVudCA9IF9yZWYyLnNyY0VsZW1lbnQ7XG4gICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgdmFyIHRhcmdldFRhZ05hbWUgPSB0YXJnZXQgJiYgdGFyZ2V0LnRhZ05hbWUgfHwgc3JjRWxlbWVudCAmJiBzcmNFbGVtZW50LnRhZ05hbWU7XG4gICAgICAgIHJldHVybiBCb29sZWFuKHRhcmdldFRhZ05hbWUgJiYgZW5hYmxlT25UYWdzICYmIGVuYWJsZU9uVGFncy5pbmNsdWRlcyh0YXJnZXRUYWdOYW1lKSk7XG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChmaWx0ZXIpIGhvdGtleXMuZmlsdGVyID0gZmlsdGVyO1xuXG4gICAgaWYgKGtleXVwICYmIGtleWRvd24gIT09IHRydWUpIHtcbiAgICAgIG9wdGlvbnMua2V5ZG93biA9IGZhbHNlO1xuICAgIH1cblxuICAgIGhvdGtleXMoa2V5cywgb3B0aW9ucyB8fCB7fSwgbWVtb2lzZWRDYWxsYmFjayk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBob3RrZXlzLnVuYmluZChrZXlzLCBtZW1vaXNlZENhbGxiYWNrKTtcbiAgICB9O1xuICB9LCBbbWVtb2lzZWRDYWxsYmFjaywgb3B0aW9ucywgZW5hYmxlT25UYWdzLCBmaWx0ZXIsIGtleXNdKTtcbiAgcmV0dXJuIHJlZjtcbn1cblxuZXhwb3J0IHsgdXNlSG90a2V5cywgdXNlSXNIb3RrZXlQcmVzc2VkIH07XG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWFjdC1ob3RrZXlzLWhvb2suZXNtLmpzLm1hcFxuIl0sInNvdXJjZVJvb3QiOiIifQ==