nsc-react-component 2.8.29 → 2.8.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/page/BasePage/index.js +11 -29
- package/package.json +3 -3
|
@@ -399,9 +399,9 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
|
|
|
399
399
|
}, {
|
|
400
400
|
key: "getSearchValues",
|
|
401
401
|
value: function getSearchValues() {
|
|
402
|
-
var _this$searchRef$curre2;
|
|
402
|
+
var _this$searchRef, _this$searchRef$curre2;
|
|
403
403
|
|
|
404
|
-
var fromValue = (_this$searchRef
|
|
404
|
+
var fromValue = (_this$searchRef = this.searchRef) === null || _this$searchRef === void 0 ? void 0 : (_this$searchRef$curre2 = _this$searchRef.current) === null || _this$searchRef$curre2 === void 0 ? void 0 : _this$searchRef$curre2.getSearchValues();
|
|
405
405
|
return fromValue;
|
|
406
406
|
}
|
|
407
407
|
}, {
|
|
@@ -610,7 +610,7 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
|
|
|
610
610
|
}, {
|
|
611
611
|
key: "treeSelect",
|
|
612
612
|
value: function treeSelect(selectedKeys, _ref) {
|
|
613
|
-
var _this$
|
|
613
|
+
var _this$searchRef2, _this$searchRef2$curr;
|
|
614
614
|
|
|
615
615
|
var selected = _ref.selected,
|
|
616
616
|
selectedNodes = _ref.selectedNodes;
|
|
@@ -637,15 +637,15 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
|
|
|
637
637
|
});
|
|
638
638
|
}
|
|
639
639
|
|
|
640
|
-
var fromValue = (_this$
|
|
640
|
+
var fromValue = ((_this$searchRef2 = this.searchRef) === null || _this$searchRef2 === void 0 ? void 0 : (_this$searchRef2$curr = _this$searchRef2.current) === null || _this$searchRef2$curr === void 0 ? void 0 : _this$searchRef2$curr.getSearchValues()) || {};
|
|
641
641
|
searchField && this.tableLoad(_objectSpread(_objectSpread({}, fromValue), {}, _defineProperty({}, searchField, keyword)));
|
|
642
642
|
}
|
|
643
643
|
}, {
|
|
644
644
|
key: "resetSearch",
|
|
645
645
|
value: function resetSearch() {
|
|
646
|
-
var _this$searchRef$
|
|
646
|
+
var _this$searchRef$curre3;
|
|
647
647
|
|
|
648
|
-
(_this$searchRef$
|
|
648
|
+
(_this$searchRef$curre3 = this.searchRef.current) === null || _this$searchRef$curre3 === void 0 ? void 0 : _this$searchRef$curre3.resetSearch();
|
|
649
649
|
}
|
|
650
650
|
}, {
|
|
651
651
|
key: "getText",
|
|
@@ -945,27 +945,6 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
|
|
|
945
945
|
var toolFlag = showToolButton && selfButtons.length > 0;
|
|
946
946
|
|
|
947
947
|
if (tableProps.pagination !== false) {
|
|
948
|
-
// scroll={{ x: "max-content", y: "25vw" }}
|
|
949
|
-
//计算表格高度
|
|
950
|
-
// let tableHeight = document.body.scrollHeight - 160; //整体页面高度,layout头部,padding
|
|
951
|
-
// if (this.props.pageTitle) {
|
|
952
|
-
// tableHeight = tableHeight - 58; //减去页面标题高度
|
|
953
|
-
// }
|
|
954
|
-
// if (searchFlag) {
|
|
955
|
-
// tableHeight = tableHeight - 68; //减去搜索栏高度
|
|
956
|
-
// }
|
|
957
|
-
// if (!searchFlag && toolFlag) {
|
|
958
|
-
// //减去工具栏高度
|
|
959
|
-
// tableHeight = tableHeight - 60;
|
|
960
|
-
// }
|
|
961
|
-
// if (searchFlag && toolFlag) {
|
|
962
|
-
// //减去工具栏高度
|
|
963
|
-
// tableHeight = tableHeight - 40;
|
|
964
|
-
// }
|
|
965
|
-
// if (searchFlag && !toolFlag) {
|
|
966
|
-
// tableHeight = tableHeight - 22;
|
|
967
|
-
// }
|
|
968
|
-
// tableHeight = tableHeight - 52 - 64; //减去表头和分頁高度
|
|
969
948
|
var scroll = tableParams.scroll;
|
|
970
949
|
tableParams = _objectSpread(_objectSpread({}, tableParams), {}, {
|
|
971
950
|
scroll: _objectSpread({
|
|
@@ -974,6 +953,9 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
|
|
|
974
953
|
});
|
|
975
954
|
}
|
|
976
955
|
|
|
956
|
+
var _config4 = config(),
|
|
957
|
+
tableTool = _config4.tableTool;
|
|
958
|
+
|
|
977
959
|
return /*#__PURE__*/React.createElement("div", {
|
|
978
960
|
className: cls(getLess(styles, "page"), className)
|
|
979
961
|
}, this.props.pageTitle && /*#__PURE__*/React.createElement("div", {
|
|
@@ -1002,7 +984,7 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
|
|
|
1002
984
|
ref: this.searchRef,
|
|
1003
985
|
searchFormProps: this.props.searchFormProps
|
|
1004
986
|
}), showToolButton && selfButtons.length > 0 && toolButtonPosition == "buttom" && this.renderToolButtons(selfButtons, searchForms.length == 0), /*#__PURE__*/React.createElement("div", {
|
|
1005
|
-
className: cls(getLess(styles, "table"), _defineProperty({}, getLess(styles, "table-top"), searchFlag && !toolFlag))
|
|
987
|
+
className: cls(getLess(styles, "table"), _defineProperty({}, getLess(styles, "table-top"), searchFlag && !toolFlag || tableProps.toolbar == false || tableProps.toolbar.tools.length == 0 || tableTool.tools.length == 0))
|
|
1006
988
|
}, /*#__PURE__*/React.createElement(Table, _extends({
|
|
1007
989
|
ref: this.tableRef,
|
|
1008
990
|
columns: tableColumn,
|
|
@@ -1064,4 +1046,4 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
|
|
|
1064
1046
|
}(PureComponent);
|
|
1065
1047
|
|
|
1066
1048
|
export default BasePage;
|
|
1067
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvQmFzZVBhZ2UvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIlRhYmxlIiwiVHJlZSIsIkJ1dHRvbiIsIk1vZGFsIiwiUG9wb3ZlciIsIm1lc3NhZ2UiLCJJY29uIiwiaWNvblR5cGUiLCJFZGl0b3JGb3JtIiwiY2xzIiwic3R5bGVzIiwiRG93bk91dGxpbmVkIiwiRXllT3V0bGluZWQiLCJFZGl0T3V0bGluZWQiLCJSaWdodE91dGxpbmVkIiwiUGx1c091dGxpbmVkIiwiRWxsaXBzaXNPdXRsaW5lZCIsImdldExlc3MiLCJyZXF1ZXN0Iiwib21pdCIsImNvbmZpZyIsImdldFN0b3JhZ2UiLCJIZWFkZXJTZWFyY2giLCJCYXNlUGFnZSIsInByb3BzIiwiY3JlYXRlUmVmIiwiY2hlY2tlZFRyZWVLZXlzIiwic3RhdGUiLCJuYW1lIiwidXNlclR5cGUiLCJhY2NvdW50IiwidmFsdWUiLCJkZXB0SWQiLCJ0YWJsZUxvYWQiLCJzZWxlY3RlZCIsInJlcyIsImtleSIsImtleXMiLCJsZW5ndGgiLCJzdG9yZVByZWZpeCIsInR5cGUiLCJjb250ZW50Iiwic2l6ZSIsInNlbGVjdGVkUm93S2V5cyIsInNlbGVjdGVkUm93RGF0YXMiLCJ0cmVlU2VsZWN0ZWRLZXkiLCJleHBhbmQiLCJmb3JtVHlwZSIsInRhYmxlU2l6ZSIsImluaXREYXRhIiwicGFyYW1zIiwiY2FsbEJhY2siLCJzZWFyY2hSZWYiLCJjdXJyZW50Iiwic2V0U2VhcmNoUGFyYW1zIiwiZWRpdG9yZmxhZyIsImVkaXRvclJlZiIsInNob3ciLCJoaWRlRm9ybSIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiZGVsZXRlVXJsIiwib25EZWxldGUiLCJkZWxldGVQYXJhbXMiLCJ3YXJuaW5nIiwiRXJyb3IiLCJjb25maXJtIiwib25PayIsImRlZmF1bHRQYXJhbXMiLCJtZXRob2QiLCJpZHMiLCJqb2luIiwicmVxdWVzdFBhcmFtcyIsInRoZW4iLCJjb2RlIiwic3VjY2VzcyIsImVycm9yIiwiY2F0Y2giLCJjb25zb2xlIiwibG9nIiwidGFibGVSZWYiLCJzdG9yZSIsImxvYWQiLCJvblNlYXJjaCIsImF1dG9Mb2FkIiwicmVsb2FkIiwiY2FsbGJhY2siLCJkYXRhIiwicmVjb3JkcyIsImN1cnJlbnRQYWdlIiwicmVjb3JkIiwidGFibGVQcm9wcyIsInJvd0tleSIsIm5ld1NlbGVjdGVkUm93S2V5cyIsIm5ld1NlbGVjdGVkUm93RGF0YXMiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJzcGxpY2UiLCJzZXRTdGF0ZSIsInNlbGVjdGVkUm93cyIsImNoYW5nZVJvd3MiLCJuZXdpZHMiLCJuZXdkYXRhcyIsImNoYW5nZUlkcyIsImluZGV4T2YiLCJwdXNoIiwic2VsZWN0ZWRSb3dLZXlzU3RvcmUiLCJzZWxlY3RlZFJvd0RhdGFzU3RvcmUiLCJmcm9tVmFsdWUiLCJnZXRTZWFyY2hWYWx1ZXMiLCJyZXNLZXkiLCJjaGlsZE5vZGVzIiwiY2hpbGRyZW4iLCJnZXRDaGlsZHJlbkRhdGEiLCJ0b29sYnV0dG9ucyIsIm1hcmdpbmZsYWciLCJmbGFnIiwic2hvd1NlYXJjaCIsInBhZ2VUeXBlIiwib25DbGljayIsImljb24iLCJtYXJnaW5MZWZ0IiwiY29sdW1uQnV0dG9ucyIsImVkaXRvckZvcm0iLCJidXR0b25zIiwiYWN0aW9uUG9ycHMiLCJiYXNlQWN0aW9uQ29sdW1uIiwibmV3QnV0dG9ucyIsInNob3dJY29uIiwicmVjb3JkU2hvdyIsImV2YWwiLCJzZWxlY3RlZEtleXMiLCJzZWxlY3RlZE5vZGVzIiwia2V5d29yZCIsInRyZWVQcm9wcyIsInNlYXJjaEtleSIsInNlYXJjaEZpZWxkIiwiaXNMZWFmIiwiZGF0YXJlZiIsImF0dHJpYnV0ZSIsImdldEZpZWxkc1ZhbHVlIiwicmVzZXRTZWFyY2giLCJ0ZXh0IiwibmV3VGV4dCIsImkiLCJsYWJlbCIsInNldERhdGEiLCJ0cmVlUmVmIiwiY29sdW1ucyIsInN1Ym1pdFVybCIsImZvcm1Qcm9wcyIsInNob3dMZWZ0Iiwic3VibWl0UGFyYW1zIiwic2hvd1Rvb2xCdXR0b24iLCJvblNob3dGb3JtIiwiZm9ybUNoYW5nZVZhbGlkIiwiY2xhc3NOYW1lIiwidG9vbEJ1dHRvblBvc2l0aW9uIiwiZmlsdGVyQ29sdW1uIiwiYWN0aW9uQ29sdW1uIiwic2hvd1Jvd1NlbGVjdGlvbiIsImNvbHVtbk9yZGVyIiwicm93U2VsZWN0aW9uIiwiZXhwYW5kYWJsZSIsIm90aGVydGFibGVQYXJhbXMiLCJ0cmVlU3RvcmUiLCJ0cmVlU2VhcmNoIiwidGl0bGVBbGlhcyIsIm90aGVydHJlZVBhcmFtcyIsInRhYmxlUGFyYW1zIiwib25TZWxlY3QiLCJyb3dTZWxlY3Rpb25PblNlbGVjdCIsImJpbmQiLCJvblNlbGVjdEFsbCIsInJvd1NlbGVjdGlvbk9uU2VsZWN0QWxsIiwiY29sdW1uV2lkdGgiLCJ0YWJsZUNvbHVtbiIsInNlYXJjaEZvcm1zIiwiZWRpdG9yRm9ybXMiLCJkZWZhdWx0VmFsdWUiLCJ0ZW1wIiwic2VhcmNoIiwiZmllbGQiLCJkYXRhSW5kZXgiLCJ0aXRsZSIsImxhYmVsQ29sIiwid3JhcHBlckNvbCIsImVkaXRvciIsInJ1bGVzIiwic3BhbiIsImRpY3ROYW1lIiwidW5kZWZpbmVkIiwiY29sdW1uU2VhcmNoIiwiZmlsdGVyUHJvcHMiLCJ0ZW1wUHJvcCIsInN0eWxlIiwicmVuZGVyIiwiZ2V0VGV4dCIsImVsbGlwc2lzIiwiY29sdW1uU2hvdyIsInNlbGZCdXR0b25zIiwic2hvd0Zvcm0iLCJkZWxldGUzIiwiQXJyYXkiLCJpc0FycmF5IiwiYWxpZ24iLCJ0ZXh0QWxpZ24iLCJ3aWR0aCIsImZpeGVkIiwicmVuZGVyQ2xvdW1uQnV0dG9uIiwicmVhY29yZCIsInNlYXJjaEZsYWciLCJ0b29sRmxhZyIsInBhZ2luYXRpb24iLCJzY3JvbGwiLCJ4IiwicGFnZVRpdGxlIiwiZGlzcGxheSIsInRyZWVTZWxlY3QiLCJzZWFyY2hGb3JtUHJvcHMiLCJyZW5kZXJUb29sQnV0dG9ucyIsImV4cGFuZEljb24iLCJleHBhbmRlZCIsIm9uRXhwYW5kIiwiZSIsIm9uVG9vbENsaWNrIiwib25SZWZyZXNoIiwidG9vbGJhciIsInRhYmxlUmVsb2FkIiwib25TdWJtaXQiLCJvbkhpZGVGb3JtIiwib25Gb3JtQ2hhbmdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQVAsSUFBZ0JDLGFBQWhCLFFBQWdELE9BQWhEO0FBQ0EsT0FBT0MsS0FBUCxNQUFrQixrQkFBbEI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLGlCQUFqQjtBQUVBLE9BQU9DLE1BQVAsTUFBbUIsbUJBQW5CO0FBQ0EsT0FBT0MsS0FBUCxNQUFrQixrQkFBbEI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLG9CQUFwQjtBQUNBLE9BQU9DLE9BQVAsTUFBb0Isb0JBQXBCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQiw0QkFBakI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLGlCQUF6QjtBQUNBLE9BQU9DLFVBQVAsTUFBdUIsUUFBdkI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixxQkFBbkI7QUFHQSxTQUNFQyxZQURGLEVBRUVDLFdBRkYsRUFHRUMsWUFIRixFQUlFQyxhQUpGLEVBS0VDLFlBTEYsRUFNRUMsZ0JBTkYsUUFPTyxtQkFQUDtBQVFBLFNBQVNDLE9BQVQsUUFBaUMsYUFBakM7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLGFBQXBCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixTQUFqQjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLG1CQUEzQjtBQUVBLE9BQU9DLFlBQVAsTUFBeUIsaUJBQXpCOztJQW1ETUMsUTs7Ozs7QUFNSixvQkFBWUMsS0FBWixFQUF3QjtBQUFBOztBQUFBOztBQUFBOztBQUN0Qiw4QkFBTUEsS0FBTjs7QUFEc0IsNEVBTGIxQixLQUFLLENBQUMyQixTQUFOLEVBS2E7O0FBQUEsMkVBSmQzQixLQUFLLENBQUMyQixTQUFOLEVBSWM7O0FBQUEsNkVBSFozQixLQUFLLENBQUMyQixTQUFOLEVBR1k7O0FBQUEsNkVBRlozQixLQUFLLENBQUMyQixTQUFOLEVBRVk7O0FBQUEsaUVBRFgsRUFDVzs7QUFBQSwrREErQmIsVUFBQ0MsZUFBRCxFQUEwQjtBQUNuQyx3QkFBb0MsTUFBS0MsS0FBekM7QUFBQSxVQUFRQyxJQUFSLGVBQVFBLElBQVI7QUFBQSxVQUFjQyxRQUFkLGVBQWNBLFFBQWQ7QUFBQSxVQUF3QkMsT0FBeEIsZUFBd0JBLE9BQXhCO0FBQ0EsVUFBTUMsS0FBSyxHQUFHO0FBQUVILFFBQUFBLElBQUksRUFBSkEsSUFBRjtBQUFRQyxRQUFBQSxRQUFRLEVBQVJBLFFBQVI7QUFBa0JDLFFBQUFBLE9BQU8sRUFBUEEsT0FBbEI7QUFBMkJFLFFBQUFBLE1BQU0sRUFBRU4sZUFBZSxDQUFDLENBQUQ7QUFBbEQsT0FBZDs7QUFDQSxZQUFLTyxTQUFMLENBQWVGLEtBQWY7QUFDRCxLQW5DdUI7O0FBQUEscUVBaWNQLFVBQUNHLFFBQUQsRUFBYztBQUM3QixVQUFJQyxHQUFHLEdBQUcsRUFBVjs7QUFDQSxXQUFLLElBQUlDLEdBQVQsSUFBZ0JGLFFBQWhCLEVBQTBCO0FBQ3hCLFlBQU1HLElBQUksR0FBR0gsUUFBUSxDQUFDRSxHQUFELENBQXJCOztBQUNBLFlBQUlDLElBQUksQ0FBQ0MsTUFBTCxHQUFjLENBQWxCLEVBQXFCO0FBQ25CSCxVQUFBQSxHQUFHLGdDQUFPQSxHQUFQLHNCQUFlRSxJQUFmLEVBQUg7QUFDRDtBQUNGOztBQUNELGFBQU9GLEdBQVA7QUFDRCxLQTFjdUI7O0FBRXRCLGtCQUFzQmYsTUFBTSxFQUE1QjtBQUFBLFFBQU1tQixXQUFOLFdBQU1BLFdBQU47O0FBQ0EsUUFBSUMsSUFBSSxHQUFHbkIsVUFBVSxDQUNuQmtCLFdBQVcsR0FBR0EsV0FBVyxHQUFHLEdBQWQsR0FBb0IsVUFBdkIsR0FBb0MsVUFENUIsQ0FBckI7QUFHQUMsSUFBQUEsSUFBSSxZQUFHQSxJQUFILDBDQUFHLE1BQU1DLE9BQWI7QUFDQSxRQUFJQyxJQUFJLEdBQUdyQixVQUFVLENBQ25Ca0IsV0FBVyxHQUFHQSxXQUFXLEdBQUcsR0FBZCxHQUFvQixXQUF2QixHQUFxQyxXQUQ3QixDQUFyQjtBQUdBRyxJQUFBQSxJQUFJLFlBQUdBLElBQUgsMENBQUcsTUFBTUQsT0FBYjtBQUNBLFVBQUtkLEtBQUwsR0FBYTtBQUNYYSxNQUFBQSxJQUFJLEVBQUUsS0FESztBQUVYRyxNQUFBQSxlQUFlLEVBQUUsRUFGTjtBQUdYQyxNQUFBQSxnQkFBZ0IsRUFBRSxFQUhQO0FBSVhDLE1BQUFBLGVBQWUsRUFBRSxFQUpOO0FBS1hDLE1BQUFBLE1BQU0sRUFBRSxLQUxHO0FBTVhDLE1BQUFBLFFBQVEsRUFBRVAsSUFBSSxJQUFJLE9BTlA7QUFPWFEsTUFBQUEsU0FBUyxFQUFFTixJQUFJLElBQUk7QUFQUixLQUFiO0FBWHNCO0FBb0J2Qjs7OztXQUNELDZCQUFvQjtBQUNsQixVQUFRTyxRQUFSLEdBQXFCLEtBQUt6QixLQUExQixDQUFReUIsUUFBUjtBQUNBQSxNQUFBQSxRQUFRLElBQUlBLFFBQVEsRUFBcEI7QUFDRDs7O1dBRUQseUJBQWdCQyxNQUFoQixFQUF3QkMsUUFBeEIsRUFBa0M7QUFBQTs7QUFDaEMsb0NBQUtDLFNBQUwsQ0FBZUMsT0FBZixnRkFBd0JDLGVBQXhCLENBQXdDSixNQUF4QztBQUNBQyxNQUFBQSxRQUFRLElBQUlBLFFBQVEsQ0FBQ0QsTUFBRCxDQUFwQjtBQUNEOzs7V0FRRDtBQUNBLHNCQUFTbkIsS0FBVCxFQUEwQztBQUFBOztBQUFBLFVBQXBCd0IsVUFBb0IsdUVBQVAsS0FBTztBQUN4QyxvQ0FBS0MsU0FBTCxDQUFlSCxPQUFmLGdGQUF3QkksSUFBeEIsQ0FBNkIxQixLQUE3QixFQUFvQ3dCLFVBQXBDO0FBQ0QsSyxDQUVEOzs7O1dBQ0Esb0JBQVc7QUFBQTs7QUFDVCxxQ0FBS0MsU0FBTCxDQUFlSCxPQUFmLGtGQUF3QkssUUFBeEI7QUFDRDs7O1dBRUQsb0JBQVdDLE9BQVgsRUFBNkI7QUFBQTs7QUFDM0IscUNBQUtILFNBQUwsQ0FBZUgsT0FBZixrRkFBd0JPLFVBQXhCLENBQW1DRCxPQUFuQztBQUNELEssQ0FFRDs7OztXQUNBLG9CQUFXO0FBQ1Qsd0JBQThDLEtBQUtuQyxLQUFuRDtBQUFBLFVBQVFxQyxTQUFSLGVBQVFBLFNBQVI7QUFBQSxVQUFtQkMsUUFBbkIsZUFBbUJBLFFBQW5CO0FBQUEsVUFBNkJDLFlBQTdCLGVBQTZCQSxZQUE3QjtBQUNBLFVBQVFwQixlQUFSLEdBQTRCLEtBQUtoQixLQUFqQyxDQUFRZ0IsZUFBUjs7QUFDQSxVQUFJQSxlQUFlLENBQUNMLE1BQWhCLElBQTBCLENBQTlCLEVBQWlDO0FBQy9CakMsUUFBQUEsT0FBTyxDQUFDMkQsT0FBUixDQUFnQixZQUFoQjtBQUNBO0FBQ0Q7O0FBQ0QsVUFBSUYsUUFBSixFQUFjO0FBQ1pBLFFBQUFBLFFBQVEsSUFBSUEsUUFBUSxDQUFDbkIsZUFBRCxDQUFwQjtBQUNBO0FBQ0Q7O0FBQ0QsVUFBSSxDQUFDa0IsU0FBTCxFQUFnQjtBQUNkLGNBQU0sSUFBSUksS0FBSixDQUFVLFVBQVYsQ0FBTjtBQUNEOztBQUNEOUQsTUFBQUEsS0FBSyxDQUFDK0QsT0FBTixDQUFjO0FBQ1p6QixRQUFBQSxPQUFPLEVBQUUsWUFERztBQUVaO0FBQ0EwQixRQUFBQSxJQUFJLEVBQUUsZ0JBQU07QUFDVixjQUFNQyxhQUFhLEdBQUc7QUFDcEJDLFlBQUFBLE1BQU0sRUFBRSxNQURZO0FBRXBCbkIsWUFBQUEsTUFBTSxFQUFFO0FBQUVvQixjQUFBQSxHQUFHLEVBQUUzQixlQUFlLENBQUM0QixJQUFoQjtBQUFQO0FBRlksV0FBdEI7QUFJQSxjQUFJQyxhQUFhLEdBQUcsRUFBcEI7O0FBQ0EsY0FBSUosYUFBSixFQUFtQjtBQUNqQkksWUFBQUEsYUFBYSxxQkFBUVQsWUFBUixDQUFiO0FBQ0Q7O0FBQ0RTLFVBQUFBLGFBQWEscUJBQVFKLGFBQVIsQ0FBYjtBQUNBbEQsVUFBQUEsT0FBTyxDQUFDMkMsU0FBRCxvQkFDRlcsYUFERSxFQUFQLENBR0dDLElBSEgsQ0FHUSxVQUFVdEMsR0FBVixFQUFvQjtBQUN4QixnQkFBUXVDLElBQVIsR0FBaUJ2QyxHQUFqQixDQUFRdUMsSUFBUjs7QUFDQSxnQkFBSUEsSUFBSSxLQUFLLEdBQWIsRUFBa0I7QUFDaEJyRSxjQUFBQSxPQUFPLENBQUNzRSxPQUFSLENBQWdCLE9BQWhCO0FBQ0QsYUFGRCxNQUVPO0FBQ0x0RSxjQUFBQSxPQUFPLENBQUN1RSxLQUFSLENBQWMsT0FBZDtBQUNEO0FBQ0YsV0FWSCxFQVdHQyxLQVhILENBV1MsVUFBVUQsS0FBVixFQUFzQjtBQUMzQkUsWUFBQUEsT0FBTyxDQUFDQyxHQUFSLENBQVksT0FBWixFQUFxQkgsS0FBckI7QUFDRCxXQWJIO0FBY0Q7QUEzQlcsT0FBZDtBQTZCRDs7O1dBQ0QsbUJBQVUxQixNQUFWLEVBQXVCO0FBQUE7O0FBQ3JCLG9DQUFLOEIsUUFBTCxDQUFjM0IsT0FBZCxnRkFBdUI0QixLQUF2QixDQUE2QkMsSUFBN0IsQ0FBa0M7QUFDaENoQyxRQUFBQSxNQUFNLEVBQUVBO0FBRHdCLE9BQWxDO0FBR0QsSyxDQUNEOzs7O1dBQ0Esa0JBQVNBLE1BQVQsRUFBaUI7QUFDZixVQUFRaUMsUUFBUixHQUFxQixLQUFLM0QsS0FBMUIsQ0FBUTJELFFBQVI7O0FBQ0EsVUFBSUEsUUFBSixFQUFjO0FBQ1pBLFFBQUFBLFFBQVEsQ0FBQ2pDLE1BQUQsQ0FBUjtBQUNBO0FBQ0Q7O0FBQ0QsV0FBS2pCLFNBQUwsQ0FBZWlCLE1BQWY7QUFDRCxLLENBQ0Q7Ozs7V0FDQSx1QkFBMEM7QUFBQTtBQUFBOztBQUFBLFVBQTlCQSxNQUE4Qix1RUFBckIsRUFBcUI7QUFBQSxVQUFqQmtDLFFBQWlCLHVFQUFOLElBQU07QUFDeEMscUNBQUtKLFFBQUwsQ0FBYzNCLE9BQWQsa0ZBQXVCNEIsS0FBdkIsQ0FBNkJJLE1BQTdCLENBQW9DO0FBQ2xDQyxRQUFBQSxRQUFRLEVBQUUsa0JBQUNuRCxHQUFELEVBQVM7QUFBQTs7QUFDakIsY0FDRWlELFFBQVEsSUFDUixDQUFBakQsR0FBRyxTQUFILElBQUFBLEdBQUcsV0FBSCx5QkFBQUEsR0FBRyxDQUFFb0QsSUFBTCw2RUFBV0MsT0FBWCx3RUFBb0JsRCxNQUFwQixLQUE4QixDQUQ5QixJQUVBLE1BQUksQ0FBQ1gsS0FBTCxDQUFXOEQsV0FBWCxLQUEyQixDQUg3QixFQUlFO0FBQUE7O0FBQ0EscUNBQUEsTUFBSSxDQUFDVCxRQUFMLENBQWMzQixPQUFkLGdGQUF1QjRCLEtBQXZCLENBQTZCSSxNQUE3QixDQUFvQztBQUNsQ25DLGNBQUFBLE1BQU07QUFBSUcsZ0JBQUFBLE9BQU8sRUFBRTtBQUFiLGlCQUFtQkgsTUFBbkI7QUFENEIsYUFBcEM7QUFHRDtBQUNGO0FBWGlDLE9BQXBDO0FBYUQ7OztXQUNELDhCQUFxQndDLE1BQXJCLEVBQWtDeEQsUUFBbEMsRUFBaUQ7QUFDL0MseUJBQThDLEtBQUtQLEtBQW5EO0FBQUEsVUFBUWdCLGVBQVIsZ0JBQVFBLGVBQVI7QUFBQSxVQUF5QkMsZ0JBQXpCLGdCQUF5QkEsZ0JBQXpCO0FBQ0EsVUFBUStDLFVBQVIsR0FBdUIsS0FBS25FLEtBQTVCLENBQVFtRSxVQUFSO0FBQ0EsK0JBQTBCQSxVQUExQixDQUFRQyxNQUFSO0FBQUEsVUFBUUEsTUFBUixtQ0FBaUIsSUFBakI7O0FBQ0EsVUFBSUMsa0JBQWtCLHNCQUFPbEQsZUFBUCxDQUF0Qjs7QUFDQSxVQUFJbUQsbUJBQW1CLHNCQUFPbEQsZ0JBQVAsQ0FBdkI7O0FBQ0EsVUFBSVYsUUFBSixFQUFjO0FBQ1oyRCxRQUFBQSxrQkFBa0IsZ0NBQU9BLGtCQUFQLElBQTJCSCxNQUFNLENBQUNFLE1BQUQsQ0FBakMsRUFBbEI7QUFDQUUsUUFBQUEsbUJBQW1CLGdDQUFPQSxtQkFBUCxJQUE0QkosTUFBNUIsRUFBbkI7QUFDRCxPQUhELE1BR087QUFDTC9DLFFBQUFBLGVBQWUsQ0FBQ29ELEdBQWhCLENBQW9CLFVBQUNDLElBQUQsRUFBWUMsS0FBWixFQUEyQjtBQUM3QyxjQUFJRCxJQUFJLEtBQUtOLE1BQU0sQ0FBQ0UsTUFBRCxDQUFuQixFQUE2QjtBQUMzQkMsWUFBQUEsa0JBQWtCLENBQUNLLE1BQW5CLENBQTBCRCxLQUExQixFQUFpQyxDQUFqQztBQUNEO0FBQ0YsU0FKRDtBQUtBckQsUUFBQUEsZ0JBQWdCLENBQUNtRCxHQUFqQixDQUFxQixVQUFDQyxJQUFELEVBQVlDLEtBQVosRUFBMkI7QUFDOUMsY0FBSUQsSUFBSSxDQUFDSixNQUFELENBQUosS0FBaUJGLE1BQU0sQ0FBQ0UsTUFBRCxDQUEzQixFQUFxQztBQUNuQ0UsWUFBQUEsbUJBQW1CLENBQUNJLE1BQXBCLENBQTJCRCxLQUEzQixFQUFrQyxDQUFsQztBQUNEO0FBQ0YsU0FKRDtBQUtEOztBQUNELFdBQUtFLFFBQUwsQ0FBYztBQUNaeEQsUUFBQUEsZUFBZSxFQUFFa0Qsa0JBREw7QUFFWmpELFFBQUFBLGdCQUFnQixFQUFFa0Q7QUFGTixPQUFkO0FBSUQ7OztXQUNELGlDQUF3QjVELFFBQXhCLEVBQXVDa0UsWUFBdkMsRUFBMERDLFVBQTFELEVBQTJFO0FBQ3pFLHlCQUE4QyxLQUFLMUUsS0FBbkQ7QUFBQSxVQUFRZ0IsZUFBUixnQkFBUUEsZUFBUjtBQUFBLFVBQXlCQyxnQkFBekIsZ0JBQXlCQSxnQkFBekI7QUFDQSxVQUFRK0MsVUFBUixHQUF1QixLQUFLbkUsS0FBNUIsQ0FBUW1FLFVBQVI7QUFDQSxnQ0FBMEJBLFVBQTFCLENBQVFDLE1BQVI7QUFBQSxVQUFRQSxNQUFSLG9DQUFpQixJQUFqQjtBQUNBLFVBQUlVLE1BQVcsR0FBRyxFQUFsQjtBQUNBLFVBQUlDLFFBQWEsR0FBRyxFQUFwQjs7QUFDQSxVQUFJRixVQUFVLENBQUMvRCxNQUFYLEdBQW9CLENBQXhCLEVBQTJCO0FBQ3pCLFlBQUlrRSxTQUFTLEdBQUdILFVBQVUsQ0FBQ04sR0FBWCxDQUFlLFVBQUNDLElBQUQ7QUFBQSxpQkFBZUEsSUFBSSxDQUFDSixNQUFELENBQW5CO0FBQUEsU0FBZixDQUFoQjs7QUFDQSxZQUFJMUQsUUFBSixFQUFjO0FBQ1pvRSxVQUFBQSxNQUFNLGdDQUFPM0QsZUFBUCxzQkFBMkI2RCxTQUEzQixFQUFOO0FBQ0FELFVBQUFBLFFBQVEsZ0NBQU8zRCxnQkFBUCxzQkFBNEJ5RCxVQUE1QixFQUFSO0FBQ0QsU0FIRCxNQUdPO0FBQ0wxRCxVQUFBQSxlQUFlLENBQUNvRCxHQUFoQixDQUFvQixVQUFDQyxJQUFELEVBQVlDLEtBQVosRUFBMkI7QUFDN0MsZ0JBQUlPLFNBQVMsQ0FBQ0MsT0FBVixDQUFrQlQsSUFBbEIsS0FBMkIsQ0FBQyxDQUFoQyxFQUFtQztBQUNqQ00sY0FBQUEsTUFBTSxDQUFDSSxJQUFQLENBQVlWLElBQVo7QUFDRDtBQUNGLFdBSkQ7QUFLQXBELFVBQUFBLGdCQUFnQixDQUFDbUQsR0FBakIsQ0FBcUIsVUFBQ0MsSUFBRCxFQUFZQyxLQUFaLEVBQTJCO0FBQzlDLGdCQUFJTyxTQUFTLENBQUNDLE9BQVYsQ0FBa0JULElBQUksQ0FBQ0osTUFBRCxDQUF0QixLQUFtQyxDQUFDLENBQXhDLEVBQTJDO0FBQ3pDVyxjQUFBQSxRQUFRLENBQUNHLElBQVQsQ0FBY1YsSUFBZDtBQUNEO0FBQ0YsV0FKRDtBQUtEO0FBQ0YsT0FqQkQsTUFpQk87QUFDTE0sUUFBQUEsTUFBTSxzQkFBTzNELGVBQVAsQ0FBTjtBQUNBNEQsUUFBQUEsUUFBUSxzQkFBTzNELGdCQUFQLENBQVI7QUFDRDs7QUFDRCxXQUFLdUQsUUFBTCxDQUFjO0FBQ1p4RCxRQUFBQSxlQUFlLHFCQUFNMkQsTUFBTixDQURIO0FBRVoxRCxRQUFBQSxnQkFBZ0IscUJBQU0yRCxRQUFOO0FBRkosT0FBZDtBQUlEOzs7V0FDRCw4QkFBcUI7QUFDbkIsYUFBTyxLQUFLNUUsS0FBTCxDQUFXZ0IsZUFBbEI7QUFDRDs7O1dBQ0QsK0JBQXNCO0FBQ3BCLGFBQU8sS0FBS2hCLEtBQUwsQ0FBV2lCLGdCQUFsQjtBQUNEOzs7V0FDRCxnQ0FBdUI7QUFDckIsV0FBS3VELFFBQUwsQ0FBYztBQUNaeEQsUUFBQUEsZUFBZSxFQUFFLEVBREw7QUFFWkMsUUFBQUEsZ0JBQWdCLEVBQUU7QUFGTixPQUFkO0FBSUQ7OztXQUNELDRCQUFtQjJDLElBQW5CLEVBQXlCO0FBQ3ZCLFVBQVFFLFdBQVIsR0FBd0IsS0FBSzlELEtBQTdCLENBQVE4RCxXQUFSO0FBQ0EsV0FBS1UsUUFBTCxDQUFjO0FBQ1p4RCxRQUFBQSxlQUFlLEVBQUU0QyxJQURMO0FBRVpvQixRQUFBQSxvQkFBb0Isc0JBQUtsQixXQUFMLEVBQW1CRixJQUFuQjtBQUZSLE9BQWQ7QUFJRDs7O1dBQ0QsNkJBQW9CQSxJQUFwQixFQUEwQjtBQUN4QixVQUFRRSxXQUFSLEdBQXdCLEtBQUs5RCxLQUE3QixDQUFROEQsV0FBUjtBQUNBLFdBQUtVLFFBQUwsQ0FBYztBQUNadkQsUUFBQUEsZ0JBQWdCLEVBQUUyQyxJQUROO0FBRVpxQixRQUFBQSxxQkFBcUIsc0JBQUtuQixXQUFMLEVBQW1CRixJQUFuQjtBQUZULE9BQWQ7QUFJRDs7O1dBQ0QsMkJBQWtCO0FBQUE7O0FBQ2hCLFVBQU1zQixTQUFTLDZCQUFHLEtBQUt6RCxTQUFMLENBQWVDLE9BQWxCLDJEQUFHLHVCQUF3QnlELGVBQXhCLEVBQWxCO0FBQ0EsYUFBT0QsU0FBUDtBQUNEOzs7V0FFRCx5QkFBZ0J0QixJQUFoQixFQUFpQztBQUFBOztBQUFBLFVBQVhsRCxJQUFXLHVFQUFKLEVBQUk7QUFDL0IsVUFBUXNELFVBQVIsR0FBdUIsS0FBS25FLEtBQTVCLENBQVFtRSxVQUFSO0FBQ0EsZ0NBQTBCQSxVQUExQixDQUFRQyxNQUFSO0FBQUEsVUFBUUEsTUFBUixvQ0FBaUIsSUFBakI7QUFDQSxVQUFJbUIsTUFBTSxHQUFHLEVBQWI7O0FBQ0EsVUFBSXhCLElBQUksQ0FBQ3lCLFVBQVQsRUFBcUI7QUFDbkIsWUFBTUMsUUFBUSxHQUFHMUIsSUFBSSxDQUFDeUIsVUFBdEI7QUFDQUMsUUFBQUEsUUFBUSxDQUFDbEIsR0FBVCxDQUFhLFVBQUNDLElBQUQsRUFBT0MsS0FBUCxFQUFpQjtBQUM1QixjQUFJRCxJQUFJLENBQUNnQixVQUFULEVBQXFCO0FBQ25CLFlBQUEsTUFBSSxDQUFDRSxlQUFMLENBQXFCbEIsSUFBSSxDQUFDZ0IsVUFBMUIsRUFBc0MzRSxJQUF0QztBQUNELFdBRkQsTUFFTztBQUNMMEUsWUFBQUEsTUFBTSxnQ0FBTzFFLElBQVAsSUFBYTJELElBQUksQ0FBQ0osTUFBRCxDQUFqQixFQUFOO0FBQ0Q7QUFDRixTQU5EO0FBT0QsT0FURCxNQVNPO0FBQ0xtQixRQUFBQSxNQUFNLGdDQUFPMUUsSUFBUCxJQUFha0QsSUFBSSxDQUFDSyxNQUFELENBQWpCLEVBQU47QUFDRDs7QUFDRCxhQUFPbUIsTUFBUDtBQUNEOzs7V0FFRCwyQkFBa0JJLFdBQWxCLEVBQXdEO0FBQUEsVUFBcEJDLFVBQW9CLHVFQUFQLEtBQU87QUFDdEQsVUFBTUMsSUFBSSxHQUFHRixXQUFXLENBQUM3RSxNQUFaLEdBQXFCLENBQWxDO0FBQ0Esa0NBQThCLEtBQUtkLEtBQW5DLENBQVE4RixVQUFSO0FBQUEsVUFBUUEsVUFBUixzQ0FBcUIsSUFBckI7QUFDQSxVQUFNN0UsT0FBTyxHQUFHMEUsV0FBVyxDQUFDcEIsR0FBWixDQUFnQixVQUFDQyxJQUFELEVBQVlDLEtBQVosRUFBMkI7QUFDekQsMEJBQStERCxJQUFJLENBQUN4RSxLQUFwRTtBQUFBLFlBQVF5RixRQUFSLGVBQVFBLFFBQVI7QUFBQSxZQUFrQk0sUUFBbEIsZUFBa0JBLFFBQWxCO0FBQUEsWUFBNEJDLFFBQTVCLGVBQTRCQSxPQUE1QjtBQUFBLFlBQXFDQyxJQUFyQyxlQUFxQ0EsSUFBckM7QUFBQSxZQUEyQ2hFLElBQTNDLGVBQTJDQSxJQUEzQztBQUFBLFlBQW9EUCxNQUFwRDs7QUFDQSxZQUFJK0MsS0FBSyxHQUFHLENBQVosRUFBZTtBQUNiLDhCQUNFO0FBQ0UsWUFBQSxTQUFTLEVBQUV4RixHQUFHLENBQ1pRLE9BQU8sQ0FBQ1AsTUFBRCxFQUFTLFFBQVQsQ0FESyxFQUVaTyxPQUFPLENBQUNQLE1BQUQsRUFBUyxjQUFULENBRkssQ0FEaEI7QUFLRSxZQUFBLEdBQUcsRUFBRXVGLEtBTFA7QUFNRSxZQUFBLE9BQU8sRUFBRSxtQkFBTTtBQUNidUIsY0FBQUEsUUFBTyxJQUFJQSxRQUFPLEVBQWxCO0FBQ0Q7QUFSSCxhQVNNdEUsTUFUTixnQkFXRTtBQUFNLFlBQUEsU0FBUyxFQUFFakMsT0FBTyxDQUFDUCxNQUFELEVBQVMsTUFBVDtBQUF4QixhQUEyQytHLElBQTNDLENBWEYsZUFZRTtBQUFNLFlBQUEsU0FBUyxFQUFFeEcsT0FBTyxDQUFDUCxNQUFELEVBQVMsTUFBVDtBQUF4QixhQUEyQ3VHLFFBQTNDLENBWkYsQ0FERjtBQWdCRDtBQUNGLE9BcEJlLENBQWhCO0FBcUJBLDBCQUNFO0FBQ0UsUUFBQSxTQUFTLEVBQUV4RyxHQUFHLENBQUNRLE9BQU8sQ0FBQ1AsTUFBRCxFQUFTLGNBQVQsQ0FBUixzQkFDWE8sT0FBTyxDQUFDUCxNQUFELEVBQVMscUJBQVQsQ0FESSxFQUM4QixDQUFDNEcsVUFBRCxJQUFlRixVQUQ3QyxFQURoQjtBQUlFLFFBQUEsS0FBSyxFQUFFO0FBQUVNLFVBQUFBLFVBQVUsRUFBRTtBQUFkO0FBSlQsU0FNR1AsV0FBVyxDQUFDcEIsR0FBWixDQUFnQixVQUFDQyxJQUFELEVBQVlDLEtBQVosRUFBMkI7QUFDMUMsWUFBSW9CLElBQUosRUFBVTtBQUNSLGNBQUlwQixLQUFLLEdBQUcsQ0FBWixFQUFlO0FBQ2IsZ0NBQU87QUFBSyxjQUFBLEdBQUcsRUFBRUE7QUFBVixlQUFrQkQsSUFBbEIsQ0FBUDtBQUNELFdBRkQsTUFFTyxJQUFJQyxLQUFLLElBQUksQ0FBYixFQUFnQjtBQUNyQixnQ0FDRSxvQkFBQyxPQUFEO0FBQ0UsY0FBQSxPQUFPLEVBQUV4RCxPQURYO0FBRUUsY0FBQSxLQUFLLEVBQUUsSUFGVDtBQUdFLGNBQUEsU0FBUyxFQUFDLFFBSFo7QUFJRSxjQUFBLE9BQU8sRUFBRSxDQUFDLE9BQUQsQ0FKWDtBQUtFLGNBQUEsR0FBRyxFQUFFd0QsS0FMUCxDQU1FOztBQU5GLDRCQVFFLG9CQUFDLE1BQUQ7QUFBUSxjQUFBLElBQUksRUFBQztBQUFiLDZDQUNLLG9CQUFDLFlBQUQsT0FETCxDQVJGLENBREY7QUFjRCxXQWZNLE1BZUE7QUFDTCxtQkFBTyxJQUFQO0FBQ0Q7QUFDRixTQXJCRCxNQXFCTztBQUNMLDhCQUFPO0FBQUssWUFBQSxHQUFHLEVBQUVBO0FBQVYsYUFBa0JELElBQWxCLENBQVA7QUFDRDtBQUNGLE9BekJBLENBTkgsQ0FERjtBQW1DRDs7O1dBQ0QsNEJBQW1CMkIsYUFBbkIsRUFBdUNqQyxNQUF2QyxFQUFvRDtBQUNsRCx5QkFBeUQsS0FBS2xFLEtBQTlEO0FBQUEsK0NBQVFvRyxVQUFSO0FBQUEsVUFBUUEsVUFBUixzQ0FBcUIsSUFBckI7QUFBQSw4Q0FBMkJDLE9BQTNCO0FBQUEsVUFBMkJBLE9BQTNCLHFDQUFxQyxFQUFyQztBQUFBLFVBQXlDQyxXQUF6QyxnQkFBeUNBLFdBQXpDOztBQUNBLHFCQUE2QjFHLE1BQU0sRUFBbkM7QUFBQSxVQUFRMkcsZ0JBQVIsWUFBUUEsZ0JBQVI7O0FBQ0EsVUFBTUMsVUFBVSxHQUFHLEVBQW5CO0FBQ0EsVUFBSUMsUUFBUSxHQUFHLElBQWY7QUFDQSxVQUFJLENBQUFILFdBQVcsU0FBWCxJQUFBQSxXQUFXLFdBQVgsWUFBQUEsV0FBVyxDQUFFRyxRQUFiLE1BQTBCLEtBQTlCLEVBQXFDQSxRQUFRLEdBQUcsS0FBWCxDQUFyQyxLQUNLLElBQUlGLGdCQUFnQixDQUFDRSxRQUFqQixLQUE4QixLQUFsQyxFQUF5Q0EsUUFBUSxHQUFHLEtBQVg7QUFDOUNOLE1BQUFBLGFBQWEsQ0FBQzVCLEdBQWQsQ0FBa0IsVUFBQ0MsSUFBRCxFQUFZQyxLQUFaLEVBQTJCO0FBQzNDLDJCQUNFRCxJQUFJLENBQUN4RSxLQURQO0FBQUEsWUFBUXlGLFFBQVIsZ0JBQVFBLFFBQVI7QUFBQSxZQUFrQk0sUUFBbEIsZ0JBQWtCQSxRQUFsQjtBQUFBLFlBQTRCQyxPQUE1QixnQkFBNEJBLE9BQTVCO0FBQUEsWUFBcUNDLElBQXJDLGdCQUFxQ0EsSUFBckM7QUFBQSxZQUEyQ1MsVUFBM0MsZ0JBQTJDQSxVQUEzQztBQUFBLFlBQTBEaEYsTUFBMUQ7O0FBRUEsWUFBSWdGLFVBQUosRUFBZ0I7QUFDZCxjQUFJLE9BQU9BLFVBQVAsSUFBcUIsUUFBekIsRUFBbUM7QUFDakMsZ0JBQUlDLElBQUksQ0FBQ0QsVUFBRCxDQUFSLEVBQXNCO0FBQ3BCRixjQUFBQSxVQUFVLENBQUN0QixJQUFYLENBQWdCVixJQUFoQjtBQUNEO0FBQ0YsV0FKRCxNQUlPLElBQUksT0FBT2tDLFVBQVAsSUFBcUIsVUFBekIsRUFBcUM7QUFDMUMsZ0JBQU16RSxJQUFJLEdBQUd5RSxVQUFVLENBQUN4QyxNQUFELENBQXZCO0FBQ0FqQyxZQUFBQSxJQUFJLElBQUl1RSxVQUFVLENBQUN0QixJQUFYLENBQWdCVixJQUFoQixDQUFSO0FBQ0Q7QUFDRixTQVRELE1BU087QUFDTGdDLFVBQUFBLFVBQVUsQ0FBQ3RCLElBQVgsQ0FBZ0JWLElBQWhCO0FBQ0Q7QUFDRixPQWZEO0FBZ0JBLFVBQU1xQixJQUFJLEdBQUdXLFVBQVUsQ0FBQzFGLE1BQVgsR0FBb0IsQ0FBakM7QUFFQSxVQUFNRyxPQUFPLEdBQUd1RixVQUFVLENBQUNqQyxHQUFYLENBQWUsVUFBQ0MsSUFBRCxFQUFZQyxLQUFaLEVBQTJCO0FBQ3hELDJCQUNFRCxJQUFJLENBQUN4RSxLQURQO0FBQUEsWUFBUXlGLFFBQVIsZ0JBQVFBLFFBQVI7QUFBQSxZQUFrQk0sUUFBbEIsZ0JBQWtCQSxRQUFsQjtBQUFBLFlBQTRCQyxTQUE1QixnQkFBNEJBLE9BQTVCO0FBQUEsWUFBcUNVLFVBQXJDLGdCQUFxQ0EsVUFBckM7QUFBQSxZQUFpRFQsSUFBakQsZ0JBQWlEQSxJQUFqRDtBQUFBLFlBQXVEaEUsSUFBdkQsZ0JBQXVEQSxJQUF2RDtBQUFBLFlBQWdFUCxNQUFoRTs7QUFFQSxZQUFJK0MsS0FBSyxHQUFHLENBQVosRUFBZTtBQUNiLDhCQUNFO0FBQ0UsWUFBQSxTQUFTLEVBQUV4RixHQUFHLENBQ1pRLE9BQU8sQ0FBQ1AsTUFBRCxFQUFTLFFBQVQsQ0FESyxFQUVaTyxPQUFPLENBQUNQLE1BQUQsRUFBUyxjQUFULENBRkssQ0FEaEI7QUFLRSxZQUFBLEdBQUcsRUFBRXVGLEtBTFA7QUFNRSxZQUFBLE9BQU8sRUFBRSxtQkFBTTtBQUNidUIsY0FBQUEsU0FBTyxJQUFJQSxTQUFPLENBQUM5QixNQUFELENBQWxCO0FBQ0Q7QUFSSCxhQVNNeEMsTUFUTixHQVdHK0UsUUFBUSxLQUFLLEtBQWIsaUJBQ0M7QUFBTSxZQUFBLFNBQVMsRUFBRWhILE9BQU8sQ0FBQ1AsTUFBRCxFQUFTLE1BQVQ7QUFBeEIsYUFBMkMrRyxJQUEzQyxDQVpKLGVBY0U7QUFBTSxZQUFBLFNBQVMsRUFBRXhHLE9BQU8sQ0FBQ1AsTUFBRCxFQUFTLE1BQVQ7QUFBeEIsYUFBMkN1RyxRQUEzQyxDQWRGLENBREY7QUFrQkQ7QUFDRixPQXZCZSxDQUFoQjtBQXlCQSxhQUFPZSxVQUFVLENBQUNqQyxHQUFYLENBQWUsVUFBQ0MsSUFBRCxFQUFZQyxLQUFaLEVBQTJCO0FBQy9DLDJCQUNFRCxJQUFJLENBQUN4RSxLQURQO0FBQUEsWUFBUXlGLFFBQVIsZ0JBQVFBLFFBQVI7QUFBQSxZQUFrQk0sUUFBbEIsZ0JBQWtCQSxRQUFsQjtBQUFBLFlBQTRCQyxTQUE1QixnQkFBNEJBLE9BQTVCO0FBQUEsWUFBcUNVLFVBQXJDLGdCQUFxQ0EsVUFBckM7QUFBQSxZQUFpRFQsSUFBakQsZ0JBQWlEQSxJQUFqRDtBQUFBLFlBQTBEdkUsTUFBMUQ7O0FBRUEsWUFBSW1FLElBQUosRUFBVTtBQUNSLGNBQUlwQixLQUFLLEdBQUcsQ0FBWixFQUFlO0FBQ2IsZ0NBQ0U7QUFDRSxjQUFBLFNBQVMsRUFBRXhGLEdBQUcsQ0FBQ1EsT0FBTyxDQUFDUCxNQUFELEVBQVMsUUFBVCxDQUFSLHNCQUNYTyxPQUFPLENBQUNQLE1BQUQsRUFBUyxjQUFULENBREksRUFDdUJ1RixLQUFLLEtBQUssQ0FEakMsRUFEaEI7QUFJRSxjQUFBLEdBQUcsRUFBRUEsS0FKUDtBQUtFLGNBQUEsT0FBTyxFQUFFLG1CQUFNO0FBQ2J1QixnQkFBQUEsU0FBTyxJQUFJQSxTQUFPLENBQUM5QixNQUFELENBQWxCO0FBQ0Q7QUFQSCxlQVFNeEMsTUFSTixHQVVHK0UsUUFBUSxLQUFLLEtBQWIsaUJBQ0M7QUFBTSxjQUFBLFNBQVMsRUFBRWhILE9BQU8sQ0FBQ1AsTUFBRCxFQUFTLE1BQVQ7QUFBeEIsZUFBMkMrRyxJQUEzQyxDQVhKLGVBYUU7QUFBTSxjQUFBLFNBQVMsRUFBRXhHLE9BQU8sQ0FBQ1AsTUFBRCxFQUFTLE1BQVQ7QUFBeEIsZUFBMkN1RyxRQUEzQyxDQWJGLENBREY7QUFpQkQsV0FsQkQsTUFrQk8sSUFBSWhCLEtBQUssSUFBSSxDQUFiLEVBQWdCO0FBQ3JCLGdDQUNFLG9CQUFDLE9BQUQ7QUFDRSxjQUFBLFNBQVMsRUFBQyxRQURaO0FBRUUsY0FBQSxLQUFLLEVBQUUsSUFGVDtBQUdFLGNBQUEsT0FBTyxFQUFFeEQsT0FIWDtBQUlFLGNBQUEsT0FBTyxFQUFFLENBQUMsT0FBRCxDQUpYO0FBS0UsY0FBQSxHQUFHLEVBQUV3RCxLQUxQLENBTUU7O0FBTkYsNEJBUUU7QUFBSyxjQUFBLFNBQVMsRUFBRWhGLE9BQU8sQ0FBQ1AsTUFBRCxFQUFTLFFBQVQ7QUFBdkIsNEJBQ0Usb0JBQUMsZ0JBQUQsT0FERixDQVJGLENBREY7QUFjRCxXQWZNLE1BZUE7QUFDTCxtQkFBTyxJQUFQO0FBQ0Q7QUFDRixTQXJDRCxNQXFDTztBQUNMLDhCQUNFO0FBQ0UsWUFBQSxTQUFTLEVBQUVELEdBQUcsQ0FBQ1EsT0FBTyxDQUFDUCxNQUFELEVBQVMsUUFBVCxDQUFSLHNCQUNYTyxPQUFPLENBQUNQLE1BQUQsRUFBUyxjQUFULENBREksRUFDdUJ1RixLQUFLLEtBQUssQ0FEakMsRUFEaEI7QUFJRSxZQUFBLEdBQUcsRUFBRUEsS0FKUDtBQUtFLFlBQUEsT0FBTyxFQUFFLG1CQUFNO0FBQ2J1QixjQUFBQSxTQUFPLElBQUlBLFNBQU8sQ0FBQzlCLE1BQUQsQ0FBbEI7QUFDRDtBQVBILGFBUU14QyxNQVJOLEdBVUcrRSxRQUFRLEtBQUssS0FBYixpQkFDQztBQUFNLFlBQUEsU0FBUyxFQUFFaEgsT0FBTyxDQUFDUCxNQUFELEVBQVMsTUFBVDtBQUF4QixhQUEyQytHLElBQTNDLENBWEosZUFhRTtBQUFNLFlBQUEsU0FBUyxFQUFFeEcsT0FBTyxDQUFDUCxNQUFELEVBQVMsTUFBVDtBQUF4QixhQUEyQ3VHLFFBQTNDLENBYkYsQ0FERjtBQWlCRDtBQUNGLE9BM0RNLENBQVAsQ0FsRGtELENBOEdsRDtBQUNELEssQ0FDRDs7OztXQUNBLG9CQUFXbUIsWUFBWCxRQUFnRTtBQUFBOztBQUFBLFVBQWhDbEcsUUFBZ0MsUUFBaENBLFFBQWdDO0FBQUEsVUFBdEJtRyxhQUFzQixRQUF0QkEsYUFBc0I7QUFDOUQsVUFBSUMsT0FBTyxHQUFHLEVBQWQ7QUFDQSxrQ0FBZ0QsS0FBSzlHLEtBQUwsQ0FBVytHLFNBQTNEO0FBQUEseURBQVFDLFNBQVI7QUFBQSxVQUFRQSxTQUFSLHVDQUFvQixLQUFwQjtBQUFBLHlEQUEyQkMsV0FBM0I7QUFBQSxVQUEyQkEsV0FBM0IsdUNBQXlDLEVBQXpDO0FBQ0EsVUFBUTVGLGVBQVIsR0FBNEIsS0FBS2xCLEtBQWpDLENBQVFrQixlQUFSOztBQUNBLFVBQUlYLFFBQUosRUFBYztBQUNaLFlBQUltRyxhQUFhLENBQUMsQ0FBRCxDQUFiLENBQWlCSyxNQUFqQixJQUEyQixDQUFDTCxhQUFhLENBQUMsQ0FBRCxDQUFiLENBQWlCcEIsUUFBakQsRUFBMkQ7QUFDekQsY0FBSW1CLFlBQVksQ0FBQyxDQUFELENBQVosS0FBb0J2RixlQUF4QixFQUF5QztBQUN2Q3lGLFlBQUFBLE9BQU8sR0FBR0QsYUFBYSxDQUFDLENBQUQsQ0FBYixDQUFpQk0sT0FBakIsQ0FBeUJDLFNBQXpCLENBQW1DSixTQUFuQyxDQUFWO0FBQ0EsaUJBQUtyQyxRQUFMLENBQWM7QUFDWnRELGNBQUFBLGVBQWUsRUFBRXVGLFlBQVksQ0FBQyxDQUFEO0FBRGpCLGFBQWQ7QUFHRDtBQUNGO0FBQ0YsT0FURCxNQVNPO0FBQ0wsYUFBS2pDLFFBQUwsQ0FBYztBQUNadEQsVUFBQUEsZUFBZSxFQUFFeUY7QUFETCxTQUFkO0FBR0Q7O0FBQ0QsVUFBTXpCLFNBQVMsNkJBQUcsS0FBS3pELFNBQUwsQ0FBZUMsT0FBbEIsMkRBQUcsdUJBQXdCd0YsY0FBeEIsRUFBbEI7QUFDQUosTUFBQUEsV0FBVyxJQUFJLEtBQUt4RyxTQUFMLGlDQUFvQjRFLFNBQXBCLDJCQUFnQzRCLFdBQWhDLEVBQThDSCxPQUE5QyxHQUFmO0FBQ0Q7OztXQUNELHVCQUFjO0FBQUE7O0FBQ1oscUNBQUtsRixTQUFMLENBQWVDLE9BQWYsa0ZBQXdCeUYsV0FBeEI7QUFDRDs7O1dBQ0QsaUJBQVF0SCxLQUFSLEVBQWV1SCxJQUFmLEVBQXFCO0FBQUE7O0FBQ25CLFVBQUlDLE9BQU8sR0FBR0QsSUFBZDs7QUFDQSxVQUFJdkgsS0FBSyxTQUFMLElBQUFBLEtBQUssV0FBTCxJQUFBQSxLQUFLLENBQUUrRCxJQUFQLElBQWUsQ0FBQS9ELEtBQUssU0FBTCxJQUFBQSxLQUFLLFdBQUwsMkJBQUFBLEtBQUssQ0FBRStELElBQVAsNERBQWFqRCxNQUFiLElBQXNCLENBQXpDLEVBQTRDO0FBQzFDLFlBQUlpRCxJQUFJLEdBQUcvRCxLQUFLLENBQUMrRCxJQUFqQjs7QUFDQSxhQUFLLElBQUkwRCxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxJQUFHMUQsSUFBSCxhQUFHQSxJQUFILHVCQUFHQSxJQUFJLENBQUVqRCxNQUFULENBQWpCLEVBQWtDMkcsQ0FBQyxFQUFuQyxFQUF1QztBQUNyQyxjQUFJMUQsSUFBSSxDQUFDMEQsQ0FBRCxDQUFKLENBQVFsSCxLQUFSLElBQWlCZ0gsSUFBckIsRUFBMkI7QUFDekJDLFlBQUFBLE9BQU8sR0FBR3pELElBQUksQ0FBQzBELENBQUQsQ0FBSixDQUFRQyxLQUFsQjtBQUNEO0FBQ0Y7QUFDRjs7QUFDRCxhQUFPRixPQUFQO0FBQ0Q7OztXQUNELHNCQUFhekQsSUFBYixFQUFtQjtBQUFBOztBQUNqQixxQ0FBS1AsUUFBTCxDQUFjM0IsT0FBZCxrRkFBdUI0QixLQUF2QixDQUE2QmtFLE9BQTdCLENBQXFDNUQsSUFBckM7QUFDRDs7O1dBQ0QscUJBQVlBLElBQVosRUFBa0I7QUFBQTs7QUFDaEIsb0NBQUs2RCxPQUFMLENBQWEvRixPQUFiLGdGQUFzQjRCLEtBQXRCLENBQTRCa0UsT0FBNUIsQ0FBb0M1RCxJQUFwQztBQUNEOzs7V0FXRCxrQkFBUztBQUFBOztBQUNQLHlCQWtCSSxLQUFLL0QsS0FsQlQ7QUFBQSw4Q0FDRTZILE9BREY7QUFBQSxVQUNFQSxPQURGLHFDQUNZLEVBRFo7QUFBQSwrQ0FFRS9CLFVBRkY7QUFBQSxVQUVFQSxVQUZGLHNDQUVlLElBRmY7QUFBQSxVQUdFTCxRQUhGLGdCQUdFQSxRQUhGO0FBQUEsK0NBSUVxQyxTQUpGO0FBQUEsVUFJRUEsU0FKRixzQ0FJYyxFQUpkO0FBQUEsK0NBS0UzRCxVQUxGO0FBQUEsVUFLRUEsVUFMRixzQ0FLZSxFQUxmO0FBQUEsK0NBTUU0QyxTQU5GO0FBQUEsVUFNRUEsU0FORixzQ0FNYyxFQU5kO0FBQUEsK0NBT0VnQixTQVBGO0FBQUEsVUFPRUEsU0FQRixzQ0FPYyxFQVBkO0FBQUEsK0NBUUVDLFFBUkY7QUFBQSxVQVFFQSxRQVJGLHNDQVFhLEtBUmI7QUFBQSwrQ0FTRUMsWUFURjtBQUFBLFVBU0VBLFlBVEYsc0NBU2lCLEVBVGpCO0FBQUEsK0NBVUVDLGNBVkY7QUFBQSxVQVVFQSxjQVZGLHNDQVVtQixJQVZuQjtBQUFBLDhDQVdFN0IsT0FYRjtBQUFBLFVBV0VBLE9BWEYscUNBV1ksRUFYWjtBQUFBLCtDQVlFRCxVQVpGO0FBQUEsVUFZRUEsVUFaRixzQ0FZZSxJQVpmO0FBQUEsVUFhRStCLFVBYkYsZ0JBYUVBLFVBYkY7QUFBQSwrQ0FjRUMsZUFkRjtBQUFBLFVBY0VBLGVBZEYsc0NBY29CLElBZHBCO0FBQUEsVUFlRUMsU0FmRixnQkFlRUEsU0FmRjtBQUFBLCtDQWdCRUMsa0JBaEJGO0FBQUEsVUFnQkVBLGtCQWhCRixzQ0FnQnVCLFFBaEJ2QjtBQUFBLFVBaUJFaEMsV0FqQkYsZ0JBaUJFQSxXQWpCRjs7QUFtQkEsOEJBU0luQyxVQVRKLENBQ0VWLEtBREY7QUFBQSxVQUNFQSxLQURGLGtDQUNVLEVBRFY7QUFBQSxrQ0FTSVUsVUFUSixDQUVFb0UsWUFGRjtBQUFBLFVBRUVBLFlBRkYsc0NBRWlCLElBRmpCO0FBQUEsa0NBU0lwRSxVQVRKLENBR0VxRSxZQUhGO0FBQUEsVUFHRUEsWUFIRixzQ0FHaUIsSUFIakI7QUFBQSxrQ0FTSXJFLFVBVEosQ0FJRXNFLGdCQUpGO0FBQUEsVUFJRUEsZ0JBSkYsc0NBSXFCLElBSnJCO0FBQUEsa0NBU0l0RSxVQVRKLENBS0V1RSxXQUxGO0FBQUEsVUFLRUEsV0FMRixzQ0FLZ0IsSUFMaEI7QUFBQSxrQ0FTSXZFLFVBVEosQ0FNRXdFLFlBTkY7QUFBQSxVQU1FQSxZQU5GLHNDQU1pQixFQU5qQjtBQUFBLGtDQVNJeEUsVUFUSixDQU9FeUUsVUFQRjtBQUFBLFVBT0VBLFVBUEYsc0NBT2UsRUFQZjtBQUFBLFVBUUtDLGdCQVJMLDRCQVNJMUUsVUFUSjs7QUFXQSw2QkFLSTRDLFNBTEosQ0FDRXRELEtBREY7QUFBQSxVQUNTcUYsU0FEVCxpQ0FDcUIsRUFEckI7QUFBQSxrQ0FLSS9CLFNBTEosQ0FFRWpCLFVBRkY7QUFBQSxVQUVjaUQsVUFGZCxzQ0FFMkIsSUFGM0I7QUFBQSxrQ0FLSWhDLFNBTEosQ0FHRWlDLFVBSEY7QUFBQSxVQUdFQSxVQUhGLHNDQUdlLE9BSGY7QUFBQSxVQUlLQyxlQUpMLDRCQUtJbEMsU0FMSjs7QUFPQSxVQUFJbUMsV0FBVztBQUFLWCxRQUFBQSxZQUFZLEVBQVpBLFlBQUw7QUFBbUI5RSxRQUFBQSxLQUFLLEVBQUxBO0FBQW5CLFNBQTZCb0YsZ0JBQTdCLENBQWY7O0FBQ0EsVUFBSUosZ0JBQUosRUFBc0I7QUFDcEJTLFFBQUFBLFdBQVcsbUNBQ05BLFdBRE07QUFFVFAsVUFBQUEsWUFBWTtBQUNWeEgsWUFBQUEsZUFBZSxFQUFFLEtBQUtoQixLQUFMLENBQVdnQixlQURsQjtBQUVWZ0ksWUFBQUEsUUFBUSxFQUFFLEtBQUtDLG9CQUFMLENBQTBCQyxJQUExQixDQUErQixJQUEvQixDQUZBO0FBR1ZDLFlBQUFBLFdBQVcsRUFBRSxLQUFLQyx1QkFBTCxDQUE2QkYsSUFBN0IsQ0FBa0MsSUFBbEMsQ0FISDtBQUlWRyxZQUFBQSxXQUFXLEVBQUU7QUFKSCxhQUtQYixZQUxPO0FBRkgsVUFBWDtBQVVEOztBQUNELFVBQUljLFdBQWtCLEdBQUcsRUFBekI7QUFDQSxVQUFNQyxXQUFnQixHQUFHLEVBQXpCO0FBQ0EsVUFBTUMsV0FBZ0IsR0FBRyxFQUF6QjtBQUNBLFVBQU1DLFlBQWlCLEdBQUcsRUFBMUI7QUFDQSxVQUFNekQsYUFBa0IsR0FBRyxFQUEzQjtBQUNBMEIsTUFBQUEsT0FBTyxDQUFDdEQsR0FBUixDQUFZLFVBQUNDLElBQUQsRUFBZTtBQUFBOztBQUN6QixZQUFJcUYsSUFBSSxxQkFBUXJGLElBQVIsQ0FBUjs7QUFDQSxZQUFJcUYsSUFBSSxDQUFDQyxNQUFMLEtBQWdCLElBQWhCLElBQXdCLGlCQUFBRCxJQUFJLENBQUNDLE1BQUwsOERBQWE3SCxJQUFiLE1BQXNCLElBQWxELEVBQXdEO0FBQUE7O0FBQ3REeUgsVUFBQUEsV0FBVyxDQUFDeEUsSUFBWixDQUFpQjtBQUNmOUUsWUFBQUEsSUFBSSxFQUFFeUosSUFBSSxDQUFDRSxLQUFMLElBQWNGLElBQUksQ0FBQ0csU0FEVjtBQUVmdEMsWUFBQUEsS0FBSyxFQUFFLGtCQUFBbUMsSUFBSSxDQUFDQyxNQUFMLGdFQUFhcEMsS0FBYixLQUFzQm1DLElBQUksQ0FBQ0ksS0FGbkI7QUFHZmpKLFlBQUFBLElBQUksRUFBRTZJLElBQUksQ0FBQzdJLElBSEk7QUFJZmhCLFlBQUFBLEtBQUssRUFBRTZKLElBQUksQ0FBQzdKLEtBSkc7QUFLZmtLLFlBQUFBLFFBQVEsbUJBQUVMLElBQUksQ0FBQ0MsTUFBUCxrREFBRSxjQUFhSSxRQUxSO0FBTWZDLFlBQUFBLFVBQVUsbUJBQUVOLElBQUksQ0FBQ0MsTUFBUCxrREFBRSxjQUFhSztBQU5WLFdBQWpCO0FBUUQ7O0FBQ0QsZUFBT04sSUFBSSxDQUFDQyxNQUFaO0FBQ0FELFFBQUFBLElBQUksQ0FBQ08sTUFBTCxLQUFnQixLQUFoQixJQUNFVCxXQUFXLENBQUN6RSxJQUFaLENBQWlCO0FBQ2Y5RSxVQUFBQSxJQUFJLEVBQUV5SixJQUFJLENBQUNFLEtBQUwsSUFBY0YsSUFBSSxDQUFDRyxTQURWO0FBRWZ0QyxVQUFBQSxLQUFLLEVBQUVtQyxJQUFJLENBQUNJLEtBRkc7QUFHZkksVUFBQUEsS0FBSyxFQUFFUixJQUFJLENBQUNRLEtBQUwsR0FBYVIsSUFBSSxDQUFDUSxLQUFsQixHQUEwQixFQUhsQjtBQUlmckosVUFBQUEsSUFBSSxFQUFFNkksSUFBSSxDQUFDN0ksSUFKSTtBQUtmc0osVUFBQUEsSUFBSSxFQUFFVCxJQUFJLENBQUNTLElBTEk7QUFNZkMsVUFBQUEsUUFBUSxFQUFFVixJQUFJLENBQUNVLFFBTkE7QUFPZnZLLFVBQUFBLEtBQUssRUFBRUwsSUFBSSxtQkFBTWtLLElBQUksQ0FBQzdKLEtBQVgsR0FBb0IsQ0FBQyxjQUFELEVBQWlCLE9BQWpCLENBQXBCO0FBUEksU0FBakIsQ0FERjs7QUFVQSxZQUNFLGdCQUFBNkosSUFBSSxDQUFDN0osS0FBTCw0REFBWTRKLFlBQVosTUFBNkJZLFNBQTdCLElBQ0EsaUJBQUFYLElBQUksQ0FBQzdKLEtBQUwsOERBQVk0SixZQUFaLE1BQTZCLElBRi9CLEVBR0U7QUFBQTs7QUFDQSxjQUFNeEosSUFBSSxHQUFHeUosSUFBSSxDQUFDRSxLQUFMLElBQWNGLElBQUksQ0FBQ0csU0FBaEM7QUFDQUosVUFBQUEsWUFBWSxDQUFDeEosSUFBRCxDQUFaLG1CQUFxQnlKLElBQUksQ0FBQzdKLEtBQTFCLGlEQUFxQixhQUFZNEosWUFBakM7QUFDRDs7QUFDRCxlQUFPQyxJQUFJLENBQUNRLEtBQVo7QUFDQSxlQUFPUixJQUFJLENBQUNTLElBQVo7O0FBQ0EsWUFBSVQsSUFBSSxDQUFDWSxZQUFULEVBQXVCO0FBQ3JCWixVQUFBQSxJQUFJLENBQUNhLFdBQUwsR0FBbUI7QUFDakIxSixZQUFBQSxJQUFJLEVBQUU2SSxJQUFJLENBQUM3SSxJQURNO0FBRWpCaEIsWUFBQUEsS0FBSyxFQUFFNkosSUFBSSxDQUFDN0o7QUFGSyxXQUFuQjtBQUlEOztBQUNELGVBQU82SixJQUFJLENBQUM3SSxJQUFaOztBQUNBLFlBQUkySixRQUFRLHFCQUFRZCxJQUFJLENBQUM3SixLQUFiLENBQVo7O0FBQ0EsWUFBSTZKLElBQUksQ0FBQ2UsS0FBVCxFQUFnQjtBQUNkZixVQUFBQSxJQUFJO0FBQ0ZnQixZQUFBQSxNQUFNLEVBQUUsZ0JBQUN0RCxJQUFELEVBQWU7QUFDckIsa0NBQ0UsMENBQ0dBLElBQUksS0FBSyxFQUFULElBQWVBLElBQUksS0FBSyxJQUF4QixJQUFnQ0EsSUFBSSxLQUFLaUQsU0FBekMsaUJBQ0M7QUFBTSxnQkFBQSxTQUFTLEVBQUUvSyxPQUFPLENBQUNQLE1BQUQsRUFBUyxVQUFUO0FBQXhCLDhCQUNFO0FBQU0sZ0JBQUEsU0FBUyxFQUFFTyxPQUFPLENBQUNQLE1BQUQsRUFBUyxVQUFUO0FBQXhCLGlCQUNHLE1BQUksQ0FBQzRMLE9BQUwsQ0FBYUgsUUFBYixFQUF1QnBELElBQXZCLENBREgsQ0FERixDQUZKLENBREY7QUFXRCxhQWJDO0FBY0Z3RCxZQUFBQSxRQUFRLEVBQUU7QUFkUixhQWVDbEIsSUFmRCxDQUFKO0FBaUJELFNBbEJELE1Ba0JPO0FBQ0xBLFVBQUFBLElBQUk7QUFDRmdCLFlBQUFBLE1BQU0sRUFBRSxnQkFBQ3RELElBQUQsRUFBZTtBQUNyQixrQ0FBTywwQ0FBRyxNQUFJLENBQUN1RCxPQUFMLENBQWFILFFBQWIsRUFBdUJwRCxJQUF2QixDQUFILENBQVA7QUFDRDtBQUhDLGFBSUNzQyxJQUpELENBQUo7QUFNRDs7QUFDRCxlQUFPQSxJQUFJLENBQUM3SixLQUFaO0FBQ0EsWUFBSSxVQUFBNkosSUFBSSxVQUFKLHNDQUFNbUIsVUFBTixNQUFxQixLQUF6QixFQUFnQ3ZCLFdBQVcsQ0FBQ3ZFLElBQVosQ0FBaUIyRSxJQUFqQjtBQUNqQyxPQXBFRDtBQXFFQSxVQUFNb0IsV0FBZ0IsR0FBRyxFQUF6Qjs7QUFDQSxxQkFBNkJyTCxNQUFNLEVBQW5DO0FBQUEsVUFBUTJHLGdCQUFSLFlBQVFBLGdCQUFSOztBQUNBLFVBQUlFLFFBQVEsR0FBRyxJQUFmO0FBQ0EsVUFBSSxDQUFBSCxXQUFXLFNBQVgsSUFBQUEsV0FBVyxXQUFYLFlBQUFBLFdBQVcsQ0FBRUcsUUFBYixNQUEwQixLQUE5QixFQUFxQ0EsUUFBUSxHQUFHLEtBQVgsQ0FBckMsS0FDSyxJQUFJRixnQkFBZ0IsQ0FBQ0UsUUFBakIsS0FBOEIsS0FBbEMsRUFBeUNBLFFBQVEsR0FBRyxLQUFYOztBQUM5QyxVQUFJTCxVQUFVLElBQUksSUFBbEIsRUFBd0I7QUFDdEIsWUFBSUMsT0FBTyxDQUFDcEIsT0FBUixDQUFnQixRQUFoQixJQUE0QixDQUFDLENBQWpDLEVBQW9DO0FBQ2xDa0IsVUFBQUEsYUFBYSxDQUFDakIsSUFBZCxlQUNFLG9CQUFDLE1BQUQ7QUFDRSxZQUFBLE9BQU8sRUFBRSxpQkFBQ2hCLE1BQUQsRUFBaUI7QUFDeEIsa0JBQUlpRSxVQUFKLEVBQWdCO0FBQ2RBLGdCQUFBQSxVQUFVLENBQUNqRSxNQUFNLENBQUNrRCxTQUFQLElBQW9CbEQsTUFBckIsRUFBNkIsUUFBN0IsQ0FBVjtBQUNBO0FBQ0Q7O0FBQ0QsY0FBQSxNQUFJLENBQUNnSCxRQUFMLENBQWNoSCxNQUFNLENBQUNrRCxTQUFQLElBQW9CbEQsTUFBbEMsRUFBMEMsUUFBMUM7QUFDRCxhQVBIO0FBUUUsWUFBQSxJQUFJLGVBQUUsb0JBQUMsV0FBRDtBQVJSLDRCQURGO0FBY0Q7O0FBQ0QsWUFBSW1DLE9BQU8sQ0FBQ3BCLE9BQVIsQ0FBZ0IsUUFBaEIsSUFBNEIsQ0FBQyxDQUFqQyxFQUFvQztBQUNsQ2tCLFVBQUFBLGFBQWEsQ0FBQ2pCLElBQWQsZUFDRSxvQkFBQyxNQUFEO0FBQ0UsWUFBQSxPQUFPLEVBQUUsaUJBQUNoQixNQUFELEVBQWlCO0FBQ3hCLGtCQUFJaUUsVUFBSixFQUFnQjtBQUNkQSxnQkFBQUEsVUFBVSxDQUFDakUsTUFBTSxDQUFDa0QsU0FBUCxJQUFvQmxELE1BQXJCLEVBQTZCLFFBQTdCLENBQVY7QUFDQTtBQUNEOztBQUNELGNBQUEsTUFBSSxDQUFDZ0gsUUFBTCxDQUFjaEgsTUFBTSxDQUFDa0QsU0FBUCxJQUFvQmxELE1BQWxDLEVBQTBDLFFBQTFDO0FBQ0QsYUFQSDtBQVFFLFlBQUEsSUFBSSxlQUFFLG9CQUFDLFlBQUQ7QUFSUiw0QkFERjtBQWNEO0FBQ0Y7O0FBQ0QsVUFBSW1DLE9BQU8sQ0FBQ3BCLE9BQVIsQ0FBZ0IsS0FBaEIsSUFBeUIsQ0FBQyxDQUE5QixFQUFpQztBQUMvQmdHLFFBQUFBLFdBQVcsQ0FBQy9GLElBQVosZUFDRSxvQkFBQyxNQUFEO0FBQ0UsVUFBQSxJQUFJLEVBQUUsU0FEUjtBQUVFLFVBQUEsT0FBTyxFQUFFLG1CQUFNO0FBQ2IsZ0JBQVFpRCxVQUFSLEdBQXVCLE1BQUksQ0FBQ25JLEtBQTVCLENBQVFtSSxVQUFSOztBQUNBLGdCQUFJQSxVQUFKLEVBQWdCO0FBQ2RBLGNBQUFBLFVBQVU7QUFDVjtBQUNEOztBQUNELFlBQUEsTUFBSSxDQUFDK0MsUUFBTDtBQUNELFdBVEg7QUFVRSxVQUFBLElBQUksZUFBRSxvQkFBQyxZQUFEO0FBVlIsMEJBREY7QUFnQkQ7O0FBQ0QsVUFBSTdFLE9BQU8sQ0FBQ3BCLE9BQVIsQ0FBZ0IsUUFBaEIsSUFBNEIsQ0FBQyxDQUFqQyxFQUFvQztBQUNsQ2dHLFFBQUFBLFdBQVcsQ0FBQy9GLElBQVosZUFDRSxvQkFBQyxNQUFELENBQ0U7QUFERjtBQUVFLFVBQUEsT0FBTyxFQUFFLEtBQUs1QyxRQUFMLENBQWMrRyxJQUFkLENBQW1CLElBQW5CLENBRlg7QUFHRSxVQUFBLElBQUksZUFBRSxvQkFBQyxJQUFEO0FBQU0sWUFBQSxJQUFJLEVBQUV0SyxRQUFRLENBQUNvTTtBQUFyQixZQUhSO0FBSUUsVUFBQSxNQUFNO0FBSlIsMEJBREY7QUFVRDs7QUFDRCxVQUFJQyxLQUFLLENBQUNDLE9BQU4sQ0FBYzVGLFFBQWQsQ0FBSixFQUE2QjtBQUMzQkEsUUFBQUEsUUFBUSxDQUFDbEIsR0FBVCxDQUFhLFVBQUNDLElBQUQsRUFBZTtBQUFBOztBQUMxQixjQUFJLENBQUFBLElBQUksU0FBSixJQUFBQSxJQUFJLFdBQUosNEJBQUFBLElBQUksQ0FBRXhFLEtBQU4sOERBQWErRixRQUFiLEtBQXlCLFlBQTdCLEVBQTJDO0FBQ3pDa0YsWUFBQUEsV0FBVyxDQUFDL0YsSUFBWixDQUFpQlYsSUFBakI7QUFDRCxXQUZELE1BRU8sSUFBSSxDQUFBQSxJQUFJLFNBQUosSUFBQUEsSUFBSSxXQUFKLDRCQUFBQSxJQUFJLENBQUV4RSxLQUFOLDhEQUFhK0YsUUFBYixLQUF5QixjQUE3QixFQUE2QztBQUNsREksWUFBQUEsYUFBYSxDQUFDakIsSUFBZCxDQUFtQlYsSUFBbkI7QUFDRDtBQUNGLFNBTkQ7QUFPRCxPQVJELE1BUU8sSUFBSWlCLFFBQUosRUFBYztBQUNuQixZQUFRekYsS0FBUixHQUF1QnlGLFFBQXZCLENBQVF6RixLQUFSOztBQUNBLFlBQUksQ0FBQUEsS0FBSyxTQUFMLElBQUFBLEtBQUssV0FBTCxZQUFBQSxLQUFLLENBQUUrRixRQUFQLEtBQW1CLFlBQXZCLEVBQXFDO0FBQ25Da0YsVUFBQUEsV0FBVyxDQUFDL0YsSUFBWixDQUFpQk8sUUFBakI7QUFDRCxTQUZELE1BRU8sSUFBSSxDQUFBekYsS0FBSyxTQUFMLElBQUFBLEtBQUssV0FBTCxZQUFBQSxLQUFLLENBQUUrRixRQUFQLEtBQW1CLGNBQXZCLEVBQXVDO0FBQzVDSSxVQUFBQSxhQUFhLENBQUNqQixJQUFkLENBQW1CTyxRQUFuQjtBQUNEO0FBQ0Y7O0FBQ0QrQyxNQUFBQSxZQUFZLElBQ1ZpQixXQUFXLENBQUN2RSxJQUFaLENBQWlCO0FBQ2YrRSxRQUFBQSxLQUFLLEVBQUUsSUFEUTtBQUVmRCxRQUFBQSxTQUFTLEVBQUUsUUFGSTtBQUdmc0IsUUFBQUEsS0FBSyxFQUFFaEYsV0FBVyxTQUFYLElBQUFBLFdBQVcsV0FBWCxJQUFBQSxXQUFXLENBQUVpRixTQUFiLEdBQ0hqRixXQURHLGFBQ0hBLFdBREcsdUJBQ0hBLFdBQVcsQ0FBRWlGLFNBRFYsR0FFSGhGLGdCQUFnQixDQUFDZ0YsU0FBakIsR0FDQWhGLGdCQUFnQixDQUFDZ0YsU0FEakIsR0FFQSxRQVBXO0FBUWZDLFFBQUFBLEtBQUssRUFBRWxGLFdBQVcsU0FBWCxJQUFBQSxXQUFXLFdBQVgsSUFBQUEsV0FBVyxDQUFFa0YsS0FBYixHQUNIbEYsV0FERyxhQUNIQSxXQURHLHVCQUNIQSxXQUFXLENBQUVrRixLQURWLEdBRUhqRixnQkFBZ0IsQ0FBQ2lGLEtBQWpCLEdBQ0FqRixnQkFBZ0IsQ0FBQ2lGLEtBRGpCLEdBRUEsR0FaVztBQWFmQyxRQUFBQSxLQUFLLEVBQUUsT0FiUTtBQWNmVixRQUFBQSxRQUFRLEVBQUUsSUFkSztBQWVmRixRQUFBQSxNQUFNLEVBQUUsZ0JBQUN0RCxJQUFELEVBQVlyRCxNQUFaLEVBQTRCO0FBQ2xDLDhCQUNFO0FBQUssWUFBQSxTQUFTLEVBQUV6RSxPQUFPLENBQUNQLE1BQUQsRUFBUyxRQUFUO0FBQXZCLGFBQ0csTUFBSSxDQUFDd00sa0JBQUwsQ0FBd0J2RixhQUF4QixFQUF1Q2pDLE1BQXZDLENBREgsQ0FERjtBQUtEO0FBckJjLE9BQWpCLENBREY7QUF3QkEsVUFBSXdFLFdBQUosRUFDRWUsV0FBVyxJQUNUO0FBQ0VRLFFBQUFBLEtBQUssRUFBRSxJQURUO0FBRUV1QixRQUFBQSxLQUFLLEVBQUUsRUFGVDtBQUdFRixRQUFBQSxLQUFLLEVBQUUsUUFIVDtBQUlFVCxRQUFBQSxNQUFNLEVBQUUsZ0JBQUN0RCxJQUFELEVBQU9vRSxPQUFQLEVBQWdCbEgsS0FBaEIsRUFBMEI7QUFDaEMsOEJBQU8sMENBQUdBLEtBQUssR0FBRyxDQUFYLENBQVA7QUFDRDtBQU5ILE9BRFMsNEJBU05nRixXQVRNLEVBQVg7QUFXRixVQUFJbUMsVUFBVSxHQUFHOUYsVUFBVSxJQUFJNEQsV0FBVyxDQUFDNUksTUFBWixHQUFxQixDQUFwRDtBQUNBLFVBQUkrSyxRQUFRLEdBQUczRCxjQUFjLElBQUkrQyxXQUFXLENBQUNuSyxNQUFaLEdBQXFCLENBQXREOztBQUNBLFVBQUlxRCxVQUFVLENBQUMySCxVQUFYLEtBQTBCLEtBQTlCLEVBQXFDO0FBQ25DO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQU1DLE1BQU0sR0FBRzdDLFdBQVcsQ0FBQzZDLE1BQTNCO0FBQ0E3QyxRQUFBQSxXQUFXLG1DQUNOQSxXQURNO0FBRVQ2QyxVQUFBQSxNQUFNO0FBQUlDLFlBQUFBLENBQUMsRUFBRTtBQUFQLGFBQXlCRCxNQUF6QjtBQUZHLFVBQVg7QUFJRDs7QUFDRCwwQkFDRTtBQUFLLFFBQUEsU0FBUyxFQUFFOU0sR0FBRyxDQUFDUSxPQUFPLENBQUNQLE1BQUQsRUFBUyxNQUFULENBQVIsRUFBMEJtSixTQUExQjtBQUFuQixTQUNHLEtBQUtySSxLQUFMLENBQVdpTSxTQUFYLGlCQUNDO0FBQUssUUFBQSxTQUFTLEVBQUVoTixHQUFHLENBQUNRLE9BQU8sQ0FBQ1AsTUFBRCxFQUFTLFlBQVQsQ0FBUjtBQUFuQixTQUNHLEtBQUtjLEtBQUwsQ0FBV2lNLFNBRGQsQ0FGSixlQU1FO0FBQ0UsUUFBQSxTQUFTLEVBQUVoTixHQUFHLENBQUNRLE9BQU8sQ0FBQ1AsTUFBRCxFQUFTLFdBQVQsQ0FBUixDQURoQjtBQUVFLFFBQUEsS0FBSyxFQUFFO0FBQUVnTixVQUFBQSxPQUFPLEVBQUU7QUFBWDtBQUZULFNBSUdsRSxRQUFRLGlCQUNQO0FBQUssUUFBQSxTQUFTLEVBQUV2SSxPQUFPLENBQUNQLE1BQUQsRUFBUyxNQUFUO0FBQXZCLHNCQUNFLG9CQUFDLElBQUQ7QUFDRSxRQUFBLEtBQUssb0JBQU80SixTQUFQLENBRFA7QUFFRSxRQUFBLFFBQVEsRUFBRSxLQUZaO0FBR0UsUUFBQSxTQUFTLEVBQUUsS0FIYjtBQUlFLFFBQUEsVUFBVSxFQUFFQyxVQUpkO0FBS0UsUUFBQSxRQUFRLEVBQUUsS0FBS29ELFVBQUwsQ0FBZ0I5QyxJQUFoQixDQUFxQixJQUFyQixDQUxaO0FBTUUsUUFBQSxZQUFZLEVBQUUsQ0FBQyxLQUFLbEosS0FBTCxDQUFXa0IsZUFBWixDQU5oQjtBQU9FLFFBQUEsVUFBVSxFQUFFMkg7QUFQZCxTQVFNQyxlQVJOLEVBREYsQ0FMSixlQWtCRTtBQUNFLFFBQUEsU0FBUyxFQUFFaEssR0FBRyxDQUFDUSxPQUFPLENBQUNQLE1BQUQsRUFBUyxPQUFULENBQVIsc0JBQ1hPLE9BQU8sQ0FBQ1AsTUFBRCxFQUFTLGVBQVQsQ0FESSxFQUN3QixDQUFDOEksUUFEekI7QUFEaEIsU0FLR2xDLFVBQVUsSUFBSTRELFdBQVcsQ0FBQzVJLE1BQVosR0FBcUIsQ0FBbkMsaUJBQ0Msb0JBQUMsWUFBRDtBQUNFLFFBQUEsV0FBVyxFQUFFNEksV0FEZjtBQUVFLFFBQUEsa0JBQWtCLEVBQUVwQixrQkFGdEI7QUFHRSxRQUFBLFFBQVEsRUFBRSxLQUFLM0UsUUFBTCxDQUFjMEYsSUFBZCxDQUFtQixJQUFuQixDQUhaO0FBSUUsUUFBQSxHQUFHLEVBQUUsS0FBS3pILFNBSlo7QUFLRSxRQUFBLGVBQWUsRUFBRSxLQUFLNUIsS0FBTCxDQUFXb007QUFMOUIsUUFOSixFQWVHbEUsY0FBYyxJQUNiK0MsV0FBVyxDQUFDbkssTUFBWixHQUFxQixDQUR0QixJQUVDd0gsa0JBQWtCLElBQUksUUFGdkIsSUFHQyxLQUFLK0QsaUJBQUwsQ0FBdUJwQixXQUF2QixFQUFvQ3ZCLFdBQVcsQ0FBQzVJLE1BQVosSUFBc0IsQ0FBMUQsQ0FsQkosZUFtQkU7QUFDRSxRQUFBLFNBQVMsRUFBRTdCLEdBQUcsQ0FBQ1EsT0FBTyxDQUFDUCxNQUFELEVBQVMsT0FBVCxDQUFSLHNCQUNYTyxPQUFPLENBQUNQLE1BQUQsRUFBUyxXQUFULENBREksRUFDb0IwTSxVQUFVLElBQUksQ0FBQ0MsUUFEbkM7QUFEaEIsc0JBS0Usb0JBQUMsS0FBRDtBQUNFLFFBQUEsR0FBRyxFQUFFLEtBQUtySSxRQURaO0FBRUUsUUFBQSxPQUFPLEVBQUVpRyxXQUZYO0FBR0UsUUFBQSxVQUFVO0FBQ1I2QyxVQUFBQSxVQUFVLEVBQUUsMkJBQW9DO0FBQUEsZ0JBQWpDQyxRQUFpQyxTQUFqQ0EsUUFBaUM7QUFBQSxnQkFBdkJDLFFBQXVCLFNBQXZCQSxRQUF1QjtBQUFBLGdCQUFidEksTUFBYSxTQUFiQSxNQUFhO0FBQzlDLGdDQUNFLDBDQUNHcUksUUFBUSxnQkFDUCxvQkFBQyxZQUFEO0FBQ0UsY0FBQSxPQUFPLEVBQUUsaUJBQUNFLENBQUQ7QUFBQSx1QkFBT0QsUUFBUSxDQUFDdEksTUFBRCxFQUFTdUksQ0FBVCxDQUFmO0FBQUEsZUFEWDtBQUVFLGNBQUEsU0FBUyxFQUFFaE4sT0FBTyxDQUFDUCxNQUFELEVBQVMsYUFBVDtBQUZwQixjQURPLEdBTVBnRixNQUFNLENBQUNzQixVQUFQLGlCQUNFLG9CQUFDLGFBQUQ7QUFDRSxjQUFBLE9BQU8sRUFBRSxpQkFBQ2lILENBQUQ7QUFBQSx1QkFBT0QsUUFBUSxDQUFDdEksTUFBRCxFQUFTdUksQ0FBVCxDQUFmO0FBQUEsZUFEWDtBQUVFLGNBQUEsU0FBUyxFQUFFaE4sT0FBTyxDQUFDUCxNQUFELEVBQVMsYUFBVDtBQUZwQixjQVJOLENBREY7QUFpQkQ7QUFuQk8sV0FvQkwwSixVQXBCSyxDQUhaO0FBeUJFLFFBQUEsV0FBVyxFQUFFLElBekJmO0FBMEJFLFFBQUEsUUFBUSxFQUFFLGtCQUFDa0QsVUFBRCxFQUFnQjtBQUN4QixjQUFRN0gsV0FBUixHQUF3QixNQUFJLENBQUM5RCxLQUE3QixDQUFROEQsV0FBUjs7QUFDQSxjQUFJQSxXQUFXLEtBQUs2SCxVQUFVLENBQUNqSyxPQUEvQixFQUF3QztBQUN0QyxZQUFBLE1BQUksQ0FBQzhDLFFBQUwsQ0FBYztBQUNaVixjQUFBQSxXQUFXLEVBQUU2SCxVQUFVLENBQUNqSztBQURaLGFBQWQ7QUFHRDtBQUNGLFNBakNIO0FBa0NFLFFBQUEsT0FBTztBQUNMNkssVUFBQUEsV0FBVyxFQUFFO0FBQ1hDLFlBQUFBLFNBQVMsRUFBRSxxQkFBTTtBQUNmLGtCQUFNakwsTUFBTSxHQUFHLE1BQUksQ0FBQzRELGVBQUwsRUFBZjs7QUFDQSxjQUFBLE1BQUksQ0FBQzdFLFNBQUwsQ0FBZWlCLE1BQWY7QUFDRDtBQUpVO0FBRFIsV0FPRnlDLFVBQVUsQ0FBQ3lJLE9BUFQ7QUFsQ1QsU0EyQ00xRCxXQTNDTixFQUxGLENBbkJGLENBbEJGLEVBeUZHOUMsVUFBVSxpQkFDVCxvQkFBQyxVQUFEO0FBQ0UsUUFBQSxHQUFHLEVBQUUsS0FBS3BFLFNBRFo7QUFFRSxRQUFBLFFBQVEsRUFBRSxLQUFLNkssV0FBTCxDQUFpQnhELElBQWpCLENBQXNCLElBQXRCLENBRlo7QUFHRSxRQUFBLFNBQVMsRUFBRU0sV0FIYjtBQUlFLFFBQUEsU0FBUyxFQUFFN0IsU0FKYjtBQUtFLFFBQUEsWUFBWSxFQUFFRyxZQUxoQjtBQU1FLFFBQUEsUUFBUSxFQUFFLEtBQUtqSSxLQUFMLENBQVc4TSxRQU52QjtBQU9FLFFBQUEsWUFBWSxFQUFFbEQsWUFQaEI7QUFRRSxRQUFBLFVBQVUsRUFBRSxLQUFLNUosS0FBTCxDQUFXK00sVUFSekI7QUFTRSxRQUFBLFlBQVksRUFBRSxLQUFLL00sS0FBTCxDQUFXZ04sWUFUM0I7QUFVRSxRQUFBLFFBQVEsRUFBRSxLQUFLaE4sS0FBTCxDQUFXdUIsUUFBWCxJQUF1QixNQVZuQztBQVdFLFFBQUEsV0FBVyxFQUFFNkcsZUFYZjtBQVlFLFFBQUEsVUFBVSxvQkFBT0wsU0FBUDtBQVpaLFFBMUZKLENBTkYsQ0FERjtBQW1IRDs7OztFQXoxQm9CeEosYTs7QUEyMUJ2QixlQUFld0IsUUFBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50LCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IFRhYmxlIGZyb20gXCIuLi8uLi9iYXNlL3RhYmxlXCI7XHJcbmltcG9ydCBUcmVlIGZyb20gXCIuLi8uLi9iYXNlL3RyZWVcIjtcclxuaW1wb3J0IEZvcm0gZnJvbSBcIi4uLy4uL2Jhc2UvZm9ybVwiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi8uLi9iYXNlL2J1dHRvblwiO1xyXG5pbXBvcnQgTW9kYWwgZnJvbSBcIi4uLy4uL2Jhc2UvbW9kYWxcIjtcclxuaW1wb3J0IFBvcG92ZXIgZnJvbSBcIi4uLy4uL2Jhc2UvcG9wb3ZlclwiO1xyXG5pbXBvcnQgbWVzc2FnZSBmcm9tIFwiLi4vLi4vYmFzZS9tZXNzYWdlXCI7XHJcbmltcG9ydCBJY29uIGZyb20gXCIuLi8uLi9iYXNlL2NvbW1vbi9JY29uRm9udFwiO1xyXG5pbXBvcnQgeyBpY29uVHlwZSB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IEVkaXRvckZvcm0gZnJvbSBcIi4vRm9ybVwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFBhZ2VTdG9yZSwgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgUm93IGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvUm93XCI7XHJcbmltcG9ydCB7XHJcbiAgRG93bk91dGxpbmVkLFxyXG4gIEV5ZU91dGxpbmVkLFxyXG4gIEVkaXRPdXRsaW5lZCxcclxuICBSaWdodE91dGxpbmVkLFxyXG4gIFBsdXNPdXRsaW5lZCxcclxuICBFbGxpcHNpc091dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgeyBnZXRMZXNzLCBnZXROb2RlIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCByZXF1ZXN0IGZyb20gXCJuc2MtcmVxdWVzdFwiO1xyXG5pbXBvcnQgb21pdCBmcm9tIFwib21pdC5qc1wiO1xyXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuLi8uLi9jb25maWdcIjtcclxuaW1wb3J0IHsgZ2V0U3RvcmFnZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgeyBJRm9ybVByb3BzIH0gZnJvbSBcIi4uLy4uL2Jhc2UvZm9ybS9Gb3JtXCI7XHJcbmltcG9ydCBIZWFkZXJTZWFyY2ggZnJvbSBcIi4uL0hlYWRlclNlYXJjaFwiO1xyXG5pbnRlcmZhY2UgVGFibGVQcm9wcyB7XHJcbiAgYWN0aW9uQ29sdW1uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmk43kvZzliJdcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgZmlsdGVyQ29sdW1uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrov4fmu6TmjInpkq5cclxuICBzaG93Um93U2VsZWN0aW9uPzogYm9vbGVhbjsgLy/mmK/lkKbooajmoLzli77pgInliJdcclxuICBwYWdpbmF0aW9uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrliIbpobVcclxuICBjb2x1bW5PcmRlcj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S66KGo5qC85bqP5YiXXHJcbiAgW3Byb3BzTmFtZTogc3RyaW5nXTogYW55O1xyXG59XHJcbmludGVyZmFjZSBUcmVlUHJvcHMge1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBzaG93U2VhcmNoPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmkJzntKLmoYZcclxuICBzZWFyY2hLZXk/OiBzdHJpbmc7IC8v5pCc57SidmFsdWXlr7nlupTnmoRrZXlcclxuICBzZWFyY2hGaWVsZD86IHN0cmluZzsgLy/mn6Xor6Llr7nlupTnmoRrZXlcclxuICB0aXRsZUFsaWFzPzogc3RyaW5nOyAvL+agkXRpdGxl5a+55bqU55qEa2V5LOm7mOiupHRpdGxlXHJcbiAgbm9kZVBvcnBzPzogb2JqZWN0O1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5pbnRlcmZhY2UgRm9ybVByb3BzIGV4dGVuZHMgSUZvcm1Qcm9wcyB7fVxyXG5pbnRlcmZhY2UgTlNDQmFzZUJhZ2VQcm9wcyB7XHJcbiAgc2hvd1NlYXJjaD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65aS06YOo5pCc57Si5qCPXHJcbiAgdGFibGVQcm9wcz86IFRhYmxlUHJvcHM7IC8v6KGo5qC85Y+C5pWwXHJcbiAgdHJlZVByb3BzPzogVHJlZVByb3BzOyAvL+W3puS+p+agkeWPguaVsFxyXG4gIHN1Ym1pdFBhcmFtcz86IE9iamVjdDsgLy/mt7vliqDlj4LmlbDvvIzpu5jorqRtb3Rob2Q6cG9zdO+8jCDlj4LmlbDpgJrov4dkYXRh5Lyg6YCSXHJcbiAgc3VibWl0VXJsPzogc3RyaW5nO1xyXG4gIG9uU3VibWl0PzogKHZhbHVlPzogYW55LCBsYWJlbD86IGFueSkgPT4gdm9pZDtcclxuICBjb2x1bW5zOiBBcnJheTxPYmplY3Q+O1xyXG4gIHNob3dMZWZ0PzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrlt6bkvqfnm67lvZXmoJFcclxuICBzaG93VG9vbEJ1dHRvbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65oyJ6ZKu5qCPXHJcbiAgZWRpdG9yRm9ybT86IGJvb2xlYW47IC8v5piv5ZCm6ZyA6KaB6KGo5Y2V5Yqf6IO9ICwg5Li6ZmFsc2Ug57yW6L6R77yM5p+l55yL77yM5paw5aKe5Yqf6IO95Z2H5LiN5Y+v55SoXHJcbiAgZGVsZXRlVXJsPzogc3RyaW5nOyAvL+WIoOmZpHVybFxyXG4gIG9uRGVsZXRlPzogKHNlbGVjdGVkS2V5cz86IEFycmF5PGFueT4pID0+IHZvaWQ7IC8v5Yig6Zmk5Y+C5pWw77yM6buY6K6kbW90aG9kOnBvc3TvvIwg5Y+C5pWw6YCa6L+HaWRz5ou85o6l5Lyg6YCS57uZ5ZCO5Y+wXHJcbiAgZGVsZXRlUGFyYW1zPzogT2JqZWN0O1xyXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlO1xyXG4gIG9uU2VhcmNoPzogKHZhbHVlPzogYW55KSA9PiB2b2lkO1xyXG4gIGluaXREYXRhPzogYW55OyAvL+WIneWni+WMluWbnuiwg+WHveaVsO+8jOWcqGNvbXBvbmVudERpZE1vdW505Lit6LCD55SoXHJcbiAgYnV0dG9ucz86IEFycmF5PHN0cmluZz47IC8v5oyJ6ZKu6ZuG5ZCIICBbJ2FkZCcsJ2RlbGV0ZScsJ3NlYXJjaCcsJ2VkaXRvciddXHJcbiAgb25TaG93Rm9ybT86ICh2YWx1ZT86IGFueSwgZWRpdG9yRmxhZz86IHN0cmluZykgPT4gdm9pZDsgLy/miZPlvIDooajljZXlm57osINcclxuICBvbkhpZGVGb3JtPzogKCkgPT4gdm9pZDsgLy/miZPlvIDooajljZXlm57osINcclxuICBvbkZvcm1DaGFuZ2U/OiAoY2hhbmdlZFZhbHVlcz86IGFueSwgYWxsVmFsdWVzPzogYW55KSA9PiB2b2lkOyAvL+ihqOWNlW9uQ2hhbmdl5Zue6LCDXHJcbiAgZm9ybVR5cGU/OiBcIm1vZGFsXCIgfCBcImRyYXdlclwiO1xyXG4gIGZvcm1DaGFuZ2VWYWxpZD86IGJvb2xlYW47IC8v6KGo5Y2V5qCh6aqMXHJcbiAgY2xhc3NOYW1lPzogYW55O1xyXG4gIHRvb2xCdXR0b25Qb3NpdGlvbj86IFwicmlnaHRcIiB8IFwiYnV0dG9tXCI7XHJcbiAgcGFnZVRpdGxlPzogc3RyaW5nIHwgUmVhY3ROb2RlO1xyXG4gIGZvcm1Qcm9wcz86IEZvcm1Qcm9wcztcclxuICBhY3Rpb25Qb3Jwcz86IHsgdGV4dEFsaWduPzogc3RyaW5nOyBzaG93SWNvbj86IGJvb2xlYW47IHdpZHRoPzogbnVtYmVyIH07XHJcbiAgc2VhcmNoRm9ybVByb3BzPzogeyB3cmFwcGVyQ29sPzogYW55OyBsYWJlbENvbD86IGFueSB9O1xyXG59XHJcblxyXG5jbGFzcyBCYXNlUGFnZSBleHRlbmRzIFB1cmVDb21wb25lbnQ8TlNDQmFzZUJhZ2VQcm9wcywgYW55PiB7XHJcbiAgdGFibGVSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIHRyZWVSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIHNlYXJjaFJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgZWRpdG9yUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBkYXRlRm9ybWF0ID0ge30gYXMgYW55O1xyXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBhbnkpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIGxldCB7IHN0b3JlUHJlZml4IH0gPSBjb25maWcoKTtcclxuICAgIGxldCB0eXBlID0gZ2V0U3RvcmFnZShcclxuICAgICAgc3RvcmVQcmVmaXggPyBzdG9yZVByZWZpeCArIFwiLVwiICsgXCJmb3JtVHlwZVwiIDogXCJmb3JtVHlwZVwiXHJcbiAgICApO1xyXG4gICAgdHlwZSA9IHR5cGU/LmNvbnRlbnQ7XHJcbiAgICBsZXQgc2l6ZSA9IGdldFN0b3JhZ2UoXHJcbiAgICAgIHN0b3JlUHJlZml4ID8gc3RvcmVQcmVmaXggKyBcIi1cIiArIFwidGFibGVTaXplXCIgOiBcInRhYmxlU2l6ZVwiXHJcbiAgICApO1xyXG4gICAgc2l6ZSA9IHNpemU/LmNvbnRlbnQ7XHJcbiAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICB0eXBlOiBcImFkZFwiLFxyXG4gICAgICBzZWxlY3RlZFJvd0tleXM6IFtdLFxyXG4gICAgICBzZWxlY3RlZFJvd0RhdGFzOiBbXSxcclxuICAgICAgdHJlZVNlbGVjdGVkS2V5OiBcIlwiLFxyXG4gICAgICBleHBhbmQ6IGZhbHNlLFxyXG4gICAgICBmb3JtVHlwZTogdHlwZSB8fCBcIm1vZGFsXCIsXHJcbiAgICAgIHRhYmxlU2l6ZTogc2l6ZSB8fCBcImRlZmF1bHRcIixcclxuICAgIH07XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgY29uc3QgeyBpbml0RGF0YSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGluaXREYXRhICYmIGluaXREYXRhKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTZWFyY2hQYXJhbXMocGFyYW1zLCBjYWxsQmFjaykge1xyXG4gICAgdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uc2V0U2VhcmNoUGFyYW1zKHBhcmFtcyk7XHJcbiAgICBjYWxsQmFjayAmJiBjYWxsQmFjayhwYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgb25TZWxlY3QgPSAoY2hlY2tlZFRyZWVLZXlzOiBhbnkpID0+IHtcclxuICAgIGNvbnN0IHsgbmFtZSwgdXNlclR5cGUsIGFjY291bnQgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHsgbmFtZSwgdXNlclR5cGUsIGFjY291bnQsIGRlcHRJZDogY2hlY2tlZFRyZWVLZXlzWzBdIH07XHJcbiAgICB0aGlzLnRhYmxlTG9hZCh2YWx1ZSk7XHJcbiAgfTtcclxuXHJcbiAgLy/mmL7npLrooajljZVcclxuICBzaG93Rm9ybSh2YWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNob3codmFsdWUsIGVkaXRvcmZsYWcpO1xyXG4gIH1cclxuXHJcbiAgLy/lhbPpl63ooajljZVcclxuICBoaWRlRm9ybSgpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBzZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNldExvYWRpbmcobG9hZGluZyk7XHJcbiAgfVxyXG5cclxuICAvL+aJuemHj+WIoOmZpFxyXG4gIG9uRGVsZXRlKCkge1xyXG4gICAgY29uc3QgeyBkZWxldGVVcmwsIG9uRGVsZXRlLCBkZWxldGVQYXJhbXMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkUm93S2V5cyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmIChzZWxlY3RlZFJvd0tleXMubGVuZ3RoID09IDApIHtcclxuICAgICAgbWVzc2FnZS53YXJuaW5nKFwi6K+36YCJ5oup6KaB5Yig6Zmk55qE5pWw5o2u77yBXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAob25EZWxldGUpIHtcclxuICAgICAgb25EZWxldGUgJiYgb25EZWxldGUoc2VsZWN0ZWRSb3dLZXlzKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCFkZWxldGVVcmwpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwidXJs5LiN6IO95Li656m677yBXCIpO1xyXG4gICAgfVxyXG4gICAgTW9kYWwuY29uZmlybSh7XHJcbiAgICAgIGNvbnRlbnQ6IFwi5piv5ZCm56Gu6K6k5Yig6Zmk5omA6YCJ6aG577yfXCIsXHJcbiAgICAgIC8vIGNlbnRlcmVkOnRydWUsXHJcbiAgICAgIG9uT2s6ICgpID0+IHtcclxuICAgICAgICBjb25zdCBkZWZhdWx0UGFyYW1zID0ge1xyXG4gICAgICAgICAgbWV0aG9kOiBcInBvc3RcIixcclxuICAgICAgICAgIHBhcmFtczogeyBpZHM6IHNlbGVjdGVkUm93S2V5cy5qb2luKCkgfSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGxldCByZXF1ZXN0UGFyYW1zID0ge30gYXMgYW55O1xyXG4gICAgICAgIGlmIChkZWZhdWx0UGFyYW1zKSB7XHJcbiAgICAgICAgICByZXF1ZXN0UGFyYW1zID0geyAuLi5kZWxldGVQYXJhbXMgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVxdWVzdFBhcmFtcyA9IHsgLi4uZGVmYXVsdFBhcmFtcyB9O1xyXG4gICAgICAgIHJlcXVlc3QoZGVsZXRlVXJsLCB7XHJcbiAgICAgICAgICAuLi5yZXF1ZXN0UGFyYW1zLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgY29uc3QgeyBjb2RlIH0gPSByZXM7XHJcbiAgICAgICAgICAgIGlmIChjb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoXCLliKDpmaTmiJDlip/vvIFcIik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuWIoOmZpOWksei0pe+8gVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycm9yKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRhYmxlTG9hZChwYXJhbXM6IGFueSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5sb2FkKHtcclxuICAgICAgcGFyYW1zOiBwYXJhbXMsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy/mn6Xor6JcclxuICBvblNlYXJjaChwYXJhbXMpIHtcclxuICAgIGNvbnN0IHsgb25TZWFyY2ggfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpZiAob25TZWFyY2gpIHtcclxuICAgICAgb25TZWFyY2gocGFyYW1zKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy50YWJsZUxvYWQocGFyYW1zKTtcclxuICB9XHJcbiAgLy/ooajmoLzph43mlrDliqDovb1cclxuICB0YWJsZVJlbG9hZChwYXJhbXMgPSB7fSwgYXV0b0xvYWQgPSB0cnVlKSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLnJlbG9hZCh7XHJcbiAgICAgIGNhbGxiYWNrOiAocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgYXV0b0xvYWQgJiZcclxuICAgICAgICAgIHJlcz8uZGF0YT8ucmVjb3Jkcz8ubGVuZ3RoID09IDAgJiZcclxuICAgICAgICAgIHRoaXMuc3RhdGUuY3VycmVudFBhZ2UgIT09IDFcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUucmVsb2FkKHtcclxuICAgICAgICAgICAgcGFyYW1zOiB7IGN1cnJlbnQ6IDEsIC4uLnBhcmFtcyB9LFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJvd1NlbGVjdGlvbk9uU2VsZWN0KHJlY29yZDogYW55LCBzZWxlY3RlZDogYW55KSB7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkUm93S2V5cywgc2VsZWN0ZWRSb3dEYXRhcyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHsgdGFibGVQcm9wcyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgcm93S2V5ID0gXCJpZFwiIH0gPSB0YWJsZVByb3BzO1xyXG4gICAgbGV0IG5ld1NlbGVjdGVkUm93S2V5cyA9IFsuLi5zZWxlY3RlZFJvd0tleXNdO1xyXG4gICAgbGV0IG5ld1NlbGVjdGVkUm93RGF0YXMgPSBbLi4uc2VsZWN0ZWRSb3dEYXRhc107XHJcbiAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgbmV3U2VsZWN0ZWRSb3dLZXlzID0gWy4uLm5ld1NlbGVjdGVkUm93S2V5cywgcmVjb3JkW3Jvd0tleV1dO1xyXG4gICAgICBuZXdTZWxlY3RlZFJvd0RhdGFzID0gWy4uLm5ld1NlbGVjdGVkUm93RGF0YXMsIHJlY29yZF07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZWxlY3RlZFJvd0tleXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoaXRlbSA9PT0gcmVjb3JkW3Jvd0tleV0pIHtcclxuICAgICAgICAgIG5ld1NlbGVjdGVkUm93S2V5cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHNlbGVjdGVkUm93RGF0YXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoaXRlbVtyb3dLZXldID09PSByZWNvcmRbcm93S2V5XSkge1xyXG4gICAgICAgICAgbmV3U2VsZWN0ZWRSb3dEYXRhcy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBuZXdTZWxlY3RlZFJvd0tleXMsXHJcbiAgICAgIHNlbGVjdGVkUm93RGF0YXM6IG5ld1NlbGVjdGVkUm93RGF0YXMsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcm93U2VsZWN0aW9uT25TZWxlY3RBbGwoc2VsZWN0ZWQ6IGFueSwgc2VsZWN0ZWRSb3dzOiBhbnksIGNoYW5nZVJvd3M6IGFueSkge1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZFJvd0tleXMsIHNlbGVjdGVkUm93RGF0YXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IHRhYmxlUHJvcHMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHJvd0tleSA9IFwiaWRcIiB9ID0gdGFibGVQcm9wcztcclxuICAgIGxldCBuZXdpZHM6IGFueSA9IFtdO1xyXG4gICAgbGV0IG5ld2RhdGFzOiBhbnkgPSBbXTtcclxuICAgIGlmIChjaGFuZ2VSb3dzLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGNoYW5nZUlkcyA9IGNoYW5nZVJvd3MubWFwKChpdGVtOiBhbnkpID0+IGl0ZW1bcm93S2V5XSk7XHJcbiAgICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICAgIG5ld2lkcyA9IFsuLi5zZWxlY3RlZFJvd0tleXMsIC4uLmNoYW5nZUlkc107XHJcbiAgICAgICAgbmV3ZGF0YXMgPSBbLi4uc2VsZWN0ZWRSb3dEYXRhcywgLi4uY2hhbmdlUm93c107XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2VsZWN0ZWRSb3dLZXlzLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoY2hhbmdlSWRzLmluZGV4T2YoaXRlbSkgPT0gLTEpIHtcclxuICAgICAgICAgICAgbmV3aWRzLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgc2VsZWN0ZWRSb3dEYXRhcy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNoYW5nZUlkcy5pbmRleE9mKGl0ZW1bcm93S2V5XSkgPT0gLTEpIHtcclxuICAgICAgICAgICAgbmV3ZGF0YXMucHVzaChpdGVtKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbmV3aWRzID0gWy4uLnNlbGVjdGVkUm93S2V5c107XHJcbiAgICAgIG5ld2RhdGFzID0gWy4uLnNlbGVjdGVkUm93RGF0YXNdO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogWy4uLm5ld2lkc10sXHJcbiAgICAgIHNlbGVjdGVkUm93RGF0YXM6IFsuLi5uZXdkYXRhc10sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRSb3dLZXlzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc2VsZWN0ZWRSb3dLZXlzO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZFJvd0RhdGFzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc2VsZWN0ZWRSb3dEYXRhcztcclxuICB9XHJcbiAgcmVzZXRTZWxlY3RlZFJvd0tleXMoKSB7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBbXSxcclxuICAgICAgc2VsZWN0ZWRSb3dEYXRhczogW10sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgc2V0U2VsZWN0ZWRSb3dLZXlzKGRhdGEpIHtcclxuICAgIGNvbnN0IHsgY3VycmVudFBhZ2UgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBkYXRhLFxyXG4gICAgICBzZWxlY3RlZFJvd0tleXNTdG9yZTogeyBbY3VycmVudFBhZ2VdOiBkYXRhIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgc2V0U2VsZWN0ZWRSb3dEYXRhcyhkYXRhKSB7XHJcbiAgICBjb25zdCB7IGN1cnJlbnRQYWdlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdGVkUm93RGF0YXM6IGRhdGEsXHJcbiAgICAgIHNlbGVjdGVkUm93RGF0YXNTdG9yZTogeyBbY3VycmVudFBhZ2VdOiBkYXRhIH0sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZ2V0U2VhcmNoVmFsdWVzKCkge1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uZ2V0U2VhcmNoVmFsdWVzKCk7XHJcbiAgICByZXR1cm4gZnJvbVZhbHVlO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q2hpbGRyZW5EYXRhKGRhdGEsIGtleXMgPSBbXSkge1xyXG4gICAgY29uc3QgeyB0YWJsZVByb3BzIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyByb3dLZXkgPSBcImlkXCIgfSA9IHRhYmxlUHJvcHM7XHJcbiAgICBsZXQgcmVzS2V5ID0gW107XHJcbiAgICBpZiAoZGF0YS5jaGlsZE5vZGVzKSB7XHJcbiAgICAgIGNvbnN0IGNoaWxkcmVuID0gZGF0YS5jaGlsZE5vZGVzO1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0uY2hpbGROb2Rlcykge1xyXG4gICAgICAgICAgdGhpcy5nZXRDaGlsZHJlbkRhdGEoaXRlbS5jaGlsZE5vZGVzLCBrZXlzKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVzS2V5ID0gWy4uLmtleXMsIGl0ZW1bcm93S2V5XV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJlc0tleSA9IFsuLi5rZXlzLCBkYXRhW3Jvd0tleV1dO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlc0tleTtcclxuICB9XHJcblxyXG4gIHJlbmRlclRvb2xCdXR0b25zKHRvb2xidXR0b25zOiBhbnksIG1hcmdpbmZsYWcgPSBmYWxzZSkge1xyXG4gICAgY29uc3QgZmxhZyA9IHRvb2xidXR0b25zLmxlbmd0aCA+IDU7XHJcbiAgICBjb25zdCB7IHNob3dTZWFyY2ggPSB0cnVlIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgY29udGVudCA9IHRvb2xidXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCBpY29uLCBzaG93LCAuLi5wYXJhbXMgfSA9IGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChpbmRleCA+IDQpIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NscyhcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JcIiksXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudC1pdGVtXCIpXHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2soKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT57aWNvbn08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInRvb2wtYnV0dG9uc1wiKSwge1xyXG4gICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInRvb2wtYnV0dG9ucy1tYXJnaW5cIildOiAhc2hvd1NlYXJjaCB8fCBtYXJnaW5mbGFnLFxyXG4gICAgICAgIH0pfVxyXG4gICAgICAgIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIHt0b29sYnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICAgICAgaWYgKGluZGV4IDwgNCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17aW5kZXh9PntpdGVtfTwvZGl2PjtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PSA0KSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxQb3BvdmVyXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlPXtudWxsfVxyXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICB0cmlnZ2VyPXtbXCJjbGlja1wiXX1cclxuICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgICAgLy8gb3ZlcmxheUNsYXNzTmFtZT17c3R5bGVzWydwb3AtYm94J119XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxCdXR0b24gdHlwZT1cInByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICDmm7TlpJogPERvd25PdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2luZGV4fT57aXRlbX08L2Rpdj47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICB9XHJcbiAgcmVuZGVyQ2xvdW1uQnV0dG9uKGNvbHVtbkJ1dHRvbnM6IGFueSwgcmVjb3JkOiBhbnkpIHtcclxuICAgIGNvbnN0IHsgZWRpdG9yRm9ybSA9IHRydWUsIGJ1dHRvbnMgPSBbXSwgYWN0aW9uUG9ycHMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IGJhc2VBY3Rpb25Db2x1bW4gfSA9IGNvbmZpZygpO1xyXG4gICAgY29uc3QgbmV3QnV0dG9ucyA9IFtdO1xyXG4gICAgbGV0IHNob3dJY29uID0gdHJ1ZTtcclxuICAgIGlmIChhY3Rpb25Qb3Jwcz8uc2hvd0ljb24gPT09IGZhbHNlKSBzaG93SWNvbiA9IGZhbHNlO1xyXG4gICAgZWxzZSBpZiAoYmFzZUFjdGlvbkNvbHVtbi5zaG93SWNvbiA9PT0gZmFsc2UpIHNob3dJY29uID0gZmFsc2U7XHJcbiAgICBjb2x1bW5CdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCBpY29uLCByZWNvcmRTaG93LCAuLi5wYXJhbXMgfSA9XHJcbiAgICAgICAgaXRlbS5wcm9wcztcclxuICAgICAgaWYgKHJlY29yZFNob3cpIHtcclxuICAgICAgICBpZiAodHlwZW9mIHJlY29yZFNob3cgPT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgICAgaWYgKGV2YWwocmVjb3JkU2hvdykpIHtcclxuICAgICAgICAgICAgbmV3QnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHJlY29yZFNob3cgPT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgICBjb25zdCBzaG93ID0gcmVjb3JkU2hvdyhyZWNvcmQpO1xyXG4gICAgICAgICAgc2hvdyAmJiBuZXdCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5ld0J1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBmbGFnID0gbmV3QnV0dG9ucy5sZW5ndGggPiAzO1xyXG5cclxuICAgIGNvbnN0IGNvbnRlbnQgPSBuZXdCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCByZWNvcmRTaG93LCBpY29uLCBzaG93LCAuLi5wYXJhbXMgfSA9XHJcbiAgICAgICAgaXRlbS5wcm9wcztcclxuICAgICAgaWYgKGluZGV4ID4gMikge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSxcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LWl0ZW1cIilcclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljayhyZWNvcmQpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7c2hvd0ljb24gIT09IGZhbHNlICYmIChcclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIG5ld0J1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIHJlY29yZFNob3csIGljb24sIC4uLnBhcmFtcyB9ID1cclxuICAgICAgICBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgIGlmIChpbmRleCA8IDMpIHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JcIiksIHtcclxuICAgICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JfZmlyc3RcIildOiBpbmRleCA9PT0gMCxcclxuICAgICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljayhyZWNvcmQpO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtzaG93SWNvbiAhPT0gZmFsc2UgJiYgKFxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT57aWNvbn08L3NwYW4+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9PntjaGlsZHJlbn08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID09IDMpIHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxQb3BvdmVyXHJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICB0aXRsZT17bnVsbH1cclxuICAgICAgICAgICAgICBjb250ZW50PXtjb250ZW50fVxyXG4gICAgICAgICAgICAgIHRyaWdnZXI9e1tcImNsaWNrXCJdfVxyXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgLy8gb3ZlcmxheUNsYXNzTmFtZT17c3R5bGVzWydwb3AnXX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JcIil9PlxyXG4gICAgICAgICAgICAgICAgPEVsbGlwc2lzT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9Qb3BvdmVyPlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSwge1xyXG4gICAgICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JfZmlyc3RcIildOiBpbmRleCA9PT0gMCxcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2socmVjb3JkKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3Nob3dJY29uICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT57aWNvbn08L3NwYW4+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuICAvL+agkeeCueWHu+S6i+S7tlxyXG4gIHRyZWVTZWxlY3Qoc2VsZWN0ZWRLZXlzOiBhbnksIHsgc2VsZWN0ZWQsIHNlbGVjdGVkTm9kZXMgfTogYW55KSB7XHJcbiAgICBsZXQga2V5d29yZCA9IFwiXCI7XHJcbiAgICBjb25zdCB7IHNlYXJjaEtleSA9IFwia2V5XCIsIHNlYXJjaEZpZWxkID0gXCJcIiB9ID0gdGhpcy5wcm9wcy50cmVlUHJvcHM7XHJcbiAgICBjb25zdCB7IHRyZWVTZWxlY3RlZEtleSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICBpZiAoc2VsZWN0ZWROb2Rlc1swXS5pc0xlYWYgfHwgIXNlbGVjdGVkTm9kZXNbMF0uY2hpbGRyZW4pIHtcclxuICAgICAgICBpZiAoc2VsZWN0ZWRLZXlzWzBdICE9PSB0cmVlU2VsZWN0ZWRLZXkpIHtcclxuICAgICAgICAgIGtleXdvcmQgPSBzZWxlY3RlZE5vZGVzWzBdLmRhdGFyZWYuYXR0cmlidXRlW3NlYXJjaEtleV07XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgdHJlZVNlbGVjdGVkS2V5OiBzZWxlY3RlZEtleXNbMF0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIHRyZWVTZWxlY3RlZEtleToga2V5d29yZCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5nZXRGaWVsZHNWYWx1ZSgpO1xyXG4gICAgc2VhcmNoRmllbGQgJiYgdGhpcy50YWJsZUxvYWQoeyAuLi5mcm9tVmFsdWUsIFtzZWFyY2hGaWVsZF06IGtleXdvcmQgfSk7XHJcbiAgfVxyXG4gIHJlc2V0U2VhcmNoKCkge1xyXG4gICAgdGhpcy5zZWFyY2hSZWYuY3VycmVudD8ucmVzZXRTZWFyY2goKTtcclxuICB9XHJcbiAgZ2V0VGV4dChwcm9wcywgdGV4dCkge1xyXG4gICAgbGV0IG5ld1RleHQgPSB0ZXh0O1xyXG4gICAgaWYgKHByb3BzPy5kYXRhICYmIHByb3BzPy5kYXRhPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBkYXRhID0gcHJvcHMuZGF0YTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhPy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChkYXRhW2ldLnZhbHVlID09IHRleHQpIHtcclxuICAgICAgICAgIG5ld1RleHQgPSBkYXRhW2ldLmxhYmVsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ld1RleHQ7XHJcbiAgfVxyXG4gIHNldFRhYmxlRGF0YShkYXRhKSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLnNldERhdGEoZGF0YSk7XHJcbiAgfVxyXG4gIHNldFRyZWVEYXRhKGRhdGEpIHtcclxuICAgIHRoaXMudHJlZVJlZi5jdXJyZW50Py5zdG9yZS5zZXREYXRhKGRhdGEpO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZEtleSA9IChzZWxlY3RlZCkgPT4ge1xyXG4gICAgbGV0IHJlcyA9IFtdO1xyXG4gICAgZm9yIChsZXQga2V5IGluIHNlbGVjdGVkKSB7XHJcbiAgICAgIGNvbnN0IGtleXMgPSBzZWxlY3RlZFtrZXldO1xyXG4gICAgICBpZiAoa2V5cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgcmVzID0gWy4uLnJlcywgLi4ua2V5c107XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiByZXM7XHJcbiAgfTtcclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGNvbHVtbnMgPSBbXSxcclxuICAgICAgc2hvd1NlYXJjaCA9IHRydWUsXHJcbiAgICAgIGNoaWxkcmVuLFxyXG4gICAgICBzdWJtaXRVcmwgPSBcIlwiLFxyXG4gICAgICB0YWJsZVByb3BzID0ge30sXHJcbiAgICAgIHRyZWVQcm9wcyA9IHt9LFxyXG4gICAgICBmb3JtUHJvcHMgPSB7fSxcclxuICAgICAgc2hvd0xlZnQgPSBmYWxzZSxcclxuICAgICAgc3VibWl0UGFyYW1zID0ge30sXHJcbiAgICAgIHNob3dUb29sQnV0dG9uID0gdHJ1ZSxcclxuICAgICAgYnV0dG9ucyA9IFtdLFxyXG4gICAgICBlZGl0b3JGb3JtID0gdHJ1ZSxcclxuICAgICAgb25TaG93Rm9ybSxcclxuICAgICAgZm9ybUNoYW5nZVZhbGlkID0gdHJ1ZSxcclxuICAgICAgY2xhc3NOYW1lLFxyXG4gICAgICB0b29sQnV0dG9uUG9zaXRpb24gPSBcImJ1dHRvbVwiLFxyXG4gICAgICBhY3Rpb25Qb3JwcyxcclxuICAgIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdG9yZSA9IHt9LFxyXG4gICAgICBmaWx0ZXJDb2x1bW4gPSB0cnVlLFxyXG4gICAgICBhY3Rpb25Db2x1bW4gPSB0cnVlLFxyXG4gICAgICBzaG93Um93U2VsZWN0aW9uID0gdHJ1ZSxcclxuICAgICAgY29sdW1uT3JkZXIgPSB0cnVlLFxyXG4gICAgICByb3dTZWxlY3Rpb24gPSB7fSxcclxuICAgICAgZXhwYW5kYWJsZSA9IHt9LFxyXG4gICAgICAuLi5vdGhlcnRhYmxlUGFyYW1zXHJcbiAgICB9ID0gdGFibGVQcm9wcztcclxuXHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN0b3JlOiB0cmVlU3RvcmUgPSB7fSxcclxuICAgICAgc2hvd1NlYXJjaDogdHJlZVNlYXJjaCA9IHRydWUsXHJcbiAgICAgIHRpdGxlQWxpYXMgPSBcInRpdGxlXCIsXHJcbiAgICAgIC4uLm90aGVydHJlZVBhcmFtc1xyXG4gICAgfSA9IHRyZWVQcm9wcztcclxuXHJcbiAgICBsZXQgdGFibGVQYXJhbXMgPSB7IGZpbHRlckNvbHVtbiwgc3RvcmUsIC4uLm90aGVydGFibGVQYXJhbXMgfSBhcyBhbnk7XHJcbiAgICBpZiAoc2hvd1Jvd1NlbGVjdGlvbikge1xyXG4gICAgICB0YWJsZVBhcmFtcyA9IHtcclxuICAgICAgICAuLi50YWJsZVBhcmFtcyxcclxuICAgICAgICByb3dTZWxlY3Rpb246IHtcclxuICAgICAgICAgIHNlbGVjdGVkUm93S2V5czogdGhpcy5zdGF0ZS5zZWxlY3RlZFJvd0tleXMsXHJcbiAgICAgICAgICBvblNlbGVjdDogdGhpcy5yb3dTZWxlY3Rpb25PblNlbGVjdC5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgb25TZWxlY3RBbGw6IHRoaXMucm93U2VsZWN0aW9uT25TZWxlY3RBbGwuYmluZCh0aGlzKSxcclxuICAgICAgICAgIGNvbHVtbldpZHRoOiA0MCxcclxuICAgICAgICAgIC4uLnJvd1NlbGVjdGlvbixcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgbGV0IHRhYmxlQ29sdW1uOiBhbnlbXSA9IFtdO1xyXG4gICAgY29uc3Qgc2VhcmNoRm9ybXM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgZWRpdG9yRm9ybXM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgZGVmYXVsdFZhbHVlOiBhbnkgPSB7fTtcclxuICAgIGNvbnN0IGNvbHVtbkJ1dHRvbnM6IGFueSA9IFtdO1xyXG4gICAgY29sdW1ucy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdGVtcCA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAodGVtcC5zZWFyY2ggPT09IHRydWUgfHwgdGVtcC5zZWFyY2g/LnNob3cgPT09IHRydWUpIHtcclxuICAgICAgICBzZWFyY2hGb3Jtcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICBsYWJlbDogdGVtcC5zZWFyY2g/LmxhYmVsIHx8IHRlbXAudGl0bGUsXHJcbiAgICAgICAgICB0eXBlOiB0ZW1wLnR5cGUsXHJcbiAgICAgICAgICBwcm9wczogdGVtcC5wcm9wcyxcclxuICAgICAgICAgIGxhYmVsQ29sOiB0ZW1wLnNlYXJjaD8ubGFiZWxDb2wsXHJcbiAgICAgICAgICB3cmFwcGVyQ29sOiB0ZW1wLnNlYXJjaD8ud3JhcHBlckNvbCxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgdGVtcC5zZWFyY2g7XHJcbiAgICAgIHRlbXAuZWRpdG9yICE9PSBmYWxzZSAmJlxyXG4gICAgICAgIGVkaXRvckZvcm1zLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogdGVtcC5maWVsZCB8fCB0ZW1wLmRhdGFJbmRleCxcclxuICAgICAgICAgIGxhYmVsOiB0ZW1wLnRpdGxlLFxyXG4gICAgICAgICAgcnVsZXM6IHRlbXAucnVsZXMgPyB0ZW1wLnJ1bGVzIDogW10sXHJcbiAgICAgICAgICB0eXBlOiB0ZW1wLnR5cGUsXHJcbiAgICAgICAgICBzcGFuOiB0ZW1wLnNwYW4sXHJcbiAgICAgICAgICBkaWN0TmFtZTogdGVtcC5kaWN0TmFtZSxcclxuICAgICAgICAgIHByb3BzOiBvbWl0KHsgLi4udGVtcC5wcm9wcyB9LCBbXCJkZWZhdWx0VmFsdWVcIiwgXCJ2YWx1ZVwiXSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0ZW1wLnByb3BzPy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgIHRlbXAucHJvcHM/LmRlZmF1bHRWYWx1ZSAhPT0gbnVsbFxyXG4gICAgICApIHtcclxuICAgICAgICBjb25zdCBuYW1lID0gdGVtcC5maWVsZCB8fCB0ZW1wLmRhdGFJbmRleDtcclxuICAgICAgICBkZWZhdWx0VmFsdWVbbmFtZV0gPSB0ZW1wLnByb3BzPy5kZWZhdWx0VmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAucnVsZXM7XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnNwYW47XHJcbiAgICAgIGlmICh0ZW1wLmNvbHVtblNlYXJjaCkge1xyXG4gICAgICAgIHRlbXAuZmlsdGVyUHJvcHMgPSB7XHJcbiAgICAgICAgICB0eXBlOiB0ZW1wLnR5cGUsXHJcbiAgICAgICAgICBwcm9wczogdGVtcC5wcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnR5cGU7XHJcbiAgICAgIGxldCB0ZW1wUHJvcCA9IHsgLi4udGVtcC5wcm9wcyB9O1xyXG4gICAgICBpZiAodGVtcC5zdHlsZSkge1xyXG4gICAgICAgIHRlbXAgPSB7XHJcbiAgICAgICAgICByZW5kZXI6ICh0ZXh0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAge3RleHQgIT09IFwiXCIgJiYgdGV4dCAhPT0gbnVsbCAmJiB0ZXh0ICE9PSB1bmRlZmluZWQgJiYgKFxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImNvbC1iYWNrXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImNvbC10ZXh0XCIpfT5cclxuICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLmdldFRleHQodGVtcFByb3AsIHRleHQpfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlbGxpcHNpczogdHJ1ZSxcclxuICAgICAgICAgIC4uLnRlbXAsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0ZW1wID0ge1xyXG4gICAgICAgICAgcmVuZGVyOiAodGV4dDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiA8Pnt0aGlzLmdldFRleHQodGVtcFByb3AsIHRleHQpfTwvPjtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAuLi50ZW1wLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAucHJvcHM7XHJcbiAgICAgIGlmICh0ZW1wPy5jb2x1bW5TaG93ICE9PSBmYWxzZSkgdGFibGVDb2x1bW4ucHVzaCh0ZW1wKTtcclxuICAgIH0pO1xyXG4gICAgY29uc3Qgc2VsZkJ1dHRvbnM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgeyBiYXNlQWN0aW9uQ29sdW1uIH0gPSBjb25maWcoKTtcclxuICAgIGxldCBzaG93SWNvbiA9IHRydWU7XHJcbiAgICBpZiAoYWN0aW9uUG9ycHM/LnNob3dJY29uID09PSBmYWxzZSkgc2hvd0ljb24gPSBmYWxzZTtcclxuICAgIGVsc2UgaWYgKGJhc2VBY3Rpb25Db2x1bW4uc2hvd0ljb24gPT09IGZhbHNlKSBzaG93SWNvbiA9IGZhbHNlO1xyXG4gICAgaWYgKGVkaXRvckZvcm0gPT0gdHJ1ZSkge1xyXG4gICAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwic2VhcmNoXCIpID4gLTEpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goXHJcbiAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eyhyZWNvcmQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgIGlmIChvblNob3dGb3JtKSB7XHJcbiAgICAgICAgICAgICAgICBvblNob3dGb3JtKHJlY29yZC5hdHRyaWJ1dGUgfHwgcmVjb3JkLCBcImRldGFpbFwiKTtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJkZXRhaWxcIik7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGljb249ezxFeWVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg5p+l55yLXHJcbiAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJlZGl0b3JcIikgPiAtMSkge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChcclxuICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgb25DbGljaz17KHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKG9uU2hvd0Zvcm0pIHtcclxuICAgICAgICAgICAgICAgIG9uU2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZWRpdG9yXCIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNob3dGb3JtKHJlY29yZC5hdHRyaWJ1dGUgfHwgcmVjb3JkLCBcImVkaXRvclwiKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgaWNvbj17PEVkaXRPdXRsaW5lZCAvPn1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg57yW6L6RXHJcbiAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwiYWRkXCIpID4gLTEpIHtcclxuICAgICAgc2VsZkJ1dHRvbnMucHVzaChcclxuICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgeyBvblNob3dGb3JtIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgICAgICBpZiAob25TaG93Rm9ybSkge1xyXG4gICAgICAgICAgICAgIG9uU2hvd0Zvcm0oKTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zaG93Rm9ybSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIGljb249ezxQbHVzT3V0bGluZWQgLz59XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAg5re75YqgXHJcbiAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwiZGVsZXRlXCIpID4gLTEpIHtcclxuICAgICAgc2VsZkJ1dHRvbnMucHVzaChcclxuICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAvLyB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgIG9uQ2xpY2s9e3RoaXMub25EZWxldGUuYmluZCh0aGlzKX1cclxuICAgICAgICAgIGljb249ezxJY29uIHR5cGU9e2ljb25UeXBlLmRlbGV0ZTN9IC8+fVxyXG4gICAgICAgICAgZGFuZ2VyXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAg5Yig6ZmkXHJcbiAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY2hpbGRyZW4ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoaXRlbT8ucHJvcHM/LnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgICBzZWxmQnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbT8ucHJvcHM/LnBhZ2VUeXBlID09IFwiY2xvdW1uQnV0dG9uXCIpIHtcclxuICAgICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICBjb25zdCB7IHByb3BzIH06IGFueSA9IGNoaWxkcmVuO1xyXG4gICAgICBpZiAocHJvcHM/LnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgc2VsZkJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICAgIH0gZWxzZSBpZiAocHJvcHM/LnBhZ2VUeXBlID09IFwiY2xvdW1uQnV0dG9uXCIpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBhY3Rpb25Db2x1bW4gJiZcclxuICAgICAgdGFibGVDb2x1bW4ucHVzaCh7XHJcbiAgICAgICAgdGl0bGU6IFwi5pON5L2cXCIsXHJcbiAgICAgICAgZGF0YUluZGV4OiBcImFjdGlvblwiLFxyXG4gICAgICAgIGFsaWduOiBhY3Rpb25Qb3Jwcz8udGV4dEFsaWduXHJcbiAgICAgICAgICA/IGFjdGlvblBvcnBzPy50ZXh0QWxpZ25cclxuICAgICAgICAgIDogYmFzZUFjdGlvbkNvbHVtbi50ZXh0QWxpZ25cclxuICAgICAgICAgID8gYmFzZUFjdGlvbkNvbHVtbi50ZXh0QWxpZ25cclxuICAgICAgICAgIDogXCJjZW50ZXJcIixcclxuICAgICAgICB3aWR0aDogYWN0aW9uUG9ycHM/LndpZHRoXHJcbiAgICAgICAgICA/IGFjdGlvblBvcnBzPy53aWR0aFxyXG4gICAgICAgICAgOiBiYXNlQWN0aW9uQ29sdW1uLndpZHRoXHJcbiAgICAgICAgICA/IGJhc2VBY3Rpb25Db2x1bW4ud2lkdGhcclxuICAgICAgICAgIDogMjAwLFxyXG4gICAgICAgIGZpeGVkOiBcInJpZ2h0XCIsXHJcbiAgICAgICAgZWxsaXBzaXM6IHRydWUsXHJcbiAgICAgICAgcmVuZGVyOiAodGV4dDogYW55LCByZWNvcmQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImFjdGlvblwiKX0+XHJcbiAgICAgICAgICAgICAge3RoaXMucmVuZGVyQ2xvdW1uQnV0dG9uKGNvbHVtbkJ1dHRvbnMsIHJlY29yZCl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIGlmIChjb2x1bW5PcmRlcilcclxuICAgICAgdGFibGVDb2x1bW4gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGl0bGU6IFwi5bqP5Y+3XCIsXHJcbiAgICAgICAgICB3aWR0aDogODAsXHJcbiAgICAgICAgICBhbGlnbjogXCJjZW50ZXJcIixcclxuICAgICAgICAgIHJlbmRlcjogKHRleHQsIHJlYWNvcmQsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiA8PntpbmRleCArIDF9PC8+O1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnRhYmxlQ29sdW1uLFxyXG4gICAgICBdO1xyXG4gICAgbGV0IHNlYXJjaEZsYWcgPSBzaG93U2VhcmNoICYmIHNlYXJjaEZvcm1zLmxlbmd0aCA+IDA7XHJcbiAgICBsZXQgdG9vbEZsYWcgPSBzaG93VG9vbEJ1dHRvbiAmJiBzZWxmQnV0dG9ucy5sZW5ndGggPiAwO1xyXG4gICAgaWYgKHRhYmxlUHJvcHMucGFnaW5hdGlvbiAhPT0gZmFsc2UpIHtcclxuICAgICAgLy8gc2Nyb2xsPXt7IHg6IFwibWF4LWNvbnRlbnRcIiwgeTogXCIyNXZ3XCIgfX1cclxuICAgICAgLy/orqHnrpfooajmoLzpq5jluqZcclxuICAgICAgLy8gbGV0IHRhYmxlSGVpZ2h0ID0gZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQgLSAxNjA7IC8v5pW05L2T6aG16Z2i6auY5bqmLGxheW91dOWktOmDqO+8jHBhZGRpbmdcclxuXHJcbiAgICAgIC8vIGlmICh0aGlzLnByb3BzLnBhZ2VUaXRsZSkge1xyXG4gICAgICAvLyAgIHRhYmxlSGVpZ2h0ID0gdGFibGVIZWlnaHQgLSA1ODsgLy/lh4/ljrvpobXpnaLmoIfpopjpq5jluqZcclxuICAgICAgLy8gfVxyXG4gICAgICAvLyBpZiAoc2VhcmNoRmxhZykge1xyXG4gICAgICAvLyAgIHRhYmxlSGVpZ2h0ID0gdGFibGVIZWlnaHQgLSA2ODsgLy/lh4/ljrvmkJzntKLmoI/pq5jluqZcclxuICAgICAgLy8gfVxyXG4gICAgICAvLyBpZiAoIXNlYXJjaEZsYWcgJiYgdG9vbEZsYWcpIHtcclxuICAgICAgLy8gICAvL+WHj+WOu+W3peWFt+agj+mrmOW6plxyXG4gICAgICAvLyAgIHRhYmxlSGVpZ2h0ID0gdGFibGVIZWlnaHQgLSA2MDtcclxuICAgICAgLy8gfVxyXG4gICAgICAvLyBpZiAoc2VhcmNoRmxhZyAmJiB0b29sRmxhZykge1xyXG4gICAgICAvLyAgIC8v5YeP5Y675bel5YW35qCP6auY5bqmXHJcbiAgICAgIC8vICAgdGFibGVIZWlnaHQgPSB0YWJsZUhlaWdodCAtIDQwO1xyXG4gICAgICAvLyB9XHJcbiAgICAgIC8vIGlmIChzZWFyY2hGbGFnICYmICF0b29sRmxhZykge1xyXG4gICAgICAvLyAgIHRhYmxlSGVpZ2h0ID0gdGFibGVIZWlnaHQgLSAyMjtcclxuICAgICAgLy8gfVxyXG4gICAgICAvLyB0YWJsZUhlaWdodCA9IHRhYmxlSGVpZ2h0IC0gNTIgLSA2NDsgLy/lh4/ljrvooajlpLTlkozliIbpoIHpq5jluqZcclxuICAgICAgY29uc3Qgc2Nyb2xsID0gdGFibGVQYXJhbXMuc2Nyb2xsO1xyXG4gICAgICB0YWJsZVBhcmFtcyA9IHtcclxuICAgICAgICAuLi50YWJsZVBhcmFtcyxcclxuICAgICAgICBzY3JvbGw6IHsgeDogXCJtYXgtY29udGVudFwiLCAuLi5zY3JvbGwgfSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicGFnZVwiKSwgY2xhc3NOYW1lKX0+XHJcbiAgICAgICAge3RoaXMucHJvcHMucGFnZVRpdGxlICYmIChcclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicGFnZS10aXRsZVwiKSl9PlxyXG4gICAgICAgICAgICB7dGhpcy5wcm9wcy5wYWdlVGl0bGV9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApfVxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInBhZ2UtcGFuZVwiKSl9XHJcbiAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtzaG93TGVmdCAmJiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJsZWZ0XCIpfT5cclxuICAgICAgICAgICAgICA8VHJlZVxyXG4gICAgICAgICAgICAgICAgc3RvcmU9e3sgLi4udHJlZVN0b3JlIH19XHJcbiAgICAgICAgICAgICAgICBzaG93SWNvbj17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgICBjaGVja2FibGU9e2ZhbHNlfVxyXG4gICAgICAgICAgICAgICAgc2VhcmNoYWJsZT17dHJlZVNlYXJjaH1cclxuICAgICAgICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLnRyZWVTZWxlY3QuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkS2V5cz17W3RoaXMuc3RhdGUudHJlZVNlbGVjdGVkS2V5XX1cclxuICAgICAgICAgICAgICAgIHRpdGxlQWxpYXM9e3RpdGxlQWxpYXN9XHJcbiAgICAgICAgICAgICAgICB7Li4ub3RoZXJ0cmVlUGFyYW1zfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicmlnaHRcIiksIHtcclxuICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwibm8tbGVmdC1yaWdodFwiKV06ICFzaG93TGVmdCxcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtzaG93U2VhcmNoICYmIHNlYXJjaEZvcm1zLmxlbmd0aCA+IDAgJiYgKFxyXG4gICAgICAgICAgICAgIDxIZWFkZXJTZWFyY2hcclxuICAgICAgICAgICAgICAgIHNlYXJjaEZvcm1zPXtzZWFyY2hGb3Jtc31cclxuICAgICAgICAgICAgICAgIHRvb2xCdXR0b25Qb3NpdGlvbj17dG9vbEJ1dHRvblBvc2l0aW9ufVxyXG4gICAgICAgICAgICAgICAgb25TZWFyY2g9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgIHJlZj17dGhpcy5zZWFyY2hSZWZ9XHJcbiAgICAgICAgICAgICAgICBzZWFyY2hGb3JtUHJvcHM9e3RoaXMucHJvcHMuc2VhcmNoRm9ybVByb3BzfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICl9XHJcblxyXG4gICAgICAgICAgICB7c2hvd1Rvb2xCdXR0b24gJiZcclxuICAgICAgICAgICAgICBzZWxmQnV0dG9ucy5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICAgICAgdG9vbEJ1dHRvblBvc2l0aW9uID09IFwiYnV0dG9tXCIgJiZcclxuICAgICAgICAgICAgICB0aGlzLnJlbmRlclRvb2xCdXR0b25zKHNlbGZCdXR0b25zLCBzZWFyY2hGb3Jtcy5sZW5ndGggPT0gMCl9XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJ0YWJsZVwiKSwge1xyXG4gICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInRhYmxlLXRvcFwiKV06IHNlYXJjaEZsYWcgJiYgIXRvb2xGbGFnLFxyXG4gICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPFRhYmxlXHJcbiAgICAgICAgICAgICAgICByZWY9e3RoaXMudGFibGVSZWZ9XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5zPXt0YWJsZUNvbHVtbn1cclxuICAgICAgICAgICAgICAgIGV4cGFuZGFibGU9e3tcclxuICAgICAgICAgICAgICAgICAgZXhwYW5kSWNvbjogKHsgZXhwYW5kZWQsIG9uRXhwYW5kLCByZWNvcmQgfSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7ZXhwYW5kZWQgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPERvd25PdXRsaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IG9uRXhwYW5kKHJlY29yZCwgZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImV4cGFuZC1pY29uXCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkLmNoaWxkTm9kZXMgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFJpZ2h0T3V0bGluZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IG9uRXhwYW5kKHJlY29yZCwgZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZXhwYW5kLWljb25cIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIC4uLmV4cGFuZGFibGUsXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgY29sdW1uT3JkZXI9e3RydWV9XHJcbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KHBhZ2luYXRpb24pID0+IHtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgeyBjdXJyZW50UGFnZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRQYWdlICE9PSBwYWdpbmF0aW9uLmN1cnJlbnQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRQYWdlOiBwYWdpbmF0aW9uLmN1cnJlbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICB0b29sYmFyPXt7XHJcbiAgICAgICAgICAgICAgICAgIG9uVG9vbENsaWNrOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgb25SZWZyZXNoOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmdldFNlYXJjaFZhbHVlcygpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGhpcy50YWJsZUxvYWQocGFyYW1zKTtcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAuLi50YWJsZVByb3BzLnRvb2xiYXIsXHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgey4uLnRhYmxlUGFyYW1zfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICB7ZWRpdG9yRm9ybSAmJiAoXHJcbiAgICAgICAgICAgIDxFZGl0b3JGb3JtXHJcbiAgICAgICAgICAgICAgcmVmPXt0aGlzLmVkaXRvclJlZn1cclxuICAgICAgICAgICAgICBjYWxsQmFjaz17dGhpcy50YWJsZVJlbG9hZC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgIGZvcm1Qcm9wcz17ZWRpdG9yRm9ybXN9XHJcbiAgICAgICAgICAgICAgc3VibWl0VXJsPXtzdWJtaXRVcmx9XHJcbiAgICAgICAgICAgICAgc3VibWl0UGFyYW1zPXtzdWJtaXRQYXJhbXN9XHJcbiAgICAgICAgICAgICAgb25TdWJtaXQ9e3RoaXMucHJvcHMub25TdWJtaXR9XHJcbiAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtkZWZhdWx0VmFsdWV9XHJcbiAgICAgICAgICAgICAgb25IaWRlRm9ybT17dGhpcy5wcm9wcy5vbkhpZGVGb3JtfVxyXG4gICAgICAgICAgICAgIG9uRm9ybUNoYW5nZT17dGhpcy5wcm9wcy5vbkZvcm1DaGFuZ2V9XHJcbiAgICAgICAgICAgICAgZm9ybVR5cGU9e3RoaXMucHJvcHMuZm9ybVR5cGUgfHwgXCJhdXRvXCJ9XHJcbiAgICAgICAgICAgICAgY2hhbmdlVmFsaWQ9e2Zvcm1DaGFuZ2VWYWxpZH1cclxuICAgICAgICAgICAgICBvdGhlclByb3BzPXt7IC4uLmZvcm1Qcm9wcyB9fVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBCYXNlUGFnZTtcclxuIl19
|
|
1049
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvQmFzZVBhZ2UvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIlRhYmxlIiwiVHJlZSIsIkJ1dHRvbiIsIk1vZGFsIiwiUG9wb3ZlciIsIm1lc3NhZ2UiLCJJY29uIiwiaWNvblR5cGUiLCJFZGl0b3JGb3JtIiwiY2xzIiwic3R5bGVzIiwiRG93bk91dGxpbmVkIiwiRXllT3V0bGluZWQiLCJFZGl0T3V0bGluZWQiLCJSaWdodE91dGxpbmVkIiwiUGx1c091dGxpbmVkIiwiRWxsaXBzaXNPdXRsaW5lZCIsImdldExlc3MiLCJyZXF1ZXN0Iiwib21pdCIsImNvbmZpZyIsImdldFN0b3JhZ2UiLCJIZWFkZXJTZWFyY2giLCJCYXNlUGFnZSIsInByb3BzIiwiY3JlYXRlUmVmIiwiY2hlY2tlZFRyZWVLZXlzIiwic3RhdGUiLCJuYW1lIiwidXNlclR5cGUiLCJhY2NvdW50IiwidmFsdWUiLCJkZXB0SWQiLCJ0YWJsZUxvYWQiLCJzZWxlY3RlZCIsInJlcyIsImtleSIsImtleXMiLCJsZW5ndGgiLCJzdG9yZVByZWZpeCIsInR5cGUiLCJjb250ZW50Iiwic2l6ZSIsInNlbGVjdGVkUm93S2V5cyIsInNlbGVjdGVkUm93RGF0YXMiLCJ0cmVlU2VsZWN0ZWRLZXkiLCJleHBhbmQiLCJmb3JtVHlwZSIsInRhYmxlU2l6ZSIsImluaXREYXRhIiwicGFyYW1zIiwiY2FsbEJhY2siLCJzZWFyY2hSZWYiLCJjdXJyZW50Iiwic2V0U2VhcmNoUGFyYW1zIiwiZWRpdG9yZmxhZyIsImVkaXRvclJlZiIsInNob3ciLCJoaWRlRm9ybSIsImxvYWRpbmciLCJzZXRMb2FkaW5nIiwiZGVsZXRlVXJsIiwib25EZWxldGUiLCJkZWxldGVQYXJhbXMiLCJ3YXJuaW5nIiwiRXJyb3IiLCJjb25maXJtIiwib25PayIsImRlZmF1bHRQYXJhbXMiLCJtZXRob2QiLCJpZHMiLCJqb2luIiwicmVxdWVzdFBhcmFtcyIsInRoZW4iLCJjb2RlIiwic3VjY2VzcyIsImVycm9yIiwiY2F0Y2giLCJjb25zb2xlIiwibG9nIiwidGFibGVSZWYiLCJzdG9yZSIsImxvYWQiLCJvblNlYXJjaCIsImF1dG9Mb2FkIiwicmVsb2FkIiwiY2FsbGJhY2siLCJkYXRhIiwicmVjb3JkcyIsImN1cnJlbnRQYWdlIiwicmVjb3JkIiwidGFibGVQcm9wcyIsInJvd0tleSIsIm5ld1NlbGVjdGVkUm93S2V5cyIsIm5ld1NlbGVjdGVkUm93RGF0YXMiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJzcGxpY2UiLCJzZXRTdGF0ZSIsInNlbGVjdGVkUm93cyIsImNoYW5nZVJvd3MiLCJuZXdpZHMiLCJuZXdkYXRhcyIsImNoYW5nZUlkcyIsImluZGV4T2YiLCJwdXNoIiwic2VsZWN0ZWRSb3dLZXlzU3RvcmUiLCJzZWxlY3RlZFJvd0RhdGFzU3RvcmUiLCJmcm9tVmFsdWUiLCJnZXRTZWFyY2hWYWx1ZXMiLCJyZXNLZXkiLCJjaGlsZE5vZGVzIiwiY2hpbGRyZW4iLCJnZXRDaGlsZHJlbkRhdGEiLCJ0b29sYnV0dG9ucyIsIm1hcmdpbmZsYWciLCJmbGFnIiwic2hvd1NlYXJjaCIsInBhZ2VUeXBlIiwib25DbGljayIsImljb24iLCJtYXJnaW5MZWZ0IiwiY29sdW1uQnV0dG9ucyIsImVkaXRvckZvcm0iLCJidXR0b25zIiwiYWN0aW9uUG9ycHMiLCJiYXNlQWN0aW9uQ29sdW1uIiwibmV3QnV0dG9ucyIsInNob3dJY29uIiwicmVjb3JkU2hvdyIsImV2YWwiLCJzZWxlY3RlZEtleXMiLCJzZWxlY3RlZE5vZGVzIiwia2V5d29yZCIsInRyZWVQcm9wcyIsInNlYXJjaEtleSIsInNlYXJjaEZpZWxkIiwiaXNMZWFmIiwiZGF0YXJlZiIsImF0dHJpYnV0ZSIsInJlc2V0U2VhcmNoIiwidGV4dCIsIm5ld1RleHQiLCJpIiwibGFiZWwiLCJzZXREYXRhIiwidHJlZVJlZiIsImNvbHVtbnMiLCJzdWJtaXRVcmwiLCJmb3JtUHJvcHMiLCJzaG93TGVmdCIsInN1Ym1pdFBhcmFtcyIsInNob3dUb29sQnV0dG9uIiwib25TaG93Rm9ybSIsImZvcm1DaGFuZ2VWYWxpZCIsImNsYXNzTmFtZSIsInRvb2xCdXR0b25Qb3NpdGlvbiIsImZpbHRlckNvbHVtbiIsImFjdGlvbkNvbHVtbiIsInNob3dSb3dTZWxlY3Rpb24iLCJjb2x1bW5PcmRlciIsInJvd1NlbGVjdGlvbiIsImV4cGFuZGFibGUiLCJvdGhlcnRhYmxlUGFyYW1zIiwidHJlZVN0b3JlIiwidHJlZVNlYXJjaCIsInRpdGxlQWxpYXMiLCJvdGhlcnRyZWVQYXJhbXMiLCJ0YWJsZVBhcmFtcyIsIm9uU2VsZWN0Iiwicm93U2VsZWN0aW9uT25TZWxlY3QiLCJiaW5kIiwib25TZWxlY3RBbGwiLCJyb3dTZWxlY3Rpb25PblNlbGVjdEFsbCIsImNvbHVtbldpZHRoIiwidGFibGVDb2x1bW4iLCJzZWFyY2hGb3JtcyIsImVkaXRvckZvcm1zIiwiZGVmYXVsdFZhbHVlIiwidGVtcCIsInNlYXJjaCIsImZpZWxkIiwiZGF0YUluZGV4IiwidGl0bGUiLCJsYWJlbENvbCIsIndyYXBwZXJDb2wiLCJlZGl0b3IiLCJydWxlcyIsInNwYW4iLCJkaWN0TmFtZSIsInVuZGVmaW5lZCIsImNvbHVtblNlYXJjaCIsImZpbHRlclByb3BzIiwidGVtcFByb3AiLCJzdHlsZSIsInJlbmRlciIsImdldFRleHQiLCJlbGxpcHNpcyIsImNvbHVtblNob3ciLCJzZWxmQnV0dG9ucyIsInNob3dGb3JtIiwiZGVsZXRlMyIsIkFycmF5IiwiaXNBcnJheSIsImFsaWduIiwidGV4dEFsaWduIiwid2lkdGgiLCJmaXhlZCIsInJlbmRlckNsb3VtbkJ1dHRvbiIsInJlYWNvcmQiLCJzZWFyY2hGbGFnIiwidG9vbEZsYWciLCJwYWdpbmF0aW9uIiwic2Nyb2xsIiwieCIsInRhYmxlVG9vbCIsInBhZ2VUaXRsZSIsImRpc3BsYXkiLCJ0cmVlU2VsZWN0Iiwic2VhcmNoRm9ybVByb3BzIiwicmVuZGVyVG9vbEJ1dHRvbnMiLCJ0b29sYmFyIiwidG9vbHMiLCJleHBhbmRJY29uIiwiZXhwYW5kZWQiLCJvbkV4cGFuZCIsImUiLCJvblRvb2xDbGljayIsIm9uUmVmcmVzaCIsInRhYmxlUmVsb2FkIiwib25TdWJtaXQiLCJvbkhpZGVGb3JtIiwib25Gb3JtQ2hhbmdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQVAsSUFBZ0JDLGFBQWhCLFFBQWdELE9BQWhEO0FBQ0EsT0FBT0MsS0FBUCxNQUFrQixrQkFBbEI7QUFDQSxPQUFPQyxJQUFQLE1BQWlCLGlCQUFqQjtBQUVBLE9BQU9DLE1BQVAsTUFBbUIsbUJBQW5CO0FBQ0EsT0FBT0MsS0FBUCxNQUFrQixrQkFBbEI7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLG9CQUFwQjtBQUNBLE9BQU9DLE9BQVAsTUFBb0Isb0JBQXBCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQiw0QkFBakI7QUFDQSxTQUFTQyxRQUFULFFBQXlCLGlCQUF6QjtBQUNBLE9BQU9DLFVBQVAsTUFBdUIsUUFBdkI7QUFDQSxPQUFPQyxHQUFQLE1BQWdCLFlBQWhCO0FBQ0EsT0FBT0MsTUFBUCxNQUFtQixxQkFBbkI7QUFHQSxTQUNFQyxZQURGLEVBRUVDLFdBRkYsRUFHRUMsWUFIRixFQUlFQyxhQUpGLEVBS0VDLFlBTEYsRUFNRUMsZ0JBTkYsUUFPTyxtQkFQUDtBQVFBLFNBQVNDLE9BQVQsUUFBaUMsYUFBakM7QUFDQSxPQUFPQyxPQUFQLE1BQW9CLGFBQXBCO0FBQ0EsT0FBT0MsSUFBUCxNQUFpQixTQUFqQjtBQUNBLE9BQU9DLE1BQVAsTUFBbUIsY0FBbkI7QUFDQSxTQUFTQyxVQUFULFFBQTJCLG1CQUEzQjtBQUVBLE9BQU9DLFlBQVAsTUFBeUIsaUJBQXpCOztJQW1ETUMsUTs7Ozs7QUFNSixvQkFBWUMsS0FBWixFQUF3QjtBQUFBOztBQUFBOztBQUFBOztBQUN0Qiw4QkFBTUEsS0FBTjs7QUFEc0IsNEVBTGIxQixLQUFLLENB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LFVBQUFBLFdBQVcsRUFBRTtBQUNYQyxZQUFBQSxTQUFTLEVBQUUscUJBQU07QUFDZixrQkFBTW5MLE1BQU0sR0FBRyxNQUFJLENBQUM0RCxlQUFMLEVBQWY7O0FBQ0EsY0FBQSxNQUFJLENBQUM3RSxTQUFMLENBQWVpQixNQUFmO0FBQ0Q7QUFKVTtBQURSLFdBT0Z5QyxVQUFVLENBQUNtSSxPQVBUO0FBbENULFNBMkNNckQsV0EzQ04sRUFURixDQW5CRixDQWxCRixFQTZGRzdDLFVBQVUsaUJBQ1Qsb0JBQUMsVUFBRDtBQUNFLFFBQUEsR0FBRyxFQUFFLEtBQUtwRSxTQURaO0FBRUUsUUFBQSxRQUFRLEVBQUUsS0FBSzhLLFdBQUwsQ0FBaUIxRCxJQUFqQixDQUFzQixJQUF0QixDQUZaO0FBR0UsUUFBQSxTQUFTLEVBQUVNLFdBSGI7QUFJRSxRQUFBLFNBQVMsRUFBRTdCLFNBSmI7QUFLRSxRQUFBLFlBQVksRUFBRUcsWUFMaEI7QUFNRSxRQUFBLFFBQVEsRUFBRSxLQUFLaEksS0FBTCxDQUFXK00sUUFOdkI7QUFPRSxRQUFBLFlBQVksRUFBRXBELFlBUGhCO0FBUUUsUUFBQSxVQUFVLEVBQUUsS0FBSzNKLEtBQUwsQ0FBV2dOLFVBUnpCO0FBU0UsUUFBQSxZQUFZLEVBQUUsS0FBS2hOLEtBQUwsQ0FBV2lOLFlBVDNCO0FBVUUsUUFBQSxRQUFRLEVBQUUsS0FBS2pOLEtBQUwsQ0FBV3VCLFFBQVgsSUFBdUIsTUFWbkM7QUFXRSxRQUFBLFdBQVcsRUFBRTRHLGVBWGY7QUFZRSxRQUFBLFVBQVUsb0JBQU9MLFNBQVA7QUFaWixRQTlGSixDQU5GLENBREY7QUF1SEQ7Ozs7RUF4MEJvQnZKLGE7O0FBMDBCdkIsZUFBZXdCLFFBQWYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgUHVyZUNvbXBvbmVudCwgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBUYWJsZSBmcm9tIFwiLi4vLi4vYmFzZS90YWJsZVwiO1xyXG5pbXBvcnQgVHJlZSBmcm9tIFwiLi4vLi4vYmFzZS90cmVlXCI7XHJcbmltcG9ydCBGb3JtIGZyb20gXCIuLi8uLi9iYXNlL2Zvcm1cIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IE1vZGFsIGZyb20gXCIuLi8uLi9iYXNlL21vZGFsXCI7XHJcbmltcG9ydCBQb3BvdmVyIGZyb20gXCIuLi8uLi9iYXNlL3BvcG92ZXJcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL2Jhc2UvbWVzc2FnZVwiO1xyXG5pbXBvcnQgSWNvbiBmcm9tIFwiLi4vLi4vYmFzZS9jb21tb24vSWNvbkZvbnRcIjtcclxuaW1wb3J0IHsgaWNvblR5cGUgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCBFZGl0b3JGb3JtIGZyb20gXCIuL0Zvcm1cIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lm1vZHVsZS5sZXNzXCI7XHJcbmltcG9ydCBTdG9yZSwgeyBQYWdlU3RvcmUsIFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IFJvdyBmcm9tIFwiLi4vLi4vYmFzZS9ncmlkL1Jvd1wiO1xyXG5pbXBvcnQge1xyXG4gIERvd25PdXRsaW5lZCxcclxuICBFeWVPdXRsaW5lZCxcclxuICBFZGl0T3V0bGluZWQsXHJcbiAgUmlnaHRPdXRsaW5lZCxcclxuICBQbHVzT3V0bGluZWQsXHJcbiAgRWxsaXBzaXNPdXRsaW5lZCxcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcywgZ2V0Tm9kZSB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgcmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCB7IGdldFN0b3JhZ2UgfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW1wb3J0IHsgSUZvcm1Qcm9wcyB9IGZyb20gXCIuLi8uLi9iYXNlL2Zvcm0vRm9ybVwiO1xyXG5pbXBvcnQgSGVhZGVyU2VhcmNoIGZyb20gXCIuLi9IZWFkZXJTZWFyY2hcIjtcclxuaW50ZXJmYWNlIFRhYmxlUHJvcHMge1xyXG4gIGFjdGlvbkNvbHVtbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65pON5L2c5YiXXHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIGZpbHRlckNvbHVtbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S66L+H5ruk5oyJ6ZKuXHJcbiAgc2hvd1Jvd1NlbGVjdGlvbj86IGJvb2xlYW47IC8v5piv5ZCm6KGo5qC85Yu+6YCJ5YiXXHJcbiAgcGFnaW5hdGlvbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65YiG6aG1XHJcbiAgY29sdW1uT3JkZXI/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuihqOagvOW6j+WIl1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5pbnRlcmZhY2UgVHJlZVByb3BzIHtcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgc2hvd1NlYXJjaD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65pCc57Si5qGGXHJcbiAgc2VhcmNoS2V5Pzogc3RyaW5nOyAvL+aQnOe0onZhbHVl5a+55bqU55qEa2V5XHJcbiAgc2VhcmNoRmllbGQ/OiBzdHJpbmc7IC8v5p+l6K+i5a+55bqU55qEa2V5XHJcbiAgdGl0bGVBbGlhcz86IHN0cmluZzsgLy/moJF0aXRsZeWvueW6lOeahGtleSzpu5jorqR0aXRsZVxyXG4gIG5vZGVQb3Jwcz86IG9iamVjdDtcclxuICBbcHJvcHNOYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuaW50ZXJmYWNlIEZvcm1Qcm9wcyBleHRlbmRzIElGb3JtUHJvcHMge31cclxuaW50ZXJmYWNlIE5TQ0Jhc2VCYWdlUHJvcHMge1xyXG4gIHNob3dTZWFyY2g/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuWktOmDqOaQnOe0ouagj1xyXG4gIHRhYmxlUHJvcHM/OiBUYWJsZVByb3BzOyAvL+ihqOagvOWPguaVsFxyXG4gIHRyZWVQcm9wcz86IFRyZWVQcm9wczsgLy/lt6bkvqfmoJHlj4LmlbBcclxuICBzdWJtaXRQYXJhbXM/OiBPYmplY3Q7IC8v5re75Yqg5Y+C5pWw77yM6buY6K6kbW90aG9kOnBvc3TvvIwg5Y+C5pWw6YCa6L+HZGF0YeS8oOmAklxyXG4gIHN1Ym1pdFVybD86IHN0cmluZztcclxuICBvblN1Ym1pdD86ICh2YWx1ZT86IGFueSwgbGFiZWw/OiBhbnkpID0+IHZvaWQ7XHJcbiAgY29sdW1uczogQXJyYXk8T2JqZWN0PjtcclxuICBzaG93TGVmdD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65bem5L6n55uu5b2V5qCRXHJcbiAgc2hvd1Rvb2xCdXR0b24/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuaMiemSruagj1xyXG4gIGVkaXRvckZvcm0/OiBib29sZWFuOyAvL+aYr+WQpumcgOimgeihqOWNleWKn+iDvSAsIOS4umZhbHNlIOe8lui+ke+8jOafpeeci++8jOaWsOWinuWKn+iDveWdh+S4jeWPr+eUqFxyXG4gIGRlbGV0ZVVybD86IHN0cmluZzsgLy/liKDpmaR1cmxcclxuICBvbkRlbGV0ZT86IChzZWxlY3RlZEtleXM/OiBBcnJheTxhbnk+KSA9PiB2b2lkOyAvL+WIoOmZpOWPguaVsO+8jOm7mOiupG1vdGhvZDpwb3N077yMIOWPguaVsOmAmui/h2lkc+aLvOaOpeS8oOmAkue7meWQjuWPsFxyXG4gIGRlbGV0ZVBhcmFtcz86IE9iamVjdDtcclxuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcclxuICBvblNlYXJjaD86ICh2YWx1ZT86IGFueSkgPT4gdm9pZDtcclxuICBpbml0RGF0YT86IGFueTsgLy/liJ3lp4vljJblm57osIPlh73mlbDvvIzlnKhjb21wb25lbnREaWRNb3VudOS4reiwg+eUqFxyXG4gIGJ1dHRvbnM/OiBBcnJheTxzdHJpbmc+OyAvL+aMiemSrumbhuWQiCAgWydhZGQnLCdkZWxldGUnLCdzZWFyY2gnLCdlZGl0b3InXVxyXG4gIG9uU2hvd0Zvcm0/OiAodmFsdWU/OiBhbnksIGVkaXRvckZsYWc/OiBzdHJpbmcpID0+IHZvaWQ7IC8v5omT5byA6KGo5Y2V5Zue6LCDXHJcbiAgb25IaWRlRm9ybT86ICgpID0+IHZvaWQ7IC8v5omT5byA6KGo5Y2V5Zue6LCDXHJcbiAgb25Gb3JtQ2hhbmdlPzogKGNoYW5nZWRWYWx1ZXM/OiBhbnksIGFsbFZhbHVlcz86IGFueSkgPT4gdm9pZDsgLy/ooajljZVvbkNoYW5nZeWbnuiwg1xyXG4gIGZvcm1UeXBlPzogXCJtb2RhbFwiIHwgXCJkcmF3ZXJcIjtcclxuICBmb3JtQ2hhbmdlVmFsaWQ/OiBib29sZWFuOyAvL+ihqOWNleagoemqjFxyXG4gIGNsYXNzTmFtZT86IGFueTtcclxuICB0b29sQnV0dG9uUG9zaXRpb24/OiBcInJpZ2h0XCIgfCBcImJ1dHRvbVwiO1xyXG4gIHBhZ2VUaXRsZT86IHN0cmluZyB8IFJlYWN0Tm9kZTtcclxuICBmb3JtUHJvcHM/OiBGb3JtUHJvcHM7XHJcbiAgYWN0aW9uUG9ycHM/OiB7IHRleHRBbGlnbj86IHN0cmluZzsgc2hvd0ljb24/OiBib29sZWFuOyB3aWR0aD86IG51bWJlciB9O1xyXG4gIHNlYXJjaEZvcm1Qcm9wcz86IHsgd3JhcHBlckNvbD86IGFueTsgbGFiZWxDb2w/OiBhbnkgfTtcclxufVxyXG5cclxuY2xhc3MgQmFzZVBhZ2UgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PE5TQ0Jhc2VCYWdlUHJvcHMsIGFueT4ge1xyXG4gIHRhYmxlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICB0cmVlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBzZWFyY2hSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGVkaXRvclJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgZGF0ZUZvcm1hdCA9IHt9IGFzIGFueTtcclxuICBjb25zdHJ1Y3Rvcihwcm9wczogYW55KSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBsZXQgeyBzdG9yZVByZWZpeCB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgdHlwZSA9IGdldFN0b3JhZ2UoXHJcbiAgICAgIHN0b3JlUHJlZml4ID8gc3RvcmVQcmVmaXggKyBcIi1cIiArIFwiZm9ybVR5cGVcIiA6IFwiZm9ybVR5cGVcIlxyXG4gICAgKTtcclxuICAgIHR5cGUgPSB0eXBlPy5jb250ZW50O1xyXG4gICAgbGV0IHNpemUgPSBnZXRTdG9yYWdlKFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4ICsgXCItXCIgKyBcInRhYmxlU2l6ZVwiIDogXCJ0YWJsZVNpemVcIlxyXG4gICAgKTtcclxuICAgIHNpemUgPSBzaXplPy5jb250ZW50O1xyXG4gICAgdGhpcy5zdGF0ZSA9IHtcclxuICAgICAgdHlwZTogXCJhZGRcIixcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBbXSxcclxuICAgICAgc2VsZWN0ZWRSb3dEYXRhczogW10sXHJcbiAgICAgIHRyZWVTZWxlY3RlZEtleTogXCJcIixcclxuICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgICAgZm9ybVR5cGU6IHR5cGUgfHwgXCJtb2RhbFwiLFxyXG4gICAgICB0YWJsZVNpemU6IHNpemUgfHwgXCJkZWZhdWx0XCIsXHJcbiAgICB9O1xyXG4gIH1cclxuICBjb21wb25lbnREaWRNb3VudCgpIHtcclxuICAgIGNvbnN0IHsgaW5pdERhdGEgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBpbml0RGF0YSAmJiBpbml0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0U2VhcmNoUGFyYW1zKHBhcmFtcywgY2FsbEJhY2spIHtcclxuICAgIHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LnNldFNlYXJjaFBhcmFtcyhwYXJhbXMpO1xyXG4gICAgY2FsbEJhY2sgJiYgY2FsbEJhY2socGFyYW1zKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0ID0gKGNoZWNrZWRUcmVlS2V5czogYW55KSA9PiB7XHJcbiAgICBjb25zdCB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgdmFsdWUgPSB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50LCBkZXB0SWQ6IGNoZWNrZWRUcmVlS2V5c1swXSB9O1xyXG4gICAgdGhpcy50YWJsZUxvYWQodmFsdWUpO1xyXG4gIH07XHJcblxyXG4gIC8v5pi+56S66KGo5Y2VXHJcbiAgc2hvd0Zvcm0odmFsdWU/OiBhbnksIGVkaXRvcmZsYWcgPSBcImFkZFwiKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5zaG93KHZhbHVlLCBlZGl0b3JmbGFnKTtcclxuICB9XHJcblxyXG4gIC8v5YWz6Zet6KGo5Y2VXHJcbiAgaGlkZUZvcm0oKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0TG9hZGluZyhsb2FkaW5nOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5zZXRMb2FkaW5nKGxvYWRpbmcpO1xyXG4gIH1cclxuXHJcbiAgLy/mibnph4/liKDpmaRcclxuICBvbkRlbGV0ZSgpIHtcclxuICAgIGNvbnN0IHsgZGVsZXRlVXJsLCBvbkRlbGV0ZSwgZGVsZXRlUGFyYW1zIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZFJvd0tleXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoc2VsZWN0ZWRSb3dLZXlzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIG1lc3NhZ2Uud2FybmluZyhcIuivt+mAieaLqeimgeWIoOmZpOeahOaVsOaNru+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKG9uRGVsZXRlKSB7XHJcbiAgICAgIG9uRGVsZXRlICYmIG9uRGVsZXRlKHNlbGVjdGVkUm93S2V5cyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICghZGVsZXRlVXJsKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOS4jeiDveS4uuepuu+8gVwiKTtcclxuICAgIH1cclxuICAgIE1vZGFsLmNvbmZpcm0oe1xyXG4gICAgICBjb250ZW50OiBcIuaYr+WQpuehruiupOWIoOmZpOaJgOmAiemhue+8n1wiLFxyXG4gICAgICAvLyBjZW50ZXJlZDp0cnVlLFxyXG4gICAgICBvbk9rOiAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdFBhcmFtcyA9IHtcclxuICAgICAgICAgIG1ldGhvZDogXCJwb3N0XCIsXHJcbiAgICAgICAgICBwYXJhbXM6IHsgaWRzOiBzZWxlY3RlZFJvd0tleXMuam9pbigpIH0sXHJcbiAgICAgICAgfTtcclxuICAgICAgICBsZXQgcmVxdWVzdFBhcmFtcyA9IHt9IGFzIGFueTtcclxuICAgICAgICBpZiAoZGVmYXVsdFBhcmFtcykge1xyXG4gICAgICAgICAgcmVxdWVzdFBhcmFtcyA9IHsgLi4uZGVsZXRlUGFyYW1zIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlcXVlc3RQYXJhbXMgPSB7IC4uLmRlZmF1bHRQYXJhbXMgfTtcclxuICAgICAgICByZXF1ZXN0KGRlbGV0ZVVybCwge1xyXG4gICAgICAgICAgLi4ucmVxdWVzdFBhcmFtcyxcclxuICAgICAgICB9KVxyXG4gICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgY29kZSB9ID0gcmVzO1xyXG4gICAgICAgICAgICBpZiAoY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKFwi5Yig6Zmk5oiQ5Yqf77yBXCIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoXCLliKDpmaTlpLHotKXvvIFcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yOiBhbnkpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnJvcik7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICB0YWJsZUxvYWQocGFyYW1zOiBhbnkpIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUubG9hZCh7XHJcbiAgICAgIHBhcmFtczogcGFyYW1zLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8v5p+l6K+iXHJcbiAgb25TZWFyY2gocGFyYW1zKSB7XHJcbiAgICBjb25zdCB7IG9uU2VhcmNoIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaWYgKG9uU2VhcmNoKSB7XHJcbiAgICAgIG9uU2VhcmNoKHBhcmFtcyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMudGFibGVMb2FkKHBhcmFtcyk7XHJcbiAgfVxyXG4gIC8v6KGo5qC86YeN5paw5Yqg6L29XHJcbiAgdGFibGVSZWxvYWQocGFyYW1zID0ge30sIGF1dG9Mb2FkID0gdHJ1ZSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5yZWxvYWQoe1xyXG4gICAgICBjYWxsYmFjazogKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIGF1dG9Mb2FkICYmXHJcbiAgICAgICAgICByZXM/LmRhdGE/LnJlY29yZHM/Lmxlbmd0aCA9PSAwICYmXHJcbiAgICAgICAgICB0aGlzLnN0YXRlLmN1cnJlbnRQYWdlICE9PSAxXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLnJlbG9hZCh7XHJcbiAgICAgICAgICAgIHBhcmFtczogeyBjdXJyZW50OiAxLCAuLi5wYXJhbXMgfSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICByb3dTZWxlY3Rpb25PblNlbGVjdChyZWNvcmQ6IGFueSwgc2VsZWN0ZWQ6IGFueSkge1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZFJvd0tleXMsIHNlbGVjdGVkUm93RGF0YXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7IHRhYmxlUHJvcHMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHJvd0tleSA9IFwiaWRcIiB9ID0gdGFibGVQcm9wcztcclxuICAgIGxldCBuZXdTZWxlY3RlZFJvd0tleXMgPSBbLi4uc2VsZWN0ZWRSb3dLZXlzXTtcclxuICAgIGxldCBuZXdTZWxlY3RlZFJvd0RhdGFzID0gWy4uLnNlbGVjdGVkUm93RGF0YXNdO1xyXG4gICAgaWYgKHNlbGVjdGVkKSB7XHJcbiAgICAgIG5ld1NlbGVjdGVkUm93S2V5cyA9IFsuLi5uZXdTZWxlY3RlZFJvd0tleXMsIHJlY29yZFtyb3dLZXldXTtcclxuICAgICAgbmV3U2VsZWN0ZWRSb3dEYXRhcyA9IFsuLi5uZXdTZWxlY3RlZFJvd0RhdGFzLCByZWNvcmRdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0gPT09IHJlY29yZFtyb3dLZXldKSB7XHJcbiAgICAgICAgICBuZXdTZWxlY3RlZFJvd0tleXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICBzZWxlY3RlZFJvd0RhdGFzLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW1bcm93S2V5XSA9PT0gcmVjb3JkW3Jvd0tleV0pIHtcclxuICAgICAgICAgIG5ld1NlbGVjdGVkUm93RGF0YXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogbmV3U2VsZWN0ZWRSb3dLZXlzLFxyXG4gICAgICBzZWxlY3RlZFJvd0RhdGFzOiBuZXdTZWxlY3RlZFJvd0RhdGFzLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJvd1NlbGVjdGlvbk9uU2VsZWN0QWxsKHNlbGVjdGVkOiBhbnksIHNlbGVjdGVkUm93czogYW55LCBjaGFuZ2VSb3dzOiBhbnkpIHtcclxuICAgIGNvbnN0IHsgc2VsZWN0ZWRSb3dLZXlzLCBzZWxlY3RlZFJvd0RhdGFzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgeyB0YWJsZVByb3BzIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyByb3dLZXkgPSBcImlkXCIgfSA9IHRhYmxlUHJvcHM7XHJcbiAgICBsZXQgbmV3aWRzOiBhbnkgPSBbXTtcclxuICAgIGxldCBuZXdkYXRhczogYW55ID0gW107XHJcbiAgICBpZiAoY2hhbmdlUm93cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBjaGFuZ2VJZHMgPSBjaGFuZ2VSb3dzLm1hcCgoaXRlbTogYW55KSA9PiBpdGVtW3Jvd0tleV0pO1xyXG4gICAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgICBuZXdpZHMgPSBbLi4uc2VsZWN0ZWRSb3dLZXlzLCAuLi5jaGFuZ2VJZHNdO1xyXG4gICAgICAgIG5ld2RhdGFzID0gWy4uLnNlbGVjdGVkUm93RGF0YXMsIC4uLmNoYW5nZVJvd3NdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNlbGVjdGVkUm93S2V5cy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNoYW5nZUlkcy5pbmRleE9mKGl0ZW0pID09IC0xKSB7XHJcbiAgICAgICAgICAgIG5ld2lkcy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHNlbGVjdGVkUm93RGF0YXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChjaGFuZ2VJZHMuaW5kZXhPZihpdGVtW3Jvd0tleV0pID09IC0xKSB7XHJcbiAgICAgICAgICAgIG5ld2RhdGFzLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld2lkcyA9IFsuLi5zZWxlY3RlZFJvd0tleXNdO1xyXG4gICAgICBuZXdkYXRhcyA9IFsuLi5zZWxlY3RlZFJvd0RhdGFzXTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RlZFJvd0tleXM6IFsuLi5uZXdpZHNdLFxyXG4gICAgICBzZWxlY3RlZFJvd0RhdGFzOiBbLi4ubmV3ZGF0YXNdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkUm93S2V5cygpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLnNlbGVjdGVkUm93S2V5cztcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRSb3dEYXRhcygpIHtcclxuICAgIHJldHVybiB0aGlzLnN0YXRlLnNlbGVjdGVkUm93RGF0YXM7XHJcbiAgfVxyXG4gIHJlc2V0U2VsZWN0ZWRSb3dLZXlzKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogW10sXHJcbiAgICAgIHNlbGVjdGVkUm93RGF0YXM6IFtdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNldFNlbGVjdGVkUm93S2V5cyhkYXRhKSB7XHJcbiAgICBjb25zdCB7IGN1cnJlbnRQYWdlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogZGF0YSxcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzU3RvcmU6IHsgW2N1cnJlbnRQYWdlXTogZGF0YSB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHNldFNlbGVjdGVkUm93RGF0YXMoZGF0YSkge1xyXG4gICAgY29uc3QgeyBjdXJyZW50UGFnZSB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RlZFJvd0RhdGFzOiBkYXRhLFxyXG4gICAgICBzZWxlY3RlZFJvd0RhdGFzU3RvcmU6IHsgW2N1cnJlbnRQYWdlXTogZGF0YSB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIGdldFNlYXJjaFZhbHVlcygpIHtcclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmPy5jdXJyZW50Py5nZXRTZWFyY2hWYWx1ZXMoKTtcclxuICAgIHJldHVybiBmcm9tVmFsdWU7XHJcbiAgfVxyXG5cclxuICBnZXRDaGlsZHJlbkRhdGEoZGF0YSwga2V5cyA9IFtdKSB7XHJcbiAgICBjb25zdCB7IHRhYmxlUHJvcHMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHJvd0tleSA9IFwiaWRcIiB9ID0gdGFibGVQcm9wcztcclxuICAgIGxldCByZXNLZXkgPSBbXTtcclxuICAgIGlmIChkYXRhLmNoaWxkTm9kZXMpIHtcclxuICAgICAgY29uc3QgY2hpbGRyZW4gPSBkYXRhLmNoaWxkTm9kZXM7XHJcbiAgICAgIGNoaWxkcmVuLm1hcCgoaXRlbSwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoaXRlbS5jaGlsZE5vZGVzKSB7XHJcbiAgICAgICAgICB0aGlzLmdldENoaWxkcmVuRGF0YShpdGVtLmNoaWxkTm9kZXMsIGtleXMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXNLZXkgPSBbLi4ua2V5cywgaXRlbVtyb3dLZXldXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVzS2V5ID0gWy4uLmtleXMsIGRhdGFbcm93S2V5XV07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzS2V5O1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyVG9vbEJ1dHRvbnModG9vbGJ1dHRvbnM6IGFueSwgbWFyZ2luZmxhZyA9IGZhbHNlKSB7XHJcbiAgICBjb25zdCBmbGFnID0gdG9vbGJ1dHRvbnMubGVuZ3RoID4gNTtcclxuICAgIGNvbnN0IHsgc2hvd1NlYXJjaCA9IHRydWUgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBjb250ZW50ID0gdG9vbGJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIGljb24sIHNob3csIC4uLnBhcmFtcyB9ID0gaXRlbS5wcm9wcztcclxuICAgICAgaWYgKGluZGV4ID4gNCkge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSxcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJjb250ZW50LWl0ZW1cIilcclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljaygpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwidG9vbC1idXR0b25zXCIpLCB7XHJcbiAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwidG9vbC1idXR0b25zLW1hcmdpblwiKV06ICFzaG93U2VhcmNoIHx8IG1hcmdpbmZsYWcsXHJcbiAgICAgICAgfSl9XHJcbiAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogMCB9fVxyXG4gICAgICA+XHJcbiAgICAgICAge3Rvb2xidXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgICAgICBpZiAoaW5kZXggPCA0KSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0+e2l0ZW19PC9kaXY+O1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGluZGV4ID09IDQpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgPFBvcG92ZXJcclxuICAgICAgICAgICAgICAgICAgY29udGVudD17Y29udGVudH1cclxuICAgICAgICAgICAgICAgICAgdGl0bGU9e251bGx9XHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgICAgIHRyaWdnZXI9e1tcImNsaWNrXCJdfVxyXG4gICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgICAgICAvLyBvdmVybGF5Q2xhc3NOYW1lPXtzdHlsZXNbJ3BvcC1ib3gnXX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIOabtOWkmiA8RG93bk91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9Qb3BvdmVyPlxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17aW5kZXh9PntpdGVtfTwvZGl2PjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KX1cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxuICByZW5kZXJDbG91bW5CdXR0b24oY29sdW1uQnV0dG9uczogYW55LCByZWNvcmQ6IGFueSkge1xyXG4gICAgY29uc3QgeyBlZGl0b3JGb3JtID0gdHJ1ZSwgYnV0dG9ucyA9IFtdLCBhY3Rpb25Qb3JwcyB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHsgYmFzZUFjdGlvbkNvbHVtbiB9ID0gY29uZmlnKCk7XHJcbiAgICBjb25zdCBuZXdCdXR0b25zID0gW107XHJcbiAgICBsZXQgc2hvd0ljb24gPSB0cnVlO1xyXG4gICAgaWYgKGFjdGlvblBvcnBzPy5zaG93SWNvbiA9PT0gZmFsc2UpIHNob3dJY29uID0gZmFsc2U7XHJcbiAgICBlbHNlIGlmIChiYXNlQWN0aW9uQ29sdW1uLnNob3dJY29uID09PSBmYWxzZSkgc2hvd0ljb24gPSBmYWxzZTtcclxuICAgIGNvbHVtbkJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIGljb24sIHJlY29yZFNob3csIC4uLnBhcmFtcyB9ID1cclxuICAgICAgICBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAocmVjb3JkU2hvdykge1xyXG4gICAgICAgIGlmICh0eXBlb2YgcmVjb3JkU2hvdyA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICBpZiAoZXZhbChyZWNvcmRTaG93KSkge1xyXG4gICAgICAgICAgICBuZXdCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcmVjb3JkU2hvdyA9PSBcImZ1bmN0aW9uXCIpIHtcclxuICAgICAgICAgIGNvbnN0IHNob3cgPSByZWNvcmRTaG93KHJlY29yZCk7XHJcbiAgICAgICAgICBzaG93ICYmIG5ld0J1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbmV3QnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGZsYWcgPSBuZXdCdXR0b25zLmxlbmd0aCA+IDM7XHJcblxyXG4gICAgY29uc3QgY29udGVudCA9IG5ld0J1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIHJlY29yZFNob3csIGljb24sIHNob3csIC4uLnBhcmFtcyB9ID1cclxuICAgICAgICBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAoaW5kZXggPiAyKSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImNvbnRlbnQtaXRlbVwiKVxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtzaG93SWNvbiAhPT0gZmFsc2UgJiYgKFxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9PntjaGlsZHJlbn08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gbmV3QnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgcmVjb3JkU2hvdywgaWNvbiwgLi4ucGFyYW1zIH0gPVxyXG4gICAgICAgIGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgaWYgKGluZGV4IDwgMykge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKSwge1xyXG4gICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcImVkaXRvcl9maXJzdFwiKV06IGluZGV4ID09PSAwLFxyXG4gICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAge3Nob3dJY29uICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT0gMykge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPFBvcG92ZXJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgIHRpdGxlPXtudWxsfVxyXG4gICAgICAgICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XHJcbiAgICAgICAgICAgICAgdHJpZ2dlcj17W1wiY2xpY2tcIl19XHJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAvLyBvdmVybGF5Q2xhc3NOYW1lPXtzdHlsZXNbJ3BvcCddfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKX0+XHJcbiAgICAgICAgICAgICAgICA8RWxsaXBzaXNPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLCB7XHJcbiAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcImVkaXRvcl9maXJzdFwiKV06IGluZGV4ID09PSAwLFxyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljayhyZWNvcmQpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7c2hvd0ljb24gIT09IGZhbHNlICYmIChcclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG4gIC8v5qCR54K55Ye75LqL5Lu2XHJcbiAgdHJlZVNlbGVjdChzZWxlY3RlZEtleXM6IGFueSwgeyBzZWxlY3RlZCwgc2VsZWN0ZWROb2RlcyB9OiBhbnkpIHtcclxuICAgIGxldCBrZXl3b3JkID0gXCJcIjtcclxuICAgIGNvbnN0IHsgc2VhcmNoS2V5ID0gXCJrZXlcIiwgc2VhcmNoRmllbGQgPSBcIlwiIH0gPSB0aGlzLnByb3BzLnRyZWVQcm9wcztcclxuICAgIGNvbnN0IHsgdHJlZVNlbGVjdGVkS2V5IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgaWYgKHNlbGVjdGVkKSB7XHJcbiAgICAgIGlmIChzZWxlY3RlZE5vZGVzWzBdLmlzTGVhZiB8fCAhc2VsZWN0ZWROb2Rlc1swXS5jaGlsZHJlbikge1xyXG4gICAgICAgIGlmIChzZWxlY3RlZEtleXNbMF0gIT09IHRyZWVTZWxlY3RlZEtleSkge1xyXG4gICAgICAgICAga2V5d29yZCA9IHNlbGVjdGVkTm9kZXNbMF0uZGF0YXJlZi5hdHRyaWJ1dGVbc2VhcmNoS2V5XTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICB0cmVlU2VsZWN0ZWRLZXk6IHNlbGVjdGVkS2V5c1swXSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgdHJlZVNlbGVjdGVkS2V5OiBrZXl3b3JkLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmPy5jdXJyZW50Py5nZXRTZWFyY2hWYWx1ZXMoKXx8e307XHJcbiAgICBzZWFyY2hGaWVsZCAmJiB0aGlzLnRhYmxlTG9hZCh7IC4uLmZyb21WYWx1ZSwgW3NlYXJjaEZpZWxkXToga2V5d29yZCB9KTtcclxuICB9XHJcbiAgcmVzZXRTZWFyY2goKSB7XHJcbiAgICB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5yZXNldFNlYXJjaCgpO1xyXG4gIH1cclxuICBnZXRUZXh0KHByb3BzLCB0ZXh0KSB7XHJcbiAgICBsZXQgbmV3VGV4dCA9IHRleHQ7XHJcbiAgICBpZiAocHJvcHM/LmRhdGEgJiYgcHJvcHM/LmRhdGE/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGRhdGEgPSBwcm9wcy5kYXRhO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGE/Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGRhdGFbaV0udmFsdWUgPT0gdGV4dCkge1xyXG4gICAgICAgICAgbmV3VGV4dCA9IGRhdGFbaV0ubGFiZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3VGV4dDtcclxuICB9XHJcbiAgc2V0VGFibGVEYXRhKGRhdGEpIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUuc2V0RGF0YShkYXRhKTtcclxuICB9XHJcbiAgc2V0VHJlZURhdGEoZGF0YSkge1xyXG4gICAgdGhpcy50cmVlUmVmLmN1cnJlbnQ/LnN0b3JlLnNldERhdGEoZGF0YSk7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkS2V5ID0gKHNlbGVjdGVkKSA9PiB7XHJcbiAgICBsZXQgcmVzID0gW107XHJcbiAgICBmb3IgKGxldCBrZXkgaW4gc2VsZWN0ZWQpIHtcclxuICAgICAgY29uc3Qga2V5cyA9IHNlbGVjdGVkW2tleV07XHJcbiAgICAgIGlmIChrZXlzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICByZXMgPSBbLi4ucmVzLCAuLi5rZXlzXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJlcztcclxuICB9O1xyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHtcclxuICAgICAgY29sdW1ucyA9IFtdLFxyXG4gICAgICBzaG93U2VhcmNoID0gdHJ1ZSxcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIHN1Ym1pdFVybCA9IFwiXCIsXHJcbiAgICAgIHRhYmxlUHJvcHMgPSB7fSxcclxuICAgICAgdHJlZVByb3BzID0ge30sXHJcbiAgICAgIGZvcm1Qcm9wcyA9IHt9LFxyXG4gICAgICBzaG93TGVmdCA9IGZhbHNlLFxyXG4gICAgICBzdWJtaXRQYXJhbXMgPSB7fSxcclxuICAgICAgc2hvd1Rvb2xCdXR0b24gPSB0cnVlLFxyXG4gICAgICBidXR0b25zID0gW10sXHJcbiAgICAgIGVkaXRvckZvcm0gPSB0cnVlLFxyXG4gICAgICBvblNob3dGb3JtLFxyXG4gICAgICBmb3JtQ2hhbmdlVmFsaWQgPSB0cnVlLFxyXG4gICAgICBjbGFzc05hbWUsXHJcbiAgICAgIHRvb2xCdXR0b25Qb3NpdGlvbiA9IFwiYnV0dG9tXCIsXHJcbiAgICAgIGFjdGlvblBvcnBzLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN0b3JlID0ge30sXHJcbiAgICAgIGZpbHRlckNvbHVtbiA9IHRydWUsXHJcbiAgICAgIGFjdGlvbkNvbHVtbiA9IHRydWUsXHJcbiAgICAgIHNob3dSb3dTZWxlY3Rpb24gPSB0cnVlLFxyXG4gICAgICBjb2x1bW5PcmRlciA9IHRydWUsXHJcbiAgICAgIHJvd1NlbGVjdGlvbiA9IHt9LFxyXG4gICAgICBleHBhbmRhYmxlID0ge30sXHJcbiAgICAgIC4uLm90aGVydGFibGVQYXJhbXNcclxuICAgIH0gPSB0YWJsZVByb3BzO1xyXG5cclxuICAgIGNvbnN0IHtcclxuICAgICAgc3RvcmU6IHRyZWVTdG9yZSA9IHt9LFxyXG4gICAgICBzaG93U2VhcmNoOiB0cmVlU2VhcmNoID0gdHJ1ZSxcclxuICAgICAgdGl0bGVBbGlhcyA9IFwidGl0bGVcIixcclxuICAgICAgLi4ub3RoZXJ0cmVlUGFyYW1zXHJcbiAgICB9ID0gdHJlZVByb3BzO1xyXG5cclxuICAgIGxldCB0YWJsZVBhcmFtcyA9IHsgZmlsdGVyQ29sdW1uLCBzdG9yZSwgLi4ub3RoZXJ0YWJsZVBhcmFtcyB9IGFzIGFueTtcclxuICAgIGlmIChzaG93Um93U2VsZWN0aW9uKSB7XHJcbiAgICAgIHRhYmxlUGFyYW1zID0ge1xyXG4gICAgICAgIC4uLnRhYmxlUGFyYW1zLFxyXG4gICAgICAgIHJvd1NlbGVjdGlvbjoge1xyXG4gICAgICAgICAgc2VsZWN0ZWRSb3dLZXlzOiB0aGlzLnN0YXRlLnNlbGVjdGVkUm93S2V5cyxcclxuICAgICAgICAgIG9uU2VsZWN0OiB0aGlzLnJvd1NlbGVjdGlvbk9uU2VsZWN0LmJpbmQodGhpcyksXHJcbiAgICAgICAgICBvblNlbGVjdEFsbDogdGhpcy5yb3dTZWxlY3Rpb25PblNlbGVjdEFsbC5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgY29sdW1uV2lkdGg6IDQwLFxyXG4gICAgICAgICAgLi4ucm93U2VsZWN0aW9uLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBsZXQgdGFibGVDb2x1bW46IGFueVtdID0gW107XHJcbiAgICBjb25zdCBzZWFyY2hGb3JtczogYW55ID0gW107XHJcbiAgICBjb25zdCBlZGl0b3JGb3JtczogYW55ID0gW107XHJcbiAgICBjb25zdCBkZWZhdWx0VmFsdWU6IGFueSA9IHt9O1xyXG4gICAgY29uc3QgY29sdW1uQnV0dG9uczogYW55ID0gW107XHJcbiAgICBjb2x1bW5zLm1hcCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGxldCB0ZW1wID0geyAuLi5pdGVtIH07XHJcbiAgICAgIGlmICh0ZW1wLnNlYXJjaCA9PT0gdHJ1ZSB8fCB0ZW1wLnNlYXJjaD8uc2hvdyA9PT0gdHJ1ZSkge1xyXG4gICAgICAgIHNlYXJjaEZvcm1zLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogdGVtcC5maWVsZCB8fCB0ZW1wLmRhdGFJbmRleCxcclxuICAgICAgICAgIGxhYmVsOiB0ZW1wLnNlYXJjaD8ubGFiZWwgfHwgdGVtcC50aXRsZSxcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgICAgbGFiZWxDb2w6IHRlbXAuc2VhcmNoPy5sYWJlbENvbCxcclxuICAgICAgICAgIHdyYXBwZXJDb2w6IHRlbXAuc2VhcmNoPy53cmFwcGVyQ29sLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnNlYXJjaDtcclxuICAgICAgdGVtcC5lZGl0b3IgIT09IGZhbHNlICYmXHJcbiAgICAgICAgZWRpdG9yRm9ybXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4LFxyXG4gICAgICAgICAgbGFiZWw6IHRlbXAudGl0bGUsXHJcbiAgICAgICAgICBydWxlczogdGVtcC5ydWxlcyA/IHRlbXAucnVsZXMgOiBbXSxcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHNwYW46IHRlbXAuc3BhbixcclxuICAgICAgICAgIGRpY3ROYW1lOiB0ZW1wLmRpY3ROYW1lLFxyXG4gICAgICAgICAgcHJvcHM6IG9taXQoeyAuLi50ZW1wLnByb3BzIH0sIFtcImRlZmF1bHRWYWx1ZVwiLCBcInZhbHVlXCJdKSxcclxuICAgICAgICB9KTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRlbXAucHJvcHM/LmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgdGVtcC5wcm9wcz8uZGVmYXVsdFZhbHVlICE9PSBudWxsXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IG5hbWUgPSB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4O1xyXG4gICAgICAgIGRlZmF1bHRWYWx1ZVtuYW1lXSA9IHRlbXAucHJvcHM/LmRlZmF1bHRWYWx1ZTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgdGVtcC5ydWxlcztcclxuICAgICAgZGVsZXRlIHRlbXAuc3BhbjtcclxuICAgICAgaWYgKHRlbXAuY29sdW1uU2VhcmNoKSB7XHJcbiAgICAgICAgdGVtcC5maWx0ZXJQcm9wcyA9IHtcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAudHlwZTtcclxuICAgICAgbGV0IHRlbXBQcm9wID0geyAuLi50ZW1wLnByb3BzIH07XHJcbiAgICAgIGlmICh0ZW1wLnN0eWxlKSB7XHJcbiAgICAgICAgdGVtcCA9IHtcclxuICAgICAgICAgIHJlbmRlcjogKHRleHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICB7dGV4dCAhPT0gXCJcIiAmJiB0ZXh0ICE9PSBudWxsICYmIHRleHQgIT09IHVuZGVmaW5lZCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiY29sLWJhY2tcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiY29sLXRleHRcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgICAge3RoaXMuZ2V0VGV4dCh0ZW1wUHJvcCwgdGV4dCl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVsbGlwc2lzOiB0cnVlLFxyXG4gICAgICAgICAgLi4udGVtcCxcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRlbXAgPSB7XHJcbiAgICAgICAgICByZW5kZXI6ICh0ZXh0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIDw+e3RoaXMuZ2V0VGV4dCh0ZW1wUHJvcCwgdGV4dCl9PC8+O1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnRlbXAsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgdGVtcC5wcm9wcztcclxuICAgICAgaWYgKHRlbXA/LmNvbHVtblNob3cgIT09IGZhbHNlKSB0YWJsZUNvbHVtbi5wdXNoKHRlbXApO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBzZWxmQnV0dG9uczogYW55ID0gW107XHJcbiAgICBjb25zdCB7IGJhc2VBY3Rpb25Db2x1bW4gfSA9IGNvbmZpZygpO1xyXG4gICAgbGV0IHNob3dJY29uID0gdHJ1ZTtcclxuICAgIGlmIChhY3Rpb25Qb3Jwcz8uc2hvd0ljb24gPT09IGZhbHNlKSBzaG93SWNvbiA9IGZhbHNlO1xyXG4gICAgZWxzZSBpZiAoYmFzZUFjdGlvbkNvbHVtbi5zaG93SWNvbiA9PT0gZmFsc2UpIHNob3dJY29uID0gZmFsc2U7XHJcbiAgICBpZiAoZWRpdG9yRm9ybSA9PSB0cnVlKSB7XHJcbiAgICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJzZWFyY2hcIikgPiAtMSkge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChcclxuICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgb25DbGljaz17KHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKG9uU2hvd0Zvcm0pIHtcclxuICAgICAgICAgICAgICAgIG9uU2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZGV0YWlsXCIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNob3dGb3JtKHJlY29yZC5hdHRyaWJ1dGUgfHwgcmVjb3JkLCBcImRldGFpbFwiKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgaWNvbj17PEV5ZU91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDmn6XnnItcclxuICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcImVkaXRvclwiKSA+IC0xKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICBvbkNsaWNrPXsocmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAob25TaG93Rm9ybSkge1xyXG4gICAgICAgICAgICAgICAgb25TaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJlZGl0b3JcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZWRpdG9yXCIpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBpY29uPXs8RWRpdE91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDnvJbovpFcclxuICAgICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJhZGRcIikgPiAtMSkge1xyXG4gICAgICBzZWxmQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IG9uU2hvd0Zvcm0gfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgICAgIGlmIChvblNob3dGb3JtKSB7XHJcbiAgICAgICAgICAgICAgb25TaG93Rm9ybSgpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNob3dGb3JtKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgaWNvbj17PFBsdXNPdXRsaW5lZCAvPn1cclxuICAgICAgICA+XHJcbiAgICAgICAgICDmt7vliqBcclxuICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJkZWxldGVcIikgPiAtMSkge1xyXG4gICAgICBzZWxmQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIC8vIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgb25DbGljaz17dGhpcy5vbkRlbGV0ZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgaWNvbj17PEljb24gdHlwZT17aWNvblR5cGUuZGVsZXRlM30gLz59XHJcbiAgICAgICAgICBkYW5nZXJcclxuICAgICAgICA+XHJcbiAgICAgICAgICDliKDpmaRcclxuICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICAgIHNlbGZCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJjbG91bW5CdXR0b25cIikge1xyXG4gICAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGNoaWxkcmVuKSB7XHJcbiAgICAgIGNvbnN0IHsgcHJvcHMgfTogYW55ID0gY2hpbGRyZW47XHJcbiAgICAgIGlmIChwcm9wcz8ucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICBzZWxmQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfSBlbHNlIGlmIChwcm9wcz8ucGFnZVR5cGUgPT0gXCJjbG91bW5CdXR0b25cIikge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGFjdGlvbkNvbHVtbiAmJlxyXG4gICAgICB0YWJsZUNvbHVtbi5wdXNoKHtcclxuICAgICAgICB0aXRsZTogXCLmk43kvZxcIixcclxuICAgICAgICBkYXRhSW5kZXg6IFwiYWN0aW9uXCIsXHJcbiAgICAgICAgYWxpZ246IGFjdGlvblBvcnBzPy50ZXh0QWxpZ25cclxuICAgICAgICAgID8gYWN0aW9uUG9ycHM/LnRleHRBbGlnblxyXG4gICAgICAgICAgOiBiYXNlQWN0aW9uQ29sdW1uLnRleHRBbGlnblxyXG4gICAgICAgICAgPyBiYXNlQWN0aW9uQ29sdW1uLnRleHRBbGlnblxyXG4gICAgICAgICAgOiBcImNlbnRlclwiLFxyXG4gICAgICAgIHdpZHRoOiBhY3Rpb25Qb3Jwcz8ud2lkdGhcclxuICAgICAgICAgID8gYWN0aW9uUG9ycHM/LndpZHRoXHJcbiAgICAgICAgICA6IGJhc2VBY3Rpb25Db2x1bW4ud2lkdGhcclxuICAgICAgICAgID8gYmFzZUFjdGlvbkNvbHVtbi53aWR0aFxyXG4gICAgICAgICAgOiAyMDAsXHJcbiAgICAgICAgZml4ZWQ6IFwicmlnaHRcIixcclxuICAgICAgICBlbGxpcHNpczogdHJ1ZSxcclxuICAgICAgICByZW5kZXI6ICh0ZXh0OiBhbnksIHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiYWN0aW9uXCIpfT5cclxuICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJDbG91bW5CdXR0b24oY29sdW1uQnV0dG9ucywgcmVjb3JkKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgaWYgKGNvbHVtbk9yZGVyKVxyXG4gICAgICB0YWJsZUNvbHVtbiA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0aXRsZTogXCLluo/lj7dcIixcclxuICAgICAgICAgIHdpZHRoOiA4MCxcclxuICAgICAgICAgIGFsaWduOiBcImNlbnRlclwiLFxyXG4gICAgICAgICAgcmVuZGVyOiAodGV4dCwgcmVhY29yZCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIDw+e2luZGV4ICsgMX08Lz47XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4udGFibGVDb2x1bW4sXHJcbiAgICAgIF07XHJcbiAgICBsZXQgc2VhcmNoRmxhZyA9IHNob3dTZWFyY2ggJiYgc2VhcmNoRm9ybXMubGVuZ3RoID4gMDtcclxuICAgIGxldCB0b29sRmxhZyA9IHNob3dUb29sQnV0dG9uICYmIHNlbGZCdXR0b25zLmxlbmd0aCA+IDA7XHJcbiAgICBpZiAodGFibGVQcm9wcy5wYWdpbmF0aW9uICE9PSBmYWxzZSkge1xyXG4gICAgICBjb25zdCBzY3JvbGwgPSB0YWJsZVBhcmFtcy5zY3JvbGw7XHJcbiAgICAgIHRhYmxlUGFyYW1zID0ge1xyXG4gICAgICAgIC4uLnRhYmxlUGFyYW1zLFxyXG4gICAgICAgIHNjcm9sbDogeyB4OiBcIm1heC1jb250ZW50XCIsIC4uLnNjcm9sbCB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgbGV0IHsgdGFibGVUb29sIH0gPSBjb25maWcoKTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicGFnZVwiKSwgY2xhc3NOYW1lKX0+XHJcbiAgICAgICAge3RoaXMucHJvcHMucGFnZVRpdGxlICYmIChcclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicGFnZS10aXRsZVwiKSl9PlxyXG4gICAgICAgICAgICB7dGhpcy5wcm9wcy5wYWdlVGl0bGV9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApfVxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInBhZ2UtcGFuZVwiKSl9XHJcbiAgICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHtzaG93TGVmdCAmJiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJsZWZ0XCIpfT5cclxuICAgICAgICAgICAgICA8VHJlZVxyXG4gICAgICAgICAgICAgICAgc3RvcmU9e3sgLi4udHJlZVN0b3JlIH19XHJcbiAgICAgICAgICAgICAgICBzaG93SWNvbj17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgICBjaGVja2FibGU9e2ZhbHNlfVxyXG4gICAgICAgICAgICAgICAgc2VhcmNoYWJsZT17dHJlZVNlYXJjaH1cclxuICAgICAgICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLnRyZWVTZWxlY3QuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgIHNlbGVjdGVkS2V5cz17W3RoaXMuc3RhdGUudHJlZVNlbGVjdGVkS2V5XX1cclxuICAgICAgICAgICAgICAgIHRpdGxlQWxpYXM9e3RpdGxlQWxpYXN9XHJcbiAgICAgICAgICAgICAgICB7Li4ub3RoZXJ0cmVlUGFyYW1zfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicmlnaHRcIiksIHtcclxuICAgICAgICAgICAgICBbZ2V0TGVzcyhzdHlsZXMsIFwibm8tbGVmdC1yaWdodFwiKV06ICFzaG93TGVmdCxcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHtzaG93U2VhcmNoICYmIHNlYXJjaEZvcm1zLmxlbmd0aCA+IDAgJiYgKFxyXG4gICAgICAgICAgICAgIDxIZWFkZXJTZWFyY2hcclxuICAgICAgICAgICAgICAgIHNlYXJjaEZvcm1zPXtzZWFyY2hGb3Jtc31cclxuICAgICAgICAgICAgICAgIHRvb2xCdXR0b25Qb3NpdGlvbj17dG9vbEJ1dHRvblBvc2l0aW9ufVxyXG4gICAgICAgICAgICAgICAgb25TZWFyY2g9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgIHJlZj17dGhpcy5zZWFyY2hSZWZ9XHJcbiAgICAgICAgICAgICAgICBzZWFyY2hGb3JtUHJvcHM9e3RoaXMucHJvcHMuc2VhcmNoRm9ybVByb3BzfVxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICl9XHJcblxyXG4gICAgICAgICAgICB7c2hvd1Rvb2xCdXR0b24gJiZcclxuICAgICAgICAgICAgICBzZWxmQnV0dG9ucy5sZW5ndGggPiAwICYmXHJcbiAgICAgICAgICAgICAgdG9vbEJ1dHRvblBvc2l0aW9uID09IFwiYnV0dG9tXCIgJiZcclxuICAgICAgICAgICAgICB0aGlzLnJlbmRlclRvb2xCdXR0b25zKHNlbGZCdXR0b25zLCBzZWFyY2hGb3Jtcy5sZW5ndGggPT0gMCl9XHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJ0YWJsZVwiKSwge1xyXG4gICAgICAgICAgICAgICAgW2dldExlc3Moc3R5bGVzLCBcInRhYmxlLXRvcFwiKV06XHJcbiAgICAgICAgICAgICAgICAgIChzZWFyY2hGbGFnICYmICF0b29sRmxhZykgfHxcclxuICAgICAgICAgICAgICAgICAgdGFibGVQcm9wcy50b29sYmFyID09IGZhbHNlIHx8XHJcbiAgICAgICAgICAgICAgICAgIHRhYmxlUHJvcHMudG9vbGJhci50b29scy5sZW5ndGggPT0gMCB8fFxyXG4gICAgICAgICAgICAgICAgICB0YWJsZVRvb2wudG9vbHMubGVuZ3RoID09IDAsXHJcbiAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8VGFibGVcclxuICAgICAgICAgICAgICAgIHJlZj17dGhpcy50YWJsZVJlZn1cclxuICAgICAgICAgICAgICAgIGNvbHVtbnM9e3RhYmxlQ29sdW1ufVxyXG4gICAgICAgICAgICAgICAgZXhwYW5kYWJsZT17e1xyXG4gICAgICAgICAgICAgICAgICBleHBhbmRJY29uOiAoeyBleHBhbmRlZCwgb25FeHBhbmQsIHJlY29yZCB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtleHBhbmRlZCA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8RG93bk91dGxpbmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4gb25FeHBhbmQocmVjb3JkLCBlKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZXhwYW5kLWljb25cIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2hpbGROb2RlcyAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8UmlnaHRPdXRsaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4gb25FeHBhbmQocmVjb3JkLCBlKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJleHBhbmQtaWNvblwiKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgLi4uZXhwYW5kYWJsZSxcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBjb2x1bW5PcmRlcj17dHJ1ZX1cclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsocGFnaW5hdGlvbikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCB7IGN1cnJlbnRQYWdlIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFBhZ2UgIT09IHBhZ2luYXRpb24uY3VycmVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgY3VycmVudFBhZ2U6IHBhZ2luYXRpb24uY3VycmVudCxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIHRvb2xiYXI9e3tcclxuICAgICAgICAgICAgICAgICAgb25Ub29sQ2xpY2s6IHtcclxuICAgICAgICAgICAgICAgICAgICBvblJlZnJlc2g6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuZ2V0U2VhcmNoVmFsdWVzKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRhYmxlTG9hZChwYXJhbXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIC4uLnRhYmxlUHJvcHMudG9vbGJhcixcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICB7Li4udGFibGVQYXJhbXN9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIHtlZGl0b3JGb3JtICYmIChcclxuICAgICAgICAgICAgPEVkaXRvckZvcm1cclxuICAgICAgICAgICAgICByZWY9e3RoaXMuZWRpdG9yUmVmfVxyXG4gICAgICAgICAgICAgIGNhbGxCYWNrPXt0aGlzLnRhYmxlUmVsb2FkLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgZm9ybVByb3BzPXtlZGl0b3JGb3Jtc31cclxuICAgICAgICAgICAgICBzdWJtaXRVcmw9e3N1Ym1pdFVybH1cclxuICAgICAgICAgICAgICBzdWJtaXRQYXJhbXM9e3N1Ym1pdFBhcmFtc31cclxuICAgICAgICAgICAgICBvblN1Ym1pdD17dGhpcy5wcm9wcy5vblN1Ym1pdH1cclxuICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2RlZmF1bHRWYWx1ZX1cclxuICAgICAgICAgICAgICBvbkhpZGVGb3JtPXt0aGlzLnByb3BzLm9uSGlkZUZvcm19XHJcbiAgICAgICAgICAgICAgb25Gb3JtQ2hhbmdlPXt0aGlzLnByb3BzLm9uRm9ybUNoYW5nZX1cclxuICAgICAgICAgICAgICBmb3JtVHlwZT17dGhpcy5wcm9wcy5mb3JtVHlwZSB8fCBcImF1dG9cIn1cclxuICAgICAgICAgICAgICBjaGFuZ2VWYWxpZD17Zm9ybUNoYW5nZVZhbGlkfVxyXG4gICAgICAgICAgICAgIG90aGVyUHJvcHM9e3sgLi4uZm9ybVByb3BzIH19XHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IEJhc2VQYWdlO1xyXG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nsc-react-component",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.31",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"lodash": "^4.17.21",
|
|
45
45
|
"mini-css-extract-plugin": "^1.5.0",
|
|
46
46
|
"nsc-file": "^2.2.4",
|
|
47
|
-
"nsc-request": "
|
|
47
|
+
"nsc-request": "3.0.6",
|
|
48
48
|
"react": "^17.0.1",
|
|
49
49
|
"react-dom": "^17.0.1",
|
|
50
50
|
"rimraf": "^3.0.2",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"core-js": "3",
|
|
74
74
|
"draft-js": "^0.11.7",
|
|
75
75
|
"draftjs-to-html": "^0.9.1",
|
|
76
|
-
"echarts": "^5.
|
|
76
|
+
"echarts": "^5.4.2",
|
|
77
77
|
"html-to-draftjs": "^1.5.0",
|
|
78
78
|
"md5": "^2.3.0",
|
|
79
79
|
"omit.js": "^2.0.2",
|