nsc-react-component 2.0.7 → 2.0.8
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.
|
@@ -36,6 +36,7 @@ declare class TreePanel<P> extends Component<ITreePanelProps & TreeCommonProps &
|
|
|
36
36
|
};
|
|
37
37
|
componentDidUpdate(prevProps: any): void;
|
|
38
38
|
constructor(props: any);
|
|
39
|
+
getTitle(data: any): string;
|
|
39
40
|
dataChangeBefore: (data: any) => any;
|
|
40
41
|
_iterator: (data: any) => any;
|
|
41
42
|
/**
|
package/lib/common/TreePanel.js
CHANGED
|
@@ -83,7 +83,7 @@ var TreePanel = /*#__PURE__*/function (_Component) {
|
|
|
83
83
|
|
|
84
84
|
return newData;
|
|
85
85
|
} else if (originData && _typeof(originData) === "object") {
|
|
86
|
-
originData.title =
|
|
86
|
+
originData.title = _this2.getTitle(originData);
|
|
87
87
|
if (originData.children) _this2._iterator(originData.children);
|
|
88
88
|
}
|
|
89
89
|
|
|
@@ -91,11 +91,11 @@ var TreePanel = /*#__PURE__*/function (_Component) {
|
|
|
91
91
|
});
|
|
92
92
|
|
|
93
93
|
_defineProperty(_assertThisInitialized(_this2), "_iterator", function (data) {
|
|
94
|
-
|
|
94
|
+
// const titleAlias = this.props.titleAlias;
|
|
95
|
+
// 如果传入的data是dva中model数据是不允许修改的,所以先转换一下
|
|
95
96
|
// const newData = data.map((item) => ({ ...item }));
|
|
96
|
-
|
|
97
97
|
data.forEach(function (item) {
|
|
98
|
-
item.title = item
|
|
98
|
+
item.title = _this2.getTitle(item);
|
|
99
99
|
|
|
100
100
|
if (item.children) {
|
|
101
101
|
_this2._iterator(item.children);
|
|
@@ -177,6 +177,35 @@ var TreePanel = /*#__PURE__*/function (_Component) {
|
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
179
|
}
|
|
180
|
+
}, {
|
|
181
|
+
key: "getTitle",
|
|
182
|
+
value: function getTitle(data) {
|
|
183
|
+
var title = "";
|
|
184
|
+
|
|
185
|
+
if (this.props.titleAlias) {
|
|
186
|
+
var titlesLables = this.props.titleAlias.split(",");
|
|
187
|
+
|
|
188
|
+
if (titlesLables.length == 0) {
|
|
189
|
+
title = data[this.props.titleAlias];
|
|
190
|
+
} else {
|
|
191
|
+
for (var i = 1; i < titlesLables.length; i++) {
|
|
192
|
+
if (data[titlesLables[i]]) {
|
|
193
|
+
title = i === 1 ? data[titlesLables[i]] : title + "-" + data[titlesLables[i]];
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
if (title) {
|
|
198
|
+
title = "(" + title + ")";
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
title = data[titlesLables[0]] + title;
|
|
202
|
+
}
|
|
203
|
+
} else {
|
|
204
|
+
title = data.title;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
return title;
|
|
208
|
+
}
|
|
180
209
|
}, {
|
|
181
210
|
key: "_dataToCheckedKeys",
|
|
182
211
|
value:
|
|
@@ -271,4 +300,4 @@ var TreePanel = /*#__PURE__*/function (_Component) {
|
|
|
271
300
|
_defineProperty(TreePanel, "defaultProps", void 0);
|
|
272
301
|
|
|
273
302
|
export default TreePanel;
|
|
274
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9UcmVlUGFuZWwudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiQ29tcG9uZW50IiwidHJlZXV0aWxzIiwiVHJlZVN0b3JlIiwidXRpbHMiLCJjbG9uZURlZXAiLCJUcmVlUGFuZWwiLCJwcm9wcyIsInNlYXJjaFRleHQiLCJmaWVsZE9wdGlvbiIsImtleUZpZWxkIiwidGl0bGVGaWVsZCIsInBhdGhzRmllbGQiLCJzZWFyY2hDb2xvciIsImxvYWRpbmciLCJ0cmVlRGF0YXMiLCJjaGVja2VkS2V5cyIsImV4cGFuZGVkS2V5cyIsInNlbGVjdGVkS2V5cyIsInNlbGVjdE5vZGUiLCJkYXRhIiwib3JpZ2luRGF0YSIsInRpdGxlQWxpYXMiLCJBcnJheSIsImlzQXJyYXkiLCJuZXdEYXRhIiwiX2l0ZXJhdG9yIiwidGl0bGUiLCJjaGlsZHJlbiIsImZvckVhY2giLCJpdGVtIiwiX3RoaXMiLCJ0cmVlRGF0YSIsIm5vZGVQcm9wcyIsInN0b3JlIiwibGlzdGVuZXJzIiwibGlzdGVuZXJzUHJvcHMiLCJyZXN0U3RvcmUiLCJzdG9yZU9wdGlvbiIsImNvbXBvbmVudCIsIm1vZGVsIiwidHJlZVByaW1hcnlLZXkiLCJrZXkiLCJvbkJlZm9yZUxvYWQiLCJvcHRpb25zIiwibGF6eWxvYWQiLCJzZXRTdGF0ZSIsInN0YXRlIiwiY2FsbGJhY2siLCJkYXRhQ2hhbmdlQmVmb3JlIiwiZGF0YUNoYW5nZWQiLCJtb2RlbERhdGEiLCJfZGF0YVRvQ2hlY2tlZEtleXMiLCJsb2FkIiwib25FcnJvckxvYWQiLCJlcnIiLCJyZXNwb25zZSIsImxlbmd0aCIsImF1dG9Mb2FkIiwicHJldlByb3BzIiwib2xkVHJlZURhdGEiLCJKU09OIiwic3RyaW5naWZ5Iiwic2V0RGF0YSIsInRyZWVQcm9wcyIsIm5ld1RyZWVEYXRhcyIsIm9taXQiLCJnZXRTZWFyY2hNZW51RGF0YXMiLCJvcGVuS2V5cyIsInJlbmRlclRlbXBsYXRlIiwiZ2V0TW9k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QixFQUErQkMsWUFBL0IsQ0FBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBOzs7O1dBQ0Usb0JBQVc7QUFDVCxhQUFPLEtBQUsvQixLQUFaO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7Ozs7V0FDRSxvQkFBVztBQUNULGFBQU8sS0FBS0EsS0FBTCxDQUFXb0MsUUFBWCxFQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTs7OztXQUNFLGdCQUFPMUIsT0FBUCxFQUFnQjtBQUNkLFdBQUtWLEtBQUwsQ0FBV3FDLE1BQVgsQ0FBa0IzQixPQUFsQjtBQUNBLGFBQU8sSUFBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7Ozs7V0FDRSxzQkFBYTRCLEdBQWIsRUFBa0IvRCxXQUFsQixFQUFnQ0ksV0FBaEMsRUFBOEM7QUFDNUMsV0FBS2lDLFFBQUwsQ0FBYztBQUNadEMsUUFBQUEsVUFBVSxFQUFFZ0UsR0FEQTtBQUVaL0QsUUFBQUEsV0FBVyxFQUFFQSxXQUZEO0FBR1pJLFFBQUFBLFdBQVcsRUFBRUE7QUFIRCxPQUFkO0FBS0Q7Ozs7RUFoTXdCWixTOztnQkFBckJLLFM7O0FBbU1OLGVBQWVBLFNBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0cmVldXRpbHMgZnJvbSBcIi4uL3RyZWVVdGlsc1wiO1xyXG5pbXBvcnQgU3RvcmUsIHsgVHJlZVN0b3JlIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQgXCJhbnRkL2VzL3RyZWUvc3R5bGVcIjtcclxuLy8gaW1wb3J0IHsgU3RvcmVDb25maWdUeXBlIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi90eXBlcy9TdG9yZS9UcmVlU3RvcmUuZFwiO1xyXG5pbXBvcnQgeyBTdG9yZUNvbmZpZ1R5cGUgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgVHJlZVByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IHsgZmxhdHRlbkRlZXAgfSBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCBjbG9uZURlZXAgZnJvbSBcImNsb25lLWRlZXBcIjtcclxuZXhwb3J0IGludGVyZmFjZSBUcmVlQ29tbW9uUHJvcHMge1xyXG4gIHRpdGxlQWxpYXM/OiBzdHJpbmc7XHJcbiAgaGFuZGxlQWRkPzogKHBhcmFtczogYW55KSA9PiB2b2lkO1xyXG4gIGhhbmRsZURlbGV0ZT86IChwYXJhbXM6IGFueSkgPT4gdm9pZDtcclxuICBoYW5kbGVFZGl0PzogKHBhcmFtczogYW55KSA9PiB2b2lkO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRyZWVQYW5lbFByb3BzIGV4dGVuZHMgVHJlZVByb3BzIHtcclxuICBzdG9yZTogU3RvcmVDb25maWdUeXBlPGFueT47XHJcbiAgY2hlY2tQcm9wYWdhdGlvbj86IGJvb2xlYW47XHJcbiAgcmVuZGVyVHJlZU5vZGU/OiAocHJvcHM6IElUcmVlUGFuZWxQcm9wcywgaXRlbTogYW55KSA9PiBSZWFjdC5SZWFjdEVsZW1lbnQ7XHJcbiAgb3BlbktleXM/OiBzdHJpbmdbXSB8IG51bGw7XHJcbn1cclxuXHJcbmNsYXNzIFRyZWVQYW5lbDxQPiBleHRlbmRzIENvbXBvbmVudDxcclxuICBJVHJlZVBhbmVsUHJvcHMgJiBUcmVlQ29tbW9uUHJvcHMgJiBQLFxyXG4gIGFueVxyXG4+IHtcclxuICBzdGF0ZSA9IHtcclxuICAgIC8v5pCc57Si5paH5pysXHJcbiAgICBzZWFyY2hUZXh0OiBudWxsLFxyXG4gICAgZmllbGRPcHRpb246IHtcclxuICAgICAga2V5RmllbGQ6IFwia2V5XCIsXHJcbiAgICAgIHRpdGxlRmllbGQ6IFwidGl0bGVcIixcclxuICAgICAgcGF0aHNGaWVsZDogXCJjaGlsZHJlblwiLFxyXG4gICAgfSxcclxuICAgIHNlYXJjaENvbG9yOiBudWxsLFxyXG5cclxuICAgIGxvYWRpbmc6IGZhbHNlLFxyXG4gICAgdHJlZURhdGFzOiBbXSxcclxuICAgIGNoZWNrZWRLZXlzOiBbXSxcclxuICAgIGV4cGFuZGVkS2V5czogW10sXHJcbiAgICBzZWxlY3RlZEtleXM6IFtdLFxyXG4gICAgc2VsZWN0Tm9kZTogbnVsbCxcclxuICB9O1xyXG5cclxuICBzdG9yZSA9IHt9IGFzIHR5cGVvZiBTdG9yZTtcclxuXHJcbiAgc3RhdGljIGRlZmF1bHRQcm9wczogeyBzdG9yZToge30gfTtcclxuXHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xyXG4gICAgY29uc3Qgb2xkVHJlZURhdGEgPSBwcmV2UHJvcHMudHJlZURhdGEgfHwgW107XHJcbiAgICBjb25zdCB0cmVlRGF0YSA9IHRoaXMucHJvcHMudHJlZURhdGE7XHJcbiAgICBpZiAoXHJcbiAgICAgIEFycmF5LmlzQXJyYXkodHJlZURhdGEpICYmXHJcbiAgICAgIEpTT04uc3RyaW5naWZ5KHRyZWVEYXRhKSAhPT0gSlNPTi5zdHJpbmdpZnkob2xkVHJlZURhdGEpXHJcbiAgICApIHtcclxuICAgICAgaWYgKHRoaXMuc3RvcmUpIHtcclxuICAgICAgICB0aGlzLnN0b3JlLnNldERhdGEodHJlZURhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgY29uc3QgX3RoaXMgPSB0aGlzO1xyXG4gICAgY29uc3QgdHJlZURhdGEgPSBwcm9wcy50cmVlRGF0YSB8fCBbXTtcclxuICAgIGNvbnN0IG5vZGVQcm9wcyA9IHByb3BzLm5vZGVQcm9wcyB8fCB7fTtcclxuICAgIGlmIChwcm9wcy5zdG9yZSBpbnN0YW5jZW9mIFRyZWVTdG9yZSkge1xyXG4gICAgICB0aGlzLnN0b3JlID0gcHJvcHMuc3RvcmU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCB7IGxpc3RlbmVyczogbGlzdGVuZXJzUHJvcHMgPSB7fSwgLi4ucmVzdFN0b3JlIH0gPSBwcm9wcy5zdG9yZTtcclxuICAgICAgY29uc3Qgc3RvcmVPcHRpb24gPSB7XHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIG1vZGVsOiBcInRyZWVtb2RlbFwiLFxyXG4gICAgICAgIHRyZWVQcmltYXJ5S2V5OiBub2RlUHJvcHMua2V5IHx8IFwiaWRcIiwgLy8g5qCR6IqC54K55ZSv5LiAa2V5XHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IGZ1bmN0aW9uIChzdG9yZSwgb3B0aW9ucykge1xyXG4gICAgICAgICAgICBsZXQgbG9hZGluZyA9IHByb3BzLmxhenlsb2FkICE9IHRydWU7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgLi4uX3RoaXMuc3RhdGUsIC4uLnsgbG9hZGluZzogbG9hZGluZyB9IH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQcm9wcy5vbkJlZm9yZUxvYWQsIHRoaXMsIFtzdG9yZSwgb3B0aW9uc10pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRhdGFDaGFuZ2VCZWZvcmU6IF90aGlzLmRhdGFDaGFuZ2VCZWZvcmUsXHJcbiAgICAgICAgICBkYXRhQ2hhbmdlZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIHRyZWVEYXRhczogbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIGNoZWNrZWRLZXlzOiBfdGhpcy5fZGF0YVRvQ2hlY2tlZEtleXMobW9kZWxEYXRhKSxcclxuICAgICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1Byb3BzLmRhdGFDaGFuZ2VkLCB0aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxvYWQ6IChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSA9PiB7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1Byb3BzLmxvYWQsIHRoaXMsIFtkYXRhLCBtb2RlbERhdGEsIHN0b3JlXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb25FcnJvckxvYWQ6IChlcnIsIHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUHJvcHMub25FcnJvckxvYWQsIHRoaXMsIFtlcnIsIHJlc3BvbnNlXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGF0YTogdHJlZURhdGEubGVuZ3RoID4gMCA/IHRyZWVEYXRhIDogbnVsbCxcclxuICAgICAgICBhdXRvTG9hZDogcmVzdFN0b3JlLmF1dG9Mb2FkICE9PSBmYWxzZSA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgICAuLi5yZXN0U3RvcmUsXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgVHJlZVN0b3JlKHN0b3JlT3B0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRhdGFDaGFuZ2VCZWZvcmUgPSAoZGF0YSkgPT4ge1xyXG4gICAgY29uc3Qgb3JpZ2luRGF0YSA9IGNsb25lRGVlcChkYXRhKTtcclxuICAgIGlmICghdGhpcy5wcm9wcy50aXRsZUFsaWFzKSB7XHJcbiAgICAgIHJldHVybiBvcmlnaW5EYXRhO1xyXG4gICAgfVxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkob3JpZ2luRGF0YSkpIHtcclxuICAgICAgY29uc3QgbmV3RGF0YSA9IHRoaXMuX2l0ZXJhdG9yKG9yaWdpbkRhdGEpO1xyXG4gICAgICByZXR1cm4gbmV3RGF0YTtcclxuICAgIH0gZWxzZSBpZiAob3JpZ2luRGF0YSAmJiB0eXBlb2Ygb3JpZ2luRGF0YSA9PT0gXCJvYmplY3RcIikge1xyXG4gICAgICBvcmlnaW5EYXRhLnRpdGxlID0gb3JpZ2luRGF0YVt0aGlzLnByb3BzLnRpdGxlQWxpYXNdO1xyXG4gICAgICBpZiAob3JpZ2luRGF0YS5jaGlsZHJlbikgdGhpcy5faXRlcmF0b3Iob3JpZ2luRGF0YS5jaGlsZHJlbik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb3JpZ2luRGF0YTtcclxuICB9O1xyXG5cclxuICBfaXRlcmF0b3IgPSAoZGF0YSkgPT4ge1xyXG4gICAgY29uc3QgdGl0bGVBbGlhcyA9IHRoaXMucHJvcHMudGl0bGVBbGlhcztcclxuXHJcbiAgICAvLyDlpoLmnpzkvKDlhaXnmoRkYXRh5pivZHZh5LitbW9kZWzmlbDmja7mmK/kuI3lhYHorrjkv67mlLnnmoQs5omA5Lul5YWI6L2s5o2i5LiA5LiLXHJcbiAgICAvLyBjb25zdCBuZXdEYXRhID0gZGF0YS5tYXAoKGl0ZW0pID0+ICh7IC4uLml0ZW0gfSkpO1xyXG4gICAgZGF0YS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgIGl0ZW0udGl0bGUgPSBpdGVtW3RpdGxlQWxpYXNdO1xyXG4gICAgICBpZiAoaXRlbS5jaGlsZHJlbikge1xyXG4gICAgICAgIHRoaXMuX2l0ZXJhdG9yKGl0ZW0uY2hpbGRyZW4pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH07XHJcblxyXG4gIC8qKlxyXG4gICAqIOS/ruaUueaVsOaNrlxyXG4gICAqL1xyXG4gIG1hcERhdGEgPSAoKSA9PiB7fTtcclxuXHJcbiAgLyoqXHJcbiAgICog5Yid5aeL5YyW6IqC54K56YCJ5LitXHJcbiAgICogQHBhcmFtIHsqfSBtb2RlbERhdGEgIOaVsOaNrlxyXG4gICAqL1xyXG4gIF9kYXRhVG9DaGVja2VkS2V5cyhtb2RlbERhdGEpIHtcclxuICAgIHJldHVybiBbXTtcclxuICAgIC8vIHJldHVybiB7IGNoZWNrZWQ6IFtdLCBoYWxmQ2hlY2tlZDogW10gfTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOeVjOmdoua4suafk1xyXG4gICAqL1xyXG4gIHJlbmRlclRlbXBsYXRlKHRyZWVQcm9wczogSVRyZWVQYW5lbFByb3BzLCBuZXdUcmVlRGF0YXMpIHtcclxuICAgIHJldHVybiA8PjwvPjtcclxuICB9XHJcblxyXG4gIHJlbmRlcigpOiBSZWFjdC5SZWFjdE5vZGUge1xyXG4gICAgY29uc3QgeyBzZWFyY2hUZXh0LCB0cmVlRGF0YXMsIGNoZWNrZWRLZXlzLCBmaWVsZE9wdGlvbiwgc2VhcmNoQ29sb3IgfSA9XHJcbiAgICAgICAgdGhpcy5zdGF0ZSxcclxuICAgICAgdHJlZVByb3BzID0gdXRpbHMub21pdCh0aGlzLnByb3BzLCBbXCJzdG9yZVwiXSwge1xyXG4gICAgICAgIGNoZWNrZWRLZXlzOiBjaGVja2VkS2V5cyxcclxuICAgICAgfSk7XHJcbiAgICBsZXQgbmV3VHJlZURhdGFzID0gW107XHJcbiAgICBpZiAoc2VhcmNoVGV4dCkge1xyXG4gICAgICBjb25zdCBkYXRhID0gdHJlZXV0aWxzLmdldFNlYXJjaE1lbnVEYXRhcyhcclxuICAgICAgICB0aGlzLFxyXG4gICAgICAgIHNlYXJjaFRleHQsXHJcbiAgICAgICAgZmllbGRPcHRpb24sXHJcbiAgICAgICAgc2VhcmNoQ29sb3JcclxuICAgICAgKTtcclxuICAgICAgbmV3VHJlZURhdGFzID0gZGF0YS50cmVlRGF0YXM7XHJcbiAgICAgIHRyZWVQcm9wcy5vcGVuS2V5cyA9IGRhdGEub3BlbktleXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdUcmVlRGF0YXMgPSB0cmVlRGF0YXM7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5yZW5kZXJUZW1wbGF0ZSh0cmVlUHJvcHMsIG5ld1RyZWVEYXRhcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5bmlbDmja7lr7nosaFcclxuICAgKi9cclxuICBnZXRTdG9yZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W5pWw5o2u5qih5Z6L5a+56LGhXHJcbiAgICovXHJcbiAgZ2V0TW9kZWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5nZXRNb2RlbCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogIOWIt+aWsOeVjOmdolxyXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBvcHRpb25zIOWPguaVsFxyXG4gICAqL1xyXG4gIHJlbG9hZChvcHRpb25zKSB7XHJcbiAgICB0aGlzLnN0b3JlLnJlbG9hZChvcHRpb25zKTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I+c5Y2V5pCc57Si6L+H5ruk5pi+56S6XHJcbiAgICogQHBhcmFtIHtTdHJpbmd9IHZhbFxyXG4gICAqL1xyXG4gIGhhbmRsZVNlYXJjaCh2YWwsIGZpZWxkT3B0aW9uPywgc2VhcmNoQ29sb3I/KSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VhcmNoVGV4dDogdmFsLFxyXG4gICAgICBmaWVsZE9wdGlvbjogZmllbGRPcHRpb24sXHJcbiAgICAgIHNlYXJjaENvbG9yOiBzZWFyY2hDb2xvcixcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgVHJlZVBhbmVsO1xyXG4iXX0=
|
|
303
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9UcmVlUGFuZWwudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiQ29tcG9uZW50IiwidHJlZXV0aWxzIiwiVHJlZVN0b3JlIiwidXRpbHMiLCJjbG9uZURlZXAiLCJUcmVlUGFuZWwiLCJwcm9wcyIsInNlYXJjaFRleHQiLCJmaWVsZE9wdGlvbiIsImtleUZpZWxkIiwidGl0bGVGaWVsZCIsInBhdGhzRmllbGQiLCJzZWFyY2hDb2xvciIsImxvYWRpbmciLCJ0cmVlRGF0YXMiLCJjaGVja2VkS2V5cyIsImV4cGFuZGVkS2V5cyIsInNlbGVjdGVkS2V5cyIsInNlbGVjdE5vZGUiLCJkYXRhIiwib3JpZ2luRGF0YSIsInRpdGxlQWxpYXMiLCJBcnJheSIsImlzQXJyYXkiLCJuZXdEYXRhIiwiX2l0ZXJhdG9yIiwidGl0bGUiLCJnZXRUaXRsZSIsImNoaWxkcmVuIiwiZm9yRWFjaCIsIml0ZW0iLCJfdGhpcyIsInRyZWVEYXRhIiwibm9kZVByb3BzIiwic3RvcmUiLCJsaXN0ZW5lcnMiLCJsaXN0ZW5lcnNQcm9wcyIsInJlc3RTdG9yZSIsInN0b3JlT3B0aW9uIiwiY29tcG9uZW50IiwibW9kZWwiLCJ0cmVlUHJpbWFyeUtleSIsImtleSIsIm9uQmVmb3JlTG9hZCIsIm9wdGlvbnMiLCJsYXp5bG9hZCIsInNldFN0YXRlIiwic3RhdGUiLCJjYWxsYmFjayIsImRhdGFDaGFuZ2VCZWZvcmUiLCJkYXRhQ2hhbmdlZCIsIm1vZGVsRGF0YSIsIl9kYXRhVG9DaGVja2VkS2V5cyIsImxvYWQiLCJvbkVycm9yTG9hZCIsImVyciIsInJlc3BvbnNlIiwibGVuZ3RoIiwiYXV0b0xvYWQiLCJwcmV2UHJvcHMiLCJvbGRUcmVlRGF0YSIsIkpTT04iLCJzdHJpbmdpZnkiLCJzZXREYXRhIiwidGl0bGVzTGFibGVzIiwic3BsaXQiLCJpIiwidHJlZVByb3BzIiwibmV3VHJlZURhdGFzIiwib21pdCIsImdldFNlYXJjaE1lbnVEYXRh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O0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7Ozs7V0FDRSxvQkFBVztBQUNULGFBQU8sS0FBS0EsS0FBTCxDQUFXdUMsUUFBWCxFQUFQO0FBQ0Q7QUFFRDtBQUNGO0FBQ0E7QUFDQTs7OztXQUNFLGdCQUFPN0IsT0FBUCxFQUFnQjtBQUNkLFdBQUtWLEtBQUwsQ0FBV3dDLE1BQVgsQ0FBa0I5QixPQUFsQjtBQUNBLGFBQU8sSUFBUDtBQUNEO0FBRUQ7QUFDRjtBQUNBO0FBQ0E7Ozs7V0FDRSxzQkFBYStCLEdBQWIsRUFBa0JuRSxXQUFsQixFQUFnQ0ksV0FBaEMsRUFBOEM7QUFDNUMsV0FBS2tDLFFBQUwsQ0FBYztBQUNadkMsUUFBQUEsVUFBVSxFQUFFb0UsR0FEQTtBQUVabkUsUUFBQUEsV0FBVyxFQUFFQSxXQUZEO0FBR1pJLFFBQUFBLFdBQVcsRUFBRUE7QUFIRCxPQUFkO0FBS0Q7Ozs7RUF6TndCWixTOztnQkFBckJLLFM7O0FBNE5OLGVBQWVBLFNBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCB0cmVldXRpbHMgZnJvbSBcIi4uL3RyZWVVdGlsc1wiO1xyXG5pbXBvcnQgU3RvcmUsIHsgVHJlZVN0b3JlIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQgXCJhbnRkL2VzL3RyZWUvc3R5bGVcIjtcclxuLy8gaW1wb3J0IHsgU3RvcmVDb25maWdUeXBlIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi90eXBlcy9TdG9yZS9UcmVlU3RvcmUuZFwiO1xyXG5pbXBvcnQgeyBTdG9yZUNvbmZpZ1R5cGUgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgVHJlZVByb3BzIH0gZnJvbSBcImFudGRcIjtcclxuaW1wb3J0IHsgZmxhdHRlbkRlZXAgfSBmcm9tIFwibG9kYXNoXCI7XHJcbmltcG9ydCBjbG9uZURlZXAgZnJvbSBcImNsb25lLWRlZXBcIjtcclxuZXhwb3J0IGludGVyZmFjZSBUcmVlQ29tbW9uUHJvcHMge1xyXG4gIHRpdGxlQWxpYXM/OiBzdHJpbmc7XHJcbiAgaGFuZGxlQWRkPzogKHBhcmFtczogYW55KSA9PiB2b2lkO1xyXG4gIGhhbmRsZURlbGV0ZT86IChwYXJhbXM6IGFueSkgPT4gdm9pZDtcclxuICBoYW5kbGVFZGl0PzogKHBhcmFtczogYW55KSA9PiB2b2lkO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRyZWVQYW5lbFByb3BzIGV4dGVuZHMgVHJlZVByb3BzIHtcclxuICBzdG9yZTogU3RvcmVDb25maWdUeXBlPGFueT47XHJcbiAgY2hlY2tQcm9wYWdhdGlvbj86IGJvb2xlYW47XHJcbiAgcmVuZGVyVHJlZU5vZGU/OiAocHJvcHM6IElUcmVlUGFuZWxQcm9wcywgaXRlbTogYW55KSA9PiBSZWFjdC5SZWFjdEVsZW1lbnQ7XHJcbiAgb3BlbktleXM/OiBzdHJpbmdbXSB8IG51bGw7XHJcbn1cclxuXHJcbmNsYXNzIFRyZWVQYW5lbDxQPiBleHRlbmRzIENvbXBvbmVudDxcclxuICBJVHJlZVBhbmVsUHJvcHMgJiBUcmVlQ29tbW9uUHJvcHMgJiBQLFxyXG4gIGFueVxyXG4+IHtcclxuICBzdGF0ZSA9IHtcclxuICAgIC8v5pCc57Si5paH5pysXHJcbiAgICBzZWFyY2hUZXh0OiBudWxsLFxyXG4gICAgZmllbGRPcHRpb246IHtcclxuICAgICAga2V5RmllbGQ6IFwia2V5XCIsXHJcbiAgICAgIHRpdGxlRmllbGQ6IFwidGl0bGVcIixcclxuICAgICAgcGF0aHNGaWVsZDogXCJjaGlsZHJlblwiLFxyXG4gICAgfSxcclxuICAgIHNlYXJjaENvbG9yOiBudWxsLFxyXG5cclxuICAgIGxvYWRpbmc6IGZhbHNlLFxyXG4gICAgdHJlZURhdGFzOiBbXSxcclxuICAgIGNoZWNrZWRLZXlzOiBbXSxcclxuICAgIGV4cGFuZGVkS2V5czogW10sXHJcbiAgICBzZWxlY3RlZEtleXM6IFtdLFxyXG4gICAgc2VsZWN0Tm9kZTogbnVsbCxcclxuICB9O1xyXG5cclxuICBzdG9yZSA9IHt9IGFzIHR5cGVvZiBTdG9yZTtcclxuXHJcbiAgc3RhdGljIGRlZmF1bHRQcm9wczogeyBzdG9yZToge30gfTtcclxuXHJcbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xyXG4gICAgY29uc3Qgb2xkVHJlZURhdGEgPSBwcmV2UHJvcHMudHJlZURhdGEgfHwgW107XHJcbiAgICBjb25zdCB0cmVlRGF0YSA9IHRoaXMucHJvcHMudHJlZURhdGE7XHJcbiAgICBpZiAoXHJcbiAgICAgIEFycmF5LmlzQXJyYXkodHJlZURhdGEpICYmXHJcbiAgICAgIEpTT04uc3RyaW5naWZ5KHRyZWVEYXRhKSAhPT0gSlNPTi5zdHJpbmdpZnkob2xkVHJlZURhdGEpXHJcbiAgICApIHtcclxuICAgICAgaWYgKHRoaXMuc3RvcmUpIHtcclxuICAgICAgICB0aGlzLnN0b3JlLnNldERhdGEodHJlZURhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgY29uc3QgX3RoaXMgPSB0aGlzO1xyXG4gICAgY29uc3QgdHJlZURhdGEgPSBwcm9wcy50cmVlRGF0YSB8fCBbXTtcclxuICAgIGNvbnN0IG5vZGVQcm9wcyA9IHByb3BzLm5vZGVQcm9wcyB8fCB7fTtcclxuICAgIGlmIChwcm9wcy5zdG9yZSBpbnN0YW5jZW9mIFRyZWVTdG9yZSkge1xyXG4gICAgICB0aGlzLnN0b3JlID0gcHJvcHMuc3RvcmU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCB7IGxpc3RlbmVyczogbGlzdGVuZXJzUHJvcHMgPSB7fSwgLi4ucmVzdFN0b3JlIH0gPSBwcm9wcy5zdG9yZTtcclxuICAgICAgY29uc3Qgc3RvcmVPcHRpb24gPSB7XHJcbiAgICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICAgIG1vZGVsOiBcInRyZWVtb2RlbFwiLFxyXG4gICAgICAgIHRyZWVQcmltYXJ5S2V5OiBub2RlUHJvcHMua2V5IHx8IFwiaWRcIiwgLy8g5qCR6IqC54K55ZSv5LiAa2V5XHJcbiAgICAgICAgbGlzdGVuZXJzOiB7XHJcbiAgICAgICAgICBvbkJlZm9yZUxvYWQ6IGZ1bmN0aW9uIChzdG9yZSwgb3B0aW9ucykge1xyXG4gICAgICAgICAgICBsZXQgbG9hZGluZyA9IHByb3BzLmxhenlsb2FkICE9IHRydWU7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgLi4uX3RoaXMuc3RhdGUsIC4uLnsgbG9hZGluZzogbG9hZGluZyB9IH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQcm9wcy5vbkJlZm9yZUxvYWQsIHRoaXMsIFtzdG9yZSwgb3B0aW9uc10pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRhdGFDaGFuZ2VCZWZvcmU6IF90aGlzLmRhdGFDaGFuZ2VCZWZvcmUsXHJcbiAgICAgICAgICBkYXRhQ2hhbmdlZDogZnVuY3Rpb24gKGRhdGEsIG1vZGVsRGF0YSwgc3RvcmUpIHtcclxuICAgICAgICAgICAgX3RoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIHRyZWVEYXRhczogbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgIGNoZWNrZWRLZXlzOiBfdGhpcy5fZGF0YVRvQ2hlY2tlZEtleXMobW9kZWxEYXRhKSxcclxuICAgICAgICAgICAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1Byb3BzLmRhdGFDaGFuZ2VkLCB0aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgIF0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGxvYWQ6IChkYXRhLCBtb2RlbERhdGEsIHN0b3JlKSA9PiB7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1Byb3BzLmxvYWQsIHRoaXMsIFtkYXRhLCBtb2RlbERhdGEsIHN0b3JlXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb25FcnJvckxvYWQ6IChlcnIsIHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgdXRpbHMuY2FsbGJhY2sobGlzdGVuZXJzUHJvcHMub25FcnJvckxvYWQsIHRoaXMsIFtlcnIsIHJlc3BvbnNlXSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZGF0YTogdHJlZURhdGEubGVuZ3RoID4gMCA/IHRyZWVEYXRhIDogbnVsbCxcclxuICAgICAgICBhdXRvTG9hZDogcmVzdFN0b3JlLmF1dG9Mb2FkICE9PSBmYWxzZSA/IHRydWUgOiBmYWxzZSxcclxuICAgICAgICAuLi5yZXN0U3RvcmUsXHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuc3RvcmUgPSBuZXcgVHJlZVN0b3JlKHN0b3JlT3B0aW9uKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFRpdGxlKGRhdGEpIHtcclxuICAgIGxldCB0aXRsZSA9IFwiXCI7XHJcbiAgICBpZiAodGhpcy5wcm9wcy50aXRsZUFsaWFzKSB7XHJcbiAgICAgIGNvbnN0IHRpdGxlc0xhYmxlcyA9IHRoaXMucHJvcHMudGl0bGVBbGlhcy5zcGxpdChcIixcIik7XHJcbiAgICAgIGlmICh0aXRsZXNMYWJsZXMubGVuZ3RoID09IDApIHtcclxuICAgICAgICB0aXRsZSA9IGRhdGFbdGhpcy5wcm9wcy50aXRsZUFsaWFzXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3IgKGxldCBpID0gMTsgaSA8IHRpdGxlc0xhYmxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgaWYgKGRhdGFbdGl0bGVzTGFibGVzW2ldXSkge1xyXG4gICAgICAgICAgICB0aXRsZSA9XHJcbiAgICAgICAgICAgICAgaSA9PT0gMVxyXG4gICAgICAgICAgICAgICAgPyBkYXRhW3RpdGxlc0xhYmxlc1tpXV1cclxuICAgICAgICAgICAgICAgIDogdGl0bGUgKyBcIi1cIiArIGRhdGFbdGl0bGVzTGFibGVzW2ldXTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRpdGxlKSB7XHJcbiAgICAgICAgICB0aXRsZSA9IFwiKFwiICsgdGl0bGUgKyBcIilcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGl0bGUgPSBkYXRhW3RpdGxlc0xhYmxlc1swXV0gKyB0aXRsZTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGl0bGUgPSBkYXRhLnRpdGxlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRpdGxlO1xyXG4gIH1cclxuXHJcbiAgZGF0YUNoYW5nZUJlZm9yZSA9IChkYXRhKSA9PiB7XHJcbiAgICBjb25zdCBvcmlnaW5EYXRhID0gY2xvbmVEZWVwKGRhdGEpO1xyXG4gICAgaWYgKCF0aGlzLnByb3BzLnRpdGxlQWxpYXMpIHtcclxuICAgICAgcmV0dXJuIG9yaWdpbkRhdGE7XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShvcmlnaW5EYXRhKSkge1xyXG4gICAgICBjb25zdCBuZXdEYXRhID0gdGhpcy5faXRlcmF0b3Iob3JpZ2luRGF0YSk7XHJcbiAgICAgIHJldHVybiBuZXdEYXRhO1xyXG4gICAgfSBlbHNlIGlmIChvcmlnaW5EYXRhICYmIHR5cGVvZiBvcmlnaW5EYXRhID09PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgIG9yaWdpbkRhdGEudGl0bGUgPSB0aGlzLmdldFRpdGxlKG9yaWdpbkRhdGEpO1xyXG4gICAgICBpZiAob3JpZ2luRGF0YS5jaGlsZHJlbikgdGhpcy5faXRlcmF0b3Iob3JpZ2luRGF0YS5jaGlsZHJlbik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb3JpZ2luRGF0YTtcclxuICB9O1xyXG5cclxuICBfaXRlcmF0b3IgPSAoZGF0YSkgPT4ge1xyXG4gICAgLy8gY29uc3QgdGl0bGVBbGlhcyA9IHRoaXMucHJvcHMudGl0bGVBbGlhcztcclxuICAgIC8vIOWmguaenOS8oOWFpeeahGRhdGHmmK9kdmHkuK1tb2RlbOaVsOaNruaYr+S4jeWFgeiuuOS/ruaUueeahCzmiYDku6XlhYjovazmjaLkuIDkuItcclxuICAgIC8vIGNvbnN0IG5ld0RhdGEgPSBkYXRhLm1hcCgoaXRlbSkgPT4gKHsgLi4uaXRlbSB9KSk7XHJcbiAgICBkYXRhLmZvckVhY2goKGl0ZW0pID0+IHtcclxuICAgICAgaXRlbS50aXRsZSA9IHRoaXMuZ2V0VGl0bGUoaXRlbSk7XHJcbiAgICAgIGlmIChpdGVtLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgdGhpcy5faXRlcmF0b3IoaXRlbS5jaGlsZHJlbik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGRhdGE7XHJcbiAgfTtcclxuXHJcbiAgLyoqXHJcbiAgICog5L+u5pS55pWw5o2uXHJcbiAgICovXHJcbiAgbWFwRGF0YSA9ICgpID0+IHt9O1xyXG5cclxuICAvKipcclxuICAgKiDliJ3lp4vljJboioLngrnpgInkuK1cclxuICAgKiBAcGFyYW0geyp9IG1vZGVsRGF0YSAg5pWw5o2uXHJcbiAgICovXHJcbiAgX2RhdGFUb0NoZWNrZWRLZXlzKG1vZGVsRGF0YSkge1xyXG4gICAgcmV0dXJuIFtdO1xyXG4gICAgLy8gcmV0dXJuIHsgY2hlY2tlZDogW10sIGhhbGZDaGVja2VkOiBbXSB9O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog55WM6Z2i5riy5p+TXHJcbiAgICovXHJcbiAgcmVuZGVyVGVtcGxhdGUodHJlZVByb3BzOiBJVHJlZVBhbmVsUHJvcHMsIG5ld1RyZWVEYXRhcykge1xyXG4gICAgcmV0dXJuIDw+PC8+O1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCk6IFJlYWN0LlJlYWN0Tm9kZSB7XHJcbiAgICBjb25zdCB7IHNlYXJjaFRleHQsIHRyZWVEYXRhcywgY2hlY2tlZEtleXMsIGZpZWxkT3B0aW9uLCBzZWFyY2hDb2xvciB9ID1cclxuICAgICAgICB0aGlzLnN0YXRlLFxyXG4gICAgICB0cmVlUHJvcHMgPSB1dGlscy5vbWl0KHRoaXMucHJvcHMsIFtcInN0b3JlXCJdLCB7XHJcbiAgICAgICAgY2hlY2tlZEtleXM6IGNoZWNrZWRLZXlzLFxyXG4gICAgICB9KTtcclxuICAgIGxldCBuZXdUcmVlRGF0YXMgPSBbXTtcclxuICAgIGlmIChzZWFyY2hUZXh0KSB7XHJcbiAgICAgIGNvbnN0IGRhdGEgPSB0cmVldXRpbHMuZ2V0U2VhcmNoTWVudURhdGFzKFxyXG4gICAgICAgIHRoaXMsXHJcbiAgICAgICAgc2VhcmNoVGV4dCxcclxuICAgICAgICBmaWVsZE9wdGlvbixcclxuICAgICAgICBzZWFyY2hDb2xvclxyXG4gICAgICApO1xyXG4gICAgICBuZXdUcmVlRGF0YXMgPSBkYXRhLnRyZWVEYXRhcztcclxuICAgICAgdHJlZVByb3BzLm9wZW5LZXlzID0gZGF0YS5vcGVuS2V5cztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld1RyZWVEYXRhcyA9IHRyZWVEYXRhcztcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLnJlbmRlclRlbXBsYXRlKHRyZWVQcm9wcywgbmV3VHJlZURhdGFzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOiOt+WPluaVsOaNruWvueixoVxyXG4gICAqL1xyXG4gIGdldFN0b3JlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RvcmU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDojrflj5bmlbDmja7mqKHlnovlr7nosaFcclxuICAgKi9cclxuICBnZXRNb2RlbCgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlLmdldE1vZGVsKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiAg5Yi35paw55WM6Z2iXHJcbiAgICogQHBhcmFtIHtPYmplY3R9IG9wdGlvbnMg5Y+C5pWwXHJcbiAgICovXHJcbiAgcmVsb2FkKG9wdGlvbnMpIHtcclxuICAgIHRoaXMuc3RvcmUucmVsb2FkKG9wdGlvbnMpO1xyXG4gICAgcmV0dXJuIHRoaXM7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDoj5zljZXmkJzntKLov4fmu6TmmL7npLpcclxuICAgKiBAcGFyYW0ge1N0cmluZ30gdmFsXHJcbiAgICovXHJcbiAgaGFuZGxlU2VhcmNoKHZhbCwgZmllbGRPcHRpb24/LCBzZWFyY2hDb2xvcj8pIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWFyY2hUZXh0OiB2YWwsXHJcbiAgICAgIGZpZWxkT3B0aW9uOiBmaWVsZE9wdGlvbixcclxuICAgICAgc2VhcmNoQ29sb3I6IHNlYXJjaENvbG9yLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBUcmVlUGFuZWw7XHJcbiJdfQ==
|
|
@@ -109,44 +109,45 @@ var EditorForm = /*#__PURE__*/function (_PureComponent) {
|
|
|
109
109
|
var formValue = (_this$formRef$current2 = this.formRef.current) === null || _this$formRef$current2 === void 0 ? void 0 : _this$formRef$current2.getFieldsValue();
|
|
110
110
|
var valid = this.valid;
|
|
111
111
|
(_this$formRef$current3 = this.formRef.current) === null || _this$formRef$current3 === void 0 ? void 0 : _this$formRef$current3.validateFields(valid).then(function () {
|
|
112
|
-
|
|
112
|
+
var _this2$formRef$curren;
|
|
113
113
|
|
|
114
|
-
if (
|
|
115
|
-
|
|
114
|
+
if (onSubmit) {
|
|
115
|
+
onSubmit && onSubmit(formValue, label);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
116
118
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
119
|
+
_this2.setState({
|
|
120
|
+
loading: true
|
|
121
|
+
});
|
|
120
122
|
|
|
121
|
-
|
|
123
|
+
var data = _objectSpread({}, formValue);
|
|
122
124
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
125
|
+
if (label == "编辑") {
|
|
126
|
+
data = _objectSpread(_objectSpread({}, data), {}, {
|
|
127
|
+
id: value === null || value === void 0 ? void 0 : value.id
|
|
128
|
+
});
|
|
129
|
+
}
|
|
128
130
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
131
|
+
if (!submitUrl) {
|
|
132
|
+
throw new Error("url不能为空!");
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
(_this2$formRef$curren = _this2.formRef.current) === null || _this2$formRef$curren === void 0 ? void 0 : _this2$formRef$curren.onSubmit(submitUrl, {
|
|
136
|
+
data: _objectSpread({}, formValue),
|
|
137
|
+
noUndefined: label == "编辑",
|
|
138
|
+
submitParams: submitParams
|
|
139
|
+
}, function (res) {
|
|
140
|
+
var code = res.code;
|
|
132
141
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
noUndefined: label == "编辑",
|
|
136
|
-
submitParams: submitParams
|
|
137
|
-
}, function (res) {
|
|
138
|
-
var code = res.code;
|
|
139
|
-
|
|
140
|
-
_this2.setState({
|
|
141
|
-
loading: false
|
|
142
|
-
});
|
|
143
|
-
|
|
144
|
-
if (code === 200) {
|
|
145
|
-
message.success(label + "成功");
|
|
146
|
-
callBack && callBack();
|
|
147
|
-
}
|
|
142
|
+
_this2.setState({
|
|
143
|
+
loading: false
|
|
148
144
|
});
|
|
149
|
-
|
|
145
|
+
|
|
146
|
+
if (code === 200) {
|
|
147
|
+
message.success(label + "成功");
|
|
148
|
+
callBack && callBack();
|
|
149
|
+
}
|
|
150
|
+
});
|
|
150
151
|
}).catch(function (errorInfo) {});
|
|
151
152
|
}
|
|
152
153
|
}, {
|
|
@@ -203,7 +204,8 @@ var EditorForm = /*#__PURE__*/function (_PureComponent) {
|
|
|
203
204
|
name: item.name,
|
|
204
205
|
rules: item.rules
|
|
205
206
|
}, getNode(item.type, _objectSpread(_objectSpread({}, item.props), {}, {
|
|
206
|
-
placeholder: "\u8BF7\u8F93\u5165".concat(item.label)
|
|
207
|
+
placeholder: "\u8BF7\u8F93\u5165".concat(item.label),
|
|
208
|
+
disabled: label == "查看"
|
|
207
209
|
}))));
|
|
208
210
|
})));
|
|
209
211
|
}
|
|
@@ -213,4 +215,4 @@ var EditorForm = /*#__PURE__*/function (_PureComponent) {
|
|
|
213
215
|
}(PureComponent);
|
|
214
216
|
|
|
215
217
|
export default EditorForm;
|
|
216
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2VDb21wb25lbnRzL0Jhc2VQYWdlL0Zvcm0udHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIkZvcm0iLCJnZXROb2RlIiwibWVzc2FnZSIsIkNvbCIsIlJvdyIsIkVkaXRvckZvcm0iLCJjcmVhdGVSZWYiLCJsb2FkaW5nIiwibGFiZWwiLCJlZGl0b3JGbGFnIiwidmFsdWUiLCJmbGFnIiwic2V0U3RhdGUiLCJmb3JtUmVmIiwiY3VycmVudCIsInNob3dGb3JtIiwiYXR0cmlidXRlIiwicHJvcHMiLCJhdXRvU3VibWl0Iiwic3VibWl0VXJsIiwic3VibWl0UGFyYW1zIiwib25TdWJtaXQiLCJjYWxsQmFjayIsInN0YXRlIiwiZm9ybVZhbHVlIiwiZ2V0RmllbGRzVmFsdWUiLCJ2YWxpZCIsInZhbGlkYXRlRmllbGRzIiwidGhlbiIsImRhdGEiLCJpZCIsIkVycm9yIiwibm9VbmRlZmluZWQiLCJyZXMiLCJjb2RlIiwic3VjY2VzcyIsImNhdGNoIiwiZXJyb3JJbmZvIiwiZm9ybVByb3BzIiwibW9kYWxQcm9wcyIsInRpdGxlIiwib2tUZXh0IiwiY2FuY2VsVGV4dCIsIm9uT2siLCJiaW5kIiwib2tCdXR0b25Qcm9wcyIsImNlbnRlcmVkIiwid2lkdGgiLCJuZXdWYWxpZCIsImZsZXgiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJydWxlcyIsImxlbmd0aCIsInB1c2giLCJuYW1lIiwic3BhbiIsInR5cGUiLCJwbGFjZWhvbGRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQVAsSUFBZ0JDLGFBQWhCLFFBQXFDLE9BQXJDO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixZQUFqQjtBQUNBLFNBQVNDLE9BQVQsUUFBd0IsYUFBeEI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLGVBQXBCO0FBQ0EsT0FBT0MsR0FBUCxNQUFnQixnQkFBaEI7QUFDQSxP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cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBGb3JtIGZyb20gXCIuLi8uLi9mb3JtXCI7XG5pbXBvcnQgeyBnZXROb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XG5pbXBvcnQgbWVzc2FnZSBmcm9tIFwiLi4vLi4vbWVzc2FnZVwiO1xuaW1wb3J0IENvbCBmcm9tIFwiLi4vLi4vZ3JpZC9Db2xcIjtcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2dyaWQvUm93XCI7XG5jbGFzcyBFZGl0b3JGb3JtIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxhbnk+IHtcbiAgZm9ybVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XG4gIHN0YXRlID0ge1xuICAgIGxvYWRpbmc6IGZhbHNlLFxuICAgIGxhYmVsOiBcIlwiLFxuICAgIGVkaXRvckZsYWc6IHRydWUsXG4gICAgdmFsdWU6IHt9IGFzIGFueSxcbiAgfTtcbiAgdmFsaWQ6IGFueSA9IFtdO1xuICBzaG93KHZhbHVlPzogYW55LCBmbGFnID0gdHJ1ZSkge1xuICAgIGxldCBsYWJlbCA9IFwi5paw5aKeXCI7XG4gICAgaWYgKHZhbHVlICYmIGZsYWcpIHtcbiAgICAgIGxhYmVsID0gXCLnvJbovpFcIjtcbiAgICB9IGVsc2UgaWYgKCFmbGFnKSB7XG4gICAgICBsYWJlbCA9IFwi5p+l55yLXCI7XG4gICAgfVxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGxhYmVsOiBsYWJlbCxcbiAgICAgICAgZWRpdG9yRmxhZzogIWZsYWcsXG4gICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2hvd0Zvcm0odmFsdWU/LmF0dHJpYnV0ZSk7XG4gIH1cbiAgb25TdWJtaXQoKSB7XG4gICAgY29uc3Qge1xuICAgICAgYXV0b1N1Ym1pdCA9IHRydWUsXG4gICAgICBzdWJtaXRVcmwgPSBcIlwiLFxuICAgICAgc3VibWl0UGFyYW1zID0ge30sXG4gICAgICBvblN1Ym1pdCxcbiAgICAgIGNhbGxCYWNrLFxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHsgbGFiZWwsIHZhbHVlIH0gPSB0aGlzLnN0YXRlO1xuICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuZm9ybVJlZi5jdXJyZW50Py5nZXRGaWVsZHNWYWx1ZSgpO1xuICAgIGxldCB2YWxpZCA9IHRoaXMudmFsaWQ7XG4gICAgdGhpcy5mb3JtUmVmLmN1cnJlbnRcbiAgICAgID8udmFsaWRhdGVGaWVsZHModmFsaWQpXG4gICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgIG9uU3VibWl0ICYmIG9uU3VibWl0KGZvcm1WYWx1ZSk7XG4gICAgICAgIGlmIChhdXRvU3VibWl0KSB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IHRydWUgfSk7XG4gICAgICAgICAgbGV0IGRhdGEgPSB7IC4uLmZvcm1WYWx1ZSB9O1xuICAgICAgICAgIGlmIChsYWJlbCA9PSBcIue8lui+kVwiKSB7XG4gICAgICAgICAgICBkYXRhID0geyAuLi5kYXRhLCBpZDogdmFsdWU/LmlkIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghc3VibWl0VXJsKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1cmzkuI3og73kuLrnqbrvvIFcIik7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5vblN1Ym1pdChcbiAgICAgICAgICAgIHN1Ym1pdFVybCxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgZGF0YTogeyAuLi5mb3JtVmFsdWUgfSxcbiAgICAgICAgICAgICAgbm9VbmRlZmluZWQ6IGxhYmVsID09IFwi57yW6L6RXCIsXG4gICAgICAgICAgICAgIHN1Ym1pdFBhcmFtcyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAocmVzOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgeyBjb2RlIH0gPSByZXM7XG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhsYWJlbCArIFwi5oiQ5YqfXCIpO1xuICAgICAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICAgLmNhdGNoKChlcnJvckluZm86IGFueSkgPT4ge30pO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgZm9ybVByb3BzID0gW10gfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgeyBsb2FkaW5nLCBsYWJlbCwgZWRpdG9yRmxhZyB9ID0gdGhpcy5zdGF0ZTtcbiAgICBjb25zdCBtb2RhbFByb3BzID0ge1xuICAgICAgdGl0bGU6IGxhYmVsLFxuICAgICAgb2tUZXh0OiBcIuehruWumlwiLFxuICAgICAgY2FuY2VsVGV4dDogXCLlj5bmtohcIixcbiAgICAgIG9uT2s6IHRoaXMub25TdWJtaXQuYmluZCh0aGlzKSxcbiAgICAgIG9rQnV0dG9uUHJvcHM6IHsgbG9hZGluZzogbG9hZGluZyB9LFxuICAgICAgY2VudGVyZWQ6IHRydWUsXG4gICAgICB3aWR0aDogXCI1MHZ3XCIsXG4gICAgfTtcbiAgICBjb25zdCBuZXdWYWxpZDogYW55W10gPSBbXTtcbiAgICByZXR1cm4gKFxuICAgICAgPEZvcm1cbiAgICAgICAgcmVmPXt0aGlzLmZvcm1SZWZ9XG4gICAgICAgIHNob3dNb2RlbD17XCJtb2RhbFwifVxuICAgICAgICBtb2RhbFByb3BzPXt7IC4uLm1vZGFsUHJvcHMgfX1cbiAgICAgICAgbGFiZWxDb2w9e3sgZmxleDogXCIxMDBweFwiIH19XG4gICAgICAgIHdyYXBwZXJDb2w9e3sgZmxleDogXCIxNXZ3XCIgfX1cbiAgICAgID5cbiAgICAgICAgPFJvdyBndXR0ZXI9ezI0fT5cbiAgICAgICAgICB7Zm9ybVByb3BzLm1hcCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwcm9wcyA9IHsgLi4uaXRlbS5wcm9wcyB9O1xuICAgICAgICAgICAgaWYgKGl0ZW0ucnVsZXMgJiYgaXRlbS5ydWxlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgIG5ld1ZhbGlkLnB1c2goaXRlbS5uYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpbmRleCArIDEgPT09IGZvcm1Qcm9wcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgdGhpcy52YWxpZCA9IG5ld1ZhbGlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPENvbCBzcGFuPXtpdGVtLnNwYW4gfHwgMTJ9IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW1cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxuICAgICAgICAgICAgICAgICAgcnVsZXM9e2l0ZW0ucnVsZXN9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge2dldE5vZGUoaXRlbS50eXBlLCB7XG4gICAgICAgICAgICAgICAgICAgIC4uLml0ZW0ucHJvcHMsXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBg6K+36L6T5YWlJHtpdGVtLmxhYmVsfWAsXG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cbiAgICAgICAgICAgICAgPC9Db2w+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0pfVxuICAgICAgICA8L1Jvdz5cbiAgICAgIDwvRm9ybT5cbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEVkaXRvckZvcm07XG4iXX0=
|
|
218
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2VDb21wb25lbnRzL0Jhc2VQYWdlL0Zvcm0udHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIkZvcm0iLCJnZXROb2RlIiwibWVzc2FnZSIsIkNvbCIsIlJvdyIsIkVkaXRvckZvcm0iLCJjcmVhdGVSZWYiLCJsb2FkaW5nIiwibGFiZWwiLCJlZGl0b3JGbGFnIiwidmFsdWUiLCJmbGFnIiwic2V0U3RhdGUiLCJmb3JtUmVmIiwiY3VycmVudCIsInNob3dGb3JtIiwiYXR0cmlidXRlIiwicHJvcHMiLCJhdXRvU3VibWl0Iiwic3VibWl0VXJsIiwic3VibWl0UGFyYW1zIiwib25TdWJtaXQiLCJjYWxsQmFjayIsInN0YXRlIiwiZm9ybVZhbHVlIiwiZ2V0RmllbGRzVmFsdWUiLCJ2YWxpZCIsInZhbGlkYXRlRmllbGRzIiwidGhlbiIsImRhdGEiLCJpZCIsIkVycm9yIiwibm9VbmRlZmluZWQiLCJyZXMiLCJjb2RlIiwic3VjY2VzcyIsImNhdGNoIiwiZXJyb3JJbmZvIiwiZm9ybVByb3BzIiwibW9kYWxQcm9wcyIsInRpdGxlIiwib2tUZXh0IiwiY2FuY2VsVGV4dCIsIm9uT2siLCJiaW5kIiwib2tCdXR0b25Qcm9wcyIsImNlbnRlcmVkIiwid2lkdGgiLCJuZXdWYWxpZCIsImZsZXgiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJydWxlcyIsImxlbmd0aCIsInB1c2giLCJuYW1lIiwic3BhbiIsInR5cGUiLCJwbGFjZWhvbGRlciIsImRpc2FibGVkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxJQUFnQkMsYUFBaEIsUUFBcUMsT0FBckM7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLFlBQWpCO0FBQ0EsU0FBU0MsT0FBVCxRQUF3QixhQUF4QjtBQUNBLE9BQU9DLE9BQVAsTUFBb0IsZUFBcEI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLGdC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LE9BdkJBLENBREgsQ0FQRixDQURGO0FBb0NEOzs7O0VBeEhzQlQsYTs7QUEySHpCLGVBQWVNLFVBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vZm9ybVwiO1xyXG5pbXBvcnQgeyBnZXROb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCBtZXNzYWdlIGZyb20gXCIuLi8uLi9tZXNzYWdlXCI7XHJcbmltcG9ydCBDb2wgZnJvbSBcIi4uLy4uL2dyaWQvQ29sXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2dyaWQvUm93XCI7XHJcbmNsYXNzIEVkaXRvckZvcm0gZXh0ZW5kcyBQdXJlQ29tcG9uZW50PGFueT4ge1xyXG4gIGZvcm1SZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIHN0YXRlID0ge1xyXG4gICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICBsYWJlbDogXCJcIixcclxuICAgIGVkaXRvckZsYWc6IHRydWUsXHJcbiAgICB2YWx1ZToge30gYXMgYW55LFxyXG4gIH07XHJcbiAgdmFsaWQ6IGFueSA9IFtdO1xyXG4gIHNob3codmFsdWU/OiBhbnksIGZsYWcgPSB0cnVlKSB7XHJcbiAgICBsZXQgbGFiZWwgPSBcIuaWsOWinlwiO1xyXG4gICAgaWYgKHZhbHVlICYmIGZsYWcpIHtcclxuICAgICAgbGFiZWwgPSBcIue8lui+kVwiO1xyXG4gICAgfSBlbHNlIGlmICghZmxhZykge1xyXG4gICAgICBsYWJlbCA9IFwi5p+l55yLXCI7XHJcbiAgICB9XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgbGFiZWw6IGxhYmVsLFxyXG4gICAgICAgIGVkaXRvckZsYWc6ICFmbGFnLFxyXG4gICAgICAgIHZhbHVlOiB2YWx1ZSxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudD8uc2hvd0Zvcm0odmFsdWU/LmF0dHJpYnV0ZSk7XHJcbiAgfVxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBhdXRvU3VibWl0ID0gdHJ1ZSxcclxuICAgICAgc3VibWl0VXJsID0gXCJcIixcclxuICAgICAgc3VibWl0UGFyYW1zID0ge30sXHJcbiAgICAgIG9uU3VibWl0LFxyXG4gICAgICBjYWxsQmFjayxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBsYWJlbCwgdmFsdWUgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCBmb3JtVmFsdWUgPSB0aGlzLmZvcm1SZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIGxldCB2YWxpZCA9IHRoaXMudmFsaWQ7XHJcbiAgICB0aGlzLmZvcm1SZWYuY3VycmVudFxyXG4gICAgICA/LnZhbGlkYXRlRmllbGRzKHZhbGlkKVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgaWYgKG9uU3VibWl0KSB7XHJcbiAgICAgICAgICBvblN1Ym1pdCAmJiBvblN1Ym1pdChmb3JtVmFsdWUsIGxhYmVsKTtcclxuICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGxvYWRpbmc6IHRydWUgfSk7XHJcbiAgICAgICAgbGV0IGRhdGEgPSB7IC4uLmZvcm1WYWx1ZSB9O1xyXG4gICAgICAgIGlmIChsYWJlbCA9PSBcIue8lui+kVwiKSB7XHJcbiAgICAgICAgICBkYXRhID0geyAuLi5kYXRhLCBpZDogdmFsdWU/LmlkIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICghc3VibWl0VXJsKSB7XHJcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJ1cmzkuI3og73kuLrnqbrvvIFcIik7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuZm9ybVJlZi5jdXJyZW50Py5vblN1Ym1pdChcclxuICAgICAgICAgIHN1Ym1pdFVybCxcclxuICAgICAgICAgIHtcclxuICAgICAgICAgICAgZGF0YTogeyAuLi5mb3JtVmFsdWUgfSxcclxuICAgICAgICAgICAgbm9VbmRlZmluZWQ6IGxhYmVsID09IFwi57yW6L6RXCIsXHJcbiAgICAgICAgICAgIHN1Ym1pdFBhcmFtcyxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgeyBjb2RlIH0gPSByZXM7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiBmYWxzZSB9KTtcclxuICAgICAgICAgICAgaWYgKGNvZGUgPT09IDIwMCkge1xyXG4gICAgICAgICAgICAgIG1lc3NhZ2Uuc3VjY2VzcyhsYWJlbCArIFwi5oiQ5YqfXCIpO1xyXG4gICAgICAgICAgICAgIGNhbGxCYWNrICYmIGNhbGxCYWNrKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGVycm9ySW5mbzogYW55KSA9PiB7fSk7XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IGZvcm1Qcm9wcyA9IFtdIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBsb2FkaW5nLCBsYWJlbCwgZWRpdG9yRmxhZyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IG1vZGFsUHJvcHMgPSB7XHJcbiAgICAgIHRpdGxlOiBsYWJlbCxcclxuICAgICAgb2tUZXh0OiBcIuehruWumlwiLFxyXG4gICAgICBjYW5jZWxUZXh0OiBcIuWPlua2iFwiLFxyXG4gICAgICBvbk9rOiB0aGlzLm9uU3VibWl0LmJpbmQodGhpcyksXHJcbiAgICAgIG9rQnV0dG9uUHJvcHM6IHsgbG9hZGluZzogbG9hZGluZyB9LFxyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgd2lkdGg6IFwiNTB2d1wiLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IG5ld1ZhbGlkOiBhbnlbXSA9IFtdO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPEZvcm1cclxuICAgICAgICByZWY9e3RoaXMuZm9ybVJlZn1cclxuICAgICAgICBzaG93TW9kZWw9e1wibW9kYWxcIn1cclxuICAgICAgICBtb2RhbFByb3BzPXt7IC4uLm1vZGFsUHJvcHMgfX1cclxuICAgICAgICBsYWJlbENvbD17eyBmbGV4OiBcIjEwMHB4XCIgfX1cclxuICAgICAgICB3cmFwcGVyQ29sPXt7IGZsZXg6IFwiMTV2d1wiIH19XHJcbiAgICAgID5cclxuICAgICAgICA8Um93IGd1dHRlcj17MjR9PlxyXG4gICAgICAgICAge2Zvcm1Qcm9wcy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBwcm9wcyA9IHsgLi4uaXRlbS5wcm9wcyB9O1xyXG4gICAgICAgICAgICBpZiAoaXRlbS5ydWxlcyAmJiBpdGVtLnJ1bGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICBuZXdWYWxpZC5wdXNoKGl0ZW0ubmFtZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKGluZGV4ICsgMSA9PT0gZm9ybVByb3BzLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgIHRoaXMudmFsaWQgPSBuZXdWYWxpZDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgIDxDb2wgc3Bhbj17aXRlbS5zcGFuIHx8IDEyfSBrZXk9e2luZGV4fT5cclxuICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW1cclxuICAgICAgICAgICAgICAgICAgbGFiZWw9e2l0ZW0ubGFiZWx9XHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9e2l0ZW0ubmFtZX1cclxuICAgICAgICAgICAgICAgICAgcnVsZXM9e2l0ZW0ucnVsZXN9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHtnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgIC4uLml0ZW0ucHJvcHMsXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YCxcclxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZDogbGFiZWwgPT0gXCLmn6XnnItcIixcclxuICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cclxuICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pfVxyXG4gICAgICAgIDwvUm93PlxyXG4gICAgICA8L0Zvcm0+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgRWRpdG9yRm9ybTtcclxuIl19
|
|
@@ -21,7 +21,7 @@ interface NSCBaseBageProps {
|
|
|
21
21
|
treeProps?: TreeProps;
|
|
22
22
|
submitParams?: Object;
|
|
23
23
|
submitUrl?: string;
|
|
24
|
-
|
|
24
|
+
onSubmit?: any;
|
|
25
25
|
columns: Array<Object>;
|
|
26
26
|
showLeft?: boolean;
|
|
27
27
|
showToolButton?: boolean;
|
|
@@ -29,6 +29,7 @@ interface NSCBaseBageProps {
|
|
|
29
29
|
editorForm?: boolean;
|
|
30
30
|
showDeleteButton?: boolean;
|
|
31
31
|
deleteUrl?: string;
|
|
32
|
+
onDelete?: any;
|
|
32
33
|
}
|
|
33
34
|
declare class BasePage extends PureComponent<NSCBaseBageProps, any> {
|
|
34
35
|
tableRef: React.RefObject<any>;
|
|
@@ -121,7 +121,9 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
|
|
|
121
121
|
}, {
|
|
122
122
|
key: "onDelete",
|
|
123
123
|
value: function onDelete() {
|
|
124
|
-
var
|
|
124
|
+
var _this$props = this.props,
|
|
125
|
+
deleteUrl = _this$props.deleteUrl,
|
|
126
|
+
onDelete = _this$props.onDelete;
|
|
125
127
|
var selectedRowKeys = this.state.selectedRowKeys;
|
|
126
128
|
|
|
127
129
|
if (selectedRowKeys.length == 0) {
|
|
@@ -129,6 +131,11 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
|
|
|
129
131
|
return;
|
|
130
132
|
}
|
|
131
133
|
|
|
134
|
+
if (onDelete) {
|
|
135
|
+
onDelete && onDelete(selectedRowKeys);
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
|
|
132
139
|
if (!deleteUrl) {
|
|
133
140
|
throw new Error("url不能为空!");
|
|
134
141
|
}
|
|
@@ -259,6 +266,7 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
|
|
|
259
266
|
}, {
|
|
260
267
|
key: "renderCloumnButton",
|
|
261
268
|
value: function renderCloumnButton(columnButtons, record, actionButton) {
|
|
269
|
+
var editorForm = this.props.editorForm;
|
|
262
270
|
var content = columnButtons.map(function (item, index) {
|
|
263
271
|
var _item$props = item.props,
|
|
264
272
|
children = _item$props.children,
|
|
@@ -275,7 +283,7 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
|
|
|
275
283
|
}, params), children);
|
|
276
284
|
});
|
|
277
285
|
var num = 1;
|
|
278
|
-
if (!actionButton) num = 3;
|
|
286
|
+
if (!actionButton || !editorForm) num = 3;
|
|
279
287
|
|
|
280
288
|
if (columnButtons.length > num) {
|
|
281
289
|
return /*#__PURE__*/React.createElement(Popover, {
|
|
@@ -349,32 +357,30 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
|
|
|
349
357
|
var _this2 = this;
|
|
350
358
|
|
|
351
359
|
var selectedRowKeys = this.state.selectedRowKeys;
|
|
352
|
-
var _this$
|
|
353
|
-
_this$
|
|
354
|
-
columns = _this$
|
|
355
|
-
_this$
|
|
356
|
-
showSearch = _this$
|
|
357
|
-
children = _this$
|
|
358
|
-
_this$
|
|
359
|
-
|
|
360
|
-
_this$
|
|
361
|
-
|
|
362
|
-
_this$
|
|
363
|
-
|
|
364
|
-
_this$
|
|
365
|
-
|
|
366
|
-
_this$
|
|
367
|
-
|
|
368
|
-
_this$
|
|
369
|
-
|
|
370
|
-
_this$
|
|
371
|
-
|
|
372
|
-
_this$
|
|
373
|
-
|
|
374
|
-
_this$
|
|
375
|
-
|
|
376
|
-
_this$props$editorFor = _this$props.editorForm,
|
|
377
|
-
editorForm = _this$props$editorFor === void 0 ? true : _this$props$editorFor;
|
|
360
|
+
var _this$props2 = this.props,
|
|
361
|
+
_this$props2$columns = _this$props2.columns,
|
|
362
|
+
columns = _this$props2$columns === void 0 ? [] : _this$props2$columns,
|
|
363
|
+
_this$props2$showSear = _this$props2.showSearch,
|
|
364
|
+
showSearch = _this$props2$showSear === void 0 ? true : _this$props2$showSear,
|
|
365
|
+
children = _this$props2.children,
|
|
366
|
+
_this$props2$submitUr = _this$props2.submitUrl,
|
|
367
|
+
submitUrl = _this$props2$submitUr === void 0 ? "" : _this$props2$submitUr,
|
|
368
|
+
_this$props2$tablePro = _this$props2.tableProps,
|
|
369
|
+
tableProps = _this$props2$tablePro === void 0 ? {} : _this$props2$tablePro,
|
|
370
|
+
_this$props2$treeProp = _this$props2.treeProps,
|
|
371
|
+
treeProps = _this$props2$treeProp === void 0 ? {} : _this$props2$treeProp,
|
|
372
|
+
_this$props2$showLeft = _this$props2.showLeft,
|
|
373
|
+
showLeft = _this$props2$showLeft === void 0 ? false : _this$props2$showLeft,
|
|
374
|
+
_this$props2$submitPa = _this$props2.submitParams,
|
|
375
|
+
submitParams = _this$props2$submitPa === void 0 ? {} : _this$props2$submitPa,
|
|
376
|
+
_this$props2$showTool = _this$props2.showToolButton,
|
|
377
|
+
showToolButton = _this$props2$showTool === void 0 ? true : _this$props2$showTool,
|
|
378
|
+
_this$props2$showAddB = _this$props2.showAddButton,
|
|
379
|
+
showAddButton = _this$props2$showAddB === void 0 ? true : _this$props2$showAddB,
|
|
380
|
+
_this$props2$showDele = _this$props2.showDeleteButton,
|
|
381
|
+
showDeleteButton = _this$props2$showDele === void 0 ? true : _this$props2$showDele,
|
|
382
|
+
_this$props2$editorFo = _this$props2.editorForm,
|
|
383
|
+
editorForm = _this$props2$editorFo === void 0 ? true : _this$props2$editorFo;
|
|
378
384
|
var _tableProps$store = tableProps.store,
|
|
379
385
|
store = _tableProps$store === void 0 ? {} : _tableProps$store,
|
|
380
386
|
_tableProps$filterCol = tableProps.filterColumn,
|
|
@@ -581,7 +587,6 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
|
|
|
581
587
|
onCancel: this.showForm.bind(this),
|
|
582
588
|
callBack: this.tableReload.bind(this),
|
|
583
589
|
formProps: editorForms,
|
|
584
|
-
autoSubmit: autoSubmit,
|
|
585
590
|
submitUrl: submitUrl,
|
|
586
591
|
submitParams: submitParams
|
|
587
592
|
}));
|
|
@@ -592,4 +597,4 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
|
|
|
592
597
|
}(PureComponent);
|
|
593
598
|
|
|
594
599
|
export default BasePage;
|
|
595
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2VDb21wb25lbnRzL0Jhc2VQYWdlL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJUYWJsZSIsIlRyZWUiLCJGb3JtIiwiQnV0dG9uIiwiTW9kYWwiLCJQb3BvdmVyIiwibWVzc2FnZSIsIkljb24iLCJpY29uVHlwZSIsIkVkaXRvckZvcm0iLCJjbHMiLCJzdHlsZXMiLCJEb3duT3V0bGluZWQiLCJVcE91dGxpbmVkIiwiZ2V0Tm9kZSIsInJlcXVlc3QiLCJCYXNlUGFnZSIsInByb3BzIiwiY3JlYXRlUmVmIiwiY2hlY2tlZFRyZWVLZXlzIiwic3RhdGUiLCJuYW1lIiwidXNlclR5cGUiLCJhY2NvdW50IiwidmFsdWUiLCJkZXB0SWQiLCJ0YWJsZUxvYWQiLCJ0eXBlIiwic2VsZWN0ZWRSb3dLZXlzIiwidHJlZVNlbGVjdGVkS2V5IiwiZXhwYW5kIiwiZmxhZyIsImVkaXRvclJlZiIsImN1cnJlbnQiLCJzaG93IiwiZGVsZXRlVXJsIiwibGVuZ3RoIiwid2FybmluZyIsIkVycm9yIiwiY29uZmlybSIsInRpdGxlIiwib2tUZXh0IiwiY2FuY2VsVGV4dCIsIm9uT2siLCJyZXF1ZXN0UGFyYW0iLCJtZXRob2QiLCJkYXRhIiwiaWRzIiwidGhlbiIsInJlcyIsImNvZGUiLCJzdWNjZXNzIiwiZXJyb3IiLCJjYXRjaCIsImNvbnNvbGUiLCJsb2ciLCJwYXJhbXMiLCJ0YWJsZVJlZiIsInN0b3JlIiwibG9hZCIsImZyb21WYWx1ZSIsInNlYXJjaFJlZiIsImdldEZpZWxkc1ZhbHVlIiwicmVsb2FkIiwicmVjb3JkIiwic2VsZWN0ZWQiLCJuZXdTZWxlY3RlZFJvd0tleXMiLCJpZCIsIm1hcCIsIml0ZW0iLCJpbmRleCIsInNwbGljZSIsInNldFN0YXRlIiwic2VsZWN0ZWRSb3dzIiwiY2hhbmdlUm93cyIsIm5ld2lkcyIsImNoYW5nZUlkcyIsImluZGV4T2YiLCJwdXNoIiwiY29sdW1uQnV0dG9ucyIsImFjdGlvbkJ1dHRvbiIsImNvbnRlbnQiLCJjaGlsZHJlbiIsInBhZ2VUeXBlIiwib25DbGljayIsIm51bSIsInNlbGVjdGVkS2V5cyIsInNlbGVjdGVkTm9kZXMiLCJrZXl3b3JkIiwidHJlZVByb3BzIiwic2VhcmNoS2V5Iiwic2VhcmNoRmllbGQiLCJpc0xlYWYiLCJkYXRhcmVmIiwiYXR0cmlidXRlIiwiY29sdW1ucyIsInNob3dTZWFyY2giLCJhdXRvU3VibWl0Iiwic3VibWl0VXJsIiwidGFibGVQcm9wcyIsInNob3dMZWZ0Iiwic3VibWl0UGFyYW1zIiwic2hvd1Rvb2xCdXR0b24iLCJzaG93QWRkQnV0dG9uIiwic2hvd0RlbGV0ZUJ1dHRvbiIsImVkaXRvckZvcm0iLCJmaWx0ZXJDb2x1bW4iLCJhY3Rpb25Db2x1bW4iLCJzaG93Um93U2VsZWN0aW9uIiwidHJlZVN0b3JlIiwidHJlZVNlYXJjaCIsInRpdGxlQWxpYXMiLCJ0YWJsZVBhcmFtcyIsInJvd1NlbGVjdGlvbiIsIm9uU2VsZWN0Iiwicm93U2VsZWN0aW9uT25TZWxlY3QiLCJiaW5kIiwib25TZWxlY3RBbGwiLCJyb3dTZWxlY3Rpb25PblNlbGVjdEFsbCIsImNvbHVtbldpZHRoIiwidGFibGVDb2x1bW4iLCJzZWFyY2hGb3JtcyIsImVkaXRvckZvcm1zIiwidGVtcCIsInNlYXJjaCIsImZpZWxkIiwiZGF0YUluZGV4IiwibGFiZWwiLCJlZGl0b3IiLCJydWxlcyIsInNwYW4iLCJjb2x1bW5TZWFyY2giLCJmaWx0ZXJQcm9wcyIsIkJ1dHRvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJhbGlnbiIsIndpZHRoIiwicmVuZGVyIiwidGV4dCIsInNob3dGb3JtIiwicmVuZGVyQ2xvdW1uQnV0dG9uIiwiZGlzcGxheSIsInRyZWVTZWxlY3QiLCJwbGFjZWhvbGRlciIsIm1hcmdpblRvcCIsIm9uU2VhcmNoIiwicmVzZXRGaWVsZHMiLCJyZWZyZXNoIiwiYV9zdHlsZSIsIm1hcmdpbkxlZnQiLCJhZGQiLCJvbkRlbGV0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U0FBUyxFQUFFQyxTQU5iO0FBT0UsUUFBQSxZQUFZLEVBQUVHO0FBUGhCLFFBMUdKLENBREY7QUF1SEQ7Ozs7RUEzYm9CdEcsYTs7QUE2YnZCLGVBQWVpQixRQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IFRhYmxlIGZyb20gXCIuLi8uLi90YWJsZVwiO1xyXG5pbXBvcnQgVHJlZSBmcm9tIFwiLi4vLi4vdHJlZVwiO1xyXG5pbXBvcnQgRm9ybSBmcm9tIFwiLi4vLi4vZm9ybVwiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi8uLi9idXR0b25cIjtcclxuaW1wb3J0IE1vZGFsIGZyb20gXCIuLi8uLi9tb2RhbFwiO1xyXG5pbXBvcnQgUG9wb3ZlciBmcm9tIFwiLi4vLi4vcG9wb3ZlclwiO1xyXG5pbXBvcnQgbWVzc2FnZSBmcm9tIFwiLi4vLi4vbWVzc2FnZVwiO1xyXG5pbXBvcnQgSWNvbiBmcm9tIFwiLi4vLi4vY29tbW9uL0ljb25Gb250XCI7XHJcbmltcG9ydCB7IGljb25UeXBlIH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xyXG5pbXBvcnQgRWRpdG9yRm9ybSBmcm9tIFwiLi9Gb3JtXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuaW1wb3J0IHN0eWxlcyBmcm9tIFwiLi9pbmRleC5sZXNzXCI7XHJcbmltcG9ydCBTdG9yZSwgeyBQYWdlU3RvcmUsIFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgRG93bk91dGxpbmVkLCBVcE91dGxpbmVkIH0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCB7IGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IHJlcXVlc3QgZnJvbSBcIm5zYy1yZXF1ZXN0XCI7XHJcbmludGVyZmFjZSBUYWJsZVByb3BzIHtcclxuICBhY3Rpb25Db2x1bW4/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuaTjeS9nOWIl1xyXG4gIGFjdGlvbkJ1dHRvbj86IGJvb2xlYW47IC8v5piv5ZCm6buY6K6k5pi+56S65paw5aKe77yM57yW6L6R6buY6K6k5oyJ6ZKuXHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIGZpbHRlckNvbHVtbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S66L+H5ruk5oyJ6ZKuXHJcbiAgc2hvd1Jvd1NlbGVjdGlvbj86IGJvb2xlYW47IC8v5piv5ZCm6KGo5qC85Yu+6YCJ5YiXXHJcbn1cclxuaW50ZXJmYWNlIFRyZWVQcm9wcyB7XHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIHNob3dTZWFyY2g/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuaQnOe0ouahhlxyXG4gIHNlYXJjaEtleT86IHN0cmluZzsgLy/mkJzntKJ2YWx1ZeWvueW6lOeahGtleVxyXG4gIHNlYXJjaEZpZWxkPzogc3RyaW5nOyAvL+afpeivouWvueW6lOeahGtleVxyXG4gIHRpdGxlQWxpYXM/OiBzdHJpbmc7IC8v5qCRdGl0bGXlr7nlupTnmoRrZXks6buY6K6kdGl0bGVcclxuICBub2RlUG9ycHM/OiBvYmplY3Q7XHJcbn1cclxuaW50ZXJmYWNlIE5TQ0Jhc2VCYWdlUHJvcHMge1xyXG4gIHNob3dTZWFyY2g/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuWktOmDqOaQnOe0ouagj1xyXG4gIHRhYmxlUHJvcHM/OiBUYWJsZVByb3BzOyAvL+ihqOagvOWPguaVsFxyXG4gIHRyZWVQcm9wcz86IFRyZWVQcm9wczsgLy/lt6bkvqfmoJHlj4LmlbBcclxuICBzdWJtaXRQYXJhbXM/OiBPYmplY3Q7XHJcbiAgc3VibWl0VXJsPzogc3RyaW5nO1xyXG4gIGF1dG9TdWJtaXQ/OiBib29sZWFuO1xyXG4gIGNvbHVtbnM6IEFycmF5PE9iamVjdD47XHJcbiAgc2hvd0xlZnQ/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuW3puS+p+ebruW9leagkVxyXG4gIHNob3dUb29sQnV0dG9uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmjInpkq7moI9cclxuICBzaG93QWRkQnV0dG9uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmt7vliqDmjInpkq5cclxuICBlZGl0b3JGb3JtPzogYm9vbGVhbjsgLy/mmK/lkKbpnIDopoHooajljZXlip/og70gLCDkuLpmYWxzZSDnvJbovpHvvIzmn6XnnIvvvIzmlrDlop7lip/og73lnYfkuI3lj6/nlKhcclxuICBzaG93RGVsZXRlQnV0dG9uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrliKDpmaTmjInpkq5cclxuICBkZWxldGVVcmw/OiBzdHJpbmc7IC8v5Yig6ZmkdXJsXHJcbn1cclxuXHJcbmNsYXNzIEJhc2VQYWdlIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxOU0NCYXNlQmFnZVByb3BzLCBhbnk+IHtcclxuICB0YWJsZVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgdHJlZVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgc2VhcmNoUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBlZGl0b3JSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBhbnkpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgIHR5cGU6IFwiYWRkXCIsXHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogW10sXHJcbiAgICAgIHRyZWVTZWxlY3RlZEtleTogXCJcIixcclxuICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgIH07XHJcbiAgfVxyXG4gIG9uU2VsZWN0ID0gKGNoZWNrZWRUcmVlS2V5czogYW55KSA9PiB7XHJcbiAgICBjb25zdCB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgdmFsdWUgPSB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50LCBkZXB0SWQ6IGNoZWNrZWRUcmVlS2V5c1swXSB9O1xyXG4gICAgdGhpcy50YWJsZUxvYWQodmFsdWUpO1xyXG4gIH07XHJcblxyXG4gIC8v5pi+56S66KGo5Y2VXHJcbiAgc2hvd0Zvcm0odmFsdWU/OiBhbnksIGZsYWcgPSB0cnVlKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5zaG93KHZhbHVlLCBmbGFnKTtcclxuICB9XHJcbiAgLy/mibnph4/liKDpmaRcclxuICBvbkRlbGV0ZSgpIHtcclxuICAgIGNvbnN0IHsgZGVsZXRlVXJsIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZFJvd0tleXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoc2VsZWN0ZWRSb3dLZXlzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIG1lc3NhZ2Uud2FybmluZyhcIuivt+mAieaLqeimgeWIoOmZpOeahOaVsOaNru+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCFkZWxldGVVcmwpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwidXJs5LiN6IO95Li656m677yBXCIpO1xyXG4gICAgfVxyXG4gICAgTW9kYWwuY29uZmlybSh7XHJcbiAgICAgIHRpdGxlOiBcIuaYr+WQpuehruiupOWIoOmZpOaJgOmAiemhue+8n1wiLFxyXG4gICAgICAvLyBpY29uOiA8SWNvbiB0eXBlPXsnaWNvbnRpc2hpLTMnfSAvPixcclxuICAgICAgb2tUZXh0OiBcIuehruiupFwiLFxyXG4gICAgICBjYW5jZWxUZXh0OiBcIuWPlua2iFwiLFxyXG4gICAgICBvbk9rOiAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVxdWVzdFBhcmFtID0geyBtZXRob2Q6IFwicG9zdFwiLCBkYXRhOiB7IGlkczogc2VsZWN0ZWRSb3dLZXlzIH0gfTtcclxuICAgICAgICByZXF1ZXN0KGRlbGV0ZVVybCwge1xyXG4gICAgICAgICAgLi4ucmVxdWVzdFBhcmFtLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgY29uc3QgeyBjb2RlIH0gPSByZXM7XHJcbiAgICAgICAgICAgIGlmIChjb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoXCLliKDpmaTmiJDlip/vvIFcIik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuWIoOmZpOWksei0pe+8gVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycm9yKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRhYmxlTG9hZChwYXJhbXM6IGFueSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5sb2FkKHtcclxuICAgICAgcGFyYW1zOiBwYXJhbXMsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy/mn6Xor6JcclxuICBvblNlYXJjaCgpIHtcclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICB0aGlzLmxvYWQoZnJvbVZhbHVlKTtcclxuICB9XHJcbiAgLy/ooajmoLzph43mlrDliqDovb1cclxuICB0YWJsZVJlbG9hZCgpIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUucmVsb2FkKCk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkUm93S2V5cygpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLnNlbGVjdGVkUm93S2V5cztcclxuICB9XHJcbiAgZ2V0U2VhcmNoVmFsdWVzKCkge1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIHJldHVybiBmcm9tVmFsdWU7XHJcbiAgfVxyXG4gIHJvd1NlbGVjdGlvbk9uU2VsZWN0KHJlY29yZDogYW55LCBzZWxlY3RlZDogYW55KSB7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkUm93S2V5cyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBuZXdTZWxlY3RlZFJvd0tleXMgPSBbLi4uc2VsZWN0ZWRSb3dLZXlzXTtcclxuICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICBuZXdTZWxlY3RlZFJvd0tleXMgPSBbLi4ubmV3U2VsZWN0ZWRSb3dLZXlzLCByZWNvcmQuaWRdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0gPT09IHJlY29yZC5pZCkge1xyXG4gICAgICAgICAgbmV3U2VsZWN0ZWRSb3dLZXlzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RlZFJvd0tleXM6IG5ld1NlbGVjdGVkUm93S2V5cyxcclxuICAgIH0pO1xyXG4gIH1cclxuICByb3dTZWxlY3Rpb25PblNlbGVjdEFsbChzZWxlY3RlZDogYW55LCBzZWxlY3RlZFJvd3M6IGFueSwgY2hhbmdlUm93czogYW55KSB7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkUm93S2V5cyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBuZXdpZHM6IGFueSA9IFtdO1xyXG4gICAgaWYgKGNoYW5nZVJvd3MubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgY2hhbmdlSWRzID0gY2hhbmdlUm93cy5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5pZCk7XHJcbiAgICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICAgIG5ld2lkcyA9IFsuLi5zZWxlY3RlZFJvd0tleXMsIC4uLmNoYW5nZUlkc107XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2VsZWN0ZWRSb3dLZXlzLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoY2hhbmdlSWRzLmluZGV4T2YoaXRlbSkgPT0gLTEpIHtcclxuICAgICAgICAgICAgbmV3aWRzLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld2lkcyA9IFsuLi5zZWxlY3RlZFJvd0tleXNdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogWy4uLm5ld2lkc10sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgbG9hZChwYXJhbXM6IGFueSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5sb2FkKHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuICByZW5kZXJDbG91bW5CdXR0b24oY29sdW1uQnV0dG9uczogYW55LCByZWNvcmQ6IGFueSwgYWN0aW9uQnV0dG9uPzogYm9vbGVhbikge1xyXG4gICAgY29uc3QgY29udGVudCA9IGNvbHVtbkJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIC4uLnBhcmFtcyB9ID0gaXRlbS5wcm9wcztcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2NscyhzdHlsZXNbXCJlZGl0b3JcIl0sIHN0eWxlc1tcImNvbnRlbnQtaXRlbVwiXSl9XHJcbiAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2socmVjb3JkKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtjaGlsZHJlbn1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gICAgbGV0IG51bSA9IDE7XHJcbiAgICBpZiAoIWFjdGlvbkJ1dHRvbikgbnVtID0gMztcclxuICAgIGlmIChjb2x1bW5CdXR0b25zLmxlbmd0aCA+IG51bSkge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxQb3BvdmVyXHJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgdGl0bGU9e251bGx9XHJcbiAgICAgICAgICBjb250ZW50PXtjb250ZW50fVxyXG4gICAgICAgICAgdHJpZ2dlcj1cImNsaWNrXCJcclxuICAgICAgICAgIC8vIG92ZXJsYXlDbGFzc05hbWU9e3N0eWxlc1sncG9wJ119XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImVkaXRvclwiXX0+XHJcbiAgICAgICAgICAgIOabtOWkmlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e3N0eWxlc1tcImljb25cIl19PlxyXG4gICAgICAgICAgICAgIDxEb3duT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9Qb3BvdmVyPlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGNvbHVtbkJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgSWNvbiwgLi4ucGFyYW1zIH0gPSBpdGVtLnByb3BzO1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1wiZWRpdG9yXCJdfVxyXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtJY29ufSB7Y2hpbGRyZW59XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgLy/moJHngrnlh7vkuovku7ZcclxuICB0cmVlU2VsZWN0KHNlbGVjdGVkS2V5czogYW55LCB7IHNlbGVjdGVkLCBzZWxlY3RlZE5vZGVzIH06IGFueSkge1xyXG4gICAgbGV0IGtleXdvcmQgPSBcIlwiO1xyXG4gICAgY29uc3QgeyBzZWFyY2hLZXkgPSBcImtleVwiLCBzZWFyY2hGaWVsZCA9IFwiXCIgfSA9IHRoaXMucHJvcHMudHJlZVByb3BzO1xyXG4gICAgY29uc3QgeyB0cmVlU2VsZWN0ZWRLZXkgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgaWYgKHNlbGVjdGVkTm9kZXNbMF0uaXNMZWFmIHx8ICFzZWxlY3RlZE5vZGVzWzBdLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkS2V5c1swXSAhPT0gdHJlZVNlbGVjdGVkS2V5KSB7XHJcbiAgICAgICAgICAvLyBsZXQgbWFwRGF0YSA9IHRoaXMudHJlZVJlZi5jdXJyZW50Py5zdG9yZS5nZXRGbGF0dGVuRGF0YSgpO1xyXG4gICAgICAgICAga2V5d29yZCA9IHNlbGVjdGVkTm9kZXNbMF0uZGF0YXJlZi5hdHRyaWJ1dGVbc2VhcmNoS2V5XTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICB0cmVlU2VsZWN0ZWRLZXk6IHNlbGVjdGVkS2V5c1swXSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgdHJlZVNlbGVjdGVkS2V5OiBrZXl3b3JkLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBzZWFyY2hGaWVsZCAmJiB0aGlzLmxvYWQoeyAuLi5mcm9tVmFsdWUsIFtzZWFyY2hGaWVsZF06IGtleXdvcmQgfSk7XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHsgc2VsZWN0ZWRSb3dLZXlzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBjb2x1bW5zID0gW10sXHJcbiAgICAgIHNob3dTZWFyY2ggPSB0cnVlLFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgYXV0b1N1Ym1pdCA9IHRydWUsXHJcbiAgICAgIHN1Ym1pdFVybCA9IFwiXCIsXHJcbiAgICAgIHRhYmxlUHJvcHMgPSB7fSxcclxuICAgICAgdHJlZVByb3BzID0ge30sXHJcbiAgICAgIHNob3dMZWZ0ID0gZmFsc2UsXHJcbiAgICAgIHN1Ym1pdFBhcmFtcyA9IHt9LFxyXG4gICAgICBzaG93VG9vbEJ1dHRvbiA9IHRydWUsXHJcbiAgICAgIHNob3dBZGRCdXR0b24gPSB0cnVlLFxyXG4gICAgICBzaG93RGVsZXRlQnV0dG9uID0gdHJ1ZSxcclxuICAgICAgZWRpdG9yRm9ybSA9IHRydWUsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgc3RvcmUgPSB7fSxcclxuICAgICAgZmlsdGVyQ29sdW1uID0gdHJ1ZSxcclxuICAgICAgYWN0aW9uQnV0dG9uID0gdHJ1ZSxcclxuICAgICAgYWN0aW9uQ29sdW1uID0gdHJ1ZSxcclxuICAgICAgc2hvd1Jvd1NlbGVjdGlvbiA9IHRydWUsXHJcbiAgICB9ID0gdGFibGVQcm9wcztcclxuXHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN0b3JlOiB0cmVlU3RvcmUgPSB7fSxcclxuICAgICAgc2hvd1NlYXJjaDogdHJlZVNlYXJjaCA9IHRydWUsXHJcbiAgICAgIHRpdGxlQWxpYXMgPSBcInRpdGxlXCIsXHJcbiAgICB9ID0gdHJlZVByb3BzO1xyXG5cclxuICAgIGxldCB0YWJsZVBhcmFtcyA9IHsgZmlsdGVyQ29sdW1uLCBzdG9yZSB9IGFzIGFueTtcclxuXHJcbiAgICBpZiAoc2hvd1Jvd1NlbGVjdGlvbikge1xyXG4gICAgICB0YWJsZVBhcmFtcyA9IHtcclxuICAgICAgICAuLi50YWJsZVBhcmFtcyxcclxuICAgICAgICByb3dTZWxlY3Rpb246IHtcclxuICAgICAgICAgIHNlbGVjdGVkUm93S2V5czogc2VsZWN0ZWRSb3dLZXlzLFxyXG4gICAgICAgICAgb25TZWxlY3Q6IHRoaXMucm93U2VsZWN0aW9uT25TZWxlY3QuYmluZCh0aGlzKSxcclxuICAgICAgICAgIG9uU2VsZWN0QWxsOiB0aGlzLnJvd1NlbGVjdGlvbk9uU2VsZWN0QWxsLmJpbmQodGhpcyksXHJcbiAgICAgICAgICBjb2x1bW5XaWR0aDogNDAsXHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGNvbnN0IHRhYmxlQ29sdW1uOiBhbnlbXSA9IFtdO1xyXG4gICAgY29uc3Qgc2VhcmNoRm9ybXM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgZWRpdG9yRm9ybXM6IGFueSA9IFtdO1xyXG4gICAgY29sdW1ucy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdGVtcCA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAodGVtcC5zZWFyY2gpIHtcclxuICAgICAgICBzZWFyY2hGb3Jtcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICBsYWJlbDogdGVtcC50aXRsZSxcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnNlYXJjaDtcclxuICAgICAgdGVtcC5lZGl0b3IgIT09IGZhbHNlICYmXHJcbiAgICAgICAgZWRpdG9yRm9ybXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4LFxyXG4gICAgICAgICAgbGFiZWw6IHRlbXAudGl0bGUsXHJcbiAgICAgICAgICBydWxlczogdGVtcC5ydWxlcyxcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgICAgc3BhbjogdGVtcC5zcGFuLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICBkZWxldGUgdGVtcC5ydWxlcztcclxuICAgICAgZGVsZXRlIHRlbXAuc3BhbjtcclxuICAgICAgaWYgKHRlbXAuY29sdW1uU2VhcmNoKSB7XHJcbiAgICAgICAgdGVtcC5maWx0ZXJQcm9wcyA9IHtcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAudHlwZTtcclxuICAgICAgZGVsZXRlIHRlbXAucHJvcHM7XHJcbiAgICAgIHRhYmxlQ29sdW1uLnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IEJ1dHRvbnM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgY29sdW1uQnV0dG9uczogYW55ID0gW107XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY2hpbGRyZW4ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoaXRlbS5wcm9wcy5wYWdlVHlwZSA9PSBcInRvb2xCdXR0b25cIikge1xyXG4gICAgICAgICAgQnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbS5wcm9wcy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoY2hpbGRyZW4pIHtcclxuICAgICAgY29uc3QgeyBwcm9wcyB9OiBhbnkgPSBjaGlsZHJlbjtcclxuICAgICAgaWYgKHByb3BzLnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfSBlbHNlIGlmIChwcm9wcy5wYWdlVHlwZSA9PSBcImNsb3VtbkJ1dHRvblwiKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgYWN0aW9uQ29sdW1uICYmXHJcbiAgICAgIHRhYmxlQ29sdW1uLnB1c2goe1xyXG4gICAgICAgIHRpdGxlOiBcIuaTjeS9nFwiLFxyXG4gICAgICAgIGRhdGFJbmRleDogXCJhY3Rpb25cIixcclxuICAgICAgICBhbGlnbjogXCJjZW50ZXJcIixcclxuICAgICAgICB3aWR0aDogMTUwLFxyXG4gICAgICAgIHJlbmRlcjogKHRleHQ6IGFueSwgcmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJhY3Rpb25cIl19PlxyXG4gICAgICAgICAgICAgIHthY3Rpb25CdXR0b24gJiYgZWRpdG9yRm9ybSA9PSB0cnVlICYmIChcclxuICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcImVkaXRvclwiXX1cclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLnNob3dGb3JtLmJpbmQodGhpcywgcmVjb3JkLCBmYWxzZSl9XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICDmn6XnnItcclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcImVkaXRvclwiXX1cclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLnNob3dGb3JtLmJpbmQodGhpcywgcmVjb3JkLCB0cnVlKX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIOe8lui+kVxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAge3RoaXMucmVuZGVyQ2xvdW1uQnV0dG9uKGNvbHVtbkJ1dHRvbnMsIHJlY29yZCwgYWN0aW9uQnV0dG9uKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJwYWdlXCJdfSBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiB9fT5cclxuICAgICAgICB7c2hvd0xlZnQgJiYgKFxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImxlZnRcIl19PlxyXG4gICAgICAgICAgICA8VHJlZVxyXG4gICAgICAgICAgICAgIHN0b3JlPXt7IC4uLnRyZWVTdG9yZSB9fVxyXG4gICAgICAgICAgICAgIHNob3dJY29uPXtmYWxzZX1cclxuICAgICAgICAgICAgICBjaGVja2FibGU9e2ZhbHNlfVxyXG4gICAgICAgICAgICAgIHNlYXJjaGFibGU9e3RyZWVTZWFyY2h9XHJcbiAgICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMudHJlZVNlbGVjdC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgIHNlbGVjdGVkS2V5cz17W3RoaXMuc3RhdGUudHJlZVNlbGVjdGVkS2V5XX1cclxuICAgICAgICAgICAgICB0aXRsZUFsaWFzPXt0aXRsZUFsaWFzfVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKX1cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wicmlnaHRcIl19PlxyXG4gICAgICAgICAge3Nob3dTZWFyY2ggJiYgKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wiaGVhZGVyXCJdfT5cclxuICAgICAgICAgICAgICA8Rm9ybVxyXG4gICAgICAgICAgICAgICAgcmVmPXt0aGlzLnNlYXJjaFJlZn1cclxuICAgICAgICAgICAgICAgIGxhYmVsQ29sPXt7fX1cclxuICAgICAgICAgICAgICAgIHdyYXBwZXJDb2w9e3t9fVxyXG4gICAgICAgICAgICAgICAgbGF5b3V0PVwiaW5saW5lXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7c2VhcmNoRm9ybXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ID4gMiAmJiAhdGhpcy5zdGF0ZS5leHBhbmQpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICA8Rm9ybS5JdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17aXRlbS5sYWJlbH1cclxuICAgICAgICAgICAgICAgICAgICAgIG5hbWU9e2l0ZW0ubmFtZX1cclxuICAgICAgICAgICAgICAgICAgICAgIC8vIHJ1bGVzPXtpdGVtLnJ1bGVzfVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIHtnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5pdGVtLnByb3BzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcjogYOivt+i+k+WFpSR7aXRlbS5sYWJlbH1gLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9Gb3JtLkl0ZW0+XHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICA8L0Zvcm0+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImJ1dHRvbnNcIl19IHN0eWxlPXt7IG1hcmdpblRvcDogMCB9fT5cclxuICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgICAgaWNvbj17PEljb24gdHlwZT17aWNvblR5cGUuc2VhcmNofSAvPn1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAg5p+l6K+iXHJcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5yZXNldEZpZWxkcygpO1xyXG4gICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICBpY29uPXs8SWNvbiB0eXBlPXtpY29uVHlwZS5yZWZyZXNofSAvPn1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAg6YeN572uXHJcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgIHtzZWFyY2hGb3Jtcy5sZW5ndGggPiAzICYmIChcclxuICAgICAgICAgICAgICAgICAgPGFcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlcy5hX3N0eWxlfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZXhwYW5kIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZDogIWV4cGFuZCxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5zdGF0ZS5leHBhbmQgPyBcIuaUtui1t1wiIDogXCLlsZXlvIBcIn1cclxuICAgICAgICAgICAgICAgICAgICB7dGhpcy5zdGF0ZS5leHBhbmQgPyA8VXBPdXRsaW5lZCAvPiA6IDxEb3duT3V0bGluZWQgLz59XHJcbiAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIHtzaG93VG9vbEJ1dHRvbiAmJiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJidXR0b25zXCJdfSBzdHlsZT17eyBtYXJnaW5MZWZ0OiAwIH19PlxyXG4gICAgICAgICAgICAgIHtzaG93QWRkQnV0dG9uICYmIGVkaXRvckZvcm0gPT0gdHJ1ZSAmJiAoXHJcbiAgICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLnNob3dGb3JtLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgICAgIGljb249ezxJY29uIHR5cGU9e2ljb25UeXBlLmFkZH0gLz59XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIOa3u+WKoFxyXG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICB7c2hvd0RlbGV0ZUJ1dHRvbiAmJiBlZGl0b3JGb3JtID09IHRydWUgJiYgKFxyXG4gICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAvLyB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5vbkRlbGV0ZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgICBpY29uPXs8SWNvbiB0eXBlPXtpY29uVHlwZS5kZWxldGUzfSAvPn1cclxuICAgICAgICAgICAgICAgICAgZGFuZ2VyXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIOWIoOmZpFxyXG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICB7QnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0+e2l0ZW19PC9kaXY+O1xyXG4gICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1widGFibGVcIl19PlxyXG4gICAgICAgICAgICA8VGFibGUgcmVmPXt0aGlzLnRhYmxlUmVmfSBjb2x1bW5zPXt0YWJsZUNvbHVtbn0gey4uLnRhYmxlUGFyYW1zfSAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAge2VkaXRvckZvcm0gJiYgKFxyXG4gICAgICAgICAgPEVkaXRvckZvcm1cclxuICAgICAgICAgICAgcmVmPXt0aGlzLmVkaXRvclJlZn1cclxuICAgICAgICAgICAgb25DYW5jZWw9e3RoaXMuc2hvd0Zvcm0uYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgY2FsbEJhY2s9e3RoaXMudGFibGVSZWxvYWQuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgZm9ybVByb3BzPXtlZGl0b3JGb3Jtc31cclxuICAgICAgICAgICAgYXV0b1N1Ym1pdD17YXV0b1N1Ym1pdH1cclxuICAgICAgICAgICAgc3VibWl0VXJsPXtzdWJtaXRVcmx9XHJcbiAgICAgICAgICAgIHN1Ym1pdFBhcmFtcz17c3VibWl0UGFyYW1zfVxyXG4gICAgICAgICAgLz5cclxuICAgICAgICApfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IEJhc2VQYWdlO1xyXG4iXX0=
|
|
600
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2VDb21wb25lbnRzL0Jhc2VQYWdlL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJSZWFjdCIsIlB1cmVDb21wb25lbnQiLCJUYWJsZSIsIlRyZWUiLCJGb3JtIiwiQnV0dG9uIiwiTW9kYWwiLCJQb3BvdmVyIiwibWVzc2FnZSIsIkljb24iLCJpY29uVHlwZSIsIkVkaXRvckZvcm0iLCJjbHMiLCJzdHlsZXMiLCJEb3duT3V0bGluZWQiLCJVcE91dGxpbmVkIiwiZ2V0Tm9kZSIsInJlcXVlc3QiLCJCYXNlUGFnZSIsInByb3BzIiwiY3JlYXRlUmVmIiwiY2hlY2tlZFRyZWVLZXlzIiwic3RhdGUiLCJuYW1lIiwidXNlclR5cGUiLCJhY2NvdW50IiwidmFsdWUiLCJkZXB0SWQiLCJ0YWJsZUxvYWQiLCJ0eXBlIiwic2VsZWN0ZWRSb3dLZXlzIiwidHJlZVNlbGVjdGVkS2V5IiwiZXhwYW5kIiwiZmxhZyIsImVkaXRvclJlZiIsImN1cnJlbnQiLCJzaG93IiwiZGVsZXRlVXJsIiwib25EZWxldGUiLCJsZW5ndGgiLCJ3YXJuaW5nIiwiRXJyb3IiLCJjb25maXJtIiwidGl0bGUiLCJva1RleHQiLCJjYW5jZWxUZXh0Iiwib25PayIsInJlcXVlc3RQYXJhbSIsIm1ldGhvZCIsImRhdGEiLCJpZHMiLCJ0aGVuIiwicmVzIiwiY29kZSIsInN1Y2Nlc3MiLCJlcnJvciIsImNhdGNoIiwiY29uc29sZSIsImxvZyIsInBhcmFtcyIsInRhYmxlUmVmIiwic3RvcmUiLCJsb2FkIiwiZnJvbVZhbHVlIiwic2VhcmNoUmVmIiwiZ2V0RmllbGRzVmFsdWUiLCJyZWxvYWQiLCJyZWNvcmQiLCJzZWxlY3RlZCIsIm5ld1NlbGVjdGVkUm93S2V5cyIsImlkIiwibWFwIiwiaXRlbSIsImluZGV4Iiwic3BsaWNlIiwic2V0U3RhdGUiLCJzZWxlY3RlZFJvd3MiLCJjaGFuZ2VSb3dzIiwibmV3aWRzIiwiY2hhbmdlSWRzIiwiaW5kZXhPZiIsInB1c2giLCJjb2x1bW5CdXR0b25zIiwiYWN0aW9uQnV0dG9uIiwiZWRpdG9yRm9ybSIsImNvbnRlbnQiLCJjaGlsZHJlbiIsInBhZ2VUeXBlIiwib25DbGljayIsIm51bSIsInNlbGVjdGVkS2V5cyIsInNlbGVjdGVkTm9kZXMiLCJrZXl3b3JkIiwidHJlZVByb3BzIiwic2VhcmNoS2V5Iiwic2VhcmNoRmllbGQiLCJpc0xlYWYiLCJkYXRhcmVmIiwiYXR0cmlidXRlIiwiY29sdW1ucyIsInNob3dTZWFyY2giLCJzdWJtaXRVcmwiLCJ0YWJsZVByb3BzIiwic2hvd0xlZnQiLCJzdWJtaXRQYXJhbXMiLCJzaG93VG9vbEJ1dHRvbiIsInNob3dBZGRCdXR0b24iLCJzaG93RGVsZXRlQnV0dG9uIiwiZmlsdGVyQ29sdW1uIiwiYWN0aW9uQ29sdW1uIiwic2hvd1Jvd1NlbGVjdGlvbiIsInRyZWVTdG9yZSIsInRyZWVTZWFyY2giLCJ0aXRsZUFsaWFzIiwidGFibGVQYXJhbXMiLCJyb3dTZWxlY3Rpb24iLCJvblNlbGVjdCIsInJvd1NlbGVjdGlvbk9uU2VsZWN0IiwiYmluZCIsIm9uU2VsZWN0QWxsIiwicm93U2VsZWN0aW9uT25TZWxlY3RBbGwiLCJjb2x1bW5XaWR0aCIsInRhYmxlQ29sdW1uIiwic2VhcmNoRm9ybXMiLCJlZGl0b3JGb3JtcyIsInRlbXAiLCJzZWFyY2giLCJmaWVsZCIsImRhdGFJbmRleCIsImxhYmVsIiwiZWRpdG9yIiwicnVsZXMiLCJzcGFuIiwiY29sdW1uU2VhcmNoIiwiZmlsdGVyUHJvcHMiLCJCdXR0b25zIiwiQXJyYXkiLCJpc0FycmF5IiwiYWxpZ24iLCJ3aWR0aCIsInJlbmRlciIsInRleHQiLCJzaG93Rm9ybSIsInJlbmRlckNsb3VtbkJ1dHRvbiIsImRpc3BsYXkiLCJ0cmVlU2VsZWN0IiwicGxhY2Vob2xkZXIiLCJtYXJnaW5Ub3AiLCJvblNlYXJjaCIsInJlc2V0RmllbGRzIiwicmVmcmVzaCIsImFfc3R5bGUiLCJtYXJnaW5MZWZ0IiwiYWRkIiwiZGVsZXRlMyIsInRhYmxlUmVsb2FkIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxJQUFnQkMsYUFBaEIsUUFBcUMsT0FBckM7QUFDQSxPQUFPQyxLQUFQLE1BQWtCLGFBQWxCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixZQUFqQjtBQUNBLE9BQU9DLElBQVAsTUFBaUIsWUFBakI7QUFDQSxPQUFPQyxNQUFQLE1BQW1CLGNBQW5CO0FBQ0EsT0FBT0MsS0FBUCxNQUFrQixhQUFsQjtBQUNBLE9BQU9DLE9BQVAsTUFBb0IsZUFBcEI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLGVBQXBCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQix1QkFBakI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLGlCQUF6QjtBQUNBLE9BQU9DLFVBQVAsTUFBdUIsUUFBdkI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixjQUFuQjtBQUVBLFNBQVNDLFlBQVQsRUFBdUJDLFVBQXZCLFFBQXlDLG1CQUF6QztBQUNBLFNBQVNDLE9BQVQsUUFBd0IsYUFBeEI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLGFBQXBCOztJQWlDTUMsUTs7Ozs7QUFLSixvQkFBWUMsS0FBWixFQUF3QjtBQUFBOztBQUFBOztBQUN0Qiw4QkFBTUEsS0FBTjs7QUFEc0IsNEVBSmJuQixLQUFLLENBQUNvQixTQUFOLEVBSWE7O0FBQUEsMkVBSGRwQixLQUFLLENBQUNvQixTQUFOLEVBR2M7O0FBQUEsNkVBRlpwQixLQUFLLENBQUNvQixTQUFOLEVBRVk7O0FBQUEsNkVBRFpwQixLQUFLLENBQUNvQixTQUFOLEVBQ1k7O0FBQUEsK0RBU2IsVUFBQ0MsZUFBRCxFQUEwQjtBQUNuQyx3QkFBb0MsTUFBS0MsS0FBekM7QUFBQSxVQUFRQyxJQUFSLGVBQVFBLElBQVI7QUFBQSxVQUFjQyxRQUFkLGVBQWNBLFFBQWQ7QUFBQSxVQUF3QkMsT0FBeEIsZUFBd0JBLE9BQXhCO0FBQ0EsVUFBTUMsS0FBSyxHQUFHO0FBQUVILFFBQUFBLElBQUksRUFBSkEsSUFBRjtBQUFRQyxRQUFBQSxRQUFRLEVBQVJBLFFBQVI7QUFBa0JDLFFBQUFBLE9BQU8sRUFBUEEsT0FBbEI7QUFBMkJFLFFBQUFBLE1BQU0sRUFBRU4sZUFBZSxDQUFDLENBQUQ7QUFBbEQsT0FBZDs7QUFDQSxZQUFLTyxTQUFMLENBQWVGLEtBQWY7QUFDRCxLQWJ1Qjs7QUFFdEIsVUFBS0osS0FBTCxHQUFhO0FBQ1hPLE1BQUFBLElBQUksRUFBRSxLQURLO0FBRVhDLE1BQUFBLGVBQWUsRUFBRSxFQUZOO0FBR1hDLE1BQUFBLGVBQWUsRUFBRSxFQUhOO0FBSVhDLE1BQUFBLE1BQU0sRUFBRTtBQUpHLEtBQWI7QUFGc0I7QUFRdkI7Ozs7V0FPRDtBQUNBLHNCQUFTTixLQUFULEVBQW1DO0FBQUE7O0FBQUEsVUFBYk8sSUFBYSx1RUFBTixJQUFNO0FBQ2pDLG9DQUFLQyxTQUFMLENBQWVDLE9BQWYsZ0ZBQXdCQyxJQUF4QixDQUE2QlYsS0FBN0IsRUFBb0NPLElBQXBDO0FBQ0QsSyxDQUNEOzs7O1dBQ0Esb0JBQVc7QUFDVCx3QkFBZ0MsS0FBS2QsS0FBckM7QUFBQSxVQUFRa0IsU0FBUixlQUFRQSxTQUFSO0FBQUEsVUFBbUJDLFFBQW5CLGVBQW1CQSxRQUFuQjtBQUNBLFVBQVFSLGVBQVIsR0FBNEIsS0FBS1IsS0FBakMsQ0FBUVEsZUFBUjs7QUFDQSxVQUFJQSxlQUFlLENBQUNTLE1BQWhCLElBQTBCLENBQTlCLEVBQWlDO0FBQy9CL0IsUUFBQUEsT0FBTyxDQUFDZ0MsT0FBUixDQUFnQixZQUFoQjtBQUNBO0FBQ0Q7O0FBQ0QsVUFBSUYsUUFBSixFQUFjO0FBQ1pBLFFBQUFBLFFBQVEsSUFBSUEsUUFBUSxDQUFDUixlQUFELENBQXBCO0FBQ0E7QUFDRDs7QUFDRCxVQUFJLENBQUNPLFNBQUwsRUFBZ0I7QUFDZCxjQUFNLElBQUlJLEtBQUosQ0FBVSxVQUFWLENBQU47QUFDRDs7QUFDRG5DLE1BQUFBLEtBQUssQ0FBQ29DLE9BQU4sQ0FBYztBQUNaQyxRQUFBQSxLQUFLLEVBQUUsWUFESztBQUVaO0FBQ0FDLFFBQUFBLE1BQU0sRUFBRSxJQUhJO0FBSVpDLFFBQUFBLFVBQVUsRUFBRSxJQUpBO0FBS1pDLFFBQUFBLElBQUksRUFBRSxnQkFBTTtBQUNWLGNBQU1DLFlBQVksR0FBRztBQUFFQyxZQUFBQSxNQUFNLEVBQUUsTUFBVjtBQUFrQkMsWUFBQUEsSUFBSSxFQUFFO0FBQUVDLGNBQUFBLEdBQUcsRUFBRXBCO0FBQVA7QUFBeEIsV0FBckI7QUFDQWIsVUFBQUEsT0FBTyxDQUFDb0IsU0FBRCxvQkFDRlUsWUFERSxFQUFQLENBR0dJLElBSEgsQ0FHUSxVQUFVQyxHQUFWLEVBQW9CO0FBQ3hCLGdCQUFRQyxJQUFSLEdBQWlCRCxHQUFqQixDQUFRQyxJQUFSOztBQUNBLGdCQUFJQSxJQUFJLEtBQUssR0FBYixFQUFrQjtBQUNoQjdDLGNBQUFBLE9BQU8sQ0FBQzhDLE9BQVIsQ0FBZ0IsT0FBaEI7QUFDRCxhQUZELE1BRU87QUFDTDlDLGNBQUFBLE9BQU8sQ0FBQytDLEtBQVIsQ0FBYyxPQUFkO0FBQ0Q7QUFDRixXQVZILEVBV0dDLEtBWEgsQ0FXUyxVQUFVRCxLQUFWLEVBQXNCO0FBQzNCRSxZQUFBQSxPQUFPLENBQUNDLEdBQVIsQ0FBWSxPQUFaLEVBQXFCSCxLQUFyQjtBQUNELFdBYkg7QUFjRDtBQXJCVyxPQUFkO0FBdUJEOzs7V0FDRCxtQkFBVUksTUFBVixFQUF1QjtBQUFBOztBQUNyQixvQ0FBS0MsUUFBTCxDQUFjekIsT0FBZCxnRkFBdUIwQixLQUF2QixDQUE2QkMsSUFBN0IsQ0FBa0M7QUFDaENILFFBQUFBLE1BQU0sRUFBRUE7QUFEd0IsT0FBbEM7QUFHRCxLLENBQ0Q7Ozs7V0FDQSxvQkFBVztBQUFBOztBQUNULFVBQU1JLFNBQVMsNEJBQUcsS0FBS0MsU0FBTCxDQUFlN0IsT0FBbEIsMERBQUcsc0JBQXdCOEIsY0FBeEIsRUFBbEI7QUFDQSxXQUFLSCxJQUFMLENBQVVDLFNBQVY7QUFDRCxLLENBQ0Q7Ozs7V0FDQSx1QkFBYztBQUFBOztBQUNaLHFDQUFLSCxRQUFMLENBQWN6QixPQUFkLGtGQUF1QjBCLEtBQXZCLENBQTZCSyxNQUE3QjtBQUNEOzs7V0FDRCw4QkFBcUI7QUFDbkIsYUFBTyxLQUFLNUMsS0FBTCxDQUFXUSxlQUFsQjtBQUNEOzs7V0FDRCwyQkFBa0I7QUFBQTs7QUFDaEIsVUFBTWlDLFNBQVMsNkJBQUcsS0FBS0MsU0FBTCxDQUFlN0IsT0FBbEIsMkRBQUcsdUJBQXdCOEIsY0FBeEIsRUFBbEI7QUFDQSxhQUFPRixTQUFQO0FBQ0Q7OztXQUNELDhCQUFxQkksTUFBckIsRUFBa0NDLFFBQWxDLEVBQWlEO0FBQy9DLFVBQVF0QyxlQUFSLEdBQTRCLEtBQUtSLEtBQWpDLENBQVFRLGVBQVI7O0FBQ0EsVUFBSXVDLGtCQUFrQixzQkFBT3ZDLGVBQVAsQ0FBdEI7O0FBQ0EsVUFBSXNDLFFBQUosRUFBYztBQUNaQyxRQUFBQSxrQkFBa0IsZ0NBQU9BLGtCQUFQLElBQTJCRixNQUFNLENBQUNHLEVBQWxDLEVBQWxCO0FBQ0QsT0FGRCxNQUVPO0FBQ0x4QyxRQUFBQSxlQUFlLENBQUN5QyxHQUFoQixDQUFvQixVQUFDQyxJQUFELEVBQVlDLEtBQVosRUFBMkI7QUFDN0MsY0FBSUQsSUFBSSxLQUFLTCxNQUFNLENBQUNHLEVBQXBCLEVBQXdCO0FBQ3RCRCxZQUFBQSxrQkFBa0IsQ0FBQ0ssTUFBbkIsQ0FBMEJELEtBQTFCLEVBQWlDLENBQWpDO0FBQ0Q7QUFDRixTQUpEO0FBS0Q7O0FBQ0QsV0FBS0UsUUFBTCxDQUFjO0FBQ1o3QyxRQUFBQSxlQUFlLEVBQUV1QztBQURMLE9BQWQ7QUFHRDs7O1dBQ0QsaUNBQXdCRCxRQUF4QixFQUF1Q1EsWUFBdkMsRUFBMERDLFVBQTFELEVBQTJFO0FBQ3pFLFVBQVEvQyxlQUFSLEdBQTRCLEtBQUtSLEtBQWpDLENBQVFRLGVBQVI7QUFDQSxVQUFJZ0QsTUFBVyxHQUFHLEVBQWxCOztBQUNBLFVBQUlELFVBQVUsQ0FBQ3RDLE1BQVgsR0FBb0IsQ0FBeEIsRUFBMkI7QUFDekIsWUFBSXdDLFNBQVMsR0FBR0YsVUFBVSxDQUFDTixHQUFYLENBQWUsVUFBQ0MsSUFBRDtBQUFBLGlCQUFlQSxJQUFJLENBQUNGLEVBQXBCO0FBQUEsU0FBZixDQUFoQjs7QUFDQSxZQUFJRixRQUFKLEVBQWM7QUFDWlUsVUFBQUEsTUFBTSxnQ0FBT2hELGVBQVAsc0JBQTJCaUQsU0FBM0IsRUFBTjtBQUNELFNBRkQsTUFFTztBQUNMakQsVUFBQUEsZUFBZSxDQUFDeUMsR0FBaEIsQ0FBb0IsVUFBQ0MsSUFBRCxFQUFZQyxLQUFaLEVBQTJCO0FBQzdDLGdCQUFJTSxTQUFTLENBQUNDLE9BQVYsQ0FBa0JSLElBQWxCLEtBQTJCLENBQUMsQ0FBaEMsRUFBbUM7QUFDakNNLGNBQUFBLE1BQU0sQ0FBQ0csSUFBUCxDQUFZVCxJQUFaO0FBQ0Q7QUFDRixXQUpEO0FBS0Q7QUFDRixPQVhELE1BV087QUFDTE0sUUFBQUEsTUFBTSxzQkFBT2hELGVBQVAsQ0FBTjtBQUNEOztBQUNELFdBQUs2QyxRQUFMLENBQWM7QUFDWjdDLFFBQUFBLGVBQWUscUJBQU1nRCxNQUFOO0FBREgsT0FBZDtBQUdEOzs7V0FDRCxjQUFLbkIsTUFBTCxFQUFrQjtBQUFBOztBQUNoQixxQ0FBS0MsUUFBTCxDQUFjekIsT0FBZCxrRkFBdUIwQixLQUF2QixDQUE2QkMsSUFBN0IsQ0FBa0M7QUFBRUgsUUFBQUEsTUFBTSxFQUFOQTtBQUFGLE9BQWxDO0FBQ0Q7OztXQUNELDRCQUFtQnVCLGFBQW5CLEVBQXVDZixNQUF2QyxFQUFvRGdCLFlBQXBELEVBQTRFO0FBQzFFLFVBQVFDLFVBQVIsR0FBdUIsS0FBS2pFLEtBQTVCLENBQVFpRSxVQUFSO0FBQ0EsVUFBTUMsT0FBTyxHQUFHSCxhQUFhLENBQUNYLEdBQWQsQ0FBa0IsVUFBQ0MsSUFBRCxFQUFZQyxLQUFaLEVBQTJCO0FBQzNELDBCQUFtREQsSUFBSSxDQUFDckQsS0FBeEQ7QUFBQSxZQUFRbUUsUUFBUixlQUFRQSxRQUFSO0FBQUEsWUFBa0JDLFFBQWxCLGVBQWtCQSxRQUFsQjtBQUFBLFlBQTRCQyxRQUE1QixlQUE0QkEsT0FBNUI7QUFBQSxZQUF3QzdCLE1BQXhDOztBQUNBLDRCQUNFO0FBQ0UsVUFBQSxTQUFTLEVBQUUvQyxHQUFHLENBQUNDLE1BQU0sQ0FBQyxRQUFELENBQVAsRUFBbUJBLE1BQU0sQ0FBQyxjQUFELENBQXpCLENBRGhCO0FBRUUsVUFBQSxHQUFHLEVBQUU0RCxLQUZQO0FBR0UsVUFBQSxPQUFPLEVBQUUsbUJBQU07QUFDYmUsWUFBQUEsUUFBTyxJQUFJQSxRQUFPLENBQUNyQixNQUFELENBQWxCO0FBQ0Q7QUFMSCxXQU1NUixNQU5OLEdBUUcyQixRQVJILENBREY7QUFZRCxPQWRlLENBQWhCO0FBZUEsVUFBSUcsR0FBRyxHQUFHLENBQVY7QUFDQSxVQUFJLENBQUNOLFlBQUQsSUFBaUIsQ0FBQ0MsVUFBdEIsRUFBa0NLLEdBQUcsR0FBRyxDQUFOOztBQUNsQyxVQUFJUCxhQUFhLENBQUMzQyxNQUFkLEdBQXVCa0QsR0FBM0IsRUFBZ0M7QUFDOUIsNEJBQ0Usb0JBQUMsT0FBRDtBQUNFLFVBQUEsU0FBUyxFQUFDLFFBRFo7QUFFRSxVQUFBLEtBQUssRUFBRSxJQUZUO0FBR0UsVUFBQSxPQUFPLEVBQUVKLE9BSFg7QUFJRSxVQUFBLE9BQU8sRUFBQyxPQUpWLENBS0U7O0FBTEYsd0JBT0U7QUFBSyxVQUFBLFNBQVMsRUFBRXhFLE1BQU0sQ0FBQyxRQUFEO0FBQXRCLHdDQUVFO0FBQU0sVUFBQSxTQUFTLEVBQUVBLE1BQU0sQ0FBQyxNQUFEO0FBQXZCLHdCQUNFLG9CQUFDLFlBQUQsT0FERixDQUZGLENBUEYsQ0FERjtBQWdCRCxPQWpCRCxNQWlCTztBQUNMLGVBQU9xRSxhQUFhLENBQUNYLEdBQWQsQ0FBa0IsVUFBQ0MsSUFBRCxFQUFZQyxLQUFaLEVBQTJCO0FBQ2xELDZCQUF5REQsSUFBSSxDQUFDckQsS0FBOUQ7QUFBQSxjQUFRbUUsUUFBUixnQkFBUUEsUUFBUjtBQUFBLGNBQWtCQyxRQUFsQixnQkFBa0JBLFFBQWxCO0FBQUEsY0FBNEJDLFNBQTVCLGdCQUE0QkEsT0FBNUI7QUFBQSxjQUFxQy9FLElBQXJDLGdCQUFxQ0EsSUFBckM7QUFBQSxjQUE4Q2tELE1BQTlDOztBQUNBLDhCQUNFO0FBQ0UsWUFBQSxTQUFTLEVBQUU5QyxNQUFNLENBQUMsUUFBRCxDQURuQjtBQUVFLFlBQUEsR0FBRyxFQUFFNEQsS0FGUDtBQUdFLFlBQUEsT0FBTyxFQUFFLG1CQUFNO0FBQ2JlLGNBQUFBLFNBQU8sSUFBSUEsU0FBTyxDQUFDckIsTUFBRCxDQUFsQjtBQUNEO0FBTEgsYUFNTVIsTUFOTixHQVFHbEQsSUFSSCxPQVFVNkUsUUFSVixDQURGO0FBWUQsU0FkTSxDQUFQO0FBZUQ7QUFDRixLLENBQ0Q7Ozs7V0FDQSxvQkFBV0ksWUFBWCxRQUFnRTtBQUFBOztBQUFBLFVBQWhDdEIsUUFBZ0MsUUFBaENBLFFBQWdDO0FBQUEsVUFBdEJ1QixhQUFzQixRQUF0QkEsYUFBc0I7QUFDOUQsVUFBSUMsT0FBTyxHQUFHLEVBQWQ7QUFDQSxrQ0FBZ0QsS0FBS3pFLEtBQUwsQ0FBVzBFLFNBQTNEO0FBQUEseURBQVFDLFNBQVI7QUFBQSxVQUFRQSxTQUFSLHVDQUFvQixLQUFwQjtBQUFBLHlEQUEyQkMsV0FBM0I7QUFBQSxVQUEyQkEsV0FBM0IsdUNBQXlDLEVBQXpDO0FBQ0EsVUFBUWhFLGVBQVIsR0FBNEIsS0FBS1QsS0FBakMsQ0FBUVMsZUFBUjs7QUFDQSxVQUFJcUMsUUFBSixFQUFjO0FBQ1osWUFBSXVCLGFBQWEsQ0FBQyxDQUFELENBQWIsQ0FBaUJLLE1BQWpCLElBQTJCLENBQUNMLGFBQWEsQ0FBQyxDQUFELENBQWIsQ0FBaUJMLFFBQWpELEVBQTJEO0FBQ3pELGNBQUlJLFlBQVksQ0FBQyxDQUFELENBQVosS0FBb0IzRCxlQUF4QixFQUF5QztBQUN2QztBQUNBNkQsWUFBQUEsT0FBTyxHQUFHRCxhQUFhLENBQUMsQ0FBRCxDQUFiLENBQWlCTSxPQUFqQixDQUF5QkMsU0FBekIsQ0FBbUNKLFNBQW5DLENBQVY7QUFDQSxpQkFBS25CLFFBQUwsQ0FBYztBQUNaNUMsY0FBQUEsZUFBZSxFQUFFMkQsWUFBWSxDQUFDLENBQUQ7QUFEakIsYUFBZDtBQUdEO0FBQ0Y7QUFDRixPQVZELE1BVU87QUFDTCxhQUFLZixRQUFMLENBQWM7QUFDWjVDLFVBQUFBLGVBQWUsRUFBRTZEO0FBREwsU0FBZDtBQUdEOztBQUNELFVBQU03QixTQUFTLDZCQUFHLEtBQUtDLFNBQUwsQ0FBZTdCLE9BQWxCLDJEQUFHLHVCQUF3QjhCLGNBQXhCLEVBQWxCO0FBQ0E4QixNQUFBQSxXQUFXLElBQUksS0FBS2pDLElBQUwsaUNBQWVDLFNBQWYsMkJBQTJCZ0MsV0FBM0IsRUFBeUNILE9BQXpDLEdBQWY7QUFDRDs7O1dBQ0Qsa0JBQVM7QUFBQTs7QUFDUCxVQUFROUQsZUFBUixHQUE0QixLQUFLUixLQUFqQyxDQUFRUSxlQUFSO0FBQ0EseUJBYUksS0FBS1gsS0FiVDtBQUFBLDhDQUNFZ0YsT0FERjtBQUFBLFVBQ0VBLE9BREYscUNBQ1ksRUFEWjtBQUFBLCtDQUVFQyxVQUZGO0FBQUEsVUFFRUEsVUFGRixzQ0FFZSxJQUZmO0FBQUEsVUFHRWQsUUFIRixnQkFHRUEsUUFIRjtBQUFBLCtDQUlFZSxTQUpGO0FBQUEsVUFJRUEsU0FKRixzQ0FJYyxFQUpkO0FBQUEsK0NBS0VDLFVBTEY7QUFBQSxVQUtFQSxVQUxGLHNDQUtlLEVBTGY7QUFBQSwrQ0FNRVQsU0FORjtBQUFBLFVBTUVBLFNBTkYsc0NBTWMsRUFOZDtBQUFBLCtDQU9FVSxRQVBGO0FBQUEsVUFPRUEsUUFQRixzQ0FPYSxLQVBiO0FBQUEsK0NBUUVDLFlBUkY7QUFBQSxVQVFFQSxZQVJGLHNDQVFpQixFQVJqQjtBQUFBLCtDQVNFQyxjQVRGO0FBQUEsVUFTRUEsY0FURixzQ0FTbUIsSUFUbkI7QUFBQSwrQ0FVRUMsYUFWRjtBQUFBLFVBVUVBLGFBVkYsc0NBVWtCLElBVmxCO0FBQUEsK0NBV0VDLGdCQVhGO0FBQUEsVUFXRUEsZ0JBWEYsc0NBV3FCLElBWHJCO0FBQUEsK0NBWUV2QixVQVpGO0FBQUEsVUFZRUEsVUFaRixzQ0FZZSxJQVpmO0FBY0EsOEJBTUlrQixVQU5KLENBQ0V6QyxLQURGO0FBQUEsVUFDRUEsS0FERixrQ0FDVSxFQURWO0FBQUEsa0NBTUl5QyxVQU5KLENBRUVNLFlBRkY7QUFBQSxVQUVFQSxZQUZGLHNDQUVpQixJQUZqQjtBQUFBLGtDQU1JTixVQU5KLENBR0VuQixZQUhGO0FBQUEsVUFHRUEsWUFIRixzQ0FHaUIsSUFIakI7QUFBQSxrQ0FNSW1CLFVBTkosQ0FJRU8sWUFKRjtBQUFBLFVBSUVBLFlBSkYsc0NBSWlCLElBSmpCO0FBQUEsa0NBTUlQLFVBTkosQ0FLRVEsZ0JBTEY7QUFBQSxVQUtFQSxnQkFMRixzQ0FLcUIsSUFMckI7QUFRQSw2QkFJSWpCLFNBSkosQ0FDRWhDLEtBREY7QUFBQSxVQUNTa0QsU0FEVCxpQ0FDcUIsRUFEckI7QUFBQSxrQ0FJSWxCLFNBSkosQ0FFRU8sVUFGRjtBQUFBLFVBRWNZLFVBRmQsc0NBRTJCLElBRjNCO0FBQUEsa0NBSUluQixTQUpKLENBR0VvQixVQUhGO0FBQUEsVUFHRUEsVUFIRixzQ0FHZSxPQUhmO0FBTUEsVUFBSUMsV0FBVyxHQUFHO0FBQUVOLFFBQUFBLFlBQVksRUFBWkEsWUFBRjtBQUFnQi9DLFFBQUFBLEtBQUssRUFBTEE7QUFBaEIsT0FBbEI7O0FBRUEsVUFBSWlELGdCQUFKLEVBQXNCO0FBQ3BCSSxRQUFBQSxXQUFXLG1DQUNOQSxXQURNO0FBRVRDLFVBQUFBLFlBQVksRUFBRTtBQUNackYsWUFBQUEsZUFBZSxFQUFFQSxlQURMO0FBRVpzRixZQUFBQSxRQUFRLEVBQUUsS0FBS0Msb0JBQUwsQ0FBMEJDLElBQTFCLENBQStCLElBQS9CLENBRkU7QUFHWkMsWUFBQUEsV0FBVyxFQUFFLEtBQUtDLHVCQUFMLENBQTZCRixJQUE3QixDQUFrQyxJQUFsQyxDQUhEO0FBSVpHLFlBQUFBLFdBQVcsRUFBRTtBQUpEO0FBRkwsVUFBWDtBQVNEOztBQUNELFVBQU1DLFdBQWtCLEdBQUcsRUFBM0I7QUFDQSxVQUFNQyxXQUFnQixHQUFHLEVBQXpCO0FBQ0EsVUFBTUMsV0FBZ0IsR0FBRyxFQUF6QjtBQUNBekIsTUFBQUEsT0FBTyxDQUFDNUIsR0FBUixDQUFZLFVBQUNDLElBQUQsRUFBZTtBQUN6QixZQUFJcUQsSUFBSSxxQkFBUXJELElBQVIsQ0FBUjs7QUFDQSxZQUFJcUQsSUFBSSxDQUFDQyxNQUFULEVBQWlCO0FBQ2ZILFVBQUFBLFdBQVcsQ0FBQzFDLElBQVosQ0FBaUI7QUFDZjFELFlBQUFBLElBQUksRUFBRXNHLElBQUksQ0FBQ0UsS0FBTCxJQUFjRixJQUFJLENBQUNHLFNBRFY7QUFFZkMsWUFBQUEsS0FBSyxFQUFFSixJQUFJLENBQUNsRixLQUZHO0FBR2ZkLFlBQUFBLElBQUksRUFBRWdHLElBQUksQ0FBQ2hHLElBSEk7QUFJZlYsWUFBQUEsS0FBSyxFQUFFMEcsSUFBSSxDQUFDMUc7QUFKRyxXQUFqQjtBQU1EOztBQUNELGVBQU8wRyxJQUFJLENBQUNDLE1BQVo7QUFDQUQsUUFBQUEsSUFBSSxDQUFDSyxNQUFMLEtBQWdCLEtBQWhCLElBQ0VOLFdBQVcsQ0FBQzNDLElBQVosQ0FBaUI7QUFDZjFELFVBQUFBLElBQUksRUFBRXNHLElBQUksQ0FBQ0UsS0FBTCxJQUFjRixJQUFJLENBQUNHLFNBRFY7QUFFZkMsVUFBQUEsS0FBSyxFQUFFSixJQUFJLENBQUNsRixLQUZHO0FBR2Z3RixVQUFBQSxLQUFLLEVBQUVOLElBQUksQ0FBQ00sS0FIRztBQUlmdEcsVUFBQUEsSUFBSSxFQUFFZ0csSUFBSSxDQUFDaEcsSUFKSTtBQUtmVixVQUFBQSxLQUFLLEVBQUUwRyxJQUFJLENBQUMxRyxLQUxHO0FBTWZpSCxVQUFBQSxJQUFJLEVBQUVQLElBQUksQ0FBQ087QUFOSSxTQUFqQixDQURGO0FBU0EsZUFBT1AsSUFBSSxDQUFDTSxLQUFaO0FBQ0EsZUFBT04sSUFBSSxDQUFDTyxJQUFaOztBQUNBLFlBQUlQLElBQUksQ0FBQ1EsWUFBVCxFQUF1QjtBQUNyQlIsVUFBQUEsSUFBSSxDQUFDUyxXQUFMLEdBQW1CO0FBQ2pCekcsWUFBQUEsSUFBSSxFQUFFZ0csSUFBSSxDQUFDaEcsSUFETTtBQUVqQlYsWUFBQUEsS0FBSyxFQUFFMEcsSUFBSSxDQUFDMUc7QUFGSyxXQUFuQjtBQUlEOztBQUNELGVBQU8wRyxJQUFJLENBQUNoRyxJQUFaO0FBQ0EsZUFBT2dHLElBQUksQ0FBQzFHLEtBQVo7QUFDQXVHLFFBQUFBLFdBQVcsQ0FBQ3pDLElBQVosQ0FBaUI0QyxJQUFqQjtBQUNELE9BL0JEO0FBZ0NBLFVBQU1VLE9BQVksR0FBRyxFQUFyQjtBQUNBLFVBQU1yRCxhQUFrQixHQUFHLEVBQTNCOztBQUNBLFVBQUlzRCxLQUFLLENBQUNDLE9BQU4sQ0FBY25ELFFBQWQsQ0FBSixFQUE2QjtBQUMzQkEsUUFBQUEsUUFBUSxDQUFDZixHQUFULENBQWEsVUFBQ0MsSUFBRCxFQUFlO0FBQzFCLGNBQUlBLElBQUksQ0FBQ3JELEtBQUwsQ0FBV29FLFFBQVgsSUFBdUIsWUFBM0IsRUFBeUM7QUFDdkNnRCxZQUFBQSxPQUFPLENBQUN0RCxJQUFSLENBQWFULElBQWI7QUFDRCxXQUZELE1BRU8sSUFBSUEsSUFBSSxDQUFDckQsS0FBTCxDQUFXb0UsUUFBWCxJQUF1QixjQUEzQixFQUEyQztBQUNoREwsWUFBQUEsYUFBYSxDQUFDRCxJQUFkLENBQW1CVCxJQUFuQjtBQUNEO0FBQ0YsU0FORDtBQU9ELE9BUkQsTUFRTyxJQUFJYyxRQUFKLEVBQWM7QUFDbkIsWUFBUW5FLEtBQVIsR0FBdUJtRSxRQUF2QixDQUFRbkUsS0FBUjs7QUFDQSxZQUFJQSxLQUFLLENBQUNvRSxRQUFOLElBQWtCLFlBQXRCLEVBQW9DO0FBQ2xDZ0QsVUFBQUEsT0FBTyxDQUFDdEQsSUFBUixDQUFhSyxRQUFiO0FBQ0QsU0FGRCxNQUVPLElBQUluRSxLQUFLLENBQUNvRSxRQUFOLElBQWtCLGNBQXRCLEVBQXNDO0FBQzNDTCxVQUFBQSxhQUFhLENBQUNELElBQWQsQ0FBbUJLLFFBQW5CO0FBQ0Q7QUFDRjs7QUFDRHVCLE1BQUFBLFlBQVksSUFDVmEsV0FBVyxDQUFDekMsSUFBWixDQUFpQjtBQUNmdEMsUUFBQUEsS0FBSyxFQUFFLElBRFE7QUFFZnFGLFFBQUFBLFNBQVMsRUFBRSxRQUZJO0FBR2ZVLFFBQUFBLEtBQUssRUFBRSxRQUhRO0FBSWZDLFFBQUFBLEtBQUssRUFBRSxHQUpRO0FBS2ZDLFFBQUFBLE1BQU0sRUFBRSxnQkFBQ0MsSUFBRCxFQUFZMUUsTUFBWixFQUE0QjtBQUNsQyw4QkFDRTtBQUFLLFlBQUEsU0FBUyxFQUFFdEQsTUFBTSxDQUFDLFFBQUQ7QUFBdEIsYUFDR3NFLFlBQVksSUFBSUMsVUFBVSxJQUFJLElBQTlCLGlCQUNDLHVEQUNFO0FBQ0UsWUFBQSxTQUFTLEVBQUV2RSxNQUFNLENBQUMsUUFBRCxDQURuQjtBQUVFLFlBQUEsT0FBTyxFQUFFLE1BQUksQ0FBQ2lJLFFBQUwsQ0FBY3hCLElBQWQsQ0FBbUIsTUFBbkIsRUFBeUJuRCxNQUF6QixFQUFpQyxLQUFqQztBQUZYLDRCQURGLGVBT0U7QUFDRSxZQUFBLFNBQVMsRUFBRXRELE1BQU0sQ0FBQyxRQUFELENBRG5CO0FBRUUsWUFBQSxPQUFPLEVBQUUsTUFBSSxDQUFDaUksUUFBTCxDQUFjeEIsSUFBZCxDQUFtQixNQUFuQixFQUF5Qm5ELE1BQXpCLEVBQWlDLElBQWpDO0FBRlgsNEJBUEYsQ0FGSixFQWlCRyxNQUFJLENBQUM0RSxrQkFBTCxDQUF3QjdELGFBQXhCLEVBQXVDZixNQUF2QyxFQUErQ2dCLFlBQS9DLENBakJILENBREY7QUFxQkQ7QUEzQmMsT0FBakIsQ0FERjtBQStCQSwwQkFDRTtBQUFLLFFBQUEsU0FBUyxFQUFFdEUsTUFBTSxDQUFDLE1BQUQsQ0FBdEI7QUFBZ0MsUUFBQSxLQUFLLEVBQUU7QUFBRW1JLFVBQUFBLE9BQU8sRUFBRTtBQUFYO0FBQXZDLFNBQ0d6QyxRQUFRLGlCQUNQO0FBQUssUUFBQSxTQUFTLEVBQUUxRixNQUFNLENBQUMsTUFBRDtBQUF0QixzQkFDRSxvQkFBQyxJQUFEO0FBQ0UsUUFBQSxLQUFLLG9CQUFPa0csU0FBUCxDQURQO0FBRUUsUUFBQSxRQUFRLEVBQUUsS0FGWjtBQUdFLFFBQUEsU0FBUyxFQUFFLEtBSGI7QUFJRSxRQUFBLFVBQVUsRUFBRUMsVUFKZDtBQUtFLFFBQUEsUUFBUSxFQUFFLEtBQUtpQyxVQUFMLENBQWdCM0IsSUFBaEIsQ0FBcUIsSUFBckIsQ0FMWjtBQU1FLFFBQUEsWUFBWSxFQUFFLENBQUMsS0FBS2hHLEtBQUwsQ0FBV1MsZUFBWixDQU5oQjtBQU9FLFFBQUEsVUFBVSxFQUFFa0Y7QUFQZCxRQURGLENBRkosZUFjRTtBQUFLLFFBQUEsU0FBUyxFQUFFcEcsTUFBTSxDQUFDLE9BQUQ7QUFBdEIsU0FDR3VGLFVBQVUsaUJBQ1Q7QUFBSyxRQUFBLFNBQVMsRUFBRXZGLE1BQU0sQ0FBQyxRQUFEO0FBQXRCLHNCQUNFLG9CQUFDLElBQUQ7QUFDRSxRQUFBLEdBQUcsRUFBRSxLQUFLbUQsU0FEWjtBQUVFLFFBQUEsUUFBUSxFQUFFLEVBRlo7QUFHRSxRQUFBLFVBQVUsRUFBRSxFQUhkO0FBSUUsUUFBQSxNQUFNLEVBQUM7QUFKVCxTQU1HMkQsV0FBVyxDQUFDcEQsR0FBWixDQUFnQixVQUFDQyxJQUFELEVBQVlDLEtBQVosRUFBMkI7QUFDMUMsWUFBSUEsS0FBSyxHQUFHLENBQVIsSUFBYSxDQUFDLE1BQUksQ0FBQ25ELEtBQUwsQ0FBV1UsTUFBN0IsRUFBcUM7QUFDbkM7QUFDRDs7QUFDRCw0QkFDRSxvQkFBQyxJQUFELENBQU0sSUFBTjtBQUNFLFVBQUEsS0FBSyxFQUFFd0MsSUFBSSxDQUFDeUQsS0FEZDtBQUVFLFVBQUEsSUFBSSxFQUFFekQsSUFBSSxDQUFDakQsSUFGYixDQUdFOztBQUhGLFdBS0dQLE9BQU8sQ0FBQ3dELElBQUksQ0FBQzNDLElBQU4sa0NBQ0gyQyxJQUFJLENBQUNyRCxLQURGO0FBRU4rSCxVQUFBQSxXQUFXLDhCQUFRMUUsSUFBSSxDQUFDeUQsS0FBYjtBQUZMLFdBTFYsQ0FERjtBQVlELE9BaEJBLENBTkgsQ0FERixlQXlCRTtBQUFLLFFBQUEsU0FBUyxFQUFFcEgsTUFBTSxDQUFDLFNBQUQsQ0FBdEI7QUFBbUMsUUFBQSxLQUFLLEVBQUU7QUFBRXNJLFVBQUFBLFNBQVMsRUFBRTtBQUFiO0FBQTFDLHNCQUNFLG9CQUFDLE1BQUQ7QUFDRSxRQUFBLElBQUksRUFBRSxTQURSO0FBRUUsUUFBQSxPQUFPLEVBQUUsS0FBS0MsUUFBTCxDQUFjOUIsSUFBZCxDQUFtQixJQUFuQixDQUZYO0FBR0UsUUFBQSxJQUFJLGVBQUUsb0JBQUMsSUFBRDtBQUFNLFVBQUEsSUFBSSxFQUFFNUcsUUFBUSxDQUFDb0g7QUFBckI7QUFIUix3QkFERixlQVFFLG9CQUFDLE1BQUQ7QUFDRSxRQUFBLElBQUksRUFBRSxTQURSO0FBRUUsUUFBQSxPQUFPLEVBQUUsbUJBQU07QUFBQTs7QUFDYixtQ0FBQSxNQUFJLENBQUM5RCxTQUFMLENBQWU3QixPQUFmLGdGQUF3QmtILFdBQXhCO0FBQ0QsU0FKSDtBQUtFLFFBQUEsSUFBSSxlQUFFLG9CQUFDLElBQUQ7QUFBTSxVQUFBLElBQUksRUFBRTNJLFFBQVEsQ0FBQzRJO0FBQXJCO0FBTFIsd0JBUkYsRUFpQkczQixXQUFXLENBQUNwRixNQUFaLEdBQXFCLENBQXJCLGlCQUNDO0FBQ0UsUUFBQSxTQUFTLEVBQUUxQixNQUFNLENBQUMwSSxPQURwQjtBQUVFLFFBQUEsT0FBTyxFQUFFLG1CQUFNO0FBQ2IsY0FBUXZILE1BQVIsR0FBbUIsTUFBSSxDQUFDVixLQUF4QixDQUFRVSxNQUFSOztBQUNBLFVBQUEsTUFBSSxDQUFDMkMsUUFBTCxDQUFjO0FBQ1ozQyxZQUFBQSxNQUFNLEVBQUUsQ0FBQ0E7QUFERyxXQUFkO0FBR0Q7QUFQSCxTQVNHLEtBQUtWLEtBQUwsQ0FBV1UsTUFBWCxHQUFvQixJQUFwQixHQUEyQixJQVQ5QixFQVVHLEtBQUtWLEtBQUwsQ0FBV1UsTUFBWCxnQkFBb0Isb0JBQUMsVUFBRCxPQUFwQixnQkFBcUMsb0JBQUMsWUFBRCxPQVZ4QyxDQWxCSixDQXpCRixDQUZKLEVBNkRHeUUsY0FBYyxpQkFDYjtBQUFLLFFBQUEsU0FBUyxFQUFFNUYsTUFBTSxDQUFDLFNBQUQsQ0FBdEI7QUFBbUMsUUFBQSxLQUFLLEVBQUU7QUFBRTJJLFVBQUFBLFVBQVUsRUFBRTtBQUFkO0FBQTFDLFNBQ0c5QyxhQUFhLElBQUl0QixVQUFVLElBQUksSUFBL0IsaUJBQ0Msb0JBQUMsTUFBRDtBQUNFLFFBQUEsSUFBSSxFQUFFLFNBRFI7QUFFRSxRQUFBLE9BQU8sRUFBRSxLQUFLMEQsUUFBTCxDQUFjeEIsSUFBZCxDQUFtQixJQUFuQixDQUZYO0FBR0UsUUFBQSxJQUFJLGVBQUUsb0JBQUMsSUFBRDtBQUFNLFVBQUEsSUFBSSxFQUFFNUcsUUFBUSxDQUFDK0k7QUFBckI7QUFIUix3QkFGSixFQVVHOUMsZ0JBQWdCLElBQUl2QixVQUFVLElBQUksSUFBbEMsaUJBQ0Msb0JBQUMsTUFBRCxDQUNFO0FBREY7QUFFRSxRQUFBLE9BQU8sRUFBRSxLQUFLOUMsUUFBTCxDQUFjZ0YsSUFBZCxDQUFtQixJQUFuQixDQUZYO0FBR0UsUUFBQSxJQUFJLGVBQUUsb0JBQUMsSUFBRDtBQUFNLFVBQUEsSUFBSSxFQUFFNUcsUUFBUSxDQUFDZ0o7QUFBckIsVUFIUjtBQUlFLFFBQUEsTUFBTTtBQUpSLHdCQVhKLEVBb0JHbkIsT0FBTyxDQUFDaEUsR0FBUixDQUFZLFVBQUNDLElBQUQsRUFBWUMsS0FBWixFQUEyQjtBQUN0Qyw0QkFBTztBQUFLLFVBQUEsR0FBRyxFQUFFQTtBQUFWLFdBQWtCRCxJQUFsQixDQUFQO0FBQ0QsT0FGQSxDQXBCSCxDQTlESixlQXVGRTtBQUFLLFFBQUEsU0FBUyxFQUFFM0QsTUFBTSxDQUFDLE9BQUQ7QUFBdEIsc0JBQ0Usb0JBQUMsS0FBRDtBQUFPLFFBQUEsR0FBRyxFQUFFLEtBQUsrQyxRQUFqQjtBQUEyQixRQUFBLE9BQU8sRUFBRThEO0FBQXBDLFNBQXFEUixXQUFyRCxFQURGLENBdkZGLENBZEYsRUF5R0c5QixVQUFVLGlCQUNULG9CQUFDLFVBQUQ7QUFDRSxRQUFBLEdBQUcsRUFBRSxLQUFLbEQsU0FEWjtBQUVFLFFBQUEsUUFBUSxFQUFFLEtBQUs0RyxRQUFMLENBQWN4QixJQUFkLENBQW1CLElBQW5CLENBRlo7QUFHRSxRQUFBLFFBQVEsRUFBRSxLQUFLcUMsV0FBTCxDQUFpQnJDLElBQWpCLENBQXNCLElBQXRCLENBSFo7QUFJRSxRQUFBLFNBQVMsRUFBRU0sV0FKYjtBQUtFLFFBQUEsU0FBUyxFQUFFdkIsU0FMYjtBQU1FLFFBQUEsWUFBWSxFQUFFRztBQU5oQixRQTFHSixDQURGO0FBc0hEOzs7O0VBOWJvQnZHLGE7O0FBZ2N2QixlQUFlaUIsUUFBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBUYWJsZSBmcm9tIFwiLi4vLi4vdGFibGVcIjtcclxuaW1wb3J0IFRyZWUgZnJvbSBcIi4uLy4uL3RyZWVcIjtcclxuaW1wb3J0IEZvcm0gZnJvbSBcIi4uLy4uL2Zvcm1cIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYnV0dG9uXCI7XHJcbmltcG9ydCBNb2RhbCBmcm9tIFwiLi4vLi4vbW9kYWxcIjtcclxuaW1wb3J0IFBvcG92ZXIgZnJvbSBcIi4uLy4uL3BvcG92ZXJcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL21lc3NhZ2VcIjtcclxuaW1wb3J0IEljb24gZnJvbSBcIi4uLy4uL2NvbW1vbi9JY29uRm9udFwiO1xyXG5pbXBvcnQgeyBpY29uVHlwZSB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IEVkaXRvckZvcm0gZnJvbSBcIi4vRm9ybVwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgU3RvcmUsIHsgUGFnZVN0b3JlLCBTdG9yZVByb3BzIH0gZnJvbSBcIkBiai1uc2MvbXNuXCI7XHJcbmltcG9ydCB7IERvd25PdXRsaW5lZCwgVXBPdXRsaW5lZCB9IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgeyBnZXROb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCByZXF1ZXN0IGZyb20gXCJuc2MtcmVxdWVzdFwiO1xyXG5pbnRlcmZhY2UgVGFibGVQcm9wcyB7XHJcbiAgYWN0aW9uQ29sdW1uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmk43kvZzliJdcclxuICBhY3Rpb25CdXR0b24/OiBib29sZWFuOyAvL+aYr+WQpum7mOiupOaYvuekuuaWsOWinu+8jOe8lui+kem7mOiupOaMiemSrlxyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBmaWx0ZXJDb2x1bW4/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuui/h+a7pOaMiemSrlxyXG4gIHNob3dSb3dTZWxlY3Rpb24/OiBib29sZWFuOyAvL+aYr+WQpuihqOagvOWLvumAieWIl1xyXG59XHJcbmludGVyZmFjZSBUcmVlUHJvcHMge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBzaG93U2VhcmNoPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmkJzntKLmoYZcclxuICBzZWFyY2hLZXk/OiBzdHJpbmc7IC8v5pCc57SidmFsdWXlr7nlupTnmoRrZXlcclxuICBzZWFyY2hGaWVsZD86IHN0cmluZzsgLy/mn6Xor6Llr7nlupTnmoRrZXlcclxuICB0aXRsZUFsaWFzPzogc3RyaW5nOyAvL+agkXRpdGxl5a+55bqU55qEa2V5LOm7mOiupHRpdGxlXHJcbiAgbm9kZVBvcnBzPzogb2JqZWN0O1xyXG59XHJcbmludGVyZmFjZSBOU0NCYXNlQmFnZVByb3BzIHtcclxuICBzaG93U2VhcmNoPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrlpLTpg6jmkJzntKLmoI9cclxuICB0YWJsZVByb3BzPzogVGFibGVQcm9wczsgLy/ooajmoLzlj4LmlbBcclxuICB0cmVlUHJvcHM/OiBUcmVlUHJvcHM7IC8v5bem5L6n5qCR5Y+C5pWwXHJcbiAgc3VibWl0UGFyYW1zPzogT2JqZWN0O1xyXG4gIHN1Ym1pdFVybD86IHN0cmluZztcclxuICBvblN1Ym1pdD86IGFueTtcclxuICBjb2x1bW5zOiBBcnJheTxPYmplY3Q+O1xyXG4gIHNob3dMZWZ0PzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrlt6bkvqfnm67lvZXmoJFcclxuICBzaG93VG9vbEJ1dHRvbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65oyJ6ZKu5qCPXHJcbiAgc2hvd0FkZEJ1dHRvbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65re75Yqg5oyJ6ZKuXHJcbiAgZWRpdG9yRm9ybT86IGJvb2xlYW47IC8v5piv5ZCm6ZyA6KaB6KGo5Y2V5Yqf6IO9ICwg5Li6ZmFsc2Ug57yW6L6R77yM5p+l55yL77yM5paw5aKe5Yqf6IO95Z2H5LiN5Y+v55SoXHJcbiAgc2hvd0RlbGV0ZUJ1dHRvbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65Yig6Zmk5oyJ6ZKuXHJcbiAgZGVsZXRlVXJsPzogc3RyaW5nOyAvL+WIoOmZpHVybFxyXG4gIG9uRGVsZXRlPzogYW55O1xyXG59XHJcblxyXG5jbGFzcyBCYXNlUGFnZSBleHRlbmRzIFB1cmVDb21wb25lbnQ8TlNDQmFzZUJhZ2VQcm9wcywgYW55PiB7XHJcbiAgdGFibGVSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIHRyZWVSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIHNlYXJjaFJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgZWRpdG9yUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBjb25zdHJ1Y3Rvcihwcm9wczogYW55KSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICB0eXBlOiBcImFkZFwiLFxyXG4gICAgICBzZWxlY3RlZFJvd0tleXM6IFtdLFxyXG4gICAgICB0cmVlU2VsZWN0ZWRLZXk6IFwiXCIsXHJcbiAgICAgIGV4cGFuZDogZmFsc2UsXHJcbiAgICB9O1xyXG4gIH1cclxuICBvblNlbGVjdCA9IChjaGVja2VkVHJlZUtleXM6IGFueSkgPT4ge1xyXG4gICAgY29uc3QgeyBuYW1lLCB1c2VyVHlwZSwgYWNjb3VudCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHZhbHVlID0geyBuYW1lLCB1c2VyVHlwZSwgYWNjb3VudCwgZGVwdElkOiBjaGVja2VkVHJlZUtleXNbMF0gfTtcclxuICAgIHRoaXMudGFibGVMb2FkKHZhbHVlKTtcclxuICB9O1xyXG5cclxuICAvL+aYvuekuuihqOWNlVxyXG4gIHNob3dGb3JtKHZhbHVlPzogYW55LCBmbGFnID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5lZGl0b3JSZWYuY3VycmVudD8uc2hvdyh2YWx1ZSwgZmxhZyk7XHJcbiAgfVxyXG4gIC8v5om56YeP5Yig6ZmkXHJcbiAgb25EZWxldGUoKSB7XHJcbiAgICBjb25zdCB7IGRlbGV0ZVVybCwgb25EZWxldGUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkUm93S2V5cyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmIChzZWxlY3RlZFJvd0tleXMubGVuZ3RoID09IDApIHtcclxuICAgICAgbWVzc2FnZS53YXJuaW5nKFwi6K+36YCJ5oup6KaB5Yig6Zmk55qE5pWw5o2u77yBXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAob25EZWxldGUpIHtcclxuICAgICAgb25EZWxldGUgJiYgb25EZWxldGUoc2VsZWN0ZWRSb3dLZXlzKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCFkZWxldGVVcmwpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwidXJs5LiN6IO95Li656m677yBXCIpO1xyXG4gICAgfVxyXG4gICAgTW9kYWwuY29uZmlybSh7XHJcbiAgICAgIHRpdGxlOiBcIuaYr+WQpuehruiupOWIoOmZpOaJgOmAiemhue+8n1wiLFxyXG4gICAgICAvLyBpY29uOiA8SWNvbiB0eXBlPXsnaWNvbnRpc2hpLTMnfSAvPixcclxuICAgICAgb2tUZXh0OiBcIuehruiupFwiLFxyXG4gICAgICBjYW5jZWxUZXh0OiBcIuWPlua2iFwiLFxyXG4gICAgICBvbk9rOiAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcmVxdWVzdFBhcmFtID0geyBtZXRob2Q6IFwicG9zdFwiLCBkYXRhOiB7IGlkczogc2VsZWN0ZWRSb3dLZXlzIH0gfTtcclxuICAgICAgICByZXF1ZXN0KGRlbGV0ZVVybCwge1xyXG4gICAgICAgICAgLi4ucmVxdWVzdFBhcmFtLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgY29uc3QgeyBjb2RlIH0gPSByZXM7XHJcbiAgICAgICAgICAgIGlmIChjb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoXCLliKDpmaTmiJDlip/vvIFcIik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuWIoOmZpOWksei0pe+8gVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycm9yKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRhYmxlTG9hZChwYXJhbXM6IGFueSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5sb2FkKHtcclxuICAgICAgcGFyYW1zOiBwYXJhbXMsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy/mn6Xor6JcclxuICBvblNlYXJjaCgpIHtcclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICB0aGlzLmxvYWQoZnJvbVZhbHVlKTtcclxuICB9XHJcbiAgLy/ooajmoLzph43mlrDliqDovb1cclxuICB0YWJsZVJlbG9hZCgpIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUucmVsb2FkKCk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkUm93S2V5cygpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLnNlbGVjdGVkUm93S2V5cztcclxuICB9XHJcbiAgZ2V0U2VhcmNoVmFsdWVzKCkge1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIHJldHVybiBmcm9tVmFsdWU7XHJcbiAgfVxyXG4gIHJvd1NlbGVjdGlvbk9uU2VsZWN0KHJlY29yZDogYW55LCBzZWxlY3RlZDogYW55KSB7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkUm93S2V5cyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBuZXdTZWxlY3RlZFJvd0tleXMgPSBbLi4uc2VsZWN0ZWRSb3dLZXlzXTtcclxuICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICBuZXdTZWxlY3RlZFJvd0tleXMgPSBbLi4ubmV3U2VsZWN0ZWRSb3dLZXlzLCByZWNvcmQuaWRdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0gPT09IHJlY29yZC5pZCkge1xyXG4gICAgICAgICAgbmV3U2VsZWN0ZWRSb3dLZXlzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RlZFJvd0tleXM6IG5ld1NlbGVjdGVkUm93S2V5cyxcclxuICAgIH0pO1xyXG4gIH1cclxuICByb3dTZWxlY3Rpb25PblNlbGVjdEFsbChzZWxlY3RlZDogYW55LCBzZWxlY3RlZFJvd3M6IGFueSwgY2hhbmdlUm93czogYW55KSB7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkUm93S2V5cyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBuZXdpZHM6IGFueSA9IFtdO1xyXG4gICAgaWYgKGNoYW5nZVJvd3MubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgY2hhbmdlSWRzID0gY2hhbmdlUm93cy5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5pZCk7XHJcbiAgICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICAgIG5ld2lkcyA9IFsuLi5zZWxlY3RlZFJvd0tleXMsIC4uLmNoYW5nZUlkc107XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2VsZWN0ZWRSb3dLZXlzLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoY2hhbmdlSWRzLmluZGV4T2YoaXRlbSkgPT0gLTEpIHtcclxuICAgICAgICAgICAgbmV3aWRzLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld2lkcyA9IFsuLi5zZWxlY3RlZFJvd0tleXNdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogWy4uLm5ld2lkc10sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgbG9hZChwYXJhbXM6IGFueSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5sb2FkKHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuICByZW5kZXJDbG91bW5CdXR0b24oY29sdW1uQnV0dG9uczogYW55LCByZWNvcmQ6IGFueSwgYWN0aW9uQnV0dG9uPzogYm9vbGVhbikge1xyXG4gICAgY29uc3QgeyBlZGl0b3JGb3JtIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgY29udGVudCA9IGNvbHVtbkJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIC4uLnBhcmFtcyB9ID0gaXRlbS5wcm9wcztcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzc05hbWU9e2NscyhzdHlsZXNbXCJlZGl0b3JcIl0sIHN0eWxlc1tcImNvbnRlbnQtaXRlbVwiXSl9XHJcbiAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2socmVjb3JkKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtjaGlsZHJlbn1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gICAgbGV0IG51bSA9IDE7XHJcbiAgICBpZiAoIWFjdGlvbkJ1dHRvbiB8fCAhZWRpdG9yRm9ybSkgbnVtID0gMztcclxuICAgIGlmIChjb2x1bW5CdXR0b25zLmxlbmd0aCA+IG51bSkge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIDxQb3BvdmVyXHJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgdGl0bGU9e251bGx9XHJcbiAgICAgICAgICBjb250ZW50PXtjb250ZW50fVxyXG4gICAgICAgICAgdHJpZ2dlcj1cImNsaWNrXCJcclxuICAgICAgICAgIC8vIG92ZXJsYXlDbGFzc05hbWU9e3N0eWxlc1sncG9wJ119XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImVkaXRvclwiXX0+XHJcbiAgICAgICAgICAgIOabtOWkmlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e3N0eWxlc1tcImljb25cIl19PlxyXG4gICAgICAgICAgICAgIDxEb3duT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9Qb3BvdmVyPlxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGNvbHVtbkJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgSWNvbiwgLi4ucGFyYW1zIH0gPSBpdGVtLnByb3BzO1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1wiZWRpdG9yXCJdfVxyXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtJY29ufSB7Y2hpbGRyZW59XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgLy/moJHngrnlh7vkuovku7ZcclxuICB0cmVlU2VsZWN0KHNlbGVjdGVkS2V5czogYW55LCB7IHNlbGVjdGVkLCBzZWxlY3RlZE5vZGVzIH06IGFueSkge1xyXG4gICAgbGV0IGtleXdvcmQgPSBcIlwiO1xyXG4gICAgY29uc3QgeyBzZWFyY2hLZXkgPSBcImtleVwiLCBzZWFyY2hGaWVsZCA9IFwiXCIgfSA9IHRoaXMucHJvcHMudHJlZVByb3BzO1xyXG4gICAgY29uc3QgeyB0cmVlU2VsZWN0ZWRLZXkgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgaWYgKHNlbGVjdGVkTm9kZXNbMF0uaXNMZWFmIHx8ICFzZWxlY3RlZE5vZGVzWzBdLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkS2V5c1swXSAhPT0gdHJlZVNlbGVjdGVkS2V5KSB7XHJcbiAgICAgICAgICAvLyBsZXQgbWFwRGF0YSA9IHRoaXMudHJlZVJlZi5jdXJyZW50Py5zdG9yZS5nZXRGbGF0dGVuRGF0YSgpO1xyXG4gICAgICAgICAga2V5d29yZCA9IHNlbGVjdGVkTm9kZXNbMF0uZGF0YXJlZi5hdHRyaWJ1dGVbc2VhcmNoS2V5XTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICB0cmVlU2VsZWN0ZWRLZXk6IHNlbGVjdGVkS2V5c1swXSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgdHJlZVNlbGVjdGVkS2V5OiBrZXl3b3JkLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBzZWFyY2hGaWVsZCAmJiB0aGlzLmxvYWQoeyAuLi5mcm9tVmFsdWUsIFtzZWFyY2hGaWVsZF06IGtleXdvcmQgfSk7XHJcbiAgfVxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHsgc2VsZWN0ZWRSb3dLZXlzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBjb2x1bW5zID0gW10sXHJcbiAgICAgIHNob3dTZWFyY2ggPSB0cnVlLFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgc3VibWl0VXJsID0gXCJcIixcclxuICAgICAgdGFibGVQcm9wcyA9IHt9LFxyXG4gICAgICB0cmVlUHJvcHMgPSB7fSxcclxuICAgICAgc2hvd0xlZnQgPSBmYWxzZSxcclxuICAgICAgc3VibWl0UGFyYW1zID0ge30sXHJcbiAgICAgIHNob3dUb29sQnV0dG9uID0gdHJ1ZSxcclxuICAgICAgc2hvd0FkZEJ1dHRvbiA9IHRydWUsXHJcbiAgICAgIHNob3dEZWxldGVCdXR0b24gPSB0cnVlLFxyXG4gICAgICBlZGl0b3JGb3JtID0gdHJ1ZSxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICBmaWx0ZXJDb2x1bW4gPSB0cnVlLFxyXG4gICAgICBhY3Rpb25CdXR0b24gPSB0cnVlLFxyXG4gICAgICBhY3Rpb25Db2x1bW4gPSB0cnVlLFxyXG4gICAgICBzaG93Um93U2VsZWN0aW9uID0gdHJ1ZSxcclxuICAgIH0gPSB0YWJsZVByb3BzO1xyXG5cclxuICAgIGNvbnN0IHtcclxuICAgICAgc3RvcmU6IHRyZWVTdG9yZSA9IHt9LFxyXG4gICAgICBzaG93U2VhcmNoOiB0cmVlU2VhcmNoID0gdHJ1ZSxcclxuICAgICAgdGl0bGVBbGlhcyA9IFwidGl0bGVcIixcclxuICAgIH0gPSB0cmVlUHJvcHM7XHJcblxyXG4gICAgbGV0IHRhYmxlUGFyYW1zID0geyBmaWx0ZXJDb2x1bW4sIHN0b3JlIH0gYXMgYW55O1xyXG5cclxuICAgIGlmIChzaG93Um93U2VsZWN0aW9uKSB7XHJcbiAgICAgIHRhYmxlUGFyYW1zID0ge1xyXG4gICAgICAgIC4uLnRhYmxlUGFyYW1zLFxyXG4gICAgICAgIHJvd1NlbGVjdGlvbjoge1xyXG4gICAgICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBzZWxlY3RlZFJvd0tleXMsXHJcbiAgICAgICAgICBvblNlbGVjdDogdGhpcy5yb3dTZWxlY3Rpb25PblNlbGVjdC5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgb25TZWxlY3RBbGw6IHRoaXMucm93U2VsZWN0aW9uT25TZWxlY3RBbGwuYmluZCh0aGlzKSxcclxuICAgICAgICAgIGNvbHVtbldpZHRoOiA0MCxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgY29uc3QgdGFibGVDb2x1bW46IGFueVtdID0gW107XHJcbiAgICBjb25zdCBzZWFyY2hGb3JtczogYW55ID0gW107XHJcbiAgICBjb25zdCBlZGl0b3JGb3JtczogYW55ID0gW107XHJcbiAgICBjb2x1bW5zLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGxldCB0ZW1wID0geyAuLi5pdGVtIH07XHJcbiAgICAgIGlmICh0ZW1wLnNlYXJjaCkge1xyXG4gICAgICAgIHNlYXJjaEZvcm1zLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogdGVtcC5maWVsZCB8fCB0ZW1wLmRhdGFJbmRleCxcclxuICAgICAgICAgIGxhYmVsOiB0ZW1wLnRpdGxlLFxyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgcHJvcHM6IHRlbXAucHJvcHMsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAuc2VhcmNoO1xyXG4gICAgICB0ZW1wLmVkaXRvciAhPT0gZmFsc2UgJiZcclxuICAgICAgICBlZGl0b3JGb3Jtcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICBsYWJlbDogdGVtcC50aXRsZSxcclxuICAgICAgICAgIHJ1bGVzOiB0ZW1wLnJ1bGVzLFxyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgcHJvcHM6IHRlbXAucHJvcHMsXHJcbiAgICAgICAgICBzcGFuOiB0ZW1wLnNwYW4sXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnJ1bGVzO1xyXG4gICAgICBkZWxldGUgdGVtcC5zcGFuO1xyXG4gICAgICBpZiAodGVtcC5jb2x1bW5TZWFyY2gpIHtcclxuICAgICAgICB0ZW1wLmZpbHRlclByb3BzID0ge1xyXG4gICAgICAgICAgdHlwZTogdGVtcC50eXBlLFxyXG4gICAgICAgICAgcHJvcHM6IHRlbXAucHJvcHMsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgdGVtcC50eXBlO1xyXG4gICAgICBkZWxldGUgdGVtcC5wcm9wcztcclxuICAgICAgdGFibGVDb2x1bW4ucHVzaCh0ZW1wKTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgQnV0dG9uczogYW55ID0gW107XHJcbiAgICBjb25zdCBjb2x1bW5CdXR0b25zOiBhbnkgPSBbXTtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLnByb3BzLnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgICBCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtLnByb3BzLnBhZ2VUeXBlID09IFwiY2xvdW1uQnV0dG9uXCIpIHtcclxuICAgICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICBjb25zdCB7IHByb3BzIH06IGFueSA9IGNoaWxkcmVuO1xyXG4gICAgICBpZiAocHJvcHMucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICBCdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9IGVsc2UgaWYgKHByb3BzLnBhZ2VUeXBlID09IFwiY2xvdW1uQnV0dG9uXCIpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBhY3Rpb25Db2x1bW4gJiZcclxuICAgICAgdGFibGVDb2x1bW4ucHVzaCh7XHJcbiAgICAgICAgdGl0bGU6IFwi5pON5L2cXCIsXHJcbiAgICAgICAgZGF0YUluZGV4OiBcImFjdGlvblwiLFxyXG4gICAgICAgIGFsaWduOiBcImNlbnRlclwiLFxyXG4gICAgICAgIHdpZHRoOiAxNTAsXHJcbiAgICAgICAgcmVuZGVyOiAodGV4dDogYW55LCByZWNvcmQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImFjdGlvblwiXX0+XHJcbiAgICAgICAgICAgICAge2FjdGlvbkJ1dHRvbiAmJiBlZGl0b3JGb3JtID09IHRydWUgJiYgKFxyXG4gICAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1wiZWRpdG9yXCJdfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuc2hvd0Zvcm0uYmluZCh0aGlzLCByZWNvcmQsIGZhbHNlKX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIOafpeeci1xyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzW1wiZWRpdG9yXCJdfVxyXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuc2hvd0Zvcm0uYmluZCh0aGlzLCByZWNvcmQsIHRydWUpfVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAg57yW6L6RXHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJDbG91bW5CdXR0b24oY29sdW1uQnV0dG9ucywgcmVjb3JkLCBhY3Rpb25CdXR0b24pfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInBhZ2VcIl19IHN0eWxlPXt7IGRpc3BsYXk6IFwiZmxleFwiIH19PlxyXG4gICAgICAgIHtzaG93TGVmdCAmJiAoXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wibGVmdFwiXX0+XHJcbiAgICAgICAgICAgIDxUcmVlXHJcbiAgICAgICAgICAgICAgc3RvcmU9e3sgLi4udHJlZVN0b3JlIH19XHJcbiAgICAgICAgICAgICAgc2hvd0ljb249e2ZhbHNlfVxyXG4gICAgICAgICAgICAgIGNoZWNrYWJsZT17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgc2VhcmNoYWJsZT17dHJlZVNlYXJjaH1cclxuICAgICAgICAgICAgICBvblNlbGVjdD17dGhpcy50cmVlU2VsZWN0LmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgc2VsZWN0ZWRLZXlzPXtbdGhpcy5zdGF0ZS50cmVlU2VsZWN0ZWRLZXldfVxyXG4gICAgICAgICAgICAgIHRpdGxlQWxpYXM9e3RpdGxlQWxpYXN9XHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApfVxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJyaWdodFwiXX0+XHJcbiAgICAgICAgICB7c2hvd1NlYXJjaCAmJiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJoZWFkZXJcIl19PlxyXG4gICAgICAgICAgICAgIDxGb3JtXHJcbiAgICAgICAgICAgICAgICByZWY9e3RoaXMuc2VhcmNoUmVmfVxyXG4gICAgICAgICAgICAgICAgbGFiZWxDb2w9e3t9fVxyXG4gICAgICAgICAgICAgICAgd3JhcHBlckNvbD17e319XHJcbiAgICAgICAgICAgICAgICBsYXlvdXQ9XCJpbmxpbmVcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHtzZWFyY2hGb3Jtcy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiAyICYmICF0aGlzLnN0YXRlLmV4cGFuZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW1cclxuICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtpdGVtLmxhYmVsfVxyXG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT17aXRlbS5uYW1lfVxyXG4gICAgICAgICAgICAgICAgICAgICAgLy8gcnVsZXM9e2l0ZW0ucnVsZXN9XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAge2dldE5vZGUoaXRlbS50eXBlLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLml0ZW0ucHJvcHMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBg6K+36L6T5YWlJHtpdGVtLmxhYmVsfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICAgICAgICA8L0Zvcm0uSXRlbT5cclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgIDwvRm9ybT5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wiYnV0dG9uc1wiXX0gc3R5bGU9e3sgbWFyZ2luVG9wOiAwIH19PlxyXG4gICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgICBpY29uPXs8SWNvbiB0eXBlPXtpY29uVHlwZS5zZWFyY2h9IC8+fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICDmn6Xor6JcclxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnJlc2V0RmllbGRzKCk7XHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgIGljb249ezxJY29uIHR5cGU9e2ljb25UeXBlLnJlZnJlc2h9IC8+fVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICDph43nva5cclxuICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAge3NlYXJjaEZvcm1zLmxlbmd0aCA+IDMgJiYgKFxyXG4gICAgICAgICAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17c3R5bGVzLmFfc3R5bGV9XHJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBleHBhbmQgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kOiAhZXhwYW5kLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLmV4cGFuZCA/IFwi5pS26LW3XCIgOiBcIuWxleW8gFwifVxyXG4gICAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLmV4cGFuZCA/IDxVcE91dGxpbmVkIC8+IDogPERvd25PdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge3Nob3dUb29sQnV0dG9uICYmIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcImJ1dHRvbnNcIl19IHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDAgfX0+XHJcbiAgICAgICAgICAgICAge3Nob3dBZGRCdXR0b24gJiYgZWRpdG9yRm9ybSA9PSB0cnVlICYmIChcclxuICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuc2hvd0Zvcm0uYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgICAgaWNvbj17PEljb24gdHlwZT17aWNvblR5cGUuYWRkfSAvPn1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAg5re75YqgXHJcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIHtzaG93RGVsZXRlQnV0dG9uICYmIGVkaXRvckZvcm0gPT0gdHJ1ZSAmJiAoXHJcbiAgICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgIC8vIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLm9uRGVsZXRlLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgICAgIGljb249ezxJY29uIHR5cGU9e2ljb25UeXBlLmRlbGV0ZTN9IC8+fVxyXG4gICAgICAgICAgICAgICAgICBkYW5nZXJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAg5Yig6ZmkXHJcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIHtCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2luZGV4fT57aXRlbX08L2Rpdj47XHJcbiAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJ0YWJsZVwiXX0+XHJcbiAgICAgICAgICAgIDxUYWJsZSByZWY9e3RoaXMudGFibGVSZWZ9IGNvbHVtbnM9e3RhYmxlQ29sdW1ufSB7Li4udGFibGVQYXJhbXN9IC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB7ZWRpdG9yRm9ybSAmJiAoXHJcbiAgICAgICAgICA8RWRpdG9yRm9ybVxyXG4gICAgICAgICAgICByZWY9e3RoaXMuZWRpdG9yUmVmfVxyXG4gICAgICAgICAgICBvbkNhbmNlbD17dGhpcy5zaG93Rm9ybS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBjYWxsQmFjaz17dGhpcy50YWJsZVJlbG9hZC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICBmb3JtUHJvcHM9e2VkaXRvckZvcm1zfVxyXG4gICAgICAgICAgICBzdWJtaXRVcmw9e3N1Ym1pdFVybH1cclxuICAgICAgICAgICAgc3VibWl0UGFyYW1zPXtzdWJtaXRQYXJhbXN9XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgQmFzZVBhZ2U7XHJcbiJdfQ==
|
package/lib/table/index.js
CHANGED
|
@@ -470,7 +470,8 @@ var NSCTable = /*#__PURE__*/function (_React$Component) {
|
|
|
470
470
|
options: colLists.map(function (col) {
|
|
471
471
|
return {
|
|
472
472
|
label: col.title,
|
|
473
|
-
value: col.dataIndex
|
|
473
|
+
value: col.dataIndex,
|
|
474
|
+
disabled: col.filterColumn === false
|
|
474
475
|
};
|
|
475
476
|
}),
|
|
476
477
|
defaultValue: defaultShowCols.map(function (col) {
|
|
@@ -557,7 +558,7 @@ var NSCTable = /*#__PURE__*/function (_React$Component) {
|
|
|
557
558
|
|
|
558
559
|
var newFilterParams = _objectSpread({}, filterParams);
|
|
559
560
|
|
|
560
|
-
var key =
|
|
561
|
+
var key = item.field || item.dataIndex;
|
|
561
562
|
newFilterParams[key] = (_this5$tableSearchRef = _this5.tableSearchRef.current) === null || _this5$tableSearchRef === void 0 ? void 0 : _this5$tableSearchRef.getValue();
|
|
562
563
|
|
|
563
564
|
_this5.setState({
|
|
@@ -752,4 +753,4 @@ _defineProperty(NSCTable, "defaultProps", {
|
|
|
752
753
|
});
|
|
753
754
|
|
|
754
755
|
export default withZhLocale(NSCTable);
|
|
755
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3RhYmxlL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJBcHBzdG9yZU91dGxpbmVkIiwiQ2hlY2tPdXRsaW5lZCIsIlNlYXJjaE91dGxpbmVkIiwiaXNFbXB0eU9iaiIsIlN0b3JlIiwiUGFnZVN0b3JlIiwidXRpbHMiLCJSZWFjdCIsIkRuZFByb3ZpZGVyIiwiQm9keVJvdyIsIkRuZENvbnRleHRUeXBlIiwiSUJvZHlSb3dQcm9wcyIsInRyZWVVdGlscyIsInN0eWxlcyIsIkJvZHlSb3dDb21wb25lbnQiLCJIVE1MNUJhY2tlbmQiLCJ3aXRoWmhMb2NhbGUiLCJOb0RhdGEiLCJSZXNpemFibGUiLCJnZXROb2RlIiwiUmVzaXplYWJsZVRpdGxlIiwicHJvcHMiLCJvblJlc2l6ZSIsIndpZHRoIiwicmVzdFByb3BzIiwiZW5hYmxlVXNlclNlbGVjdEhhY2siLCJOU0NUYWJsZSIsImNyZWF0ZVJlZiIsImRhdGFTb3VyY2UiLCJjb2x1bW5zIiwibG9hZGluZyIsInBhZ2luYXRpb24iLCJhY3RpdmVJbmRleCIsInNlYXJjaFRleHQiLCJmaWVsZE9wdGlvbiIsInNlYXJjaENvbG9yIiwiY29scyIsInNvcnRzIiwiZmlsdGVyUGFyYW1zIiwidGFibGVTaXplIiwic29ydFR5cGUiLCJvbkJlZm9yZUxvYWQiLCJsb2FkIiwiaGVhZGVyIiwiY2VsbCIsImluZGV4IiwiZSIsInNpemUiLCJzdGF0ZSIsIm5leHRDb2x1bW5zIiwic2V0U3RhdGUiLCJkcmFnSW5kZXgiLCJob3ZlckluZGV4IiwiZHJhZyIsInRhcmdldCIsIl90aGlzIiwiZHJhZ05vZGUiLCJyZWNvcmQiLCJ0YXJnZXROb2RlIiwibW92ZUFycmF5IiwiaWRzIiwicGFyZW50Tm9kZSIsImdldENoaWxkTm9kZUlkcyIsInBhcmFtcyIsImlkIiwicGFyZW50SWQiLCJhdHRyaWJ1dGUiLCJtb3ZlUm93Iiwic3RvcmUiLCJyZWxvYWQiLCJsaXN0ZW5lcnMiLCJsaXN0ZW5lcnNQcm9wcyIsInJlc3RTdG9yZSIsInN0b3JlUHJvcHMiLCJtb2RlbCIsImNvbXBvbmVudCIsIm9wdGlvbnMiLCJjYWxsYmFjayIsImRhdGFDaGFuZ2VkIiwiZGF0YSIsIm1vZGVsRGF0YSIsInBhZ2luZyIsImdldFBhZ2luYXRpb24iLCJvbkVycm9yTG9hZCIsImVyciIsInJlc3BvbnNlIiwiYXV0b0xvYWQiLCJPYmplY3QiLCJhc3NpZ24iLCJjdXJyZW50IiwicmVzaXplQ29sdW1uIiwic2V0RGF0YSIsInByZXZQcm9wcyIsInByZVN0YXRlIiwicmVzZXRDb2x1bW4iLCJuZXdDb2xzIiwiY29sc3MiLCJtYXAiLCJjb2wiLCJ0ZW1wIiwib25IZWFkZXJDZWxsIiwiY29sdW1uIiwiaGFuZGxlUmVzaXplIiwicHVzaCIsImZpbHRlcnMiLCJzb3J0ZXIiLCJleHRyYSIsImNvbnNvbGUiLCJsb2ciLCJhdXRvT25DaGFuZ2UiLCJhdXRvU29ydCIsImF1dG9QYWdpbmF0aW9uIiwib25DaGFuZ2UiLCJoYW5kbGVQYWdpbmF0aW9uIiwiZ2V0UGFnaW5hdGlvbkJ5U3RvcmUiLCJwIiwiY3VycmVudEtleSIsInBhZ2VTaXplS2V5IiwicGFnZVNpemUiLCJvcmRlciIsImFzY3MiLCJzb3J0RmllbGQiLCJmaWVsZCIsImRlc2NzIiwib25DaGFuZ2VGbiIsImdldE1vZGVsIiwidmFsIiwiY2hlY2tlZFZhbHVlIiwiZmlsdGVyQ29sdW1ucyIsIm5ld0NvbCIsImluY2x1ZGVzIiwiZGF0YUluZGV4IiwiaW5pdFNob3ciLCJjb2xMaXN0cyIsImRlZmF1bHRTaG93Q29scyIsImZpbHRlciIsImNvbnRlbnQiLCJmaWx0ZXJDb2x1bW4iLCJiaW5kIiwibGFiZWwiLCJ0aXRsZSIsInZhbHVlIiwiZWxsaXBzaXMiLCJyZW5kZXIiLCJzaG93VGl0bGUiLCJ0ZXh0IiwiSWNvbkFjdGlvbiIsInRoSWNvblJlZiIsIm1pbldpZHRoIiwibWF4V2lkdGgiLCJrZXkiLCJhbGlnbiIsIml0ZW0iLCJmaWx0ZXJQcm9wcyIsIm9iaiIsInR5cGUiLCJzZWFyY2hLZXkiLCJEaXYiLCJwbGFjZWhvbGRlciIsImZpbHRlckRyb3Bkb3duIiwic2V0U2VsZWN0ZWRLZXlzIiwic2VsZWN0ZWRLZXlzIiwiY29uZmlybSIsImNsZWFyRmlsdGVycyIsIm5ld0ZpbHRlclBhcmFtcyIsInRhYmxlU2VhcmNoUmVmIiwiZ2V0VmFsdWUiLCJmaWx0ZXJJY29uIiwib21pdCIsInJvd0tleSIsImNsaWNrQ2hhbmdlQ29sb3IiLCJwb3NpdGlvbiIsInNob3dTaXplQ2hhbmdlciIsInNob3dRdWlja0p1bXBlciIsInNob3dUb3RhbCIsInRvdGFsIiwiZnJvbSIsInRvIiwib25Sb3dGbiIsIm9uUm93IiwiY3VzdG9tIiwib25DbGlja0ZuIiwib25DbGljayIsImV2ZW50Iiwicm93Q2xhc3NOYW1lIiwiY2xpY2tSb3dTdHlsZSIsIm5ld0RhdGFTb3VyY2UiLCJnZXRTZWFyY2hNZW51RGF0YXMiLCJ0cmVlRGF0YXMiLCJleHBhbmRlZFJvd0tleXMiLCJvcGVuS2V5cyIsImRyYWdhYmxlIiwiZHJhZ2FibGVQcm9wcyIsImNvbXBvbmVudHMiLCJyZXNpemVQcm9wcyIsInNpemVJdGVtIiwic29ydEl0ZW0iLCJzb3J0Q29udGVudCIsInNpemVDb250ZW50IiwiRGVmYXVsdFRhYmxlIiwiZ2V0Q29sdW1ucyIsImVtcHR5VGV4dCIsIngiLCJDb21wb25lbnQiLCJkaXNhYmxlQ29sdW1ucyIsImRyYWdVcmwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUNFQSxnQkFERixFQUVFQyxhQUZGLEVBSUVDLGNBSkYsUUFNTyxtQkFOUDtBQU9BLFNBQVNDLFVBQVQsUUFBMkIsbUJBQTNCO0FBQ0EsT0FBT0MsS0FBUCxJQUFnQkMsU0FBaEIsUUFBNkMsYUFBN0M7QUFDQSxTQUFTQyxLQUFULFFBQXNCLHVCQUF0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aEw7QUFBdEIsU0FBcUN3TCxZQUFyQyxDQURLLEdBR0xBLFlBSEY7QUFLRDs7OztFQXRrQm9CaE0sS0FBSyxDQUFDb00sUzs7Z0JBQXZCakwsUSxrQkFDa0I7QUFDcEJrTCxFQUFBQSxjQUFjLEVBQUUsRUFESTtBQUVwQmIsRUFBQUEsUUFBUSxFQUFFLEtBRlU7QUFHcEJqQixFQUFBQSxTQUFTLEVBQUUsSUFIUztBQUlwQnJDLEVBQUFBLFlBQVksRUFBRSxLQUpNO0FBS3BCb0UsRUFBQUEsT0FBTyxFQUFFLEVBTFc7QUFNcEI5RixFQUFBQSxjQUFjLEVBQUUsSUFOSTtBQU9wQkQsRUFBQUEsUUFBUSxFQUFFLElBUFU7QUFRcEJELEVBQUFBLFlBQVksRUFBRSxJQVJNO0FBU3BCbkIsRUFBQUEsWUFBWSxFQUFFO0FBVE0sQzs7QUF3a0J4QixlQUFlMUUsWUFBWSxDQUFDVSxRQUFELENBQTNCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQERlc2NyaXB0dGlvbjpcclxuICogQHZlcnNpb246XHJcbiAqIEBBdXRob3I6IHJ4emh1XHJcbiAqIEBEYXRlOiAyMDIxLTAzLTIzIDA4OjQ2OjIwXHJcbiAqIEBMYXN0RWRpdG9yczogcnh6aHVcclxuICogQExhc3RFZGl0VGltZTogMjAyMS0wMy0yMyAxMDozMDo0MlxyXG4gKi9cclxuaW1wb3J0IHtcclxuICBBcHBzdG9yZU91dGxpbmVkLFxyXG4gIENoZWNrT3V0bGluZWQsXHJcbiAgQ29sdW1uSGVpZ2h0T3V0bGluZWQsXHJcbiAgU2VhcmNoT3V0bGluZWQsXHJcbiAgU29ydEFzY2VuZGluZ091dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgeyBpc0VtcHR5T2JqIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCBTdG9yZSwgeyBQYWdlU3RvcmUsIFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCB7XHJcbiAgQnV0dG9uLFxyXG4gIENoZWNrYm94LFxyXG4gIENoZWNrYm94T3B0aW9uVHlwZSxcclxuICBNZW51LFxyXG4gIFBvcG92ZXIsXHJcbiAgU3BhY2UsXHJcbiAgVGFibGUsXHJcbiAgVGFibGVQcm9wcyxcclxuICBUb29sdGlwLFxyXG59IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCB7IENvbHVtblR5cGUsIFRhYmxlUGFnaW5hdGlvbkNvbmZpZyB9IGZyb20gXCJhbnRkL2xpYi90YWJsZVwiO1xyXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgRG5kUHJvdmlkZXIgfSBmcm9tIFwicmVhY3QtZG5kXCI7XHJcbmltcG9ydCBCb2R5Um93LCB7IERuZENvbnRleHRUeXBlLCBJQm9keVJvd1Byb3BzIH0gZnJvbSBcIi4uL2NvbW1vbi9Cb2R5Um93XCI7XHJcbmltcG9ydCB0cmVlVXRpbHMgZnJvbSBcIi4uL3RyZWVVdGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuY29uc3QgeyBCb2R5Um93Q29tcG9uZW50LCBIVE1MNUJhY2tlbmQgfSA9IEJvZHlSb3c7XHJcbmltcG9ydCB3aXRoWmhMb2NhbGUgZnJvbSBcIi4uL2NvbW1vbi93aXRoWmhMb2NhbGVcIjtcclxuaW1wb3J0IHsgSWNvbiwgTm9EYXRhLCBJbnB1dCwgU2VsZWN0IH0gZnJvbSBcIi4uXCI7XHJcbmltcG9ydCB7IFJlc2l6YWJsZSB9IGZyb20gXCJyZWFjdC1yZXNpemFibGVcIjtcclxuaW1wb3J0IFwiLi9yZXNpemUubGVzc1wiO1xyXG5pbXBvcnQgeyBnZXROb2RlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XHJcblxyXG5pbnRlcmZhY2UgSURyYWdQYXJhbXMge1xyXG4gIGlkOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgaWRzOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xyXG4gIHBhcmVudElkOiBzdHJpbmcgfCBudW1iZXI7XHJcbn1cclxuLy8gaW50ZXJmYWNlIFN0b3JlUHJvcHMge31cclxuXHJcbmV4cG9ydCB0eXBlIFN0b3JlVHlwZSA9IFwiUGFnZVN0b3JlXCIgfCBcIlRyZWVTdG9yZVwiIHwgXCJCYXNlU3RvcmVcIjtcclxuXHJcbmludGVyZmFjZSBOU0NUYWJsZVBhZ2luYXRpb24gZXh0ZW5kcyBUYWJsZVBhZ2luYXRpb25Db25maWcge1xyXG4gIHRvdGFsS2V5Pzogc3RyaW5nO1xyXG4gIHBhZ2VTaXplS2V5Pzogc3RyaW5nO1xyXG4gIGN1cnJlbnRLZXk/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBOU0NUYWJsZVByb3BzIGV4dGVuZHMgVGFibGVQcm9wczxhbnk+IHtcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgc2hvd1RvdGFsPzogYm9vbGVhbjsgLy8g5piv5ZCm5pi+56S65oC75p2h5pWw5L+h5oGv77yM6buY6K6kdHJ1ZVxyXG4gIGRpc2FibGVDb2x1bW5zPzogc3RyaW5nW107IC8vIOS4jeWPr+makOiXj+W/hemhu+aYvuekuueahOWIl1xyXG4gIGRyYWdhYmxlPzogYm9vbGVhbjsgLy8g5piv5ZCm5Y+v5ouW5YqoLCDpu5jorqRmYWxzZVxyXG4gIGZpbHRlckNvbHVtbj86IGJvb2xlYW47IC8vIOaYr+WQpuaUr+aMgei/h+a7pOaYvuekuuihqOagvOWIlywg6buY6K6kdHJ1ZVxyXG4gIG1vdmVSb3c/OiAocGFyYW1zOiBJRHJhZ1BhcmFtcykgPT4gdm9pZDsgLy8g5ouW5ou95a6M5oiQ5ZCO55qE5Zue6LCDXHJcbiAgZHJhZ1VybD86IHN0cmluZzsgLy8g5L+d5a2Y5ouW5ou95o6S5bqP55qE5o6l5Y+jXHJcbiAgcGFnaW5hdGlvbj86IGZhbHNlIHwgTlNDVGFibGVQYWdpbmF0aW9uO1xyXG4gIGF1dG9QYWdpbmF0aW9uPzogYm9vbGVhbjsgLy8g57uE5Lu25piv5ZCm6Ieq5Yqo5aSE55CG5YiG6aG1XHJcbiAgYXV0b1NvcnQ/OiBib29sZWFuOyAvL+e7hOS7tuaYr+WQpuiHquWKqOWkhOeQhuaOkuW6j1xyXG4gIGF1dG9PbkNoYW5nZT86IGJvb2xlYW47IC8vIOe7hOS7tuaYr+WQpuiHquWKqG9uQ2hhbmdlLCBmYWxzZeWImeS4jeWBmuS7u+S9leWkhOeQhuWFqOmDqOS6pOe7meiwg+eUqOaWuVxyXG4gIHJlc2l6ZUNvbHVtbj86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIElOU0NUYWJsZVByb3BzID0gdHlwZW9mIE5TQ1RhYmxlLmRlZmF1bHRQcm9wcyAmIE5TQ1RhYmxlUHJvcHM7XHJcbmV4cG9ydCB7IERuZENvbnRleHRUeXBlLCBJQm9keVJvd1Byb3BzIH07XHJcblxyXG5jb25zdCBSZXNpemVhYmxlVGl0bGUgPSAocHJvcHM6IGFueSkgPT4ge1xyXG4gIGNvbnN0IHsgb25SZXNpemUsIHdpZHRoLCAuLi5yZXN0UHJvcHMgfSA9IHByb3BzO1xyXG4gIHJldHVybiAoXHJcbiAgICA8UmVzaXphYmxlXHJcbiAgICAgIHdpZHRoPXt3aWR0aCB8fCAxNTB9XHJcbiAgICAgIGhlaWdodD17MH1cclxuICAgICAgb25SZXNpemU9e29uUmVzaXplfVxyXG4gICAgICBkcmFnZ2FibGVPcHRzPXt7IGVuYWJsZVVzZXJTZWxlY3RIYWNrOiBmYWxzZSB9fVxyXG4gICAgPlxyXG4gICAgICA8dGggey4uLnJlc3RQcm9wc30gLz5cclxuICAgIDwvUmVzaXphYmxlPlxyXG4gICk7XHJcbn07XHJcbmNsYXNzIE5TQ1RhYmxlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElOU0NUYWJsZVByb3BzPiB7XHJcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgIGRpc2FibGVDb2x1bW5zOiBbXSxcclxuICAgIGRyYWdhYmxlOiBmYWxzZSxcclxuICAgIHNob3dUb3RhbDogdHJ1ZSxcclxuICAgIGZpbHRlckNvbHVtbjogZmFsc2UsXHJcbiAgICBkcmFnVXJsOiBcIlwiLFxyXG4gICAgYXV0b1BhZ2luYXRpb246IHRydWUsXHJcbiAgICBhdXRvU29ydDogdHJ1ZSxcclxuICAgIGF1dG9PbkNoYW5nZTogdHJ1ZSxcclxuICAgIHJlc2l6ZUNvbHVtbjogdHJ1ZSxcclxuICB9O1xyXG5cclxuICBzdG9yZSA9IHt9IGFzIFN0b3JlUHJvcHM7XHJcbiAgdGhJY29uUmVmID0gUmVhY3QuY3JlYXRlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xyXG4gIHRhYmxlU2VhcmNoUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBzdGF0ZSA9IHtcclxuICAgIGRhdGFTb3VyY2U6IFtdLFxyXG4gICAgY29sdW1uczogW10sXHJcbiAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgIHBhZ2luYXRpb246IHt9LFxyXG4gICAgYWN0aXZlSW5kZXg6IC0xLFxyXG4gICAgLy/mkJzntKLmlofmnKxcclxuICAgIHNlYXJjaFRleHQ6IG51bGwsXHJcbiAgICBmaWVsZE9wdGlvbjogbnVsbCxcclxuICAgIHNlYXJjaENvbG9yOiBudWxsLFxyXG4gICAgY29sczogW10sXHJcbiAgICBzb3J0czogW10sXHJcbiAgICBmaWx0ZXJQYXJhbXM6IHt9LFxyXG4gICAgdGFibGVTaXplOiBcIm1pZGRsZVwiLFxyXG4gICAgc29ydFR5cGU6IFwic2lnbGVcIixcclxuICB9O1xyXG5cclxuICBsaXN0ZW5lcnMgPSB7XHJcbiAgICBvbkJlZm9yZUxvYWQ6IG51bGwsXHJcbiAgICBsb2FkOiBudWxsLFxyXG4gIH07XHJcblxyXG4gIGNvbXBvbmVudHMgPSB7XHJcbiAgICBoZWFkZXI6IHtcclxuICAgICAgY2VsbDogUmVzaXplYWJsZVRpdGxlLFxyXG4gICAgfSxcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgaWYgKHByb3BzLnN0b3JlIGluc3RhbmNlb2YgU3RvcmUpIHtcclxuICAgICAgdGhpcy5zdG9yZSA9IHByb3BzLnN0b3JlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgeyBsaXN0ZW5lcnM6IGxpc3RlbmVyc1Byb3BzID0ge30sIC4uLnJlc3RTdG9yZSB9ID1cclxuICAgICAgICBwcm9wcy5zdG9yZSB8fCB7fTtcclxuICAgICAgY29uc3Qgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICBtb2RlbDogXCJtb2RlbFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICBsaXN0ZW5lcnM6IHtcclxuICAgICAgICAgIG9uQmVmb3JlTG9hZDogKHN0b3JlLCBvcHRpb25zKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQcm9wcy5vbkJlZm9yZUxvYWQsIHRoaXMsIFtzdG9yZSwgb3B0aW9uc10pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRhdGFDaGFuZ2VkOiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgcGFnaW5nID0gISh0aGlzLnByb3BzLnBhZ2luYXRpb24gPT09IGZhbHNlKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChwYWdpbmcgJiYgIXRoaXMucHJvcHMuZGF0YVNvdXJjZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZTogbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgICAgcGFnaW5hdGlvbjogc3RvcmUuZ2V0UGFnaW5hdGlvbigpLFxyXG4gICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBhY3RpdmVJbmRleDogLTEsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IG1vZGVsRGF0YSwgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1Byb3BzLmRhdGFDaGFuZ2VkLCB0aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgICAgcGFnaW5nLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBsb2FkOiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkgPT4ge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQcm9wcy5sb2FkLCB0aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9uRXJyb3JMb2FkOiAoZXJyLCByZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1Byb3BzLm9uRXJyb3JMb2FkLCB0aGlzLCBbZXJyLCByZXNwb25zZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRhdGE6IHJlc3RTdG9yZS5kYXRhXHJcbiAgICAgICAgICA/IHJlc3RTdG9yZS5kYXRhXHJcbiAgICAgICAgICA6IHByb3BzLmRhdGFTb3VyY2VcclxuICAgICAgICAgID8gcHJvcHMuZGF0YVNvdXJjZVxyXG4gICAgICAgICAgOiBudWxsLFxyXG4gICAgICAgIC4uLnJlc3RTdG9yZSxcclxuICAgICAgICBhdXRvTG9hZDogcmVzdFN0b3JlLmF1dG9Mb2FkID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5zdG9yZSA9IG5ldyBQYWdlU3RvcmUoXHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RvcmVQcm9wcywge1xyXG4gICAgICAgICAgcGFnaW5hdGlvbjogeyBjdXJyZW50OiAxLCAuLi50aGlzLnByb3BzLnBhZ2luYXRpb24gfSxcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlUmVzaXplID1cclxuICAgIChpbmRleDogYW55KSA9PlxyXG4gICAgKGU6IGFueSwgeyBzaXplIH06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNvbHMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgIGNvbnN0IG5leHRDb2x1bW5zID0gWy4uLmNvbHNdO1xyXG4gICAgICBuZXh0Q29sdW1uc1tpbmRleF0gPSB7XHJcbiAgICAgICAgLi4ubmV4dENvbHVtbnNbaW5kZXhdLFxyXG4gICAgICAgIHdpZHRoOiBzaXplLndpZHRoLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBjb2xzOiBuZXh0Q29sdW1ucyxcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgcmVzaXplQ29sdW1uIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKCFyZXNpemVDb2x1bW4pIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvbHVtbnM6IFsuLi50aGlzLnByb3BzLmNvbHVtbnNdIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvbHM6IFsuLi50aGlzLnByb3BzLmNvbHVtbnNdIH0pO1xyXG4gICAgICAvLyB0aGlzLnJlc2V0Q29sdW1uKCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBzdG9yZSA9IHRoaXMucHJvcHMuc3RvcmU7XHJcbiAgICBpZiAoc3RvcmUgJiYgc3RvcmUuZGF0YSkge1xyXG4gICAgICB0aGlzLnN0b3JlLnNldERhdGEoc3RvcmUuZGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmVTdGF0ZSkge1xyXG4gICAgY29uc3QgeyByZXNpemVDb2x1bW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIXJlc2l6ZUNvbHVtbikge1xyXG4gICAgICBpZiAodGhpcy5wcm9wcy5jb2x1bW5zICE9PSBwcmV2UHJvcHMuY29sdW1ucykge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBjb2x1bW5zOiB0aGlzLnByb3BzLmNvbHVtbnMgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChwcmVTdGF0ZS5jb2xzICE9PSB0aGlzLnN0YXRlLmNvbHMpIHtcclxuICAgICAgICB0aGlzLnJlc2V0Q29sdW1uKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0Q29sdW1uKCkge1xyXG4gICAgY29uc3QgeyBjb2xzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgbmV3Q29sczogYW55ID0gW107XHJcbiAgICBsZXQgY29sc3MgPSBjb2xzIHx8IFtdO1xyXG4gICAgY29sc3MubWFwKChjb2w6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdGVtcCA9IHtcclxuICAgICAgICAuLi5jb2wsXHJcbiAgICAgICAgb25IZWFkZXJDZWxsOiAoY29sdW1uOiB7IHdpZHRoOiBhbnkgfSkgPT4gKHtcclxuICAgICAgICAgIHdpZHRoOiBjb2x1bW4ud2lkdGgsXHJcbiAgICAgICAgICBvblJlc2l6ZTogdGhpcy5oYW5kbGVSZXNpemUoaW5kZXgpLFxyXG4gICAgICAgIH0pLFxyXG4gICAgICB9O1xyXG4gICAgICBuZXdDb2xzLnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBjb2x1bW5zOiBuZXdDb2xzLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmuIXpmaTpgInkuK3popzoibJcclxuICAgKi9cclxuICBjbGVhclNlbGVjdENvbG9yKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGFjdGl2ZUluZGV4OiAtMSB9KTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGFnaW5hdGlvbkJ5U3RvcmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5nZXRQYWdpbmF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShwYWdpbmF0aW9uLCBmaWx0ZXJzLCBzb3J0ZXIsIGV4dHJhKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcInNvcnRlclwiLCBzb3J0ZXIpO1xyXG4gICAgY29uc3QgeyBhdXRvT25DaGFuZ2UsIGF1dG9Tb3J0LCBhdXRvUGFnaW5hdGlvbiwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zb2xlLmxvZyhcImF1dG9Tb3J0XCIsIGF1dG9Tb3J0KTtcclxuICAgIGNvbnNvbGUubG9nKFwiYXV0b1BhZ2luYXRpb25cIiwgYXV0b1BhZ2luYXRpb24pO1xyXG4gICAgY29uc3QgeyBmaWx0ZXJQYXJhbXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoYXV0b09uQ2hhbmdlID09PSBmYWxzZSkge1xyXG4gICAgICBvbkNoYW5nZSAmJiBvbkNoYW5nZShwYWdpbmF0aW9uLCBmaWx0ZXJzLCBzb3J0ZXIsIGV4dHJhKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaGFuZGxlUGFnaW5hdGlvbiA9ICgpID0+IHtcclxuICAgICAgbGV0IHBhcmFtcyA9IHt9IGFzIHtcclxuICAgICAgICBzaXplPzogc3RyaW5nO1xyXG4gICAgICAgIHBhZ2VTaXplPzogc3RyaW5nO1xyXG4gICAgICAgIGFzY3M/OiBzdHJpbmc7XHJcbiAgICAgICAgZGVzY3M/OiBzdHJpbmc7XHJcbiAgICAgICAgW3Byb3BOYW1lOiBzdHJpbmddOiBzdHJpbmc7XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBjb25zdCBwYWdpbmcgPSB0aGlzLmdldFBhZ2luYXRpb25CeVN0b3JlKCkgfHwge307XHJcblxyXG4gICAgICBpZiAoIWlzRW1wdHlPYmoocGFnaW5hdGlvbikpIHtcclxuICAgICAgICBjb25zdCBwID0ge1xyXG4gICAgICAgICAgW3BhZ2luZy5jdXJyZW50S2V5IHx8IFwiY3VycmVudFwiXTogcGFnaW5hdGlvbi5jdXJyZW50LFxyXG4gICAgICAgICAgW3BhZ2luZy5wYWdlU2l6ZUtleSB8fCBcInNpemVcIl06IHBhZ2luYXRpb24ucGFnZVNpemUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHBhcmFtcywgcCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChhdXRvU29ydCA9PT0gdHJ1ZSAmJiAhaXNFbXB0eU9iaihzb3J0ZXIpKSB7XHJcbiAgICAgICAgaWYgKHNvcnRlci5vcmRlciA9PSBcImFzY2VuZFwiKSB7XHJcbiAgICAgICAgICBwYXJhbXMuYXNjcyA9XHJcbiAgICAgICAgICAgIHNvcnRlci5jb2x1bW4uc29ydEZpZWxkIHx8IHNvcnRlci5jb2x1bW4uZmllbGQgfHwgc29ydGVyLmZpZWxkO1xyXG4gICAgICAgICAgcGFyYW1zLmRlc2NzID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNvcnRlci5vcmRlciA9PSBcImRlc2NlbmRcIikge1xyXG4gICAgICAgICAgcGFyYW1zLmRlc2NzID1cclxuICAgICAgICAgICAgc29ydGVyLmNvbHVtbi5zb3J0RmllbGQgfHwgc29ydGVyLmNvbHVtbi5maWVsZCB8fCBzb3J0ZXIuZmllbGQ7XHJcbiAgICAgICAgICBwYXJhbXMuYXNjcyA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHBhcmFtcyA9IHsgLi4uZmlsdGVyUGFyYW1zLCAuLi5wYXJhbXMgfTtcclxuICAgICAgdGhpcy5zdG9yZS5yZWxvYWQoeyBwYXJhbXMgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IG9uQ2hhbmdlRm4gPSB0aGlzLnByb3BzLm9uQ2hhbmdlO1xyXG4gICAgLy8g55So5oi35Lyg5LqGb25DaGFuZ2Xkv53nlZnnlKjmiLfoh6rkuLvlpITnkIbooajmoLzlj5jljJbnmoTmnYPliptcclxuICAgIGlmIChvbkNoYW5nZUZuKSB7XHJcbiAgICAgIHV0aWxzLmNhbGxiYWNrKG9uQ2hhbmdlRm4sIHRoaXMsIFtwYWdpbmF0aW9uLCBmaWx0ZXJzLCBzb3J0ZXIsIGV4dHJhXSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wcm9wcy5hdXRvUGFnaW5hdGlvbikge1xyXG4gICAgICBoYW5kbGVQYWdpbmF0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W5pWw5o2u5qih5Z6L5a+56LGhXHJcbiAgICovXHJcbiAgZ2V0TW9kZWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5nZXRNb2RlbCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I+c5Y2V5pCc57Si6L+H5ruk5pi+56S6XHJcbiAgICogQHBhcmFtIHtTdHJpbmd9IHZhbFxyXG4gICAqL1xyXG4gIGhhbmRsZVNlYXJjaCh2YWwsIGZpZWxkT3B0aW9uLCBzZWFyY2hDb2xvcikge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlYXJjaFRleHQ6IHZhbCxcclxuICAgICAgZmllbGRPcHRpb246IGZpZWxkT3B0aW9uLFxyXG4gICAgICBzZWFyY2hDb2xvcjogc2VhcmNoQ29sb3IsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOaooeWdl+WIl+ihqOenu+WKqOaOkuW6j1xyXG4gICAqL1xyXG4gIG1vdmVSb3cgPSAoZHJhZ0luZGV4LCBob3ZlckluZGV4LCBkcmFnLCB0YXJnZXQpID0+IHtcclxuICAgIGNvbnN0IF90aGlzID0gdGhpcztcclxuICAgIGxldCBkcmFnTm9kZSA9IGRyYWcucmVjb3JkO1xyXG4gICAgbGV0IHRhcmdldE5vZGUgPSB0YXJnZXQucmVjb3JkO1xyXG4gICAgZHJhZ05vZGUubW92ZUFycmF5KGRyYWdOb2RlLCB0YXJnZXROb2RlKTtcclxuICAgIGxldCBpZHMgPSBkcmFnTm9kZS5wYXJlbnROb2RlLmdldENoaWxkTm9kZUlkcygpO1xyXG4gICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgaWQ6IGRyYWdOb2RlLmlkLFxyXG4gICAgICBwYXJlbnRJZDogZHJhZ05vZGUuYXR0cmlidXRlLnBhcmVudElkLFxyXG4gICAgICBpZHM6IGlkcyxcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMucHJvcHMubW92ZVJvdykge1xyXG4gICAgICB0aGlzLnByb3BzLm1vdmVSb3cocGFyYW1zKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3RvcmUucmVsb2FkKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgZmlsdGVyQ29sdW1uKGNoZWNrZWRWYWx1ZSkge1xyXG4gICAgY29uc3QgZmlsdGVyQ29sdW1ucyA9IHRoaXMucHJvcHMuY29sdW1ucy5tYXAoKGNvbDogQ29sdW1uVHlwZTx7fT4pID0+IHtcclxuICAgICAgY29uc3QgbmV3Q29sID0geyAuLi5jb2wgfSBhcyBDb2x1bW5UeXBlPHt9PiAmIHsgaW5pdFNob3c6IGJvb2xlYW4gfTtcclxuICAgICAgaWYgKGNoZWNrZWRWYWx1ZS5pbmNsdWRlcyhjb2wuZGF0YUluZGV4KSkge1xyXG4gICAgICAgIG5ld0NvbC5pbml0U2hvdyA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3Q29sLmluaXRTaG93ID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG5ld0NvbDtcclxuICAgIH0pO1xyXG4gICAgLy8gdGhpcy5zZXRTdGF0ZSh7IGNvbHVtbnM6IGZpbHRlckNvbHVtbnMgfSk7XHJcbiAgICBjb25zdCB7IHJlc2l6ZUNvbHVtbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmICghcmVzaXplQ29sdW1uKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBjb2x1bW5zOiBmaWx0ZXJDb2x1bW5zIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvbHM6IGZpbHRlckNvbHVtbnMgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRDb2x1bW5zKCkge1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIGNvbnN0IHsgY29sdW1ucyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgY29sdW1uczogY29sTGlzdHMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBkZWZhdWx0U2hvd0NvbHMgPSBjb2x1bW5zLmZpbHRlcigoY29scykgPT4gY29scy5pbml0U2hvdyAhPT0gZmFsc2UpO1xyXG4gICAgY29uc3QgY29udGVudCA9IChcclxuICAgICAgPENoZWNrYm94Lkdyb3VwXHJcbiAgICAgICAgb25DaGFuZ2U9e3RoaXMuZmlsdGVyQ29sdW1uLmJpbmQodGhpcyl9XHJcbiAgICAgICAgb3B0aW9ucz17Y29sTGlzdHMubWFwKFxyXG4gICAgICAgICAgKGNvbDogQ29sdW1uVHlwZTx7fT4pID0+XHJcbiAgICAgICAgICAgICh7XHJcbiAgICAgICAgICAgICAgbGFiZWw6IGNvbC50aXRsZSxcclxuICAgICAgICAgICAgICB2YWx1ZTogY29sLmRhdGFJbmRleCxcclxuICAgICAgICAgICAgfSBhcyBDaGVja2JveE9wdGlvblR5cGUpXHJcbiAgICAgICAgKX1cclxuICAgICAgICBkZWZhdWx0VmFsdWU9e2RlZmF1bHRTaG93Q29scy5tYXAoKGNvbCkgPT4gY29sLmRhdGFJbmRleCl9XHJcbiAgICAgID48L0NoZWNrYm94Lkdyb3VwPlxyXG4gICAgKTtcclxuICAgIGNvbnN0IGNvbHMgPSBkZWZhdWx0U2hvd0NvbHMubWFwKChjb2wpID0+IHtcclxuICAgICAgaWYgKGNvbC5lbGxpcHNpcyAmJiAhY29sLnJlbmRlcikge1xyXG4gICAgICAgIGNvbC5lbGxpcHNpcyA9IHtcclxuICAgICAgICAgIHNob3dUaXRsZTogZmFsc2UsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb2wucmVuZGVyID0gKHRleHQpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxUb29sdGlwIHBsYWNlbWVudD1cInRvcExlZnRcIiB0aXRsZT17dGV4dH0+XHJcbiAgICAgICAgICAgICAge3RleHR9XHJcbiAgICAgICAgICAgIDwvVG9vbHRpcD5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gY29sO1xyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgSWNvbkFjdGlvbjogQ29sdW1uVHlwZTx7fT4gPSB7XHJcbiAgICAgIHRpdGxlOiAoXHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInRoLWljb25cIl19IHJlZj17dGhpcy50aEljb25SZWZ9PlxyXG4gICAgICAgICAgPFBvcG92ZXJcclxuICAgICAgICAgICAgdGl0bGU9XCLpgInmi6nmmL7npLrnmoTliJdcIlxyXG4gICAgICAgICAgICBjb250ZW50PXtjb250ZW50fVxyXG4gICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21SaWdodFwiXHJcbiAgICAgICAgICAgIHRyaWdnZXI9XCJjbGlja1wiXHJcbiAgICAgICAgICAgIG92ZXJsYXlTdHlsZT17eyBtaW5XaWR0aDogNDEwLCBtYXhXaWR0aDogNDUwIH19XHJcbiAgICAgICAgICAgIGdldFBvcHVwQ29udGFpbmVyPXsoKSA9PiB0aGlzLnRoSWNvblJlZi5jdXJyZW50fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8QXBwc3RvcmVPdXRsaW5lZCBzaXplPXsyNH0gY2xhc3NOYW1lPXtzdHlsZXNbXCJhcHAtc3RvcmUtaWNvblwiXX0gLz5cclxuICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgKSxcclxuICAgICAgZGF0YUluZGV4OiBcImljb24tbWVudVwiLFxyXG4gICAgICBrZXk6IFwiaWNvbi1tZW51XCIsXHJcbiAgICAgIHdpZHRoOiA1MCxcclxuICAgICAgYWxpZ246IFwiY2VudGVyXCIsXHJcbiAgICAgIC8vIGZpeGVkOiBcInJpZ2h0XCIsXHJcbiAgICB9O1xyXG4gICAgaWYgKHRoaXMucHJvcHMuZmlsdGVyQ29sdW1uKSB7XHJcbiAgICAgIGNvbHMucHVzaChJY29uQWN0aW9uKTtcclxuICAgIH1cclxuICAgIGNvbHMubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICBpZiAoIWlzRW1wdHlPYmooaXRlbS5maWx0ZXJQcm9wcykpIHtcclxuICAgICAgICBsZXQgb2JqID0geyAuLi5pdGVtIH07XHJcbiAgICAgICAgY29uc3QgeyB0eXBlLCBwcm9wcywgc2VhcmNoS2V5IH0gPSBpdGVtLmZpbHRlclByb3BzO1xyXG4gICAgICAgIGxldCBEaXYgPSBudWxsO1xyXG4gICAgICAgIGxldCB0ZXh0ID0gaXRlbS50aXRsZTtcclxuICAgICAgICBEaXYgPSBnZXROb2RlKHR5cGUsIHsgLi4ucHJvcHMsIHBsYWNlaG9sZGVyOiBg5pCc57SiJHt0ZXh0fWAgfSk7XHJcbiAgICAgICAgb2JqID0ge1xyXG4gICAgICAgICAgZmlsdGVyRHJvcGRvd246ICh7XHJcbiAgICAgICAgICAgIHNldFNlbGVjdGVkS2V5cyxcclxuICAgICAgICAgICAgc2VsZWN0ZWRLZXlzLFxyXG4gICAgICAgICAgICBjb25maXJtLFxyXG4gICAgICAgICAgICBjbGVhckZpbHRlcnMsXHJcbiAgICAgICAgICB9KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3N0eWxlc1tcInNlYXJjaFwiXX0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wic3BhY2VcIl19PntEaXZ9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8U3BhY2U+XHJcbiAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29uZmlybSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBmaWx0ZXJQYXJhbXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgICAgICBsZXQgbmV3RmlsdGVyUGFyYW1zID0geyAuLi5maWx0ZXJQYXJhbXMgfTtcclxuICAgICAgICAgICAgICAgICAgICAgIGxldCBrZXkgPSBzZWFyY2hLZXkgfHwgaXRlbS5kYXRhSW5kZXg7XHJcbiAgICAgICAgICAgICAgICAgICAgICBuZXdGaWx0ZXJQYXJhbXNba2V5XSA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGVTZWFyY2hSZWYuY3VycmVudD8uZ2V0VmFsdWUoKTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJQYXJhbXM6IHsgLi4ubmV3RmlsdGVyUGFyYW1zIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUubG9hZCh7IHBhcmFtczogeyAuLi5uZXdGaWx0ZXJQYXJhbXMgfSB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJzbWFsbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtzdHlsZXNbXCJidXR0b25cIl19XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICDmn6Xor6JcclxuICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L1NwYWNlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGZpbHRlckljb246ICgpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIDxTZWFyY2hPdXRsaW5lZCAvPjtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAuLi5vYmosXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb2xzW2luZGV4XSA9IG9iajtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gY29scztcclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGxldCBfdGhpcyA9IHRoaXMsXHJcbiAgICAgIHtcclxuICAgICAgICBsb2FkaW5nLFxyXG4gICAgICAgIGRhdGFTb3VyY2UsXHJcbiAgICAgICAgcGFnaW5hdGlvbiA9IHt9LFxyXG4gICAgICAgIHNlYXJjaFRleHQsXHJcbiAgICAgICAgZmllbGRPcHRpb24sXHJcbiAgICAgICAgc2VhcmNoQ29sb3IsXHJcbiAgICAgICAgdGFibGVTaXplLFxyXG4gICAgICB9ID0gdGhpcy5zdGF0ZSxcclxuICAgICAgcHJvcHMgPSB1dGlscy5vbWl0KFxyXG4gICAgICAgIHRoaXMucHJvcHMsXHJcbiAgICAgICAgW1wic3RvcmVcIiwgXCJvbkNoYW5nZVwiLCBcImNvbHVtbnNcIiwgXCJyZXNldENvbHVtblwiXSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICByb3dLZXk6IFwiaWRcIixcclxuICAgICAgICAgIGNsaWNrQ2hhbmdlQ29sb3I6IGZhbHNlLFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIGlmIChwcm9wcy5wYWdpbmF0aW9uICE9PSBmYWxzZSkge1xyXG4gICAgICBwcm9wcy5wYWdpbmF0aW9uID0ge1xyXG4gICAgICAgIHBvc2l0aW9uOiBbXCJib3R0b21SaWdodFwiXSxcclxuICAgICAgICBzaG93U2l6ZUNoYW5nZXI6IHRydWUsXHJcbiAgICAgICAgc2hvd1F1aWNrSnVtcGVyOiB0cnVlLFxyXG4gICAgICAgIC4uLnByb3BzLnBhZ2luYXRpb24sXHJcbiAgICAgICAgLi4ucGFnaW5hdGlvbixcclxuICAgICAgfTtcclxuICAgICAgaWYgKHByb3BzLnNob3dUb3RhbCA9PSB0cnVlKSB7XHJcbiAgICAgICAgcHJvcHMucGFnaW5hdGlvbi5zaG93VG90YWwgPSBmdW5jdGlvbiAodG90YWwsIFtmcm9tLCB0b10pIHtcclxuICAgICAgICAgIC8vIHJldHVybiBcIuaYvuekuiBcIiArIGZyb20gKyBcIiAtIFwiICsgdG8gKyBcIuadoe+8jOWFsSBcIiArIHRvdGFsICsgXCIg5p2hXCI7XHJcbiAgICAgICAgICByZXR1cm4gXCLlhbEgXCIgKyB0b3RhbCArIFwiIOadoVwiO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcm9wcy5vbkNoYW5nZSA9IGZ1bmN0aW9uIChwYWdpbmF0aW9uLCBmaWx0ZXJzLCBzb3J0ZXIsIGV4dHJhKSB7XHJcbiAgICAgIF90aGlzLm9uQ2hhbmdlKHBhZ2luYXRpb24sIGZpbHRlcnMsIHNvcnRlciwgZXh0cmEpO1xyXG4gICAgfTtcclxuICAgIGlmIChwcm9wcy5jbGlja0NoYW5nZUNvbG9yKSB7XHJcbiAgICAgIGNvbnN0IG9uUm93Rm4gPSBwcm9wcy5vblJvdztcclxuICAgICAgcHJvcHMub25Sb3cgPSBmdW5jdGlvbiAocmVjb3JkLCBpbmRleCkge1xyXG4gICAgICAgIHZhciBjdXN0b20gPSBvblJvd0ZuID8gb25Sb3dGbihyZWNvcmQsIGluZGV4KSA6IHt9O1xyXG4gICAgICAgIGNvbnN0IG9uQ2xpY2tGbiA9IGN1c3RvbS5vbkNsaWNrO1xyXG4gICAgICAgIGN1c3RvbS5vbkNsaWNrID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgIGFjdGl2ZUluZGV4OiBpbmRleCwgLy/ojrflj5bngrnlh7vooYznmoTntKLlvJVcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdXRpbHMuY2FsbGJhY2sob25DbGlja0ZuLCBfdGhpcywgW2V2ZW50XSk7XHJcbiAgICAgICAgfTtcclxuICAgICAgICByZXR1cm4gY3VzdG9tO1xyXG4gICAgICB9O1xyXG4gICAgICBwcm9wcy5yb3dDbGFzc05hbWUgPSBmdW5jdGlvbiAocmVjb3JkLCBpbmRleCkge1xyXG4gICAgICAgIHJldHVybiBpbmRleCA9PT0gX3RoaXMuc3RhdGUuYWN0aXZlSW5kZXhcclxuICAgICAgICAgID8gYCR7c3R5bGVzLmNsaWNrUm93U3R5bGV9YFxyXG4gICAgICAgICAgOiBcIlwiO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgbGV0IG5ld0RhdGFTb3VyY2UgPSBbXTtcclxuICAgIGlmIChzZWFyY2hUZXh0KSB7XHJcbiAgICAgIGNvbnN0IGRhdGEgPSB0cmVlVXRpbHMuZ2V0U2VhcmNoTWVudURhdGFzKFxyXG4gICAgICAgIHRoaXMsXHJcbiAgICAgICAgc2VhcmNoVGV4dCxcclxuICAgICAgICBmaWVsZE9wdGlvbixcclxuICAgICAgICBzZWFyY2hDb2xvclxyXG4gICAgICApO1xyXG4gICAgICBuZXdEYXRhU291cmNlID0gZGF0YS50cmVlRGF0YXM7XHJcbiAgICAgIHByb3BzLmV4cGFuZGVkUm93S2V5cyA9IGRhdGEub3BlbktleXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdEYXRhU291cmNlID0gZGF0YVNvdXJjZTtcclxuICAgIH1cclxuICAgIHByb3BzLnN0b3JlID0gcHJvcHMuc3RvcmUgfHwge307XHJcbiAgICBwcm9wcy5zdG9yZS5hdXRvTG9hZCA9IHByb3BzLnN0b3JlLmF1dG9Mb2FkID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZTtcclxuICAgIGNvbnN0IHsgZHJhZ2FibGUgfSA9IF90aGlzLnByb3BzO1xyXG4gICAgY29uc3QgZHJhZ2FibGVQcm9wcyA9XHJcbiAgICAgIGRyYWdhYmxlID09PSB0cnVlXHJcbiAgICAgICAgPyB7XHJcbiAgICAgICAgICAgIGNvbXBvbmVudHM6IEJvZHlSb3dDb21wb25lbnQsXHJcbiAgICAgICAgICAgIG9uUm93OiAocmVjb3JkLCBpbmRleCkgPT4gKHtcclxuICAgICAgICAgICAgICBpbmRleCxcclxuICAgICAgICAgICAgICByZWNvcmQsXHJcbiAgICAgICAgICAgICAgbW92ZVJvdzogdGhpcy5tb3ZlUm93LFxyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgIH1cclxuICAgICAgICA6IHt9O1xyXG4gICAgbGV0IHsgcmVzaXplQ29sdW1uIH0gPSB0aGlzLnByb3BzO1xyXG5cclxuICAgIGNvbnN0IHJlc2l6ZVByb3BzID1cclxuICAgICAgcmVzaXplQ29sdW1uID09PSB0cnVlID8geyBjb21wb25lbnRzOiB0aGlzLmNvbXBvbmVudHMgfSA6IG51bGw7XHJcblxyXG4gICAgY29uc3Qgc2l6ZUl0ZW0gPSBbXHJcbiAgICAgIHsgdGl0bGU6IFwi5a695p2+XCIsIGtleTogXCJkZWZhdWx0XCIgfSxcclxuICAgICAgeyB0aXRsZTogXCLkuK3nrYlcIiwga2V5OiBcIm1pZGRsZVwiIH0sXHJcbiAgICAgIHsgdGl0bGU6IFwi57Sn5YeRXCIsIGtleTogXCJzbWFsbFwiIH0sXHJcbiAgICBdO1xyXG4gICAgY29uc3Qgc29ydEl0ZW0gPSBbXHJcbiAgICAgIHsgdGl0bGU6IFwi5Y2V5a2X5q615o6S5bqPXCIsIGtleTogXCJzaWdsZVwiIH0sXHJcbiAgICAgIHsgdGl0bGU6IFwi5aSa5a2X5q615o6S5bqPXCIsIGtleTogXCJtdWx0aXBsZVwiIH0sXHJcbiAgICBdO1xyXG4gICAgY29uc3Qgc29ydENvbnRlbnQgPSAoXHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPGRpdj7lvZPliY3mjpLluo88L2Rpdj5cclxuICAgICAgICB7c29ydEl0ZW0ubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGtleT17aXRlbS5rZXl9XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpdGVtLmtleVwiLCBpdGVtLmtleSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgdGFibGVTaXplOiBpdGVtLmtleSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt0YWJsZVNpemUgPT0gaXRlbS5rZXkgJiYgPENoZWNrT3V0bGluZWQgLz59PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAge2l0ZW0udGl0bGV9XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICAgIGNvbnN0IHNpemVDb250ZW50ID0gKFxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxkaXY+6KGo5qC85a+G5bqmPC9kaXY+XHJcbiAgICAgICAge3NpemVJdGVtLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBrZXk9e2l0ZW0ua2V5fVxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiaXRlbS5rZXlcIiwgaXRlbS5rZXkpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgIHRhYmxlU2l6ZTogaXRlbS5rZXksXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57dGFibGVTaXplID09IGl0ZW0ua2V5ICYmIDxDaGVja091dGxpbmVkIC8+fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIHtpdGVtLnRpdGxlfVxyXG4gICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0pfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgICBjb25zdCBEZWZhdWx0VGFibGUgPSAoXHJcbiAgICAgIDw+XHJcbiAgICAgICAgey8qIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogXCJmbGV4XCIgfX0+XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8UG9wb3ZlciBwbGFjZW1lbnQ9XCJib3R0b21cIiBjb250ZW50PXtzaXplQ29udGVudH0gdHJpZ2dlcj1cImNsaWNrXCI+XHJcbiAgICAgICAgICAgICAgPENvbHVtbkhlaWdodE91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPFBvcG92ZXIgcGxhY2VtZW50PVwiYm90dG9tXCIgY29udGVudD17c29ydENvbnRlbnR9IHRyaWdnZXI9XCJjbGlja1wiPlxyXG4gICAgICAgICAgICA8U29ydEFzY2VuZGluZ091dGxpbmVkIC8+XHJcbiAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgPC9kaXY+ICovfVxyXG4gICAgICAgIDxUYWJsZVxyXG4gICAgICAgICAgY2hpbGRyZW5Db2x1bW5OYW1lPVwiY2hpbGROb2Rlc1wiXHJcbiAgICAgICAgICBkYXRhU291cmNlPXtuZXdEYXRhU291cmNlfVxyXG4gICAgICAgICAgY29sdW1ucz17dGhpcy5nZXRDb2x1bW5zKCl9XHJcbiAgICAgICAgICBsb2FkaW5nPXtsb2FkaW5nfVxyXG4gICAgICAgICAgLy8gY2xhc3NOYW1lPXtzdHlsZXNbXCJuc2MtdGFibGVcIl19XHJcbiAgICAgICAgICBsb2NhbGU9e3sgZW1wdHlUZXh0OiA8Tm9EYXRhIC8+IH19XHJcbiAgICAgICAgICBzY3JvbGw9e3sgeDogdHJ1ZSB9fVxyXG4gICAgICAgICAgc2l6ZT17dGFibGVTaXplfVxyXG4gICAgICAgICAgey4uLnJlc2l6ZVByb3BzfVxyXG4gICAgICAgICAgey4uLnByb3BzfVxyXG4gICAgICAgICAgey4uLmRyYWdhYmxlUHJvcHN9XHJcbiAgICAgICAgLz5cclxuICAgICAgPC8+XHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiBkcmFnYWJsZSA9PT0gdHJ1ZSA/IChcclxuICAgICAgPERuZFByb3ZpZGVyIGJhY2tlbmQ9e0hUTUw1QmFja2VuZH0+e0RlZmF1bHRUYWJsZX08L0RuZFByb3ZpZGVyPlxyXG4gICAgKSA6IChcclxuICAgICAgRGVmYXVsdFRhYmxlXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQgd2l0aFpoTG9jYWxlKE5TQ1RhYmxlKTtcclxuIl19
|
|
756
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21wb25lbnRzL3RhYmxlL2luZGV4LnRzeCJdLCJuYW1lcyI6WyJBcHBzdG9yZU91dGxpbmVkIiwiQ2hlY2tPdXRsaW5lZCIsIlNlYXJjaE91dGxpbmVkIiwiaXNFbXB0eU9iaiIsIlN0b3JlIiwiUGFnZVN0b3JlIiwidXRpbHMiLCJSZWFjdCIsIkRuZFByb3ZpZGVyIiwiQm9keVJvdyIsIkRuZENvbnRleHRUeXBlIiwiSUJvZHlSb3dQcm9wcyIsInRyZWVVdGlscyIsInN0eWxlcyIsIkJvZHlSb3dDb21wb25lbnQiLCJIVE1MNUJhY2tlbmQiLCJ3aXRoWmhMb2NhbGUiLCJOb0RhdGEiLCJSZXNpemFibGUiLCJnZXROb2RlIiwiUmVzaXplYWJsZVRpdGxlIiwicHJvcHMiLCJvblJlc2l6ZSIsIndpZHRoIiwicmVzdFByb3BzIiwiZW5hYmxlVXNlclNlbGVjdEhhY2siLCJOU0NUYWJsZSIsImNyZWF0ZVJlZiIsImRhdGFTb3VyY2UiLCJjb2x1bW5zIiwibG9hZGluZyIsInBhZ2luYXRpb24iLCJhY3RpdmVJbmRleCIsInNlYXJjaFRleHQiLCJmaWVsZE9wdGlvbiIsInNlYXJjaENvbG9yIiwiY29scyIsInNvcnRzIiwiZmlsdGVyUGFyYW1zIiwidGFibGVTaXplIiwic29ydFR5cGUiLCJvbkJlZm9yZUxvYWQiLCJsb2FkIiwiaGVhZGVyIiwiY2VsbCIsImluZGV4IiwiZSIsInNpemUiLCJzdGF0ZSIsIm5leHRDb2x1bW5zIiwic2V0U3RhdGUiLCJkcmFnSW5kZXgiLCJob3ZlckluZGV4IiwiZHJhZyIsInRhcmdldCIsIl90aGlzIiwiZHJhZ05vZGUiLCJyZWNvcmQiLCJ0YXJnZXROb2RlIiwibW92ZUFycmF5IiwiaWRzIiwicGFyZW50Tm9kZSIsImdldENoaWxkTm9kZUlkcyIsInBhcmFtcyIsImlkIiwicGFyZW50SWQiLCJhdHRyaWJ1dGUiLCJtb3ZlUm93Iiwic3RvcmUiLCJyZWxvYWQiLCJsaXN0ZW5lcnMiLCJsaXN0ZW5lcnNQcm9wcyIsInJlc3RTdG9yZSIsInN0b3JlUHJvcHMiLCJtb2RlbCIsImNvbXBvbmVudCIsIm9wdGlvbnMiLCJjYWxsYmFjayIsImRhdGFDaGFuZ2VkIiwiZGF0YSIsIm1vZGVsRGF0YSIsInBhZ2luZyIsImdldFBhZ2luYXRpb24iLCJvbkVycm9yTG9hZCIsImVyciIsInJlc3BvbnNlIiwiYXV0b0xvYWQiLCJPYmplY3QiLCJhc3NpZ24iLCJjdXJyZW50IiwicmVzaXplQ29sdW1uIiwic2V0RGF0YSIsInByZXZQcm9wcyIsInByZVN0YXRlIiwicmVzZXRDb2x1bW4iLCJuZXdDb2xzIiwiY29sc3MiLCJtYXAiLCJjb2wiLCJ0ZW1wIiwib25IZWFkZXJDZWxsIiwiY29sdW1uIiwiaGFuZGxlUmVzaXplIiwicHVzaCIsImZpbHRlcnMiLCJzb3J0ZXIiLCJleHRyYSIsImNvbnNvbGUiLCJsb2ciLCJhdXRvT25DaGFuZ2UiLCJhdXRvU29ydCIsImF1dG9QYWdpbmF0aW9uIiwib25DaGFuZ2UiLCJoYW5kbGVQYWdpbmF0aW9uIiwiZ2V0UGFnaW5hdGlvbkJ5U3RvcmUiLCJwIiwiY3VycmVudEtleSIsInBhZ2VTaXplS2V5IiwicGFnZVNpemUiLCJvcmRlciIsImFzY3MiLCJzb3J0RmllbGQiLCJmaWVsZCIsImRlc2NzIiwib25DaGFuZ2VGbiIsImdldE1vZGVsIiwidmFsIiwiY2hlY2tlZFZhbHVlIiwiZmlsdGVyQ29sdW1ucyIsIm5ld0NvbCIsImluY2x1ZGVzIiwiZGF0YUluZGV4IiwiaW5pdFNob3ciLCJjb2xMaXN0cyIsImRlZmF1bHRTaG93Q29scyIsImZpbHRlciIsImNvbnRlbnQiLCJmaWx0ZXJDb2x1bW4iLCJiaW5kIiwibGFiZWwiLCJ0aXRsZSIsInZhbHVlIiwiZGlzYWJsZWQiLCJlbGxpcHNpcyIsInJlbmRlciIsInNob3dUaXRsZSIsInRleHQiLCJJY29uQWN0aW9uIiwidGhJY29uUmVmIiwibWluV2lkdGgiLCJtYXhXaWR0aCIsImtleSIsImFsaWduIiwiaXRlbSIsImZpbHRlclByb3BzIiwib2JqIiwidHlwZSIsInNlYXJjaEtleSIsIkRpdiIsInBsYWNlaG9sZGVyIiwiZmlsdGVyRHJvcGRvd24iLCJzZXRTZWxlY3RlZEtleXMiLCJzZWxlY3RlZEtleXMiLCJjb25maXJtIiwiY2xlYXJGaWx0ZXJzIiwibmV3RmlsdGVyUGFyYW1zIiwidGFibGVTZWFyY2hSZWYiLCJnZXRWYWx1ZSIsImZpbHRlckljb24iLCJvbWl0Iiwicm93S2V5IiwiY2xpY2tDaGFuZ2VDb2xvciIsInBvc2l0aW9uIiwic2hvd1NpemVDaGFuZ2VyIiwic2hvd1F1aWNrSnVtcGVyIiwic2hvd1RvdGFsIiwidG90YWwiLCJmcm9tIiwidG8iLCJvblJvd0ZuIiwib25Sb3ciLCJjdXN0b20iLCJvbkNsaWNrRm4iLCJvbkNsaWNrIiwiZXZlbnQiLCJyb3dDbGFzc05hbWUiLCJjbGlja1Jvd1N0eWxlIiwibmV3RGF0YVNvdXJjZSIsImdldFNlYXJjaE1lbnVEYXRhcyIsInRyZWVEYXRhcyIsImV4cGFuZGVkUm93S2V5cyIsIm9wZW5LZXlzIiwiZHJhZ2FibGUiLCJkcmFnYWJsZVByb3BzIiwiY29tcG9uZW50cyIsInJlc2l6ZVByb3BzIiwic2l6ZUl0ZW0iLCJzb3J0SXRlbSIsInNvcnRDb250ZW50Iiwic2l6ZUNvbnRlbnQiLCJEZWZhdWx0VGFibGUiLCJnZXRDb2x1bW5zIiwiZW1wdHlUZXh0IiwieCIsIkNvbXBvbmVudCIsImRpc2FibGVDb2x1bW5zIiwiZHJhZ1VybCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQ0VBLGdCQURGLEVBRUVDLGFBRkYsRUFJRUMsY0FKRixRQU1PLG1CQU5QO0FBT0EsU0FBU0MsVUFBVCxRQUEyQixtQkFBM0I7QUFDQSxPQUFPQyxLQUFQLElBQWdCQyxTQUFoQixRQUE2QyxhQUE3QztBQUNBLFNBQVNDLEtBQVQs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QVdNNEssYUFYTixFQVhGLENBREY7QUE0QkEsYUFBT0QsUUFBUSxLQUFLLElBQWIsZ0JBQ0wsb0JBQUMsV0FBRDtBQUFhLFFBQUEsT0FBTyxFQUFFakw7QUFBdEIsU0FBcUN5TCxZQUFyQyxDQURLLEdBR0xBLFlBSEY7QUFLRDs7OztFQXprQm9Cak0sS0FBSyxDQUFDcU0sUzs7Z0JBQXZCbEwsUSxrQkFDa0I7QUFDcEJtTCxFQUFBQSxjQUFjLEVBQUUsRUFESTtBQUVwQmIsRUFBQUEsUUFBUSxFQUFFLEtBRlU7QUFHcEJqQixFQUFBQSxTQUFTLEVBQUUsSUFIUztBQUlwQnRDLEVBQUFBLFlBQVksRUFBRSxLQUpNO0FBS3BCcUUsRUFBQUEsT0FBTyxFQUFFLEVBTFc7QUFNcEIvRixFQUFBQSxjQUFjLEVBQUUsSUFOSTtBQU9wQkQsRUFBQUEsUUFBUSxFQUFFLElBUFU7QUFRcEJELEVBQUFBLFlBQVksRUFBRSxJQVJNO0FBU3BCbkIsRUFBQUEsWUFBWSxFQUFFO0FBVE0sQzs7QUEya0J4QixlQUFlMUUsWUFBWSxDQUFDVSxRQUFELENBQTNCIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogQERlc2NyaXB0dGlvbjpcclxuICogQHZlcnNpb246XHJcbiAqIEBBdXRob3I6IHJ4emh1XHJcbiAqIEBEYXRlOiAyMDIxLTAzLTIzIDA4OjQ2OjIwXHJcbiAqIEBMYXN0RWRpdG9yczogcnh6aHVcclxuICogQExhc3RFZGl0VGltZTogMjAyMS0wMy0yMyAxMDozMDo0MlxyXG4gKi9cclxuaW1wb3J0IHtcclxuICBBcHBzdG9yZU91dGxpbmVkLFxyXG4gIENoZWNrT3V0bGluZWQsXHJcbiAgQ29sdW1uSGVpZ2h0T3V0bGluZWQsXHJcbiAgU2VhcmNoT3V0bGluZWQsXHJcbiAgU29ydEFzY2VuZGluZ091dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgeyBpc0VtcHR5T2JqIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCBTdG9yZSwgeyBQYWdlU3RvcmUsIFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IHsgdXRpbHMgfSBmcm9tIFwiQGJqLW5zYy9tc24vbGliL3V0aWxzXCI7XHJcbmltcG9ydCB7XHJcbiAgQnV0dG9uLFxyXG4gIENoZWNrYm94LFxyXG4gIENoZWNrYm94T3B0aW9uVHlwZSxcclxuICBNZW51LFxyXG4gIFBvcG92ZXIsXHJcbiAgU3BhY2UsXHJcbiAgVGFibGUsXHJcbiAgVGFibGVQcm9wcyxcclxuICBUb29sdGlwLFxyXG59IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCB7IENvbHVtblR5cGUsIFRhYmxlUGFnaW5hdGlvbkNvbmZpZyB9IGZyb20gXCJhbnRkL2xpYi90YWJsZVwiO1xyXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgRG5kUHJvdmlkZXIgfSBmcm9tIFwicmVhY3QtZG5kXCI7XHJcbmltcG9ydCBCb2R5Um93LCB7IERuZENvbnRleHRUeXBlLCBJQm9keVJvd1Byb3BzIH0gZnJvbSBcIi4uL2NvbW1vbi9Cb2R5Um93XCI7XHJcbmltcG9ydCB0cmVlVXRpbHMgZnJvbSBcIi4uL3RyZWVVdGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuY29uc3QgeyBCb2R5Um93Q29tcG9uZW50LCBIVE1MNUJhY2tlbmQgfSA9IEJvZHlSb3c7XHJcbmltcG9ydCB3aXRoWmhMb2NhbGUgZnJvbSBcIi4uL2NvbW1vbi93aXRoWmhMb2NhbGVcIjtcclxuaW1wb3J0IHsgSWNvbiwgTm9EYXRhLCBJbnB1dCwgU2VsZWN0IH0gZnJvbSBcIi4uXCI7XHJcbmltcG9ydCB7IFJlc2l6YWJsZSB9IGZyb20gXCJyZWFjdC1yZXNpemFibGVcIjtcclxuaW1wb3J0IFwiLi9yZXNpemUubGVzc1wiO1xyXG5pbXBvcnQgeyBnZXROb2RlIH0gZnJvbSBcIi4uL3V0aWxzXCI7XHJcblxyXG5pbnRlcmZhY2UgSURyYWdQYXJhbXMge1xyXG4gIGlkOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgaWRzOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+O1xyXG4gIHBhcmVudElkOiBzdHJpbmcgfCBudW1iZXI7XHJcbn1cclxuLy8gaW50ZXJmYWNlIFN0b3JlUHJvcHMge31cclxuXHJcbmV4cG9ydCB0eXBlIFN0b3JlVHlwZSA9IFwiUGFnZVN0b3JlXCIgfCBcIlRyZWVTdG9yZVwiIHwgXCJCYXNlU3RvcmVcIjtcclxuXHJcbmludGVyZmFjZSBOU0NUYWJsZVBhZ2luYXRpb24gZXh0ZW5kcyBUYWJsZVBhZ2luYXRpb25Db25maWcge1xyXG4gIHRvdGFsS2V5Pzogc3RyaW5nO1xyXG4gIHBhZ2VTaXplS2V5Pzogc3RyaW5nO1xyXG4gIGN1cnJlbnRLZXk/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmludGVyZmFjZSBOU0NUYWJsZVByb3BzIGV4dGVuZHMgVGFibGVQcm9wczxhbnk+IHtcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgc2hvd1RvdGFsPzogYm9vbGVhbjsgLy8g5piv5ZCm5pi+56S65oC75p2h5pWw5L+h5oGv77yM6buY6K6kdHJ1ZVxyXG4gIGRpc2FibGVDb2x1bW5zPzogc3RyaW5nW107IC8vIOS4jeWPr+makOiXj+W/hemhu+aYvuekuueahOWIl1xyXG4gIGRyYWdhYmxlPzogYm9vbGVhbjsgLy8g5piv5ZCm5Y+v5ouW5YqoLCDpu5jorqRmYWxzZVxyXG4gIGZpbHRlckNvbHVtbj86IGJvb2xlYW47IC8vIOaYr+WQpuaUr+aMgei/h+a7pOaYvuekuuihqOagvOWIlywg6buY6K6kdHJ1ZVxyXG4gIG1vdmVSb3c/OiAocGFyYW1zOiBJRHJhZ1BhcmFtcykgPT4gdm9pZDsgLy8g5ouW5ou95a6M5oiQ5ZCO55qE5Zue6LCDXHJcbiAgZHJhZ1VybD86IHN0cmluZzsgLy8g5L+d5a2Y5ouW5ou95o6S5bqP55qE5o6l5Y+jXHJcbiAgcGFnaW5hdGlvbj86IGZhbHNlIHwgTlNDVGFibGVQYWdpbmF0aW9uO1xyXG4gIGF1dG9QYWdpbmF0aW9uPzogYm9vbGVhbjsgLy8g57uE5Lu25piv5ZCm6Ieq5Yqo5aSE55CG5YiG6aG1XHJcbiAgYXV0b1NvcnQ/OiBib29sZWFuOyAvL+e7hOS7tuaYr+WQpuiHquWKqOWkhOeQhuaOkuW6j1xyXG4gIGF1dG9PbkNoYW5nZT86IGJvb2xlYW47IC8vIOe7hOS7tuaYr+WQpuiHquWKqG9uQ2hhbmdlLCBmYWxzZeWImeS4jeWBmuS7u+S9leWkhOeQhuWFqOmDqOS6pOe7meiwg+eUqOaWuVxyXG4gIHJlc2l6ZUNvbHVtbj86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIElOU0NUYWJsZVByb3BzID0gdHlwZW9mIE5TQ1RhYmxlLmRlZmF1bHRQcm9wcyAmIE5TQ1RhYmxlUHJvcHM7XHJcbmV4cG9ydCB7IERuZENvbnRleHRUeXBlLCBJQm9keVJvd1Byb3BzIH07XHJcblxyXG5jb25zdCBSZXNpemVhYmxlVGl0bGUgPSAocHJvcHM6IGFueSkgPT4ge1xyXG4gIGNvbnN0IHsgb25SZXNpemUsIHdpZHRoLCAuLi5yZXN0UHJvcHMgfSA9IHByb3BzO1xyXG4gIHJldHVybiAoXHJcbiAgICA8UmVzaXphYmxlXHJcbiAgICAgIHdpZHRoPXt3aWR0aCB8fCAxNTB9XHJcbiAgICAgIGhlaWdodD17MH1cclxuICAgICAgb25SZXNpemU9e29uUmVzaXplfVxyXG4gICAgICBkcmFnZ2FibGVPcHRzPXt7IGVuYWJsZVVzZXJTZWxlY3RIYWNrOiBmYWxzZSB9fVxyXG4gICAgPlxyXG4gICAgICA8dGggey4uLnJlc3RQcm9wc30gLz5cclxuICAgIDwvUmVzaXphYmxlPlxyXG4gICk7XHJcbn07XHJcbmNsYXNzIE5TQ1RhYmxlIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PElOU0NUYWJsZVByb3BzPiB7XHJcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcclxuICAgIGRpc2FibGVDb2x1bW5zOiBbXSxcclxuICAgIGRyYWdhYmxlOiBmYWxzZSxcclxuICAgIHNob3dUb3RhbDogdHJ1ZSxcclxuICAgIGZpbHRlckNvbHVtbjogZmFsc2UsXHJcbiAgICBkcmFnVXJsOiBcIlwiLFxyXG4gICAgYXV0b1BhZ2luYXRpb246IHRydWUsXHJcbiAgICBhdXRvU29ydDogdHJ1ZSxcclxuICAgIGF1dG9PbkNoYW5nZTogdHJ1ZSxcclxuICAgIHJlc2l6ZUNvbHVtbjogdHJ1ZSxcclxuICB9O1xyXG5cclxuICBzdG9yZSA9IHt9IGFzIFN0b3JlUHJvcHM7XHJcbiAgdGhJY29uUmVmID0gUmVhY3QuY3JlYXRlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xyXG4gIHRhYmxlU2VhcmNoUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBzdGF0ZSA9IHtcclxuICAgIGRhdGFTb3VyY2U6IFtdLFxyXG4gICAgY29sdW1uczogW10sXHJcbiAgICBsb2FkaW5nOiBmYWxzZSxcclxuICAgIHBhZ2luYXRpb246IHt9LFxyXG4gICAgYWN0aXZlSW5kZXg6IC0xLFxyXG4gICAgLy/mkJzntKLmlofmnKxcclxuICAgIHNlYXJjaFRleHQ6IG51bGwsXHJcbiAgICBmaWVsZE9wdGlvbjogbnVsbCxcclxuICAgIHNlYXJjaENvbG9yOiBudWxsLFxyXG4gICAgY29sczogW10sXHJcbiAgICBzb3J0czogW10sXHJcbiAgICBmaWx0ZXJQYXJhbXM6IHt9LFxyXG4gICAgdGFibGVTaXplOiBcIm1pZGRsZVwiLFxyXG4gICAgc29ydFR5cGU6IFwic2lnbGVcIixcclxuICB9O1xyXG5cclxuICBsaXN0ZW5lcnMgPSB7XHJcbiAgICBvbkJlZm9yZUxvYWQ6IG51bGwsXHJcbiAgICBsb2FkOiBudWxsLFxyXG4gIH07XHJcblxyXG4gIGNvbXBvbmVudHMgPSB7XHJcbiAgICBoZWFkZXI6IHtcclxuICAgICAgY2VsbDogUmVzaXplYWJsZVRpdGxlLFxyXG4gICAgfSxcclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgaWYgKHByb3BzLnN0b3JlIGluc3RhbmNlb2YgU3RvcmUpIHtcclxuICAgICAgdGhpcy5zdG9yZSA9IHByb3BzLnN0b3JlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgeyBsaXN0ZW5lcnM6IGxpc3RlbmVyc1Byb3BzID0ge30sIC4uLnJlc3RTdG9yZSB9ID1cclxuICAgICAgICBwcm9wcy5zdG9yZSB8fCB7fTtcclxuICAgICAgY29uc3Qgc3RvcmVQcm9wcyA9IHtcclxuICAgICAgICBtb2RlbDogXCJtb2RlbFwiLFxyXG4gICAgICAgIGNvbXBvbmVudDogdGhpcyxcclxuICAgICAgICBsaXN0ZW5lcnM6IHtcclxuICAgICAgICAgIG9uQmVmb3JlTG9hZDogKHN0b3JlLCBvcHRpb25zKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBsb2FkaW5nOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQcm9wcy5vbkJlZm9yZUxvYWQsIHRoaXMsIFtzdG9yZSwgb3B0aW9uc10pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGRhdGFDaGFuZ2VkOiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkgPT4ge1xyXG4gICAgICAgICAgICBsZXQgcGFnaW5nID0gISh0aGlzLnByb3BzLnBhZ2luYXRpb24gPT09IGZhbHNlKTtcclxuXHJcbiAgICAgICAgICAgIGlmIChwYWdpbmcgJiYgIXRoaXMucHJvcHMuZGF0YVNvdXJjZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgZGF0YVNvdXJjZTogbW9kZWxEYXRhLFxyXG4gICAgICAgICAgICAgICAgcGFnaW5hdGlvbjogc3RvcmUuZ2V0UGFnaW5hdGlvbigpLFxyXG4gICAgICAgICAgICAgICAgbG9hZGluZzogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICBhY3RpdmVJbmRleDogLTEsXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGRhdGFTb3VyY2U6IG1vZGVsRGF0YSwgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1Byb3BzLmRhdGFDaGFuZ2VkLCB0aGlzLCBbXHJcbiAgICAgICAgICAgICAgZGF0YSxcclxuICAgICAgICAgICAgICBtb2RlbERhdGEsXHJcbiAgICAgICAgICAgICAgc3RvcmUsXHJcbiAgICAgICAgICAgICAgcGFnaW5nLFxyXG4gICAgICAgICAgICBdKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBsb2FkOiAoZGF0YSwgbW9kZWxEYXRhLCBzdG9yZSkgPT4ge1xyXG4gICAgICAgICAgICB1dGlscy5jYWxsYmFjayhsaXN0ZW5lcnNQcm9wcy5sb2FkLCB0aGlzLCBbZGF0YSwgbW9kZWxEYXRhLCBzdG9yZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIG9uRXJyb3JMb2FkOiAoZXJyLCByZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgbG9hZGluZzogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgIHV0aWxzLmNhbGxiYWNrKGxpc3RlbmVyc1Byb3BzLm9uRXJyb3JMb2FkLCB0aGlzLCBbZXJyLCByZXNwb25zZV0pO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIGRhdGE6IHJlc3RTdG9yZS5kYXRhXHJcbiAgICAgICAgICA/IHJlc3RTdG9yZS5kYXRhXHJcbiAgICAgICAgICA6IHByb3BzLmRhdGFTb3VyY2VcclxuICAgICAgICAgID8gcHJvcHMuZGF0YVNvdXJjZVxyXG4gICAgICAgICAgOiBudWxsLFxyXG4gICAgICAgIC4uLnJlc3RTdG9yZSxcclxuICAgICAgICBhdXRvTG9hZDogcmVzdFN0b3JlLmF1dG9Mb2FkID09PSBmYWxzZSA/IGZhbHNlIDogdHJ1ZSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5zdG9yZSA9IG5ldyBQYWdlU3RvcmUoXHJcbiAgICAgICAgT2JqZWN0LmFzc2lnbih7fSwgc3RvcmVQcm9wcywge1xyXG4gICAgICAgICAgcGFnaW5hdGlvbjogeyBjdXJyZW50OiAxLCAuLi50aGlzLnByb3BzLnBhZ2luYXRpb24gfSxcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlUmVzaXplID1cclxuICAgIChpbmRleDogYW55KSA9PlxyXG4gICAgKGU6IGFueSwgeyBzaXplIH06IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNvbHMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICAgIGNvbnN0IG5leHRDb2x1bW5zID0gWy4uLmNvbHNdO1xyXG4gICAgICBuZXh0Q29sdW1uc1tpbmRleF0gPSB7XHJcbiAgICAgICAgLi4ubmV4dENvbHVtbnNbaW5kZXhdLFxyXG4gICAgICAgIHdpZHRoOiBzaXplLndpZHRoLFxyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICBjb2xzOiBuZXh0Q29sdW1ucyxcclxuICAgICAgfSk7XHJcbiAgICB9O1xyXG5cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgcmVzaXplQ29sdW1uIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKCFyZXNpemVDb2x1bW4pIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvbHVtbnM6IFsuLi50aGlzLnByb3BzLmNvbHVtbnNdIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvbHM6IFsuLi50aGlzLnByb3BzLmNvbHVtbnNdIH0pO1xyXG4gICAgICAvLyB0aGlzLnJlc2V0Q29sdW1uKCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBzdG9yZSA9IHRoaXMucHJvcHMuc3RvcmU7XHJcbiAgICBpZiAoc3RvcmUgJiYgc3RvcmUuZGF0YSkge1xyXG4gICAgICB0aGlzLnN0b3JlLnNldERhdGEoc3RvcmUuZGF0YSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzLCBwcmVTdGF0ZSkge1xyXG4gICAgY29uc3QgeyByZXNpemVDb2x1bW4gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAoIXJlc2l6ZUNvbHVtbikge1xyXG4gICAgICBpZiAodGhpcy5wcm9wcy5jb2x1bW5zICE9PSBwcmV2UHJvcHMuY29sdW1ucykge1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBjb2x1bW5zOiB0aGlzLnByb3BzLmNvbHVtbnMgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChwcmVTdGF0ZS5jb2xzICE9PSB0aGlzLnN0YXRlLmNvbHMpIHtcclxuICAgICAgICB0aGlzLnJlc2V0Q29sdW1uKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlc2V0Q29sdW1uKCkge1xyXG4gICAgY29uc3QgeyBjb2xzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgbmV3Q29sczogYW55ID0gW107XHJcbiAgICBsZXQgY29sc3MgPSBjb2xzIHx8IFtdO1xyXG4gICAgY29sc3MubWFwKChjb2w6IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdGVtcCA9IHtcclxuICAgICAgICAuLi5jb2wsXHJcbiAgICAgICAgb25IZWFkZXJDZWxsOiAoY29sdW1uOiB7IHdpZHRoOiBhbnkgfSkgPT4gKHtcclxuICAgICAgICAgIHdpZHRoOiBjb2x1bW4ud2lkdGgsXHJcbiAgICAgICAgICBvblJlc2l6ZTogdGhpcy5oYW5kbGVSZXNpemUoaW5kZXgpLFxyXG4gICAgICAgIH0pLFxyXG4gICAgICB9O1xyXG4gICAgICBuZXdDb2xzLnB1c2godGVtcCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBjb2x1bW5zOiBuZXdDb2xzLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiDmuIXpmaTpgInkuK3popzoibJcclxuICAgKi9cclxuICBjbGVhclNlbGVjdENvbG9yKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7IGFjdGl2ZUluZGV4OiAtMSB9KTtcclxuICAgIHJldHVybiB0aGlzO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGFnaW5hdGlvbkJ5U3RvcmUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5nZXRQYWdpbmF0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZShwYWdpbmF0aW9uLCBmaWx0ZXJzLCBzb3J0ZXIsIGV4dHJhKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcInNvcnRlclwiLCBzb3J0ZXIpO1xyXG4gICAgY29uc3QgeyBhdXRvT25DaGFuZ2UsIGF1dG9Tb3J0LCBhdXRvUGFnaW5hdGlvbiwgb25DaGFuZ2UgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zb2xlLmxvZyhcImF1dG9Tb3J0XCIsIGF1dG9Tb3J0KTtcclxuICAgIGNvbnNvbGUubG9nKFwiYXV0b1BhZ2luYXRpb25cIiwgYXV0b1BhZ2luYXRpb24pO1xyXG4gICAgY29uc3QgeyBmaWx0ZXJQYXJhbXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoYXV0b09uQ2hhbmdlID09PSBmYWxzZSkge1xyXG4gICAgICBvbkNoYW5nZSAmJiBvbkNoYW5nZShwYWdpbmF0aW9uLCBmaWx0ZXJzLCBzb3J0ZXIsIGV4dHJhKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgaGFuZGxlUGFnaW5hdGlvbiA9ICgpID0+IHtcclxuICAgICAgbGV0IHBhcmFtcyA9IHt9IGFzIHtcclxuICAgICAgICBzaXplPzogc3RyaW5nO1xyXG4gICAgICAgIHBhZ2VTaXplPzogc3RyaW5nO1xyXG4gICAgICAgIGFzY3M/OiBzdHJpbmc7XHJcbiAgICAgICAgZGVzY3M/OiBzdHJpbmc7XHJcbiAgICAgICAgW3Byb3BOYW1lOiBzdHJpbmddOiBzdHJpbmc7XHJcbiAgICAgIH07XHJcblxyXG4gICAgICBjb25zdCBwYWdpbmcgPSB0aGlzLmdldFBhZ2luYXRpb25CeVN0b3JlKCkgfHwge307XHJcblxyXG4gICAgICBpZiAoIWlzRW1wdHlPYmoocGFnaW5hdGlvbikpIHtcclxuICAgICAgICBjb25zdCBwID0ge1xyXG4gICAgICAgICAgW3BhZ2luZy5jdXJyZW50S2V5IHx8IFwiY3VycmVudFwiXTogcGFnaW5hdGlvbi5jdXJyZW50LFxyXG4gICAgICAgICAgW3BhZ2luZy5wYWdlU2l6ZUtleSB8fCBcInNpemVcIl06IHBhZ2luYXRpb24ucGFnZVNpemUsXHJcbiAgICAgICAgfTtcclxuICAgICAgICBPYmplY3QuYXNzaWduKHBhcmFtcywgcCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChhdXRvU29ydCA9PT0gdHJ1ZSAmJiAhaXNFbXB0eU9iaihzb3J0ZXIpKSB7XHJcbiAgICAgICAgaWYgKHNvcnRlci5vcmRlciA9PSBcImFzY2VuZFwiKSB7XHJcbiAgICAgICAgICBwYXJhbXMuYXNjcyA9XHJcbiAgICAgICAgICAgIHNvcnRlci5jb2x1bW4uc29ydEZpZWxkIHx8IHNvcnRlci5jb2x1bW4uZmllbGQgfHwgc29ydGVyLmZpZWxkO1xyXG4gICAgICAgICAgcGFyYW1zLmRlc2NzID0gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNvcnRlci5vcmRlciA9PSBcImRlc2NlbmRcIikge1xyXG4gICAgICAgICAgcGFyYW1zLmRlc2NzID1cclxuICAgICAgICAgICAgc29ydGVyLmNvbHVtbi5zb3J0RmllbGQgfHwgc29ydGVyLmNvbHVtbi5maWVsZCB8fCBzb3J0ZXIuZmllbGQ7XHJcbiAgICAgICAgICBwYXJhbXMuYXNjcyA9IFwiXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHBhcmFtcyA9IHsgLi4uZmlsdGVyUGFyYW1zLCAuLi5wYXJhbXMgfTtcclxuICAgICAgdGhpcy5zdG9yZS5yZWxvYWQoeyBwYXJhbXMgfSk7XHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IG9uQ2hhbmdlRm4gPSB0aGlzLnByb3BzLm9uQ2hhbmdlO1xyXG4gICAgLy8g55So5oi35Lyg5LqGb25DaGFuZ2Xkv53nlZnnlKjmiLfoh6rkuLvlpITnkIbooajmoLzlj5jljJbnmoTmnYPliptcclxuICAgIGlmIChvbkNoYW5nZUZuKSB7XHJcbiAgICAgIHV0aWxzLmNhbGxiYWNrKG9uQ2hhbmdlRm4sIHRoaXMsIFtwYWdpbmF0aW9uLCBmaWx0ZXJzLCBzb3J0ZXIsIGV4dHJhXSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5wcm9wcy5hdXRvUGFnaW5hdGlvbikge1xyXG4gICAgICBoYW5kbGVQYWdpbmF0aW9uKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRTdG9yZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnN0b3JlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W5pWw5o2u5qih5Z6L5a+56LGhXHJcbiAgICovXHJcbiAgZ2V0TW9kZWwoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yZS5nZXRNb2RlbCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I+c5Y2V5pCc57Si6L+H5ruk5pi+56S6XHJcbiAgICogQHBhcmFtIHtTdHJpbmd9IHZhbFxyXG4gICAqL1xyXG4gIGhhbmRsZVNlYXJjaCh2YWwsIGZpZWxkT3B0aW9uLCBzZWFyY2hDb2xvcikge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlYXJjaFRleHQ6IHZhbCxcclxuICAgICAgZmllbGRPcHRpb246IGZpZWxkT3B0aW9uLFxyXG4gICAgICBzZWFyY2hDb2xvcjogc2VhcmNoQ29sb3IsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIOaooeWdl+WIl+ihqOenu+WKqOaOkuW6j1xyXG4gICAqL1xyXG4gIG1vdmVSb3cgPSAoZHJhZ0luZGV4LCBob3ZlckluZGV4LCBkcmFnLCB0YXJnZXQpID0+IHtcclxuICAgIGNvbnN0IF90aGlzID0gdGhpcztcclxuICAgIGxldCBkcmFnTm9kZSA9IGRyYWcucmVjb3JkO1xyXG4gICAgbGV0IHRhcmdldE5vZGUgPSB0YXJnZXQucmVjb3JkO1xyXG4gICAgZHJhZ05vZGUubW92ZUFycmF5KGRyYWdOb2RlLCB0YXJnZXROb2RlKTtcclxuICAgIGxldCBpZHMgPSBkcmFnTm9kZS5wYXJlbnROb2RlLmdldENoaWxkTm9kZUlkcygpO1xyXG4gICAgbGV0IHBhcmFtcyA9IHtcclxuICAgICAgaWQ6IGRyYWdOb2RlLmlkLFxyXG4gICAgICBwYXJlbnRJZDogZHJhZ05vZGUuYXR0cmlidXRlLnBhcmVudElkLFxyXG4gICAgICBpZHM6IGlkcyxcclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMucHJvcHMubW92ZVJvdykge1xyXG4gICAgICB0aGlzLnByb3BzLm1vdmVSb3cocGFyYW1zKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3RvcmUucmVsb2FkKCk7XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgZmlsdGVyQ29sdW1uKGNoZWNrZWRWYWx1ZSkge1xyXG4gICAgY29uc3QgZmlsdGVyQ29sdW1ucyA9IHRoaXMucHJvcHMuY29sdW1ucy5tYXAoKGNvbDogQ29sdW1uVHlwZTx7fT4pID0+IHtcclxuICAgICAgY29uc3QgbmV3Q29sID0geyAuLi5jb2wgfSBhcyBDb2x1bW5UeXBlPHt9PiAmIHsgaW5pdFNob3c6IGJvb2xlYW4gfTtcclxuICAgICAgaWYgKGNoZWNrZWRWYWx1ZS5pbmNsdWRlcyhjb2wuZGF0YUluZGV4KSkge1xyXG4gICAgICAgIG5ld0NvbC5pbml0U2hvdyA9IHRydWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3Q29sLmluaXRTaG93ID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIG5ld0NvbDtcclxuICAgIH0pO1xyXG4gICAgLy8gdGhpcy5zZXRTdGF0ZSh7IGNvbHVtbnM6IGZpbHRlckNvbHVtbnMgfSk7XHJcbiAgICBjb25zdCB7IHJlc2l6ZUNvbHVtbiB9ID0gdGhpcy5wcm9wcztcclxuICAgIGlmICghcmVzaXplQ29sdW1uKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyBjb2x1bW5zOiBmaWx0ZXJDb2x1bW5zIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7IGNvbHM6IGZpbHRlckNvbHVtbnMgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRDb2x1bW5zKCkge1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIGNvbnN0IHsgY29sdW1ucyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgY29sdW1uczogY29sTGlzdHMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBkZWZhdWx0U2hvd0NvbHMgPSBjb2x1bW5zLmZpbHRlcigoY29scykgPT4gY29scy5pbml0U2hvdyAhPT0gZmFsc2UpO1xyXG5cclxuICAgIGNvbnN0IGNvbnRlbnQgPSAoXHJcbiAgICAgIDxDaGVja2JveC5Hcm91cFxyXG4gICAgICAgIG9uQ2hhbmdlPXt0aGlzLmZpbHRlckNvbHVtbi5iaW5kKHRoaXMpfVxyXG4gICAgICAgIG9wdGlvbnM9e2NvbExpc3RzLm1hcChcclxuICAgICAgICAgIChjb2w6IENvbHVtblR5cGU8e30+ICYgeyBmaWx0ZXJDb2x1bW46IGJvb2xlYW4gfSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGxhYmVsOiBjb2wudGl0bGUsXHJcbiAgICAgICAgICAgICAgdmFsdWU6IGNvbC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICAgICAgZGlzYWJsZWQ6IGNvbC5maWx0ZXJDb2x1bW4gPT09IGZhbHNlLFxyXG4gICAgICAgICAgICB9IGFzIENoZWNrYm94T3B0aW9uVHlwZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApfVxyXG4gICAgICAgIGRlZmF1bHRWYWx1ZT17ZGVmYXVsdFNob3dDb2xzLm1hcCgoY29sKSA9PiBjb2wuZGF0YUluZGV4KX1cclxuICAgICAgPjwvQ2hlY2tib3guR3JvdXA+XHJcbiAgICApO1xyXG4gICAgY29uc3QgY29scyA9IGRlZmF1bHRTaG93Q29scy5tYXAoKGNvbCkgPT4ge1xyXG4gICAgICBpZiAoY29sLmVsbGlwc2lzICYmICFjb2wucmVuZGVyKSB7XHJcbiAgICAgICAgY29sLmVsbGlwc2lzID0ge1xyXG4gICAgICAgICAgc2hvd1RpdGxlOiBmYWxzZSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbC5yZW5kZXIgPSAodGV4dCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPFRvb2x0aXAgcGxhY2VtZW50PVwidG9wTGVmdFwiIHRpdGxlPXt0ZXh0fT5cclxuICAgICAgICAgICAgICB7dGV4dH1cclxuICAgICAgICAgICAgPC9Ub29sdGlwPlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBjb2w7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zdCBJY29uQWN0aW9uOiBDb2x1bW5UeXBlPHt9PiA9IHtcclxuICAgICAgdGl0bGU6IChcclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1widGgtaWNvblwiXX0gcmVmPXt0aGlzLnRoSWNvblJlZn0+XHJcbiAgICAgICAgICA8UG9wb3ZlclxyXG4gICAgICAgICAgICB0aXRsZT1cIumAieaLqeaYvuekuueahOWIl1wiXHJcbiAgICAgICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XHJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVJpZ2h0XCJcclxuICAgICAgICAgICAgdHJpZ2dlcj1cImNsaWNrXCJcclxuICAgICAgICAgICAgb3ZlcmxheVN0eWxlPXt7IG1pbldpZHRoOiA0MTAsIG1heFdpZHRoOiA0NTAgfX1cclxuICAgICAgICAgICAgZ2V0UG9wdXBDb250YWluZXI9eygpID0+IHRoaXMudGhJY29uUmVmLmN1cnJlbnR9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxBcHBzdG9yZU91dGxpbmVkIHNpemU9ezI0fSBjbGFzc05hbWU9e3N0eWxlc1tcImFwcC1zdG9yZS1pY29uXCJdfSAvPlxyXG4gICAgICAgICAgPC9Qb3BvdmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICApLFxyXG4gICAgICBkYXRhSW5kZXg6IFwiaWNvbi1tZW51XCIsXHJcbiAgICAgIGtleTogXCJpY29uLW1lbnVcIixcclxuICAgICAgd2lkdGg6IDUwLFxyXG4gICAgICBhbGlnbjogXCJjZW50ZXJcIixcclxuICAgICAgLy8gZml4ZWQ6IFwicmlnaHRcIixcclxuICAgIH07XHJcbiAgICBpZiAodGhpcy5wcm9wcy5maWx0ZXJDb2x1bW4pIHtcclxuICAgICAgY29scy5wdXNoKEljb25BY3Rpb24pO1xyXG4gICAgfVxyXG4gICAgY29scy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmICghaXNFbXB0eU9iaihpdGVtLmZpbHRlclByb3BzKSkge1xyXG4gICAgICAgIGxldCBvYmogPSB7IC4uLml0ZW0gfTtcclxuICAgICAgICBjb25zdCB7IHR5cGUsIHByb3BzLCBzZWFyY2hLZXkgfSA9IGl0ZW0uZmlsdGVyUHJvcHM7XHJcbiAgICAgICAgbGV0IERpdiA9IG51bGw7XHJcbiAgICAgICAgbGV0IHRleHQgPSBpdGVtLnRpdGxlO1xyXG4gICAgICAgIERpdiA9IGdldE5vZGUodHlwZSwgeyAuLi5wcm9wcywgcGxhY2Vob2xkZXI6IGDmkJzntKIke3RleHR9YCB9KTtcclxuICAgICAgICBvYmogPSB7XHJcbiAgICAgICAgICBmaWx0ZXJEcm9wZG93bjogKHtcclxuICAgICAgICAgICAgc2V0U2VsZWN0ZWRLZXlzLFxyXG4gICAgICAgICAgICBzZWxlY3RlZEtleXMsXHJcbiAgICAgICAgICAgIGNvbmZpcm0sXHJcbiAgICAgICAgICAgIGNsZWFyRmlsdGVycyxcclxuICAgICAgICAgIH0pID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17c3R5bGVzW1wic2VhcmNoXCJdfT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtzdHlsZXNbXCJzcGFjZVwiXX0+e0Rpdn08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxTcGFjZT5cclxuICAgICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb25maXJtKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGZpbHRlclBhcmFtcyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgICAgICAgICAgICAgICAgIGxldCBuZXdGaWx0ZXJQYXJhbXMgPSB7IC4uLmZpbHRlclBhcmFtcyB9O1xyXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IGtleSA9aXRlbS5maWVsZCB8fCBpdGVtLmRhdGFJbmRleDtcclxuICAgICAgICAgICAgICAgICAgICAgIG5ld0ZpbHRlclBhcmFtc1trZXldID1cclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZVNlYXJjaFJlZi5jdXJyZW50Py5nZXRWYWx1ZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlclBhcmFtczogeyAuLi5uZXdGaWx0ZXJQYXJhbXMgfSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5sb2FkKHsgcGFyYW1zOiB7IC4uLm5ld0ZpbHRlclBhcmFtcyB9IH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e3N0eWxlc1tcImJ1dHRvblwiXX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIOafpeivolxyXG4gICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvU3BhY2U+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZmlsdGVySWNvbjogKCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gPFNlYXJjaE91dGxpbmVkIC8+O1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLm9iaixcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbHNbaW5kZXhdID0gb2JqO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBjb2xzO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgbGV0IF90aGlzID0gdGhpcyxcclxuICAgICAge1xyXG4gICAgICAgIGxvYWRpbmcsXHJcbiAgICAgICAgZGF0YVNvdXJjZSxcclxuICAgICAgICBwYWdpbmF0aW9uID0ge30sXHJcbiAgICAgICAgc2VhcmNoVGV4dCxcclxuICAgICAgICBmaWVsZE9wdGlvbixcclxuICAgICAgICBzZWFyY2hDb2xvcixcclxuICAgICAgICB0YWJsZVNpemUsXHJcbiAgICAgIH0gPSB0aGlzLnN0YXRlLFxyXG4gICAgICBwcm9wcyA9IHV0aWxzLm9taXQoXHJcbiAgICAgICAgdGhpcy5wcm9wcyxcclxuICAgICAgICBbXCJzdG9yZVwiLCBcIm9uQ2hhbmdlXCIsIFwiY29sdW1uc1wiLCBcInJlc2V0Q29sdW1uXCJdLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHJvd0tleTogXCJpZFwiLFxyXG4gICAgICAgICAgY2xpY2tDaGFuZ2VDb2xvcjogZmFsc2UsXHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgaWYgKHByb3BzLnBhZ2luYXRpb24gIT09IGZhbHNlKSB7XHJcbiAgICAgIHByb3BzLnBhZ2luYXRpb24gPSB7XHJcbiAgICAgICAgcG9zaXRpb246IFtcImJvdHRvbVJpZ2h0XCJdLFxyXG4gICAgICAgIHNob3dTaXplQ2hhbmdlcjogdHJ1ZSxcclxuICAgICAgICBzaG93UXVpY2tKdW1wZXI6IHRydWUsXHJcbiAgICAgICAgLi4ucHJvcHMucGFnaW5hdGlvbixcclxuICAgICAgICAuLi5wYWdpbmF0aW9uLFxyXG4gICAgICB9O1xyXG4gICAgICBpZiAocHJvcHMuc2hvd1RvdGFsID09IHRydWUpIHtcclxuICAgICAgICBwcm9wcy5wYWdpbmF0aW9uLnNob3dUb3RhbCA9IGZ1bmN0aW9uICh0b3RhbCwgW2Zyb20sIHRvXSkge1xyXG4gICAgICAgICAgLy8gcmV0dXJuIFwi5pi+56S6IFwiICsgZnJvbSArIFwiIC0gXCIgKyB0byArIFwi5p2h77yM5YWxIFwiICsgdG90YWwgKyBcIiDmnaFcIjtcclxuICAgICAgICAgIHJldHVybiBcIuWFsSBcIiArIHRvdGFsICsgXCIg5p2hXCI7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByb3BzLm9uQ2hhbmdlID0gZnVuY3Rpb24gKHBhZ2luYXRpb24sIGZpbHRlcnMsIHNvcnRlciwgZXh0cmEpIHtcclxuICAgICAgX3RoaXMub25DaGFuZ2UocGFnaW5hdGlvbiwgZmlsdGVycywgc29ydGVyLCBleHRyYSk7XHJcbiAgICB9O1xyXG4gICAgaWYgKHByb3BzLmNsaWNrQ2hhbmdlQ29sb3IpIHtcclxuICAgICAgY29uc3Qgb25Sb3dGbiA9IHByb3BzLm9uUm93O1xyXG4gICAgICBwcm9wcy5vblJvdyA9IGZ1bmN0aW9uIChyZWNvcmQsIGluZGV4KSB7XHJcbiAgICAgICAgdmFyIGN1c3RvbSA9IG9uUm93Rm4gPyBvblJvd0ZuKHJlY29yZCwgaW5kZXgpIDoge307XHJcbiAgICAgICAgY29uc3Qgb25DbGlja0ZuID0gY3VzdG9tLm9uQ2xpY2s7XHJcbiAgICAgICAgY3VzdG9tLm9uQ2xpY2sgPSAoZXZlbnQpID0+IHtcclxuICAgICAgICAgIF90aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgYWN0aXZlSW5kZXg6IGluZGV4LCAvL+iOt+WPlueCueWHu+ihjOeahOe0ouW8lVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB1dGlscy5jYWxsYmFjayhvbkNsaWNrRm4sIF90aGlzLCBbZXZlbnRdKTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIHJldHVybiBjdXN0b207XHJcbiAgICAgIH07XHJcbiAgICAgIHByb3BzLnJvd0NsYXNzTmFtZSA9IGZ1bmN0aW9uIChyZWNvcmQsIGluZGV4KSB7XHJcbiAgICAgICAgcmV0dXJuIGluZGV4ID09PSBfdGhpcy5zdGF0ZS5hY3RpdmVJbmRleFxyXG4gICAgICAgICAgPyBgJHtzdHlsZXMuY2xpY2tSb3dTdHlsZX1gXHJcbiAgICAgICAgICA6IFwiXCI7XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBsZXQgbmV3RGF0YVNvdXJjZSA9IFtdO1xyXG4gICAgaWYgKHNlYXJjaFRleHQpIHtcclxuICAgICAgY29uc3QgZGF0YSA9IHRyZWVVdGlscy5nZXRTZWFyY2hNZW51RGF0YXMoXHJcbiAgICAgICAgdGhpcyxcclxuICAgICAgICBzZWFyY2hUZXh0LFxyXG4gICAgICAgIGZpZWxkT3B0aW9uLFxyXG4gICAgICAgIHNlYXJjaENvbG9yXHJcbiAgICAgICk7XHJcbiAgICAgIG5ld0RhdGFTb3VyY2UgPSBkYXRhLnRyZWVEYXRhcztcclxuICAgICAgcHJvcHMuZXhwYW5kZWRSb3dLZXlzID0gZGF0YS5vcGVuS2V5cztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld0RhdGFTb3VyY2UgPSBkYXRhU291cmNlO1xyXG4gICAgfVxyXG4gICAgcHJvcHMuc3RvcmUgPSBwcm9wcy5zdG9yZSB8fCB7fTtcclxuICAgIHByb3BzLnN0b3JlLmF1dG9Mb2FkID0gcHJvcHMuc3RvcmUuYXV0b0xvYWQgPT09IGZhbHNlID8gZmFsc2UgOiB0cnVlO1xyXG4gICAgY29uc3QgeyBkcmFnYWJsZSB9ID0gX3RoaXMucHJvcHM7XHJcbiAgICBjb25zdCBkcmFnYWJsZVByb3BzID1cclxuICAgICAgZHJhZ2FibGUgPT09IHRydWVcclxuICAgICAgICA/IHtcclxuICAgICAgICAgICAgY29tcG9uZW50czogQm9keVJvd0NvbXBvbmVudCxcclxuICAgICAgICAgICAgb25Sb3c6IChyZWNvcmQsIGluZGV4KSA9PiAoe1xyXG4gICAgICAgICAgICAgIGluZGV4LFxyXG4gICAgICAgICAgICAgIHJlY29yZCxcclxuICAgICAgICAgICAgICBtb3ZlUm93OiB0aGlzLm1vdmVSb3csXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIDoge307XHJcbiAgICBsZXQgeyByZXNpemVDb2x1bW4gfSA9IHRoaXMucHJvcHM7XHJcblxyXG4gICAgY29uc3QgcmVzaXplUHJvcHMgPVxyXG4gICAgICByZXNpemVDb2x1bW4gPT09IHRydWUgPyB7IGNvbXBvbmVudHM6IHRoaXMuY29tcG9uZW50cyB9IDogbnVsbDtcclxuXHJcbiAgICBjb25zdCBzaXplSXRlbSA9IFtcclxuICAgICAgeyB0aXRsZTogXCLlrr3mnb5cIiwga2V5OiBcImRlZmF1bHRcIiB9LFxyXG4gICAgICB7IHRpdGxlOiBcIuS4reetiVwiLCBrZXk6IFwibWlkZGxlXCIgfSxcclxuICAgICAgeyB0aXRsZTogXCLntKflh5FcIiwga2V5OiBcInNtYWxsXCIgfSxcclxuICAgIF07XHJcbiAgICBjb25zdCBzb3J0SXRlbSA9IFtcclxuICAgICAgeyB0aXRsZTogXCLljZXlrZfmrrXmjpLluo9cIiwga2V5OiBcInNpZ2xlXCIgfSxcclxuICAgICAgeyB0aXRsZTogXCLlpJrlrZfmrrXmjpLluo9cIiwga2V5OiBcIm11bHRpcGxlXCIgfSxcclxuICAgIF07XHJcbiAgICBjb25zdCBzb3J0Q29udGVudCA9IChcclxuICAgICAgPGRpdj5cclxuICAgICAgICA8ZGl2PuW9k+WJjeaOkuW6jzwvZGl2PlxyXG4gICAgICAgIHtzb3J0SXRlbS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAga2V5PXtpdGVtLmtleX1cclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIml0ZW0ua2V5XCIsIGl0ZW0ua2V5KTtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICB0YWJsZVNpemU6IGl0ZW0ua2V5LFxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+e3RhYmxlU2l6ZSA9PSBpdGVtLmtleSAmJiA8Q2hlY2tPdXRsaW5lZCAvPn08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICB7aXRlbS50aXRsZX1cclxuICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9KX1cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gICAgY29uc3Qgc2l6ZUNvbnRlbnQgPSAoXHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPGRpdj7ooajmoLzlr4bluqY8L2Rpdj5cclxuICAgICAgICB7c2l6ZUl0ZW0ubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGtleT17aXRlbS5rZXl9XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJpdGVtLmtleVwiLCBpdGVtLmtleSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgdGFibGVTaXplOiBpdGVtLmtleSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt0YWJsZVNpemUgPT0gaXRlbS5rZXkgJiYgPENoZWNrT3V0bGluZWQgLz59PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAge2l0ZW0udGl0bGV9XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICAgIGNvbnN0IERlZmF1bHRUYWJsZSA9IChcclxuICAgICAgPD5cclxuICAgICAgICB7LyogPGRpdiBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiB9fT5cclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxQb3BvdmVyIHBsYWNlbWVudD1cImJvdHRvbVwiIGNvbnRlbnQ9e3NpemVDb250ZW50fSB0cmlnZ2VyPVwiY2xpY2tcIj5cclxuICAgICAgICAgICAgICA8Q29sdW1uSGVpZ2h0T3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9Qb3BvdmVyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8UG9wb3ZlciBwbGFjZW1lbnQ9XCJib3R0b21cIiBjb250ZW50PXtzb3J0Q29udGVudH0gdHJpZ2dlcj1cImNsaWNrXCI+XHJcbiAgICAgICAgICAgIDxTb3J0QXNjZW5kaW5nT3V0bGluZWQgLz5cclxuICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICA8L2Rpdj4gKi99XHJcbiAgICAgICAgPFRhYmxlXHJcbiAgICAgICAgICBjaGlsZHJlbkNvbHVtbk5hbWU9XCJjaGlsZE5vZGVzXCJcclxuICAgICAgICAgIGRhdGFTb3VyY2U9e25ld0RhdGFTb3VyY2V9XHJcbiAgICAgICAgICBjb2x1bW5zPXt0aGlzLmdldENvbHVtbnMoKX1cclxuICAgICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XHJcbiAgICAgICAgICAvLyBjbGFzc05hbWU9e3N0eWxlc1tcIm5zYy10YWJsZVwiXX1cclxuICAgICAgICAgIGxvY2FsZT17eyBlbXB0eVRleHQ6IDxOb0RhdGEgLz4gfX1cclxuICAgICAgICAgIHNjcm9sbD17eyB4OiB0cnVlIH19XHJcbiAgICAgICAgICBzaXplPXt0YWJsZVNpemV9XHJcbiAgICAgICAgICB7Li4ucmVzaXplUHJvcHN9XHJcbiAgICAgICAgICB7Li4ucHJvcHN9XHJcbiAgICAgICAgICB7Li4uZHJhZ2FibGVQcm9wc31cclxuICAgICAgICAvPlxyXG4gICAgICA8Lz5cclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIGRyYWdhYmxlID09PSB0cnVlID8gKFxyXG4gICAgICA8RG5kUHJvdmlkZXIgYmFja2VuZD17SFRNTDVCYWNrZW5kfT57RGVmYXVsdFRhYmxlfTwvRG5kUHJvdmlkZXI+XHJcbiAgICApIDogKFxyXG4gICAgICBEZWZhdWx0VGFibGVcclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCB3aXRoWmhMb2NhbGUoTlNDVGFibGUpO1xyXG4iXX0=
|