nsc-react-component 4.5.8 → 4.5.10
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/lib/base/chart/index.js +1 -2
- package/lib/base/chart/index.js.map +1 -1
- package/lib/page/FormPage/index.js +8 -9
- package/lib/page/FormPage/index.js.map +1 -1
- package/lib/page/HeaderSearch/index.d.ts +1 -0
- package/lib/page/HeaderSearch/index.js +3 -2
- package/lib/page/HeaderSearch/index.js.map +1 -1
- package/lib/page/HeaderSearch/index.less +5 -0
- package/package.json +1 -1
|
@@ -448,6 +448,7 @@ class FormPage extends PureComponent {
|
|
|
448
448
|
} = config();
|
|
449
449
|
let autoType = getLocalStore("formType", storePrefix ? storePrefix : "nsc-home");
|
|
450
450
|
autoType = autoType ? autoType : null;
|
|
451
|
+
console.log("forms", [...forms]);
|
|
451
452
|
return /*#__PURE__*/React.createElement(Row, {
|
|
452
453
|
gutter: 24
|
|
453
454
|
}, forms.map((item, index) => {
|
|
@@ -521,7 +522,7 @@ class FormPage extends PureComponent {
|
|
|
521
522
|
span: item.span || 12,
|
|
522
523
|
key: index,
|
|
523
524
|
style: {
|
|
524
|
-
display: item.
|
|
525
|
+
display: item.show ? "none" : "block"
|
|
525
526
|
}
|
|
526
527
|
}, /*#__PURE__*/React.createElement(Form.Item, {
|
|
527
528
|
label: item.label,
|
|
@@ -628,13 +629,11 @@ class FormPage extends PureComponent {
|
|
|
628
629
|
let showForms = [];
|
|
629
630
|
//处理表单数据
|
|
630
631
|
forms.map(item => {
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
otherGrups.push(item);
|
|
637
|
-
}
|
|
632
|
+
showForms.push(item);
|
|
633
|
+
if (item.groupName && formGroups.indexOf(item.groupName) < 0) {
|
|
634
|
+
formGroups.push(item.groupName);
|
|
635
|
+
} else if (!item.groupName) {
|
|
636
|
+
otherGrups.push(item);
|
|
638
637
|
}
|
|
639
638
|
});
|
|
640
639
|
if (formGroups.length > 0) {
|
|
@@ -721,4 +720,4 @@ class FormPage extends PureComponent {
|
|
|
721
720
|
}
|
|
722
721
|
}
|
|
723
722
|
export default FormPage;
|
|
724
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiZ2V0Tm9kZSIsIm1lc3NhZ2UiLCJDb2wiLCJSb3ciLCJpc0VtcHR5T2JqIiwiZ2V0TG9jYWxTdG9yZSIsImRheWpzIiwibG9kYXNoIiwiQnV0dG9uIiwiVXBsb2FkIiwiY2xzIiwiTnNjUmVxdWVzdCIsImNvbnZlcnRTdHJpbmdUb09iaiIsImNvbmZpZyIsIkZvcm1QYWdlIiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJjcmVhdGVSZWYiLCJsb2FkaW5nIiwibGFiZWwiLCJwcm9wcyIsImVkaXRUeXBlIiwiZWRpdG9yRmxhZyIsInZhbHVlIiwiZGljdE5hbWVzIiwiZmlsZUxpc3QiLCJ3aWR0aCIsImVkaXRJZCIsImV2IiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsIl90aGlzIiwiZXZlbnRUeXBlIiwicGF5bG9hZCIsImNsb3NlIiwic2V0U3RhdGUiLCJjb21wb25lbnREaWRNb3VudCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwiZm9ybVR5cGUiLCJyZXF1ZXN0T2JqZWN0IiwiZGV0YWlsVXJsIiwiZ2V0IiwicGFyYW1zIiwiaWQiLCJzdGF0ZSIsInhzc0ZpbHRlciIsImF1dG9QcmVmaXgiLCJ0aGVuIiwicmVzIiwiY29kZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudCIsImZvcm1SZWYiLCJjdXJyZW50Iiwic2V0RmllbGRzVmFsdWUiLCJfb2JqZWN0U3ByZWFkIiwiZGVmYXVsdFZhbHVlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MiIsImNvbnZlcnREZWZhdWx0VmFsdWUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJVdGlscyIsImZ1bmNzIiwicGFnZVJlZiIsInJlZnMiLCJyZWZMaXN0Iiwic2hvdyIsIm9yZ1ZhbHVlIiwiZWRpdG9yZmxhZyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImNhbGxCYWNrIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MyIsImNvbnZlcnRWYWx1ZSIsInNob3dGb3JtIiwiYWZ0ZXJSZW5kZXIiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ0IiwiaGlkZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDUiLCJvbkhpZGVGb3JtIiwiaGlkZUZvcm0iLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ2Iiwic2V0TG9hZGluZyIsInNldEVkaXRUeXBlIiwidHlwZSIsInNldEVkaXRJZCIsImdldEZvcm1WYWx1ZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDciLCJmb3JtVmFsdWUiLCJnZXRGaWVsZHNWYWx1ZSIsImNsb25lRGVlcCIsImZpbGVGb3JtYXQiLCJuZXdGaWxlTGlzdCIsIm1hcCIsIml0ZW0iLCJnZXRGaWxlTGlzdCIsInN1Ym1pdEZsYWciLCJlcnJvciIsImRhdGVWYWx1ZUZvcm1hdCIsImtleSIsIm9sZGRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JtYXQiLCJyYW5nZXJEYXRlIiwiZGF0ZUZvcm1hdCIsImUiLCJuZXdEYXRhIiwic3RyaW5naWZ5IiwidmFsdWVzIiwiZm9yRWFjaCIsImZpbGVLZXkiLCJ2YWx1ZTEiLCJ2YWx1ZTIiLCJzZXRGb3JtVmFsdWUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ4IiwibmV3VmFsdWUiLCJkb1N1Ym1pdCIsImZvcm1kYXRhIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50OSIsInN1Ym1pdFVybCIsInN1Ym1pdFBhcmFtcyIsInJlcXVlc3RDb25maWciLCJhZGRVcmwiLCJlZGl0b3JVcmwiLCJhZGRQYXJhbXMiLCJlZGl0b3JQYXJhbXMiLCJ1cmwiLCJmdW5jIiwiRnVuY3Rpb24iLCJjb252ZXJQYXJhbXMiLCJjb25zb2xlIiwib3RoZXJQYXJhbXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJvblN1Ym1pdCIsIm5vVW5kZWZpbmVkIiwibXNnIiwic3VjY2VzcyIsInNldFRpbWVvdXQiLCJvYmoiLCJmaWxlSWQiLCJmaWxlTmFtZSIsInN0YXR1cyIsInB1c2giLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQxMCIsInZhbGlkIiwidmFsaWRhdGVGaWVsZHMiLCJyZXR1cm5EYXRhIiwiY2F0Y2giLCJlcnJvckluZm8iLCJ2YWx1ZUNoYW5nZSIsIl9yZWYiLCJ2YWx1ZU9wdGlvbiIsImRpY3ROYW1lIiwibmV3TmFtZXMiLCJvbkNoYW5nZSIsImV2ZW50T3B0aW9uIiwidmFsdWVTdHIiLCJzZWxmRnVuYyIsInJlbmRlckZvcm0iLCJmb3JtcyIsIm5ld1ZhbGlkIiwic3RvcmVQcmVmaXgiLCJhdXRvVHlwZSIsImNyZWF0ZUVsZW1lbnQiLCJndXR0ZXIiLCJpbmRleCIsIl9pdGVtJHByb3BzIiwiX2l0ZW0kcHJvcHMyIiwiaXRlbVByb3BzIiwidmFsdWVGb3JtYXQiLCJuYW1lIiwic3BsaXQiLCJhbGxvd0NoYXJzIiwiY2hpbGRyZW4iLCJwbGFjZWhvbGRlciIsImNvbmNhdCIsImJpbmQiLCJkYXRhVHlwZSIsImRpc2FibGVkIiwicnVsZXMiLCJyZXF1aXJlZCIsIml0ZW1SZWYiLCJzcGFuIiwiX2l0ZW0kcHJvcHMzIiwic3R5bGUiLCJkaXNwbGF5IiwiSXRlbSIsImNvbXBvbmVudE5hbWUiLCJub1N0eWxlIiwiZm9ybVJlbmRlciIsInJlZiIsIl9pdGVtJHByb3BzNCIsIl9leHRlbmRzIiwib25MaXN0Q2hhbmdlIiwibGlzdCIsInNob3dVcGxvYWRMaXN0Iiwic2hvd0Rvd25sb2FkSWNvbiIsInNob3dSZW1vdmVJY29uIiwicmVuZGVyIiwiZm9vdGVyIiwidGl0bGUiLCJtb2RhbFByb3BzIiwiZGVmYXVsdE1vZGFsUHJvcHMiLCJkcmF3ZXJQcm9wcyIsImRlZmF1bHREcmF3ZXJQcm9wcyIsInNlbGZCdXR0b25zIiwic2VsZlBhbmVzIiwiY2hpbGQiLCJfY2hpbGQkcHJvcHMiLCJwYWdlVHlwZSIsIl9pdGVtJHByb3BzNSIsIm9uT2siLCJvbkNhbmNlbCIsIm9rQnV0dG9uUHJvcHMiLCJjZW50ZXJlZCIsImZvb3RlckJ1dHRvbiIsIm9uQ2xvc2UiLCJuZXdGb3Jtc09iaiIsImZvcm1Hcm91cHMiLCJvdGhlckdydXBzIiwic2hvd0Zvcm1zIiwiZ3JvdXBOYW1lIiwiaW5kZXhPZiIsImdyb3VwRm9ybXMiLCJmb3JtIiwiUGFuZVdpdGhvdXRQYWdlVHlwZSIsIlBhbmUiLCJjbGVhblByb3BzIiwiX2V4Y2x1ZGVkMiIsInNob3dNb2RlbCIsIm9uVmFsdWVzQ2hhbmdlIiwiY2hhbmdlZFZhbHVlcyIsImFsbFZhbHVlcyIsIm9uRm9ybUNoYW5nZSIsImNoYW5nZVZhbGlkIiwiY2xhc3NOYW1lIiwiT2JqZWN0Iiwia2V5cyIsImZvb3RlckNsYXNzTmFtZSIsImZvb3RlckZpeGVkIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJvbkNsaWNrIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9Gb3JtUGFnZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL2Jhc2UvbWVzc2FnZVwiO1xyXG5pbXBvcnQgQ29sIGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHsgaXNFbXB0eU9iaiwgZ2V0TG9jYWxTdG9yZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IGxvZGFzaCBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBVcGxvYWQgZnJvbSBcIi4uLy4uL2Jhc2UvdXBsb2FkXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHsgSUZvcm1Qcm9wcyB9IGZyb20gXCJzcmMvY29tcG9uZW50cy9iYXNlL2Zvcm0vRm9ybVwiO1xyXG5pbXBvcnQgTnNjUmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IENvbXBvdW5kZWRTcGFjZSBmcm9tIFwiYW50ZC9lcy9zcGFjZVwiO1xyXG5pbXBvcnQgeyBjb252ZXJ0U3RyaW5nVG9PYmogfSBmcm9tIFwiLi4vU2V0dGluZ1V0aWwvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1QYWdlUHJvcHMge1xyXG4gIGZvcm1zPzogQXJyYXk8YW55PjsgLy/mmK/lkKbmmL7npLrmk43kvZzliJdcclxuICBzdWJtaXRVcmw/OiBzdHJpbmc7XHJcbiAgb25TdWJtaXQ/OiAodmFsdWU/OiBhbnksIGxhYmVsPzogYW55KSA9PiB2b2lkO1xyXG4gIGZvb3RlckNsYXNzTmFtZT86IGFueTtcclxuICBva0J1dHRvblByb3BzPzogYW55O1xyXG4gIGNhbmNlbEJ1dHRvblByb3BzPzogYW55O1xyXG4gIGZvb3Rlcj86IFJlYWN0Tm9kZSB8IGJvb2xlYW47XHJcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgb25Gb3JtQ2hhbmdlPzogKHZhbHVlPzogYW55LCBhbGxWYWx1ZT86IGFueSkgPT4gdm9pZDtcclxuICBzdWJtaXRQYXJhbXM/OiBhbnk7IC8v5re75Yqg5Y+C5pWw77yM6buY6K6kbW90aG9kOnBvc3TvvIwg5Y+C5pWw6YCa6L+HZGF0YeS8oOmAklxyXG4gIGZ1bmNzPzogYW55O1xyXG4gIHByb3BzPzogSUZvcm1Qcm9wcztcclxuICByZXF1ZXN0T2JqZWN0Pzoge1xyXG4gICAgYWRkVXJsPzogc3RyaW5nO1xyXG4gICAgZWRpdG9yVXJsPzogc3RyaW5nO1xyXG4gICAgYWRkUGFyYW1zPzogYW55O1xyXG4gICAgZWRpdG9yUGFyYW1zPzogYW55O1xyXG4gICAgZGV0YWlsVXJsPzogc3RyaW5nO1xyXG4gIH07XHJcbiAgcmVxdWVzdENvbmZpZz86IGFueTtcclxuICBmb290ZXJXaWR0aD86IGJvb2xlYW47XHJcbiAgZWRpdFR5cGU/OiBcIuaWsOWinlwiIHwgXCLnvJbovpFcIiB8IFwi5p+l55yLXCI7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgZWRpdElkPzogc3RyaW5nO1xyXG4gIG1vZGFsUHJvcHM/OiBhbnk7XHJcbiAgZHJhd2VyUHJvcHM/OiBhbnk7XHJcbiAgW3Byb3BzTmFtZTogc3RyaW5nXTogYW55O1xyXG4gIGZvb3RlckZpeGVkPzogYm9vbGVhbjtcclxufVxyXG5jbGFzcyBGb3JtUGFnZSBleHRlbmRzIFB1cmVDb21wb25lbnQ8Rm9ybVBhZ2VQcm9wcywgYW55PiB7XHJcbiAgZm9ybVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgIGxhYmVsOiB0aGlzLnByb3BzLmVkaXRUeXBlIHx8IFwiXCIsXHJcbiAgICBlZGl0b3JGbGFnOiB0cnVlLFxyXG4gICAgdmFsdWU6IHt9IGFzIGFueSxcclxuICAgIGRpY3ROYW1lczoge30gYXMgYW55LFxyXG4gICAgZmlsZUxpc3Q6IHt9IGFzIGFueSxcclxuICAgIHdpZHRoOiBnZXRMb2NhbFN0b3JlKFwibnNjLWhvbWUtbWVudUNvbGxzYXBlXCIpIHx8IGZhbHNlLFxyXG4gICAgZWRpdElkOiB0aGlzLnByb3BzLmVkaXRJZCB8fCBcIlwiLFxyXG4gIH07XHJcbiAgdmFsaWQ6IGFueSA9IFtdO1xyXG4gIGRhdGVWYWx1ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGZpbGVGb3JtYXQgPSBbXSBhcyBhbnk7XHJcbiAgcmFuZ2VyRGF0ZSA9IHt9IGFzIGFueTtcclxuICByZWZMaXN0ID0ge30gYXMgYW55O1xyXG4gIHN1Ym1pdEZsYWcgPSB0cnVlO1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZvcm1UeXBlID0gXCJwYWdlXCIsXHJcbiAgICAgIHJlcXVlc3RPYmplY3QgPSB7fSxcclxuICAgICAgZWRpdFR5cGUgPSBcIuaWsOWinlwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoZm9ybVR5cGUgPT0gXCJwYWdlXCIpIHtcclxuICAgICAgaWYgKHJlcXVlc3RPYmplY3QuZGV0YWlsVXJsICYmIGVkaXRUeXBlICE9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgICAgTnNjUmVxdWVzdC5nZXQocmVxdWVzdE9iamVjdC5kZXRhaWxVcmwsIHtcclxuICAgICAgICAgIHBhcmFtczogeyBpZDogdGhpcy5zdGF0ZS5lZGl0SWQgfSxcclxuICAgICAgICAgIHhzc0ZpbHRlcjogZmFsc2UsXHJcbiAgICAgICAgICBhdXRvUHJlZml4OiB0cnVlLFxyXG4gICAgICAgIH0pLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUoeyAuLi5yZXMuZGF0YSB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChlZGl0VHlwZSA9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZGVmYXVsdFZhbHVlKSB7XHJcbiAgICAgICAgICBsZXQgZGVmYXVsdFZhbHVlID0gdGhpcy5jb252ZXJ0RGVmYXVsdFZhbHVlKCk7XHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUoZGVmYXVsdFZhbHVlIHx8IHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5saXN0ZW5NZXNzYWdlKTtcclxuICB9XHJcbiAgbGlzdGVuTWVzc2FnZSA9IChldikgPT4ge1xyXG4gICAgY29uc3QgZGF0YSA9IHR5cGVvZiBldi5kYXRhID09PSBcInN0cmluZ1wiID8gSlNPTi5wYXJzZShldi5kYXRhKSA6IGV2LmRhdGE7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgaWYgKGRhdGEuZXZlbnRUeXBlID09IFwibWVudUNvbGxzYXBlXCIpIHtcclxuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBkYXRhO1xyXG4gICAgICBpZiAocGF5bG9hZC5jbG9zZSA9PT0gdHJ1ZSB8fCBwYXlsb2FkLmNsb3NlID09PSBmYWxzZSkge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgd2lkdGg6IHBheWxvYWQuY2xvc2UgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIGNvbnZlcnREZWZhdWx0VmFsdWUoKSB7XHJcbiAgICBjb25zdCB7IGRlZmF1bHRWYWx1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHJldHVybiBjb252ZXJ0U3RyaW5nVG9PYmooZGVmYXVsdFZhbHVlLCB0aGlzLnByb3BzLlV0aWxzIHx8IHt9LCB7XHJcbiAgICAgIGZ1bmNzOiB0aGlzLnByb3BzLmZ1bmNzLFxyXG4gICAgICBwYWdlUmVmOiB0aGlzLnByb3BzLnBhZ2VSZWYsXHJcbiAgICAgIGZvcm1SZWY6IHRoaXMuZm9ybVJlZixcclxuICAgICAgcmVmczogdGhpcy5yZWZMaXN0LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8v6KGo5Y2V5pi+56S6XHJcbiAgc2hvdyhvcmdWYWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIsIGNhbGxCYWNrPzogYW55KSB7XHJcbiAgICBsZXQgbGFiZWwgPSBcIuaWsOWinlwiO1xyXG4gICAgaWYgKG9yZ1ZhbHVlICYmIGVkaXRvcmZsYWcgPT0gXCJlZGl0b3JcIikge1xyXG4gICAgICBsYWJlbCA9IFwi57yW6L6RXCI7XHJcbiAgICB9IGVsc2UgaWYgKG9yZ1ZhbHVlICYmIChlZGl0b3JmbGFnID09IFwiZGV0YWlsXCIgfHwgZWRpdG9yZmxhZyA9PSBcInNlYXJjaFwiKSkge1xyXG4gICAgICBsYWJlbCA9IFwi5p+l55yLXCI7XHJcbiAgICB9XHJcbiAgICBpZiAob3JnVmFsdWUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXHJcbiAgICAgICAgICB2YWx1ZTogb3JnVmFsdWUsXHJcbiAgICAgICAgICBlZGl0SWQ6IG9yZ1ZhbHVlLmlkLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5jb252ZXJ0VmFsdWUob3JnVmFsdWUsIGxhYmVsKTtcclxuICAgICAgICAgIC8v5aSE55CG5paH5Lu25pWw5o2uXHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2hvd0Zvcm0odmFsdWUsIHtcclxuICAgICAgICAgICAgYWZ0ZXJSZW5kZXI6ICgpID0+IHtcclxuICAgICAgICAgICAgICBjYWxsQmFjayAmJiBjYWxsQmFjaygpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXHJcbiAgICAgICAgfSxcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICBsZXQgZGVmYXVsdFZhbHVlID0gdGhpcy5wcm9wcy5kZWZhdWx0VmFsdWVcclxuICAgICAgICAgICAgPyB0aGlzLmNvbnZlcnREZWZhdWx0VmFsdWUoKVxyXG4gICAgICAgICAgICA6IHt9O1xyXG4gICAgICAgICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNob3dGb3JtKGRlZmF1bHRWYWx1ZSB8fCB7fSwge1xyXG4gICAgICAgICAgICBhZnRlclJlbmRlcjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGhpZGUoaGlkZSA9IHRydWUpIHtcclxuICAgIGNvbnN0IHsgb25IaWRlRm9ybSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmIChvbkhpZGVGb3JtKSB7XHJcbiAgICAgIG9uSGlkZUZvcm0gJiYgb25IaWRlRm9ybSgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UsIGZpbGVMaXN0OiB7fSB9KTtcclxuICAgIGhpZGUgJiYgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG4gIGhpZGVGb3JtKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlLCBmaWxlTGlzdDoge30gfSk7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICB9XHJcbiAgc2hvd0Zvcm0ob3JnVmFsdWU/OiBhbnksIGVkaXRvcmZsYWcgPSBcImFkZFwiLCBjYWxsQmFjaz86IGFueSkge1xyXG4gICAgdGhpcy5zaG93KG9yZ1ZhbHVlLCBlZGl0b3JmbGFnLCBjYWxsQmFjayk7XHJcbiAgfVxyXG4gIHNldExvYWRpbmcobG9hZGluZzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGxvYWRpbmcgfSk7XHJcbiAgfVxyXG4gIHNldEVkaXRUeXBlKHR5cGUpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBsYWJlbDogdHlwZSxcclxuICAgIH0pO1xyXG4gIH1cclxuICBzZXRFZGl0SWQoaWQpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBlZGl0SWQ6IGlkLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldEZvcm1WYWx1ZSgpIHtcclxuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlLCBkaWN0TmFtZXMsIGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBsZXQgZGF0YSA9IGxvZGFzaC5jbG9uZURlZXAoeyAuLi5mb3JtVmFsdWUsIC4uLmRpY3ROYW1lcyB9KTtcclxuICAgIGlmICh0aGlzLmZpbGVGb3JtYXQubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgbmV3RmlsZUxpc3QgPSB7fSBhcyBhbnk7XHJcbiAgICAgIHRoaXMuZmlsZUZvcm1hdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBpZiAoZmlsZUxpc3RbaXRlbV0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgIG5ld0ZpbGVMaXN0W2l0ZW1dID0gbnVsbDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbmV3RmlsZUxpc3RbaXRlbV0gPSB0aGlzLmdldEZpbGVMaXN0KGZpbGVMaXN0W2l0ZW1dIHx8IFtdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCAuLi5uZXdGaWxlTGlzdCB9O1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnN1Ym1pdEZsYWcpIHtcclxuICAgICAgbWVzc2FnZS5lcnJvcihcIuivt+etieW+heaJgOacieaWh+S7tuS4iuS8oOWujOaIkO+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc0VtcHR5T2JqKHRoaXMuZGF0ZVZhbHVlRm9ybWF0KSkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlVmFsdWVGb3JtYXQpIHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IGRhdGFba2V5XTtcclxuICAgICAgICBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgZGF0YVtrZXldID0gW1xyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMF0pLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzFdKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnJhbmdlckRhdGVba2V5XSkge1xyXG4gICAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBkYXRhW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzBdXSA9IGRheWpzKG9sZGRhdGFbMF0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2tleV1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBkYXRhW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzFdXSA9IGRheWpzKG9sZGRhdGFbMV0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2tleV1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgZGF0YVtrZXldO1xyXG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRhdGFba2V5XSA9IGRheWpzKG9sZGRhdGEpLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChsYWJlbCA9PSBcIue8lui+kVwiKSB7XHJcbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGlkOiB2YWx1ZT8uaWQgfHwgdGhpcy5zdGF0ZS5lZGl0SWQgfTtcclxuICAgIH1cclxuICAgIGxldCBuZXdEYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcbiAgICByZXR1cm4gbmV3RGF0YTtcclxuICB9XHJcbiAgY29udmVydFZhbHVlKHZhbHVlLCB0eXBlKSB7XHJcbiAgICBsZXQgdmFsdWVzID0gbG9kYXNoLmNsb25lRGVlcCh2YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5maWxlRm9ybWF0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGZpbGVMaXN0ID0ge30gYXMgYW55O1xyXG4gICAgICB0aGlzLmZpbGVGb3JtYXQuZm9yRWFjaCgoZmlsZUtleSkgPT4ge1xyXG4gICAgICAgIGxldCBvbGRkYXRhID0gdmFsdWVzW2ZpbGVLZXldO1xyXG4gICAgICAgIGlmIChvbGRkYXRhICYmIEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgIGZpbGVMaXN0W2ZpbGVLZXldID0gdGhpcy5nZXRGaWxlTGlzdChvbGRkYXRhIHx8IFtdLCB0eXBlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZmlsZUxpc3RbZmlsZUtleV0gPSBbXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHsgZmlsZUxpc3Q6IGZpbGVMaXN0IH0pO1xyXG4gICAgfVxyXG4gICAgLy/lpITnkIbml6XmnJ/moLzlvI/mlbDmja5cclxuICAgIGlmICghaXNFbXB0eU9iaih0aGlzLmRhdGVGb3JtYXQpKSB7XHJcbiAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVGb3JtYXQpIHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IHZhbHVlc1trZXldO1xyXG4gICAgICAgIGlmIChvbGRkYXRhKSB7XHJcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvbGRkYXRhKSkge1xyXG4gICAgICAgICAgICB2YWx1ZXNba2V5XSA9IFtcclxuICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzBdLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVsxXSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdmFsdWVzW2tleV0gPSBkYXlqcyhvbGRkYXRhLCB0aGlzLmRhdGVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmICh0aGlzLnJhbmdlckRhdGVba2V5XSkge1xyXG4gICAgICAgICAgICBsZXQgdmFsdWUxID0gdmFsdWVzW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzBdXTtcclxuICAgICAgICAgICAgbGV0IHZhbHVlMiA9IHZhbHVlc1t0aGlzLnJhbmdlckRhdGVba2V5XVsxXV07XHJcbiAgICAgICAgICAgIGlmICh2YWx1ZTEgJiYgdmFsdWUyKSB7XHJcbiAgICAgICAgICAgICAgdmFsdWVzW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgICBkYXlqcyh2YWx1ZTEsIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICAgIGRheWpzKHZhbHVlMiwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIF07XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZXM7XHJcbiAgfVxyXG4gIHNldEZvcm1WYWx1ZSh2YWx1ZSwgdHlwZSA9IFwi5p+l55yLXCIpIHtcclxuICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5jb252ZXJ0VmFsdWUodmFsdWUsIHR5cGUpO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNldEZpZWxkc1ZhbHVlKG5ld1ZhbHVlKTtcclxuICB9XHJcbiAgZG9TdWJtaXQoZm9ybWRhdGEsIGxhYmVsKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN1Ym1pdFVybCxcclxuICAgICAgc3VibWl0UGFyYW1zID0ge30sXHJcbiAgICAgIGNhbGxCYWNrLFxyXG4gICAgICByZXF1ZXN0T2JqZWN0ID0ge30sXHJcbiAgICAgIHJlcXVlc3RDb25maWcgPSB7fSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBhZGRVcmwsIGVkaXRvclVybCwgYWRkUGFyYW1zLCBlZGl0b3JQYXJhbXMgfSA9IHJlcXVlc3RPYmplY3Q7XHJcbiAgICBsZXQgdXJsID0gc3VibWl0VXJsO1xyXG4gICAgbGV0IHBhcmFtczogYW55ID0ge307XHJcbiAgICBpZiAoIWxhYmVsIHx8IGxhYmVsID09IFwi5paw5aKeXCIpIHtcclxuICAgICAgdXJsID0gYWRkVXJsID8gYWRkVXJsIDogc3VibWl0VXJsO1xyXG4gICAgICBpZiAoYWRkUGFyYW1zICYmIHR5cGVvZiBhZGRQYXJhbXMgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGNvbnN0IFV0aWxzID0gdGhpcy5wcm9wcy5VdGlscyB8fCB7fTtcclxuICAgICAgICBsZXQgZnVuYyA9IG5ldyBGdW5jdGlvbihcIlV0aWxzXCIsIGFkZFBhcmFtcyk7XHJcbiAgICAgICAgbGV0IGNvbnZlclBhcmFtcyA9IGZ1bmMoVXRpbHMpO1xyXG4gICAgICAgIHBhcmFtcyA9IGNvbnZlclBhcmFtcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwYXJhbXMgPSBhZGRQYXJhbXMgPyBhZGRQYXJhbXMgOiBzdWJtaXRQYXJhbXM7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAobGFiZWwgPT0gXCLnvJbovpFcIikge1xyXG4gICAgICB1cmwgPSBlZGl0b3JVcmwgPyBlZGl0b3JVcmwgOiBzdWJtaXRVcmw7XHJcbiAgICAgIGlmIChlZGl0b3JQYXJhbXMgJiYgdHlwZW9mIGVkaXRvclBhcmFtcyA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgY29uc3QgVXRpbHMgPSB0aGlzLnByb3BzLlV0aWxzIHx8IHt9O1xyXG4gICAgICAgIGxldCBmdW5jID0gbmV3IEZ1bmN0aW9uKFwiVXRpbHNcIiwgZWRpdG9yUGFyYW1zKTtcclxuICAgICAgICBsZXQgY29udmVyUGFyYW1zID0gZnVuYyhVdGlscyk7XHJcbiAgICAgICAgcGFyYW1zID0gY29udmVyUGFyYW1zO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHBhcmFtcyA9IGVkaXRvclBhcmFtcyA/IGVkaXRvclBhcmFtcyA6IHN1Ym1pdFBhcmFtcztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCF1cmwpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihcIumFjee9rlVybOS4jeiDveS4uuepuu+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeyBkYXRhID0ge30sIC4uLm90aGVyUGFyYW1zIH0gPSBwYXJhbXM7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8ub25TdWJtaXQoXHJcbiAgICAgIHVybCxcclxuICAgICAge1xyXG4gICAgICAgIGRhdGE6IHsgLi4uZm9ybWRhdGEsIC4uLmRhdGEgfSxcclxuICAgICAgICBub1VuZGVmaW5lZDogbGFiZWwgPT0gXCLnvJbovpFcIixcclxuICAgICAgICAuLi5yZXF1ZXN0Q29uZmlnLFxyXG4gICAgICAgIC4uLm90aGVyUGFyYW1zLFxyXG4gICAgICB9LFxyXG4gICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCB7IGNvZGUsIG1zZyB9ID0gcmVzO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgICAgICBpZiAoY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MobGFiZWwgKyBcIuaIkOWKn1wiKTtcclxuICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhpZGUodHJ1ZSk7XHJcbiAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgICB9LCA1MDApO1xyXG5cclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIGdldEZpbGVMaXN0KGRhdGEsIGxhYmVsID0gXCLmlrDlop5cIikge1xyXG4gICAgdGhpcy5zdWJtaXRGbGFnID0gdHJ1ZTtcclxuICAgIGxldCBmaWxlTGlzdCA9IFtdIGFzIGFueTtcclxuICAgIGlmIChkYXRhICYmIGRhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICBkYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGxldCBvYmogPSB7XHJcbiAgICAgICAgICBmaWxlSWQ6IGl0ZW0uZmlsZUlkLFxyXG4gICAgICAgICAgZmlsZU5hbWU6IGl0ZW0uZmlsZU5hbWUsXHJcbiAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKGxhYmVsID09IFwi5p+l55yLXCIpIHtcclxuICAgICAgICAgIG9iai5zdGF0dXMgPSBcImRvbmVcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGxhYmVsICE9PSBcIuafpeeci1wiICYmIGl0ZW0uc3RhdHVzICE9PSBcImRvbmVcIikge1xyXG4gICAgICAgICAgdGhpcy5zdWJtaXRGbGFnID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbGVMaXN0LnB1c2gob2JqKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmlsZUxpc3Q7XHJcbiAgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIGNvbnN0IHsgb25TdWJtaXQgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSwgZGljdE5hbWVzLCBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCB2YWxpZCA9IHRoaXMudmFsaWQ7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudFxyXG4gICAgICA/LnZhbGlkYXRlRmllbGRzKClcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGxldCBkYXRhID0gdGhpcy5nZXRGb3JtVmFsdWUoKTtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSB9KTtcclxuICAgICAgICBpZiAob25TdWJtaXQpIHtcclxuICAgICAgICAgIGxldCByZXR1cm5EYXRhID0gbG9kYXNoLmNsb25lRGVlcChkYXRhKTtcclxuICAgICAgICAgIG9uU3VibWl0ICYmIG9uU3VibWl0KHJldHVybkRhdGEsIGxhYmVsKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kb1N1Ym1pdChkYXRhLCBsYWJlbCk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaCgoZXJyb3JJbmZvOiBhbnkpID0+IHt9KTtcclxuICB9XHJcbiAgdmFsdWVDaGFuZ2UoeyB0eXBlLCBkaWN0TmFtZSB9LCBwcm9wcywgdmFsdWUsIHZhbHVlT3B0aW9uLCBkYXRhKSB7XHJcbiAgICBpZiAodmFsdWVPcHRpb24pIHtcclxuICAgICAgaWYgKGRpY3ROYW1lKSB7XHJcbiAgICAgICAgY29uc3QgeyBkaWN0TmFtZXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgY29uc3QgbmV3TmFtZXMgPSB7IC4uLmRpY3ROYW1lcyB9IGFzIGFueTtcclxuICAgICAgICBuZXdOYW1lc1tkaWN0TmFtZV0gPSB2YWx1ZU9wdGlvbi5sYWJlbDtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGRpY3ROYW1lczogbmV3TmFtZXMsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5vbkNoYW5nZSkge1xyXG4gICAgICBpZiAodHlwZW9mIHByb3BzLm9uQ2hhbmdlID09IFwiZnVuY3Rpb25cIikge1xyXG4gICAgICAgIHByb3BzLm9uQ2hhbmdlKHZhbHVlLCB2YWx1ZU9wdGlvbiwgZGF0YSk7XHJcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHByb3BzLm9uQ2hhbmdlID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICBjb25zdCBldmVudE9wdGlvbiA9IHtcclxuICAgICAgICAgIHZhbHVlLFxyXG4gICAgICAgICAgZGF0YSxcclxuICAgICAgICAgIGZvcm1SZWY6IHRoaXMuZm9ybVJlZixcclxuICAgICAgICAgIGZ1bmNzOiB0aGlzLnByb3BzLmZ1bmNzIHx8IHt9LFxyXG4gICAgICAgICAgcmVmczogdGhpcy5yZWZMaXN0LFxyXG4gICAgICAgICAgcGFnZVJlZjogdGhpcy5wcm9wcy5wYWdlUmVmLFxyXG4gICAgICAgIH0gYXMgYW55O1xyXG4gICAgICAgIGNvbnN0IFV0aWxzID0gdGhpcy5wcm9wcy5VdGlscyB8fCB7fTtcclxuICAgICAgICBpZiAodHlwZSA9PSBcIlNlbGVjdFwiKSB7XHJcbiAgICAgICAgICBldmVudE9wdGlvbi52YWx1ZU9wdGlvbiA9IHZhbHVlT3B0aW9uO1xyXG4gICAgICAgICAgZXZlbnRPcHRpb24uZGF0YSA9IGRhdGE7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09IFwiRGF0ZVBpY2tlclwiIHx8IHR5cGUgPT0gXCJSYW5nZVBpY2tlclwiKSB7XHJcbiAgICAgICAgICBldmVudE9wdGlvbi52YWx1ZVN0ciA9IHZhbHVlT3B0aW9uO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBzZWxmRnVuYyA9IG5ldyBGdW5jdGlvbihcImV2ZW50T3B0aW9uXCIsIFwiVXRpbHNcIiwgcHJvcHMub25DaGFuZ2UpO1xyXG4gICAgICAgIHNlbGZGdW5jKGV2ZW50T3B0aW9uLCBVdGlscyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbmRlckZvcm0oZm9ybXMsIGxhYmVsKSB7XHJcbiAgICBjb25zdCBuZXdWYWxpZDogYW55W10gPSBbXTtcclxuICAgIGNvbnN0IHsgZm9ybVR5cGUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHN0b3JlUHJlZml4IH0gPSBjb25maWcoKTtcclxuICAgIGxldCBhdXRvVHlwZSA9IGdldExvY2FsU3RvcmUoXHJcbiAgICAgIFwiZm9ybVR5cGVcIixcclxuICAgICAgc3RvcmVQcmVmaXggPyBzdG9yZVByZWZpeCA6IFwibnNjLWhvbWVcIlxyXG4gICAgKTtcclxuICAgIGF1dG9UeXBlID0gYXV0b1R5cGUgPyBhdXRvVHlwZSA6IG51bGw7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPFJvdyBndXR0ZXI9ezI0fT5cclxuICAgICAgICB7Zm9ybXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW1Qcm9wcyA9IGl0ZW0ucHJvcHMgfHwge307XHJcbiAgICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCB8fCBpdGVtUHJvcHMudmFsdWVGb3JtYXQpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRlVmFsdWVGb3JtYXRbaXRlbS5uYW1lXSA9XHJcbiAgICAgICAgICAgICAgaXRlbVByb3BzLmZvcm1hdCB8fCBpdGVtUHJvcHMudmFsdWVGb3JtYXQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCkge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXRbaXRlbS5uYW1lXSA9IGl0ZW1Qcm9wcy5mb3JtYXQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaXRlbS50eXBlID09IFwiUmFuZ2VQaWNrZXJcIiAmJiBpdGVtLm5hbWUuc3BsaXQoXCIsXCIpLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZXJEYXRlW2l0ZW0ubmFtZV0gPSBpdGVtLm5hbWUuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgbGV0IGFsbG93Q2hhcnMgPSBpdGVtLnByb3BzPy5hbGxvd0NoYXJzIHx8IGZhbHNlO1xyXG4gICAgICAgICAgbGV0IGNoaWxkcmVuID0gaXRlbS5wcm9wcz8uY2hpbGRyZW47XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIGxldCBwcm9wcyA9IHtcclxuICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YCxcclxuICAgICAgICAgICAgLi4uaXRlbS5wcm9wcyxcclxuICAgICAgICAgICAgb25DaGFuZ2U6IHRoaXMudmFsdWVDaGFuZ2UuYmluZChcclxuICAgICAgICAgICAgICB0aGlzLFxyXG4gICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgICAgICAgIGRpY3ROYW1lOiBpdGVtLmRpY3ROYW1lLFxyXG4gICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgeyAuLi5pdGVtLnByb3BzIH1cclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICAgIHByb3BzLmFsbG93Q2hhcnMgPSB0cnVlOyAvL2Zvcm0uaXRlbSDkvb/nlKhpbnB1dOe7hOS7tmFsbG93Q2hhcnPlv4Xpobvpu5jorqR0cnVlLOS4jeeEtui+k+WFpeeJueauiuWtl+espuaLv+WIsOeahOWAvOS4jeWvuVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZGVsZXRlIHByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgZGVsZXRlIHByb3BzLmZvcm1hdDtcclxuICAgICAgICAgIGRlbGV0ZSBwcm9wcy5kYXRhVHlwZTtcclxuICAgICAgICAgIGRlbGV0ZSBwcm9wcy5jaGlsZHJlbjtcclxuICAgICAgICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgICAgICAgIHByb3BzLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgcHJvcHMucGxhY2Vob2xkZXIgPSBcIlwiO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKChpdGVtLnJ1bGVzICYmIGl0ZW0ucnVsZXMubGVuZ3RoID4gMCkgfHwgaXRlbS5yZXF1aXJlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBuZXdWYWxpZC5wdXNoKGl0ZW0ubmFtZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaW5kZXggKyAxID09PSBmb3Jtcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZCA9IG5ld1ZhbGlkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29uc3QgaXRlbVJlZjogYW55ID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICAgICAgICAgIHRoaXMucmVmTGlzdFtpdGVtLm5hbWVdID0gaXRlbVJlZjtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgZm9ybVR5cGUgPT0gXCJkcmF3ZXJcIiB8fFxyXG4gICAgICAgICAgICAoZm9ybVR5cGUgPT0gXCJhdXRvXCIgJiYgYXV0b1R5cGUgPT0gXCJkcmF3ZXJcIilcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBpdGVtLnNwYW4gPSAyNDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpdGVtLnR5cGUgIT09IFwiVXBsb2FkXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9XHJcbiAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogaXRlbS5zaG93ICE9PSBmYWxzZSA/IFwiYmxvY2tcIiA6IFwibm9uZVwiIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbVxyXG4gICAgICAgICAgICAgICAgICBsYWJlbD17aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICBydWxlcz17aXRlbS5ydWxlc31cclxuICAgICAgICAgICAgICAgICAgYWxsb3dDaGFycz17YWxsb3dDaGFyc31cclxuICAgICAgICAgICAgICAgICAgY29tcG9uZW50TmFtZT17aXRlbS50eXBlID8gaXRlbS50eXBlIDogXCJJbnB1dFwifVxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZD17aXRlbS5yZXF1aXJlZH1cclxuICAgICAgICAgICAgICAgICAgdHlwZT17aXRlbS5wcm9wcz8udHlwZX1cclxuICAgICAgICAgICAgICAgICAgbm9TdHlsZT17aXRlbS5ub1N0eWxlIHx8IGZhbHNlfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7aXRlbS5mb3JtUmVuZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgPyBpdGVtLmZvcm1SZW5kZXIocHJvcHMpXHJcbiAgICAgICAgICAgICAgICAgICAgOiBnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWY6IGl0ZW1SZWYsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cclxuICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZUZvcm1hdC5wdXNoKGl0ZW0ubmFtZSk7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgc3Bhbj17aXRlbS5zcGFuIHx8IDEyfVxyXG4gICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6IGl0ZW0uaGlkZSA/IFwibm9uZVwiIDogXCJibG9ja1wiIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbVxyXG4gICAgICAgICAgICAgICAgICBsYWJlbD17aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICBydWxlcz17aXRlbS5ydWxlc31cclxuICAgICAgICAgICAgICAgICAgYWxsb3dDaGFycz17YWxsb3dDaGFyc31cclxuICAgICAgICAgICAgICAgICAgdHlwZT17aXRlbS5wcm9wcz8udHlwZX1cclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2l0ZW0ucmVxdWlyZWR9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHtpdGVtLmZvcm1SZW5kZXIgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5mb3JtUmVuZGVyKHByb3BzKVxyXG4gICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgIDxVcGxvYWRcclxuICAgICAgICAgICAgICAgICAgICAgIGZpbGVMaXN0PXt0aGlzLnN0YXRlLmZpbGVMaXN0W2l0ZW0ubmFtZV0gfHwgW119XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkxpc3RDaGFuZ2U9eyhsaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVMaXN0OiB7IC4uLmZpbGVMaXN0LCBbaXRlbS5uYW1lXTogbGlzdCB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdD17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93RG93bmxvYWRJY29uOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93UmVtb3ZlSWNvbjogbGFiZWwgIT09IFwi5p+l55yLXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXtpdGVtUmVmfVxyXG4gICAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGNoaWxkcmVuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogbGFiZWwgIT09IFwi5p+l55yLXCIgJiYgPEJ1dHRvbj7kuIrkvKDmlofku7Y8L0J1dHRvbj59XHJcbiAgICAgICAgICAgICAgICAgICAgPC9VcGxvYWQ+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cclxuICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KX1cclxuICAgICAgPC9Sb3c+XHJcbiAgICApO1xyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZvcm1zID0gW10sXHJcbiAgICAgIHByb3BzID0ge30sXHJcbiAgICAgIGZvb3RlciA9IHRydWUsXHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBmb3JtVHlwZSA9IFwicGFnZVwiLFxyXG4gICAgICB0aXRsZSA9IFwiXCIsXHJcbiAgICAgIG1vZGFsUHJvcHM6IGRlZmF1bHRNb2RhbFByb3BzID0ge30sXHJcbiAgICAgIGRyYXdlclByb3BzOiBkZWZhdWx0RHJhd2VyUHJvcHMsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgbG9hZGluZywgbGFiZWwgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgc2VsZkJ1dHRvbnMgPSBbXSBhcyBhbnk7XHJcbiAgICBsZXQgc2VsZlBhbmVzID0gW10gYXMgYW55O1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcclxuICAgICAgICAgIGl0ZW0ubWFwKChjaGlsZCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY2hpbGQ/LnByb3BzPy5wYWdlVHlwZSA9PSBcImZvcm1QYW5lXCIpIHtcclxuICAgICAgICAgICAgICB0eXBlb2YgaXRlbSA9PSBcIm9iamVjdFwiICYmIHNlbGZQYW5lcy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0eXBlb2YgaXRlbSA9PSBcIm9iamVjdFwiICYmIHNlbGZCdXR0b25zLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGl0ZW0/LnByb3BzPy5wYWdlVHlwZSA9PSBcImZvcm1QYW5lXCIpIHtcclxuICAgICAgICAgICAgdHlwZW9mIGl0ZW0gPT0gXCJvYmplY3RcIiAmJiBzZWxmUGFuZXMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHR5cGVvZiBpdGVtID09IFwib2JqZWN0XCIgJiYgc2VsZkJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICBjb25zdCB7IHByb3BzIH06IGFueSA9IGNoaWxkcmVuO1xyXG4gICAgICBpZiAocHJvcHM/LnBhZ2VUeXBlID09IFwiZm9ybVBhbmVcIikge1xyXG4gICAgICAgIHR5cGVvZiBjaGlsZHJlbiA9PSBcIm9iamVjdFwiICYmIHNlbGZQYW5lcy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0eXBlb2YgY2hpbGRyZW4gPT0gXCJvYmplY3RcIiAmJiBzZWxmQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IG1vZGFsUHJvcHMgPSB7XHJcbiAgICAgIHRpdGxlOiBsYWJlbCArIHRpdGxlLFxyXG4gICAgICBvbk9rOiB0aGlzLm9uU3VibWl0LmJpbmQodGhpcyksXHJcbiAgICAgIG9uQ2FuY2VsOiB0aGlzLmhpZGUuYmluZCh0aGlzKSxcclxuICAgICAgb2tCdXR0b25Qcm9wczogeyBsb2FkaW5nOiBsb2FkaW5nIH0sXHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogXCI1MHZ3XCIsXHJcbiAgICAgIGZvb3RlckJ1dHRvbjogc2VsZkJ1dHRvbnMsXHJcbiAgICAgIC4uLmRlZmF1bHRNb2RhbFByb3BzLFxyXG4gICAgfSBhcyBhbnk7XHJcblxyXG4gICAgbGV0IGRyYXdlclByb3BzID0ge1xyXG4gICAgICBvbk9rOiB0aGlzLm9uU3VibWl0LmJpbmQodGhpcyksXHJcbiAgICAgIG9uQ2xvc2U6IHRoaXMuaGlkZS5iaW5kKHRoaXMpLFxyXG4gICAgICB3aWR0aDogNjUwLFxyXG4gICAgICBmb290ZXJCdXR0b246IHNlbGZCdXR0b25zLFxyXG4gICAgICAuLi5kZWZhdWx0RHJhd2VyUHJvcHMsXHJcbiAgICB9IGFzIGFueTtcclxuICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgIG1vZGFsUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgICAgZHJhd2VyUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZVZhbHVlRm9ybWF0ID0ge307XHJcbiAgICB0aGlzLmRhdGVGb3JtYXQgPSB7fTtcclxuICAgIHRoaXMuZmlsZUZvcm1hdCA9IFtdO1xyXG4gICAgbGV0IG5ld0Zvcm1zT2JqID0ge30gYXMgYW55O1xyXG4gICAgbGV0IGZvcm1Hcm91cHMgPSBbXSBhcyBhbnk7XHJcbiAgICBsZXQgb3RoZXJHcnVwcyA9IFtdIGFzIGFueTtcclxuICAgIGxldCBzaG93Rm9ybXMgPSBbXSBhcyBhbnk7XHJcbiAgICAvL+WkhOeQhuihqOWNleaVsOaNrlxyXG4gICAgZm9ybXMubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGl0ZW0uc2hvdyAhPT0gZmFsc2UpIHtcclxuICAgICAgICBzaG93Rm9ybXMucHVzaChpdGVtKTtcclxuICAgICAgICBpZiAoaXRlbS5ncm91cE5hbWUgJiYgZm9ybUdyb3Vwcy5pbmRleE9mKGl0ZW0uZ3JvdXBOYW1lKSA8IDApIHtcclxuICAgICAgICAgIGZvcm1Hcm91cHMucHVzaChpdGVtLmdyb3VwTmFtZSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICghaXRlbS5ncm91cE5hbWUpIHtcclxuICAgICAgICAgIG90aGVyR3J1cHMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgaWYgKGZvcm1Hcm91cHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3JtR3JvdXBzLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgbGV0IGdyb3VwRm9ybXMgPSBbXSBhcyBhbnk7XHJcbiAgICAgICAgc2hvd0Zvcm1zLm1hcCgoZm9ybTogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZm9ybS5ncm91cE5hbWUgPT0gaXRlbSkge1xyXG4gICAgICAgICAgICBncm91cEZvcm1zLnB1c2goZm9ybSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgbmV3Rm9ybXNPYmpbaXRlbV0gPSBncm91cEZvcm1zO1xyXG4gICAgICB9KTtcclxuICAgICAgaWYgKG90aGVyR3J1cHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIG5ld0Zvcm1zT2JqW1wibm9Hcm91cE5hbWVcIl0gPSBvdGhlckdydXBzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBQYW5lV2l0aG91dFBhZ2VUeXBlID0gKFBhbmUsIHByb3BzKSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgcGFnZVR5cGUsIC4uLmNsZWFuUHJvcHMgfSA9IHByb3BzO1xyXG4gICAgICByZXR1cm4gUmVhY3QuY3JlYXRlRWxlbWVudChQYW5lLnR5cGUsIGNsZWFuUHJvcHMpO1xyXG4gICAgfTtcclxuICAgIC8v6Ieq5a6a5LmJ5oyJ6ZKuXHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8Rm9ybVxyXG4gICAgICAgIHJlZj17dGhpcy5mb3JtUmVmfVxyXG4gICAgICAgIHNob3dNb2RlbD17dGhpcy5wcm9wcy5mb3JtVHlwZSA9PSBcInBhZ2VcIiA/IG51bGwgOiB0aGlzLnByb3BzLmZvcm1UeXBlfVxyXG4gICAgICAgIG1vZGFsUHJvcHM9e3sgLi4ubW9kYWxQcm9wcyB9fVxyXG4gICAgICAgIGRyYXdlclByb3BzPXt7IC4uLmRyYXdlclByb3BzIH19XHJcbiAgICAgICAgLy8gbGFiZWxDb2w9e3sgZmxleDogXCIxMDBweFwiIH19XHJcbiAgICAgICAgLy8gd3JhcHBlckNvbD17eyBmbGV4OiBcIjE1dndcIiB9fVxyXG4gICAgICAgIG9uVmFsdWVzQ2hhbmdlPXsoY2hhbmdlZFZhbHVlcywgYWxsVmFsdWVzKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB7IG9uRm9ybUNoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICAgIG9uRm9ybUNoYW5nZSAmJiBvbkZvcm1DaGFuZ2UoY2hhbmdlZFZhbHVlcywgYWxsVmFsdWVzKTtcclxuICAgICAgICB9fVxyXG4gICAgICAgIGNoYW5nZVZhbGlkPXt0aGlzLnByb3BzLmNoYW5nZVZhbGlkfVxyXG4gICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tcGFnZVwiPlxyXG4gICAgICAgICAge2Zvcm1Hcm91cHMubGVuZ3RoID09IDAgPyAoXHJcbiAgICAgICAgICAgIHRoaXMucHJvcHMuZm9ybVR5cGUgIT09IFwicGFnZVwiID8gKFxyXG4gICAgICAgICAgICAgIHRoaXMucmVuZGVyRm9ybShzaG93Rm9ybXMsIGxhYmVsKVxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tcGFuZVwiPlxyXG4gICAgICAgICAgICAgICAge3RoaXMucmVuZGVyRm9ybShzaG93Rm9ybXMsIGxhYmVsKX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgT2JqZWN0LmtleXMobmV3Rm9ybXNPYmopLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxkaXYga2V5PXtrZXl9IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXBhbmVcIj5cclxuICAgICAgICAgICAgICAgICAge2tleSAhPSBcIm5vR3JvdXBOYW1lXCIgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tdGl0bGVcIj57a2V5fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJGb3JtKG5ld0Zvcm1zT2JqW2tleV0sIGxhYmVsKX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKX1cclxuXHJcbiAgICAgICAgICB7c2VsZlBhbmVzLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgc2VsZlBhbmVzLm1hcCgoUGFuZSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtZm9ybS1wYW5lXCIga2V5PXtpbmRleH0+XHJcbiAgICAgICAgICAgICAgICAgIHtQYW5lV2l0aG91dFBhZ2VUeXBlKFBhbmUsIHsgLi4uUGFuZS5wcm9wcyB9KX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAge2Zvcm1UeXBlID09PSBcInBhZ2VcIiAmJiBmb290ZXIgPT0gdHJ1ZSAmJiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NscyhcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuZm9vdGVyQ2xhc3NOYW1lLFxyXG4gICAgICAgICAgICAgICAgXCJuc2MtZm9ybS1wYWdlLWZvb3RlclwiLFxyXG4gICAgICAgICAgICAgICAgW1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmZvb3RlckZpeGVkICE9PSBmYWxzZVxyXG4gICAgICAgICAgICAgICAgICAgID8gXCJuc2MtZm9ybS1wYWdlLWZvb3Rlci1maXhlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgOiBcIlwiLFxyXG4gICAgICAgICAgICAgICAgXSxcclxuICAgICAgICAgICAgICAgIFt0aGlzLnN0YXRlLndpZHRoID8gXCJuc2MtZm9ybS1wYWdlLWZvb3Rlci1maXhlZC13aWR0aFwiIDogXCJcIl1cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgey4uLnRoaXMucHJvcHMuY2FuY2VsQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uQ2FuY2VsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNhbmNlbCgpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIOWPlua2iFxyXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgIHsuLi50aGlzLnByb3BzLm9rQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMub25TdWJtaXQoKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBsb2FkaW5nPXt0aGlzLnN0YXRlLmxvYWRpbmd9XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e1wibnNjLWZvcm0tcGFnZS1mb290ZXItYnRuXCJ9XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAg5L+d5a2YXHJcbiAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAge3NlbGZCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJuc2MtZm9ybS1wYWdlLWZvb3Rlci1idG5cIn0ga2V5PXtpbmRleH0+XHJcbiAgICAgICAgICAgICAgICAgICAge2l0ZW19XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge2Zvcm1UeXBlID09PSBcInBhZ2VcIiAmJiBmb290ZXIgIT09IHRydWUgJiYgdGhpcy5wcm9wcy5mb290ZXJ9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvRm9ybT5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBGb3JtUGFnZTtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxhQUFhLFFBQW1CLE9BQU87QUFDdkQsT0FBT0MsSUFBSSxNQUFNLGlCQUFpQjtBQUNsQyxTQUFrQkMsT0FBTyxRQUFRLGFBQWE7QUFDOUMsT0FBT0MsT0FBTyxNQUFNLG9CQUFvQjtBQUN4QyxPQUFPQyxHQUFHLE1BQU0scUJBQXFCO0FBQ3JDLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsU0FBU0MsVUFBVSxFQUFFQyxhQUFhLFFBQVEsbUJBQW1CO0FBQzdELE9BQU9DLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9BQU8scUJBQXFCO0FBQzVCLE9BQU9DLE1BQU0sTUFBTSxRQUFRO0FBQzNCLE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxHQUFHLE1BQU0sWUFBWTtBQUU1QixPQUFPQyxVQUFVLE1BQU0sYUFBYTtBQUdwQyxTQUFTQyxrQkFBa0IsUUFBUSxzQkFBc0I7QUFDekQsT0FBT0MsTUFBTSxNQUFNLGNBQWM7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
|
|
723
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiZ2V0Tm9kZSIsIm1lc3NhZ2UiLCJDb2wiLCJSb3ciLCJpc0VtcHR5T2JqIiwiZ2V0TG9jYWxTdG9yZSIsImRheWpzIiwibG9kYXNoIiwiQnV0dG9uIiwiVXBsb2FkIiwiY2xzIiwiTnNjUmVxdWVzdCIsImNvbnZlcnRTdHJpbmdUb09iaiIsImNvbmZpZyIsIkZvcm1QYWdlIiwiY29uc3RydWN0b3IiLCJhcmd1bWVudHMiLCJfZGVmaW5lUHJvcGVydHkiLCJjcmVhdGVSZWYiLCJsb2FkaW5nIiwibGFiZWwiLCJwcm9wcyIsImVkaXRUeXBlIiwiZWRpdG9yRmxhZyIsInZhbHVlIiwiZGljdE5hbWVzIiwiZmlsZUxpc3QiLCJ3aWR0aCIsImVkaXRJZCIsImV2IiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsIl90aGlzIiwiZXZlbnRUeXBlIiwicGF5bG9hZCIsImNsb3NlIiwic2V0U3RhdGUiLCJjb21wb25lbnREaWRNb3VudCIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwiZm9ybVR5cGUiLCJyZXF1ZXN0T2JqZWN0IiwiZGV0YWlsVXJsIiwiZ2V0IiwicGFyYW1zIiwiaWQiLCJzdGF0ZSIsInhzc0ZpbHRlciIsImF1dG9QcmVmaXgiLCJ0aGVuIiwicmVzIiwiY29kZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudCIsImZvcm1SZWYiLCJjdXJyZW50Iiwic2V0RmllbGRzVmFsdWUiLCJfb2JqZWN0U3ByZWFkIiwiZGVmYXVsdFZhbHVlIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MiIsImNvbnZlcnREZWZhdWx0VmFsdWUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJVdGlscyIsImZ1bmNzIiwicGFnZVJlZiIsInJlZnMiLCJyZWZMaXN0Iiwic2hvdyIsIm9yZ1ZhbHVlIiwiZWRpdG9yZmxhZyIsImxlbmd0aCIsInVuZGVmaW5lZCIsImNhbGxCYWNrIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MyIsImNvbnZlcnRWYWx1ZSIsInNob3dGb3JtIiwiYWZ0ZXJSZW5kZXIiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ0IiwiaGlkZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDUiLCJvbkhpZGVGb3JtIiwiaGlkZUZvcm0iLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ2Iiwic2V0TG9hZGluZyIsInNldEVkaXRUeXBlIiwidHlwZSIsInNldEVkaXRJZCIsImdldEZvcm1WYWx1ZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDciLCJmb3JtVmFsdWUiLCJnZXRGaWVsZHNWYWx1ZSIsImNsb25lRGVlcCIsImZpbGVGb3JtYXQiLCJuZXdGaWxlTGlzdCIsIm1hcCIsIml0ZW0iLCJnZXRGaWxlTGlzdCIsInN1Ym1pdEZsYWciLCJlcnJvciIsImRhdGVWYWx1ZUZvcm1hdCIsImtleSIsIm9sZGRhdGEiLCJBcnJheSIsImlzQXJyYXkiLCJmb3JtYXQiLCJyYW5nZXJEYXRlIiwiZGF0ZUZvcm1hdCIsImUiLCJuZXdEYXRhIiwic3RyaW5naWZ5IiwidmFsdWVzIiwiZm9yRWFjaCIsImZpbGVLZXkiLCJ2YWx1ZTEiLCJ2YWx1ZTIiLCJzZXRGb3JtVmFsdWUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ4IiwibmV3VmFsdWUiLCJkb1N1Ym1pdCIsImZvcm1kYXRhIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50OSIsInN1Ym1pdFVybCIsInN1Ym1pdFBhcmFtcyIsInJlcXVlc3RDb25maWciLCJhZGRVcmwiLCJlZGl0b3JVcmwiLCJhZGRQYXJhbXMiLCJlZGl0b3JQYXJhbXMiLCJ1cmwiLCJmdW5jIiwiRnVuY3Rpb24iLCJjb252ZXJQYXJhbXMiLCJjb25zb2xlIiwib3RoZXJQYXJhbXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJvblN1Ym1pdCIsIm5vVW5kZWZpbmVkIiwibXNnIiwic3VjY2VzcyIsInNldFRpbWVvdXQiLCJvYmoiLCJmaWxlSWQiLCJmaWxlTmFtZSIsInN0YXR1cyIsInB1c2giLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQxMCIsInZhbGlkIiwidmFsaWRhdGVGaWVsZHMiLCJyZXR1cm5EYXRhIiwiY2F0Y2giLCJlcnJvckluZm8iLCJ2YWx1ZUNoYW5nZSIsIl9yZWYiLCJ2YWx1ZU9wdGlvbiIsImRpY3ROYW1lIiwibmV3TmFtZXMiLCJvbkNoYW5nZSIsImV2ZW50T3B0aW9uIiwidmFsdWVTdHIiLCJzZWxmRnVuYyIsInJlbmRlckZvcm0iLCJmb3JtcyIsIm5ld1ZhbGlkIiwic3RvcmVQcmVmaXgiLCJhdXRvVHlwZSIsImxvZyIsImNyZWF0ZUVsZW1lbnQiLCJndXR0ZXIiLCJpbmRleCIsIl9pdGVtJHByb3BzIiwiX2l0ZW0kcHJvcHMyIiwiaXRlbVByb3BzIiwidmFsdWVGb3JtYXQiLCJuYW1lIiwic3BsaXQiLCJhbGxvd0NoYXJzIiwiY2hpbGRyZW4iLCJwbGFjZWhvbGRlciIsImNvbmNhdCIsImJpbmQiLCJkYXRhVHlwZSIsImRpc2FibGVkIiwicnVsZXMiLCJyZXF1aXJlZCIsIml0ZW1SZWYiLCJzcGFuIiwiX2l0ZW0kcHJvcHMzIiwic3R5bGUiLCJkaXNwbGF5IiwiSXRlbSIsImNvbXBvbmVudE5hbWUiLCJub1N0eWxlIiwiZm9ybVJlbmRlciIsInJlZiIsIl9pdGVtJHByb3BzNCIsIl9leHRlbmRzIiwib25MaXN0Q2hhbmdlIiwibGlzdCIsInNob3dVcGxvYWRMaXN0Iiwic2hvd0Rvd25sb2FkSWNvbiIsInNob3dSZW1vdmVJY29uIiwicmVuZGVyIiwiZm9vdGVyIiwidGl0bGUiLCJtb2RhbFByb3BzIiwiZGVmYXVsdE1vZGFsUHJvcHMiLCJkcmF3ZXJQcm9wcyIsImRlZmF1bHREcmF3ZXJQcm9wcyIsInNlbGZCdXR0b25zIiwic2VsZlBhbmVzIiwiY2hpbGQiLCJfY2hpbGQkcHJvcHMiLCJwYWdlVHlwZSIsIl9pdGVtJHByb3BzNSIsIm9uT2siLCJvbkNhbmNlbCIsIm9rQnV0dG9uUHJvcHMiLCJjZW50ZXJlZCIsImZvb3RlckJ1dHRvbiIsIm9uQ2xvc2UiLCJuZXdGb3Jtc09iaiIsImZvcm1Hcm91cHMiLCJvdGhlckdydXBzIiwic2hvd0Zvcm1zIiwiZ3JvdXBOYW1lIiwiaW5kZXhPZiIsImdyb3VwRm9ybXMiLCJmb3JtIiwiUGFuZVdpdGhvdXRQYWdlVHlwZSIsIlBhbmUiLCJjbGVhblByb3BzIiwiX2V4Y2x1ZGVkMiIsInNob3dNb2RlbCIsIm9uVmFsdWVzQ2hhbmdlIiwiY2hhbmdlZFZhbHVlcyIsImFsbFZhbHVlcyIsIm9uRm9ybUNoYW5nZSIsImNoYW5nZVZhbGlkIiwiY2xhc3NOYW1lIiwiT2JqZWN0Iiwia2V5cyIsImZvb3RlckNsYXNzTmFtZSIsImZvb3RlckZpeGVkIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJvbkNsaWNrIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9Gb3JtUGFnZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL2Jhc2UvbWVzc2FnZVwiO1xyXG5pbXBvcnQgQ29sIGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHsgaXNFbXB0eU9iaiwgZ2V0TG9jYWxTdG9yZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IGxvZGFzaCBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBVcGxvYWQgZnJvbSBcIi4uLy4uL2Jhc2UvdXBsb2FkXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHsgSUZvcm1Qcm9wcyB9IGZyb20gXCJzcmMvY29tcG9uZW50cy9iYXNlL2Zvcm0vRm9ybVwiO1xyXG5pbXBvcnQgTnNjUmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IENvbXBvdW5kZWRTcGFjZSBmcm9tIFwiYW50ZC9lcy9zcGFjZVwiO1xyXG5pbXBvcnQgeyBjb252ZXJ0U3RyaW5nVG9PYmogfSBmcm9tIFwiLi4vU2V0dGluZ1V0aWwvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1QYWdlUHJvcHMge1xyXG4gIGZvcm1zPzogQXJyYXk8YW55PjsgLy/mmK/lkKbmmL7npLrmk43kvZzliJdcclxuICBzdWJtaXRVcmw/OiBzdHJpbmc7XHJcbiAgb25TdWJtaXQ/OiAodmFsdWU/OiBhbnksIGxhYmVsPzogYW55KSA9PiB2b2lkO1xyXG4gIGZvb3RlckNsYXNzTmFtZT86IGFueTtcclxuICBva0J1dHRvblByb3BzPzogYW55O1xyXG4gIGNhbmNlbEJ1dHRvblByb3BzPzogYW55O1xyXG4gIGZvb3Rlcj86IFJlYWN0Tm9kZSB8IGJvb2xlYW47XHJcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgb25Gb3JtQ2hhbmdlPzogKHZhbHVlPzogYW55LCBhbGxWYWx1ZT86IGFueSkgPT4gdm9pZDtcclxuICBzdWJtaXRQYXJhbXM/OiBhbnk7IC8v5re75Yqg5Y+C5pWw77yM6buY6K6kbW90aG9kOnBvc3TvvIwg5Y+C5pWw6YCa6L+HZGF0YeS8oOmAklxyXG4gIGZ1bmNzPzogYW55O1xyXG4gIHByb3BzPzogSUZvcm1Qcm9wcztcclxuICByZXF1ZXN0T2JqZWN0Pzoge1xyXG4gICAgYWRkVXJsPzogc3RyaW5nO1xyXG4gICAgZWRpdG9yVXJsPzogc3RyaW5nO1xyXG4gICAgYWRkUGFyYW1zPzogYW55O1xyXG4gICAgZWRpdG9yUGFyYW1zPzogYW55O1xyXG4gICAgZGV0YWlsVXJsPzogc3RyaW5nO1xyXG4gIH07XHJcbiAgcmVxdWVzdENvbmZpZz86IGFueTtcclxuICBmb290ZXJXaWR0aD86IGJvb2xlYW47XHJcbiAgZWRpdFR5cGU/OiBcIuaWsOWinlwiIHwgXCLnvJbovpFcIiB8IFwi5p+l55yLXCI7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbiAgZWRpdElkPzogc3RyaW5nO1xyXG4gIG1vZGFsUHJvcHM/OiBhbnk7XHJcbiAgZHJhd2VyUHJvcHM/OiBhbnk7XHJcbiAgW3Byb3BzTmFtZTogc3RyaW5nXTogYW55O1xyXG4gIGZvb3RlckZpeGVkPzogYm9vbGVhbjtcclxufVxyXG5jbGFzcyBGb3JtUGFnZSBleHRlbmRzIFB1cmVDb21wb25lbnQ8Rm9ybVBhZ2VQcm9wcywgYW55PiB7XHJcbiAgZm9ybVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgIGxhYmVsOiB0aGlzLnByb3BzLmVkaXRUeXBlIHx8IFwiXCIsXHJcbiAgICBlZGl0b3JGbGFnOiB0cnVlLFxyXG4gICAgdmFsdWU6IHt9IGFzIGFueSxcclxuICAgIGRpY3ROYW1lczoge30gYXMgYW55LFxyXG4gICAgZmlsZUxpc3Q6IHt9IGFzIGFueSxcclxuICAgIHdpZHRoOiBnZXRMb2NhbFN0b3JlKFwibnNjLWhvbWUtbWVudUNvbGxzYXBlXCIpIHx8IGZhbHNlLFxyXG4gICAgZWRpdElkOiB0aGlzLnByb3BzLmVkaXRJZCB8fCBcIlwiLFxyXG4gIH07XHJcbiAgdmFsaWQ6IGFueSA9IFtdO1xyXG4gIGRhdGVWYWx1ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGZpbGVGb3JtYXQgPSBbXSBhcyBhbnk7XHJcbiAgcmFuZ2VyRGF0ZSA9IHt9IGFzIGFueTtcclxuICByZWZMaXN0ID0ge30gYXMgYW55O1xyXG4gIHN1Ym1pdEZsYWcgPSB0cnVlO1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCk6IHZvaWQge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZvcm1UeXBlID0gXCJwYWdlXCIsXHJcbiAgICAgIHJlcXVlc3RPYmplY3QgPSB7fSxcclxuICAgICAgZWRpdFR5cGUgPSBcIuaWsOWinlwiLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoZm9ybVR5cGUgPT0gXCJwYWdlXCIpIHtcclxuICAgICAgaWYgKHJlcXVlc3RPYmplY3QuZGV0YWlsVXJsICYmIGVkaXRUeXBlICE9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgICAgTnNjUmVxdWVzdC5nZXQocmVxdWVzdE9iamVjdC5kZXRhaWxVcmwsIHtcclxuICAgICAgICAgIHBhcmFtczogeyBpZDogdGhpcy5zdGF0ZS5lZGl0SWQgfSxcclxuICAgICAgICAgIHhzc0ZpbHRlcjogZmFsc2UsXHJcbiAgICAgICAgICBhdXRvUHJlZml4OiB0cnVlLFxyXG4gICAgICAgIH0pLnRoZW4oKHJlcykgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUoeyAuLi5yZXMuZGF0YSB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChlZGl0VHlwZSA9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMuZGVmYXVsdFZhbHVlKSB7XHJcbiAgICAgICAgICBsZXQgZGVmYXVsdFZhbHVlID0gdGhpcy5jb252ZXJ0RGVmYXVsdFZhbHVlKCk7XHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUoZGVmYXVsdFZhbHVlIHx8IHt9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5saXN0ZW5NZXNzYWdlKTtcclxuICB9XHJcbiAgbGlzdGVuTWVzc2FnZSA9IChldikgPT4ge1xyXG4gICAgY29uc3QgZGF0YSA9IHR5cGVvZiBldi5kYXRhID09PSBcInN0cmluZ1wiID8gSlNPTi5wYXJzZShldi5kYXRhKSA6IGV2LmRhdGE7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgaWYgKGRhdGEuZXZlbnRUeXBlID09IFwibWVudUNvbGxzYXBlXCIpIHtcclxuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBkYXRhO1xyXG4gICAgICBpZiAocGF5bG9hZC5jbG9zZSA9PT0gdHJ1ZSB8fCBwYXlsb2FkLmNsb3NlID09PSBmYWxzZSkge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgd2lkdGg6IHBheWxvYWQuY2xvc2UgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIGNvbnZlcnREZWZhdWx0VmFsdWUoKSB7XHJcbiAgICBjb25zdCB7IGRlZmF1bHRWYWx1ZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIHJldHVybiBjb252ZXJ0U3RyaW5nVG9PYmooZGVmYXVsdFZhbHVlLCB0aGlzLnByb3BzLlV0aWxzIHx8IHt9LCB7XHJcbiAgICAgIGZ1bmNzOiB0aGlzLnByb3BzLmZ1bmNzLFxyXG4gICAgICBwYWdlUmVmOiB0aGlzLnByb3BzLnBhZ2VSZWYsXHJcbiAgICAgIGZvcm1SZWY6IHRoaXMuZm9ybVJlZixcclxuICAgICAgcmVmczogdGhpcy5yZWZMaXN0LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8v6KGo5Y2V5pi+56S6XHJcbiAgc2hvdyhvcmdWYWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIsIGNhbGxCYWNrPzogYW55KSB7XHJcbiAgICBsZXQgbGFiZWwgPSBcIuaWsOWinlwiO1xyXG4gICAgaWYgKG9yZ1ZhbHVlICYmIGVkaXRvcmZsYWcgPT0gXCJlZGl0b3JcIikge1xyXG4gICAgICBsYWJlbCA9IFwi57yW6L6RXCI7XHJcbiAgICB9IGVsc2UgaWYgKG9yZ1ZhbHVlICYmIChlZGl0b3JmbGFnID09IFwiZGV0YWlsXCIgfHwgZWRpdG9yZmxhZyA9PSBcInNlYXJjaFwiKSkge1xyXG4gICAgICBsYWJlbCA9IFwi5p+l55yLXCI7XHJcbiAgICB9XHJcbiAgICBpZiAob3JnVmFsdWUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICBsYWJlbDogbGFiZWwsXHJcbiAgICAgICAgICB2YWx1ZTogb3JnVmFsdWUsXHJcbiAgICAgICAgICBlZGl0SWQ6IG9yZ1ZhbHVlLmlkLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5jb252ZXJ0VmFsdWUob3JnVmFsdWUsIGxhYmVsKTtcclxuICAgICAgICAgIC8v5aSE55CG5paH5Lu25pWw5o2uXHJcbiAgICAgICAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2hvd0Zvcm0odmFsdWUsIHtcclxuICAgICAgICAgICAgYWZ0ZXJSZW5kZXI6ICgpID0+IHtcclxuICAgICAgICAgICAgICBjYWxsQmFjayAmJiBjYWxsQmFjaygpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgbGFiZWw6IGxhYmVsLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgbGV0IGRlZmF1bHRWYWx1ZSA9IHRoaXMucHJvcHMuZGVmYXVsdFZhbHVlXHJcbiAgICAgICAgICAgID8gdGhpcy5jb252ZXJ0RGVmYXVsdFZhbHVlKClcclxuICAgICAgICAgICAgOiB7fTtcclxuICAgICAgICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zaG93Rm9ybShkZWZhdWx0VmFsdWUgfHwge30sIHtcclxuICAgICAgICAgICAgYWZ0ZXJSZW5kZXI6ICgpID0+IHtcclxuICAgICAgICAgICAgICBjYWxsQmFjayAmJiBjYWxsQmFjaygpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbiAgaGlkZShoaWRlID0gdHJ1ZSkge1xyXG4gICAgY29uc3QgeyBvbkhpZGVGb3JtIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKG9uSGlkZUZvcm0pIHtcclxuICAgICAgb25IaWRlRm9ybSAmJiBvbkhpZGVGb3JtKCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSwgZmlsZUxpc3Q6IHt9IH0pO1xyXG4gICAgaGlkZSAmJiB0aGlzLmZvcm1SZWYuY3VycmVudD8uaGlkZUZvcm0oKTtcclxuICB9XHJcbiAgaGlkZUZvcm0oKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UsIGZpbGVMaXN0OiB7fSB9KTtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gIH1cclxuICBzaG93Rm9ybShvcmdWYWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIsIGNhbGxCYWNrPzogYW55KSB7XHJcbiAgICB0aGlzLnNob3cob3JnVmFsdWUsIGVkaXRvcmZsYWcsIGNhbGxCYWNrKTtcclxuICB9XHJcbiAgc2V0TG9hZGluZyhsb2FkaW5nOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogbG9hZGluZyB9KTtcclxuICB9XHJcbiAgc2V0RWRpdFR5cGUodHlwZSkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGxhYmVsOiB0eXBlLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNldEVkaXRJZChpZCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGVkaXRJZDogaWQsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZ2V0Rm9ybVZhbHVlKCkge1xyXG4gICAgY29uc3QgeyBsYWJlbCwgdmFsdWUsIGRpY3ROYW1lcywgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmZvcm1SZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIGxldCBkYXRhID0gbG9kYXNoLmNsb25lRGVlcCh7IC4uLmZvcm1WYWx1ZSwgLi4uZGljdE5hbWVzIH0pO1xyXG4gICAgaWYgKHRoaXMuZmlsZUZvcm1hdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBuZXdGaWxlTGlzdCA9IHt9IGFzIGFueTtcclxuICAgICAgdGhpcy5maWxlRm9ybWF0Lm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGlmIChmaWxlTGlzdFtpdGVtXS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgICAgbmV3RmlsZUxpc3RbaXRlbV0gPSBudWxsO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBuZXdGaWxlTGlzdFtpdGVtXSA9IHRoaXMuZ2V0RmlsZUxpc3QoZmlsZUxpc3RbaXRlbV0gfHwgW10pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIC4uLm5ld0ZpbGVMaXN0IH07XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuc3VibWl0RmxhZykge1xyXG4gICAgICBtZXNzYWdlLmVycm9yKFwi6K+3562J5b6F5omA5pyJ5paH5Lu25LiK5Lyg5a6M5oiQ77yBXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzRW1wdHlPYmoodGhpcy5kYXRlVmFsdWVGb3JtYXQpKSB7XHJcbiAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVWYWx1ZUZvcm1hdCkge1xyXG4gICAgICAgIGxldCBvbGRkYXRhID0gZGF0YVtrZXldO1xyXG4gICAgICAgIGlmIChvbGRkYXRhKSB7XHJcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvbGRkYXRhKSkge1xyXG4gICAgICAgICAgICBkYXRhW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVswXSkuZm9ybWF0KHRoaXMuZGF0ZVZhbHVlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMV0pLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgaWYgKHRoaXMucmFuZ2VyRGF0ZVtrZXldKSB7XHJcbiAgICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGRhdGFbdGhpcy5yYW5nZXJEYXRlW2tleV1bMF1dID0gZGF5anMob2xkZGF0YVswXSkuZm9ybWF0KFxyXG4gICAgICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXRba2V5XSxcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICBkYXRhW3RoaXMucmFuZ2VyRGF0ZVtrZXldWzFdXSA9IGRheWpzKG9sZGRhdGFbMV0pLmZvcm1hdChcclxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2tleV0sXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgZGVsZXRlIGRhdGFba2V5XTtcclxuICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBkYXRhW2tleV0gPSBkYXlqcyhvbGRkYXRhKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAobGFiZWwgPT0gXCLnvJbovpFcIikge1xyXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBpZDogdmFsdWU/LmlkIHx8IHRoaXMuc3RhdGUuZWRpdElkIH07XHJcbiAgICB9XHJcbiAgICBsZXQgbmV3RGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xyXG4gICAgcmV0dXJuIG5ld0RhdGE7XHJcbiAgfVxyXG4gIGNvbnZlcnRWYWx1ZSh2YWx1ZSwgdHlwZSkge1xyXG4gICAgbGV0IHZhbHVlcyA9IGxvZGFzaC5jbG9uZURlZXAodmFsdWUpO1xyXG4gICAgaWYgKHRoaXMuZmlsZUZvcm1hdC5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBmaWxlTGlzdCA9IHt9IGFzIGFueTtcclxuICAgICAgdGhpcy5maWxlRm9ybWF0LmZvckVhY2goKGZpbGVLZXkpID0+IHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IHZhbHVlc1tmaWxlS2V5XTtcclxuICAgICAgICBpZiAob2xkZGF0YSAmJiBBcnJheS5pc0FycmF5KG9sZGRhdGEpKSB7XHJcbiAgICAgICAgICBmaWxlTGlzdFtmaWxlS2V5XSA9IHRoaXMuZ2V0RmlsZUxpc3Qob2xkZGF0YSB8fCBbXSwgdHlwZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGZpbGVMaXN0W2ZpbGVLZXldID0gW107XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGZpbGVMaXN0OiBmaWxlTGlzdCB9KTtcclxuICAgIH1cclxuICAgIC8v5aSE55CG5pel5pyf5qC85byP5pWw5o2uXHJcbiAgICBpZiAoIWlzRW1wdHlPYmoodGhpcy5kYXRlRm9ybWF0KSkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlRm9ybWF0KSB7XHJcbiAgICAgICAgbGV0IG9sZGRhdGEgPSB2YWx1ZXNba2V5XTtcclxuICAgICAgICBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgdmFsdWVzW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVswXSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMV0sIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhbHVlc1trZXldID0gZGF5anMob2xkZGF0YSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBpZiAodGhpcy5yYW5nZXJEYXRlW2tleV0pIHtcclxuICAgICAgICAgICAgbGV0IHZhbHVlMSA9IHZhbHVlc1t0aGlzLnJhbmdlckRhdGVba2V5XVswXV07XHJcbiAgICAgICAgICAgIGxldCB2YWx1ZTIgPSB2YWx1ZXNbdGhpcy5yYW5nZXJEYXRlW2tleV1bMV1dO1xyXG4gICAgICAgICAgICBpZiAodmFsdWUxICYmIHZhbHVlMikge1xyXG4gICAgICAgICAgICAgIHZhbHVlc1trZXldID0gW1xyXG4gICAgICAgICAgICAgICAgZGF5anModmFsdWUxLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgICAgICBkYXlqcyh2YWx1ZTIsIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBdO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsdWVzO1xyXG4gIH1cclxuICBzZXRGb3JtVmFsdWUodmFsdWUsIHR5cGUgPSBcIuafpeeci1wiKSB7XHJcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuY29udmVydFZhbHVlKHZhbHVlLCB0eXBlKTtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zZXRGaWVsZHNWYWx1ZShuZXdWYWx1ZSk7XHJcbiAgfVxyXG4gIGRvU3VibWl0KGZvcm1kYXRhLCBsYWJlbCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdWJtaXRVcmwsXHJcbiAgICAgIHN1Ym1pdFBhcmFtcyA9IHt9LFxyXG4gICAgICBjYWxsQmFjayxcclxuICAgICAgcmVxdWVzdE9iamVjdCA9IHt9LFxyXG4gICAgICByZXF1ZXN0Q29uZmlnID0ge30sXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgYWRkVXJsLCBlZGl0b3JVcmwsIGFkZFBhcmFtcywgZWRpdG9yUGFyYW1zIH0gPSByZXF1ZXN0T2JqZWN0O1xyXG4gICAgbGV0IHVybCA9IHN1Ym1pdFVybDtcclxuICAgIGxldCBwYXJhbXM6IGFueSA9IHt9O1xyXG4gICAgaWYgKCFsYWJlbCB8fCBsYWJlbCA9PSBcIuaWsOWinlwiKSB7XHJcbiAgICAgIHVybCA9IGFkZFVybCA/IGFkZFVybCA6IHN1Ym1pdFVybDtcclxuICAgICAgaWYgKGFkZFBhcmFtcyAmJiB0eXBlb2YgYWRkUGFyYW1zID09IFwic3RyaW5nXCIpIHtcclxuICAgICAgICBjb25zdCBVdGlscyA9IHRoaXMucHJvcHMuVXRpbHMgfHwge307XHJcbiAgICAgICAgbGV0IGZ1bmMgPSBuZXcgRnVuY3Rpb24oXCJVdGlsc1wiLCBhZGRQYXJhbXMpO1xyXG4gICAgICAgIGxldCBjb252ZXJQYXJhbXMgPSBmdW5jKFV0aWxzKTtcclxuICAgICAgICBwYXJhbXMgPSBjb252ZXJQYXJhbXM7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcGFyYW1zID0gYWRkUGFyYW1zID8gYWRkUGFyYW1zIDogc3VibWl0UGFyYW1zO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGxhYmVsID09IFwi57yW6L6RXCIpIHtcclxuICAgICAgdXJsID0gZWRpdG9yVXJsID8gZWRpdG9yVXJsIDogc3VibWl0VXJsO1xyXG4gICAgICBpZiAoZWRpdG9yUGFyYW1zICYmIHR5cGVvZiBlZGl0b3JQYXJhbXMgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGNvbnN0IFV0aWxzID0gdGhpcy5wcm9wcy5VdGlscyB8fCB7fTtcclxuICAgICAgICBsZXQgZnVuYyA9IG5ldyBGdW5jdGlvbihcIlV0aWxzXCIsIGVkaXRvclBhcmFtcyk7XHJcbiAgICAgICAgbGV0IGNvbnZlclBhcmFtcyA9IGZ1bmMoVXRpbHMpO1xyXG4gICAgICAgIHBhcmFtcyA9IGNvbnZlclBhcmFtcztcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwYXJhbXMgPSBlZGl0b3JQYXJhbXMgPyBlZGl0b3JQYXJhbXMgOiBzdWJtaXRQYXJhbXM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghdXJsKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCLphY3nva5VcmzkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgZGF0YSA9IHt9LCAuLi5vdGhlclBhcmFtcyB9ID0gcGFyYW1zO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/Lm9uU3VibWl0KFxyXG4gICAgICB1cmwsXHJcbiAgICAgIHtcclxuICAgICAgICBkYXRhOiB7IC4uLmZvcm1kYXRhLCAuLi5kYXRhIH0sXHJcbiAgICAgICAgbm9VbmRlZmluZWQ6IGxhYmVsID09IFwi57yW6L6RXCIsXHJcbiAgICAgICAgLi4ucmVxdWVzdENvbmZpZyxcclxuICAgICAgICAuLi5vdGhlclBhcmFtcyxcclxuICAgICAgfSxcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBjb2RlLCBtc2cgfSA9IHJlcztcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKGxhYmVsICsgXCLmiJDlip9cIik7XHJcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5oaWRlKHRydWUpO1xyXG4gICAgICAgICAgICBjYWxsQmFjayAmJiBjYWxsQmFjaygpO1xyXG4gICAgICAgICAgfSwgNTAwKTtcclxuXHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgKTtcclxuICB9XHJcbiAgZ2V0RmlsZUxpc3QoZGF0YSwgbGFiZWwgPSBcIuaWsOWinlwiKSB7XHJcbiAgICB0aGlzLnN1Ym1pdEZsYWcgPSB0cnVlO1xyXG4gICAgbGV0IGZpbGVMaXN0ID0gW10gYXMgYW55O1xyXG4gICAgaWYgKGRhdGEgJiYgZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGRhdGEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHtcclxuICAgICAgICAgIGZpbGVJZDogaXRlbS5maWxlSWQsXHJcbiAgICAgICAgICBmaWxlTmFtZTogaXRlbS5maWxlTmFtZSxcclxuICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICBpZiAobGFiZWwgPT0gXCLmn6XnnItcIikge1xyXG4gICAgICAgICAgb2JqLnN0YXR1cyA9IFwiZG9uZVwiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGFiZWwgIT09IFwi5p+l55yLXCIgJiYgaXRlbS5zdGF0dXMgIT09IFwiZG9uZVwiKSB7XHJcbiAgICAgICAgICB0aGlzLnN1Ym1pdEZsYWcgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZmlsZUxpc3QucHVzaChvYmopO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBmaWxlTGlzdDtcclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgY29uc3QgeyBvblN1Ym1pdCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlLCBkaWN0TmFtZXMsIGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IHZhbGlkID0gdGhpcy52YWxpZDtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50XHJcbiAgICAgID8udmFsaWRhdGVGaWVsZHMoKVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB0aGlzLmdldEZvcm1WYWx1ZSgpO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiB0cnVlIH0pO1xyXG4gICAgICAgIGlmIChvblN1Ym1pdCkge1xyXG4gICAgICAgICAgbGV0IHJldHVybkRhdGEgPSBsb2Rhc2guY2xvbmVEZWVwKGRhdGEpO1xyXG4gICAgICAgICAgb25TdWJtaXQgJiYgb25TdWJtaXQocmV0dXJuRGF0YSwgbGFiZWwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRvU3VibWl0KGRhdGEsIGxhYmVsKTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKChlcnJvckluZm86IGFueSkgPT4ge30pO1xyXG4gIH1cclxuICB2YWx1ZUNoYW5nZSh7IHR5cGUsIGRpY3ROYW1lIH0sIHByb3BzLCB2YWx1ZSwgdmFsdWVPcHRpb24sIGRhdGEpIHtcclxuICAgIGlmICh2YWx1ZU9wdGlvbikge1xyXG4gICAgICBpZiAoZGljdE5hbWUpIHtcclxuICAgICAgICBjb25zdCB7IGRpY3ROYW1lcyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgICBjb25zdCBuZXdOYW1lcyA9IHsgLi4uZGljdE5hbWVzIH0gYXMgYW55O1xyXG4gICAgICAgIG5ld05hbWVzW2RpY3ROYW1lXSA9IHZhbHVlT3B0aW9uLmxhYmVsO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgZGljdE5hbWVzOiBuZXdOYW1lcyxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKHByb3BzLm9uQ2hhbmdlKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgcHJvcHMub25DaGFuZ2UgPT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UodmFsdWUsIHZhbHVlT3B0aW9uLCBkYXRhKTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcHJvcHMub25DaGFuZ2UgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIGNvbnN0IGV2ZW50T3B0aW9uID0ge1xyXG4gICAgICAgICAgdmFsdWUsXHJcbiAgICAgICAgICBkYXRhLFxyXG4gICAgICAgICAgZm9ybVJlZjogdGhpcy5mb3JtUmVmLFxyXG4gICAgICAgICAgZnVuY3M6IHRoaXMucHJvcHMuZnVuY3MgfHwge30sXHJcbiAgICAgICAgICByZWZzOiB0aGlzLnJlZkxpc3QsXHJcbiAgICAgICAgICBwYWdlUmVmOiB0aGlzLnByb3BzLnBhZ2VSZWYsXHJcbiAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgY29uc3QgVXRpbHMgPSB0aGlzLnByb3BzLlV0aWxzIHx8IHt9O1xyXG4gICAgICAgIGlmICh0eXBlID09IFwiU2VsZWN0XCIpIHtcclxuICAgICAgICAgIGV2ZW50T3B0aW9uLnZhbHVlT3B0aW9uID0gdmFsdWVPcHRpb247XHJcbiAgICAgICAgICBldmVudE9wdGlvbi5kYXRhID0gZGF0YTtcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gXCJEYXRlUGlja2VyXCIgfHwgdHlwZSA9PSBcIlJhbmdlUGlja2VyXCIpIHtcclxuICAgICAgICAgIGV2ZW50T3B0aW9uLnZhbHVlU3RyID0gdmFsdWVPcHRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHNlbGZGdW5jID0gbmV3IEZ1bmN0aW9uKFwiZXZlbnRPcHRpb25cIiwgXCJVdGlsc1wiLCBwcm9wcy5vbkNoYW5nZSk7XHJcbiAgICAgICAgc2VsZkZ1bmMoZXZlbnRPcHRpb24sIFV0aWxzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVuZGVyRm9ybShmb3JtcywgbGFiZWwpIHtcclxuICAgIGNvbnN0IG5ld1ZhbGlkOiBhbnlbXSA9IFtdO1xyXG4gICAgY29uc3QgeyBmb3JtVHlwZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgc3RvcmVQcmVmaXggfSA9IGNvbmZpZygpO1xyXG4gICAgbGV0IGF1dG9UeXBlID0gZ2V0TG9jYWxTdG9yZShcclxuICAgICAgXCJmb3JtVHlwZVwiLFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4IDogXCJuc2MtaG9tZVwiLFxyXG4gICAgKTtcclxuICAgIGF1dG9UeXBlID0gYXV0b1R5cGUgPyBhdXRvVHlwZSA6IG51bGw7XHJcbiAgICBjb25zb2xlLmxvZyhcImZvcm1zXCIsIFsuLi5mb3Jtc10pO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPFJvdyBndXR0ZXI9ezI0fT5cclxuICAgICAgICB7Zm9ybXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGl0ZW1Qcm9wcyA9IGl0ZW0ucHJvcHMgfHwge307XHJcbiAgICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCB8fCBpdGVtUHJvcHMudmFsdWVGb3JtYXQpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRlVmFsdWVGb3JtYXRbaXRlbS5uYW1lXSA9XHJcbiAgICAgICAgICAgICAgaXRlbVByb3BzLmZvcm1hdCB8fCBpdGVtUHJvcHMudmFsdWVGb3JtYXQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCkge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXRbaXRlbS5uYW1lXSA9IGl0ZW1Qcm9wcy5mb3JtYXQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaXRlbS50eXBlID09IFwiUmFuZ2VQaWNrZXJcIiAmJiBpdGVtLm5hbWUuc3BsaXQoXCIsXCIpLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5yYW5nZXJEYXRlW2l0ZW0ubmFtZV0gPSBpdGVtLm5hbWUuc3BsaXQoXCIsXCIpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgbGV0IGFsbG93Q2hhcnMgPSBpdGVtLnByb3BzPy5hbGxvd0NoYXJzIHx8IGZhbHNlO1xyXG4gICAgICAgICAgbGV0IGNoaWxkcmVuID0gaXRlbS5wcm9wcz8uY2hpbGRyZW47XHJcblxyXG4gICAgICAgICAgbGV0IHByb3BzID0ge1xyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcjogYOivt+i+k+WFpSR7aXRlbS5sYWJlbH1gLFxyXG4gICAgICAgICAgICAuLi5pdGVtLnByb3BzLFxyXG4gICAgICAgICAgICBvbkNoYW5nZTogdGhpcy52YWx1ZUNoYW5nZS5iaW5kKFxyXG4gICAgICAgICAgICAgIHRoaXMsXHJcbiAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgICAgICAgZGljdE5hbWU6IGl0ZW0uZGljdE5hbWUsXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB7IC4uLml0ZW0ucHJvcHMgfSxcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICAgIHByb3BzLmFsbG93Q2hhcnMgPSB0cnVlOyAvL2Zvcm0uaXRlbSDkvb/nlKhpbnB1dOe7hOS7tmFsbG93Q2hhcnPlv4Xpobvpu5jorqR0cnVlLOS4jeeEtui+k+WFpeeJueauiuWtl+espuaLv+WIsOeahOWAvOS4jeWvuVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgZGVsZXRlIHByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgZGVsZXRlIHByb3BzLmZvcm1hdDtcclxuICAgICAgICAgIGRlbGV0ZSBwcm9wcy5kYXRhVHlwZTtcclxuICAgICAgICAgIGRlbGV0ZSBwcm9wcy5jaGlsZHJlbjtcclxuICAgICAgICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgICAgICAgIHByb3BzLmRpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgICAgcHJvcHMucGxhY2Vob2xkZXIgPSBcIlwiO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKChpdGVtLnJ1bGVzICYmIGl0ZW0ucnVsZXMubGVuZ3RoID4gMCkgfHwgaXRlbS5yZXF1aXJlZCA9PT0gdHJ1ZSkge1xyXG4gICAgICAgICAgICBuZXdWYWxpZC5wdXNoKGl0ZW0ubmFtZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoaW5kZXggKyAxID09PSBmb3Jtcy5sZW5ndGgpIHtcclxuICAgICAgICAgICAgdGhpcy52YWxpZCA9IG5ld1ZhbGlkO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29uc3QgaXRlbVJlZjogYW55ID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICAgICAgICAgIHRoaXMucmVmTGlzdFtpdGVtLm5hbWVdID0gaXRlbVJlZjtcclxuICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgZm9ybVR5cGUgPT0gXCJkcmF3ZXJcIiB8fFxyXG4gICAgICAgICAgICAoZm9ybVR5cGUgPT0gXCJhdXRvXCIgJiYgYXV0b1R5cGUgPT0gXCJkcmF3ZXJcIilcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBpdGVtLnNwYW4gPSAyNDtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChpdGVtLnR5cGUgIT09IFwiVXBsb2FkXCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9XHJcbiAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogaXRlbS5zaG93ICE9PSBmYWxzZSA/IFwiYmxvY2tcIiA6IFwibm9uZVwiIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbVxyXG4gICAgICAgICAgICAgICAgICBsYWJlbD17aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICBydWxlcz17aXRlbS5ydWxlc31cclxuICAgICAgICAgICAgICAgICAgYWxsb3dDaGFycz17YWxsb3dDaGFyc31cclxuICAgICAgICAgICAgICAgICAgY29tcG9uZW50TmFtZT17aXRlbS50eXBlID8gaXRlbS50eXBlIDogXCJJbnB1dFwifVxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZD17aXRlbS5yZXF1aXJlZH1cclxuICAgICAgICAgICAgICAgICAgdHlwZT17aXRlbS5wcm9wcz8udHlwZX1cclxuICAgICAgICAgICAgICAgICAgbm9TdHlsZT17aXRlbS5ub1N0eWxlIHx8IGZhbHNlfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICB7aXRlbS5mb3JtUmVuZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgPyBpdGVtLmZvcm1SZW5kZXIocHJvcHMpXHJcbiAgICAgICAgICAgICAgICAgICAgOiBnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWY6IGl0ZW1SZWYsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cclxuICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZUZvcm1hdC5wdXNoKGl0ZW0ubmFtZSk7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgc3Bhbj17aXRlbS5zcGFuIHx8IDEyfVxyXG4gICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6IGl0ZW0uc2hvdyA/IFwibm9uZVwiIDogXCJibG9ja1wiIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPEZvcm0uSXRlbVxyXG4gICAgICAgICAgICAgICAgICBsYWJlbD17aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICBydWxlcz17aXRlbS5ydWxlc31cclxuICAgICAgICAgICAgICAgICAgYWxsb3dDaGFycz17YWxsb3dDaGFyc31cclxuICAgICAgICAgICAgICAgICAgdHlwZT17aXRlbS5wcm9wcz8udHlwZX1cclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2l0ZW0ucmVxdWlyZWR9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHtpdGVtLmZvcm1SZW5kZXIgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5mb3JtUmVuZGVyKHByb3BzKVxyXG4gICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgIDxVcGxvYWRcclxuICAgICAgICAgICAgICAgICAgICAgIGZpbGVMaXN0PXt0aGlzLnN0YXRlLmZpbGVMaXN0W2l0ZW0ubmFtZV0gfHwgW119XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkxpc3RDaGFuZ2U9eyhsaXN0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVMaXN0OiB7IC4uLmZpbGVMaXN0LCBbaXRlbS5uYW1lXTogbGlzdCB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdD17e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93RG93bmxvYWRJY29uOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93UmVtb3ZlSWNvbjogbGFiZWwgIT09IFwi5p+l55yLXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXtpdGVtUmVmfVxyXG4gICAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtjaGlsZHJlblxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IGNoaWxkcmVuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogbGFiZWwgIT09IFwi5p+l55yLXCIgJiYgPEJ1dHRvbj7kuIrkvKDmlofku7Y8L0J1dHRvbj59XHJcbiAgICAgICAgICAgICAgICAgICAgPC9VcGxvYWQ+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cclxuICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KX1cclxuICAgICAgPC9Sb3c+XHJcbiAgICApO1xyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGZvcm1zID0gW10sXHJcbiAgICAgIHByb3BzID0ge30sXHJcbiAgICAgIGZvb3RlciA9IHRydWUsXHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBmb3JtVHlwZSA9IFwicGFnZVwiLFxyXG4gICAgICB0aXRsZSA9IFwiXCIsXHJcbiAgICAgIG1vZGFsUHJvcHM6IGRlZmF1bHRNb2RhbFByb3BzID0ge30sXHJcbiAgICAgIGRyYXdlclByb3BzOiBkZWZhdWx0RHJhd2VyUHJvcHMsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgbG9hZGluZywgbGFiZWwgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBsZXQgc2VsZkJ1dHRvbnMgPSBbXSBhcyBhbnk7XHJcbiAgICBsZXQgc2VsZlBhbmVzID0gW10gYXMgYW55O1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaXRlbSkpIHtcclxuICAgICAgICAgIGl0ZW0ubWFwKChjaGlsZCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoY2hpbGQ/LnByb3BzPy5wYWdlVHlwZSA9PSBcImZvcm1QYW5lXCIpIHtcclxuICAgICAgICAgICAgICB0eXBlb2YgaXRlbSA9PSBcIm9iamVjdFwiICYmIHNlbGZQYW5lcy5wdXNoKGNoaWxkKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0eXBlb2YgaXRlbSA9PSBcIm9iamVjdFwiICYmIHNlbGZCdXR0b25zLnB1c2goY2hpbGQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKGl0ZW0/LnByb3BzPy5wYWdlVHlwZSA9PSBcImZvcm1QYW5lXCIpIHtcclxuICAgICAgICAgICAgdHlwZW9mIGl0ZW0gPT0gXCJvYmplY3RcIiAmJiBzZWxmUGFuZXMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHR5cGVvZiBpdGVtID09IFwib2JqZWN0XCIgJiYgc2VsZkJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICBjb25zdCB7IHByb3BzIH06IGFueSA9IGNoaWxkcmVuO1xyXG4gICAgICBpZiAocHJvcHM/LnBhZ2VUeXBlID09IFwiZm9ybVBhbmVcIikge1xyXG4gICAgICAgIHR5cGVvZiBjaGlsZHJlbiA9PSBcIm9iamVjdFwiICYmIHNlbGZQYW5lcy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0eXBlb2YgY2hpbGRyZW4gPT0gXCJvYmplY3RcIiAmJiBzZWxmQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbGV0IG1vZGFsUHJvcHMgPSB7XHJcbiAgICAgIHRpdGxlOiBsYWJlbCArIHRpdGxlLFxyXG4gICAgICBvbk9rOiB0aGlzLm9uU3VibWl0LmJpbmQodGhpcyksXHJcbiAgICAgIG9uQ2FuY2VsOiB0aGlzLmhpZGUuYmluZCh0aGlzKSxcclxuICAgICAgb2tCdXR0b25Qcm9wczogeyBsb2FkaW5nOiBsb2FkaW5nIH0sXHJcbiAgICAgIGNlbnRlcmVkOiB0cnVlLFxyXG4gICAgICB3aWR0aDogXCI1MHZ3XCIsXHJcbiAgICAgIGZvb3RlckJ1dHRvbjogc2VsZkJ1dHRvbnMsXHJcbiAgICAgIC4uLmRlZmF1bHRNb2RhbFByb3BzLFxyXG4gICAgfSBhcyBhbnk7XHJcblxyXG4gICAgbGV0IGRyYXdlclByb3BzID0ge1xyXG4gICAgICBvbk9rOiB0aGlzLm9uU3VibWl0LmJpbmQodGhpcyksXHJcbiAgICAgIG9uQ2xvc2U6IHRoaXMuaGlkZS5iaW5kKHRoaXMpLFxyXG4gICAgICB3aWR0aDogNjUwLFxyXG4gICAgICBmb290ZXJCdXR0b246IHNlbGZCdXR0b25zLFxyXG4gICAgICAuLi5kZWZhdWx0RHJhd2VyUHJvcHMsXHJcbiAgICB9IGFzIGFueTtcclxuICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgIG1vZGFsUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgICAgZHJhd2VyUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZVZhbHVlRm9ybWF0ID0ge307XHJcbiAgICB0aGlzLmRhdGVGb3JtYXQgPSB7fTtcclxuICAgIHRoaXMuZmlsZUZvcm1hdCA9IFtdO1xyXG4gICAgbGV0IG5ld0Zvcm1zT2JqID0ge30gYXMgYW55O1xyXG4gICAgbGV0IGZvcm1Hcm91cHMgPSBbXSBhcyBhbnk7XHJcbiAgICBsZXQgb3RoZXJHcnVwcyA9IFtdIGFzIGFueTtcclxuICAgIGxldCBzaG93Rm9ybXMgPSBbXSBhcyBhbnk7XHJcbiAgICAvL+WkhOeQhuihqOWNleaVsOaNrlxyXG4gICAgZm9ybXMubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgc2hvd0Zvcm1zLnB1c2goaXRlbSk7XHJcbiAgICAgIGlmIChpdGVtLmdyb3VwTmFtZSAmJiBmb3JtR3JvdXBzLmluZGV4T2YoaXRlbS5ncm91cE5hbWUpIDwgMCkge1xyXG4gICAgICAgIGZvcm1Hcm91cHMucHVzaChpdGVtLmdyb3VwTmFtZSk7XHJcbiAgICAgIH0gZWxzZSBpZiAoIWl0ZW0uZ3JvdXBOYW1lKSB7XHJcbiAgICAgICAgb3RoZXJHcnVwcy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGlmIChmb3JtR3JvdXBzLmxlbmd0aCA+IDApIHtcclxuICAgICAgZm9ybUdyb3Vwcy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGxldCBncm91cEZvcm1zID0gW10gYXMgYW55O1xyXG4gICAgICAgIHNob3dGb3Jtcy5tYXAoKGZvcm06IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZvcm0uZ3JvdXBOYW1lID09IGl0ZW0pIHtcclxuICAgICAgICAgICAgZ3JvdXBGb3Jtcy5wdXNoKGZvcm0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIG5ld0Zvcm1zT2JqW2l0ZW1dID0gZ3JvdXBGb3JtcztcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChvdGhlckdydXBzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBuZXdGb3Jtc09ialtcIm5vR3JvdXBOYW1lXCJdID0gb3RoZXJHcnVwcztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgUGFuZVdpdGhvdXRQYWdlVHlwZSA9IChQYW5lLCBwcm9wcykgPT4ge1xyXG4gICAgICBjb25zdCB7IHBhZ2VUeXBlLCAuLi5jbGVhblByb3BzIH0gPSBwcm9wcztcclxuICAgICAgcmV0dXJuIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGFuZS50eXBlLCBjbGVhblByb3BzKTtcclxuICAgIH07XHJcbiAgICAvL+iHquWumuS5ieaMiemSrlxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPEZvcm1cclxuICAgICAgICByZWY9e3RoaXMuZm9ybVJlZn1cclxuICAgICAgICBzaG93TW9kZWw9e3RoaXMucHJvcHMuZm9ybVR5cGUgPT0gXCJwYWdlXCIgPyBudWxsIDogdGhpcy5wcm9wcy5mb3JtVHlwZX1cclxuICAgICAgICBtb2RhbFByb3BzPXt7IC4uLm1vZGFsUHJvcHMgfX1cclxuICAgICAgICBkcmF3ZXJQcm9wcz17eyAuLi5kcmF3ZXJQcm9wcyB9fVxyXG4gICAgICAgIC8vIGxhYmVsQ29sPXt7IGZsZXg6IFwiMTAwcHhcIiB9fVxyXG4gICAgICAgIC8vIHdyYXBwZXJDb2w9e3sgZmxleDogXCIxNXZ3XCIgfX1cclxuICAgICAgICBvblZhbHVlc0NoYW5nZT17KGNoYW5nZWRWYWx1ZXMsIGFsbFZhbHVlcykgPT4ge1xyXG4gICAgICAgICAgY29uc3QgeyBvbkZvcm1DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgICBvbkZvcm1DaGFuZ2UgJiYgb25Gb3JtQ2hhbmdlKGNoYW5nZWRWYWx1ZXMsIGFsbFZhbHVlcyk7XHJcbiAgICAgICAgfX1cclxuICAgICAgICBjaGFuZ2VWYWxpZD17dGhpcy5wcm9wcy5jaGFuZ2VWYWxpZH1cclxuICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXBhZ2VcIj5cclxuICAgICAgICAgIHtmb3JtR3JvdXBzLmxlbmd0aCA9PSAwID8gKFxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmZvcm1UeXBlICE9PSBcInBhZ2VcIiA/IChcclxuICAgICAgICAgICAgICB0aGlzLnJlbmRlckZvcm0oc2hvd0Zvcm1zLCBsYWJlbClcclxuICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXBhbmVcIj5cclxuICAgICAgICAgICAgICAgIHt0aGlzLnJlbmRlckZvcm0oc2hvd0Zvcm1zLCBsYWJlbCl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKG5ld0Zvcm1zT2JqKS5tYXAoKGtleSkgPT4ge1xyXG4gICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGtleT17a2V5fSBjbGFzc05hbWU9XCJuc2MtZm9ybS1wYW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgIHtrZXkgIT0gXCJub0dyb3VwTmFtZVwiICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXRpdGxlXCI+e2tleX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJuc2MtZm9ybS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3RoaXMucmVuZGVyRm9ybShuZXdGb3Jtc09ialtrZXldLCBsYWJlbCl9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgICl9XHJcblxyXG4gICAgICAgICAge3NlbGZQYW5lcy5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICAgIHNlbGZQYW5lcy5tYXAoKFBhbmUsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tcGFuZVwiIGtleT17aW5kZXh9PlxyXG4gICAgICAgICAgICAgICAgICB7UGFuZVdpdGhvdXRQYWdlVHlwZShQYW5lLCB7IC4uLlBhbmUucHJvcHMgfSl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgIHtmb3JtVHlwZSA9PT0gXCJwYWdlXCIgJiYgZm9vdGVyID09IHRydWUgJiYgKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmZvb3RlckNsYXNzTmFtZSxcclxuICAgICAgICAgICAgICAgIFwibnNjLWZvcm0tcGFnZS1mb290ZXJcIixcclxuICAgICAgICAgICAgICAgIFtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5mb290ZXJGaXhlZCAhPT0gZmFsc2VcclxuICAgICAgICAgICAgICAgICAgICA/IFwibnNjLWZvcm0tcGFnZS1mb290ZXItZml4ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIDogXCJcIixcclxuICAgICAgICAgICAgICAgIF0sXHJcbiAgICAgICAgICAgICAgICBbdGhpcy5zdGF0ZS53aWR0aCA/IFwibnNjLWZvcm0tcGFnZS1mb290ZXItZml4ZWQtd2lkdGhcIiA6IFwiXCJdLFxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICB7Li4udGhpcy5wcm9wcy5jYW5jZWxCdXR0b25Qcm9wc31cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25DYW5jZWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uQ2FuY2VsKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAg5Y+W5raIXHJcbiAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgey4uLnRoaXMucHJvcHMub2tCdXR0b25Qcm9wc31cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5vblN1Ym1pdCgpO1xyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIGxvYWRpbmc9e3RoaXMuc3RhdGUubG9hZGluZ31cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17XCJuc2MtZm9ybS1wYWdlLWZvb3Rlci1idG5cIn1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICDkv53lrZhcclxuICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICB7c2VsZkJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcIm5zYy1mb3JtLXBhZ2UtZm9vdGVyLWJ0blwifSBrZXk9e2luZGV4fT5cclxuICAgICAgICAgICAgICAgICAgICB7aXRlbX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICB7Zm9ybVR5cGUgPT09IFwicGFnZVwiICYmIGZvb3RlciAhPT0gdHJ1ZSAmJiB0aGlzLnByb3BzLmZvb3Rlcn1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9Gb3JtPlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IEZvcm1QYWdlO1xyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLGFBQWEsUUFBbUIsT0FBTztBQUN2RCxPQUFPQyxJQUFJLE1BQU0saUJBQWlCO0FBQ2xDLFNBQWtCQyxPQUFPLFFBQVEsYUFBYTtBQUM5QyxPQUFPQyxPQUFPLE1BQU0sb0JBQW9CO0FBQ3hDLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsT0FBT0MsR0FBRyxNQUFNLHFCQUFxQjtBQUNyQyxTQUFTQyxVQUFVLEVBQUVDLGFBQWEsUUFBUSxtQkFBbUI7QUFDN0QsT0FBT0MsS0FBSyxNQUFNLE9BQU87QUFDekIsT0FBTyxxQkFBcUI7QUFDNUIsT0FBT0MsTUFBTSxNQUFNLFFBQVE7QUFDM0IsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBQ3RDLE9BQU9DLEdBQUcsTUFBTSxZQUFZO0FBRTVCLE9BQU9DLFVBQVUsTUFBTSxhQUFhO0FBR3BDLFNBQVNDLGtCQUFrQixRQUFRLHNCQUFzQjtBQUN6RCxPQUFPQyxNQUFNLE1BQU0sY0FBYztBQWdDakMsTUFBTUMsUUFB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
|