nsc-react-component 4.3.5 → 4.3.7

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.
@@ -74,14 +74,12 @@ class NscImportData extends React.PureComponent {
74
74
  if (res.code == 200) {
75
75
  var _res$data, _res$data2;
76
76
  // message.success("导入成功!");
77
-
78
77
  if (((_res$data = res.data) === null || _res$data === void 0 || (_res$data = _res$data.warnings) === null || _res$data === void 0 ? void 0 : _res$data.length) > 0) {
79
78
  this.setState({
80
79
  requestStatus: "warning",
81
80
  warnList: res.data.warnings
82
81
  });
83
- }
84
- if (((_res$data2 = res.data) === null || _res$data2 === void 0 || (_res$data2 = _res$data2.errors) === null || _res$data2 === void 0 ? void 0 : _res$data2.length) > 0) {
82
+ } else if (((_res$data2 = res.data) === null || _res$data2 === void 0 || (_res$data2 = _res$data2.errors) === null || _res$data2 === void 0 ? void 0 : _res$data2.length) > 0) {
85
83
  // message.success("导入失败!");
86
84
  this.setState({
87
85
  requestStatus: "error",
@@ -106,11 +104,15 @@ class NscImportData extends React.PureComponent {
106
104
  renderErrorContent(list) {
107
105
  return list.map((item, index) => {
108
106
  if (this.state.requestStatus == "warning") {
109
- return typeof item == "string" ? /*#__PURE__*/React.createElement("div", null, item) : /*#__PURE__*/React.createElement("div", {
107
+ return typeof item == "string" ? /*#__PURE__*/React.createElement("div", {
108
+ key: index
109
+ }, item) : /*#__PURE__*/React.createElement("div", {
110
110
  key: index
111
111
  }, "第" + item.rowNum + "行数据重复;");
112
112
  } else {
113
- return typeof item == "string" ? /*#__PURE__*/React.createElement("div", null, item) : /*#__PURE__*/React.createElement("div", {
113
+ return typeof item == "string" ? /*#__PURE__*/React.createElement("div", {
114
+ key: index
115
+ }, item) : /*#__PURE__*/React.createElement("div", {
114
116
  key: index
115
117
  }, item.errorMsg);
116
118
  }
@@ -336,4 +338,4 @@ class NscImportData extends React.PureComponent {
336
338
  }
337
339
  }
338
340
  export default NscImportData;
339
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIk5zY1VwbG9hZCIsIk5TQ0J1dHRvbiIsIk5zY0Rvd25Mb2FkIiwiTnNjTW9kYWwiLCJGaWxlSWNvbiIsIlVwbG9hZE91dGxpbmVkIiwiRm9sZGVyT3V0bGluZWQiLCJDbG9zZUNpcmNsZU91dGxpbmVkIiwiRXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lZCIsIlN0ZXBzIiwibnNjRmlsZSIsIkFsZXJ0IiwiQ29sbGFwc2UiLCJOc2NJbXBvcnREYXRhIiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5Iiwic3RhdHVzIiwiZmlsZSIsImN1cnJlbnRTdGVwIiwicmVxdWVzdFN0YXR1cyIsImVycm9yTGlzdCIsIndhcm5MaXN0IiwiYnV0dG9uTG9hZGluZyIsImNyZWF0ZVJlZiIsImZpbGVTaXplS2IiLCJudW1iZXIiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJ0b0ZpeGVkIiwic2hvdyIsIl90aGlzJG1vZGFsUmVmJGN1cnJlbiIsIm1vZGFsUmVmIiwiY3VycmVudCIsImhpZGUiLCJfdGhpcyRtb2RhbFJlZiRjdXJyZW4yIiwicmVzZXREYXRhIiwiaW1wb3J0RGF0YSIsImlzT3ZlcndyaXRlIiwicmVxdWVzdENvbmZpZyIsImltcG9ydFVybCIsIm9uQ2FsbEJhY2tzIiwicHJvcHMiLCJkYXRhIiwiY29uZmlnIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwic2V0U3RhdGUiLCJpbXBvcnRGaWxlIiwidXJsIiwiX29iamVjdFNwcmVhZCIsInRoZW4iLCJyZXMiLCJjb2RlIiwiX3JlcyRkYXRhIiwiX3JlcyRkYXRhMiIsIndhcm5pbmdzIiwiZXJyb3JzIiwiX21lc3NhZ2UiLCJzdWNjZXNzIiwiaW1wb3J0Q2FsbEJhY2siLCJlcnJvciIsInJlbmRlckVycm9yQ29udGVudCIsImxpc3QiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJzdGF0ZSIsImNyZWF0ZUVsZW1lbnQiLCJrZXkiLCJyb3dOdW0iLCJlcnJvck1zZyIsInJlbmRlclJlc3VsdCIsImFsZXJ0X21zZ19tYXAiLCJ3YXJuaW5nIiwiX2FsZXJ0X21zZ19tYXAkcmVxdWVzIiwic3R5bGUiLCJtYXJnaW5Ub3AiLCJtZXNzYWdlIiwidHlwZSIsInNob3dJY29uIiwiZXhwYW5kSWNvblBvc2l0aW9uIiwiY2xhc3NOYW1lIiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyIiwiYm9yZGVyUmFkaXVzIiwiZGVmYXVsdEFjdGl2ZUtleSIsIlBhbmVsIiwiaGVhZGVyIiwiY29sb3IiLCJleHRyYSIsImJhY2tncm91bmQiLCJyZW5kZXIiLCJkb3duTG9hZFRlbXBsZXQiLCJkb3duVGVtcGxldFVybCIsImNoZWNrRGF0YSIsImNoZWNrVXJsIiwiZm9vdGVyIiwib25DbGljayIsImVycm9yQ291bnQiLCJkdXBsaWNhdGVDb3VudCIsImR1cGxpY2F0ZUxpc3QiLCJkaXNhYmxlZCIsImljb24iLCJtYXJnaW5MZWZ0IiwiY2hpbGRyZW4iLCJGcmFnbWVudCIsInNob3dCdXR0b24iLCJ0aXRsZSIsIndpZHRoIiwid3JhcENsYXNzTmFtZSIsInJlZiIsIm9uQ2FuY2VsIiwiZGlzcGxheSIsImJlZm9yZVVwbG9hZCIsImFsbG93RmlsZVN1ZmZpeCIsImFjY2VwdCIsInNob3dVcGxvYWRMaXN0IiwibmFtZSIsInNpemUiLCJpdGVtcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvaW1wb3J0RGF0YS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IE5zY1VwbG9hZCBmcm9tIFwiLi4vdXBsb2FkXCI7XHJcbmltcG9ydCBOU0NCdXR0b24gZnJvbSBcIi4uL2J1dHRvblwiO1xyXG5pbXBvcnQgTnNjRG93bkxvYWQgZnJvbSBcIi4uL2Rvd25sb2FkXCI7XHJcbmltcG9ydCBOc2NNb2RhbCBmcm9tIFwiLi4vbW9kYWxcIjtcclxuaW1wb3J0IEZpbGVJY29uIGZyb20gXCIuLi9jb21tb24vRmlsZUljb25cIjtcclxuaW1wb3J0IHtcclxuICBVcGxvYWRPdXRsaW5lZCxcclxuICBGb2xkZXJPdXRsaW5lZCxcclxuICBDbG9zZUNpcmNsZU91dGxpbmVkLFxyXG4gIEV4Y2xhbWF0aW9uQ2lyY2xlT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCBTdGVwcyBmcm9tIFwiLi4vc3RlcHNcIjtcclxuaW1wb3J0IG5zY0ZpbGUgZnJvbSBcIm5zYy1maWxlXCI7XHJcbmltcG9ydCB7IG1lc3NhZ2UgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgQWxlcnQgZnJvbSBcIi4uL2FsZXJ0XCI7XHJcbmltcG9ydCBDb2xsYXBzZSBmcm9tIFwiLi4vY29sbGFwc2VcIjtcclxuaW1wb3J0IEljb24gZnJvbSBcIi4uL2NvbW1vbi9JY29uXCI7XHJcblxyXG5pbnRlcmZhY2UgSW1wb3J0UHJvcG9zIHtcclxuICBjaGVja0RhdGE/OiBib29sZWFuOyAvL+aYr+WQpui/m+ihjOaVsOaNruagoemqjO+8jOm7mOiupGZhbHNlXHJcbiAgY2hlY2tVcmw/OiBzdHJpbmc7IC8v5pWw5o2u5qCh6aqM5o6l5Y+j5Zyw5Z2AXHJcbiAgaW1wb3J0VXJsOiBzdHJpbmc7IC8v5pWw5o2u5a+85YWl5Zyw5Z2AXHJcbiAgcmVxdWVzdENvbmZpZz86IGFueTtcclxuICBkb3duTG9hZFRlbXBsZXQ/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuS4i+i9veaooeadv+aMiemSrlxyXG4gIGRvd25UZW1wbGV0VXJsPzogc3RyaW5nOyAvL+S4i+i9veaooeadv+WcsOWdgFxyXG4gIG9uQ2FsbEJhY2tzPzoge1xyXG4gICAgY2hlY2tDYWxsQmFjaz86IGFueTsgLy/mlbDmja7moKHpqozlm57osINcclxuICAgIGltcG9ydENhbGxCYWNrPzogYW55OyAvL+aVsOaNruWvvOWFpeWbnuiwg1xyXG4gICAgY2xvc2VDYWxsQmFjaz86IGFueTtcclxuICB9O1xyXG4gIHNob3dCdXR0b24/OiBib29sZWFuO1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5jbGFzcyBOc2NJbXBvcnREYXRhIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudDxJbXBvcnRQcm9wb3MsIGFueT4ge1xyXG4gIHN0YXRlID0ge1xyXG4gICAgc3RhdHVzOiAxLFxyXG4gICAgZmlsZTogbnVsbCxcclxuICAgIGN1cnJlbnRTdGVwOiAxLFxyXG4gICAgcmVxdWVzdFN0YXR1czogXCJcIixcclxuICAgIGVycm9yTGlzdDogW10sXHJcbiAgICB3YXJuTGlzdDogW10sXHJcbiAgICBidXR0b25Mb2FkaW5nOiBmYWxzZSxcclxuICB9O1xyXG4gIG1vZGFsUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBmaWxlU2l6ZUtiKG51bWJlciA9IDApIHtcclxuICAgIHJldHVybiAobnVtYmVyIC8gMTAyNCkudG9GaXhlZCgyKTtcclxuICB9XHJcbiAgc2hvdygpIHtcclxuICAgIHRoaXMubW9kYWxSZWYuY3VycmVudD8uc2hvdygpO1xyXG4gIH1cclxuICBoaWRlKCkge1xyXG4gICAgdGhpcy5tb2RhbFJlZi5jdXJyZW50Py5oaWRlKCk7XHJcbiAgICB0aGlzLnJlc2V0RGF0YSgpO1xyXG4gIH1cclxuICBpbXBvcnREYXRhKGZpbGUsIGlzT3ZlcndyaXRlKSB7XHJcbiAgICBjb25zdCB7IHJlcXVlc3RDb25maWcgPSB7fSwgaW1wb3J0VXJsLCBvbkNhbGxCYWNrcyA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IHsgZGF0YSA9IHt9LCAuLi5jb25maWcgfSA9IHJlcXVlc3RDb25maWc7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgYnV0dG9uTG9hZGluZzogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgLy8gbGV0IGZvcm1EYXRhID0gey4uLmRhdGF9XHJcblxyXG4gICAgbnNjRmlsZVxyXG4gICAgICAuaW1wb3J0RmlsZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICB1cmw6IGltcG9ydFVybCxcclxuICAgICAgICAgIGRhdGE6IHsgLi4uZGF0YSwgaXNPdmVyd3JpdGU6IGlzT3ZlcndyaXRlIH0sXHJcbiAgICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29uZmlnXHJcbiAgICAgIClcclxuICAgICAgLnRoZW4oKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBidXR0b25Mb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAvLyBtZXNzYWdlLnN1Y2Nlc3MoXCLlr7zlhaXmiJDlip/vvIFcIik7XHJcblxyXG4gICAgICAgICAgaWYgKHJlcy5kYXRhPy53YXJuaW5ncz8ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcIndhcm5pbmdcIixcclxuICAgICAgICAgICAgICB3YXJuTGlzdDogcmVzLmRhdGEud2FybmluZ3MsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHJlcy5kYXRhPy5lcnJvcnM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgLy8gbWVzc2FnZS5zdWNjZXNzKFwi5a+85YWl5aSx6LSl77yBXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcImVycm9yXCIsXHJcbiAgICAgICAgICAgICAgZXJyb3JMaXN0OiByZXMuZGF0YS5lcnJvcnMsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKFwi5a+85YWl5oiQ5Yqf77yBXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvbkNhbGxCYWNrcz8uaW1wb3J0Q2FsbEJhY2sgJiYgb25DYWxsQmFja3M/LmltcG9ydENhbGxCYWNrKHJlcyk7XHJcbiAgICAgICAgICAvLyB0aGlzLmhpZGUoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuWvvOWFpeWksei0pe+8gVwiKTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcImVycm9yXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICByZW5kZXJFcnJvckNvbnRlbnQobGlzdCkge1xyXG4gICAgcmV0dXJuIGxpc3QubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5zdGF0ZS5yZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiKSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBpdGVtID09IFwic3RyaW5nXCIgPyAoXHJcbiAgICAgICAgICA8ZGl2PntpdGVtfTwvZGl2PlxyXG4gICAgICAgICkgOiAoXHJcbiAgICAgICAgICA8ZGl2IGtleT17aW5kZXh9PntcIuesrFwiICsgaXRlbS5yb3dOdW0gKyBcIuihjOaVsOaNrumHjeWkje+8m1wifTwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBpdGVtID09IFwic3RyaW5nXCIgPyAoXHJcbiAgICAgICAgICA8ZGl2PntpdGVtfTwvZGl2PlxyXG4gICAgICAgICkgOiAoXHJcbiAgICAgICAgICA8ZGl2IGtleT17aW5kZXh9PntpdGVtLmVycm9yTXNnfTwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuICByZW5kZXJSZXN1bHQoKSB7XHJcbiAgICBjb25zdCB7IHJlcXVlc3RTdGF0dXMsIGVycm9yTGlzdCwgd2Fybkxpc3QgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCBhbGVydF9tc2dfbWFwID0ge1xyXG4gICAgICBzdWNjZXNzOiBcIuWvvOWFpeaIkOWKn1wiLFxyXG4gICAgICBlcnJvcjogXCLlr7zlhaXlpLHotKVcIixcclxuICAgICAgd2FybmluZzogXCLlkYrorabmj5DnpLpcIixcclxuICAgIH07XHJcbiAgICBpZiAocmVxdWVzdFN0YXR1cykge1xyXG4gICAgICBpZiAocmVxdWVzdFN0YXR1cyA9PSBcInN1Y2Nlc3NcIikge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8QWxlcnRcclxuICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luVG9wOiBcIjhweFwiIH19XHJcbiAgICAgICAgICAgIG1lc3NhZ2U9e2FsZXJ0X21zZ19tYXBbcmVxdWVzdFN0YXR1c10gPz8gXCLmj5DnpLpcIn1cclxuICAgICAgICAgICAgdHlwZT17XCJzdWNjZXNzXCJ9XHJcbiAgICAgICAgICAgIHNob3dJY29uXHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxDb2xsYXBzZVxyXG4gICAgICAgICAgICBleHBhbmRJY29uUG9zaXRpb249XCJyaWdodFwiXHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17XHJcbiAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiA/IFwiY29udGVudC13YXJuaW5nXCIgOiBcImNvbnRlbnQtZXJyb3JcIlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOlxyXG4gICAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiA/IFwiI0ZDRTFBQlwiIDogXCIjZmZmMmYwXCIsXHJcbiAgICAgICAgICAgICAgYm9yZGVyOlxyXG4gICAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIlxyXG4gICAgICAgICAgICAgICAgICA/IFwiMXB4IHNvbGlkICNGQ0UxQUJcIlxyXG4gICAgICAgICAgICAgICAgICA6IFwiMXB4IHNvbGlkICNGRkNDQzdcIixcclxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IFwiMnB4XCIsXHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGRlZmF1bHRBY3RpdmVLZXk9e1tcIjFcIl19XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxDb2xsYXBzZS5QYW5lbFxyXG4gICAgICAgICAgICAgIGtleT1cIjFcIlxyXG4gICAgICAgICAgICAgIGhlYWRlcj17XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XHJcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogcmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiA/IFwiI0ZBQUQxNFwiIDogXCIjZjYwXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHtyZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPEV4Y2xhbWF0aW9uQ2lyY2xlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgPENsb3NlQ2lyY2xlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIHthbGVydF9tc2dfbWFwW3JlcXVlc3RTdGF0dXNdfVxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZXh0cmE9e1xyXG4gICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgICAgICAgICBjb2xvcjogcmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiA/IFwiI0ZBQUQxNFwiIDogXCIjZjYwXCIsXHJcbiAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHtyZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCLmn6XnnItcIiA6IFwi5p+l55yL6ZSZ6K+vXCJ9XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDpcclxuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCIjRkZGREY2XCIgOiBcIiNmZmY5ZjlcIixcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJjb250ZW50LWVycm9yX19tc2dcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIHt0aGlzLnJlbmRlckVycm9yQ29udGVudChcclxuICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiA/IHdhcm5MaXN0IDogZXJyb3JMaXN0XHJcbiAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L0NvbGxhcHNlLlBhbmVsPlxyXG4gICAgICAgICAgPC9Db2xsYXBzZT5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIHJlc2V0RGF0YSgpIHtcclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzdGF0dXM6IDEsXHJcbiAgICAgIGZpbGU6IG51bGwsXHJcbiAgICAgIGN1cnJlbnRTdGVwOiAxLFxyXG4gICAgICByZXF1ZXN0U3RhdHVzOiBcIlwiLFxyXG4gICAgICBlcnJvckxpc3Q6IFtdLFxyXG4gICAgICB3YXJuTGlzdDogW10sXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3QgeyBmaWxlLCBzdGF0dXMsIGN1cnJlbnRTdGVwLCByZXF1ZXN0U3RhdHVzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBkb3duTG9hZFRlbXBsZXQsXHJcbiAgICAgIGRvd25UZW1wbGV0VXJsLFxyXG4gICAgICBjaGVja0RhdGEsXHJcbiAgICAgIGNoZWNrVXJsLFxyXG4gICAgICByZXF1ZXN0Q29uZmlnLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBmb290ZXIgPSAoXHJcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgPE5TQ0J1dHRvblxyXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAg5Y+W5raIXHJcbiAgICAgICAgPC9OU0NCdXR0b24+XHJcblxyXG4gICAgICAgIHtzdGF0dXMgPT0gMSAmJiB0aGlzLnN0YXRlLmZpbGUgJiYgKFxyXG4gICAgICAgICAgPE5TQ0J1dHRvblxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICBzdGF0dXM6IDIsXHJcbiAgICAgICAgICAgICAgICBjdXJyZW50U3RlcDogMSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICBpZiAoY2hlY2tEYXRhKSB7XHJcbiAgICAgICAgICAgICAgICBuc2NGaWxlXHJcbiAgICAgICAgICAgICAgICAgIC5pbXBvcnRGaWxlKHtcclxuICAgICAgICAgICAgICAgICAgICB1cmw6IGNoZWNrVXJsLFxyXG4gICAgICAgICAgICAgICAgICAgIGZpbGU6IGZpbGUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogcmVxdWVzdENvbmZpZz8uZGF0YSB8fCB7fSxcclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgLnRoZW4oKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuZGF0YS5lcnJvckNvdW50ID09IDAgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmRhdGEuZHVwbGljYXRlQ291bnQgPT0gMFxyXG4gICAgICAgICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRTdGVwOiAyLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RTdGF0dXM6IFwic3VjY2Vzc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5pbXBvcnREYXRhKGZpbGUsIGZhbHNlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLmVycm9yQ291bnQgPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RTdGF0dXM6IFwiZXJyb3JcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvckxpc3Q6IHJlcy5kYXRhLmVycm9yTGlzdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXMuZGF0YS5kdXBsaWNhdGVDb3VudCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1czogXCJ3YXJuaW5nXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2Fybkxpc3Q6IHJlcy5kYXRhLmR1cGxpY2F0ZUxpc3QsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pbXBvcnREYXRhKGZpbGUsIGZhbHNlKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGRpc2FibGVkPXtmaWxlID8gZmFsc2UgOiB0cnVlfVxyXG4gICAgICAgICAgICBpY29uPXs8VXBsb2FkT3V0bGluZWQgLz59XHJcbiAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDIwIH19XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOW8gOWni+S4iuS8oFxyXG4gICAgICAgICAgPC9OU0NCdXR0b24+XHJcbiAgICAgICAgKX1cclxuICAgICAgICB7cmVxdWVzdFN0YXR1cyA9PSBcIndhcm5pbmdcIiAmJiBzdGF0dXMgPT0gMiAmJiAoXHJcbiAgICAgICAgICA8TlNDQnV0dG9uXHJcbiAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogMjAgfX1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMuaW1wb3J0RGF0YSh0aGlzLnN0YXRlLmZpbGUsIGZhbHNlKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgZGlzYWJsZWQ9e3RoaXMuc3RhdGUuYnV0dG9uTG9hZGluZ31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg5LiN6KaG55uW5pWw5o2uXHJcbiAgICAgICAgICA8L05TQ0J1dHRvbj5cclxuICAgICAgICApfVxyXG4gICAgICAgIHtyZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiICYmIHN0YXR1cyA9PSAyICYmIChcclxuICAgICAgICAgIDxOU0NCdXR0b25cclxuICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5MZWZ0OiAyMCB9fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pbXBvcnREYXRhKHRoaXMuc3RhdGUuZmlsZSwgdHJ1ZSk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIGRpc2FibGVkPXt0aGlzLnN0YXRlLmJ1dHRvbkxvYWRpbmd9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIOimhuebluaVsOaNrlxyXG4gICAgICAgICAgPC9OU0NCdXR0b24+XHJcbiAgICAgICAgKX1cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG5cclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAge3RoaXMucHJvcHMuY2hpbGRyZW4gPyAoXHJcbiAgICAgICAgICB0aGlzLnByb3BzLmNoaWxkcmVuXHJcbiAgICAgICAgKSA6IChcclxuICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgIHt0aGlzLnByb3BzLnNob3dCdXR0b24gJiYgKFxyXG4gICAgICAgICAgICAgIDxOU0NCdXR0b25cclxuICAgICAgICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zaG93KCk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIOaVsOaNruWvvOWFpVxyXG4gICAgICAgICAgICAgIDwvTlNDQnV0dG9uPlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgPC8+XHJcbiAgICAgICAgKX1cclxuXHJcbiAgICAgICAgPE5zY01vZGFsXHJcbiAgICAgICAgICB0aXRsZT1cIuaVsOaNruWvvOWFpVwiXHJcbiAgICAgICAgICB3aWR0aD17ODAwfVxyXG4gICAgICAgICAgd3JhcENsYXNzTmFtZT17XCJpbXBvcnQtbW9kYWxcIn1cclxuICAgICAgICAgIHJlZj17dGhpcy5tb2RhbFJlZn1cclxuICAgICAgICAgIGZvb3Rlcj17Zm9vdGVyfVxyXG4gICAgICAgICAgb25DYW5jZWw9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5oaWRlKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudFwiPlxyXG4gICAgICAgICAgICB7c3RhdHVzID09IDEgPyAoXHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogXCJmbGV4XCIgfX0+XHJcbiAgICAgICAgICAgICAgICAgIDxOc2NVcGxvYWRcclxuICAgICAgICAgICAgICAgICAgICBiZWZvcmVVcGxvYWQ9eyhmaWxlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZSxcclxuICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dGaWxlU3VmZml4PXtbXCJ4bHNcIiwgXCJ4bHN4XCJdfVxyXG4gICAgICAgICAgICAgICAgICAgIGFjY2VwdD17XCIueGxzLC54bHN4XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgc2hvd1VwbG9hZExpc3Q9e2ZhbHNlfVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPE5TQ0J1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZmlsZSA/IHRydWUgOiBmYWxzZX1cclxuICAgICAgICAgICAgICAgICAgICAgIGljb249ezxGb2xkZXJPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICDpgInmi6nmlofku7ZcclxuICAgICAgICAgICAgICAgICAgICA8L05TQ0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPC9Oc2NVcGxvYWQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICB7ZG93bkxvYWRUZW1wbGV0ICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8TnNjRG93bkxvYWQgdXJsPXtkb3duVGVtcGxldFVybH0+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8TlNDQnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgc3R5bGU9e3sgbWFyZ2luTGVmdDogMjAgfX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIOaooeadv+S4i+i9vVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9OU0NCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9Oc2NEb3duTG9hZD5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ1cGxvYWQtdGlwXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidXBsb2FkLXRpcC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPEV4Y2xhbWF0aW9uQ2lyY2xlT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidXBsb2FkLXRpcC1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDHjgIHmlK/mjIFFeGNlbCAyMDA35Y+K5Lul5LiK54mI5pys77yM5LiU5q+P5qyh5Y+q6IO95LiK5Lyg5LiA5Liq5paH5Lu277ybXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdj4y44CB5a+85YWl5YmN5YWI5LiL6L295qih5p2/77yM5bm25qC55o2u5qih5p2/5aGr5YaZ5pWw5o2u77ybPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAge2ZpbGUgJiYgKFxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInVwbG9hZC1maWxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWxlLWljb25cIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxGaWxlSWNvbiB0eXBlPVwiZXhjZWxcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsZS1jb250ZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbGUtdGl0bGVcIj57ZmlsZS5uYW1lfTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWxlLWRlc2NcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAg5paH5Lu25aSn5bCP77yae3RoaXMuZmlsZVNpemVLYihmaWxlLnNpemUpICsgXCJLQlwifVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8U3RlcHNcclxuICAgICAgICAgICAgICAgICAgY3VycmVudD17Y3VycmVudFN0ZXB9XHJcbiAgICAgICAgICAgICAgICAgIGl0ZW1zPXtbXHJcbiAgICAgICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwi5pWw5o2u5YiG5p6QXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCLmlbDmja7mj5LlhaVcIixcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICBdfVxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcInJlc3VsdC1jb250ZW50XCJ9Pnt0aGlzLnJlbmRlclJlc3VsdCgpfTwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9Oc2NNb2RhbD5cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBOc2NJbXBvcnREYXRhO1xyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBQ3pCLE9BQU8sY0FBYztBQUNyQixPQUFPQyxTQUFTLE1BQU0sV0FBVztBQUNqQyxPQUFPQyxTQUFTLE1BQU0sV0FBVztBQUNqQyxPQUFPQyxXQUFXLE1BQU0sYUFBYTtBQUNyQyxPQUFPQyxRQUFRLE1BQU0sVUFBVTtBQUMvQixPQUFPQyxRQUFRLE1BQU0sb0JBQW9CO0FBQ3pDLFNBQ0VDLGNBQWMsRUFDZEMsY0FBYyxFQUNkQyxtQkFBbUIsRUFDbkJDLHlCQUF5QixRQUNwQixtQkFBbUI7QUFDMUIsT0FBT0MsS0FBSyxNQUFNLFVBQVU7QUFDNUIsT0FBT0MsT0FBTyxNQUFNLFVBQVU7QUFFOUIsT0FBT0MsS0FBSyxNQUFNLFVBQVU7QUFDNUIsT0FBT0MsUUFBUSxNQUFNLGFBQWE7QUFrQmxDLE1BQU1DLGFBQWEsU0FBU2QsS0FBSyxDQUFDZSxhQUFhLENBQW9CO0VBQUFDLFlBQUE7SUFBQSxTQUFBQyxTQUFBO0lBQUFDLGVBQUEsZ0JBQ3pEO01BQ05DLE1BQU0sRUFBRSxDQUFDO01BQ1RDLElBQUksRUFBRSxJQUFJO01BQ1ZDLFdBQVcsRUFBRSxDQUFDO01BQ2RDLGFBQWEsRUFBRSxFQUFFO01BQ2pCQyxTQUFTLEVBQUUsRUFBRTtNQUNiQyxRQUFRLEVBQUUsRUFBRTtNQUNaQyxhQUFhLEVBQUU7SUFDakIsQ0FBQztJQUFBUCxlQUFB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
341
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIk5zY1VwbG9hZCIsIk5TQ0J1dHRvbiIsIk5zY0Rvd25Mb2FkIiwiTnNjTW9kYWwiLCJGaWxlSWNvbiIsIlVwbG9hZE91dGxpbmVkIiwiRm9sZGVyT3V0bGluZWQiLCJDbG9zZUNpcmNsZU91dGxpbmVkIiwiRXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lZCIsIlN0ZXBzIiwibnNjRmlsZSIsIkFsZXJ0IiwiQ29sbGFwc2UiLCJOc2NJbXBvcnREYXRhIiwiUHVyZUNvbXBvbmVudCIsImNvbnN0cnVjdG9yIiwiYXJndW1lbnRzIiwiX2RlZmluZVByb3BlcnR5Iiwic3RhdHVzIiwiZmlsZSIsImN1cnJlbnRTdGVwIiwicmVxdWVzdFN0YXR1cyIsImVycm9yTGlzdCIsIndhcm5MaXN0IiwiYnV0dG9uTG9hZGluZyIsImNyZWF0ZVJlZiIsImZpbGVTaXplS2IiLCJudW1iZXIiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJ0b0ZpeGVkIiwic2hvdyIsIl90aGlzJG1vZGFsUmVmJGN1cnJlbiIsIm1vZGFsUmVmIiwiY3VycmVudCIsImhpZGUiLCJfdGhpcyRtb2RhbFJlZiRjdXJyZW4yIiwicmVzZXREYXRhIiwiaW1wb3J0RGF0YSIsImlzT3ZlcndyaXRlIiwicmVxdWVzdENvbmZpZyIsImltcG9ydFVybCIsIm9uQ2FsbEJhY2tzIiwicHJvcHMiLCJkYXRhIiwiY29uZmlnIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwic2V0U3RhdGUiLCJpbXBvcnRGaWxlIiwidXJsIiwiX29iamVjdFNwcmVhZCIsInRoZW4iLCJyZXMiLCJjb2RlIiwiX3JlcyRkYXRhIiwiX3JlcyRkYXRhMiIsIndhcm5pbmdzIiwiZXJyb3JzIiwiX21lc3NhZ2UiLCJzdWNjZXNzIiwiaW1wb3J0Q2FsbEJhY2siLCJlcnJvciIsInJlbmRlckVycm9yQ29udGVudCIsImxpc3QiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJzdGF0ZSIsImNyZWF0ZUVsZW1lbnQiLCJrZXkiLCJyb3dOdW0iLCJlcnJvck1zZyIsInJlbmRlclJlc3VsdCIsImFsZXJ0X21zZ19tYXAiLCJ3YXJuaW5nIiwiX2FsZXJ0X21zZ19tYXAkcmVxdWVzIiwic3R5bGUiLCJtYXJnaW5Ub3AiLCJtZXNzYWdlIiwidHlwZSIsInNob3dJY29uIiwiZXhwYW5kSWNvblBvc2l0aW9uIiwiY2xhc3NOYW1lIiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyIiwiYm9yZGVyUmFkaXVzIiwiZGVmYXVsdEFjdGl2ZUtleSIsIlBhbmVsIiwiaGVhZGVyIiwiY29sb3IiLCJleHRyYSIsImJhY2tncm91bmQiLCJyZW5kZXIiLCJkb3duTG9hZFRlbXBsZXQiLCJkb3duVGVtcGxldFVybCIsImNoZWNrRGF0YSIsImNoZWNrVXJsIiwiZm9vdGVyIiwib25DbGljayIsImVycm9yQ291bnQiLCJkdXBsaWNhdGVDb3VudCIsImR1cGxpY2F0ZUxpc3QiLCJkaXNhYmxlZCIsImljb24iLCJtYXJnaW5MZWZ0IiwiY2hpbGRyZW4iLCJGcmFnbWVudCIsInNob3dCdXR0b24iLCJ0aXRsZSIsIndpZHRoIiwid3JhcENsYXNzTmFtZSIsInJlZiIsIm9uQ2FuY2VsIiwiZGlzcGxheSIsImJlZm9yZVVwbG9hZCIsImFsbG93RmlsZVN1ZmZpeCIsImFjY2VwdCIsInNob3dVcGxvYWRMaXN0IiwibmFtZSIsInNpemUiLCJpdGVtcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvaW1wb3J0RGF0YS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IE5zY1VwbG9hZCBmcm9tIFwiLi4vdXBsb2FkXCI7XHJcbmltcG9ydCBOU0NCdXR0b24gZnJvbSBcIi4uL2J1dHRvblwiO1xyXG5pbXBvcnQgTnNjRG93bkxvYWQgZnJvbSBcIi4uL2Rvd25sb2FkXCI7XHJcbmltcG9ydCBOc2NNb2RhbCBmcm9tIFwiLi4vbW9kYWxcIjtcclxuaW1wb3J0IEZpbGVJY29uIGZyb20gXCIuLi9jb21tb24vRmlsZUljb25cIjtcclxuaW1wb3J0IHtcclxuICBVcGxvYWRPdXRsaW5lZCxcclxuICBGb2xkZXJPdXRsaW5lZCxcclxuICBDbG9zZUNpcmNsZU91dGxpbmVkLFxyXG4gIEV4Y2xhbWF0aW9uQ2lyY2xlT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCBTdGVwcyBmcm9tIFwiLi4vc3RlcHNcIjtcclxuaW1wb3J0IG5zY0ZpbGUgZnJvbSBcIm5zYy1maWxlXCI7XHJcbmltcG9ydCB7IG1lc3NhZ2UgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgQWxlcnQgZnJvbSBcIi4uL2FsZXJ0XCI7XHJcbmltcG9ydCBDb2xsYXBzZSBmcm9tIFwiLi4vY29sbGFwc2VcIjtcclxuaW1wb3J0IEljb24gZnJvbSBcIi4uL2NvbW1vbi9JY29uXCI7XHJcblxyXG5pbnRlcmZhY2UgSW1wb3J0UHJvcG9zIHtcclxuICBjaGVja0RhdGE/OiBib29sZWFuOyAvL+aYr+WQpui/m+ihjOaVsOaNruagoemqjO+8jOm7mOiupGZhbHNlXHJcbiAgY2hlY2tVcmw/OiBzdHJpbmc7IC8v5pWw5o2u5qCh6aqM5o6l5Y+j5Zyw5Z2AXHJcbiAgaW1wb3J0VXJsOiBzdHJpbmc7IC8v5pWw5o2u5a+85YWl5Zyw5Z2AXHJcbiAgcmVxdWVzdENvbmZpZz86IGFueTtcclxuICBkb3duTG9hZFRlbXBsZXQ/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuS4i+i9veaooeadv+aMiemSrlxyXG4gIGRvd25UZW1wbGV0VXJsPzogc3RyaW5nOyAvL+S4i+i9veaooeadv+WcsOWdgFxyXG4gIG9uQ2FsbEJhY2tzPzoge1xyXG4gICAgY2hlY2tDYWxsQmFjaz86IGFueTsgLy/mlbDmja7moKHpqozlm57osINcclxuICAgIGltcG9ydENhbGxCYWNrPzogYW55OyAvL+aVsOaNruWvvOWFpeWbnuiwg1xyXG4gICAgY2xvc2VDYWxsQmFjaz86IGFueTtcclxuICB9O1xyXG4gIHNob3dCdXR0b24/OiBib29sZWFuO1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5jbGFzcyBOc2NJbXBvcnREYXRhIGV4dGVuZHMgUmVhY3QuUHVyZUNvbXBvbmVudDxJbXBvcnRQcm9wb3MsIGFueT4ge1xyXG4gIHN0YXRlID0ge1xyXG4gICAgc3RhdHVzOiAxLFxyXG4gICAgZmlsZTogbnVsbCxcclxuICAgIGN1cnJlbnRTdGVwOiAxLFxyXG4gICAgcmVxdWVzdFN0YXR1czogXCJcIixcclxuICAgIGVycm9yTGlzdDogW10sXHJcbiAgICB3YXJuTGlzdDogW10sXHJcbiAgICBidXR0b25Mb2FkaW5nOiBmYWxzZSxcclxuICB9O1xyXG4gIG1vZGFsUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBmaWxlU2l6ZUtiKG51bWJlciA9IDApIHtcclxuICAgIHJldHVybiAobnVtYmVyIC8gMTAyNCkudG9GaXhlZCgyKTtcclxuICB9XHJcbiAgc2hvdygpIHtcclxuICAgIHRoaXMubW9kYWxSZWYuY3VycmVudD8uc2hvdygpO1xyXG4gIH1cclxuICBoaWRlKCkge1xyXG4gICAgdGhpcy5tb2RhbFJlZi5jdXJyZW50Py5oaWRlKCk7XHJcbiAgICB0aGlzLnJlc2V0RGF0YSgpO1xyXG4gIH1cclxuICBpbXBvcnREYXRhKGZpbGUsIGlzT3ZlcndyaXRlKSB7XHJcbiAgICBjb25zdCB7IHJlcXVlc3RDb25maWcgPSB7fSwgaW1wb3J0VXJsLCBvbkNhbGxCYWNrcyA9IHt9IH0gPSB0aGlzLnByb3BzO1xyXG4gICAgbGV0IHsgZGF0YSA9IHt9LCAuLi5jb25maWcgfSA9IHJlcXVlc3RDb25maWc7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgYnV0dG9uTG9hZGluZzogdHJ1ZSxcclxuICAgIH0pO1xyXG4gICAgLy8gbGV0IGZvcm1EYXRhID0gey4uLmRhdGF9XHJcblxyXG4gICAgbnNjRmlsZVxyXG4gICAgICAuaW1wb3J0RmlsZShcclxuICAgICAgICB7XHJcbiAgICAgICAgICB1cmw6IGltcG9ydFVybCxcclxuICAgICAgICAgIGRhdGE6IHsgLi4uZGF0YSwgaXNPdmVyd3JpdGU6IGlzT3ZlcndyaXRlIH0sXHJcbiAgICAgICAgICBmaWxlOiBmaWxlLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29uZmlnXHJcbiAgICAgIClcclxuICAgICAgLnRoZW4oKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICBidXR0b25Mb2FkaW5nOiBmYWxzZSxcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAvLyBtZXNzYWdlLnN1Y2Nlc3MoXCLlr7zlhaXmiJDlip/vvIFcIik7XHJcbiAgICAgICAgICBpZiAocmVzLmRhdGE/Lndhcm5pbmdzPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIHJlcXVlc3RTdGF0dXM6IFwid2FybmluZ1wiLFxyXG4gICAgICAgICAgICAgIHdhcm5MaXN0OiByZXMuZGF0YS53YXJuaW5ncyxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHJlcy5kYXRhPy5lcnJvcnM/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgLy8gbWVzc2FnZS5zdWNjZXNzKFwi5a+85YWl5aSx6LSl77yBXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcImVycm9yXCIsXHJcbiAgICAgICAgICAgICAgZXJyb3JMaXN0OiByZXMuZGF0YS5lcnJvcnMsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKFwi5a+85YWl5oiQ5Yqf77yBXCIpO1xyXG4gICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBvbkNhbGxCYWNrcz8uaW1wb3J0Q2FsbEJhY2sgJiYgb25DYWxsQmFja3M/LmltcG9ydENhbGxCYWNrKHJlcyk7XHJcbiAgICAgICAgICAvLyB0aGlzLmhpZGUoKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuWvvOWFpeWksei0pe+8gVwiKTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcImVycm9yXCIsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuICByZW5kZXJFcnJvckNvbnRlbnQobGlzdCkge1xyXG4gICAgcmV0dXJuIGxpc3QubWFwKChpdGVtLCBpbmRleCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5zdGF0ZS5yZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiKSB7XHJcbiAgICAgICAgcmV0dXJuIHR5cGVvZiBpdGVtID09IFwic3RyaW5nXCIgPyAoXHJcbiAgICAgICAgICA8ZGl2ICBrZXk9e2luZGV4fT57aXRlbX08L2Rpdj5cclxuICAgICAgICApIDogKFxyXG4gICAgICAgICAgPGRpdiBrZXk9e2luZGV4fT57XCLnrKxcIiArIGl0ZW0ucm93TnVtICsgXCLooYzmlbDmja7ph43lpI3vvJtcIn08L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2YgaXRlbSA9PSBcInN0cmluZ1wiID8gKFxyXG4gICAgICAgICAgPGRpdiAga2V5PXtpbmRleH0+e2l0ZW19PC9kaXY+XHJcbiAgICAgICAgKSA6IChcclxuICAgICAgICAgIDxkaXYga2V5PXtpbmRleH0+e2l0ZW0uZXJyb3JNc2d9PC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJlbmRlclJlc3VsdCgpIHtcclxuICAgIGNvbnN0IHsgcmVxdWVzdFN0YXR1cywgZXJyb3JMaXN0LCB3YXJuTGlzdCB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IGFsZXJ0X21zZ19tYXAgPSB7XHJcbiAgICAgIHN1Y2Nlc3M6IFwi5a+85YWl5oiQ5YqfXCIsXHJcbiAgICAgIGVycm9yOiBcIuWvvOWFpeWksei0pVwiLFxyXG4gICAgICB3YXJuaW5nOiBcIuWRiuitpuaPkOekulwiLFxyXG4gICAgfTtcclxuICAgIGlmIChyZXF1ZXN0U3RhdHVzKSB7XHJcbiAgICAgIGlmIChyZXF1ZXN0U3RhdHVzID09IFwic3VjY2Vzc1wiKSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxBbGVydFxyXG4gICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5Ub3A6IFwiOHB4XCIgfX1cclxuICAgICAgICAgICAgbWVzc2FnZT17YWxlcnRfbXNnX21hcFtyZXF1ZXN0U3RhdHVzXSA/PyBcIuaPkOekulwifVxyXG4gICAgICAgICAgICB0eXBlPXtcInN1Y2Nlc3NcIn1cclxuICAgICAgICAgICAgc2hvd0ljb25cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPENvbGxhcHNlXHJcbiAgICAgICAgICAgIGV4cGFuZEljb25Qb3NpdGlvbj1cInJpZ2h0XCJcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtcclxuICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCJjb250ZW50LXdhcm5pbmdcIiA6IFwiY29udGVudC1lcnJvclwiXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6XHJcbiAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCIjRkNFMUFCXCIgOiBcIiNmZmYyZjBcIixcclxuICAgICAgICAgICAgICBib3JkZXI6XHJcbiAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiXHJcbiAgICAgICAgICAgICAgICAgID8gXCIxcHggc29saWQgI0ZDRTFBQlwiXHJcbiAgICAgICAgICAgICAgICAgIDogXCIxcHggc29saWQgI0ZGQ0NDN1wiLFxyXG4gICAgICAgICAgICAgIGJvcmRlclJhZGl1czogXCIycHhcIixcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgZGVmYXVsdEFjdGl2ZUtleT17W1wiMVwiXX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPENvbGxhcHNlLlBhbmVsXHJcbiAgICAgICAgICAgICAga2V5PVwiMVwiXHJcbiAgICAgICAgICAgICAgaGVhZGVyPXtcclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcclxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCIjRkFBRDE0XCIgOiBcIiNmNjBcIixcclxuICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge3JlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgPyAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8RXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8Q2xvc2VDaXJjbGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAge2FsZXJ0X21zZ19tYXBbcmVxdWVzdFN0YXR1c119XHJcbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICBleHRyYT17XHJcbiAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gXCIjRkFBRDE0XCIgOiBcIiNmNjBcIixcclxuICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAge3JlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgPyBcIuafpeeci1wiIDogXCLmn6XnnIvplJnor69cIn1cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBzdHlsZT17e1xyXG4gICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOlxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgPyBcIiNGRkZERjZcIiA6IFwiI2ZmZjlmOVwiLFxyXG4gICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImNvbnRlbnQtZXJyb3JfX21zZ1wiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAge3RoaXMucmVuZGVyRXJyb3JDb250ZW50KFxyXG4gICAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiID8gd2Fybkxpc3QgOiBlcnJvckxpc3RcclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvQ29sbGFwc2UuUGFuZWw+XHJcbiAgICAgICAgICA8L0NvbGxhcHNlPlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgcmVzZXREYXRhKCkge1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHN0YXR1czogMSxcclxuICAgICAgZmlsZTogbnVsbCxcclxuICAgICAgY3VycmVudFN0ZXA6IDEsXHJcbiAgICAgIHJlcXVlc3RTdGF0dXM6IFwiXCIsXHJcbiAgICAgIGVycm9yTGlzdDogW10sXHJcbiAgICAgIHdhcm5MaXN0OiBbXSxcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IGZpbGUsIHN0YXR1cywgY3VycmVudFN0ZXAsIHJlcXVlc3RTdGF0dXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIGRvd25Mb2FkVGVtcGxldCxcclxuICAgICAgZG93blRlbXBsZXRVcmwsXHJcbiAgICAgIGNoZWNrRGF0YSxcclxuICAgICAgY2hlY2tVcmwsXHJcbiAgICAgIHJlcXVlc3RDb25maWcsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IGZvb3RlciA9IChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmb290ZXJcIj5cclxuICAgICAgICA8TlNDQnV0dG9uXHJcbiAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICA+XHJcbiAgICAgICAgICDlj5bmtohcclxuICAgICAgICA8L05TQ0J1dHRvbj5cclxuXHJcbiAgICAgICAge3N0YXR1cyA9PSAxICYmIHRoaXMuc3RhdGUuZmlsZSAmJiAoXHJcbiAgICAgICAgICA8TlNDQnV0dG9uXHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgIHN0YXR1czogMixcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRTdGVwOiAxLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIGlmIChjaGVja0RhdGEpIHtcclxuICAgICAgICAgICAgICAgIG5zY0ZpbGVcclxuICAgICAgICAgICAgICAgICAgLmltcG9ydEZpbGUoe1xyXG4gICAgICAgICAgICAgICAgICAgIHVybDogY2hlY2tVcmwsXHJcbiAgICAgICAgICAgICAgICAgICAgZmlsZTogZmlsZSxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiByZXF1ZXN0Q29uZmlnPy5kYXRhIHx8IHt9LFxyXG4gICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgICAudGhlbigocmVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmNvZGUgPT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5kYXRhLmVycm9yQ291bnQgPT0gMCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuZGF0YS5kdXBsaWNhdGVDb3VudCA9PSAwXHJcbiAgICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0ZXA6IDIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1czogXCJzdWNjZXNzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmltcG9ydERhdGEoZmlsZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzLmRhdGEuZXJyb3JDb3VudCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0YXR1czogXCJlcnJvclwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yTGlzdDogcmVzLmRhdGEuZXJyb3JMaXN0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcy5kYXRhLmR1cGxpY2F0ZUNvdW50ID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1ZXN0U3RhdHVzOiBcIndhcm5pbmdcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuTGlzdDogcmVzLmRhdGEuZHVwbGljYXRlTGlzdCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmltcG9ydERhdGEoZmlsZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgZGlzYWJsZWQ9e2ZpbGUgPyBmYWxzZSA6IHRydWV9XHJcbiAgICAgICAgICAgIGljb249ezxVcGxvYWRPdXRsaW5lZCAvPn1cclxuICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luTGVmdDogMjAgfX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg5byA5aeL5LiK5LygXHJcbiAgICAgICAgICA8L05TQ0J1dHRvbj5cclxuICAgICAgICApfVxyXG4gICAgICAgIHtyZXF1ZXN0U3RhdHVzID09IFwid2FybmluZ1wiICYmIHN0YXR1cyA9PSAyICYmIChcclxuICAgICAgICAgIDxOU0NCdXR0b25cclxuICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICBzdHlsZT17eyBtYXJnaW5MZWZ0OiAyMCB9fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy5pbXBvcnREYXRhKHRoaXMuc3RhdGUuZmlsZSwgZmFsc2UpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICBkaXNhYmxlZD17dGhpcy5zdGF0ZS5idXR0b25Mb2FkaW5nfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICDkuI3opobnm5bmlbDmja5cclxuICAgICAgICAgIDwvTlNDQnV0dG9uPlxyXG4gICAgICAgICl9XHJcbiAgICAgICAge3JlcXVlc3RTdGF0dXMgPT0gXCJ3YXJuaW5nXCIgJiYgc3RhdHVzID09IDIgJiYgKFxyXG4gICAgICAgICAgPE5TQ0J1dHRvblxyXG4gICAgICAgICAgICB0eXBlPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDIwIH19XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmltcG9ydERhdGEodGhpcy5zdGF0ZS5maWxlLCB0cnVlKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgZGlzYWJsZWQ9e3RoaXMuc3RhdGUuYnV0dG9uTG9hZGluZ31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAg6KaG55uW5pWw5o2uXHJcbiAgICAgICAgICA8L05TQ0J1dHRvbj5cclxuICAgICAgICApfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcblxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdj5cclxuICAgICAgICB7dGhpcy5wcm9wcy5jaGlsZHJlbiA/IChcclxuICAgICAgICAgIHRoaXMucHJvcHMuY2hpbGRyZW5cclxuICAgICAgICApIDogKFxyXG4gICAgICAgICAgPD5cclxuICAgICAgICAgICAge3RoaXMucHJvcHMuc2hvd0J1dHRvbiAmJiAoXHJcbiAgICAgICAgICAgICAgPE5TQ0J1dHRvblxyXG4gICAgICAgICAgICAgICAgdHlwZT1cInByaW1hcnlcIlxyXG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLnNob3coKTtcclxuICAgICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAg5pWw5o2u5a+85YWlXHJcbiAgICAgICAgICAgICAgPC9OU0NCdXR0b24+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8Lz5cclxuICAgICAgICApfVxyXG5cclxuICAgICAgICA8TnNjTW9kYWxcclxuICAgICAgICAgIHRpdGxlPVwi5pWw5o2u5a+85YWlXCJcclxuICAgICAgICAgIHdpZHRoPXs4MDB9XHJcbiAgICAgICAgICB3cmFwQ2xhc3NOYW1lPXtcImltcG9ydC1tb2RhbFwifVxyXG4gICAgICAgICAgcmVmPXt0aGlzLm1vZGFsUmVmfVxyXG4gICAgICAgICAgZm9vdGVyPXtmb290ZXJ9XHJcbiAgICAgICAgICBvbkNhbmNlbD17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb250ZW50XCI+XHJcbiAgICAgICAgICAgIHtzdGF0dXMgPT0gMSA/IChcclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiB9fT5cclxuICAgICAgICAgICAgICAgICAgPE5zY1VwbG9hZFxyXG4gICAgICAgICAgICAgICAgICAgIGJlZm9yZVVwbG9hZD17KGZpbGUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICBhbGxvd0ZpbGVTdWZmaXg9e1tcInhsc1wiLCBcInhsc3hcIl19XHJcbiAgICAgICAgICAgICAgICAgICAgYWNjZXB0PXtcIi54bHMsLnhsc3hcIn1cclxuICAgICAgICAgICAgICAgICAgICBzaG93VXBsb2FkTGlzdD17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8TlNDQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtmaWxlID8gdHJ1ZSA6IGZhbHNlfVxyXG4gICAgICAgICAgICAgICAgICAgICAgaWNvbj17PEZvbGRlck91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgIOmAieaLqeaWh+S7tlxyXG4gICAgICAgICAgICAgICAgICAgIDwvTlNDQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8L05zY1VwbG9hZD5cclxuXHJcbiAgICAgICAgICAgICAgICAgIHtkb3duTG9hZFRlbXBsZXQgJiYgKFxyXG4gICAgICAgICAgICAgICAgICAgIDxOc2NEb3duTG9hZCB1cmw9e2Rvd25UZW1wbGV0VXJsfT5cclxuICAgICAgICAgICAgICAgICAgICAgIDxOU0NCdXR0b24gdHlwZT1cInByaW1hcnlcIiBzdHlsZT17eyBtYXJnaW5MZWZ0OiAyMCB9fT5cclxuICAgICAgICAgICAgICAgICAgICAgICAg5qih5p2/5LiL6L29XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L05TQ0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L05zY0Rvd25Mb2FkPlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInVwbG9hZC10aXBcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ1cGxvYWQtdGlwLWxlZnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8RXhjbGFtYXRpb25DaXJjbGVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ1cGxvYWQtdGlwLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgMeOAgeaUr+aMgUV4Y2VsIDIwMDflj4rku6XkuIrniYjmnKzvvIzkuJTmr4/mrKHlj6rog73kuIrkvKDkuIDkuKrmlofku7bvvJtcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2PjLjgIHlr7zlhaXliY3lhYjkuIvovb3mqKHmnb/vvIzlubbmoLnmja7mqKHmnb/loavlhpnmlbDmja7vvJs8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICB7ZmlsZSAmJiAoXHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidXBsb2FkLWZpbGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbGUtaWNvblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPEZpbGVJY29uIHR5cGU9XCJleGNlbFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmaWxlLWNvbnRlbnRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmlsZS10aXRsZVwiPntmaWxlLm5hbWV9PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZpbGUtZGVzY1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICDmlofku7blpKflsI/vvJp7dGhpcy5maWxlU2l6ZUtiKGZpbGUuc2l6ZSkgKyBcIktCXCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxTdGVwc1xyXG4gICAgICAgICAgICAgICAgICBjdXJyZW50PXtjdXJyZW50U3RlcH1cclxuICAgICAgICAgICAgICAgICAgaXRlbXM9e1tcclxuICAgICAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogXCLmlbDmja7liIbmnpBcIixcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcIuaVsOaNruaPkuWFpVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgIF19XHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1wicmVzdWx0LWNvbnRlbnRcIn0+e3RoaXMucmVuZGVyUmVzdWx0KCl9PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L05zY01vZGFsPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcbmV4cG9ydCBkZWZhdWx0IE5zY0ltcG9ydERhdGE7XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBSyxNQUFNLE9BQU87QUFDekIsT0FBTyxjQUFjO0FBQ3JCLE9BQU9DLFNBQVMsTUFBTSxXQUFXO0FBQ2pDLE9BQU9DLFNBQVMsTUFBTSxXQUFXO0FBQ2pDLE9BQU9DLFdBQVcsTUFBTSxhQUFhO0FBQ3JDLE9BQU9DLFFBQVEsTUFBTSxVQUFVO0FBQy9CLE9BQU9DLFFBQVEsTUFBTSxvQkFBb0I7QUFDekMsU0FDRUMsY0FBYyxFQUNkQyxjQUFjLEVBQ2RDLG1CQUFtQixFQUNuQkMseUJBQXlCLFFBQ3BCLG1CQUFtQjtBQUMxQixPQUFPQyxLQUFLLE1BQU0sVUFBVTtBQUM1QixPQUFPQyxPQUFPLE1BQU0sVUFBVTtBQUU5QixPQUFPQyxLQUFLLE1BQU0sVUFBVTtBQUM1QixPQUFPQyxRQUFRLE1BQU0sYUFBYTtBQWtCbEMsTUFBTUMsYUFBYSxTQUFTZCxLQUFLLENBQUNlLGFBQWEsQ0FBb0I7RUFBQUMsWUFBQTtJQUFBLFNBQUFDLFNBQUE7SUFBQUMsZUFBQSxnQkFDekQ7TUFDTkMsTUFBTSxFQUFFLENBQUM7TUFDVEMsSUFBSSxFQUFFLElBQUk7TUFDVkMsV0FBVyxFQUFFLENBQUM7TUFDZEMsYUFBYSxFQUFFLEVBQUU7TUFDakJDLFNBQVMsRUFBRSxFQUFFO01BQ2JDLFFBQVEsRUFBRSxFQUFFO01BQ1pDLGFBQWEsRUFBRTtJQUNqQixD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
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","NscUpload","NSCButton","NscDownLoad","NscModal","FileIcon","UploadOutlined","FolderOutlined","CloseCircleOutlined","ExclamationCircleOutlined","Steps","nscFile","Alert","Collapse","NscImportData","PureComponent","constructor","arguments","_defineProperty","status","file","currentStep","requestStatus","errorList","warnList","buttonLoading","createRef","fileSizeKb","number","length","undefined","toFixed","show","_this$modalRef$curren","modalRef","current","hide","_this$modalRef$curren2","resetData","importData","isOverwrite","requestConfig","importUrl","onCallBacks","props","data","config","_objectWithoutProperties","_excluded","setState","importFile","url","_objectSpread","then","res","code","_res$data","_res$data2","warnings","errors","_message","success","importCallBack","error","renderErrorContent","list","map","item","index","state","createElement","key","rowNum","errorMsg","renderResult","alert_msg_map","warning","_alert_msg_map$reques","style","marginTop","message","type","showIcon","expandIconPosition","className","backgroundColor","border","borderRadius","defaultActiveKey","Panel","header","color","extra","background","render","downLoadTemplet","downTempletUrl","checkData","checkUrl","footer","onClick","errorCount","duplicateCount","duplicateList","disabled","icon","marginLeft","children","Fragment","showButton","title","width","wrapClassName","ref","onCancel","display","beforeUpload","allowFileSuffix","accept","showUploadList","name","size","items"],"sources":["../../../src/components/base/importData/index.tsx"],"sourcesContent":["import React from \"react\";\r\nimport \"./index.less\";\r\nimport NscUpload from \"../upload\";\r\nimport NSCButton from \"../button\";\r\nimport NscDownLoad from \"../download\";\r\nimport NscModal from \"../modal\";\r\nimport FileIcon from \"../common/FileIcon\";\r\nimport {\r\n UploadOutlined,\r\n FolderOutlined,\r\n CloseCircleOutlined,\r\n ExclamationCircleOutlined,\r\n} from \"@ant-design/icons\";\r\nimport Steps from \"../steps\";\r\nimport nscFile from \"nsc-file\";\r\nimport { message } from \"antd\";\r\nimport Alert from \"../alert\";\r\nimport Collapse from \"../collapse\";\r\nimport Icon from \"../common/Icon\";\r\n\r\ninterface ImportPropos {\r\n checkData?: boolean; //是否进行数据校验,默认false\r\n checkUrl?: string; //数据校验接口地址\r\n importUrl: string; //数据导入地址\r\n requestConfig?: any;\r\n downLoadTemplet?: boolean; //是否显示下载模板按钮\r\n downTempletUrl?: string; //下载模板地址\r\n onCallBacks?: {\r\n checkCallBack?: any; //数据校验回调\r\n importCallBack?: any; //数据导入回调\r\n closeCallBack?: any;\r\n };\r\n showButton?: boolean;\r\n [propsName: string]: any;\r\n}\r\nclass NscImportData extends React.PureComponent<ImportPropos, any> {\r\n state = {\r\n status: 1,\r\n file: null,\r\n currentStep: 1,\r\n requestStatus: \"\",\r\n errorList: [],\r\n warnList: [],\r\n buttonLoading: false,\r\n };\r\n modalRef = React.createRef<any>();\r\n fileSizeKb(number = 0) {\r\n return (number / 1024).toFixed(2);\r\n }\r\n show() {\r\n this.modalRef.current?.show();\r\n }\r\n hide() {\r\n this.modalRef.current?.hide();\r\n this.resetData();\r\n }\r\n importData(file, isOverwrite) {\r\n const { requestConfig = {}, importUrl, onCallBacks = {} } = this.props;\r\n let { data = {}, ...config } = requestConfig;\r\n this.setState({\r\n buttonLoading: true,\r\n });\r\n // let formData = {...data}\r\n\r\n nscFile\r\n .importFile(\r\n {\r\n url: importUrl,\r\n data: { ...data, isOverwrite: isOverwrite },\r\n file: file,\r\n },\r\n config\r\n )\r\n .then((res: any) => {\r\n this.setState({\r\n buttonLoading: false,\r\n });\r\n if (res.code == 200) {\r\n // message.success(\"导入成功!\");\r\n\r\n if (res.data?.warnings?.length > 0) {\r\n this.setState({\r\n requestStatus: \"warning\",\r\n warnList: res.data.warnings,\r\n });\r\n }\r\n if (res.data?.errors?.length > 0) {\r\n // message.success(\"导入失败!\");\r\n this.setState({\r\n requestStatus: \"error\",\r\n errorList: res.data.errors,\r\n });\r\n } else {\r\n message.success(\"导入成功!\");\r\n this.setState({\r\n requestStatus: \"success\",\r\n });\r\n }\r\n onCallBacks?.importCallBack && onCallBacks?.importCallBack(res);\r\n // this.hide();\r\n } else {\r\n message.error(\"导入失败!\");\r\n this.setState({\r\n requestStatus: \"error\",\r\n });\r\n }\r\n });\r\n }\r\n renderErrorContent(list) {\r\n return list.map((item, index) => {\r\n if (this.state.requestStatus == \"warning\") {\r\n return typeof item == \"string\" ? (\r\n <div>{item}</div>\r\n ) : (\r\n <div key={index}>{\"第\" + item.rowNum + \"行数据重复;\"}</div>\r\n );\r\n } else {\r\n return typeof item == \"string\" ? (\r\n <div>{item}</div>\r\n ) : (\r\n <div key={index}>{item.errorMsg}</div>\r\n );\r\n }\r\n });\r\n }\r\n renderResult() {\r\n const { requestStatus, errorList, warnList } = this.state;\r\n const alert_msg_map = {\r\n success: \"导入成功\",\r\n error: \"导入失败\",\r\n warning: \"告警提示\",\r\n };\r\n if (requestStatus) {\r\n if (requestStatus == \"success\") {\r\n return (\r\n <Alert\r\n style={{ marginTop: \"8px\" }}\r\n message={alert_msg_map[requestStatus] ?? \"提示\"}\r\n type={\"success\"}\r\n showIcon\r\n />\r\n );\r\n } else {\r\n return (\r\n <Collapse\r\n expandIconPosition=\"right\"\r\n className={\r\n requestStatus == \"warning\" ? \"content-warning\" : \"content-error\"\r\n }\r\n style={{\r\n backgroundColor:\r\n requestStatus == \"warning\" ? \"#FCE1AB\" : \"#fff2f0\",\r\n border:\r\n requestStatus == \"warning\"\r\n ? \"1px solid #FCE1AB\"\r\n : \"1px solid #FFCCC7\",\r\n borderRadius: \"2px\",\r\n }}\r\n defaultActiveKey={[\"1\"]}\r\n >\r\n <Collapse.Panel\r\n key=\"1\"\r\n header={\r\n <div>\r\n <span\r\n style={{\r\n color: requestStatus == \"warning\" ? \"#FAAD14\" : \"#f60\",\r\n }}\r\n >\r\n {requestStatus == \"warning\" ? (\r\n <ExclamationCircleOutlined />\r\n ) : (\r\n <CloseCircleOutlined />\r\n )}\r\n {alert_msg_map[requestStatus]}\r\n </span>\r\n </div>\r\n }\r\n extra={\r\n <span\r\n style={{\r\n color: requestStatus == \"warning\" ? \"#FAAD14\" : \"#f60\",\r\n }}\r\n >\r\n {requestStatus == \"warning\" ? \"查看\" : \"查看错误\"}\r\n </span>\r\n }\r\n >\r\n <div\r\n style={{\r\n background:\r\n requestStatus == \"warning\" ? \"#FFFDF6\" : \"#fff9f9\",\r\n }}\r\n className=\"content-error__msg\"\r\n >\r\n {this.renderErrorContent(\r\n requestStatus == \"warning\" ? warnList : errorList\r\n )}\r\n </div>\r\n </Collapse.Panel>\r\n </Collapse>\r\n );\r\n }\r\n }\r\n }\r\n resetData() {\r\n this.setState({\r\n status: 1,\r\n file: null,\r\n currentStep: 1,\r\n requestStatus: \"\",\r\n errorList: [],\r\n warnList: [],\r\n });\r\n }\r\n render() {\r\n const { file, status, currentStep, requestStatus } = this.state;\r\n const {\r\n downLoadTemplet,\r\n downTempletUrl,\r\n checkData,\r\n checkUrl,\r\n requestConfig,\r\n } = this.props;\r\n const footer = (\r\n <div className=\"footer\">\r\n <NSCButton\r\n onClick={() => {\r\n this.hide();\r\n }}\r\n >\r\n 取消\r\n </NSCButton>\r\n\r\n {status == 1 && this.state.file && (\r\n <NSCButton\r\n onClick={() => {\r\n this.setState({\r\n status: 2,\r\n currentStep: 1,\r\n });\r\n if (checkData) {\r\n nscFile\r\n .importFile({\r\n url: checkUrl,\r\n file: file,\r\n data: requestConfig?.data || {},\r\n })\r\n .then((res: any) => {\r\n if (res.code == 200) {\r\n if (\r\n res.data.errorCount == 0 &&\r\n res.data.duplicateCount == 0\r\n ) {\r\n this.setState({\r\n currentStep: 2,\r\n requestStatus: \"success\",\r\n });\r\n this.importData(file, false);\r\n return;\r\n }\r\n if (res.data.errorCount > 0) {\r\n this.setState({\r\n requestStatus: \"error\",\r\n errorList: res.data.errorList,\r\n });\r\n return;\r\n }\r\n if (res.data.duplicateCount > 0) {\r\n this.setState({\r\n requestStatus: \"warning\",\r\n warnList: res.data.duplicateList,\r\n });\r\n return;\r\n }\r\n }\r\n });\r\n } else {\r\n this.importData(file, false);\r\n }\r\n }}\r\n disabled={file ? false : true}\r\n icon={<UploadOutlined />}\r\n style={{ marginLeft: 20 }}\r\n >\r\n 开始上传\r\n </NSCButton>\r\n )}\r\n {requestStatus == \"warning\" && status == 2 && (\r\n <NSCButton\r\n type=\"primary\"\r\n style={{ marginLeft: 20 }}\r\n onClick={() => {\r\n this.importData(this.state.file, false);\r\n }}\r\n disabled={this.state.buttonLoading}\r\n >\r\n 不覆盖数据\r\n </NSCButton>\r\n )}\r\n {requestStatus == \"warning\" && status == 2 && (\r\n <NSCButton\r\n type=\"primary\"\r\n style={{ marginLeft: 20 }}\r\n onClick={() => {\r\n this.importData(this.state.file, true);\r\n }}\r\n disabled={this.state.buttonLoading}\r\n >\r\n 覆盖数据\r\n </NSCButton>\r\n )}\r\n </div>\r\n );\r\n\r\n return (\r\n <div>\r\n {this.props.children ? (\r\n this.props.children\r\n ) : (\r\n <>\r\n {this.props.showButton && (\r\n <NSCButton\r\n type=\"primary\"\r\n onClick={() => {\r\n this.show();\r\n }}\r\n >\r\n 数据导入\r\n </NSCButton>\r\n )}\r\n </>\r\n )}\r\n\r\n <NscModal\r\n title=\"数据导入\"\r\n width={800}\r\n wrapClassName={\"import-modal\"}\r\n ref={this.modalRef}\r\n footer={footer}\r\n onCancel={() => {\r\n this.hide();\r\n }}\r\n >\r\n <div className=\"content\">\r\n {status == 1 ? (\r\n <div>\r\n <div style={{ display: \"flex\" }}>\r\n <NscUpload\r\n beforeUpload={(file) => {\r\n this.setState({\r\n file,\r\n });\r\n return false;\r\n }}\r\n allowFileSuffix={[\"xls\", \"xlsx\"]}\r\n accept={\".xls,.xlsx\"}\r\n showUploadList={false}\r\n >\r\n <NSCButton\r\n type={\"primary\"}\r\n disabled={file ? true : false}\r\n icon={<FolderOutlined />}\r\n >\r\n 选择文件\r\n </NSCButton>\r\n </NscUpload>\r\n\r\n {downLoadTemplet && (\r\n <NscDownLoad url={downTempletUrl}>\r\n <NSCButton type=\"primary\" style={{ marginLeft: 20 }}>\r\n 模板下载\r\n </NSCButton>\r\n </NscDownLoad>\r\n )}\r\n </div>\r\n <div className=\"upload-tip\">\r\n <div className=\"upload-tip-left\">\r\n <ExclamationCircleOutlined />\r\n </div>\r\n <div className=\"upload-tip-content\">\r\n <div>\r\n 1、支持Excel 2007及以上版本,且每次只能上传一个文件;\r\n </div>\r\n <div>2、导入前先下载模板,并根据模板填写数据;</div>\r\n </div>\r\n </div>\r\n\r\n {file && (\r\n <div className=\"upload-file\">\r\n <div className=\"file-icon\">\r\n <FileIcon type=\"excel\" />\r\n </div>\r\n <div className=\"file-content\">\r\n <div className=\"file-title\">{file.name}</div>\r\n <div className=\"file-desc\">\r\n <span>\r\n 文件大小:{this.fileSizeKb(file.size) + \"KB\"}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n ) : (\r\n <div>\r\n <Steps\r\n current={currentStep}\r\n items={[\r\n {\r\n title: \"数据分析\",\r\n },\r\n {\r\n title: \"数据插入\",\r\n },\r\n ]}\r\n />\r\n <div className={\"result-content\"}>{this.renderResult()}</div>\r\n </div>\r\n )}\r\n </div>\r\n </NscModal>\r\n </div>\r\n );\r\n }\r\n}\r\nexport default NscImportData;\r\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["React","NscUpload","NSCButton","NscDownLoad","NscModal","FileIcon","UploadOutlined","FolderOutlined","CloseCircleOutlined","ExclamationCircleOutlined","Steps","nscFile","Alert","Collapse","NscImportData","PureComponent","constructor","arguments","_defineProperty","status","file","currentStep","requestStatus","errorList","warnList","buttonLoading","createRef","fileSizeKb","number","length","undefined","toFixed","show","_this$modalRef$curren","modalRef","current","hide","_this$modalRef$curren2","resetData","importData","isOverwrite","requestConfig","importUrl","onCallBacks","props","data","config","_objectWithoutProperties","_excluded","setState","importFile","url","_objectSpread","then","res","code","_res$data","_res$data2","warnings","errors","_message","success","importCallBack","error","renderErrorContent","list","map","item","index","state","createElement","key","rowNum","errorMsg","renderResult","alert_msg_map","warning","_alert_msg_map$reques","style","marginTop","message","type","showIcon","expandIconPosition","className","backgroundColor","border","borderRadius","defaultActiveKey","Panel","header","color","extra","background","render","downLoadTemplet","downTempletUrl","checkData","checkUrl","footer","onClick","errorCount","duplicateCount","duplicateList","disabled","icon","marginLeft","children","Fragment","showButton","title","width","wrapClassName","ref","onCancel","display","beforeUpload","allowFileSuffix","accept","showUploadList","name","size","items"],"sources":["../../../src/components/base/importData/index.tsx"],"sourcesContent":["import React from \"react\";\r\nimport \"./index.less\";\r\nimport NscUpload from \"../upload\";\r\nimport NSCButton from \"../button\";\r\nimport NscDownLoad from \"../download\";\r\nimport NscModal from \"../modal\";\r\nimport FileIcon from \"../common/FileIcon\";\r\nimport {\r\n UploadOutlined,\r\n FolderOutlined,\r\n CloseCircleOutlined,\r\n ExclamationCircleOutlined,\r\n} from \"@ant-design/icons\";\r\nimport Steps from \"../steps\";\r\nimport nscFile from \"nsc-file\";\r\nimport { message } from \"antd\";\r\nimport Alert from \"../alert\";\r\nimport Collapse from \"../collapse\";\r\nimport Icon from \"../common/Icon\";\r\n\r\ninterface ImportPropos {\r\n checkData?: boolean; //是否进行数据校验,默认false\r\n checkUrl?: string; //数据校验接口地址\r\n importUrl: string; //数据导入地址\r\n requestConfig?: any;\r\n downLoadTemplet?: boolean; //是否显示下载模板按钮\r\n downTempletUrl?: string; //下载模板地址\r\n onCallBacks?: {\r\n checkCallBack?: any; //数据校验回调\r\n importCallBack?: any; //数据导入回调\r\n closeCallBack?: any;\r\n };\r\n showButton?: boolean;\r\n [propsName: string]: any;\r\n}\r\nclass NscImportData extends React.PureComponent<ImportPropos, any> {\r\n state = {\r\n status: 1,\r\n file: null,\r\n currentStep: 1,\r\n requestStatus: \"\",\r\n errorList: [],\r\n warnList: [],\r\n buttonLoading: false,\r\n };\r\n modalRef = React.createRef<any>();\r\n fileSizeKb(number = 0) {\r\n return (number / 1024).toFixed(2);\r\n }\r\n show() {\r\n this.modalRef.current?.show();\r\n }\r\n hide() {\r\n this.modalRef.current?.hide();\r\n this.resetData();\r\n }\r\n importData(file, isOverwrite) {\r\n const { requestConfig = {}, importUrl, onCallBacks = {} } = this.props;\r\n let { data = {}, ...config } = requestConfig;\r\n this.setState({\r\n buttonLoading: true,\r\n });\r\n // let formData = {...data}\r\n\r\n nscFile\r\n .importFile(\r\n {\r\n url: importUrl,\r\n data: { ...data, isOverwrite: isOverwrite },\r\n file: file,\r\n },\r\n config\r\n )\r\n .then((res: any) => {\r\n this.setState({\r\n buttonLoading: false,\r\n });\r\n if (res.code == 200) {\r\n // message.success(\"导入成功!\");\r\n if (res.data?.warnings?.length > 0) {\r\n this.setState({\r\n requestStatus: \"warning\",\r\n warnList: res.data.warnings,\r\n });\r\n } else if (res.data?.errors?.length > 0) {\r\n // message.success(\"导入失败!\");\r\n this.setState({\r\n requestStatus: \"error\",\r\n errorList: res.data.errors,\r\n });\r\n } else {\r\n message.success(\"导入成功!\");\r\n this.setState({\r\n requestStatus: \"success\",\r\n });\r\n }\r\n onCallBacks?.importCallBack && onCallBacks?.importCallBack(res);\r\n // this.hide();\r\n } else {\r\n message.error(\"导入失败!\");\r\n this.setState({\r\n requestStatus: \"error\",\r\n });\r\n }\r\n });\r\n }\r\n renderErrorContent(list) {\r\n return list.map((item, index) => {\r\n if (this.state.requestStatus == \"warning\") {\r\n return typeof item == \"string\" ? (\r\n <div key={index}>{item}</div>\r\n ) : (\r\n <div key={index}>{\"第\" + item.rowNum + \"行数据重复;\"}</div>\r\n );\r\n } else {\r\n return typeof item == \"string\" ? (\r\n <div key={index}>{item}</div>\r\n ) : (\r\n <div key={index}>{item.errorMsg}</div>\r\n );\r\n }\r\n });\r\n }\r\n renderResult() {\r\n const { requestStatus, errorList, warnList } = this.state;\r\n const alert_msg_map = {\r\n success: \"导入成功\",\r\n error: \"导入失败\",\r\n warning: \"告警提示\",\r\n };\r\n if (requestStatus) {\r\n if (requestStatus == \"success\") {\r\n return (\r\n <Alert\r\n style={{ marginTop: \"8px\" }}\r\n message={alert_msg_map[requestStatus] ?? \"提示\"}\r\n type={\"success\"}\r\n showIcon\r\n />\r\n );\r\n } else {\r\n return (\r\n <Collapse\r\n expandIconPosition=\"right\"\r\n className={\r\n requestStatus == \"warning\" ? \"content-warning\" : \"content-error\"\r\n }\r\n style={{\r\n backgroundColor:\r\n requestStatus == \"warning\" ? \"#FCE1AB\" : \"#fff2f0\",\r\n border:\r\n requestStatus == \"warning\"\r\n ? \"1px solid #FCE1AB\"\r\n : \"1px solid #FFCCC7\",\r\n borderRadius: \"2px\",\r\n }}\r\n defaultActiveKey={[\"1\"]}\r\n >\r\n <Collapse.Panel\r\n key=\"1\"\r\n header={\r\n <div>\r\n <span\r\n style={{\r\n color: requestStatus == \"warning\" ? \"#FAAD14\" : \"#f60\",\r\n }}\r\n >\r\n {requestStatus == \"warning\" ? (\r\n <ExclamationCircleOutlined />\r\n ) : (\r\n <CloseCircleOutlined />\r\n )}\r\n {alert_msg_map[requestStatus]}\r\n </span>\r\n </div>\r\n }\r\n extra={\r\n <span\r\n style={{\r\n color: requestStatus == \"warning\" ? \"#FAAD14\" : \"#f60\",\r\n }}\r\n >\r\n {requestStatus == \"warning\" ? \"查看\" : \"查看错误\"}\r\n </span>\r\n }\r\n >\r\n <div\r\n style={{\r\n background:\r\n requestStatus == \"warning\" ? \"#FFFDF6\" : \"#fff9f9\",\r\n }}\r\n className=\"content-error__msg\"\r\n >\r\n {this.renderErrorContent(\r\n requestStatus == \"warning\" ? warnList : errorList\r\n )}\r\n </div>\r\n </Collapse.Panel>\r\n </Collapse>\r\n );\r\n }\r\n }\r\n }\r\n resetData() {\r\n this.setState({\r\n status: 1,\r\n file: null,\r\n currentStep: 1,\r\n requestStatus: \"\",\r\n errorList: [],\r\n warnList: [],\r\n });\r\n }\r\n render() {\r\n const { file, status, currentStep, requestStatus } = this.state;\r\n const {\r\n downLoadTemplet,\r\n downTempletUrl,\r\n checkData,\r\n checkUrl,\r\n requestConfig,\r\n } = this.props;\r\n const footer = (\r\n <div className=\"footer\">\r\n <NSCButton\r\n onClick={() => {\r\n this.hide();\r\n }}\r\n >\r\n 取消\r\n </NSCButton>\r\n\r\n {status == 1 && this.state.file && (\r\n <NSCButton\r\n onClick={() => {\r\n this.setState({\r\n status: 2,\r\n currentStep: 1,\r\n });\r\n if (checkData) {\r\n nscFile\r\n .importFile({\r\n url: checkUrl,\r\n file: file,\r\n data: requestConfig?.data || {},\r\n })\r\n .then((res: any) => {\r\n if (res.code == 200) {\r\n if (\r\n res.data.errorCount == 0 &&\r\n res.data.duplicateCount == 0\r\n ) {\r\n this.setState({\r\n currentStep: 2,\r\n requestStatus: \"success\",\r\n });\r\n this.importData(file, false);\r\n return;\r\n }\r\n if (res.data.errorCount > 0) {\r\n this.setState({\r\n requestStatus: \"error\",\r\n errorList: res.data.errorList,\r\n });\r\n return;\r\n }\r\n if (res.data.duplicateCount > 0) {\r\n this.setState({\r\n requestStatus: \"warning\",\r\n warnList: res.data.duplicateList,\r\n });\r\n return;\r\n }\r\n }\r\n });\r\n } else {\r\n this.importData(file, false);\r\n }\r\n }}\r\n disabled={file ? false : true}\r\n icon={<UploadOutlined />}\r\n style={{ marginLeft: 20 }}\r\n >\r\n 开始上传\r\n </NSCButton>\r\n )}\r\n {requestStatus == \"warning\" && status == 2 && (\r\n <NSCButton\r\n type=\"primary\"\r\n style={{ marginLeft: 20 }}\r\n onClick={() => {\r\n this.importData(this.state.file, false);\r\n }}\r\n disabled={this.state.buttonLoading}\r\n >\r\n 不覆盖数据\r\n </NSCButton>\r\n )}\r\n {requestStatus == \"warning\" && status == 2 && (\r\n <NSCButton\r\n type=\"primary\"\r\n style={{ marginLeft: 20 }}\r\n onClick={() => {\r\n this.importData(this.state.file, true);\r\n }}\r\n disabled={this.state.buttonLoading}\r\n >\r\n 覆盖数据\r\n </NSCButton>\r\n )}\r\n </div>\r\n );\r\n\r\n return (\r\n <div>\r\n {this.props.children ? (\r\n this.props.children\r\n ) : (\r\n <>\r\n {this.props.showButton && (\r\n <NSCButton\r\n type=\"primary\"\r\n onClick={() => {\r\n this.show();\r\n }}\r\n >\r\n 数据导入\r\n </NSCButton>\r\n )}\r\n </>\r\n )}\r\n\r\n <NscModal\r\n title=\"数据导入\"\r\n width={800}\r\n wrapClassName={\"import-modal\"}\r\n ref={this.modalRef}\r\n footer={footer}\r\n onCancel={() => {\r\n this.hide();\r\n }}\r\n >\r\n <div className=\"content\">\r\n {status == 1 ? (\r\n <div>\r\n <div style={{ display: \"flex\" }}>\r\n <NscUpload\r\n beforeUpload={(file) => {\r\n this.setState({\r\n file,\r\n });\r\n return false;\r\n }}\r\n allowFileSuffix={[\"xls\", \"xlsx\"]}\r\n accept={\".xls,.xlsx\"}\r\n showUploadList={false}\r\n >\r\n <NSCButton\r\n type={\"primary\"}\r\n disabled={file ? true : false}\r\n icon={<FolderOutlined />}\r\n >\r\n 选择文件\r\n </NSCButton>\r\n </NscUpload>\r\n\r\n {downLoadTemplet && (\r\n <NscDownLoad url={downTempletUrl}>\r\n <NSCButton type=\"primary\" style={{ marginLeft: 20 }}>\r\n 模板下载\r\n </NSCButton>\r\n </NscDownLoad>\r\n )}\r\n </div>\r\n <div className=\"upload-tip\">\r\n <div className=\"upload-tip-left\">\r\n <ExclamationCircleOutlined />\r\n </div>\r\n <div className=\"upload-tip-content\">\r\n <div>\r\n 1、支持Excel 2007及以上版本,且每次只能上传一个文件;\r\n </div>\r\n <div>2、导入前先下载模板,并根据模板填写数据;</div>\r\n </div>\r\n </div>\r\n\r\n {file && (\r\n <div className=\"upload-file\">\r\n <div className=\"file-icon\">\r\n <FileIcon type=\"excel\" />\r\n </div>\r\n <div className=\"file-content\">\r\n <div className=\"file-title\">{file.name}</div>\r\n <div className=\"file-desc\">\r\n <span>\r\n 文件大小:{this.fileSizeKb(file.size) + \"KB\"}\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n )}\r\n </div>\r\n ) : (\r\n <div>\r\n <Steps\r\n current={currentStep}\r\n items={[\r\n {\r\n title: \"数据分析\",\r\n },\r\n {\r\n title: \"数据插入\",\r\n },\r\n ]}\r\n />\r\n <div className={\"result-content\"}>{this.renderResult()}</div>\r\n </div>\r\n )}\r\n </div>\r\n </NscModal>\r\n </div>\r\n );\r\n }\r\n}\r\nexport default NscImportData;\r\n"],"mappings":"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"}
@@ -34,6 +34,7 @@ export default class NscModal extends PureComponent<NscModalPorps & DrawerProps,
34
34
  */
35
35
  componentDidMount(): void;
36
36
  componentWillUnmount(): void;
37
+ componentDidUpdate(prevProps: Readonly<NscModalPorps & DrawerProps>, prevState: Readonly<any>, snapshot?: any): void;
37
38
  listenMessage: (ev: any) => void;
38
39
  show(option?: any): void;
39
40
  hide(option?: any): void;
@@ -96,6 +96,13 @@ export default class NscModal extends PureComponent {
96
96
  componentWillUnmount() {
97
97
  window.removeEventListener("message", this.listenMessage);
98
98
  }
99
+ componentDidUpdate(prevProps, prevState, snapshot) {
100
+ if (this.props.type !== prevProps.type) {
101
+ this.setState({
102
+ modalType: this.props.type || "auto"
103
+ });
104
+ }
105
+ }
99
106
  //显示
100
107
  show() {
101
108
  let option = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
@@ -372,4 +379,4 @@ _defineProperty(NscModal, "success", _Modal.success);
372
379
  _defineProperty(NscModal, "error", _Modal.error);
373
380
  _defineProperty(NscModal, "warning", _Modal.warning);
374
381
  _defineProperty(NscModal, "destroyAll", _Modal.destroyAll);
375
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImNyZWF0ZVJlZiIsIlB1cmVDb21wb25lbnQiLCJ1dGlscyIsImNvbmZpZyIsIlBsdXNDaXJjbGVPdXRsaW5lZCIsIkNsb3NlQ2lyY2xlT3V0bGluZWQiLCJDbG9zZU91dGxpbmVkIiwiRXhwYW5kT3V0bGluZWQiLCJDb21wcmVzc091dGxpbmVkIiwiQnV0dG9uIiwiZ2V0TGVzcyIsInN0eWxlcyIsImdldFN0b3JhZ2UiLCJDb25maXJtIiwib21pdCIsIkRyYWdnYWJsZSIsImNscyIsIk5zY01vZGFsIiwidXNlTW9kYWwiLCJtb2RhbCIsImNvbnRleHRIb2xkZXIiLCJfTW9kYWwiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX2RlZmluZVByb3BlcnR5Iiwic2NvcGUiLCJwYXJhbXMiLCJiZWZvcmVSZW5kZXIiLCJjYWxsYmFja0JlZm9yZUNsb3NlIiwiY2FsbGJhY2siLCJhZnRlclJlbmRlciIsImV2IiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsImUiLCJjb25zb2xlIiwibG9nIiwiX3RoaXMiLCJldmVudFR5cGUiLCJwYXlsb2FkIiwidHlwZSIsInNldFN0YXRlIiwibW9kYWxUeXBlIiwic3RvcmVQcmVmaXgiLCJhdXRvVHlwZSIsImNvbnRlbnQiLCJzdGF0ZSIsInZpc2libGUiLCJleHBhbmQiLCJib3VuZHMiLCJsZWZ0IiwidG9wIiwiYm90dG9tIiwicmlnaHQiLCJkcmFnZ2VyIiwiY29tcG9uZW50RGlkTW91bnQiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwibGlzdGVuTWVzc2FnZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInNob3ciLCJvcHRpb24iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJfb2JqZWN0U3ByZWFkIiwiaGlkZSIsImdldFJldHVyblZhbHVlIiwicmV0dXJuVmFsdWUiLCJjbG9zZSIsInJlc3VsdCIsImJ1dHRvbkNsb3NlIiwiZm9ybUV4cGFuZCIsIm9uQ2FuY2VsIiwib25CdXR0b25DYW5jZWwiLCJvbkNsb3NlIiwidmFsaWQiLCJjaGFuZ2UiLCJvbk9rIiwiZ2V0UGFyYW1zIiwia2V5Iiwib25TdGFydCIsIl9ldmVudCIsInVpRGF0YSIsIl90aGlzJGRyYWdnbGVSZWYkY3VyciIsImNsaWVudFdpZHRoIiwiY2xpZW50SGVpZ2h0IiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJ0YXJnZXRSZWN0IiwiZHJhZ2dsZVJlZiIsImN1cnJlbnQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ4IiwieSIsInJlbmRlciIsIl90aGlzJHByb3BzIiwiY2xvc2FibGUiLCJva0J1dHRvblByb3BzIiwiY2FuY2VsQnV0dG9uUHJvcHMiLCJkcmFnYWJsZSIsImZvb3RlckJ1dHRvbiIsIl9vYmplY3RXaXRob3V0UHJvcGVydGllcyIsIl9leGNsdWRlZCIsIm1vdW50RWxlbWVudElkIiwiZ2V0Q29udGFpbmVyIiwiZ2V0RWxlbWVudEJ5SWQiLCJtb2RhbFJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJkaXNhYmxlZCIsImV2ZW50IiwicmVmIiwidGl0bGUiLCJjbGFzc05hbWUiLCJvbk1vdXNlT3ZlciIsIm9uTW91c2VPdXQiLCJvbkNsaWNrIiwic3R5bGUiLCJtYXJnaW5SaWdodCIsIm1vZGFsQnV0dG9uIiwiZm9vdGVyIiwiX2V4dGVuZHMiLCJiaW5kIiwiaWNvbiIsImNhbmNsZUJ1dHRvblByb3BzIiwiY2FuY2VsVGV4dCIsIm9rVGV4dCIsIm1hcCIsIml0ZW0iLCJpbmRleCIsIm1heFdpZHRoIiwid2lkdGgiLCJvbGRQcm9wcyIsIm5ld0RyYXdlclByb3BzIiwiX0RyYXdlciIsIm9wZW4iLCJjZW50ZXJlZCIsImFmdGVyQ2xvc2UiLCJpbmZvIiwic3VjY2VzcyIsImVycm9yIiwid2FybmluZyIsImRlc3Ryb3lBbGwiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tcG9uZW50cy9iYXNlL21vZGFsL2luZGV4LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgY3JlYXRlUmVmLCBQdXJlQ29tcG9uZW50LCBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IHsgTW9kYWwsIE1vZGFsUHJvcHMsIERyYXdlciwgRHJhd2VyUHJvcHMgfSBmcm9tIFwiYW50ZFwiO1xyXG5pbXBvcnQgeyB1dGlscyB9IGZyb20gXCJAYmotbnNjL21zbi9saWIvdXRpbHNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCB7XHJcbiAgUGx1c0NpcmNsZU91dGxpbmVkLFxyXG4gIENsb3NlQ2lyY2xlT3V0bGluZWQsXHJcbiAgQ2xvc2VPdXRsaW5lZCxcclxuICBFeHBhbmRPdXRsaW5lZCxcclxuICBDb21wcmVzc091dGxpbmVkLFxyXG59IGZyb20gXCJAYW50LWRlc2lnbi9pY29uc1wiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi9idXR0b25cIjtcclxuaW1wb3J0IHsgZ2V0TGVzcyB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lmxlc3NcIjtcclxuaW1wb3J0IHsgZ2V0U3RvcmFnZSB9IGZyb20gXCJAYmotbnNjL2Z1bmN0aW9uc1wiO1xyXG5pbXBvcnQgQ29uZmlybSBmcm9tIFwiLi9Db25maXJtXCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCB0eXBlIHsgRHJhZ2dhYmxlRGF0YSwgRHJhZ2dhYmxlRXZlbnQgfSBmcm9tIFwicmVhY3QtZHJhZ2dhYmxlXCI7XHJcbmltcG9ydCBEcmFnZ2FibGUgZnJvbSBcInJlYWN0LWRyYWdnYWJsZVwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcblxyXG5pbnRlcmZhY2UgZm9ybUV4cGFuZCB7XHJcbiAgY2hhbmdlPzogYm9vbGVhbjtcclxuICB2YWxpZD86IGJvb2xlYW47XHJcbiAgZXhwYW5kPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBOc2NNb2RhbFBvcnBzIGV4dGVuZHMgTW9kYWxQcm9wcyB7XHJcbiAgdHlwZT86IFwibW9kYWxcIiB8IFwiZHJhd2VyXCIgfCBcImF1dG9cIjtcclxuICBmb3JtRXhwYW5kPzogZm9ybUV4cGFuZDtcclxuICBvbkJ1dHRvbkNhbmNlbD86IGFueTsgLy/lupXpg6jlj5bmtojmjInpkq7lm57osINcclxuICBkcmFnYWJsZT86IGJvb2xlYW47IC8v5by55qGG5piv5ZCm55yL5ouW5YqoXHJcbiAgZm9vdGVyQnV0dG9uPzogQXJyYXk8YW55PjsgLy9mb290ZXIg5YW25LuW6Ieq5a6a5LmJ5oyJ6ZKuXHJcbn1cclxuXHJcbmludGVyZmFjZSBOc2NNb2RhbEludGVyZmFjZVxyXG4gIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50Q2xhc3M8TnNjTW9kYWxQb3JwcyAmIERyYXdlclByb3BzLCBhbnk+IHtcclxuICB1c2VNb2RhbDogKCkgPT4gW2FueSwgUmVhY3QuUmVhY3RFbGVtZW50XTtcclxuICBjb25maXJtOiB0eXBlb2YgQ29uZmlybTtcclxuICBpbmZvOiB0eXBlb2YgTW9kYWwuaW5mbztcclxuICBzdWNjZXNzOiB0eXBlb2YgTW9kYWwuc3VjY2VzcztcclxuICBlcnJvcjogdHlwZW9mIE1vZGFsLmVycm9yO1xyXG4gIHdhcm5pbmc6IHR5cGVvZiBNb2RhbC53YXJuaW5nO1xyXG4gIGRlc3Ryb3lBbGw6IHR5cGVvZiBNb2RhbC5kZXN0cm95QWxsO1xyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBOc2NNb2RhbCBleHRlbmRzIFB1cmVDb21wb25lbnQ8XHJcbiAgTnNjTW9kYWxQb3JwcyAmIERyYXdlclByb3BzLFxyXG4gIGFueVxyXG4+IHtcclxuICBzdGF0aWMgdXNlTW9kYWwoKSB7XHJcbiAgICAvLyDosIPnlKggYW50ZCBNb2RhbCDnmoQgdXNlTW9kYWwgaG9va1xyXG4gICAgY29uc3QgW21vZGFsLCBjb250ZXh0SG9sZGVyXSA9IE1vZGFsLnVzZU1vZGFsKCk7XHJcblxyXG4gICAgLy8g6L+U5ZueIGNvbnRleHRIb2xkZXLvvIznoa7kv53kuIrkuIvmlofmraPnoa7kvKDpgJJcclxuICAgIHJldHVybiBbbW9kYWwsIGNvbnRleHRIb2xkZXJdIGFzIFthbnksIFJlYWN0LlJlYWN0RWxlbWVudF07XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY29uZmlybSA9IENvbmZpcm07XHJcbiAgLy8gc3RhdGljIGNvbmZpcm0gPSBNb2RhbC5jb25maXJtO1xyXG4gIHN0YXRpYyBpbmZvID0gTW9kYWwuaW5mbztcclxuICBzdGF0aWMgc3VjY2VzcyA9IE1vZGFsLnN1Y2Nlc3M7XHJcbiAgc3RhdGljIGVycm9yID0gTW9kYWwuZXJyb3I7XHJcbiAgc3RhdGljIHdhcm5pbmcgPSBNb2RhbC53YXJuaW5nO1xyXG4gIHN0YXRpYyBkZXN0cm95QWxsID0gTW9kYWwuZGVzdHJveUFsbDtcclxuICAvL+i/lOWbnuWAvFxyXG4gIHJldHVyblZhbHVlID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IocHJvcHMpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIGxldCBtb2RhbCA9IHByb3BzLnR5cGUgfHwgXCJhdXRvXCI7XHJcbiAgICBsZXQgc3RvcmVQcmVmaXggPSBnZXRTdG9yYWdlKFwic3RvcmUtcHJlLWtleVwiKTtcclxuICAgIGxldCBhdXRvVHlwZSA9IGdldFN0b3JhZ2UoXHJcbiAgICAgIHN0b3JlUHJlZml4ID8gc3RvcmVQcmVmaXggKyBcImZvcm1UeXBlXCIgOiBcImZvcm1UeXBlXCJcclxuICAgICk7XHJcbiAgICBhdXRvVHlwZSA9IGF1dG9UeXBlID8gYXV0b1R5cGUuY29udGVudCA6IG51bGw7XHJcbiAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICB2aXNpYmxlOiBmYWxzZSxcclxuICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgICAgbW9kYWxUeXBlOiBtb2RhbCA9PSBcImF1dG9cIiA/IGF1dG9UeXBlIDogbW9kYWwsXHJcbiAgICAgIGJvdW5kczogeyBsZWZ0OiAwLCB0b3A6IDAsIGJvdHRvbTogMCwgcmlnaHQ6IDAgfSxcclxuICAgICAgZHJhZ2dlcjogdHJ1ZSxcclxuICAgIH07XHJcbiAgfVxyXG4gIGRyYWdnbGVSZWYgPSBjcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XHJcblxyXG4gIG9wdGlvbjogYW55ID0ge1xyXG4gICAgLy/lm57osIPkvZznlKjln59cclxuICAgIHNjb3BlOiB0aGlzLFxyXG4gICAgLy9vcGVu5Lyg6YCS6L+H5p2l55qE6aG16Z2i5Y+C5pWwXHJcbiAgICBwYXJhbXM6IHt9LFxyXG4gICAgLy/mmL7npLrkuYvliY3lm57osINcclxuICAgIGJlZm9yZVJlbmRlcjogbnVsbCxcclxuICAgIC8v5YWz6Zet5LmL5YmN5Zue6LCD77yM5aaC5p6ccmV0dXJuIGZhbHNl77yM5LiU56qX5Y+j5LiN5YWz6ZetXHJcbiAgICBjYWxsYmFja0JlZm9yZUNsb3NlOiBudWxsLFxyXG4gICAgLy/lhbPpl63lkI7lm57osIPvvIzlvILmraXmk43kvZxcclxuICAgIGNhbGxiYWNrOiBudWxsLFxyXG4gICAgLy/mmL7npLrkuYvlkI7lm57osINcclxuICAgIGFmdGVyUmVuZGVyOiBudWxsLFxyXG4gIH07XHJcbiAgLyoqXHJcbiAgICog5riy5p+T5a6M5oiQXHJcbiAgICogQHBhcmFtIHsqfSBvcHRpb24gIOaVtOaUueS8oOmAkuWvueixoVxyXG4gICAqL1xyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcclxuICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCB0aGlzLmxpc3Rlbk1lc3NhZ2UpO1xyXG4gIH1cclxuICBsaXN0ZW5NZXNzYWdlID0gKGV2KSA9PiB7XHJcbiAgICBsZXQgZGF0YSA9IHt9IGFzIGFueTtcclxuICAgIGlmICh0eXBlb2YgZXYuZGF0YSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGV2LmRhdGEpO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICBpZiAoZGF0YS5ldmVudFR5cGUgPT0gXCJjaGFuZ2VGb3JtVHlwZVwiKSB7XHJcbiAgICAgIGNvbnN0IHsgcGF5bG9hZCB9ID0gZGF0YTtcclxuICAgICAgaWYgKHBheWxvYWQudHlwZSA9PSBcIm1vZGFsXCIgfHwgcGF5bG9hZC50eXBlID09IFwiZHJhd2VyXCIpIHtcclxuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IG1vZGFsVHlwZTogcGF5bG9hZC50eXBlIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuICAvL+aYvuekulxyXG4gIHNob3cob3B0aW9uOiBhbnkgPSB7fSkge1xyXG4gICAgY29uc3QgeyBzY29wZSB9ID0gdGhpcy5vcHRpb247XHJcbiAgICBjb25zdCB7IGJlZm9yZVJlbmRlciwgYWZ0ZXJSZW5kZXIgfSA9IG9wdGlvbjtcclxuICAgIHRoaXMub3B0aW9uID0geyAuLi50aGlzLm9wdGlvbiwgLi4ub3B0aW9uIH07XHJcbiAgICB1dGlscy5jYWxsYmFjayhiZWZvcmVSZW5kZXIsIHNjb3BlKTtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyB2aXNpYmxlOiB0cnVlIH0sICgpID0+IHtcclxuICAgICAgdXRpbHMuY2FsbGJhY2soYWZ0ZXJSZW5kZXIsIHNjb3BlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy/pmpDol49cclxuICBoaWRlKG9wdGlvbjogYW55ID0ge30pIHtcclxuICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICBfdGhpcy5zZXRTdGF0ZSh7IHZpc2libGU6IGZhbHNlIH0pO1xyXG4gIH1cclxuXHJcbiAgLy/ojrflj5bpnIDopoHov5Tlm57nmoTlgLxcclxuICBnZXRSZXR1cm5WYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnJldHVyblZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5YWz6Zet5bim5Zue6LCDXHJcbiAgICovXHJcbiAgY2xvc2UocmVzdWx0PzogYW55LCBidXR0b25DbG9zZSA9IGZhbHNlKSB7XHJcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgLy8gY29uc3QgeyBjYWxsYmFjaywgc2NvcGUsIGNhbGxiYWNrQmVmb3JlQ2xvc2UgfSA9IHRoaXMub3B0aW9uO1xyXG4gICAgY29uc3QgeyBmb3JtRXhwYW5kID0ge30sIG9uQ2FuY2VsLCBvbkJ1dHRvbkNhbmNlbCwgb25DbG9zZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIC8vIGNvbnN0IHIgPSB1dGlscy5jYWxsYmFjayhjYWxsYmFja0JlZm9yZUNsb3NlLCBzY29wZSwgW3RoaXMucmV0dXJuVmFsdWVdKTtcclxuICAgIC8vIGlmIChyICE9PSBmYWxzZSkge1xyXG4gICAgY29uc3QgeyBleHBhbmQgPSBmYWxzZSB9ID0gZm9ybUV4cGFuZDtcclxuICAgIGlmIChleHBhbmQgJiYgZm9ybUV4cGFuZC52YWxpZCAmJiBmb3JtRXhwYW5kLmNoYW5nZSkge1xyXG4gICAgICBDb25maXJtKHtcclxuICAgICAgICBjb250ZW50OiBcIuW9k+WJjeiusOW9leW3suS/ruaUueWwmuacquS/neWtmO+8jOehruWumuimgeaUvuW8g+S/ruaUueWQl++8n1wiLFxyXG4gICAgICAgIG9uT2soKSB7XHJcbiAgICAgICAgICBpZiAob25DYW5jZWwgfHwgb25DbG9zZSkge1xyXG4gICAgICAgICAgICBpZiAoYnV0dG9uQ2xvc2UgJiYgb25CdXR0b25DYW5jZWwpIHtcclxuICAgICAgICAgICAgICBvbkJ1dHRvbkNhbmNlbChyZXN1bHQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG9uQ2FuY2VsICYmIG9uQ2FuY2VsKHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgb25DbG9zZSAmJiBvbkNsb3NlKHJlc3VsdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgdmlzaWJsZTogZmFsc2UgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAob25DYW5jZWwgfHwgb25DbG9zZSkge1xyXG4gICAgICAgIGlmIChidXR0b25DbG9zZSAmJiBvbkJ1dHRvbkNhbmNlbCkge1xyXG4gICAgICAgICAgb25CdXR0b25DYW5jZWwocmVzdWx0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb25DYW5jZWwgJiYgb25DYW5jZWwocmVzdWx0KTtcclxuICAgICAgICAgIG9uQ2xvc2UgJiYgb25DbG9zZShyZXN1bHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IHZpc2libGU6IGZhbHNlIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyB9XHJcbiAgICAvLyB1dGlscy5jYWxsYmFjayhjYWxsYmFjaywgc2NvcGUsIFtfdGhpcy5yZXR1cm5WYWx1ZV0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W5Y+C5pWw77yM5aaC5p6ca2V55LiN5Lyg6YCS77yM5LiU6I635Y+W5YWo6YOoXHJcbiAgICogQHBhcmFtIHtTdHJpbmd9IGtleVxyXG4gICAqL1xyXG4gIGdldFBhcmFtcyhrZXkpIHtcclxuICAgIGlmIChrZXkpIHJldHVybiB0aGlzLm9wdGlvbi5wYXJhbXNba2V5XTtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbi5wYXJhbXM7XHJcbiAgfVxyXG4gIG9uU3RhcnQoX2V2ZW50OiBEcmFnZ2FibGVFdmVudCwgdWlEYXRhOiBEcmFnZ2FibGVEYXRhKSB7XHJcbiAgICBjb25zdCB7IGNsaWVudFdpZHRoLCBjbGllbnRIZWlnaHQgfSA9IHdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbiAgICBjb25zdCB0YXJnZXRSZWN0ID0gdGhpcy5kcmFnZ2xlUmVmLmN1cnJlbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgaWYgKCF0YXJnZXRSZWN0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBib3VuZHM6IHtcclxuICAgICAgICBsZWZ0OiAtdGFyZ2V0UmVjdC5sZWZ0ICsgdWlEYXRhLngsXHJcbiAgICAgICAgcmlnaHQ6IGNsaWVudFdpZHRoIC0gKHRhcmdldFJlY3QucmlnaHQgLSB1aURhdGEueCksXHJcbiAgICAgICAgdG9wOiAtdGFyZ2V0UmVjdC50b3AgKyB1aURhdGEueSxcclxuICAgICAgICBib3R0b206IGNsaWVudEhlaWdodCAtICh0YXJnZXRSZWN0LmJvdHRvbSAtIHVpRGF0YS55KSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICB0eXBlID0gXCJtb2RhbFwiLFxyXG4gICAgICBjbG9zYWJsZSxcclxuICAgICAgLy8gdGl0bGU6IG9yZ3RpdGxlLFxyXG4gICAgICBva0J1dHRvblByb3BzID0ge30sXHJcbiAgICAgIGNhbmNlbEJ1dHRvblByb3BzID0ge30sXHJcbiAgICAgIGZvcm1FeHBhbmQgPSB7fSxcclxuICAgICAgZHJhZ2FibGUgPSB0cnVlLFxyXG4gICAgICBmb290ZXJCdXR0b24gPSBbXSxcclxuICAgICAgLi4ucGFyYW1zXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCBwcm9wczogYW55ID0geyAuLi5wYXJhbXMgfTtcclxuICAgIGxldCB7IG1vdW50RWxlbWVudElkIH0gPSBjb25maWcoKTtcclxuICAgIGlmIChtb3VudEVsZW1lbnRJZCkge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBnZXRDb250YWluZXI6ICgpID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1vdW50RWxlbWVudElkKSxcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmIChkcmFnYWJsZSAmJiB0eXBlID09IFwibW9kYWxcIikge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBtb2RhbFJlbmRlcjogKG1vZGFsKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8RHJhZ2dhYmxlXHJcbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e3RoaXMuc3RhdGUuZHJhZ2dlcn1cclxuICAgICAgICAgICAgICBib3VuZHM9e3RoaXMuc3RhdGUuYm91bmRzfVxyXG4gICAgICAgICAgICAgIG9uU3RhcnQ9eyhldmVudCwgdWlEYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uU3RhcnQoZXZlbnQsIHVpRGF0YSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgcmVmPXt0aGlzLmRyYWdnbGVSZWZ9Pnttb2RhbH08L2Rpdj5cclxuICAgICAgICAgICAgPC9EcmFnZ2FibGU+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdGl0bGUgPSAoXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGVcIiksIHtcclxuICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGUtZHJhZ2dlclwiKV06XHJcbiAgICAgICAgICAgIGRyYWdhYmxlICYmIHR5cGUgPT0gXCJtb2RhbFwiLFxyXG4gICAgICAgIH0pfVxyXG4gICAgICAgIG9uTW91c2VPdmVyPXsoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5kcmFnZ2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIGRyYWdnZXI6IGZhbHNlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9fVxyXG4gICAgICAgIG9uTW91c2VPdXQ9eygpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBkcmFnZ2VyOiB0cnVlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGUtaWNvbnNcIil9PlxyXG4gICAgICAgICAgeyF0aGlzLnN0YXRlLmV4cGFuZCAmJiBmb3JtRXhwYW5kLmV4cGFuZCAmJiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZXhwYW5kOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGUtaWNvblwiKX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxFeHBhbmRPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICB7dGhpcy5zdGF0ZS5leHBhbmQgJiYgZm9ybUV4cGFuZC5leHBhbmQgJiYgKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGV4cGFuZDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC10aXRsZS1pY29uXCIpfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPENvbXByZXNzT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge2Nsb3NhYmxlICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC10aXRsZS1pY29uXCIpfVxyXG4gICAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpblJpZ2h0OiAwIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8Q2xvc2VPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC10aXRsZS1jb250ZW50XCIpfT5cclxuICAgICAgICAgIHt0aGlzLnByb3BzLnRpdGxlfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgICBjb25zdCB7IG1vZGFsQnV0dG9uIH0gPSBjb25maWcoKTtcclxuICAgIGNvbnN0IGZvb3RlciA9IChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC1mb290ZXJcIil9PlxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuY2xvc2UuYmluZCh0aGlzLCB7fSwgdHJ1ZSl9XHJcbiAgICAgICAgICBpY29uPXs8Q2xvc2VDaXJjbGVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgIHsuLi5tb2RhbEJ1dHRvbi5jYW5jbGVCdXR0b25Qcm9wc31cclxuICAgICAgICAgIHsuLi5jYW5jZWxCdXR0b25Qcm9wc31cclxuICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsLWZvb3Rlci1idXR0b24tbWFyZ2luXCIpfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt0aGlzLnByb3BzLmNhbmNlbFRleHQgPyB0aGlzLnByb3BzLmNhbmNlbFRleHQgOiBcIuWPlua2iFwifVxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgcHJvcHMub25PayAmJiBwcm9wcy5vbk9rKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgaWNvbj17PFBsdXNDaXJjbGVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsLWZvb3Rlci1idXR0b24tbWFyZ2luXCIpfVxyXG4gICAgICAgICAgey4uLm1vZGFsQnV0dG9uLm9rQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICB7Li4ub2tCdXR0b25Qcm9wc31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7dGhpcy5wcm9wcy5va1RleHQgPyB0aGlzLnByb3BzLm9rVGV4dCA6IFwi5L+d5a2YXCJ9XHJcbiAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAge2Zvb3RlckJ1dHRvbi5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtZm9vdGVyLWJ1dHRvbi1tYXJnaW5cIil9XHJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtpdGVtfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICAgIGlmIChmb3JtRXhwYW5kLmV4cGFuZCkge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBmb290ZXI6IGZvb3RlcixcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxyXG4gICAgICAgIHN0eWxlOiB7IG1heFdpZHRoOiBcIjEwMHZ3XCIgfSxcclxuICAgICAgICB3aWR0aDogdGhpcy5zdGF0ZS5leHBhbmQgPyBcIjEwMHZ3XCIgOiBwcm9wcy53aWR0aCxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHByb3BzID0ge1xyXG4gICAgICAgIGZvb3RlcjogZm9vdGVyLFxyXG4gICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICBjbG9zYWJsZTogZmFsc2UsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zdGF0ZS5tb2RhbFR5cGUgPT0gXCJkcmF3ZXJcIikge1xyXG4gICAgICBsZXQgb2xkUHJvcHMgPSB7IC4uLnByb3BzIH07XHJcbiAgICAgIGxldCBuZXdEcmF3ZXJQcm9wcyA9IG9taXQob2xkUHJvcHMsIFtcIm9uT2tcIiwgXCJva0J1dHRvblByb3BzXCJdKTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8RHJhd2VyXHJcbiAgICAgICAgICBvcGVuPXt0aGlzLnN0YXRlLnZpc2libGV9XHJcbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICB7Li4ubmV3RHJhd2VyUHJvcHN9XHJcbiAgICAgICAgLz5cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPE1vZGFsXHJcbiAgICAgICAgICBvcGVuPXt0aGlzLnN0YXRlLnZpc2libGV9XHJcbiAgICAgICAgICBvbkNhbmNlbD17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgb25Paz17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgb2tUZXh0PXtcIuehruWumlwifVxyXG4gICAgICAgICAgY2FuY2VsVGV4dD17XCLlj5bmtohcIn1cclxuICAgICAgICAgIGNlbnRlcmVkPXt0cnVlfVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtcclxuICAgICAgICAgICAgdGhpcy5zdGF0ZS5leHBhbmRcclxuICAgICAgICAgICAgICA/IGdldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC1hbGxzcmVlblwiKVxyXG4gICAgICAgICAgICAgIDogZ2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsXCIpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyB0aXRsZT17Zm9ybUV4cGFuZCA/IHRpdGxlIDogdGhpcy5wcm9wcy50aXRsZX1cclxuICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgIGFmdGVyQ2xvc2U9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLFNB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
382
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImNyZWF0ZVJlZiIsIlB1cmVDb21wb25lbnQiLCJ1dGlscyIsImNvbmZpZyIsIlBsdXNDaXJjbGVPdXRsaW5lZCIsIkNsb3NlQ2lyY2xlT3V0bGluZWQiLCJDbG9zZU91dGxpbmVkIiwiRXhwYW5kT3V0bGluZWQiLCJDb21wcmVzc091dGxpbmVkIiwiQnV0dG9uIiwiZ2V0TGVzcyIsInN0eWxlcyIsImdldFN0b3JhZ2UiLCJDb25maXJtIiwib21pdCIsIkRyYWdnYWJsZSIsImNscyIsIk5zY01vZGFsIiwidXNlTW9kYWwiLCJtb2RhbCIsImNvbnRleHRIb2xkZXIiLCJfTW9kYWwiLCJjb25zdHJ1Y3RvciIsInByb3BzIiwiX2RlZmluZVByb3BlcnR5Iiwic2NvcGUiLCJwYXJhbXMiLCJiZWZvcmVSZW5kZXIiLCJjYWxsYmFja0JlZm9yZUNsb3NlIiwiY2FsbGJhY2siLCJhZnRlclJlbmRlciIsImV2IiwiZGF0YSIsIkpTT04iLCJwYXJzZSIsImUiLCJjb25zb2xlIiwibG9nIiwiX3RoaXMiLCJldmVudFR5cGUiLCJwYXlsb2FkIiwidHlwZSIsInNldFN0YXRlIiwibW9kYWxUeXBlIiwic3RvcmVQcmVmaXgiLCJhdXRvVHlwZSIsImNvbnRlbnQiLCJzdGF0ZSIsInZpc2libGUiLCJleHBhbmQiLCJib3VuZHMiLCJsZWZ0IiwidG9wIiwiYm90dG9tIiwicmlnaHQiLCJkcmFnZ2VyIiwiY29tcG9uZW50RGlkTW91bnQiLCJ3aW5kb3ciLCJhZGRFdmVudExpc3RlbmVyIiwibGlzdGVuTWVzc2FnZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImNvbXBvbmVudERpZFVwZGF0ZSIsInByZXZQcm9wcyIsInByZXZTdGF0ZSIsInNuYXBzaG90Iiwic2hvdyIsIm9wdGlvbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInVuZGVmaW5lZCIsIl9vYmplY3RTcHJlYWQiLCJoaWRlIiwiZ2V0UmV0dXJuVmFsdWUiLCJyZXR1cm5WYWx1ZSIsImNsb3NlIiwicmVzdWx0IiwiYnV0dG9uQ2xvc2UiLCJmb3JtRXhwYW5kIiwib25DYW5jZWwiLCJvbkJ1dHRvbkNhbmNlbCIsIm9uQ2xvc2UiLCJ2YWxpZCIsImNoYW5nZSIsIm9uT2siLCJnZXRQYXJhbXMiLCJrZXkiLCJvblN0YXJ0IiwiX2V2ZW50IiwidWlEYXRhIiwiX3RoaXMkZHJhZ2dsZVJlZiRjdXJyIiwiY2xpZW50V2lkdGgiLCJjbGllbnRIZWlnaHQiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsInRhcmdldFJlY3QiLCJkcmFnZ2xlUmVmIiwiY3VycmVudCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsIngiLCJ5IiwicmVuZGVyIiwiX3RoaXMkcHJvcHMiLCJjbG9zYWJsZSIsIm9rQnV0dG9uUHJvcHMiLCJjYW5jZWxCdXR0b25Qcm9wcyIsImRyYWdhYmxlIiwiZm9vdGVyQnV0dG9uIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX2V4Y2x1ZGVkIiwibW91bnRFbGVtZW50SWQiLCJnZXRDb250YWluZXIiLCJnZXRFbGVtZW50QnlJZCIsIm1vZGFsUmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsImRpc2FibGVkIiwiZXZlbnQiLCJyZWYiLCJ0aXRsZSIsImNsYXNzTmFtZSIsIm9uTW91c2VPdmVyIiwib25Nb3VzZU91dCIsIm9uQ2xpY2siLCJzdHlsZSIsIm1hcmdpblJpZ2h0IiwibW9kYWxCdXR0b24iLCJmb290ZXIiLCJfZXh0ZW5kcyIsImJpbmQiLCJpY29uIiwiY2FuY2xlQnV0dG9uUHJvcHMiLCJjYW5jZWxUZXh0Iiwib2tUZXh0IiwibWFwIiwiaXRlbSIsImluZGV4IiwibWF4V2lkdGgiLCJ3aWR0aCIsIm9sZFByb3BzIiwibmV3RHJhd2VyUHJvcHMiLCJfRHJhd2VyIiwib3BlbiIsImNlbnRlcmVkIiwiYWZ0ZXJDbG9zZSIsImluZm8iLCJzdWNjZXNzIiwiZXJyb3IiLCJ3YXJuaW5nIiwiZGVzdHJveUFsbCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2Jhc2UvbW9kYWwvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBjcmVhdGVSZWYsIFB1cmVDb21wb25lbnQsIFJlYWN0Tm9kZSB9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBNb2RhbCwgTW9kYWxQcm9wcywgRHJhd2VyLCBEcmF3ZXJQcm9wcyB9IGZyb20gXCJhbnRkXCI7XHJcbmltcG9ydCB7IHV0aWxzIH0gZnJvbSBcIkBiai1uc2MvbXNuL2xpYi91dGlsc1wiO1xyXG5pbXBvcnQgY29uZmlnIGZyb20gXCIuLi8uLi9jb25maWdcIjtcclxuaW1wb3J0IHtcclxuICBQbHVzQ2lyY2xlT3V0bGluZWQsXHJcbiAgQ2xvc2VDaXJjbGVPdXRsaW5lZCxcclxuICBDbG9zZU91dGxpbmVkLFxyXG4gIEV4cGFuZE91dGxpbmVkLFxyXG4gIENvbXByZXNzT3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCBCdXR0b24gZnJvbSBcIi4uL2J1dHRvblwiO1xyXG5pbXBvcnQgeyBnZXRMZXNzIH0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubGVzc1wiO1xyXG5pbXBvcnQgeyBnZXRTdG9yYWdlIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmltcG9ydCBDb25maXJtIGZyb20gXCIuL0NvbmZpcm1cIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IHR5cGUgeyBEcmFnZ2FibGVEYXRhLCBEcmFnZ2FibGVFdmVudCB9IGZyb20gXCJyZWFjdC1kcmFnZ2FibGVcIjtcclxuaW1wb3J0IERyYWdnYWJsZSBmcm9tIFwicmVhY3QtZHJhZ2dhYmxlXCI7XHJcbmltcG9ydCBjbHMgZnJvbSBcImNsYXNzbmFtZXNcIjtcclxuXHJcbmludGVyZmFjZSBmb3JtRXhwYW5kIHtcclxuICBjaGFuZ2U/OiBib29sZWFuO1xyXG4gIHZhbGlkPzogYm9vbGVhbjtcclxuICBleHBhbmQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE5zY01vZGFsUG9ycHMgZXh0ZW5kcyBNb2RhbFByb3BzIHtcclxuICB0eXBlPzogXCJtb2RhbFwiIHwgXCJkcmF3ZXJcIiB8IFwiYXV0b1wiO1xyXG4gIGZvcm1FeHBhbmQ/OiBmb3JtRXhwYW5kO1xyXG4gIG9uQnV0dG9uQ2FuY2VsPzogYW55OyAvL+W6lemDqOWPlua2iOaMiemSruWbnuiwg1xyXG4gIGRyYWdhYmxlPzogYm9vbGVhbjsgLy/lvLnmoYbmmK/lkKbnnIvmi5bliqhcclxuICBmb290ZXJCdXR0b24/OiBBcnJheTxhbnk+OyAvL2Zvb3RlciDlhbbku5boh6rlrprkuYnmjInpkq5cclxufVxyXG5cclxuaW50ZXJmYWNlIE5zY01vZGFsSW50ZXJmYWNlXHJcbiAgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnRDbGFzczxOc2NNb2RhbFBvcnBzICYgRHJhd2VyUHJvcHMsIGFueT4ge1xyXG4gIHVzZU1vZGFsOiAoKSA9PiBbYW55LCBSZWFjdC5SZWFjdEVsZW1lbnRdO1xyXG4gIGNvbmZpcm06IHR5cGVvZiBDb25maXJtO1xyXG4gIGluZm86IHR5cGVvZiBNb2RhbC5pbmZvO1xyXG4gIHN1Y2Nlc3M6IHR5cGVvZiBNb2RhbC5zdWNjZXNzO1xyXG4gIGVycm9yOiB0eXBlb2YgTW9kYWwuZXJyb3I7XHJcbiAgd2FybmluZzogdHlwZW9mIE1vZGFsLndhcm5pbmc7XHJcbiAgZGVzdHJveUFsbDogdHlwZW9mIE1vZGFsLmRlc3Ryb3lBbGw7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIE5zY01vZGFsIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxcclxuICBOc2NNb2RhbFBvcnBzICYgRHJhd2VyUHJvcHMsXHJcbiAgYW55XHJcbj4ge1xyXG4gIHN0YXRpYyB1c2VNb2RhbCgpIHtcclxuICAgIC8vIOiwg+eUqCBhbnRkIE1vZGFsIOeahCB1c2VNb2RhbCBob29rXHJcbiAgICBjb25zdCBbbW9kYWwsIGNvbnRleHRIb2xkZXJdID0gTW9kYWwudXNlTW9kYWwoKTtcclxuXHJcbiAgICAvLyDov5Tlm54gY29udGV4dEhvbGRlcu+8jOehruS/neS4iuS4i+aWh+ato+ehruS8oOmAklxyXG4gICAgcmV0dXJuIFttb2RhbCwgY29udGV4dEhvbGRlcl0gYXMgW2FueSwgUmVhY3QuUmVhY3RFbGVtZW50XTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjb25maXJtID0gQ29uZmlybTtcclxuICAvLyBzdGF0aWMgY29uZmlybSA9IE1vZGFsLmNvbmZpcm07XHJcbiAgc3RhdGljIGluZm8gPSBNb2RhbC5pbmZvO1xyXG4gIHN0YXRpYyBzdWNjZXNzID0gTW9kYWwuc3VjY2VzcztcclxuICBzdGF0aWMgZXJyb3IgPSBNb2RhbC5lcnJvcjtcclxuICBzdGF0aWMgd2FybmluZyA9IE1vZGFsLndhcm5pbmc7XHJcbiAgc3RhdGljIGRlc3Ryb3lBbGwgPSBNb2RhbC5kZXN0cm95QWxsO1xyXG4gIC8v6L+U5Zue5YC8XHJcbiAgcmV0dXJuVmFsdWUgPSBudWxsO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xyXG4gICAgc3VwZXIocHJvcHMpO1xyXG4gICAgbGV0IG1vZGFsID0gcHJvcHMudHlwZSB8fCBcImF1dG9cIjtcclxuICAgIGxldCBzdG9yZVByZWZpeCA9IGdldFN0b3JhZ2UoXCJzdG9yZS1wcmUta2V5XCIpO1xyXG4gICAgbGV0IGF1dG9UeXBlID0gZ2V0U3RvcmFnZShcclxuICAgICAgc3RvcmVQcmVmaXggPyBzdG9yZVByZWZpeCArIFwiZm9ybVR5cGVcIiA6IFwiZm9ybVR5cGVcIlxyXG4gICAgKTtcclxuICAgIGF1dG9UeXBlID0gYXV0b1R5cGUgPyBhdXRvVHlwZS5jb250ZW50IDogbnVsbDtcclxuICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgIHZpc2libGU6IGZhbHNlLFxyXG4gICAgICBleHBhbmQ6IGZhbHNlLFxyXG4gICAgICBtb2RhbFR5cGU6IG1vZGFsID09IFwiYXV0b1wiID8gYXV0b1R5cGUgOiBtb2RhbCxcclxuICAgICAgYm91bmRzOiB7IGxlZnQ6IDAsIHRvcDogMCwgYm90dG9tOiAwLCByaWdodDogMCB9LFxyXG4gICAgICBkcmFnZ2VyOiB0cnVlLFxyXG4gICAgfTtcclxuICB9XHJcbiAgZHJhZ2dsZVJlZiA9IGNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcclxuXHJcbiAgb3B0aW9uOiBhbnkgPSB7XHJcbiAgICAvL+Wbnuiwg+S9nOeUqOWfn1xyXG4gICAgc2NvcGU6IHRoaXMsXHJcbiAgICAvL29wZW7kvKDpgJLov4fmnaXnmoTpobXpnaLlj4LmlbBcclxuICAgIHBhcmFtczoge30sXHJcbiAgICAvL+aYvuekuuS5i+WJjeWbnuiwg1xyXG4gICAgYmVmb3JlUmVuZGVyOiBudWxsLFxyXG4gICAgLy/lhbPpl63kuYvliY3lm57osIPvvIzlpoLmnpxyZXR1cm4gZmFsc2XvvIzkuJTnqpflj6PkuI3lhbPpl61cclxuICAgIGNhbGxiYWNrQmVmb3JlQ2xvc2U6IG51bGwsXHJcbiAgICAvL+WFs+mXreWQjuWbnuiwg++8jOW8guatpeaTjeS9nFxyXG4gICAgY2FsbGJhY2s6IG51bGwsXHJcbiAgICAvL+aYvuekuuS5i+WQjuWbnuiwg1xyXG4gICAgYWZ0ZXJSZW5kZXI6IG51bGwsXHJcbiAgfTtcclxuICAvKipcclxuICAgKiDmuLLmn5PlrozmiJBcclxuICAgKiBAcGFyYW0geyp9IG9wdGlvbiAg5pW05pS55Lyg6YCS5a+56LGhXHJcbiAgICovXHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5saXN0ZW5NZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgfVxyXG5cclxuICBjb21wb25lbnREaWRVcGRhdGUoXHJcbiAgICBwcmV2UHJvcHM6IFJlYWRvbmx5PE5zY01vZGFsUG9ycHMgJiBEcmF3ZXJQcm9wcz4sXHJcbiAgICBwcmV2U3RhdGU6IFJlYWRvbmx5PGFueT4sXHJcbiAgICBzbmFwc2hvdD86IGFueVxyXG4gICk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucHJvcHMudHlwZSAhPT0gcHJldlByb3BzLnR5cGUpIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgbW9kYWxUeXBlOiB0aGlzLnByb3BzLnR5cGUgfHwgXCJhdXRvXCIsXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBsaXN0ZW5NZXNzYWdlID0gKGV2KSA9PiB7XHJcbiAgICBsZXQgZGF0YSA9IHt9IGFzIGFueTtcclxuICAgIGlmICh0eXBlb2YgZXYuZGF0YSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGV2LmRhdGEpO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICBpZiAoZGF0YS5ldmVudFR5cGUgPT0gXCJjaGFuZ2VGb3JtVHlwZVwiKSB7XHJcbiAgICAgIGNvbnN0IHsgcGF5bG9hZCB9ID0gZGF0YTtcclxuICAgICAgaWYgKHBheWxvYWQudHlwZSA9PSBcIm1vZGFsXCIgfHwgcGF5bG9hZC50eXBlID09IFwiZHJhd2VyXCIpIHtcclxuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IG1vZGFsVHlwZTogcGF5bG9hZC50eXBlIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuICAvL+aYvuekulxyXG4gIHNob3cob3B0aW9uOiBhbnkgPSB7fSkge1xyXG4gICAgY29uc3QgeyBzY29wZSB9ID0gdGhpcy5vcHRpb247XHJcbiAgICBjb25zdCB7IGJlZm9yZVJlbmRlciwgYWZ0ZXJSZW5kZXIgfSA9IG9wdGlvbjtcclxuICAgIHRoaXMub3B0aW9uID0geyAuLi50aGlzLm9wdGlvbiwgLi4ub3B0aW9uIH07XHJcbiAgICB1dGlscy5jYWxsYmFjayhiZWZvcmVSZW5kZXIsIHNjb3BlKTtcclxuICAgIHRoaXMuc2V0U3RhdGUoeyB2aXNpYmxlOiB0cnVlIH0sICgpID0+IHtcclxuICAgICAgdXRpbHMuY2FsbGJhY2soYWZ0ZXJSZW5kZXIsIHNjb3BlKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy/pmpDol49cclxuICBoaWRlKG9wdGlvbjogYW55ID0ge30pIHtcclxuICAgIGxldCBfdGhpcyA9IHRoaXM7XHJcbiAgICBfdGhpcy5zZXRTdGF0ZSh7IHZpc2libGU6IGZhbHNlIH0pO1xyXG4gIH1cclxuXHJcbiAgLy/ojrflj5bpnIDopoHov5Tlm57nmoTlgLxcclxuICBnZXRSZXR1cm5WYWx1ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLnJldHVyblZhbHVlO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog5YWz6Zet5bim5Zue6LCDXHJcbiAgICovXHJcbiAgY2xvc2UocmVzdWx0PzogYW55LCBidXR0b25DbG9zZSA9IGZhbHNlKSB7XHJcbiAgICB2YXIgX3RoaXMgPSB0aGlzO1xyXG4gICAgLy8gY29uc3QgeyBjYWxsYmFjaywgc2NvcGUsIGNhbGxiYWNrQmVmb3JlQ2xvc2UgfSA9IHRoaXMub3B0aW9uO1xyXG4gICAgY29uc3QgeyBmb3JtRXhwYW5kID0ge30sIG9uQ2FuY2VsLCBvbkJ1dHRvbkNhbmNlbCwgb25DbG9zZSB9ID0gdGhpcy5wcm9wcztcclxuICAgIC8vIGNvbnN0IHIgPSB1dGlscy5jYWxsYmFjayhjYWxsYmFja0JlZm9yZUNsb3NlLCBzY29wZSwgW3RoaXMucmV0dXJuVmFsdWVdKTtcclxuICAgIC8vIGlmIChyICE9PSBmYWxzZSkge1xyXG4gICAgY29uc3QgeyBleHBhbmQgPSBmYWxzZSB9ID0gZm9ybUV4cGFuZDtcclxuICAgIGlmIChleHBhbmQgJiYgZm9ybUV4cGFuZC52YWxpZCAmJiBmb3JtRXhwYW5kLmNoYW5nZSkge1xyXG4gICAgICBDb25maXJtKHtcclxuICAgICAgICBjb250ZW50OiBcIuW9k+WJjeiusOW9leW3suS/ruaUueWwmuacquS/neWtmO+8jOehruWumuimgeaUvuW8g+S/ruaUueWQl++8n1wiLFxyXG4gICAgICAgIG9uT2soKSB7XHJcbiAgICAgICAgICBpZiAob25DYW5jZWwgfHwgb25DbG9zZSkge1xyXG4gICAgICAgICAgICBpZiAoYnV0dG9uQ2xvc2UgJiYgb25CdXR0b25DYW5jZWwpIHtcclxuICAgICAgICAgICAgICBvbkJ1dHRvbkNhbmNlbChyZXN1bHQpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG9uQ2FuY2VsICYmIG9uQ2FuY2VsKHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgb25DbG9zZSAmJiBvbkNsb3NlKHJlc3VsdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIF90aGlzLnNldFN0YXRlKHsgdmlzaWJsZTogZmFsc2UgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAob25DYW5jZWwgfHwgb25DbG9zZSkge1xyXG4gICAgICAgIGlmIChidXR0b25DbG9zZSAmJiBvbkJ1dHRvbkNhbmNlbCkge1xyXG4gICAgICAgICAgb25CdXR0b25DYW5jZWwocmVzdWx0KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgb25DYW5jZWwgJiYgb25DYW5jZWwocmVzdWx0KTtcclxuICAgICAgICAgIG9uQ2xvc2UgJiYgb25DbG9zZShyZXN1bHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBfdGhpcy5zZXRTdGF0ZSh7IHZpc2libGU6IGZhbHNlIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICAvLyB9XHJcbiAgICAvLyB1dGlscy5jYWxsYmFjayhjYWxsYmFjaywgc2NvcGUsIFtfdGhpcy5yZXR1cm5WYWx1ZV0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICog6I635Y+W5Y+C5pWw77yM5aaC5p6ca2V55LiN5Lyg6YCS77yM5LiU6I635Y+W5YWo6YOoXHJcbiAgICogQHBhcmFtIHtTdHJpbmd9IGtleVxyXG4gICAqL1xyXG4gIGdldFBhcmFtcyhrZXkpIHtcclxuICAgIGlmIChrZXkpIHJldHVybiB0aGlzLm9wdGlvbi5wYXJhbXNba2V5XTtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbi5wYXJhbXM7XHJcbiAgfVxyXG4gIG9uU3RhcnQoX2V2ZW50OiBEcmFnZ2FibGVFdmVudCwgdWlEYXRhOiBEcmFnZ2FibGVEYXRhKSB7XHJcbiAgICBjb25zdCB7IGNsaWVudFdpZHRoLCBjbGllbnRIZWlnaHQgfSA9IHdpbmRvdy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XHJcbiAgICBjb25zdCB0YXJnZXRSZWN0ID0gdGhpcy5kcmFnZ2xlUmVmLmN1cnJlbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgaWYgKCF0YXJnZXRSZWN0KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBib3VuZHM6IHtcclxuICAgICAgICBsZWZ0OiAtdGFyZ2V0UmVjdC5sZWZ0ICsgdWlEYXRhLngsXHJcbiAgICAgICAgcmlnaHQ6IGNsaWVudFdpZHRoIC0gKHRhcmdldFJlY3QucmlnaHQgLSB1aURhdGEueCksXHJcbiAgICAgICAgdG9wOiAtdGFyZ2V0UmVjdC50b3AgKyB1aURhdGEueSxcclxuICAgICAgICBib3R0b206IGNsaWVudEhlaWdodCAtICh0YXJnZXRSZWN0LmJvdHRvbSAtIHVpRGF0YS55KSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcmVuZGVyKCkge1xyXG4gICAgY29uc3Qge1xyXG4gICAgICB0eXBlID0gXCJtb2RhbFwiLFxyXG4gICAgICBjbG9zYWJsZSxcclxuICAgICAgLy8gdGl0bGU6IG9yZ3RpdGxlLFxyXG4gICAgICBva0J1dHRvblByb3BzID0ge30sXHJcbiAgICAgIGNhbmNlbEJ1dHRvblByb3BzID0ge30sXHJcbiAgICAgIGZvcm1FeHBhbmQgPSB7fSxcclxuICAgICAgZHJhZ2FibGUgPSB0cnVlLFxyXG4gICAgICBmb290ZXJCdXR0b24gPSBbXSxcclxuICAgICAgLi4ucGFyYW1zXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGxldCBwcm9wczogYW55ID0geyAuLi5wYXJhbXMgfTtcclxuICAgIGxldCB7IG1vdW50RWxlbWVudElkIH0gPSBjb25maWcoKTtcclxuICAgIGlmIChtb3VudEVsZW1lbnRJZCkge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBnZXRDb250YWluZXI6ICgpID0+IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG1vdW50RWxlbWVudElkKSxcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmIChkcmFnYWJsZSAmJiB0eXBlID09IFwibW9kYWxcIikge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBtb2RhbFJlbmRlcjogKG1vZGFsKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8RHJhZ2dhYmxlXHJcbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e3RoaXMuc3RhdGUuZHJhZ2dlcn1cclxuICAgICAgICAgICAgICBib3VuZHM9e3RoaXMuc3RhdGUuYm91bmRzfVxyXG4gICAgICAgICAgICAgIG9uU3RhcnQ9eyhldmVudCwgdWlEYXRhKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uU3RhcnQoZXZlbnQsIHVpRGF0YSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxkaXYgcmVmPXt0aGlzLmRyYWdnbGVSZWZ9Pnttb2RhbH08L2Rpdj5cclxuICAgICAgICAgICAgPC9EcmFnZ2FibGU+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgLi4ucHJvcHMsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdGl0bGUgPSAoXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGVcIiksIHtcclxuICAgICAgICAgIFtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGUtZHJhZ2dlclwiKV06XHJcbiAgICAgICAgICAgIGRyYWdhYmxlICYmIHR5cGUgPT0gXCJtb2RhbFwiLFxyXG4gICAgICAgIH0pfVxyXG4gICAgICAgIG9uTW91c2VPdmVyPXsoKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5zdGF0ZS5kcmFnZ2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgIGRyYWdnZXI6IGZhbHNlLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9fVxyXG4gICAgICAgIG9uTW91c2VPdXQ9eygpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBkcmFnZ2VyOiB0cnVlLFxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGUtaWNvbnNcIil9PlxyXG4gICAgICAgICAgeyF0aGlzLnN0YXRlLmV4cGFuZCAmJiBmb3JtRXhwYW5kLmV4cGFuZCAmJiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHsgZXhwYW5kOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtdGl0bGUtaWNvblwiKX1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxFeHBhbmRPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgICB7dGhpcy5zdGF0ZS5leHBhbmQgJiYgZm9ybUV4cGFuZC5leHBhbmQgJiYgKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7IGV4cGFuZDogZmFsc2UgfSk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC10aXRsZS1pY29uXCIpfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPENvbXByZXNzT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge2Nsb3NhYmxlICE9PSBmYWxzZSAmJiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC10aXRsZS1pY29uXCIpfVxyXG4gICAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpblJpZ2h0OiAwIH19XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8Q2xvc2VPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICl9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC10aXRsZS1jb250ZW50XCIpfT5cclxuICAgICAgICAgIHt0aGlzLnByb3BzLnRpdGxlfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgICBjb25zdCB7IG1vZGFsQnV0dG9uIH0gPSBjb25maWcoKTtcclxuICAgIGNvbnN0IGZvb3RlciA9IChcclxuICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC1mb290ZXJcIil9PlxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIG9uQ2xpY2s9e3RoaXMuY2xvc2UuYmluZCh0aGlzLCB7fSwgdHJ1ZSl9XHJcbiAgICAgICAgICBpY29uPXs8Q2xvc2VDaXJjbGVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgIHsuLi5tb2RhbEJ1dHRvbi5jYW5jbGVCdXR0b25Qcm9wc31cclxuICAgICAgICAgIHsuLi5jYW5jZWxCdXR0b25Qcm9wc31cclxuICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsLWZvb3Rlci1idXR0b24tbWFyZ2luXCIpfVxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt0aGlzLnByb3BzLmNhbmNlbFRleHQgPyB0aGlzLnByb3BzLmNhbmNlbFRleHQgOiBcIuWPlua2iFwifVxyXG4gICAgICAgIDwvQnV0dG9uPlxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIHR5cGU9XCJwcmltYXJ5XCJcclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgcHJvcHMub25PayAmJiBwcm9wcy5vbk9rKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgaWNvbj17PFBsdXNDaXJjbGVPdXRsaW5lZCAvPn1cclxuICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsLWZvb3Rlci1idXR0b24tbWFyZ2luXCIpfVxyXG4gICAgICAgICAgey4uLm1vZGFsQnV0dG9uLm9rQnV0dG9uUHJvcHN9XHJcbiAgICAgICAgICB7Li4ub2tCdXR0b25Qcm9wc31cclxuICAgICAgICA+XHJcbiAgICAgICAgICB7dGhpcy5wcm9wcy5va1RleHQgPyB0aGlzLnByb3BzLm9rVGV4dCA6IFwi5L+d5a2YXCJ9XHJcbiAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAge2Zvb3RlckJ1dHRvbi5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJuc2MtbW9kYWwtZm9vdGVyLWJ1dHRvbi1tYXJnaW5cIil9XHJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtpdGVtfVxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICAgIGlmIChmb3JtRXhwYW5kLmV4cGFuZCkge1xyXG4gICAgICBwcm9wcyA9IHtcclxuICAgICAgICBmb290ZXI6IGZvb3RlcixcclxuICAgICAgICAuLi5wcm9wcyxcclxuICAgICAgICB0aXRsZTogdGl0bGUsXHJcbiAgICAgICAgY2xvc2FibGU6IGZhbHNlLFxyXG4gICAgICAgIHN0eWxlOiB7IG1heFdpZHRoOiBcIjEwMHZ3XCIgfSxcclxuICAgICAgICB3aWR0aDogdGhpcy5zdGF0ZS5leHBhbmQgPyBcIjEwMHZ3XCIgOiBwcm9wcy53aWR0aCxcclxuICAgICAgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHByb3BzID0ge1xyXG4gICAgICAgIGZvb3RlcjogZm9vdGVyLFxyXG4gICAgICAgIC4uLnByb3BzLFxyXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICBjbG9zYWJsZTogZmFsc2UsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zdGF0ZS5tb2RhbFR5cGUgPT0gXCJkcmF3ZXJcIikge1xyXG4gICAgICBsZXQgb2xkUHJvcHMgPSB7IC4uLnByb3BzIH07XHJcbiAgICAgIGxldCBuZXdEcmF3ZXJQcm9wcyA9IG9taXQob2xkUHJvcHMsIFtcIm9uT2tcIiwgXCJva0J1dHRvblByb3BzXCJdKTtcclxuICAgICAgcmV0dXJuIChcclxuICAgICAgICA8RHJhd2VyXHJcbiAgICAgICAgICBvcGVuPXt0aGlzLnN0YXRlLnZpc2libGV9XHJcbiAgICAgICAgICBvbkNsb3NlPXsoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcclxuICAgICAgICAgIH19XHJcbiAgICAgICAgICB7Li4ubmV3RHJhd2VyUHJvcHN9XHJcbiAgICAgICAgLz5cclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgPE1vZGFsXHJcbiAgICAgICAgICBvcGVuPXt0aGlzLnN0YXRlLnZpc2libGV9XHJcbiAgICAgICAgICBvbkNhbmNlbD17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgb25Paz17KCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgb2tUZXh0PXtcIuehruWumlwifVxyXG4gICAgICAgICAgY2FuY2VsVGV4dD17XCLlj5bmtohcIn1cclxuICAgICAgICAgIGNlbnRlcmVkPXt0cnVlfVxyXG4gICAgICAgICAgY2xhc3NOYW1lPXtcclxuICAgICAgICAgICAgdGhpcy5zdGF0ZS5leHBhbmRcclxuICAgICAgICAgICAgICA/IGdldExlc3Moc3R5bGVzLCBcIm5zYy1tb2RhbC1hbGxzcmVlblwiKVxyXG4gICAgICAgICAgICAgIDogZ2V0TGVzcyhzdHlsZXMsIFwibnNjLW1vZGFsXCIpXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICAvLyB0aXRsZT17Zm9ybUV4cGFuZCA/IHRpdGxlIDogdGhpcy5wcm9wcy50aXRsZX1cclxuICAgICAgICAgIHsuLi5wcm9wc31cclxuICAgICAgICAgIGFmdGVyQ2xvc2U9eygpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgICAgICAgZXhwYW5kOiBmYWxzZSxcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgIC8+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFLLElBQUlDLFNBQVMsRUFBRUMsYUFBYSxRQUFtQixPQUFPO0FBRWxFLFNBQVNDLEtBQUssUUFBUSx1QkFBdUI7QUFDN0MsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsU0FDRUMsa0JBQWtCLEVBQ2xCQyxtQkFBbUIsRUFDbkJDLGFBQWEsRUFDYkMsY0FBYyxFQUNkQyxnQkFBZ0IsUUFDWCxtQkFBbUI7QUFDMUIsT0FBT0MsTUFBTSxNQUFNLFdBQVc7QUFDOUIsU0FBU0MsT0FBTyxRQUFRLGFBQWE7QUFDckMsT0FBT0MsTUFBTSxNQUFNLGNBQWM7QUFDakMsU0FBU0MsVUFBVSxRQUFRLG1CQUFtQjtBQUM5QyxPQUFPQyxPQUFPLE1BQU0sV0FBVztBQUMvQixPQUFPQyxJQUFJLE1BQU0sU0FBUztBQUUxQixPQUFPQyxTQUFTLE1BQU0saUJBQWlCO0FBQ3ZDLE9BQU9DLEdBQUcsTUFBTSxZQUFZO0FBMkI1QixlQUFlLE1BQU1DLFFBQVEsU0FBU2hCLGFBQWEsQ0FHakQ7RUFDQSxPQUFPaUIsUUFBUUEsQ0FBQSxFQUFHO0lBQ2hCO0lBQ0EsTUFBTSxDQUFDQyxLQUFLLEVBQUVDLGFBQWEsQ0FBQyxHQUFHQyxNQUFBLENBQU1ILFFBQVEsQ0FBQyxDQUFDOztJQUUvQztJ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