nsc-react-component 4.0.5 → 4.0.6
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/page/BasePage/index.d.ts +2 -2
- package/lib/page/BasePage/index.js +66 -41
- package/lib/page/BasePage/index.js.map +1 -1
- package/lib/page/FormPage/index.d.ts +2 -2
- package/lib/page/FormPage/index.js +14 -4
- package/lib/page/FormPage/index.js.map +1 -1
- package/lib/page/HeaderSearch/index.js +3 -3
- package/lib/page/HeaderSearch/index.js.map +1 -1
- package/lib/page/SettingTable/index.js +11 -118
- package/lib/page/SettingTable/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -42,6 +42,7 @@ class FormPage extends PureComponent {
|
|
|
42
42
|
//表单显示
|
|
43
43
|
show(orgValue) {
|
|
44
44
|
let editorflag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "add";
|
|
45
|
+
let callBack = arguments.length > 2 ? arguments[2] : undefined;
|
|
45
46
|
let label = "新增";
|
|
46
47
|
if (orgValue && editorflag == "editor") {
|
|
47
48
|
label = "编辑";
|
|
@@ -56,14 +57,22 @@ class FormPage extends PureComponent {
|
|
|
56
57
|
var _this$formRef$current;
|
|
57
58
|
let value = this.convertValue(orgValue, label);
|
|
58
59
|
//处理文件数据
|
|
59
|
-
(_this$formRef$current = this.formRef.current) === null || _this$formRef$current === void 0 || _this$formRef$current.showForm(value
|
|
60
|
+
(_this$formRef$current = this.formRef.current) === null || _this$formRef$current === void 0 || _this$formRef$current.showForm(value, {
|
|
61
|
+
afterRender: () => {
|
|
62
|
+
callBack && callBack();
|
|
63
|
+
}
|
|
64
|
+
});
|
|
60
65
|
});
|
|
61
66
|
} else {
|
|
62
67
|
this.setState({
|
|
63
68
|
label: label
|
|
64
69
|
}, () => {
|
|
65
70
|
var _this$formRef$current2;
|
|
66
|
-
(_this$formRef$current2 = this.formRef.current) === null || _this$formRef$current2 === void 0 || _this$formRef$current2.showForm(this.props.defaultValue
|
|
71
|
+
(_this$formRef$current2 = this.formRef.current) === null || _this$formRef$current2 === void 0 || _this$formRef$current2.showForm(this.props.defaultValue, {
|
|
72
|
+
afterRender: () => {
|
|
73
|
+
callBack && callBack();
|
|
74
|
+
}
|
|
75
|
+
});
|
|
67
76
|
});
|
|
68
77
|
}
|
|
69
78
|
}
|
|
@@ -93,7 +102,8 @@ class FormPage extends PureComponent {
|
|
|
93
102
|
}
|
|
94
103
|
showForm(orgValue) {
|
|
95
104
|
let editorflag = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "add";
|
|
96
|
-
|
|
105
|
+
let callBack = arguments.length > 2 ? arguments[2] : undefined;
|
|
106
|
+
this.show(orgValue, editorflag, callBack);
|
|
97
107
|
}
|
|
98
108
|
setLoading(loading) {
|
|
99
109
|
this.setState({
|
|
@@ -551,4 +561,4 @@ class FormPage extends PureComponent {
|
|
|
551
561
|
}
|
|
552
562
|
}
|
|
553
563
|
export default FormPage;
|
|
554
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiZ2V0Tm9kZSIsIm1lc3NhZ2UiLCJDb2wiLCJSb3ciLCJpc0VtcHR5T2JqIiwiZGF5anMiLCJsb2Rhc2giLCJCdXR0b24iLCJVcGxvYWQiLCJjbHMiLCJGb3JtUGFnZSIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwibG9hZGluZyIsImxhYmVsIiwiZWRpdG9yRmxhZyIsInZhbHVlIiwiZGljdE5hbWVzIiwiZmlsZUxpc3QiLCJzaG93Iiwib3JnVmFsdWUiLCJlZGl0b3JmbGFnIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwic2V0U3RhdGUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQiLCJjb252ZXJ0VmFsdWUiLCJmb3JtUmVmIiwiY3VycmVudCIsInNob3dGb3JtIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50MiIsInByb3BzIiwiZGVmYXVsdFZhbHVlIiwiaGlkZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDMiLCJvbkhpZGVGb3JtIiwiaGlkZUZvcm0iLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ0Iiwic2V0TG9hZGluZyIsImdldEZvcm1WYWx1ZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDUiLCJzdGF0ZSIsImZvcm1WYWx1ZSIsImdldEZpZWxkc1ZhbHVlIiwiZGF0YSIsIl9vYmplY3RTcHJlYWQiLCJmaWxlRm9ybWF0IiwibmV3RmlsZUxpc3QiLCJtYXAiLCJpdGVtIiwiZ2V0RmlsZUxpc3QiLCJzdWJtaXRGbGFnIiwiZXJyb3IiLCJkYXRlVmFsdWVGb3JtYXQiLCJrZXkiLCJvbGRkYXRhIiwiQXJyYXkiLCJpc0FycmF5IiwiZm9ybWF0IiwiaWQiLCJ0eXBlIiwidmFsdWVzIiwiY2xvbmVEZWVwIiwiZGF0ZUZvcm1hdCIsInNldEZvcm1WYWx1ZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDYiLCJuZXdWYWx1ZSIsInNldEZpZWxkc1ZhbHVlIiwiZG9TdWJtaXQiLCJmb3JtZGF0YSIsIl90aGlzJGZvcm1SZWYkY3VycmVudDciLCJzdWJtaXRVcmwiLCJzdWJtaXRQYXJhbXMiLCJjYWxsQmFjayIsInJlcXVlc3RPYmplY3QiLCJyZXF1ZXN0Q29uZmlnIiwiYWRkVXJsIiwiZWRpdG9yVXJsIiwiYWRkUGFyYW1zIiwiZWRpdG9yUGFyYW1zIiwidXJsIiwicGFyYW1zIiwiVXRpbHMiLCJmdW5jIiwiRnVuY3Rpb24iLCJjb252ZXJQYXJhbXMiLCJjb25zb2xlIiwib3RoZXJQYXJhbXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfZXhjbHVkZWQiLCJvblN1Ym1pdCIsIm5vVW5kZWZpbmVkIiwicmVzIiwiY29kZSIsInN1Y2Nlc3MiLCJvYmoiLCJmaWxlSWQiLCJmaWxlTmFtZSIsInN0YXR1cyIsInB1c2giLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ4IiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50OSIsInZhbGlkIiwidmFsaWRhdGVGaWVsZHMiLCJ0aGVuIiwiY2F0Y2giLCJlcnJvckluZm8iLCJ2YWx1ZUNoYW5nZSIsIl9yZWYiLCJ2YWx1ZU9wdGlvbiIsImRpY3ROYW1lIiwibmV3TmFtZXMiLCJvbkNoYW5nZSIsImV2ZW50T3B0aW9uIiwiZnVuY3MiLCJyZWZzIiwicmVmTGlzdCIsInZhbHVlU3RyIiwic2VsZkZ1bmMiLCJyZW5kZXJGb3JtIiwiZm9ybXMiLCJuZXdWYWxpZCIsImNyZWF0ZUVsZW1lbnQiLCJndXR0ZXIiLCJpbmRleCIsIl9pdGVtJHByb3BzIiwiaXRlbVByb3BzIiwidmFsdWVGb3JtYXQiLCJuYW1lIiwiYWxsb3dDaGFycyIsInBsYWNlaG9sZGVyIiwiY29uY2F0IiwiYmluZCIsImRhdGFUeXBlIiwiZGlzYWJsZWQiLCJydWxlcyIsInJlcXVpcmVkIiwiaXRlbVJlZiIsIl9pdGVtJHByb3BzMiIsInNwYW4iLCJJdGVtIiwiY29tcG9uZW50TmFtZSIsInJlZiIsIl9pdGVtJHByb3BzMyIsIl9leHRlbmRzIiwib25MaXN0Q2hhbmdlIiwibGlzdCIsInNob3dVcGxvYWRMaXN0Iiwic2hvd0Rvd25sb2FkSWNvbiIsInNob3dSZW1vdmVJY29uIiwiY2hpbGRyZW4iLCJyZW5kZXIiLCJmb290ZXIiLCJtb2RhbFByb3BzIiwidGl0bGUiLCJvbk9rIiwib25DYW5jZWwiLCJva0J1dHRvblByb3BzIiwiY2VudGVyZWQiLCJ3aWR0aCIsImRyYXdlclByb3BzIiwib25DbG9zZSIsIm5ld0Zvcm1zT2JqIiwiZm9ybUdyb3VwcyIsIm90aGVyR3J1cHMiLCJncm91cE5hbWUiLCJpbmRleE9mIiwiZ3JvdXBGb3JtcyIsImZvcm0iLCJzZWxmQnV0dG9ucyIsInNob3dNb2RlbCIsImZvcm1UeXBlIiwibGFiZWxDb2wiLCJmbGV4Iiwid3JhcHBlckNvbCIsIm9uVmFsdWVzQ2hhbmdlIiwiY2hhbmdlZFZhbHVlcyIsImFsbFZhbHVlcyIsIm9uRm9ybUNoYW5nZSIsImNoYW5nZVZhbGlkIiwiY2xhc3NOYW1lIiwiT2JqZWN0Iiwia2V5cyIsImZvb3RlckNsYXNzTmFtZSIsImNhbmNlbEJ1dHRvblByb3BzIiwib25DbGljayJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvRm9ybVBhZ2UvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50LCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IEZvcm0gZnJvbSBcIi4uLy4uL2Jhc2UvZm9ybVwiO1xyXG5pbXBvcnQgeyBnZXRMZXNzLCBnZXROb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCBtZXNzYWdlIGZyb20gXCIuLi8uLi9iYXNlL21lc3NhZ2VcIjtcclxuaW1wb3J0IENvbCBmcm9tIFwiLi4vLi4vYmFzZS9ncmlkL0NvbFwiO1xyXG5pbXBvcnQgUm93IGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvUm93XCI7XHJcbmltcG9ydCB7IGlzRW1wdHlPYmogfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IGRheWpzIGZyb20gXCJkYXlqc1wiO1xyXG5pbXBvcnQgXCIuL2luZGV4Lm1vZHVsZS5sZXNzXCI7XHJcbmltcG9ydCBsb2Rhc2ggZnJvbSBcImxvZGFzaFwiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi8uLi9iYXNlL2J1dHRvblwiO1xyXG5pbXBvcnQgVXBsb2FkIGZyb20gJy4uLy4uL2Jhc2UvdXBsb2FkJ1xyXG5pbXBvcnQgY2xzIGZyb20gJ2NsYXNzbmFtZXMnXHJcbmltcG9ydCB7IElGb3JtUHJvcHMgfSBmcm9tIFwic3JjL2NvbXBvbmVudHMvYmFzZS9mb3JtL0Zvcm1cIjtcclxuZXhwb3J0IGludGVyZmFjZSBGb3JtUGFnZVByb3BzIHtcclxuICBmb3Jtcz86IEFycmF5PGFueT47IC8v5piv5ZCm5pi+56S65pON5L2c5YiXXHJcbiAgc3VibWl0VXJsPzogc3RyaW5nO1xyXG4gIG9uU3VibWl0PzogKHZhbHVlPzogYW55LCBsYWJlbD86IGFueSkgPT4gdm9pZDtcclxuICBmb290ZXJDbGFzc05hbWU/OiBhbnk7XHJcbiAgb2tCdXR0b25Qcm9wcz86IGFueTtcclxuICBjYW5jZWxCdXR0b25Qcm9wcz86IGFueTtcclxuICBmb290ZXI/OiBSZWFjdE5vZGUgfCBib29sZWFuO1xyXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIG9uRm9ybUNoYW5nZT86ICh2YWx1ZT86IGFueSwgYWxsVmFsdWU/OiBhbnkpID0+IHZvaWQ7XHJcbiAgc3VibWl0UGFyYW1zPzogYW55OyAvL+a3u+WKoOWPguaVsO+8jOm7mOiupG1vdGhvZDpwb3N077yMIOWPguaVsOmAmui/h2RhdGHkvKDpgJJcclxuICBmdW5jcz86IGFueTtcclxuICBwcm9wcz86IElGb3JtUHJvcHM7XHJcbiAgcmVxdWVzdE9iamVjdD86IHtcclxuICAgIGFkZFVybD86IHN0cmluZyxcclxuICAgIGVkaXRvclVybD86IHN0cmluZyxcclxuICAgIGFkZFBhcmFtcz86IGFueSxcclxuICAgIGVkaXRvclBhcmFtcz86IGFueVxyXG4gIH1cclxuICByZXF1ZXN0Q29uZmlnPzogYW55XHJcbiAgW3Byb3BzTmFtZTogc3RyaW5nXTogYW55O1xyXG59XHJcbmNsYXNzIEZvcm1QYWdlIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxGb3JtUGFnZVByb3BzLCBhbnk+IHtcclxuICBmb3JtUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBzdGF0ZSA9IHtcclxuICAgIGxvYWRpbmc6IGZhbHNlLFxyXG4gICAgbGFiZWw6IFwiXCIsXHJcbiAgICBlZGl0b3JGbGFnOiB0cnVlLFxyXG4gICAgdmFsdWU6IHt9IGFzIGFueSxcclxuICAgIGRpY3ROYW1lczoge30gYXMgYW55LFxyXG4gICAgZmlsZUxpc3Q6IHt9IGFzIGFueVxyXG4gIH07XHJcbiAgdmFsaWQ6IGFueSA9IFtdO1xyXG4gIGRhdGVWYWx1ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGZpbGVGb3JtYXQgPSBbXSBhcyBhbnk7XHJcbiAgcmVmTGlzdCA9IHt9IGFzIGFueTtcclxuICBzdWJtaXRGbGFnID0gdHJ1ZVxyXG4gIC8v6KGo5Y2V5pi+56S6XHJcbiAgc2hvdyhvcmdWYWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIpIHtcclxuICAgIGxldCBsYWJlbCA9IFwi5paw5aKeXCI7XHJcbiAgICBpZiAob3JnVmFsdWUgJiYgZWRpdG9yZmxhZyA9PSBcImVkaXRvclwiKSB7XHJcbiAgICAgIGxhYmVsID0gXCLnvJbovpFcIjtcclxuICAgIH0gZWxzZSBpZiAob3JnVmFsdWUgJiYgZWRpdG9yZmxhZyA9PSBcImRldGFpbFwiKSB7XHJcbiAgICAgIGxhYmVsID0gXCLmn6XnnItcIjtcclxuICAgIH1cclxuICAgIGlmIChvcmdWYWx1ZSkge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxhYmVsOiBsYWJlbCxcclxuICAgICAgICAgIHZhbHVlOiBvcmdWYWx1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY29udmVydFZhbHVlKG9yZ1ZhbHVlLCBsYWJlbCk7XHJcbiAgICAgICAgICAvL+WkhOeQhuaWh+S7tuaVsOaNrlxyXG4gICAgICAgICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNob3dGb3JtKHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxhYmVsOiBsYWJlbCxcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zaG93Rm9ybSh0aGlzLnByb3BzLmRlZmF1bHRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBoaWRlKGhpZGUgPSB0cnVlKSB7XHJcbiAgICBjb25zdCB7IG9uSGlkZUZvcm0gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAob25IaWRlRm9ybSkge1xyXG4gICAgICBvbkhpZGVGb3JtICYmIG9uSGlkZUZvcm0oKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlLCBmaWxlTGlzdDoge30gfSk7XHJcbiAgICBoaWRlICYmIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gIH1cclxuICBoaWRlRm9ybSgpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSwgZmlsZUxpc3Q6IHt9IH0pO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG4gIHNob3dGb3JtKG9yZ1ZhbHVlPzogYW55LCBlZGl0b3JmbGFnID0gXCJhZGRcIikge1xyXG4gICAgdGhpcy5zaG93KG9yZ1ZhbHVlLCBlZGl0b3JmbGFnKVxyXG4gIH1cclxuICBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBsb2FkaW5nIH0pO1xyXG4gIH1cclxuICBnZXRGb3JtVmFsdWUoKSB7XHJcbiAgICBjb25zdCB7IGxhYmVsLCB2YWx1ZSwgZGljdE5hbWVzLCBmaWxlTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuZm9ybVJlZi5jdXJyZW50Py5nZXRGaWVsZHNWYWx1ZSgpO1xyXG4gICAgbGV0IGRhdGEgPSB7IC4uLmZvcm1WYWx1ZSwgLi4uZGljdE5hbWVzIH07XHJcbiAgICBpZiAodGhpcy5maWxlRm9ybWF0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IG5ld0ZpbGVMaXN0ID0ge30gYXMgYW55O1xyXG4gICAgICB0aGlzLmZpbGVGb3JtYXQubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgaWYgKGZpbGVMaXN0W2l0ZW1dLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgICBuZXdGaWxlTGlzdFtpdGVtXSA9IG51bGw7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGlmICghZm9ybVZhbHVlW2l0ZW1dKSB7XHJcbiAgICAgICAgICAgIG5ld0ZpbGVMaXN0W2l0ZW1dID0gdGhpcy5nZXRGaWxlTGlzdChmaWxlTGlzdFtpdGVtXSB8fCBbXSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCAuLi5uZXdGaWxlTGlzdCB9O1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnN1Ym1pdEZsYWcpIHtcclxuICAgICAgbWVzc2FnZS5lcnJvcign6K+3562J5b6F5omA5pyJ5paH5Lu25LiK5Lyg5a6M5oiQ77yBJylcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCFpc0VtcHR5T2JqKHRoaXMuZGF0ZVZhbHVlRm9ybWF0KSkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlVmFsdWVGb3JtYXQpIHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IGRhdGFba2V5XTtcclxuICAgICAgICBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgZGF0YVtrZXldID0gW1xyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMF0pLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzFdKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBkYXRhW2tleV0gPSBkYXlqcyhvbGRkYXRhKS5mb3JtYXQodGhpcy5kYXRlVmFsdWVGb3JtYXRba2V5XSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAobGFiZWwgPT0gXCLnvJbovpFcIikge1xyXG4gICAgICBkYXRhID0geyAuLi5kYXRhLCBpZDogdmFsdWU/LmlkIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZGF0YTtcclxuICB9XHJcbiAgY29udmVydFZhbHVlKHZhbHVlLCB0eXBlKSB7XHJcbiAgICBsZXQgdmFsdWVzID0gbG9kYXNoLmNsb25lRGVlcCh2YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5maWxlRm9ybWF0Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGZpbGVMaXN0ID0ge30gYXMgYW55O1xyXG4gICAgICB0aGlzLmZpbGVGb3JtYXQubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgbGV0IG9sZGRhdGEgPSB2YWx1ZXNbaXRlbV07XHJcbiAgICAgICAgaWYgKG9sZGRhdGEgJiYgQXJyYXkuaXNBcnJheShvbGRkYXRhKSkge1xyXG4gICAgICAgICAgZmlsZUxpc3RbaXRlbV0gPSB0aGlzLmdldEZpbGVMaXN0KG9sZGRhdGEgfHwgW10sIHR5cGUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBmaWxlTGlzdFtpdGVtXSA9IFtdXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICB0aGlzLnNldFN0YXRlKHsgZmlsZUxpc3Q6IGZpbGVMaXN0IH0pXHJcbiAgICB9XHJcbiAgICAvL+WkhOeQhuaXpeacn+agvOW8j+aVsOaNrlxyXG4gICAgaWYgKCFpc0VtcHR5T2JqKHRoaXMuZGF0ZUZvcm1hdCkpIHtcclxuICAgICAgZm9yIChsZXQga2V5IGluIHRoaXMuZGF0ZUZvcm1hdCkge1xyXG4gICAgICAgIGxldCBvbGRkYXRhID0gdmFsdWVzW2tleV07XHJcbiAgICAgICAgaWYgKG9sZGRhdGEpIHtcclxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9sZGRhdGEpKSB7XHJcbiAgICAgICAgICAgIHZhbHVlc1trZXldID0gW1xyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMF0sIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgICBkYXlqcyhvbGRkYXRhWzFdLCB0aGlzLmRhdGVGb3JtYXRba2V5XSksXHJcbiAgICAgICAgICAgIF07XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB2YWx1ZXNba2V5XSA9IGRheWpzKG9sZGRhdGEsIHRoaXMuZGF0ZUZvcm1hdFtrZXldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZXNcclxuICB9XHJcbiAgc2V0Rm9ybVZhbHVlKHZhbHVlLCB0eXBlKSB7XHJcbiAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuY29udmVydFZhbHVlKHZhbHVlLCB0eXBlKTtcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zZXRGaWVsZHNWYWx1ZShuZXdWYWx1ZSk7XHJcbiAgfVxyXG4gIGRvU3VibWl0KGZvcm1kYXRhLCBsYWJlbCkge1xyXG4gICAgY29uc3QgeyBzdWJtaXRVcmwsIHN1Ym1pdFBhcmFtcyA9IHt9LCBjYWxsQmFjaywgcmVxdWVzdE9iamVjdCA9IHt9LCByZXF1ZXN0Q29uZmlnID0ge30gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGFkZFVybCwgZWRpdG9yVXJsLCBhZGRQYXJhbXMsIGVkaXRvclBhcmFtcyB9ID0gcmVxdWVzdE9iamVjdFxyXG4gICAgbGV0IHVybCA9ICcnO1xyXG4gICAgbGV0IHBhcmFtczogYW55ID0ge307XHJcbiAgICBpZiAobGFiZWwgPT0gJ+aWsOWinicpIHtcclxuICAgICAgdXJsID0gYWRkVXJsID8gYWRkVXJsIDogc3VibWl0VXJsO1xyXG4gICAgICBpZiAoYWRkUGFyYW1zICYmIHR5cGVvZiBhZGRQYXJhbXMgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICBjb25zdCBVdGlscyA9IHRoaXMucHJvcHMuVXRpbHMgfHwge31cclxuICAgICAgICBsZXQgZnVuYyA9IG5ldyBGdW5jdGlvbignVXRpbHMnLCBhZGRQYXJhbXMpO1xyXG4gICAgICAgIGxldCBjb252ZXJQYXJhbXMgPSBmdW5jKFV0aWxzKVxyXG4gICAgICAgIHBhcmFtcyA9IGNvbnZlclBhcmFtc1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHBhcmFtcyA9IGFkZFBhcmFtcyA/IGFkZFBhcmFtcyA6IHN1Ym1pdFBhcmFtcztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChsYWJlbCA9PSAn57yW6L6RJykge1xyXG4gICAgICB1cmwgPSBlZGl0b3JVcmwgPyBlZGl0b3JVcmwgOiBzdWJtaXRVcmw7XHJcbiAgICAgIGlmIChlZGl0b3JQYXJhbXMgJiYgdHlwZW9mIGVkaXRvclBhcmFtcyA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgIGNvbnN0IFV0aWxzID0gdGhpcy5wcm9wcy5VdGlscyB8fCB7fVxyXG4gICAgICAgIGxldCBmdW5jID0gbmV3IEZ1bmN0aW9uKCdVdGlscycsIGVkaXRvclBhcmFtcyk7XHJcbiAgICAgICAgbGV0IGNvbnZlclBhcmFtcyA9IGZ1bmMoVXRpbHMpXHJcbiAgICAgICAgcGFyYW1zID0gY29udmVyUGFyYW1zXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcGFyYW1zID0gZWRpdG9yUGFyYW1zID8gZWRpdG9yUGFyYW1zIDogc3VibWl0UGFyYW1zO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoIXVybCkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwi6YWN572uVXJs5LiN6IO95Li656m677yBXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCB7IGRhdGEgPSB7fSwgLi4ub3RoZXJQYXJhbXMgfSA9IHBhcmFtcztcclxuICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5vblN1Ym1pdChcclxuICAgICAgdXJsLFxyXG4gICAgICB7XHJcbiAgICAgICAgZGF0YTogeyAuLi5mb3JtZGF0YSwgLi4uZGF0YSB9LFxyXG4gICAgICAgIG5vVW5kZWZpbmVkOiBsYWJlbCA9PSBcIue8lui+kVwiLFxyXG4gICAgICAgIC4uLnJlcXVlc3RDb25maWcsXHJcbiAgICAgICAgLi4ub3RoZXJQYXJhbXMsXHJcbiAgICAgIH0sXHJcbiAgICAgIChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHsgY29kZSB9ID0gcmVzO1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgICAgICBpZiAoY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MobGFiZWwgKyBcIuaIkOWKn1wiKTtcclxuICAgICAgICAgIHRoaXMuaGlkZSh0cnVlKTtcclxuICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaGlkZShmYWxzZSk7XHJcbiAgICAgIH1cclxuICAgICk7XHJcbiAgfVxyXG4gIGdldEZpbGVMaXN0KGRhdGEsIGxhYmVsID0gJ+aWsOWinicpIHtcclxuICAgIHRoaXMuc3VibWl0RmxhZyA9IHRydWVcclxuICAgIGxldCBmaWxlTGlzdCA9IFtdIGFzIGFueTtcclxuICAgIGlmIChkYXRhICYmIGRhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICBkYXRhLm1hcCgoaXRlbSkgPT4ge1xyXG4gICAgICAgIGxldCBvYmogPSB7XHJcbiAgICAgICAgICBmaWxlSWQ6IGl0ZW0uZmlsZUlkLFxyXG4gICAgICAgICAgZmlsZU5hbWU6IGl0ZW0uZmlsZU5hbWUsXHJcbiAgICAgICAgfSBhcyBhbnk7XHJcbiAgICAgICAgaWYgKGxhYmVsID09ICfmn6XnnIsnKSB7XHJcbiAgICAgICAgICBvYmouc3RhdHVzID0gJ2RvbmUnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAobGFiZWwgIT09ICfmn6XnnIsnICYmIGl0ZW0uc3RhdHVzICE9PSAnZG9uZScpIHtcclxuICAgICAgICAgIHRoaXMuc3VibWl0RmxhZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBmaWxlTGlzdC5wdXNoKG9iaik7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZpbGVMaXN0O1xyXG4gIH07XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgY29uc3QgeyBvblN1Ym1pdCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlLCBkaWN0TmFtZXMsIGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBsZXQgdmFsaWQgPSB0aGlzLnZhbGlkO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnRcclxuICAgICAgPy52YWxpZGF0ZUZpZWxkcyh2YWxpZClcclxuICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGxldCBkYXRhID0gdGhpcy5nZXRGb3JtVmFsdWUoKVxyXG4gICAgICAgIGlmICghdGhpcy5zdWJtaXRGbGFnKSB7XHJcbiAgICAgICAgICBtZXNzYWdlLmVycm9yKCfor7fnrYnlvoXmiYDmnInmlofku7bkuIrkvKDlrozmiJDvvIEnKVxyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogdHJ1ZSB9KTtcclxuICAgICAgICBpZiAob25TdWJtaXQpIHtcclxuICAgICAgICAgIG9uU3VibWl0ICYmIG9uU3VibWl0KGRhdGEsIGxhYmVsKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5kb1N1Ym1pdChkYXRhLCBsYWJlbCk7XHJcbiAgICAgIH0pXHJcbiAgICAgIC5jYXRjaCgoZXJyb3JJbmZvOiBhbnkpID0+IHsgfSk7XHJcbiAgfVxyXG4gIHZhbHVlQ2hhbmdlKHsgdHlwZSwgZGljdE5hbWUgfSwgcHJvcHMsIHZhbHVlLCB2YWx1ZU9wdGlvbiwgZGF0YSkge1xyXG4gICAgaWYgKHZhbHVlT3B0aW9uKSB7XHJcbiAgICAgIGlmIChkaWN0TmFtZSkge1xyXG4gICAgICAgIGNvbnN0IHsgZGljdE5hbWVzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgIGNvbnN0IG5ld05hbWVzID0geyAuLi5kaWN0TmFtZXMgfSBhcyBhbnk7XHJcbiAgICAgICAgbmV3TmFtZXNbZGljdE5hbWVdID0gdmFsdWVPcHRpb24ubGFiZWw7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBkaWN0TmFtZXM6IG5ld05hbWVzLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAocHJvcHMub25DaGFuZ2UpIHtcclxuICAgICAgaWYgKHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgcHJvcHMub25DaGFuZ2UodmFsdWUsIHZhbHVlT3B0aW9uLCBkYXRhKTtcclxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcHJvcHMub25DaGFuZ2UgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICBjb25zdCBldmVudE9wdGlvbiA9IHsgdmFsdWUsIGRhdGEsIGZvcm1SZWY6IHRoaXMuZm9ybVJlZiwgZnVuY3M6IHRoaXMucHJvcHMuZnVuY3MgfHwge30sIHJlZnM6IHRoaXMucmVmTGlzdCB9IGFzIGFueTtcclxuICAgICAgICBjb25zdCBVdGlscyA9IHRoaXMucHJvcHMuVXRpbHMgfHwge31cclxuICAgICAgICBpZiAodHlwZSA9PSAnU2VsZWN0Jykge1xyXG4gICAgICAgICAgZXZlbnRPcHRpb24udmFsdWVPcHRpb24gPSB2YWx1ZU9wdGlvbjtcclxuICAgICAgICAgIGV2ZW50T3B0aW9uLmRhdGEgPSBkYXRhXHJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09ICdEYXRlUGlja2VyJyB8fCB0eXBlID09ICdSYW5nZVBpY2tlcicpIHtcclxuICAgICAgICAgIGV2ZW50T3B0aW9uLnZhbHVlU3RyID0gdmFsdWVPcHRpb247XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHNlbGZGdW5jID0gbmV3IEZ1bmN0aW9uKCdldmVudE9wdGlvbicsICdVdGlscycsIHByb3BzLm9uQ2hhbmdlKTtcclxuICAgICAgICBzZWxmRnVuYyhldmVudE9wdGlvbiwgVXRpbHMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZW5kZXJGb3JtKGZvcm1zLCBsYWJlbCkge1xyXG4gICAgY29uc3QgbmV3VmFsaWQ6IGFueVtdID0gW107XHJcbiAgICByZXR1cm4gPFJvdyBndXR0ZXI9ezI0fT5cclxuICAgICAge2Zvcm1zLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgY29uc3QgaXRlbVByb3BzID0gaXRlbS5wcm9wcyB8fCB7fTtcclxuICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCB8fCBpdGVtUHJvcHMudmFsdWVGb3JtYXQpIHtcclxuICAgICAgICAgIHRoaXMuZGF0ZVZhbHVlRm9ybWF0W2l0ZW0ubmFtZV0gPVxyXG4gICAgICAgICAgICBpdGVtUHJvcHMuZm9ybWF0IHx8IGl0ZW1Qcm9wcy52YWx1ZUZvcm1hdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGl0ZW1Qcm9wcy5mb3JtYXQpIHtcclxuICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdFtpdGVtLm5hbWVdID0gaXRlbVByb3BzLmZvcm1hdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGFsbG93Q2hhcnMgPSBpdGVtLnByb3BzPy5hbGxvd0NoYXJzIHx8IGZhbHNlO1xyXG4gICAgICAgIGxldCBwcm9wcyA9IHtcclxuICAgICAgICAgIHBsYWNlaG9sZGVyOiBg6K+36L6T5YWlJHtpdGVtLmxhYmVsfWAsXHJcbiAgICAgICAgICAuLi5pdGVtLnByb3BzLFxyXG4gICAgICAgICAgb25DaGFuZ2U6IHRoaXMudmFsdWVDaGFuZ2UuYmluZChcclxuICAgICAgICAgICAgdGhpcyxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHR5cGU6IGl0ZW0udHlwZSxcclxuICAgICAgICAgICAgICBkaWN0TmFtZTogaXRlbS5kaWN0TmFtZSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgeyAuLi5pdGVtLnByb3BzIH1cclxuICAgICAgICAgICksXHJcbiAgICAgICAgfTtcclxuICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICBwcm9wcy5hbGxvd0NoYXJzID0gdHJ1ZTsgIC8vZm9ybS5pdGVtIOS9v+eUqGlucHV057uE5Lu2YWxsb3dDaGFyc+W/hemhu+m7mOiupHRydWUs5LiN54S26L6T5YWl54m55q6K5a2X56ym5ou/5Yiw55qE5YC85LiN5a+5XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGRlbGV0ZSBwcm9wcy52YWx1ZUZvcm1hdDtcclxuICAgICAgICBkZWxldGUgcHJvcHMuZm9ybWF0O1xyXG4gICAgICAgIGRlbGV0ZSBwcm9wcy5kYXRhVHlwZTtcclxuICAgICAgICBpZiAobGFiZWwgPT0gXCLmn6XnnItcIikge1xyXG4gICAgICAgICAgcHJvcHMuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgcHJvcHMucGxhY2Vob2xkZXIgPSAnJ1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoKGl0ZW0ucnVsZXMgJiYgaXRlbS5ydWxlcy5sZW5ndGggPiAwKSB8fCBpdGVtLnJlcXVpcmVkID09PSB0cnVlKSB7XHJcbiAgICAgICAgICBuZXdWYWxpZC5wdXNoKGl0ZW0ubmFtZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChpbmRleCArIDEgPT09IGZvcm1zLmxlbmd0aCkge1xyXG4gICAgICAgICAgdGhpcy52YWxpZCA9IG5ld1ZhbGlkO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBpdGVtUmVmOiBhbnkgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpXHJcbiAgICAgICAgdGhpcy5yZWZMaXN0W2l0ZW0ubmFtZV0gPSBpdGVtUmVmXHJcbiAgICAgICAgaWYgKGl0ZW0udHlwZSAhPT0gJ1VwbG9hZCcpIHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxDb2wgc3Bhbj17aXRlbS5zcGFuIHx8IDEyfSBrZXk9e2luZGV4fT5cclxuICAgICAgICAgICAgICA8Rm9ybS5JdGVtXHJcbiAgICAgICAgICAgICAgICBsYWJlbD17aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgIG5hbWU9e2l0ZW0ubmFtZX1cclxuICAgICAgICAgICAgICAgIHJ1bGVzPXtpdGVtLnJ1bGVzfVxyXG4gICAgICAgICAgICAgICAgYWxsb3dDaGFycz17YWxsb3dDaGFyc31cclxuICAgICAgICAgICAgICAgIGNvbXBvbmVudE5hbWU9e2l0ZW0udHlwZSA/IGl0ZW0udHlwZSA6IFwiSW5wdXRcIn1cclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtpdGVtLnJlcXVpcmVkfVxyXG4gICAgICAgICAgICAgICAgdHlwZT17aXRlbS5wcm9wcz8udHlwZX1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7Z2V0Tm9kZShpdGVtLnR5cGUsIHtcclxuICAgICAgICAgICAgICAgICAgcmVmOiBpdGVtUmVmLFxyXG4gICAgICAgICAgICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxyXG4gICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuZmlsZUZvcm1hdC5wdXNoKGl0ZW0ubmFtZSlcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxDb2wgc3Bhbj17aXRlbS5zcGFuIHx8IDEyfSBrZXk9e2luZGV4fT5cclxuICAgICAgICAgICAgICA8Rm9ybS5JdGVtXHJcbiAgICAgICAgICAgICAgICBsYWJlbD17aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgIG5hbWU9e2l0ZW0ubmFtZX1cclxuICAgICAgICAgICAgICAgIHJ1bGVzPXtpdGVtLnJ1bGVzfVxyXG4gICAgICAgICAgICAgICAgYWxsb3dDaGFycz17YWxsb3dDaGFyc31cclxuICAgICAgICAgICAgICAgIHR5cGU9e2l0ZW0ucHJvcHM/LnR5cGV9XHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZD17aXRlbS5yZXF1aXJlZH1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8VXBsb2FkXHJcbiAgICAgICAgICAgICAgICAgIGZpbGVMaXN0PXt0aGlzLnN0YXRlLmZpbGVMaXN0W2l0ZW0ubmFtZV0gfHwgW119XHJcbiAgICAgICAgICAgICAgICAgIG9uTGlzdENoYW5nZT17KGxpc3QpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxlTGlzdDogeyAuLi5maWxlTGlzdCwgW2l0ZW0ubmFtZV06IGxpc3QgfVxyXG4gICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIHNob3dVcGxvYWRMaXN0PXt7IHNob3dEb3dubG9hZEljb246IHRydWUsIHNob3dSZW1vdmVJY29uOiBsYWJlbCAhPT0gJ+afpeeciycgfX1cclxuICAgICAgICAgICAgICAgICAgcmVmPXtpdGVtUmVmfVxyXG4gICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9PlxyXG4gICAgICAgICAgICAgICAgICB7aXRlbS5wcm9wcy5jaGlsZHJlbiA/IGl0ZW0ucHJvcHMuY2hpbGRyZW4gOiAobGFiZWwgIT09ICfmn6XnnIsnICYmIDxCdXR0b24+5LiK5Lyg5paH5Lu2PC9CdXR0b24+KX1cclxuICAgICAgICAgICAgICAgIDwvVXBsb2FkPlxyXG4gICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxyXG4gICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KX1cclxuICAgIDwvUm93PlxyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IGZvcm1zID0gW10sIHByb3BzID0ge30sIGZvb3RlciA9IHRydWUsIGNoaWxkcmVuIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBsb2FkaW5nLCBsYWJlbCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBtb2RhbFByb3BzID0ge1xyXG4gICAgICB0aXRsZTogbGFiZWwsXHJcbiAgICAgIG9uT2s6IHRoaXMub25TdWJtaXQuYmluZCh0aGlzKSxcclxuICAgICAgb25DYW5jZWw6IHRoaXMuaGlkZS5iaW5kKHRoaXMpLFxyXG4gICAgICBva0J1dHRvblByb3BzOiB7IGxvYWRpbmc6IGxvYWRpbmcgfSxcclxuICAgICAgY2VudGVyZWQ6IHRydWUsXHJcbiAgICAgIHdpZHRoOiBcIjUwdndcIixcclxuICAgIH0gYXMgYW55O1xyXG5cclxuXHJcbiAgICBsZXQgZHJhd2VyUHJvcHMgPSB7XHJcbiAgICAgIHRpdGxlOiBsYWJlbCxcclxuICAgICAgb25PazogdGhpcy5vblN1Ym1pdC5iaW5kKHRoaXMpLFxyXG4gICAgICBvbkNsb3NlOiB0aGlzLmhpZGUuYmluZCh0aGlzKSxcclxuICAgICAgd2lkdGg6IFwiNTB2d1wiLFxyXG4gICAgfSBhcyBhbnk7XHJcbiAgICBpZiAobGFiZWwgPT0gXCLmn6XnnItcIikge1xyXG4gICAgICBtb2RhbFByb3BzLmZvb3RlciA9IG51bGw7XHJcbiAgICAgIGRyYXdlclByb3BzLmZvb3RlciA9IG51bGw7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGVWYWx1ZUZvcm1hdCA9IHt9O1xyXG4gICAgdGhpcy5kYXRlRm9ybWF0ID0ge307XHJcbiAgICB0aGlzLmZpbGVGb3JtYXQgPSBbXVxyXG4gICAgbGV0IG5ld0Zvcm1zT2JqID0ge30gYXMgYW55O1xyXG4gICAgbGV0IGZvcm1Hcm91cHMgPSBbXSBhcyBhbnlcclxuICAgIGxldCBvdGhlckdydXBzID0gW10gYXMgYW55XHJcbiAgICAvL+WkhOeQhuihqOWNleaVsOaNrlxyXG4gICAgZm9ybXMubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgaWYgKGl0ZW0uZ3JvdXBOYW1lICYmIGZvcm1Hcm91cHMuaW5kZXhPZihpdGVtLmdyb3VwTmFtZSkgPCAwKSB7XHJcbiAgICAgICAgZm9ybUdyb3Vwcy5wdXNoKGl0ZW0uZ3JvdXBOYW1lKTtcclxuICAgICAgfSBlbHNlIGlmICghaXRlbS5ncm91cE5hbWUpIHtcclxuICAgICAgICBvdGhlckdydXBzLnB1c2goaXRlbSlcclxuICAgICAgfVxyXG4gICAgfSlcclxuICAgIGlmIChmb3JtR3JvdXBzLmxlbmd0aCA+IDApIHtcclxuICAgICAgZm9ybUdyb3Vwcy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGxldCBncm91cEZvcm1zID0gW10gYXMgYW55XHJcbiAgICAgICAgZm9ybXMubWFwKChmb3JtOiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChmb3JtLmdyb3VwTmFtZSA9PSBpdGVtKSB7XHJcbiAgICAgICAgICAgIGdyb3VwRm9ybXMucHVzaChmb3JtKVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgbmV3Rm9ybXNPYmpbaXRlbV0gPSBncm91cEZvcm1zXHJcbiAgICAgIH0pXHJcbiAgICAgIG5ld0Zvcm1zT2JqWydub0dyb3VwTmFtZSddID0gb3RoZXJHcnVwc1xyXG4gICAgfVxyXG4gICAgLy/oh6rlrprkuYnmjInpkq5cclxuICAgIGxldCBzZWxmQnV0dG9ucyA9IFtdIGFzIGFueTtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIHR5cGVvZiBpdGVtID09ICdvYmplY3QnICYmIHNlbGZCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICB0eXBlb2YgY2hpbGRyZW4gPT0gJ29iamVjdCcgJiYgc2VsZkJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8Rm9ybVxyXG4gICAgICAgIHJlZj17dGhpcy5mb3JtUmVmfVxyXG4gICAgICAgIHNob3dNb2RlbD17dGhpcy5wcm9wcy5mb3JtVHlwZX1cclxuICAgICAgICBtb2RhbFByb3BzPXt7IC4uLm1vZGFsUHJvcHMgfX1cclxuICAgICAgICBkcmF3ZXJQcm9wcz17eyAuLi5kcmF3ZXJQcm9wcyB9fVxyXG4gICAgICAgIGxhYmVsQ29sPXt7IGZsZXg6IFwiMTAwcHhcIiB9fVxyXG4gICAgICAgIHdyYXBwZXJDb2w9e3sgZmxleDogXCIxNXZ3XCIgfX1cclxuICAgICAgICBvblZhbHVlc0NoYW5nZT17KGNoYW5nZWRWYWx1ZXMsIGFsbFZhbHVlcykgPT4ge1xyXG4gICAgICAgICAgY29uc3QgeyBvbkZvcm1DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgICBvbkZvcm1DaGFuZ2UgJiYgb25Gb3JtQ2hhbmdlKGNoYW5nZWRWYWx1ZXMsIGFsbFZhbHVlcyk7XHJcbiAgICAgICAgfX1cclxuICAgICAgICBjaGFuZ2VWYWxpZD17dGhpcy5wcm9wcy5jaGFuZ2VWYWxpZH1cclxuICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXBhZ2VcIj5cclxuICAgICAgICAgIHtmb3JtR3JvdXBzLmxlbmd0aCA9PSAwID8gdGhpcy5yZW5kZXJGb3JtKGZvcm1zLCBsYWJlbCkgOiBPYmplY3Qua2V5cyhuZXdGb3Jtc09iaikubWFwKChrZXkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8ZGl2IGtleT17a2V5fSBjbGFzc05hbWU9XCJuc2MtZm9ybS1wYW5lXCI+XHJcbiAgICAgICAgICAgICAgICB7a2V5ICE9IFwibm9Hcm91cE5hbWVcIiAmJiA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXRpdGxlXCI+e2tleX08L2Rpdj59XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm5zYy1mb3JtLWNvbnRlbnRcIj57dGhpcy5yZW5kZXJGb3JtKG5ld0Zvcm1zT2JqW2tleV0sIGxhYmVsKX08L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgfSl9XHJcbiAgICAgICAgICB7IXRoaXMucHJvcHMuZm9ybVR5cGUgJiYgZm9vdGVyID09IHRydWUgJiZcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NscygnbnNjLWZvcm0tcGFnZS1mb290ZXInLCB0aGlzLnByb3BzLmZvb3RlckNsYXNzTmFtZSl9PlxyXG4gICAgICAgICAgICAgIDxCdXR0b24gey4uLnRoaXMucHJvcHMuY2FuY2VsQnV0dG9uUHJvcHN9IG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnByb3BzLm9uQ2FuY2VsKSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25DYW5jZWwoKTtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgfX0+5Y+W5raIPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIHsuLi50aGlzLnByb3BzLm9rQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMub25TdWJtaXQoKVxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIGxvYWRpbmc9e3RoaXMuc3RhdGUubG9hZGluZ31cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17J25zYy1mb3JtLXBhZ2UtZm9vdGVyLWJ0bid9XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAg5L+d5a2YXHJcbiAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAge3NlbGZCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBjbGFzc05hbWU9eyduc2MtZm9ybS1wYWdlLWZvb3Rlci1idG4nfSBrZXk9e2luZGV4fT57aXRlbX08L2Rpdj5cclxuICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB7IXRoaXMucHJvcHMuZm9ybVR5cGUgJiYgZm9vdGVyICE9PSB0cnVlICYmIHRoaXMucHJvcHMuZm9vdGVyfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L0Zvcm0+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgRm9ybVBhZ2U7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxhQUFhLFFBQW1CLE9BQU87QUFDdkQsT0FBT0MsSUFBSSxNQUFNLGlCQUFpQjtBQUNsQyxTQUFrQkMsT0FBTyxRQUFRLGFBQWE7QUFDOUMsT0FBT0MsT0FBTyxNQUFNLG9CQUFvQjtBQUN4QyxPQUFPQyxHQUFHLE1BQU0scUJBQXFCO0FBQ3JDLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsU0FBU0MsVUFBVSxRQUFRLG1CQUFtQjtBQUM5QyxPQUFPQyxLQUFLLE1BQU0sT0FBTztBQUN6QixPQUFPLHFCQUFxQjtBQUM1QixPQUFPQyxNQUFNLE1BQU0sUUFBUTtBQUMzQixPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBQ3RDLE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsT0FBT0MsR0FBRyxNQUFNLFlBQVk7QUF3QjVCLE1BQU1DLFFBQVEsU0FBU1osYUFBYSxDQUFxQjtFQUFBYSxZQUFBO0lBQUEsU0FBQUMsU0FBQTtJQUFBQyxlQUFBLCtCQUM3Q2hCLEtBQUssQ0FBQ2lCLFNBQVMsQ0FBTSxDQUFDO0lBQUFELGVBQUEsZ0JBQ3hCO01BQ05FLE9BQU8sRUFBRSxLQUFLO01BQ2RDLEtBQUssRUFBRSxFQUFFO01BQ1RDLFVBQVUsRUFBRSxJQUFJO01BQ2hCQyxLQUFLLEVBQUUsQ0FBQyxDQUFRO01BQ2hCQyxTQUFTLEVBQUUsQ0FBQyxDQUFRO01BQ3BCQyxRQUFRLEVBQUUsQ0FBQztJQUNiLENBQUM7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
|
|
564
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiZ2V0Tm9kZSIsIm1lc3NhZ2UiLCJDb2wiLCJSb3ciLCJpc0VtcHR5T2JqIiwiZGF5anMiLCJsb2Rhc2giLCJCdXR0b24iLCJVcGxvYWQiLCJjbHMiLCJGb3JtUGFnZSIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwibG9hZGluZyIsImxhYmVsIiwiZWRpdG9yRmxhZyIsInZhbHVlIiwiZGljdE5hbWVzIiwiZmlsZUxpc3QiLCJzaG93Iiwib3JnVmFsdWUiLCJlZGl0b3JmbGFnIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiY2FsbEJhY2siLCJzZXRTdGF0ZSIsIl90aGlzJGZvcm1SZWYkY3VycmVudCIsImNvbnZlcnRWYWx1ZSIsImZvcm1SZWYiLCJjdXJyZW50Iiwic2hvd0Zvcm0iLCJhZnRlclJlbmRlciIsIl90aGlzJGZvcm1SZWYkY3VycmVudDIiLCJwcm9wcyIsImRlZmF1bHRWYWx1ZSIsImhpZGUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQzIiwib25IaWRlRm9ybSIsImhpZGVGb3JtIiwiX3RoaXMkZm9ybVJlZiRjdXJyZW50NCIsInNldExvYWRpbmciLCJnZXRGb3JtVmFsdWUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ1Iiwic3RhdGUiLCJmb3JtVmFsdWUiLCJnZXRGaWVsZHNWYWx1ZSIsImRhdGEiLCJfb2JqZWN0U3ByZWFkIiwiZmlsZUZvcm1hdCIsIm5ld0ZpbGVMaXN0IiwibWFwIiwiaXRlbSIsImdldEZpbGVMaXN0Iiwic3VibWl0RmxhZyIsImVycm9yIiwiZGF0ZVZhbHVlRm9ybWF0Iiwia2V5Iiwib2xkZGF0YSIsIkFycmF5IiwiaXNBcnJheSIsImZvcm1hdCIsImlkIiwidHlwZSIsInZhbHVlcyIsImNsb25lRGVlcCIsImRhdGVGb3JtYXQiLCJzZXRGb3JtVmFsdWUiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ2IiwibmV3VmFsdWUiLCJzZXRGaWVsZHNWYWx1ZSIsImRvU3VibWl0IiwiZm9ybWRhdGEiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ3Iiwic3VibWl0VXJsIiwic3VibWl0UGFyYW1zIiwicmVxdWVzdE9iamVjdCIsInJlcXVlc3RDb25maWciLCJhZGRVcmwiLCJlZGl0b3JVcmwiLCJhZGRQYXJhbXMiLCJlZGl0b3JQYXJhbXMiLCJ1cmwiLCJwYXJhbXMiLCJVdGlscyIsImZ1bmMiLCJGdW5jdGlvbiIsImNvbnZlclBhcmFtcyIsImNvbnNvbGUiLCJvdGhlclBhcmFtcyIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIm9uU3VibWl0Iiwibm9VbmRlZmluZWQiLCJyZXMiLCJjb2RlIiwic3VjY2VzcyIsIm9iaiIsImZpbGVJZCIsImZpbGVOYW1lIiwic3RhdHVzIiwicHVzaCIsIl90aGlzJGZvcm1SZWYkY3VycmVudDgiLCJfdGhpcyRmb3JtUmVmJGN1cnJlbnQ5IiwidmFsaWQiLCJ2YWxpZGF0ZUZpZWxkcyIsInRoZW4iLCJjYXRjaCIsImVycm9ySW5mbyIsInZhbHVlQ2hhbmdlIiwiX3JlZiIsInZhbHVlT3B0aW9uIiwiZGljdE5hbWUiLCJuZXdOYW1lcyIsIm9uQ2hhbmdlIiwiZXZlbnRPcHRpb24iLCJmdW5jcyIsInJlZnMiLCJyZWZMaXN0IiwidmFsdWVTdHIiLCJzZWxmRnVuYyIsInJlbmRlckZvcm0iLCJmb3JtcyIsIm5ld1ZhbGlkIiwiY3JlYXRlRWxlbWVudCIsImd1dHRlciIsImluZGV4IiwiX2l0ZW0kcHJvcHMiLCJpdGVtUHJvcHMiLCJ2YWx1ZUZvcm1hdCIsIm5hbWUiLCJhbGxvd0NoYXJzIiwicGxhY2Vob2xkZXIiLCJjb25jYXQiLCJiaW5kIiwiZGF0YVR5cGUiLCJkaXNhYmxlZCIsInJ1bGVzIiwicmVxdWlyZWQiLCJpdGVtUmVmIiwiX2l0ZW0kcHJvcHMyIiwic3BhbiIsIkl0ZW0iLCJjb21wb25lbnROYW1lIiwicmVmIiwiX2l0ZW0kcHJvcHMzIiwiX2V4dGVuZHMiLCJvbkxpc3RDaGFuZ2UiLCJsaXN0Iiwic2hvd1VwbG9hZExpc3QiLCJzaG93RG93bmxvYWRJY29uIiwic2hvd1JlbW92ZUljb24iLCJjaGlsZHJlbiIsInJlbmRlciIsImZvb3RlciIsIm1vZGFsUHJvcHMiLCJ0aXRsZSIsIm9uT2siLCJvbkNhbmNlbCIsIm9rQnV0dG9uUHJvcHMiLCJjZW50ZXJlZCIsIndpZHRoIiwiZHJhd2VyUHJvcHMiLCJvbkNsb3NlIiwibmV3Rm9ybXNPYmoiLCJmb3JtR3JvdXBzIiwib3RoZXJHcnVwcyIsImdyb3VwTmFtZSIsImluZGV4T2YiLCJncm91cEZvcm1zIiwiZm9ybSIsInNlbGZCdXR0b25zIiwic2hvd01vZGVsIiwiZm9ybVR5cGUiLCJsYWJlbENvbCIsImZsZXgiLCJ3cmFwcGVyQ29sIiwib25WYWx1ZXNDaGFuZ2UiLCJjaGFuZ2VkVmFsdWVzIiwiYWxsVmFsdWVzIiwib25Gb3JtQ2hhbmdlIiwiY2hhbmdlVmFsaWQiLCJjbGFzc05hbWUiLCJPYmplY3QiLCJrZXlzIiwiZm9vdGVyQ2xhc3NOYW1lIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJvbkNsaWNrIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvcGFnZS9Gb3JtUGFnZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vYmFzZS9mb3JtXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL2Jhc2UvbWVzc2FnZVwiO1xyXG5pbXBvcnQgQ29sIGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHsgaXNFbXB0eU9iaiB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IGxvZGFzaCBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uLy4uL2Jhc2UvYnV0dG9uXCI7XHJcbmltcG9ydCBVcGxvYWQgZnJvbSAnLi4vLi4vYmFzZS91cGxvYWQnXHJcbmltcG9ydCBjbHMgZnJvbSAnY2xhc3NuYW1lcydcclxuaW1wb3J0IHsgSUZvcm1Qcm9wcyB9IGZyb20gXCJzcmMvY29tcG9uZW50cy9iYXNlL2Zvcm0vRm9ybVwiO1xyXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1QYWdlUHJvcHMge1xyXG4gIGZvcm1zPzogQXJyYXk8YW55PjsgLy/mmK/lkKbmmL7npLrmk43kvZzliJdcclxuICBzdWJtaXRVcmw/OiBzdHJpbmc7XHJcbiAgb25TdWJtaXQ/OiAodmFsdWU/OiBhbnksIGxhYmVsPzogYW55KSA9PiB2b2lkO1xyXG4gIGZvb3RlckNsYXNzTmFtZT86IGFueTtcclxuICBva0J1dHRvblByb3BzPzogYW55O1xyXG4gIGNhbmNlbEJ1dHRvblByb3BzPzogYW55O1xyXG4gIGZvb3Rlcj86IFJlYWN0Tm9kZSB8IGJvb2xlYW47XHJcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgb25Gb3JtQ2hhbmdlPzogKHZhbHVlPzogYW55LCBhbGxWYWx1ZT86IGFueSkgPT4gdm9pZDtcclxuICBzdWJtaXRQYXJhbXM/OiBhbnk7IC8v5re75Yqg5Y+C5pWw77yM6buY6K6kbW90aG9kOnBvc3TvvIwg5Y+C5pWw6YCa6L+HZGF0YeS8oOmAklxyXG4gIGZ1bmNzPzogYW55O1xyXG4gIHByb3BzPzogSUZvcm1Qcm9wcztcclxuICByZXF1ZXN0T2JqZWN0Pzoge1xyXG4gICAgYWRkVXJsPzogc3RyaW5nLFxyXG4gICAgZWRpdG9yVXJsPzogc3RyaW5nLFxyXG4gICAgYWRkUGFyYW1zPzogYW55LFxyXG4gICAgZWRpdG9yUGFyYW1zPzogYW55XHJcbiAgfVxyXG4gIHJlcXVlc3RDb25maWc/OiBhbnlcclxuICBbcHJvcHNOYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuY2xhc3MgRm9ybVBhZ2UgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PEZvcm1QYWdlUHJvcHMsIGFueT4ge1xyXG4gIGZvcm1SZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIHN0YXRlID0ge1xyXG4gICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICBsYWJlbDogXCJcIixcclxuICAgIGVkaXRvckZsYWc6IHRydWUsXHJcbiAgICB2YWx1ZToge30gYXMgYW55LFxyXG4gICAgZGljdE5hbWVzOiB7fSBhcyBhbnksXHJcbiAgICBmaWxlTGlzdDoge30gYXMgYW55XHJcbiAgfTtcclxuICB2YWxpZDogYW55ID0gW107XHJcbiAgZGF0ZVZhbHVlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGRhdGVGb3JtYXQgPSB7fSBhcyBhbnk7XHJcbiAgZmlsZUZvcm1hdCA9IFtdIGFzIGFueTtcclxuICByZWZMaXN0ID0ge30gYXMgYW55O1xyXG4gIHN1Ym1pdEZsYWcgPSB0cnVlXHJcbiAgLy/ooajljZXmmL7npLpcclxuICBzaG93KG9yZ1ZhbHVlPzogYW55LCBlZGl0b3JmbGFnID0gXCJhZGRcIiwgY2FsbEJhY2s/OiBhbnkpIHtcclxuICAgIGxldCBsYWJlbCA9IFwi5paw5aKeXCI7XHJcbiAgICBpZiAob3JnVmFsdWUgJiYgZWRpdG9yZmxhZyA9PSBcImVkaXRvclwiKSB7XHJcbiAgICAgIGxhYmVsID0gXCLnvJbovpFcIjtcclxuICAgIH0gZWxzZSBpZiAob3JnVmFsdWUgJiYgZWRpdG9yZmxhZyA9PSBcImRldGFpbFwiKSB7XHJcbiAgICAgIGxhYmVsID0gXCLmn6XnnItcIjtcclxuICAgIH1cclxuICAgIGlmIChvcmdWYWx1ZSkge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxhYmVsOiBsYWJlbCxcclxuICAgICAgICAgIHZhbHVlOiBvcmdWYWx1ZSxcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIGxldCB2YWx1ZSA9IHRoaXMuY29udmVydFZhbHVlKG9yZ1ZhbHVlLCBsYWJlbCk7XHJcbiAgICAgICAgICAvL+WkhOeQhuaWh+S7tuaVsOaNrlxyXG4gICAgICAgICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNob3dGb3JtKHZhbHVlLCB7XHJcbiAgICAgICAgICAgIGFmdGVyUmVuZGVyOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgY2FsbEJhY2sgJiYgY2FsbEJhY2soKVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGxhYmVsOiBsYWJlbCxcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5zaG93Rm9ybSh0aGlzLnByb3BzLmRlZmF1bHRWYWx1ZSwge1xyXG4gICAgICAgICAgICBhZnRlclJlbmRlcjogKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuICBoaWRlKGhpZGUgPSB0cnVlKSB7XHJcbiAgICBjb25zdCB7IG9uSGlkZUZvcm0gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAob25IaWRlRm9ybSkge1xyXG4gICAgICBvbkhpZGVGb3JtICYmIG9uSGlkZUZvcm0oKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlLCBmaWxlTGlzdDoge30gfSk7XHJcbiAgICBoaWRlICYmIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gIH1cclxuICBoaWRlRm9ybSgpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSwgZmlsZUxpc3Q6IHt9IH0pO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG4gIHNob3dGb3JtKG9yZ1ZhbHVlPzogYW55LCBlZGl0b3JmbGFnID0gXCJhZGRcIiwgY2FsbEJhY2s/OiBhbnkpIHtcclxuICAgIHRoaXMuc2hvdyhvcmdWYWx1ZSwgZWRpdG9yZmxhZywgY2FsbEJhY2spXHJcbiAgfVxyXG4gIHNldExvYWRpbmcobG9hZGluZzogYm9vbGVhbikge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGxvYWRpbmcgfSk7XHJcbiAgfVxyXG4gIGdldEZvcm1WYWx1ZSgpIHtcclxuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlLCBkaWN0TmFtZXMsIGZpbGVMaXN0IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBsZXQgZGF0YSA9IHsgLi4uZm9ybVZhbHVlLCAuLi5kaWN0TmFtZXMgfTtcclxuICAgIGlmICh0aGlzLmZpbGVGb3JtYXQubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgbmV3RmlsZUxpc3QgPSB7fSBhcyBhbnk7XHJcbiAgICAgIHRoaXMuZmlsZUZvcm1hdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBpZiAoZmlsZUxpc3RbaXRlbV0ubGVuZ3RoID09IDApIHtcclxuICAgICAgICAgIG5ld0ZpbGVMaXN0W2l0ZW1dID0gbnVsbDtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaWYgKCFmb3JtVmFsdWVbaXRlbV0pIHtcclxuICAgICAgICAgICAgbmV3RmlsZUxpc3RbaXRlbV0gPSB0aGlzLmdldEZpbGVMaXN0KGZpbGVMaXN0W2l0ZW1dIHx8IFtdKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIC4uLm5ld0ZpbGVMaXN0IH07XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuc3VibWl0RmxhZykge1xyXG4gICAgICBtZXNzYWdlLmVycm9yKCfor7fnrYnlvoXmiYDmnInmlofku7bkuIrkvKDlrozmiJDvvIEnKVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoIWlzRW1wdHlPYmoodGhpcy5kYXRlVmFsdWVGb3JtYXQpKSB7XHJcbiAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmRhdGVWYWx1ZUZvcm1hdCkge1xyXG4gICAgICAgIGxldCBvbGRkYXRhID0gZGF0YVtrZXldO1xyXG4gICAgICAgIGlmIChvbGRkYXRhKSB7XHJcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvbGRkYXRhKSkge1xyXG4gICAgICAgICAgICBkYXRhW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVswXSkuZm9ybWF0KHRoaXMuZGF0ZVZhbHVlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMV0pLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRhdGFba2V5XSA9IGRheWpzKG9sZGRhdGEpLmZvcm1hdCh0aGlzLmRhdGVWYWx1ZUZvcm1hdFtrZXldKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChsYWJlbCA9PSBcIue8lui+kVwiKSB7XHJcbiAgICAgIGRhdGEgPSB7IC4uLmRhdGEsIGlkOiB2YWx1ZT8uaWQgfTtcclxuICAgIH1cclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuICBjb252ZXJ0VmFsdWUodmFsdWUsIHR5cGUpIHtcclxuICAgIGxldCB2YWx1ZXMgPSBsb2Rhc2guY2xvbmVEZWVwKHZhbHVlKTtcclxuICAgIGlmICh0aGlzLmZpbGVGb3JtYXQubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgZmlsZUxpc3QgPSB7fSBhcyBhbnk7XHJcbiAgICAgIHRoaXMuZmlsZUZvcm1hdC5tYXAoKGl0ZW0pID0+IHtcclxuICAgICAgICBsZXQgb2xkZGF0YSA9IHZhbHVlc1tpdGVtXTtcclxuICAgICAgICBpZiAob2xkZGF0YSAmJiBBcnJheS5pc0FycmF5KG9sZGRhdGEpKSB7XHJcbiAgICAgICAgICBmaWxlTGlzdFtpdGVtXSA9IHRoaXMuZ2V0RmlsZUxpc3Qob2xkZGF0YSB8fCBbXSwgdHlwZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGZpbGVMaXN0W2l0ZW1dID0gW11cclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBmaWxlTGlzdDogZmlsZUxpc3QgfSlcclxuICAgIH1cclxuICAgIC8v5aSE55CG5pel5pyf5qC85byP5pWw5o2uXHJcbiAgICBpZiAoIWlzRW1wdHlPYmoodGhpcy5kYXRlRm9ybWF0KSkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5kYXRlRm9ybWF0KSB7XHJcbiAgICAgICAgbGV0IG9sZGRhdGEgPSB2YWx1ZXNba2V5XTtcclxuICAgICAgICBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgICAgdmFsdWVzW2tleV0gPSBbXHJcbiAgICAgICAgICAgICAgZGF5anMob2xkZGF0YVswXSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIGRheWpzKG9sZGRhdGFbMV0sIHRoaXMuZGF0ZUZvcm1hdFtrZXldKSxcclxuICAgICAgICAgICAgXTtcclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHZhbHVlc1trZXldID0gZGF5anMob2xkZGF0YSwgdGhpcy5kYXRlRm9ybWF0W2tleV0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZhbHVlc1xyXG4gIH1cclxuICBzZXRGb3JtVmFsdWUodmFsdWUsIHR5cGUpIHtcclxuICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5jb252ZXJ0VmFsdWUodmFsdWUsIHR5cGUpO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/LnNldEZpZWxkc1ZhbHVlKG5ld1ZhbHVlKTtcclxuICB9XHJcbiAgZG9TdWJtaXQoZm9ybWRhdGEsIGxhYmVsKSB7XHJcbiAgICBjb25zdCB7IHN1Ym1pdFVybCwgc3VibWl0UGFyYW1zID0ge30sIGNhbGxCYWNrLCByZXF1ZXN0T2JqZWN0ID0ge30sIHJlcXVlc3RDb25maWcgPSB7fSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgYWRkVXJsLCBlZGl0b3JVcmwsIGFkZFBhcmFtcywgZWRpdG9yUGFyYW1zIH0gPSByZXF1ZXN0T2JqZWN0XHJcbiAgICBsZXQgdXJsID0gJyc7XHJcbiAgICBsZXQgcGFyYW1zOiBhbnkgPSB7fTtcclxuICAgIGlmIChsYWJlbCA9PSAn5paw5aKeJykge1xyXG4gICAgICB1cmwgPSBhZGRVcmwgPyBhZGRVcmwgOiBzdWJtaXRVcmw7XHJcbiAgICAgIGlmIChhZGRQYXJhbXMgJiYgdHlwZW9mIGFkZFBhcmFtcyA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgIGNvbnN0IFV0aWxzID0gdGhpcy5wcm9wcy5VdGlscyB8fCB7fVxyXG4gICAgICAgIGxldCBmdW5jID0gbmV3IEZ1bmN0aW9uKCdVdGlscycsIGFkZFBhcmFtcyk7XHJcbiAgICAgICAgbGV0IGNvbnZlclBhcmFtcyA9IGZ1bmMoVXRpbHMpXHJcbiAgICAgICAgcGFyYW1zID0gY29udmVyUGFyYW1zXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcGFyYW1zID0gYWRkUGFyYW1zID8gYWRkUGFyYW1zIDogc3VibWl0UGFyYW1zO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGxhYmVsID09ICfnvJbovpEnKSB7XHJcbiAgICAgIHVybCA9IGVkaXRvclVybCA/IGVkaXRvclVybCA6IHN1Ym1pdFVybDtcclxuICAgICAgaWYgKGVkaXRvclBhcmFtcyAmJiB0eXBlb2YgZWRpdG9yUGFyYW1zID09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgY29uc3QgVXRpbHMgPSB0aGlzLnByb3BzLlV0aWxzIHx8IHt9XHJcbiAgICAgICAgbGV0IGZ1bmMgPSBuZXcgRnVuY3Rpb24oJ1V0aWxzJywgZWRpdG9yUGFyYW1zKTtcclxuICAgICAgICBsZXQgY29udmVyUGFyYW1zID0gZnVuYyhVdGlscylcclxuICAgICAgICBwYXJhbXMgPSBjb252ZXJQYXJhbXNcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBwYXJhbXMgPSBlZGl0b3JQYXJhbXMgPyBlZGl0b3JQYXJhbXMgOiBzdWJtaXRQYXJhbXM7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICghdXJsKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCLphY3nva5VcmzkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHsgZGF0YSA9IHt9LCAuLi5vdGhlclBhcmFtcyB9ID0gcGFyYW1zO1xyXG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnQ/Lm9uU3VibWl0KFxyXG4gICAgICB1cmwsXHJcbiAgICAgIHtcclxuICAgICAgICBkYXRhOiB7IC4uLmZvcm1kYXRhLCAuLi5kYXRhIH0sXHJcbiAgICAgICAgbm9VbmRlZmluZWQ6IGxhYmVsID09IFwi57yW6L6RXCIsXHJcbiAgICAgICAgLi4ucmVxdWVzdENvbmZpZyxcclxuICAgICAgICAuLi5vdGhlclBhcmFtcyxcclxuICAgICAgfSxcclxuICAgICAgKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBjb2RlIH0gPSByZXM7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IGZhbHNlIH0pO1xyXG4gICAgICAgIGlmIChjb2RlID09PSAyMDApIHtcclxuICAgICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhsYWJlbCArIFwi5oiQ5YqfXCIpO1xyXG4gICAgICAgICAgdGhpcy5oaWRlKHRydWUpO1xyXG4gICAgICAgICAgY2FsbEJhY2sgJiYgY2FsbEJhY2soKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5oaWRlKGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9XHJcbiAgZ2V0RmlsZUxpc3QoZGF0YSwgbGFiZWwgPSAn5paw5aKeJykge1xyXG4gICAgdGhpcy5zdWJtaXRGbGFnID0gdHJ1ZVxyXG4gICAgbGV0IGZpbGVMaXN0ID0gW10gYXMgYW55O1xyXG4gICAgaWYgKGRhdGEgJiYgZGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGRhdGEubWFwKChpdGVtKSA9PiB7XHJcbiAgICAgICAgbGV0IG9iaiA9IHtcclxuICAgICAgICAgIGZpbGVJZDogaXRlbS5maWxlSWQsXHJcbiAgICAgICAgICBmaWxlTmFtZTogaXRlbS5maWxlTmFtZSxcclxuICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICBpZiAobGFiZWwgPT0gJ+afpeeciycpIHtcclxuICAgICAgICAgIG9iai5zdGF0dXMgPSAnZG9uZSc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChsYWJlbCAhPT0gJ+afpeeciycgJiYgaXRlbS5zdGF0dXMgIT09ICdkb25lJykge1xyXG4gICAgICAgICAgdGhpcy5zdWJtaXRGbGFnID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGZpbGVMaXN0LnB1c2gob2JqKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmlsZUxpc3Q7XHJcbiAgfTtcclxuXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICBjb25zdCB7IG9uU3VibWl0IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBsYWJlbCwgdmFsdWUsIGRpY3ROYW1lcywgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmZvcm1SZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIGxldCB2YWxpZCA9IHRoaXMudmFsaWQ7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudFxyXG4gICAgICA/LnZhbGlkYXRlRmllbGRzKHZhbGlkKVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB0aGlzLmdldEZvcm1WYWx1ZSgpXHJcbiAgICAgICAgaWYgKCF0aGlzLnN1Ym1pdEZsYWcpIHtcclxuICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoJ+ivt+etieW+heaJgOacieaWh+S7tuS4iuS8oOWujOaIkO+8gScpXHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiB0cnVlIH0pO1xyXG4gICAgICAgIGlmIChvblN1Ym1pdCkge1xyXG4gICAgICAgICAgb25TdWJtaXQgJiYgb25TdWJtaXQoZGF0YSwgbGFiZWwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmRvU3VibWl0KGRhdGEsIGxhYmVsKTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKChlcnJvckluZm86IGFueSkgPT4geyB9KTtcclxuICB9XHJcbiAgdmFsdWVDaGFuZ2UoeyB0eXBlLCBkaWN0TmFtZSB9LCBwcm9wcywgdmFsdWUsIHZhbHVlT3B0aW9uLCBkYXRhKSB7XHJcbiAgICBpZiAodmFsdWVPcHRpb24pIHtcclxuICAgICAgaWYgKGRpY3ROYW1lKSB7XHJcbiAgICAgICAgY29uc3QgeyBkaWN0TmFtZXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgY29uc3QgbmV3TmFtZXMgPSB7IC4uLmRpY3ROYW1lcyB9IGFzIGFueTtcclxuICAgICAgICBuZXdOYW1lc1tkaWN0TmFtZV0gPSB2YWx1ZU9wdGlvbi5sYWJlbDtcclxuICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgIGRpY3ROYW1lczogbmV3TmFtZXMsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChwcm9wcy5vbkNoYW5nZSkge1xyXG4gICAgICBpZiAodHlwZW9mIHByb3BzLm9uQ2hhbmdlID09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICBwcm9wcy5vbkNoYW5nZSh2YWx1ZSwgdmFsdWVPcHRpb24sIGRhdGEpO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBwcm9wcy5vbkNoYW5nZSA9PSAnc3RyaW5nJykge1xyXG4gICAgICAgIGNvbnN0IGV2ZW50T3B0aW9uID0geyB2YWx1ZSwgZGF0YSwgZm9ybVJlZjogdGhpcy5mb3JtUmVmLCBmdW5jczogdGhpcy5wcm9wcy5mdW5jcyB8fCB7fSwgcmVmczogdGhpcy5yZWZMaXN0IH0gYXMgYW55O1xyXG4gICAgICAgIGNvbnN0IFV0aWxzID0gdGhpcy5wcm9wcy5VdGlscyB8fCB7fVxyXG4gICAgICAgIGlmICh0eXBlID09ICdTZWxlY3QnKSB7XHJcbiAgICAgICAgICBldmVudE9wdGlvbi52YWx1ZU9wdGlvbiA9IHZhbHVlT3B0aW9uO1xyXG4gICAgICAgICAgZXZlbnRPcHRpb24uZGF0YSA9IGRhdGFcclxuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT0gJ0RhdGVQaWNrZXInIHx8IHR5cGUgPT0gJ1JhbmdlUGlja2VyJykge1xyXG4gICAgICAgICAgZXZlbnRPcHRpb24udmFsdWVTdHIgPSB2YWx1ZU9wdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3Qgc2VsZkZ1bmMgPSBuZXcgRnVuY3Rpb24oJ2V2ZW50T3B0aW9uJywgJ1V0aWxzJywgcHJvcHMub25DaGFuZ2UpO1xyXG4gICAgICAgIHNlbGZGdW5jKGV2ZW50T3B0aW9uLCBVdGlscyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbmRlckZvcm0oZm9ybXMsIGxhYmVsKSB7XHJcbiAgICBjb25zdCBuZXdWYWxpZDogYW55W10gPSBbXTtcclxuICAgIHJldHVybiA8Um93IGd1dHRlcj17MjR9PlxyXG4gICAgICB7Zm9ybXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICBjb25zdCBpdGVtUHJvcHMgPSBpdGVtLnByb3BzIHx8IHt9O1xyXG4gICAgICAgIGlmIChpdGVtUHJvcHMuZm9ybWF0IHx8IGl0ZW1Qcm9wcy52YWx1ZUZvcm1hdCkge1xyXG4gICAgICAgICAgdGhpcy5kYXRlVmFsdWVGb3JtYXRbaXRlbS5uYW1lXSA9XHJcbiAgICAgICAgICAgIGl0ZW1Qcm9wcy5mb3JtYXQgfHwgaXRlbVByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaXRlbVByb3BzLmZvcm1hdCkge1xyXG4gICAgICAgICAgdGhpcy5kYXRlRm9ybWF0W2l0ZW0ubmFtZV0gPSBpdGVtUHJvcHMuZm9ybWF0O1xyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgYWxsb3dDaGFycyA9IGl0ZW0ucHJvcHM/LmFsbG93Q2hhcnMgfHwgZmFsc2U7XHJcbiAgICAgICAgbGV0IHByb3BzID0ge1xyXG4gICAgICAgICAgcGxhY2Vob2xkZXI6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YCxcclxuICAgICAgICAgIC4uLml0ZW0ucHJvcHMsXHJcbiAgICAgICAgICBvbkNoYW5nZTogdGhpcy52YWx1ZUNoYW5nZS5iaW5kKFxyXG4gICAgICAgICAgICB0aGlzLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgdHlwZTogaXRlbS50eXBlLFxyXG4gICAgICAgICAgICAgIGRpY3ROYW1lOiBpdGVtLmRpY3ROYW1lLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7IC4uLml0ZW0ucHJvcHMgfVxyXG4gICAgICAgICAgKSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmICghaXRlbS50eXBlIHx8IGl0ZW0udHlwZSA9PSBcIklucHV0XCIpIHtcclxuICAgICAgICAgIHByb3BzLmFsbG93Q2hhcnMgPSB0cnVlOyAgLy9mb3JtLml0ZW0g5L2/55SoaW5wdXTnu4Tku7ZhbGxvd0NoYXJz5b+F6aG76buY6K6kdHJ1ZSzkuI3nhLbovpPlhaXnibnmrorlrZfnrKbmi7/liLDnmoTlgLzkuI3lr7lcclxuICAgICAgICB9XHJcbiAgICAgICAgZGVsZXRlIHByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgIGRlbGV0ZSBwcm9wcy5mb3JtYXQ7XHJcbiAgICAgICAgZGVsZXRlIHByb3BzLmRhdGFUeXBlO1xyXG4gICAgICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgICAgICBwcm9wcy5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICBwcm9wcy5wbGFjZWhvbGRlciA9ICcnXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICgoaXRlbS5ydWxlcyAmJiBpdGVtLnJ1bGVzLmxlbmd0aCA+IDApIHx8IGl0ZW0ucmVxdWlyZWQgPT09IHRydWUpIHtcclxuICAgICAgICAgIG5ld1ZhbGlkLnB1c2goaXRlbS5uYW1lKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGluZGV4ICsgMSA9PT0gZm9ybXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICB0aGlzLnZhbGlkID0gbmV3VmFsaWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGl0ZW1SZWY6IGFueSA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KClcclxuICAgICAgICB0aGlzLnJlZkxpc3RbaXRlbS5uYW1lXSA9IGl0ZW1SZWZcclxuICAgICAgICBpZiAoaXRlbS50eXBlICE9PSAnVXBsb2FkJykge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPENvbCBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9IGtleT17aW5kZXh9PlxyXG4gICAgICAgICAgICAgIDxGb3JtLkl0ZW1cclxuICAgICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxyXG4gICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgcnVsZXM9e2l0ZW0ucnVsZXN9XHJcbiAgICAgICAgICAgICAgICBhbGxvd0NoYXJzPXthbGxvd0NoYXJzfVxyXG4gICAgICAgICAgICAgICAgY29tcG9uZW50TmFtZT17aXRlbS50eXBlID8gaXRlbS50eXBlIDogXCJJbnB1dFwifVxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2l0ZW0ucmVxdWlyZWR9XHJcbiAgICAgICAgICAgICAgICB0eXBlPXtpdGVtLnByb3BzPy50eXBlfVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHtnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICByZWY6IGl0ZW1SZWYsXHJcbiAgICAgICAgICAgICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XHJcbiAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5maWxlRm9ybWF0LnB1c2goaXRlbS5uYW1lKVxyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPENvbCBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9IGtleT17aW5kZXh9PlxyXG4gICAgICAgICAgICAgIDxGb3JtLkl0ZW1cclxuICAgICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxyXG4gICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgcnVsZXM9e2l0ZW0ucnVsZXN9XHJcbiAgICAgICAgICAgICAgICBhbGxvd0NoYXJzPXthbGxvd0NoYXJzfVxyXG4gICAgICAgICAgICAgICAgdHlwZT17aXRlbS5wcm9wcz8udHlwZX1cclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtpdGVtLnJlcXVpcmVkfVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxVcGxvYWRcclxuICAgICAgICAgICAgICAgICAgZmlsZUxpc3Q9e3RoaXMuc3RhdGUuZmlsZUxpc3RbaXRlbS5uYW1lXSB8fCBbXX1cclxuICAgICAgICAgICAgICAgICAgb25MaXN0Q2hhbmdlPXsobGlzdCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZmlsZUxpc3QgfSA9IHRoaXMuc3RhdGVcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgIGZpbGVMaXN0OiB7IC4uLmZpbGVMaXN0LCBbaXRlbS5uYW1lXTogbGlzdCB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3Q9e3sgc2hvd0Rvd25sb2FkSWNvbjogdHJ1ZSwgc2hvd1JlbW92ZUljb246IGxhYmVsICE9PSAn5p+l55yLJyB9fVxyXG4gICAgICAgICAgICAgICAgICByZWY9e2l0ZW1SZWZ9XHJcbiAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc30+XHJcbiAgICAgICAgICAgICAgICAgIHtpdGVtLnByb3BzLmNoaWxkcmVuID8gaXRlbS5wcm9wcy5jaGlsZHJlbiA6IChsYWJlbCAhPT0gJ+afpeeciycgJiYgPEJ1dHRvbj7kuIrkvKDmlofku7Y8L0J1dHRvbj4pfVxyXG4gICAgICAgICAgICAgICAgPC9VcGxvYWQ+XHJcbiAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XHJcbiAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pfVxyXG4gICAgPC9Sb3c+XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHsgZm9ybXMgPSBbXSwgcHJvcHMgPSB7fSwgZm9vdGVyID0gdHJ1ZSwgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGxvYWRpbmcsIGxhYmVsIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IG1vZGFsUHJvcHMgPSB7XHJcbiAgICAgIHRpdGxlOiBsYWJlbCxcclxuICAgICAgb25PazogdGhpcy5vblN1Ym1pdC5iaW5kKHRoaXMpLFxyXG4gICAgICBvbkNhbmNlbDogdGhpcy5oaWRlLmJpbmQodGhpcyksXHJcbiAgICAgIG9rQnV0dG9uUHJvcHM6IHsgbG9hZGluZzogbG9hZGluZyB9LFxyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IFwiNTB2d1wiLFxyXG4gICAgfSBhcyBhbnk7XHJcblxyXG5cclxuICAgIGxldCBkcmF3ZXJQcm9wcyA9IHtcclxuICAgICAgdGl0bGU6IGxhYmVsLFxyXG4gICAgICBvbk9rOiB0aGlzLm9uU3VibWl0LmJpbmQodGhpcyksXHJcbiAgICAgIG9uQ2xvc2U6IHRoaXMuaGlkZS5iaW5kKHRoaXMpLFxyXG4gICAgICB3aWR0aDogXCI1MHZ3XCIsXHJcbiAgICB9IGFzIGFueTtcclxuICAgIGlmIChsYWJlbCA9PSBcIuafpeeci1wiKSB7XHJcbiAgICAgIG1vZGFsUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgICAgZHJhd2VyUHJvcHMuZm9vdGVyID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZVZhbHVlRm9ybWF0ID0ge307XHJcbiAgICB0aGlzLmRhdGVGb3JtYXQgPSB7fTtcclxuICAgIHRoaXMuZmlsZUZvcm1hdCA9IFtdXHJcbiAgICBsZXQgbmV3Rm9ybXNPYmogPSB7fSBhcyBhbnk7XHJcbiAgICBsZXQgZm9ybUdyb3VwcyA9IFtdIGFzIGFueVxyXG4gICAgbGV0IG90aGVyR3J1cHMgPSBbXSBhcyBhbnlcclxuICAgIC8v5aSE55CG6KGo5Y2V5pWw5o2uXHJcbiAgICBmb3Jtcy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBpZiAoaXRlbS5ncm91cE5hbWUgJiYgZm9ybUdyb3Vwcy5pbmRleE9mKGl0ZW0uZ3JvdXBOYW1lKSA8IDApIHtcclxuICAgICAgICBmb3JtR3JvdXBzLnB1c2goaXRlbS5ncm91cE5hbWUpO1xyXG4gICAgICB9IGVsc2UgaWYgKCFpdGVtLmdyb3VwTmFtZSkge1xyXG4gICAgICAgIG90aGVyR3J1cHMucHVzaChpdGVtKVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgaWYgKGZvcm1Hcm91cHMubGVuZ3RoID4gMCkge1xyXG4gICAgICBmb3JtR3JvdXBzLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgbGV0IGdyb3VwRm9ybXMgPSBbXSBhcyBhbnlcclxuICAgICAgICBmb3Jtcy5tYXAoKGZvcm06IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZvcm0uZ3JvdXBOYW1lID09IGl0ZW0pIHtcclxuICAgICAgICAgICAgZ3JvdXBGb3Jtcy5wdXNoKGZvcm0pXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgICBuZXdGb3Jtc09ialtpdGVtXSA9IGdyb3VwRm9ybXNcclxuICAgICAgfSlcclxuICAgICAgbmV3Rm9ybXNPYmpbJ25vR3JvdXBOYW1lJ10gPSBvdGhlckdydXBzXHJcbiAgICB9XHJcbiAgICAvL+iHquWumuS5ieaMiemSrlxyXG4gICAgbGV0IHNlbGZCdXR0b25zID0gW10gYXMgYW55O1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoY2hpbGRyZW4pKSB7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgdHlwZW9mIGl0ZW0gPT0gJ29iamVjdCcgJiYgc2VsZkJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGNoaWxkcmVuKSB7XHJcbiAgICAgIHR5cGVvZiBjaGlsZHJlbiA9PSAnb2JqZWN0JyAmJiBzZWxmQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgIH1cclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxGb3JtXHJcbiAgICAgICAgcmVmPXt0aGlzLmZvcm1SZWZ9XHJcbiAgICAgICAgc2hvd01vZGVsPXt0aGlzLnByb3BzLmZvcm1UeXBlfVxyXG4gICAgICAgIG1vZGFsUHJvcHM9e3sgLi4ubW9kYWxQcm9wcyB9fVxyXG4gICAgICAgIGRyYXdlclByb3BzPXt7IC4uLmRyYXdlclByb3BzIH19XHJcbiAgICAgICAgbGFiZWxDb2w9e3sgZmxleDogXCIxMDBweFwiIH19XHJcbiAgICAgICAgd3JhcHBlckNvbD17eyBmbGV4OiBcIjE1dndcIiB9fVxyXG4gICAgICAgIG9uVmFsdWVzQ2hhbmdlPXsoY2hhbmdlZFZhbHVlcywgYWxsVmFsdWVzKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB7IG9uRm9ybUNoYW5nZSB9ID0gdGhpcy5wcm9wcztcclxuICAgICAgICAgIG9uRm9ybUNoYW5nZSAmJiBvbkZvcm1DaGFuZ2UoY2hhbmdlZFZhbHVlcywgYWxsVmFsdWVzKTtcclxuICAgICAgICB9fVxyXG4gICAgICAgIGNoYW5nZVZhbGlkPXt0aGlzLnByb3BzLmNoYW5nZVZhbGlkfVxyXG4gICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tcGFnZVwiPlxyXG4gICAgICAgICAge2Zvcm1Hcm91cHMubGVuZ3RoID09IDAgPyB0aGlzLnJlbmRlckZvcm0oZm9ybXMsIGxhYmVsKSA6IE9iamVjdC5rZXlzKG5ld0Zvcm1zT2JqKS5tYXAoKGtleSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgIDxkaXYga2V5PXtrZXl9IGNsYXNzTmFtZT1cIm5zYy1mb3JtLXBhbmVcIj5cclxuICAgICAgICAgICAgICAgIHtrZXkgIT0gXCJub0dyb3VwTmFtZVwiICYmIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tdGl0bGVcIj57a2V5fTwvZGl2Pn1cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibnNjLWZvcm0tY29udGVudFwiPnt0aGlzLnJlbmRlckZvcm0obmV3Rm9ybXNPYmpba2V5XSwgbGFiZWwpfTwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICB9KX1cclxuICAgICAgICAgIHshdGhpcy5wcm9wcy5mb3JtVHlwZSAmJiBmb290ZXIgPT0gdHJ1ZSAmJlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKCduc2MtZm9ybS1wYWdlLWZvb3RlcicsIHRoaXMucHJvcHMuZm9vdGVyQ2xhc3NOYW1lKX0+XHJcbiAgICAgICAgICAgICAgPEJ1dHRvbiB7Li4udGhpcy5wcm9wcy5jYW5jZWxCdXR0b25Qcm9wc30gb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucHJvcHMub25DYW5jZWwpIHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5vbkNhbmNlbCgpO1xyXG4gICAgICAgICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgICB9fT7lj5bmtog8L0J1dHRvbj5cclxuICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgey4uLnRoaXMucHJvcHMub2tCdXR0b25Qcm9wc31cclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5vblN1Ym1pdCgpXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgbG9hZGluZz17dGhpcy5zdGF0ZS5sb2FkaW5nfVxyXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXsnbnNjLWZvcm0tcGFnZS1mb290ZXItYnRuJ31cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICDkv53lrZhcclxuICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICB7c2VsZkJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17J25zYy1mb3JtLXBhZ2UtZm9vdGVyLWJ0bid9IGtleT17aW5kZXh9PntpdGVtfTwvZGl2PlxyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHshdGhpcy5wcm9wcy5mb3JtVHlwZSAmJiBmb290ZXIgIT09IHRydWUgJiYgdGhpcy5wcm9wcy5mb290ZXJ9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvRm9ybT5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBGb3JtUGFnZTtcclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLGFBQWEsUUFBbUIsT0FBTztBQUN2RCxPQUFPQyxJQUFJLE1BQU0saUJBQWlCO0FBQ2xDLFNBQWtCQyxPQUFPLFFBQVEsYUFBYTtBQUM5QyxPQUFPQyxPQUFPLE1BQU0sb0JBQW9CO0FBQ3hDLE9BQU9DLEdBQUcsTUFBTSxxQkFBcUI7QUFDckMsT0FBT0MsR0FBRyxNQUFNLHFCQUFxQjtBQUNyQyxTQUFTQyxVQUFVLFFBQVEsbUJBQW1CO0FBQzlDLE9BQU9DLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9BQU8scUJBQXFCO0FBQzVCLE9BQU9DLE1BQU0sTUFBTSxRQUFRO0FBQzNCLE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxHQUFHLE1BQU0sWUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","PureComponent","Form","getNode","message","Col","Row","isEmptyObj","dayjs","lodash","Button","Upload","cls","FormPage","constructor","arguments","_defineProperty","createRef","loading","label","editorFlag","value","dictNames","fileList","show","orgValue","editorflag","length","undefined","setState","_this$formRef$current","convertValue","formRef","current","showForm","_this$formRef$current2","props","defaultValue","hide","_this$formRef$current3","onHideForm","hideForm","_this$formRef$current4","setLoading","getFormValue","_this$formRef$current5","state","formValue","getFieldsValue","data","_objectSpread","fileFormat","newFileList","map","item","getFileList","submitFlag","error","dateValueFormat","key","olddata","Array","isArray","format","id","type","values","cloneDeep","dateFormat","setFormValue","_this$formRef$current6","newValue","setFieldsValue","doSubmit","formdata","_this$formRef$current7","submitUrl","submitParams","callBack","requestObject","requestConfig","addUrl","editorUrl","addParams","editorParams","url","params","Utils","func","Function","converParams","console","otherParams","_objectWithoutProperties","_excluded","onSubmit","noUndefined","res","code","success","obj","fileId","fileName","status","push","_this$formRef$current8","_this$formRef$current9","valid","validateFields","then","catch","errorInfo","valueChange","_ref","valueOption","dictName","newNames","onChange","eventOption","funcs","refs","refList","valueStr","selfFunc","renderForm","forms","newValid","createElement","gutter","index","_item$props","itemProps","valueFormat","name","allowChars","placeholder","concat","bind","dataType","disabled","rules","required","itemRef","_item$props2","span","Item","componentName","ref","_item$props3","_extends","onListChange","list","showUploadList","showDownloadIcon","showRemoveIcon","children","render","footer","modalProps","title","onOk","onCancel","okButtonProps","centered","width","drawerProps","onClose","newFormsObj","formGroups","otherGrups","groupName","indexOf","groupForms","form","selfButtons","showModel","formType","labelCol","flex","wrapperCol","onValuesChange","changedValues","allValues","onFormChange","changeValid","className","Object","keys","footerClassName","cancelButtonProps","onClick"],"sources":["../../../src/components/page/FormPage/index.tsx"],"sourcesContent":["import React, { PureComponent, ReactNode } from \"react\";\r\nimport Form from \"../../base/form\";\r\nimport { getLess, getNode } from \"../../utils\";\r\nimport message from \"../../base/message\";\r\nimport Col from \"../../base/grid/Col\";\r\nimport Row from \"../../base/grid/Row\";\r\nimport { isEmptyObj } from \"@bj-nsc/functions\";\r\nimport dayjs from \"dayjs\";\r\nimport \"./index.module.less\";\r\nimport lodash from \"lodash\";\r\nimport Button from \"../../base/button\";\r\nimport Upload from '../../base/upload'\r\nimport cls from 'classnames'\r\nimport { IFormProps } from \"src/components/base/form/Form\";\r\nexport interface FormPageProps {\r\n forms?: Array<any>; //是否显示操作列\r\n submitUrl?: string;\r\n onSubmit?: (value?: any, label?: any) => void;\r\n footerClassName?: any;\r\n okButtonProps?: any;\r\n cancelButtonProps?: any;\r\n footer?: ReactNode | boolean;\r\n children?: React.ReactNode;\r\n onFormChange?: (value?: any, allValue?: any) => void;\r\n submitParams?: any; //添加参数,默认mothod:post, 参数通过data传递\r\n funcs?: any;\r\n props?: IFormProps;\r\n requestObject?: {\r\n addUrl?: string,\r\n editorUrl?: string,\r\n addParams?: any,\r\n editorParams?: any\r\n }\r\n requestConfig?: any\r\n [propsName: string]: any;\r\n}\r\nclass FormPage extends PureComponent<FormPageProps, any> {\r\n formRef = React.createRef<any>();\r\n state = {\r\n loading: false,\r\n label: \"\",\r\n editorFlag: true,\r\n value: {} as any,\r\n dictNames: {} as any,\r\n fileList: {} as any\r\n };\r\n valid: any = [];\r\n dateValueFormat = {} as any;\r\n dateFormat = {} as any;\r\n fileFormat = [] as any;\r\n refList = {} as any;\r\n submitFlag = true\r\n //表单显示\r\n show(orgValue?: any, editorflag = \"add\") {\r\n let label = \"新增\";\r\n if (orgValue && editorflag == \"editor\") {\r\n label = \"编辑\";\r\n } else if (orgValue && editorflag == \"detail\") {\r\n label = \"查看\";\r\n }\r\n if (orgValue) {\r\n this.setState(\r\n {\r\n label: label,\r\n value: orgValue,\r\n },\r\n () => {\r\n let value = this.convertValue(orgValue, label);\r\n //处理文件数据\r\n this.formRef.current?.showForm(value);\r\n }\r\n );\r\n } else {\r\n this.setState(\r\n {\r\n label: label,\r\n },\r\n () => {\r\n this.formRef.current?.showForm(this.props.defaultValue);\r\n }\r\n );\r\n }\r\n }\r\n hide(hide = true) {\r\n const { onHideForm } = this.props;\r\n if (onHideForm) {\r\n onHideForm && onHideForm();\r\n return;\r\n }\r\n this.setState({ loading: false, fileList: {} });\r\n hide && this.formRef.current?.hideForm();\r\n }\r\n hideForm() {\r\n this.setState({ loading: false, fileList: {} });\r\n this.formRef.current?.hideForm();\r\n }\r\n showForm(orgValue?: any, editorflag = \"add\") {\r\n this.show(orgValue, editorflag)\r\n }\r\n setLoading(loading: boolean) {\r\n this.setState({ loading: loading });\r\n }\r\n getFormValue() {\r\n const { label, value, dictNames, fileList } = this.state;\r\n const formValue = this.formRef.current?.getFieldsValue();\r\n let data = { ...formValue, ...dictNames };\r\n if (this.fileFormat.length > 0) {\r\n let newFileList = {} as any;\r\n this.fileFormat.map((item) => {\r\n if (fileList[item].length == 0) {\r\n newFileList[item] = null;\r\n } else {\r\n if (!formValue[item]) {\r\n newFileList[item] = this.getFileList(fileList[item] || []);\r\n }\r\n }\r\n })\r\n data = { ...data, ...newFileList };\r\n }\r\n if (!this.submitFlag) {\r\n message.error('请等待所有文件上传完成!')\r\n return;\r\n }\r\n if (!isEmptyObj(this.dateValueFormat)) {\r\n for (let key in this.dateValueFormat) {\r\n let olddata = data[key];\r\n if (olddata) {\r\n if (Array.isArray(olddata)) {\r\n data[key] = [\r\n dayjs(olddata[0]).format(this.dateValueFormat[key]),\r\n dayjs(olddata[1]).format(this.dateValueFormat[key]),\r\n ];\r\n } else {\r\n data[key] = dayjs(olddata).format(this.dateValueFormat[key]);\r\n }\r\n }\r\n }\r\n }\r\n if (label == \"编辑\") {\r\n data = { ...data, id: value?.id };\r\n }\r\n return data;\r\n }\r\n convertValue(value, type) {\r\n let values = lodash.cloneDeep(value);\r\n if (this.fileFormat.length > 0) {\r\n let fileList = {} as any;\r\n this.fileFormat.map((item) => {\r\n let olddata = values[item];\r\n if (olddata && Array.isArray(olddata)) {\r\n fileList[item] = this.getFileList(olddata || [], type);\r\n } else {\r\n fileList[item] = []\r\n }\r\n })\r\n this.setState({ fileList: fileList })\r\n }\r\n //处理日期格式数据\r\n if (!isEmptyObj(this.dateFormat)) {\r\n for (let key in this.dateFormat) {\r\n let olddata = values[key];\r\n if (olddata) {\r\n if (Array.isArray(olddata)) {\r\n values[key] = [\r\n dayjs(olddata[0], this.dateFormat[key]),\r\n dayjs(olddata[1], this.dateFormat[key]),\r\n ];\r\n } else {\r\n values[key] = dayjs(olddata, this.dateFormat[key]);\r\n }\r\n }\r\n }\r\n }\r\n return values\r\n }\r\n setFormValue(value, type) {\r\n const newValue = this.convertValue(value, type);\r\n this.formRef.current?.setFieldsValue(newValue);\r\n }\r\n doSubmit(formdata, label) {\r\n const { submitUrl, submitParams = {}, callBack, requestObject = {}, requestConfig = {} } = this.props;\r\n const { addUrl, editorUrl, addParams, editorParams } = requestObject\r\n let url = '';\r\n let params: any = {};\r\n if (label == '新增') {\r\n url = addUrl ? addUrl : submitUrl;\r\n if (addParams && typeof addParams == 'string') {\r\n const Utils = this.props.Utils || {}\r\n let func = new Function('Utils', addParams);\r\n let converParams = func(Utils)\r\n params = converParams\r\n } else {\r\n params = addParams ? addParams : submitParams;\r\n }\r\n } else if (label == '编辑') {\r\n url = editorUrl ? editorUrl : submitUrl;\r\n if (editorParams && typeof editorParams == 'string') {\r\n const Utils = this.props.Utils || {}\r\n let func = new Function('Utils', editorParams);\r\n let converParams = func(Utils)\r\n params = converParams\r\n } else {\r\n params = editorParams ? editorParams : submitParams;\r\n }\r\n }\r\n if (!url) {\r\n console.error(\"配置Url不能为空!\");\r\n return;\r\n }\r\n const { data = {}, ...otherParams } = params;\r\n this.formRef.current?.onSubmit(\r\n url,\r\n {\r\n data: { ...formdata, ...data },\r\n noUndefined: label == \"编辑\",\r\n ...requestConfig,\r\n ...otherParams,\r\n },\r\n (res: any) => {\r\n const { code } = res;\r\n this.setState({ loading: false });\r\n if (code === 200) {\r\n message.success(label + \"成功\");\r\n this.hide(true);\r\n callBack && callBack();\r\n return;\r\n }\r\n this.hide(false);\r\n }\r\n );\r\n }\r\n getFileList(data, label = '新增') {\r\n this.submitFlag = true\r\n let fileList = [] as any;\r\n if (data && data.length > 0) {\r\n data.map((item) => {\r\n let obj = {\r\n fileId: item.fileId,\r\n fileName: item.fileName,\r\n } as any;\r\n if (label == '查看') {\r\n obj.status = 'done';\r\n }\r\n if (label !== '查看' && item.status !== 'done') {\r\n this.submitFlag = false;\r\n }\r\n fileList.push(obj);\r\n });\r\n }\r\n return fileList;\r\n };\r\n\r\n onSubmit() {\r\n const { onSubmit } = this.props;\r\n const { label, value, dictNames, fileList } = this.state;\r\n const formValue = this.formRef.current?.getFieldsValue();\r\n let valid = this.valid;\r\n this.formRef.current\r\n ?.validateFields(valid)\r\n .then(() => {\r\n let data = this.getFormValue()\r\n if (!this.submitFlag) {\r\n message.error('请等待所有文件上传完成!')\r\n return;\r\n }\r\n this.setState({ loading: true });\r\n if (onSubmit) {\r\n onSubmit && onSubmit(data, label);\r\n return;\r\n }\r\n this.doSubmit(data, label);\r\n })\r\n .catch((errorInfo: any) => { });\r\n }\r\n valueChange({ type, dictName }, props, value, valueOption, data) {\r\n if (valueOption) {\r\n if (dictName) {\r\n const { dictNames } = this.state;\r\n const newNames = { ...dictNames } as any;\r\n newNames[dictName] = valueOption.label;\r\n this.setState({\r\n dictNames: newNames,\r\n });\r\n }\r\n }\r\n if (props.onChange) {\r\n if (typeof props.onChange == 'function') {\r\n props.onChange(value, valueOption, data);\r\n } else if (typeof props.onChange == 'string') {\r\n const eventOption = { value, data, formRef: this.formRef, funcs: this.props.funcs || {}, refs: this.refList } as any;\r\n const Utils = this.props.Utils || {}\r\n if (type == 'Select') {\r\n eventOption.valueOption = valueOption;\r\n eventOption.data = data\r\n } else if (type == 'DatePicker' || type == 'RangePicker') {\r\n eventOption.valueStr = valueOption;\r\n }\r\n const selfFunc = new Function('eventOption', 'Utils', props.onChange);\r\n selfFunc(eventOption, Utils);\r\n }\r\n }\r\n }\r\n\r\n renderForm(forms, label) {\r\n const newValid: any[] = [];\r\n return <Row gutter={24}>\r\n {forms.map((item: any, index: number) => {\r\n const itemProps = item.props || {};\r\n if (itemProps.format || itemProps.valueFormat) {\r\n this.dateValueFormat[item.name] =\r\n itemProps.format || itemProps.valueFormat;\r\n }\r\n if (itemProps.format) {\r\n this.dateFormat[item.name] = itemProps.format;\r\n }\r\n let allowChars = item.props?.allowChars || false;\r\n let props = {\r\n placeholder: `请输入${item.label}`,\r\n ...item.props,\r\n onChange: this.valueChange.bind(\r\n this,\r\n {\r\n type: item.type,\r\n dictName: item.dictName,\r\n },\r\n { ...item.props }\r\n ),\r\n };\r\n if (!item.type || item.type == \"Input\") {\r\n props.allowChars = true; //form.item 使用input组件allowChars必须默认true,不然输入特殊字符拿到的值不对\r\n }\r\n delete props.valueFormat;\r\n delete props.format;\r\n delete props.dataType;\r\n if (label == \"查看\") {\r\n props.disabled = true;\r\n props.placeholder = ''\r\n }\r\n if ((item.rules && item.rules.length > 0) || item.required === true) {\r\n newValid.push(item.name);\r\n }\r\n if (index + 1 === forms.length) {\r\n this.valid = newValid;\r\n }\r\n const itemRef: any = React.createRef<any>()\r\n this.refList[item.name] = itemRef\r\n if (item.type !== 'Upload') {\r\n return (\r\n <Col span={item.span || 12} key={index}>\r\n <Form.Item\r\n label={item.label}\r\n name={item.name}\r\n rules={item.rules}\r\n allowChars={allowChars}\r\n componentName={item.type ? item.type : \"Input\"}\r\n required={item.required}\r\n type={item.props?.type}\r\n >\r\n {getNode(item.type, {\r\n ref: itemRef,\r\n ...props,\r\n })}\r\n </Form.Item>\r\n </Col>\r\n );\r\n } else {\r\n this.fileFormat.push(item.name)\r\n return (\r\n <Col span={item.span || 12} key={index}>\r\n <Form.Item\r\n label={item.label}\r\n name={item.name}\r\n rules={item.rules}\r\n allowChars={allowChars}\r\n type={item.props?.type}\r\n required={item.required}\r\n >\r\n <Upload\r\n fileList={this.state.fileList[item.name] || []}\r\n onListChange={(list) => {\r\n const { fileList } = this.state\r\n this.setState({\r\n fileList: { ...fileList, [item.name]: list }\r\n })\r\n }}\r\n showUploadList={{ showDownloadIcon: true, showRemoveIcon: label !== '查看' }}\r\n ref={itemRef}\r\n {...props}>\r\n {item.props.children ? item.props.children : (label !== '查看' && <Button>上传文件</Button>)}\r\n </Upload>\r\n </Form.Item>\r\n </Col>\r\n );\r\n }\r\n })}\r\n </Row>\r\n }\r\n render() {\r\n const { forms = [], props = {}, footer = true, children } = this.props;\r\n const { loading, label } = this.state;\r\n let modalProps = {\r\n title: label,\r\n onOk: this.onSubmit.bind(this),\r\n onCancel: this.hide.bind(this),\r\n okButtonProps: { loading: loading },\r\n centered: true,\r\n width: \"50vw\",\r\n } as any;\r\n\r\n\r\n let drawerProps = {\r\n title: label,\r\n onOk: this.onSubmit.bind(this),\r\n onClose: this.hide.bind(this),\r\n width: \"50vw\",\r\n } as any;\r\n if (label == \"查看\") {\r\n modalProps.footer = null;\r\n drawerProps.footer = null;\r\n }\r\n this.dateValueFormat = {};\r\n this.dateFormat = {};\r\n this.fileFormat = []\r\n let newFormsObj = {} as any;\r\n let formGroups = [] as any\r\n let otherGrups = [] as any\r\n //处理表单数据\r\n forms.map((item: any) => {\r\n if (item.groupName && formGroups.indexOf(item.groupName) < 0) {\r\n formGroups.push(item.groupName);\r\n } else if (!item.groupName) {\r\n otherGrups.push(item)\r\n }\r\n })\r\n if (formGroups.length > 0) {\r\n formGroups.map((item: any) => {\r\n let groupForms = [] as any\r\n forms.map((form: any) => {\r\n if (form.groupName == item) {\r\n groupForms.push(form)\r\n }\r\n })\r\n newFormsObj[item] = groupForms\r\n })\r\n newFormsObj['noGroupName'] = otherGrups\r\n }\r\n //自定义按钮\r\n let selfButtons = [] as any;\r\n if (Array.isArray(children)) {\r\n children.map((item: any) => {\r\n typeof item == 'object' && selfButtons.push(item);\r\n });\r\n } else if (children) {\r\n typeof children == 'object' && selfButtons.push(children);\r\n }\r\n return (\r\n <Form\r\n ref={this.formRef}\r\n showModel={this.props.formType}\r\n modalProps={{ ...modalProps }}\r\n drawerProps={{ ...drawerProps }}\r\n labelCol={{ flex: \"100px\" }}\r\n wrapperCol={{ flex: \"15vw\" }}\r\n onValuesChange={(changedValues, allValues) => {\r\n const { onFormChange } = this.props;\r\n onFormChange && onFormChange(changedValues, allValues);\r\n }}\r\n changeValid={this.props.changeValid}\r\n {...props}\r\n >\r\n <div className=\"nsc-form-page\">\r\n {formGroups.length == 0 ? this.renderForm(forms, label) : Object.keys(newFormsObj).map((key) => {\r\n return (\r\n <div key={key} className=\"nsc-form-pane\">\r\n {key != \"noGroupName\" && <div className=\"nsc-form-title\">{key}</div>}\r\n <div className=\"nsc-form-content\">{this.renderForm(newFormsObj[key], label)}</div>\r\n </div>\r\n )\r\n })}\r\n {!this.props.formType && footer == true &&\r\n <div className={cls('nsc-form-page-footer', this.props.footerClassName)}>\r\n <Button {...this.props.cancelButtonProps} onClick={() => {\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n return\r\n }\r\n this.setState({ loading: false });\r\n }}>取消</Button>\r\n <Button type=\"primary\" {...this.props.okButtonProps}\r\n onClick={() => {\r\n this.onSubmit()\r\n }}\r\n loading={this.state.loading}\r\n className={'nsc-form-page-footer-btn'}\r\n >\r\n 保存\r\n </Button>\r\n {selfButtons.map((item: any, index: any) => {\r\n return <div className={'nsc-form-page-footer-btn'} key={index}>{item}</div>\r\n })\r\n }\r\n </div>\r\n }\r\n {!this.props.formType && footer !== true && this.props.footer}\r\n </div>\r\n </Form>\r\n );\r\n }\r\n}\r\n\r\nexport default FormPage;\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","PureComponent","Form","getNode","message","Col","Row","isEmptyObj","dayjs","lodash","Button","Upload","cls","FormPage","constructor","arguments","_defineProperty","createRef","loading","label","editorFlag","value","dictNames","fileList","show","orgValue","editorflag","length","undefined","callBack","setState","_this$formRef$current","convertValue","formRef","current","showForm","afterRender","_this$formRef$current2","props","defaultValue","hide","_this$formRef$current3","onHideForm","hideForm","_this$formRef$current4","setLoading","getFormValue","_this$formRef$current5","state","formValue","getFieldsValue","data","_objectSpread","fileFormat","newFileList","map","item","getFileList","submitFlag","error","dateValueFormat","key","olddata","Array","isArray","format","id","type","values","cloneDeep","dateFormat","setFormValue","_this$formRef$current6","newValue","setFieldsValue","doSubmit","formdata","_this$formRef$current7","submitUrl","submitParams","requestObject","requestConfig","addUrl","editorUrl","addParams","editorParams","url","params","Utils","func","Function","converParams","console","otherParams","_objectWithoutProperties","_excluded","onSubmit","noUndefined","res","code","success","obj","fileId","fileName","status","push","_this$formRef$current8","_this$formRef$current9","valid","validateFields","then","catch","errorInfo","valueChange","_ref","valueOption","dictName","newNames","onChange","eventOption","funcs","refs","refList","valueStr","selfFunc","renderForm","forms","newValid","createElement","gutter","index","_item$props","itemProps","valueFormat","name","allowChars","placeholder","concat","bind","dataType","disabled","rules","required","itemRef","_item$props2","span","Item","componentName","ref","_item$props3","_extends","onListChange","list","showUploadList","showDownloadIcon","showRemoveIcon","children","render","footer","modalProps","title","onOk","onCancel","okButtonProps","centered","width","drawerProps","onClose","newFormsObj","formGroups","otherGrups","groupName","indexOf","groupForms","form","selfButtons","showModel","formType","labelCol","flex","wrapperCol","onValuesChange","changedValues","allValues","onFormChange","changeValid","className","Object","keys","footerClassName","cancelButtonProps","onClick"],"sources":["../../../src/components/page/FormPage/index.tsx"],"sourcesContent":["import React, { PureComponent, ReactNode } from \"react\";\r\nimport Form from \"../../base/form\";\r\nimport { getLess, getNode } from \"../../utils\";\r\nimport message from \"../../base/message\";\r\nimport Col from \"../../base/grid/Col\";\r\nimport Row from \"../../base/grid/Row\";\r\nimport { isEmptyObj } from \"@bj-nsc/functions\";\r\nimport dayjs from \"dayjs\";\r\nimport \"./index.module.less\";\r\nimport lodash from \"lodash\";\r\nimport Button from \"../../base/button\";\r\nimport Upload from '../../base/upload'\r\nimport cls from 'classnames'\r\nimport { IFormProps } from \"src/components/base/form/Form\";\r\nexport interface FormPageProps {\r\n forms?: Array<any>; //是否显示操作列\r\n submitUrl?: string;\r\n onSubmit?: (value?: any, label?: any) => void;\r\n footerClassName?: any;\r\n okButtonProps?: any;\r\n cancelButtonProps?: any;\r\n footer?: ReactNode | boolean;\r\n children?: React.ReactNode;\r\n onFormChange?: (value?: any, allValue?: any) => void;\r\n submitParams?: any; //添加参数,默认mothod:post, 参数通过data传递\r\n funcs?: any;\r\n props?: IFormProps;\r\n requestObject?: {\r\n addUrl?: string,\r\n editorUrl?: string,\r\n addParams?: any,\r\n editorParams?: any\r\n }\r\n requestConfig?: any\r\n [propsName: string]: any;\r\n}\r\nclass FormPage extends PureComponent<FormPageProps, any> {\r\n formRef = React.createRef<any>();\r\n state = {\r\n loading: false,\r\n label: \"\",\r\n editorFlag: true,\r\n value: {} as any,\r\n dictNames: {} as any,\r\n fileList: {} as any\r\n };\r\n valid: any = [];\r\n dateValueFormat = {} as any;\r\n dateFormat = {} as any;\r\n fileFormat = [] as any;\r\n refList = {} as any;\r\n submitFlag = true\r\n //表单显示\r\n show(orgValue?: any, editorflag = \"add\", callBack?: any) {\r\n let label = \"新增\";\r\n if (orgValue && editorflag == \"editor\") {\r\n label = \"编辑\";\r\n } else if (orgValue && editorflag == \"detail\") {\r\n label = \"查看\";\r\n }\r\n if (orgValue) {\r\n this.setState(\r\n {\r\n label: label,\r\n value: orgValue,\r\n },\r\n () => {\r\n let value = this.convertValue(orgValue, label);\r\n //处理文件数据\r\n this.formRef.current?.showForm(value, {\r\n afterRender: () => {\r\n callBack && callBack()\r\n }\r\n });\r\n }\r\n );\r\n } else {\r\n this.setState(\r\n {\r\n label: label,\r\n },\r\n () => {\r\n this.formRef.current?.showForm(this.props.defaultValue, {\r\n afterRender: () => {\r\n callBack && callBack()\r\n }\r\n });\r\n }\r\n );\r\n }\r\n }\r\n hide(hide = true) {\r\n const { onHideForm } = this.props;\r\n if (onHideForm) {\r\n onHideForm && onHideForm();\r\n return;\r\n }\r\n this.setState({ loading: false, fileList: {} });\r\n hide && this.formRef.current?.hideForm();\r\n }\r\n hideForm() {\r\n this.setState({ loading: false, fileList: {} });\r\n this.formRef.current?.hideForm();\r\n }\r\n showForm(orgValue?: any, editorflag = \"add\", callBack?: any) {\r\n this.show(orgValue, editorflag, callBack)\r\n }\r\n setLoading(loading: boolean) {\r\n this.setState({ loading: loading });\r\n }\r\n getFormValue() {\r\n const { label, value, dictNames, fileList } = this.state;\r\n const formValue = this.formRef.current?.getFieldsValue();\r\n let data = { ...formValue, ...dictNames };\r\n if (this.fileFormat.length > 0) {\r\n let newFileList = {} as any;\r\n this.fileFormat.map((item) => {\r\n if (fileList[item].length == 0) {\r\n newFileList[item] = null;\r\n } else {\r\n if (!formValue[item]) {\r\n newFileList[item] = this.getFileList(fileList[item] || []);\r\n }\r\n }\r\n })\r\n data = { ...data, ...newFileList };\r\n }\r\n if (!this.submitFlag) {\r\n message.error('请等待所有文件上传完成!')\r\n return;\r\n }\r\n if (!isEmptyObj(this.dateValueFormat)) {\r\n for (let key in this.dateValueFormat) {\r\n let olddata = data[key];\r\n if (olddata) {\r\n if (Array.isArray(olddata)) {\r\n data[key] = [\r\n dayjs(olddata[0]).format(this.dateValueFormat[key]),\r\n dayjs(olddata[1]).format(this.dateValueFormat[key]),\r\n ];\r\n } else {\r\n data[key] = dayjs(olddata).format(this.dateValueFormat[key]);\r\n }\r\n }\r\n }\r\n }\r\n if (label == \"编辑\") {\r\n data = { ...data, id: value?.id };\r\n }\r\n return data;\r\n }\r\n convertValue(value, type) {\r\n let values = lodash.cloneDeep(value);\r\n if (this.fileFormat.length > 0) {\r\n let fileList = {} as any;\r\n this.fileFormat.map((item) => {\r\n let olddata = values[item];\r\n if (olddata && Array.isArray(olddata)) {\r\n fileList[item] = this.getFileList(olddata || [], type);\r\n } else {\r\n fileList[item] = []\r\n }\r\n })\r\n this.setState({ fileList: fileList })\r\n }\r\n //处理日期格式数据\r\n if (!isEmptyObj(this.dateFormat)) {\r\n for (let key in this.dateFormat) {\r\n let olddata = values[key];\r\n if (olddata) {\r\n if (Array.isArray(olddata)) {\r\n values[key] = [\r\n dayjs(olddata[0], this.dateFormat[key]),\r\n dayjs(olddata[1], this.dateFormat[key]),\r\n ];\r\n } else {\r\n values[key] = dayjs(olddata, this.dateFormat[key]);\r\n }\r\n }\r\n }\r\n }\r\n return values\r\n }\r\n setFormValue(value, type) {\r\n const newValue = this.convertValue(value, type);\r\n this.formRef.current?.setFieldsValue(newValue);\r\n }\r\n doSubmit(formdata, label) {\r\n const { submitUrl, submitParams = {}, callBack, requestObject = {}, requestConfig = {} } = this.props;\r\n const { addUrl, editorUrl, addParams, editorParams } = requestObject\r\n let url = '';\r\n let params: any = {};\r\n if (label == '新增') {\r\n url = addUrl ? addUrl : submitUrl;\r\n if (addParams && typeof addParams == 'string') {\r\n const Utils = this.props.Utils || {}\r\n let func = new Function('Utils', addParams);\r\n let converParams = func(Utils)\r\n params = converParams\r\n } else {\r\n params = addParams ? addParams : submitParams;\r\n }\r\n } else if (label == '编辑') {\r\n url = editorUrl ? editorUrl : submitUrl;\r\n if (editorParams && typeof editorParams == 'string') {\r\n const Utils = this.props.Utils || {}\r\n let func = new Function('Utils', editorParams);\r\n let converParams = func(Utils)\r\n params = converParams\r\n } else {\r\n params = editorParams ? editorParams : submitParams;\r\n }\r\n }\r\n if (!url) {\r\n console.error(\"配置Url不能为空!\");\r\n return;\r\n }\r\n const { data = {}, ...otherParams } = params;\r\n this.formRef.current?.onSubmit(\r\n url,\r\n {\r\n data: { ...formdata, ...data },\r\n noUndefined: label == \"编辑\",\r\n ...requestConfig,\r\n ...otherParams,\r\n },\r\n (res: any) => {\r\n const { code } = res;\r\n this.setState({ loading: false });\r\n if (code === 200) {\r\n message.success(label + \"成功\");\r\n this.hide(true);\r\n callBack && callBack();\r\n return;\r\n }\r\n this.hide(false);\r\n }\r\n );\r\n }\r\n getFileList(data, label = '新增') {\r\n this.submitFlag = true\r\n let fileList = [] as any;\r\n if (data && data.length > 0) {\r\n data.map((item) => {\r\n let obj = {\r\n fileId: item.fileId,\r\n fileName: item.fileName,\r\n } as any;\r\n if (label == '查看') {\r\n obj.status = 'done';\r\n }\r\n if (label !== '查看' && item.status !== 'done') {\r\n this.submitFlag = false;\r\n }\r\n fileList.push(obj);\r\n });\r\n }\r\n return fileList;\r\n };\r\n\r\n onSubmit() {\r\n const { onSubmit } = this.props;\r\n const { label, value, dictNames, fileList } = this.state;\r\n const formValue = this.formRef.current?.getFieldsValue();\r\n let valid = this.valid;\r\n this.formRef.current\r\n ?.validateFields(valid)\r\n .then(() => {\r\n let data = this.getFormValue()\r\n if (!this.submitFlag) {\r\n message.error('请等待所有文件上传完成!')\r\n return;\r\n }\r\n this.setState({ loading: true });\r\n if (onSubmit) {\r\n onSubmit && onSubmit(data, label);\r\n return;\r\n }\r\n this.doSubmit(data, label);\r\n })\r\n .catch((errorInfo: any) => { });\r\n }\r\n valueChange({ type, dictName }, props, value, valueOption, data) {\r\n if (valueOption) {\r\n if (dictName) {\r\n const { dictNames } = this.state;\r\n const newNames = { ...dictNames } as any;\r\n newNames[dictName] = valueOption.label;\r\n this.setState({\r\n dictNames: newNames,\r\n });\r\n }\r\n }\r\n if (props.onChange) {\r\n if (typeof props.onChange == 'function') {\r\n props.onChange(value, valueOption, data);\r\n } else if (typeof props.onChange == 'string') {\r\n const eventOption = { value, data, formRef: this.formRef, funcs: this.props.funcs || {}, refs: this.refList } as any;\r\n const Utils = this.props.Utils || {}\r\n if (type == 'Select') {\r\n eventOption.valueOption = valueOption;\r\n eventOption.data = data\r\n } else if (type == 'DatePicker' || type == 'RangePicker') {\r\n eventOption.valueStr = valueOption;\r\n }\r\n const selfFunc = new Function('eventOption', 'Utils', props.onChange);\r\n selfFunc(eventOption, Utils);\r\n }\r\n }\r\n }\r\n\r\n renderForm(forms, label) {\r\n const newValid: any[] = [];\r\n return <Row gutter={24}>\r\n {forms.map((item: any, index: number) => {\r\n const itemProps = item.props || {};\r\n if (itemProps.format || itemProps.valueFormat) {\r\n this.dateValueFormat[item.name] =\r\n itemProps.format || itemProps.valueFormat;\r\n }\r\n if (itemProps.format) {\r\n this.dateFormat[item.name] = itemProps.format;\r\n }\r\n let allowChars = item.props?.allowChars || false;\r\n let props = {\r\n placeholder: `请输入${item.label}`,\r\n ...item.props,\r\n onChange: this.valueChange.bind(\r\n this,\r\n {\r\n type: item.type,\r\n dictName: item.dictName,\r\n },\r\n { ...item.props }\r\n ),\r\n };\r\n if (!item.type || item.type == \"Input\") {\r\n props.allowChars = true; //form.item 使用input组件allowChars必须默认true,不然输入特殊字符拿到的值不对\r\n }\r\n delete props.valueFormat;\r\n delete props.format;\r\n delete props.dataType;\r\n if (label == \"查看\") {\r\n props.disabled = true;\r\n props.placeholder = ''\r\n }\r\n if ((item.rules && item.rules.length > 0) || item.required === true) {\r\n newValid.push(item.name);\r\n }\r\n if (index + 1 === forms.length) {\r\n this.valid = newValid;\r\n }\r\n const itemRef: any = React.createRef<any>()\r\n this.refList[item.name] = itemRef\r\n if (item.type !== 'Upload') {\r\n return (\r\n <Col span={item.span || 12} key={index}>\r\n <Form.Item\r\n label={item.label}\r\n name={item.name}\r\n rules={item.rules}\r\n allowChars={allowChars}\r\n componentName={item.type ? item.type : \"Input\"}\r\n required={item.required}\r\n type={item.props?.type}\r\n >\r\n {getNode(item.type, {\r\n ref: itemRef,\r\n ...props,\r\n })}\r\n </Form.Item>\r\n </Col>\r\n );\r\n } else {\r\n this.fileFormat.push(item.name)\r\n return (\r\n <Col span={item.span || 12} key={index}>\r\n <Form.Item\r\n label={item.label}\r\n name={item.name}\r\n rules={item.rules}\r\n allowChars={allowChars}\r\n type={item.props?.type}\r\n required={item.required}\r\n >\r\n <Upload\r\n fileList={this.state.fileList[item.name] || []}\r\n onListChange={(list) => {\r\n const { fileList } = this.state\r\n this.setState({\r\n fileList: { ...fileList, [item.name]: list }\r\n })\r\n }}\r\n showUploadList={{ showDownloadIcon: true, showRemoveIcon: label !== '查看' }}\r\n ref={itemRef}\r\n {...props}>\r\n {item.props.children ? item.props.children : (label !== '查看' && <Button>上传文件</Button>)}\r\n </Upload>\r\n </Form.Item>\r\n </Col>\r\n );\r\n }\r\n })}\r\n </Row>\r\n }\r\n render() {\r\n const { forms = [], props = {}, footer = true, children } = this.props;\r\n const { loading, label } = this.state;\r\n let modalProps = {\r\n title: label,\r\n onOk: this.onSubmit.bind(this),\r\n onCancel: this.hide.bind(this),\r\n okButtonProps: { loading: loading },\r\n centered: true,\r\n width: \"50vw\",\r\n } as any;\r\n\r\n\r\n let drawerProps = {\r\n title: label,\r\n onOk: this.onSubmit.bind(this),\r\n onClose: this.hide.bind(this),\r\n width: \"50vw\",\r\n } as any;\r\n if (label == \"查看\") {\r\n modalProps.footer = null;\r\n drawerProps.footer = null;\r\n }\r\n this.dateValueFormat = {};\r\n this.dateFormat = {};\r\n this.fileFormat = []\r\n let newFormsObj = {} as any;\r\n let formGroups = [] as any\r\n let otherGrups = [] as any\r\n //处理表单数据\r\n forms.map((item: any) => {\r\n if (item.groupName && formGroups.indexOf(item.groupName) < 0) {\r\n formGroups.push(item.groupName);\r\n } else if (!item.groupName) {\r\n otherGrups.push(item)\r\n }\r\n })\r\n if (formGroups.length > 0) {\r\n formGroups.map((item: any) => {\r\n let groupForms = [] as any\r\n forms.map((form: any) => {\r\n if (form.groupName == item) {\r\n groupForms.push(form)\r\n }\r\n })\r\n newFormsObj[item] = groupForms\r\n })\r\n newFormsObj['noGroupName'] = otherGrups\r\n }\r\n //自定义按钮\r\n let selfButtons = [] as any;\r\n if (Array.isArray(children)) {\r\n children.map((item: any) => {\r\n typeof item == 'object' && selfButtons.push(item);\r\n });\r\n } else if (children) {\r\n typeof children == 'object' && selfButtons.push(children);\r\n }\r\n return (\r\n <Form\r\n ref={this.formRef}\r\n showModel={this.props.formType}\r\n modalProps={{ ...modalProps }}\r\n drawerProps={{ ...drawerProps }}\r\n labelCol={{ flex: \"100px\" }}\r\n wrapperCol={{ flex: \"15vw\" }}\r\n onValuesChange={(changedValues, allValues) => {\r\n const { onFormChange } = this.props;\r\n onFormChange && onFormChange(changedValues, allValues);\r\n }}\r\n changeValid={this.props.changeValid}\r\n {...props}\r\n >\r\n <div className=\"nsc-form-page\">\r\n {formGroups.length == 0 ? this.renderForm(forms, label) : Object.keys(newFormsObj).map((key) => {\r\n return (\r\n <div key={key} className=\"nsc-form-pane\">\r\n {key != \"noGroupName\" && <div className=\"nsc-form-title\">{key}</div>}\r\n <div className=\"nsc-form-content\">{this.renderForm(newFormsObj[key], label)}</div>\r\n </div>\r\n )\r\n })}\r\n {!this.props.formType && footer == true &&\r\n <div className={cls('nsc-form-page-footer', this.props.footerClassName)}>\r\n <Button {...this.props.cancelButtonProps} onClick={() => {\r\n if (this.props.onCancel) {\r\n this.props.onCancel();\r\n return\r\n }\r\n this.setState({ loading: false });\r\n }}>取消</Button>\r\n <Button type=\"primary\" {...this.props.okButtonProps}\r\n onClick={() => {\r\n this.onSubmit()\r\n }}\r\n loading={this.state.loading}\r\n className={'nsc-form-page-footer-btn'}\r\n >\r\n 保存\r\n </Button>\r\n {selfButtons.map((item: any, index: any) => {\r\n return <div className={'nsc-form-page-footer-btn'} key={index}>{item}</div>\r\n })\r\n }\r\n </div>\r\n }\r\n {!this.props.formType && footer !== true && this.props.footer}\r\n </div>\r\n </Form>\r\n );\r\n }\r\n}\r\n\r\nexport default FormPage;\r\n"],"mappings":"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"}
|
|
@@ -114,8 +114,8 @@ class HeaderSearch extends PureComponent {
|
|
|
114
114
|
var _item$props;
|
|
115
115
|
const itemProps = item.props || {};
|
|
116
116
|
let display = "block";
|
|
117
|
-
if (itemProps.valueFormat) {
|
|
118
|
-
this.dateFormat[item.name] = itemProps.valueFormat;
|
|
117
|
+
if (itemProps.format || itemProps.valueFormat) {
|
|
118
|
+
this.dateFormat[item.name] = itemProps.format || itemProps.valueFormat;
|
|
119
119
|
}
|
|
120
120
|
if (index > headerCount && !this.state.expand) {
|
|
121
121
|
display = "none";
|
|
@@ -229,4 +229,4 @@ class HeaderSearch extends PureComponent {
|
|
|
229
229
|
}
|
|
230
230
|
}
|
|
231
231
|
export default HeaderSearch;
|
|
232
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiQnV0dG9uIiwiY2xzIiwiQ29sIiwiUm93IiwibW9tZW50IiwiaXNFbXB0eU9iaiIsIkRvd25PdXRsaW5lZCIsIlVwT3V0bGluZWQiLCJSZWxvYWRPdXRsaW5lZCIsIlNlYXJjaE91dGxpbmVkIiwiZ2V0TGVzcyIsImdldE5vZGUiLCJzdHlsZXMiLCJIZWFkZXJTZWFyY2giLCJjb25zdHJ1Y3RvciIsImFyZ3VtZW50cyIsIl9kZWZpbmVQcm9wZXJ0eSIsImNyZWF0ZVJlZiIsImV4cGFuZCIsInNldFNlYXJjaFBhcmFtcyIsInBhcmFtcyIsImNhbGxCYWNrIiwiX3RoaXMkc2VhcmNoUmVmJGN1cnJlIiwic2VhcmNoUmVmIiwiY3VycmVudCIsInNldEZpZWxkc1ZhbHVlIiwiZ2V0U2VhcmNoVmFsdWVzIiwiZnJvbVZhbHVlIiwiZm9ybWF0VmFsdWUiLCJfdGhpcyRzZWFyY2hSZWYkY3VycmUyIiwiZ2V0RmllbGRzVmFsdWUiLCJkYXRlRm9ybWF0Iiwia2V5Iiwib2xkZGF0YSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImZvcm1hdCIsIm9uU2VhcmNoIiwicHJvcHMiLCJyZXNldEZpZWxkcyIsIl90aGlzJHNlYXJjaFJlZiRjdXJyZTMiLCJyZXNldFNlYXJjaCIsIl90aGlzJHNlYXJjaFJlZiRjdXJyZTQiLCJvblJlc2V0IiwicmVuZGVyIiwic2VhcmNoRm9ybXMiLCJ0b29sQnV0dG9uUG9zaXRpb24iLCJzZWFyY2hGb3JtUHJvcHMiLCJjb2xTcGFuIiwiaGVhZGVyQ291bnQiLCJoZWFkZXJSb3V0IiwiY3JlYXRlRWxlbWVudCIsImd1dHRlciIsIndyYXAiLCJjbGFzc05hbWUiLCJfZXh0ZW5kcyIsInJlZiIsImxhYmVsQ29sIiwid3JhcHBlckNvbCIsInN0eWxlIiwid2lkdGgiLCJkaXNwbGF5IiwiZmxleFdyYXAiLCJvbkZpbmlzaCIsImJpbmQiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJfaXRlbSRwcm9wcyIsIml0ZW1Qcm9wcyIsInZhbHVlRm9ybWF0IiwibmFtZSIsInN0YXRlIiwiYWxsb3dDaGFycyIsIl9vYmplY3RTcHJlYWQiLCJzZWFyY2hEaXNhYmxlZCIsInR5cGUiLCJkZWZhdWx0SXRlbSIsImxhYmVsIiwicnVsZXMiLCJjb21wb25lbnROYW1lIiwicGxhY2Vob2xkZXIiLCJjb25jYXQiLCJtZCIsInNwYW4iLCJzbSIsImxnIiwicGFkZGluZ1JpZ2h0IiwiSXRlbSIsImRpc2FibGVkIiwib2Zmc2V0IiwibWFyZ2luVG9wIiwiYnV0dG9uUmV2ZXJzIiwiaWNvbiIsIm1hcmdpbkxlZnQiLCJodG1sVHlwZSIsIm9uQ2xpY2siLCJzZXRTdGF0ZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvSGVhZGVyU2VhcmNoL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBGb3JtIGZyb20gXCIuLi8uLi9iYXNlL2Zvcm1cIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IENvbCBmcm9tIFwiLi4vLi4vYmFzZS9ncmlkL0NvbFwiO1xyXG5pbXBvcnQgUm93IGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvUm93XCI7XHJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQgeyBpc0VtcHR5T2JqIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7XHJcbiAgRG93bk91dGxpbmVkLFxyXG4gIFVwT3V0bGluZWQsXHJcbiAgUmVsb2FkT3V0bGluZWQsXHJcbiAgU2VhcmNoT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuY29uc3Qgc3R5bGVzID0gbnVsbDtcclxuaW50ZXJmYWNlIFNlYXJjaEl0ZW1Qcm9wcyB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgbGFiZWxDb2w/OiBhbnk7XHJcbiAgdHlwZT86IHN0cmluZztcclxuICB3cmFwcGVyQ29sPzogYW55O1xyXG4gIHByb3BzPzogYW55O1xyXG59XHJcbmludGVyZmFjZSBTZWFyY2hQcm9wcyB7XHJcbiAgc2VhcmNoRm9ybXM6IEFycmF5PFNlYXJjaEl0ZW1Qcm9wcz47IC8v5piv5ZCm5pi+56S65pON5L2c5YiXXHJcbiAgdG9vbEJ1dHRvblBvc2l0aW9uPzogc3RyaW5nO1xyXG4gIG9uU2VhcmNoPzogYW55O1xyXG4gIG9uUmVzZXQ/OiBhbnk7XHJcbiAgc2VhcmNoRm9ybVByb3BzPzogb2JqZWN0O1xyXG4gIGJ1dHRvblJldmVycz86IGJvb2xlYW47XHJcbiAgY2xhc3NOYW1lPzogYW55O1xyXG59XHJcblxyXG5jbGFzcyBIZWFkZXJTZWFyY2ggZXh0ZW5kcyBQdXJlQ29tcG9uZW50PFNlYXJjaFByb3BzLCBhbnk+IHtcclxuICBzZWFyY2hSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGRhdGVGb3JtYXQgPSB7fSBhcyBhbnk7XHJcbiAgc3RhdGUgPSB7IGV4cGFuZDogZmFsc2UgfTtcclxuICBzZXRTZWFyY2hQYXJhbXMocGFyYW1zLCBjYWxsQmFjaykge1xyXG4gICAgdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUocGFyYW1zKTtcclxuICB9XHJcbiAgZ2V0U2VhcmNoVmFsdWVzKCkge1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5mb3JtYXRWYWx1ZSgpO1xyXG4gICAgcmV0dXJuIGZyb21WYWx1ZTtcclxuICB9XHJcbiAgZm9ybWF0VmFsdWUoKSB7XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5nZXRGaWVsZHNWYWx1ZSgpO1xyXG4gICAgaWYgKCFpc0VtcHR5T2JqKHRoaXMuZGF0ZUZvcm1hdCkpIHtcclxuICAgICAgZm9yIChsZXQga2V5IGluIHRoaXMuZGF0ZUZvcm1hdCkge1xyXG4gICAgICAgIGxldCBvbGRkYXRhID0gZnJvbVZhbHVlW2tleV07XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgIGlmIChvbGRkYXRhLmxlbmd0aCA+IDAgJiYgb2xkZGF0YVswXSAmJiBvbGRkYXRhWzFdKSB7XHJcbiAgICAgICAgICAgIGZyb21WYWx1ZVtrZXldID0gW1xyXG4gICAgICAgICAgICAgIG1vbWVudChvbGRkYXRhWzBdKS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIG1vbWVudChvbGRkYXRhWzFdKS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgZnJvbVZhbHVlW2tleV0gPSBtb21lbnQob2xkZGF0YSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdFtrZXldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmcm9tVmFsdWU7XHJcbiAgfVxyXG4gIG9uU2VhcmNoKCkge1xyXG4gICAgY29uc3QgeyBvblNlYXJjaCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuZm9ybWF0VmFsdWUoKTtcclxuICAgIGlmIChvblNlYXJjaCkge1xyXG4gICAgICBvblNlYXJjaChmcm9tVmFsdWUpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlc2V0RmllbGRzKCkge1xyXG4gICAgdGhpcy5zZWFyY2hSZWYuY3VycmVudD8ucmVzZXRGaWVsZHMoKTtcclxuICB9XHJcbiAgcmVzZXRTZWFyY2goKSB7XHJcbiAgICBpZiAodGhpcy5wcm9wcy5vblJlc2V0KSB7XHJcbiAgICAgIHRoaXMucHJvcHMub25SZXNldCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5yZXNldEZpZWxkcygpO1xyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHNlYXJjaEZvcm1zID0gW10sXHJcbiAgICAgIHRvb2xCdXR0b25Qb3NpdGlvbixcclxuICAgICAgb25TZWFyY2gsXHJcbiAgICAgIG9uUmVzZXQsXHJcbiAgICAgIHNlYXJjaEZvcm1Qcm9wcyA9IHt9LFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcblxyXG4gICAgbGV0IGNvbFNwYW4gPSAwO1xyXG4gICAgY29uc3QgaGVhZGVyQ291bnQgPSB0b29sQnV0dG9uUG9zaXRpb24gPT0gXCJyaWdodFwiID8gMSA6IDI7XHJcbiAgICBjb25zdCBoZWFkZXJSb3V0ID0gc2VhcmNoRm9ybXMubGVuZ3RoICUgNDtcclxuICAgIGlmIChoZWFkZXJSb3V0ID09IDApIHtcclxuICAgICAgY29sU3BhbiA9IDE4O1xyXG4gICAgfSBlbHNlIGlmIChoZWFkZXJSb3V0ID09IDEpIHtcclxuICAgICAgY29sU3BhbiA9IDEyO1xyXG4gICAgfSBlbHNlIGlmIChoZWFkZXJSb3V0ID09IDIpIHtcclxuICAgICAgY29sU3BhbiA9IDY7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8Um93IGd1dHRlcj17MjR9IHdyYXA+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcIm5zYy1oZWFkZXJzZWFyY2gtaGVhZGVyXCIpLFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcIm5zYy1oZWFkZXJzZWFyY2gtaGVhZGVyLXBhZGRpbmdcIildOlxyXG4gICAgICAgICAgICAgICAgc2VhcmNoRm9ybXMubGVuZ3RoID4gMyxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgdGhpcy5wcm9wcy5jbGFzc05hbWVcclxuICAgICAgICAgICl9XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJuc2MtaGVhZGVyc2VhcmNoLWZvcm1cIikpfT5cclxuICAgICAgICAgICAgPEZvcm1cclxuICAgICAgICAgICAgICByZWY9e3RoaXMuc2VhcmNoUmVmfVxyXG4gICAgICAgICAgICAgIGxhYmVsQ29sPXt7fX1cclxuICAgICAgICAgICAgICB3cmFwcGVyQ29sPXt7fX1cclxuICAgICAgICAgICAgICBzdHlsZT17eyB3aWR0aDogXCIxMDAlXCIsIGRpc3BsYXk6IFwiZmxleFwiLCBmbGV4V3JhcDogXCJ3cmFwXCIgfX1cclxuICAgICAgICAgICAgICBvbkZpbmlzaD17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgIC8vIGxhYmVsQWxpZ249eydsZWZ0J31cclxuICAgICAgICAgICAgICB7Li4uc2VhcmNoRm9ybVByb3BzfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3NlYXJjaEZvcm1zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtUHJvcHMgPSBpdGVtLnByb3BzIHx8IHt9O1xyXG4gICAgICAgICAgICAgICAgbGV0IGRpc3BsYXkgPSBcImJsb2NrXCI7XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbVByb3BzLnZhbHVlRm9ybWF0KSB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZUZvcm1hdFtpdGVtLm5hbWVdID0gaXRlbVByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gaGVhZGVyQ291bnQgJiYgIXRoaXMuc3RhdGUuZXhwYW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXkgPSBcIm5vbmVcIjtcclxuICAgICAgICAgICAgICAgICAgLy9yZXR1cm5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCBhbGxvd0NoYXJzID0gaXRlbT8ucHJvcHM/LmFsbG93Q2hhcnMgfHwgZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJvcHMgPSB7IC4uLml0ZW1Qcm9wcyB9O1xyXG4gICAgICAgICAgICAgICAgbGV0IHNlYXJjaERpc2FibGVkID1cclxuICAgICAgICAgICAgICAgICAgcHJvcHMuc2VhcmNoRGlzYWJsZWQgPT09IHRydWUgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgcHJvcHMuc2VhcmNoRGlzYWJsZWQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIHByb3BzLmFsbG93Q2hhcnMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIHByb3BzLmFsbG93Q2hhcnM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgZGVmYXVsdEl0ZW0gPSB7XHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpdGVtLmxhYmVsLFxyXG4gICAgICAgICAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIGFsbG93Q2hhcnM6IGFsbG93Q2hhcnMsXHJcbiAgICAgICAgICAgICAgICAgIHJ1bGVzOiBpdGVtLnJ1bGVzLFxyXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnROYW1lOiBpdGVtLnR5cGUgPyBpdGVtLnR5cGUgOiBcIklucHV0XCIsXHJcbiAgICAgICAgICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLmxhYmVsQ29sKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRJdGVtID0geyAuLi5kZWZhdWx0SXRlbSwgbGFiZWxDb2w6IGl0ZW0ubGFiZWxDb2wgfTtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0ubGFiZWxDb2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS53cmFwcGVyQ29sKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRJdGVtID0geyAuLi5kZWZhdWx0SXRlbSwgd3JhcHBlckNvbDogaXRlbS53cmFwcGVyQ29sIH07XHJcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLndyYXBwZXJDb2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgcGxhY2Vob2xkZXI6IGFueSA9XHJcbiAgICAgICAgICAgICAgICAgIGl0ZW0udHlwZSA9PSBcIlNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPyBg6K+36YCJ5oupJHtpdGVtLmxhYmVsfWBcclxuICAgICAgICAgICAgICAgICAgICA6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YDtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT0gXCJSYW5nZVBpY2tlclwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyID0gW1wi5byA5aeL5pe26Ze0XCIsIFwi57uT5p2f5pe26Ze0XCJdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgICAgIG1kPXt7IHNwYW46IDEyIH19XHJcbiAgICAgICAgICAgICAgICAgICAgc209e3sgc3BhbjogMjQgfX1cclxuICAgICAgICAgICAgICAgICAgICBsZz17eyBzcGFuOiA2IH19XHJcbiAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBwYWRkaW5nUmlnaHQ6IDAsIGRpc3BsYXk6IGRpc3BsYXkgfX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW0gey4uLmRlZmF1bHRJdGVtfT5cclxuICAgICAgICAgICAgICAgICAgICAgIHtnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IHdpZHRoOiBcIjEwMCVcIiB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHNlYXJjaERpc2FibGVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICBtZD17eyBzcGFuOiAxMiB9fVxyXG4gICAgICAgICAgICAgICAgc209e3sgc3BhbjogMjQgfX1cclxuICAgICAgICAgICAgICAgIGxnPXt7IHNwYW46IHRvb2xCdXR0b25Qb3NpdGlvbiA9PSBcInJpZ2h0XCIgPyAxMiA6IDYgfX1cclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IHBhZGRpbmdSaWdodDogMCB9fVxyXG4gICAgICAgICAgICAgICAgb2Zmc2V0PXtcclxuICAgICAgICAgICAgICAgICAgKHRoaXMuc3RhdGUuZXhwYW5kIHx8IHNlYXJjaEZvcm1zLmxlbmd0aCA8IDQpICYmXHJcbiAgICAgICAgICAgICAgICAgIHNlYXJjaEZvcm1zLmxlbmd0aCA+IDFcclxuICAgICAgICAgICAgICAgICAgICA/IGNvbFNwYW5cclxuICAgICAgICAgICAgICAgICAgICA6IDBcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKFxyXG4gICAgICAgICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcIm5zYy1oZWFkZXJzZWFyY2gtc2VhcmNoLWJ1dHRvbnNcIiksXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcIm5zYy1oZWFkZXJzZWFyY2gtc2VhcmNoLWJ1dHRvbnMtZmxleFwiKV06XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEZvcm1zLmxlbmd0aCA+IDEsXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5Ub3A6IDAgfX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKHtcclxuICAgICAgICAgICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJuc2MtaGVhZGVyc2VhcmNoLWJ1dHRvbi1yZXZlcnNlXCIpXTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcm9wcy5idXR0b25SZXZlcnMgPT0gdHJ1ZSxcclxuICAgICAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgLy8gb25DbGljaz17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgaWNvbj17PFNlYXJjaE91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogMCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgaHRtbFR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIOafpeivolxyXG4gICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIHtzZWFyY2hGb3Jtcy5sZW5ndGggPiAxICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMucmVzZXRTZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17PFJlbG9hZE91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICDph43nva5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICB7c2VhcmNoRm9ybXMubGVuZ3RoID4gMyAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGVzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcIm5zYy1oZWFkZXJzZWFyY2gtZXhwYW5kLXN0eWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZXhwYW5kIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBleHBhbmQ6ICFleHBhbmQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5zdGF0ZS5leHBhbmQgPyBcIuaUtui1t1wiIDogXCLlsZXlvIBcIn1cclxuICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLmV4cGFuZCA/IDxVcE91dGxpbmVkIC8+IDogPERvd25PdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgPC9Gb3JtPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvUm93PlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgSGVhZGVyU2VhcmNoO1xyXG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU9BLEtBQUssSUFBSUMsYUFBYSxRQUFtQixPQUFPO0FBQ3ZELE9BQU9DLElBQUksTUFBTSxpQkFBaUI7QUFDbEMsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUN0QyxPQUFPQyxHQUFHLE1BQU0sWUFBWTtBQUM1QixPQUFPLGNBQWM7QUFDckIsT0FBT0MsR0FBRyxNQUFNLHFCQUFxQjtB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
|
|
232
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJGb3JtIiwiQnV0dG9uIiwiY2xzIiwiQ29sIiwiUm93IiwibW9tZW50IiwiaXNFbXB0eU9iaiIsIkRvd25PdXRsaW5lZCIsIlVwT3V0bGluZWQiLCJSZWxvYWRPdXRsaW5lZCIsIlNlYXJjaE91dGxpbmVkIiwiZ2V0TGVzcyIsImdldE5vZGUiLCJzdHlsZXMiLCJIZWFkZXJTZWFyY2giLCJjb25zdHJ1Y3RvciIsImFyZ3VtZW50cyIsIl9kZWZpbmVQcm9wZXJ0eSIsImNyZWF0ZVJlZiIsImV4cGFuZCIsInNldFNlYXJjaFBhcmFtcyIsInBhcmFtcyIsImNhbGxCYWNrIiwiX3RoaXMkc2VhcmNoUmVmJGN1cnJlIiwic2VhcmNoUmVmIiwiY3VycmVudCIsInNldEZpZWxkc1ZhbHVlIiwiZ2V0U2VhcmNoVmFsdWVzIiwiZnJvbVZhbHVlIiwiZm9ybWF0VmFsdWUiLCJfdGhpcyRzZWFyY2hSZWYkY3VycmUyIiwiZ2V0RmllbGRzVmFsdWUiLCJkYXRlRm9ybWF0Iiwia2V5Iiwib2xkZGF0YSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImZvcm1hdCIsIm9uU2VhcmNoIiwicHJvcHMiLCJyZXNldEZpZWxkcyIsIl90aGlzJHNlYXJjaFJlZiRjdXJyZTMiLCJyZXNldFNlYXJjaCIsIl90aGlzJHNlYXJjaFJlZiRjdXJyZTQiLCJvblJlc2V0IiwicmVuZGVyIiwic2VhcmNoRm9ybXMiLCJ0b29sQnV0dG9uUG9zaXRpb24iLCJzZWFyY2hGb3JtUHJvcHMiLCJjb2xTcGFuIiwiaGVhZGVyQ291bnQiLCJoZWFkZXJSb3V0IiwiY3JlYXRlRWxlbWVudCIsImd1dHRlciIsIndyYXAiLCJjbGFzc05hbWUiLCJfZXh0ZW5kcyIsInJlZiIsImxhYmVsQ29sIiwid3JhcHBlckNvbCIsInN0eWxlIiwid2lkdGgiLCJkaXNwbGF5IiwiZmxleFdyYXAiLCJvbkZpbmlzaCIsImJpbmQiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJfaXRlbSRwcm9wcyIsIml0ZW1Qcm9wcyIsInZhbHVlRm9ybWF0IiwibmFtZSIsInN0YXRlIiwiYWxsb3dDaGFycyIsIl9vYmplY3RTcHJlYWQiLCJzZWFyY2hEaXNhYmxlZCIsInR5cGUiLCJkZWZhdWx0SXRlbSIsImxhYmVsIiwicnVsZXMiLCJjb21wb25lbnROYW1lIiwicGxhY2Vob2xkZXIiLCJjb25jYXQiLCJtZCIsInNwYW4iLCJzbSIsImxnIiwicGFkZGluZ1JpZ2h0IiwiSXRlbSIsImRpc2FibGVkIiwib2Zmc2V0IiwibWFyZ2luVG9wIiwiYnV0dG9uUmV2ZXJzIiwiaWNvbiIsIm1hcmdpbkxlZnQiLCJodG1sVHlwZSIsIm9uQ2xpY2siLCJzZXRTdGF0ZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvSGVhZGVyU2VhcmNoL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBGb3JtIGZyb20gXCIuLi8uLi9iYXNlL2Zvcm1cIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IENvbCBmcm9tIFwiLi4vLi4vYmFzZS9ncmlkL0NvbFwiO1xyXG5pbXBvcnQgUm93IGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvUm93XCI7XHJcbmltcG9ydCBtb21lbnQgZnJvbSBcIm1vbWVudFwiO1xyXG5pbXBvcnQgeyBpc0VtcHR5T2JqIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCB7XHJcbiAgRG93bk91dGxpbmVkLFxyXG4gIFVwT3V0bGluZWQsXHJcbiAgUmVsb2FkT3V0bGluZWQsXHJcbiAgU2VhcmNoT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuY29uc3Qgc3R5bGVzID0gbnVsbDtcclxuaW50ZXJmYWNlIFNlYXJjaEl0ZW1Qcm9wcyB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgbGFiZWxDb2w/OiBhbnk7XHJcbiAgdHlwZT86IHN0cmluZztcclxuICB3cmFwcGVyQ29sPzogYW55O1xyXG4gIHByb3BzPzogYW55O1xyXG59XHJcbmludGVyZmFjZSBTZWFyY2hQcm9wcyB7XHJcbiAgc2VhcmNoRm9ybXM6IEFycmF5PFNlYXJjaEl0ZW1Qcm9wcz47IC8v5piv5ZCm5pi+56S65pON5L2c5YiXXHJcbiAgdG9vbEJ1dHRvblBvc2l0aW9uPzogc3RyaW5nO1xyXG4gIG9uU2VhcmNoPzogYW55O1xyXG4gIG9uUmVzZXQ/OiBhbnk7XHJcbiAgc2VhcmNoRm9ybVByb3BzPzogb2JqZWN0O1xyXG4gIGJ1dHRvblJldmVycz86IGJvb2xlYW47XHJcbiAgY2xhc3NOYW1lPzogYW55O1xyXG59XHJcblxyXG5jbGFzcyBIZWFkZXJTZWFyY2ggZXh0ZW5kcyBQdXJlQ29tcG9uZW50PFNlYXJjaFByb3BzLCBhbnk+IHtcclxuICBzZWFyY2hSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGRhdGVGb3JtYXQgPSB7fSBhcyBhbnk7XHJcbiAgc3RhdGUgPSB7IGV4cGFuZDogZmFsc2UgfTtcclxuICBzZXRTZWFyY2hQYXJhbXMocGFyYW1zLCBjYWxsQmFjaykge1xyXG4gICAgdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uc2V0RmllbGRzVmFsdWUocGFyYW1zKTtcclxuICB9XHJcbiAgZ2V0U2VhcmNoVmFsdWVzKCkge1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5mb3JtYXRWYWx1ZSgpO1xyXG4gICAgcmV0dXJuIGZyb21WYWx1ZTtcclxuICB9XHJcbiAgZm9ybWF0VmFsdWUoKSB7XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5nZXRGaWVsZHNWYWx1ZSgpO1xyXG4gICAgaWYgKCFpc0VtcHR5T2JqKHRoaXMuZGF0ZUZvcm1hdCkpIHtcclxuICAgICAgZm9yIChsZXQga2V5IGluIHRoaXMuZGF0ZUZvcm1hdCkge1xyXG4gICAgICAgIGxldCBvbGRkYXRhID0gZnJvbVZhbHVlW2tleV07XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2xkZGF0YSkpIHtcclxuICAgICAgICAgIGlmIChvbGRkYXRhLmxlbmd0aCA+IDAgJiYgb2xkZGF0YVswXSAmJiBvbGRkYXRhWzFdKSB7XHJcbiAgICAgICAgICAgIGZyb21WYWx1ZVtrZXldID0gW1xyXG4gICAgICAgICAgICAgIG1vbWVudChvbGRkYXRhWzBdKS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICAgIG1vbWVudChvbGRkYXRhWzFdKS5mb3JtYXQodGhpcy5kYXRlRm9ybWF0W2tleV0pLFxyXG4gICAgICAgICAgICBdO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAob2xkZGF0YSkge1xyXG4gICAgICAgICAgZnJvbVZhbHVlW2tleV0gPSBtb21lbnQob2xkZGF0YSkuZm9ybWF0KHRoaXMuZGF0ZUZvcm1hdFtrZXldKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBmcm9tVmFsdWU7XHJcbiAgfVxyXG4gIG9uU2VhcmNoKCkge1xyXG4gICAgY29uc3QgeyBvblNlYXJjaCB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuZm9ybWF0VmFsdWUoKTtcclxuICAgIGlmIChvblNlYXJjaCkge1xyXG4gICAgICBvblNlYXJjaChmcm9tVmFsdWUpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlc2V0RmllbGRzKCkge1xyXG4gICAgdGhpcy5zZWFyY2hSZWYuY3VycmVudD8ucmVzZXRGaWVsZHMoKTtcclxuICB9XHJcbiAgcmVzZXRTZWFyY2goKSB7XHJcbiAgICBpZiAodGhpcy5wcm9wcy5vblJlc2V0KSB7XHJcbiAgICAgIHRoaXMucHJvcHMub25SZXNldCgpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5yZXNldEZpZWxkcygpO1xyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHNlYXJjaEZvcm1zID0gW10sXHJcbiAgICAgIHRvb2xCdXR0b25Qb3NpdGlvbixcclxuICAgICAgb25TZWFyY2gsXHJcbiAgICAgIG9uUmVzZXQsXHJcbiAgICAgIHNlYXJjaEZvcm1Qcm9wcyA9IHt9LFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBsZXQgY29sU3BhbiA9IDA7XHJcbiAgICBjb25zdCBoZWFkZXJDb3VudCA9IHRvb2xCdXR0b25Qb3NpdGlvbiA9PSBcInJpZ2h0XCIgPyAxIDogMjtcclxuICAgIGNvbnN0IGhlYWRlclJvdXQgPSBzZWFyY2hGb3Jtcy5sZW5ndGggJSA0O1xyXG4gICAgaWYgKGhlYWRlclJvdXQgPT0gMCkge1xyXG4gICAgICBjb2xTcGFuID0gMTg7XHJcbiAgICB9IGVsc2UgaWYgKGhlYWRlclJvdXQgPT0gMSkge1xyXG4gICAgICBjb2xTcGFuID0gMTI7XHJcbiAgICB9IGVsc2UgaWYgKGhlYWRlclJvdXQgPT0gMikge1xyXG4gICAgICBjb2xTcGFuID0gNjtcclxuICAgIH1cclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxSb3cgZ3V0dGVyPXsyNH0gd3JhcD5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2NscyhcclxuICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwibnNjLWhlYWRlcnNlYXJjaC1oZWFkZXJcIiksXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwibnNjLWhlYWRlcnNlYXJjaC1oZWFkZXItcGFkZGluZ1wiKV06XHJcbiAgICAgICAgICAgICAgICBzZWFyY2hGb3Jtcy5sZW5ndGggPiAzLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB0aGlzLnByb3BzLmNsYXNzTmFtZVxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcIm5zYy1oZWFkZXJzZWFyY2gtZm9ybVwiKSl9PlxyXG4gICAgICAgICAgICA8Rm9ybVxyXG4gICAgICAgICAgICAgIHJlZj17dGhpcy5zZWFyY2hSZWZ9XHJcbiAgICAgICAgICAgICAgbGFiZWxDb2w9e3t9fVxyXG4gICAgICAgICAgICAgIHdyYXBwZXJDb2w9e3t9fVxyXG4gICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBcIjEwMCVcIiwgZGlzcGxheTogXCJmbGV4XCIsIGZsZXhXcmFwOiBcIndyYXBcIiB9fVxyXG4gICAgICAgICAgICAgIG9uRmluaXNoPXt0aGlzLm9uU2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgLy8gbGFiZWxBbGlnbj17J2xlZnQnfVxyXG4gICAgICAgICAgICAgIHsuLi5zZWFyY2hGb3JtUHJvcHN9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICB7c2VhcmNoRm9ybXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1Qcm9wcyA9IGl0ZW0ucHJvcHMgfHwge307XHJcbiAgICAgICAgICAgICAgICBsZXQgZGlzcGxheSA9IFwiYmxvY2tcIjtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtUHJvcHMuZm9ybWF0IHx8IGl0ZW1Qcm9wcy52YWx1ZUZvcm1hdCkge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXRbaXRlbS5uYW1lXSA9IGl0ZW1Qcm9wcy5mb3JtYXQgfHwgaXRlbVByb3BzLnZhbHVlRm9ybWF0O1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gaGVhZGVyQ291bnQgJiYgIXRoaXMuc3RhdGUuZXhwYW5kKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRpc3BsYXkgPSBcIm5vbmVcIjtcclxuICAgICAgICAgICAgICAgICAgLy9yZXR1cm5cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGxldCBhbGxvd0NoYXJzID0gaXRlbT8ucHJvcHM/LmFsbG93Q2hhcnMgfHwgZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBsZXQgcHJvcHMgPSB7IC4uLml0ZW1Qcm9wcyB9O1xyXG4gICAgICAgICAgICAgICAgbGV0IHNlYXJjaERpc2FibGVkID1cclxuICAgICAgICAgICAgICAgICAgcHJvcHMuc2VhcmNoRGlzYWJsZWQgPT09IHRydWUgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBkZWxldGUgcHJvcHMuc2VhcmNoRGlzYWJsZWQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWl0ZW0udHlwZSB8fCBpdGVtLnR5cGUgPT0gXCJJbnB1dFwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIHByb3BzLmFsbG93Q2hhcnMgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIHByb3BzLmFsbG93Q2hhcnM7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgZGVmYXVsdEl0ZW0gPSB7XHJcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBpdGVtLmxhYmVsLFxyXG4gICAgICAgICAgICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgIGFsbG93Q2hhcnM6IGFsbG93Q2hhcnMsXHJcbiAgICAgICAgICAgICAgICAgIHJ1bGVzOiBpdGVtLnJ1bGVzLFxyXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnROYW1lOiBpdGVtLnR5cGUgPyBpdGVtLnR5cGUgOiBcIklucHV0XCIsXHJcbiAgICAgICAgICAgICAgICB9IGFzIGFueTtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLmxhYmVsQ29sKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRJdGVtID0geyAuLi5kZWZhdWx0SXRlbSwgbGFiZWxDb2w6IGl0ZW0ubGFiZWxDb2wgfTtcclxuICAgICAgICAgICAgICAgICAgZGVsZXRlIGl0ZW0ubGFiZWxDb2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS53cmFwcGVyQ29sKSB7XHJcbiAgICAgICAgICAgICAgICAgIGRlZmF1bHRJdGVtID0geyAuLi5kZWZhdWx0SXRlbSwgd3JhcHBlckNvbDogaXRlbS53cmFwcGVyQ29sIH07XHJcbiAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLndyYXBwZXJDb2w7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgcGxhY2Vob2xkZXI6IGFueSA9XHJcbiAgICAgICAgICAgICAgICAgIGl0ZW0udHlwZSA9PSBcIlNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPyBg6K+36YCJ5oupJHtpdGVtLmxhYmVsfWBcclxuICAgICAgICAgICAgICAgICAgICA6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YDtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtLnR5cGUgPT0gXCJSYW5nZVBpY2tlclwiKSB7XHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyID0gW1wi5byA5aeL5pe26Ze0XCIsIFwi57uT5p2f5pe26Ze0XCJdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgICAgIG1kPXt7IHNwYW46IDEyIH19XHJcbiAgICAgICAgICAgICAgICAgICAgc209e3sgc3BhbjogMjQgfX1cclxuICAgICAgICAgICAgICAgICAgICBsZz17eyBzcGFuOiA2IH19XHJcbiAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBwYWRkaW5nUmlnaHQ6IDAsIGRpc3BsYXk6IGRpc3BsYXkgfX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW0gey4uLmRlZmF1bHRJdGVtfT5cclxuICAgICAgICAgICAgICAgICAgICAgIHtnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogcGxhY2Vob2xkZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7IHdpZHRoOiBcIjEwMCVcIiB9LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IHNlYXJjaERpc2FibGVkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICBtZD17eyBzcGFuOiAxMiB9fVxyXG4gICAgICAgICAgICAgICAgc209e3sgc3BhbjogMjQgfX1cclxuICAgICAgICAgICAgICAgIGxnPXt7IHNwYW46IHRvb2xCdXR0b25Qb3NpdGlvbiA9PSBcInJpZ2h0XCIgPyAxMiA6IDYgfX1cclxuICAgICAgICAgICAgICAgIHN0eWxlPXt7IHBhZGRpbmdSaWdodDogMCB9fVxyXG4gICAgICAgICAgICAgICAgb2Zmc2V0PXtcclxuICAgICAgICAgICAgICAgICAgKHRoaXMuc3RhdGUuZXhwYW5kIHx8IHNlYXJjaEZvcm1zLmxlbmd0aCA8IDQpICYmXHJcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoRm9ybXMubGVuZ3RoID4gMVxyXG4gICAgICAgICAgICAgICAgICAgID8gY29sU3BhblxyXG4gICAgICAgICAgICAgICAgICAgIDogMFxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwibnNjLWhlYWRlcnNlYXJjaC1zZWFyY2gtYnV0dG9uc1wiKSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwibnNjLWhlYWRlcnNlYXJjaC1zZWFyY2gtYnV0dG9ucy1mbGV4XCIpXTpcclxuICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoRm9ybXMubGVuZ3RoID4gMSxcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpblRvcDogMCB9fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcIm5zYy1oZWFkZXJzZWFyY2gtYnV0dG9uLXJldmVyc2VcIildOlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmJ1dHRvblJldmVycyA9PSB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAvLyBvbkNsaWNrPXt0aGlzLm9uU2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgICAgICAgICBpY29uPXs8U2VhcmNoT3V0bGluZWQgLz59XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5MZWZ0OiAwIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBodG1sVHlwZT1cInN1Ym1pdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAg5p+l6K+iXHJcbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAge3NlYXJjaEZvcm1zLmxlbmd0aCA+IDEgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5yZXNldFNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpY29uPXs8UmVsb2FkT3V0bGluZWQgLz59XHJcbiAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIOmHjee9rlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIHtzZWFyY2hGb3Jtcy5sZW5ndGggPiAzICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZXMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFwibnNjLWhlYWRlcnNlYXJjaC1leHBhbmQtc3R5bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBleHBhbmQgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZDogIWV4cGFuZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLmV4cGFuZCA/IFwi5pS26LW3XCIgOiBcIuWxleW8gFwifVxyXG4gICAgICAgICAgICAgICAgICAgICAge3RoaXMuc3RhdGUuZXhwYW5kID8gPFVwT3V0bGluZWQgLz4gOiA8RG93bk91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICA8L0Zvcm0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9Sb3c+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBIZWFkZXJTZWFyY2g7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxJQUFJQyxhQUFhLFFBQW1CLE9BQU87QUFDdkQsT0FBT0MsSUFBSSxNQUFNLGlCQUFpQjtBQUNsQyxPQUFPQyxNQUFNLE1BQU0sbUJBQW1CO0FBQ3RDLE9BQU9DLEdBQUcsTUFBTSxZQUFZO0FBQzVCLE9B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
|