nsc-react-component 2.2.21 → 2.2.22

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.
@@ -874,21 +874,8 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
874
874
  wrap: true
875
875
  }, /*#__PURE__*/React.createElement("div", {
876
876
  className: getLess(styles, "header")
877
- }, /*#__PURE__*/React.createElement(Col, {
878
- md: {
879
- span: 12
880
- },
881
- sm: {
882
- span: 12
883
- },
884
- lg: {
885
- span: 18
886
- }
887
877
  }, /*#__PURE__*/React.createElement("div", {
888
- className: cls(_defineProperty({}, getLess(styles, "form"), !showLeft))
889
- }, /*#__PURE__*/React.createElement(Row, {
890
- gutter: 24,
891
- wrap: true
878
+ className: cls(getLess(styles, "form"))
892
879
  }, /*#__PURE__*/React.createElement(Form, {
893
880
  ref: this.searchRef,
894
881
  labelCol: {},
@@ -910,7 +897,7 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
910
897
  span: 24
911
898
  },
912
899
  lg: {
913
- span: 8
900
+ span: 6
914
901
  },
915
902
  key: index,
916
903
  style: {
@@ -922,18 +909,18 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
922
909
  }, getNode(item.type, _objectSpread(_objectSpread({}, item.props), {}, {
923
910
  placeholder: "\u8BF7\u8F93\u5165".concat(item.label)
924
911
  }))));
925
- }))))), /*#__PURE__*/React.createElement(Col, {
912
+ }), /*#__PURE__*/React.createElement(Col, {
926
913
  md: {
927
914
  span: 12
928
915
  },
929
916
  sm: {
930
- span: 12
917
+ span: 24
931
918
  },
932
919
  lg: {
933
920
  span: 6
934
921
  },
935
922
  style: {
936
- padding: 0
923
+ paddingRight: 0
937
924
  }
938
925
  }, /*#__PURE__*/React.createElement("div", {
939
926
  className: getLess(styles, "search-buttons"),
@@ -953,7 +940,7 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
953
940
  type: iconType.refresh
954
941
  })
955
942
  }, "\u91CD\u7F6E"), searchForms.length > 3 && /*#__PURE__*/React.createElement("div", {
956
- className: getLess(styles, 'a_style'),
943
+ className: getLess(styles, "a_style"),
957
944
  onClick: function onClick() {
958
945
  var expand = _this3.state.expand;
959
946
 
@@ -961,7 +948,7 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
961
948
  expand: !expand
962
949
  });
963
950
  }
964
- }, this.state.expand ? "收起" : "展开", this.state.expand ? /*#__PURE__*/React.createElement(UpOutlined, null) : /*#__PURE__*/React.createElement(DownOutlined, null)))))), showToolButton && this.renderToolButtons(selfButtons), /*#__PURE__*/React.createElement("div", {
951
+ }, this.state.expand ? "收起" : "展开", this.state.expand ? /*#__PURE__*/React.createElement(UpOutlined, null) : /*#__PURE__*/React.createElement(DownOutlined, null)))))))), showToolButton && this.renderToolButtons(selfButtons), /*#__PURE__*/React.createElement("div", {
965
952
  className: cls(getLess(styles, "table"))
966
953
  }, /*#__PURE__*/React.createElement(Table, _extends({
967
954
  ref: this.tableRef,
@@ -1007,4 +994,4 @@ var BasePage = /*#__PURE__*/function (_PureComponent) {
1007
994
  }(PureComponent);
1008
995
 
1009
996
  export default BasePage;
1010
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvQmFzZVBhZ2UvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIlRhYmxlIiwiVHJlZSIsIkZvcm0iLCJCdXR0b24iLCJNb2RhbCIsIlBvcG92ZXIiLCJtZXNzYWdlIiwiSWNvbiIsImljb25UeXBlIiwiRWRpdG9yRm9ybSIsImNscyIsInN0eWxlcyIsIkNvbCIsIlJvdyIsIkRvd25PdXRsaW5lZCIsIlVwT3V0bGluZWQiLCJFeWVPdXRsaW5lZCIsIkVkaXRPdXRsaW5lZCIsIlJpZ2h0T3V0bGluZWQiLCJnZXRMZXNzIiwiZ2V0Tm9kZSIsInJlcXVlc3QiLCJvbWl0IiwiY29uZmlnIiwiZ2V0U3RvcmFnZSIsIkJhc2VQYWdlIiwicHJvcHMiLCJjcmVhdGVSZWYiLCJldiIsImRhdGEiLCJKU09OIiwicGFyc2UiLCJfdGhpcyIsImV2ZW50VHlwZSIsInBheWxvYWQiLCJ0eXBlIiwic2V0U3RhdGUiLCJmb3JtVHlwZSIsInNpemUiLCJ0YWJsZVNpemUiLCJjaGVja2VkVHJlZUtleXMiLCJzdGF0ZSIsIm5hbWUiLCJ1c2VyVHlwZSIsImFjY291bnQiLCJ2YWx1ZSIsImRlcHRJZCIsInRhYmxlTG9hZCIsInN0b3JlUHJlZml4IiwiY29udGVudCIsInNlbGVjdGVkUm93S2V5cyIsInNlbGVjdGVkUm93RGF0YXMiLCJ0cmVlU2VsZWN0ZWRLZXkiLCJleHBhbmQiLCJpbml0RGF0YSIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImVkaXRvcmZsYWciLCJlZGl0b3JSZWYiLCJjdXJyZW50Iiwic2hvdyIsImhpZGVGb3JtIiwiZGVsZXRlVXJsIiwib25EZWxldGUiLCJkZWxldGVQYXJhbXMiLCJsZW5ndGgiLCJ3YXJuaW5nIiwiRXJyb3IiLCJjb25maXJtIiwidGl0bGUiLCJva1RleHQiLCJjYW5jZWxUZXh0Iiwib25PayIsImRlZmF1bHRQYXJhbXMiLCJtZXRob2QiLCJwYXJhbXMiLCJpZHMiLCJqb2luIiwicmVxdWVzdFBhcmFtcyIsInRoZW4iLCJyZXMiLCJjb2RlIiwic3VjY2VzcyIsImVycm9yIiwiY2F0Y2giLCJjb25zb2xlIiwibG9nIiwidGFibGVSZWYiLCJzdG9yZSIsImxvYWQiLCJvblNlYXJjaCIsImZyb21WYWx1ZSIsInNlYXJjaFJlZiIsImdldEZpZWxkc1ZhbHVlIiwicmVsb2FkIiwicmVjb3JkIiwic2VsZWN0ZWQiLCJuZXdTZWxlY3RlZFJvd0tleXMiLCJuZXdTZWxlY3RlZFJvd0RhdGFzIiwiaWQiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJzcGxpY2UiLCJzZWxlY3RlZFJvd3MiLCJjaGFuZ2VSb3dzIiwibmV3aWRzIiwibmV3ZGF0YXMiLCJjaGFuZ2VJZHMiLCJpbmRleE9mIiwicHVzaCIsInRvb2xidXR0b25zIiwiZmxhZyIsImNoaWxkcmVuIiwicGFnZVR5cGUiLCJvbkNsaWNrIiwiaWNvbiIsIm1hcmdpbkxlZnQiLCJjb2x1bW5CdXR0b25zIiwiZWRpdG9yRm9ybSIsImJ1dHRvbnMiLCJuZXdCdXR0b25zIiwicmVjb3JkU2hvdyIsImV2YWwiLCJzZWxlY3RlZEtleXMiLCJzZWxlY3RlZE5vZGVzIiwia2V5d29yZCIsInRyZWVQcm9wcyIsInNlYXJjaEtleSIsInNlYXJjaEZpZWxkIiwiaXNMZWFmIiwiZGF0YXJlZiIsImF0dHJpYnV0ZSIsInJlc2V0RmllbGRzIiwidGV4dCIsIm5ld1RleHQiLCJpIiwibGFiZWwiLCJjb2x1bW5zIiwic2hvd1NlYXJjaCIsInN1Ym1pdFVybCIsInRhYmxlUHJvcHMiLCJzaG93TGVmdCIsInN1Ym1pdFBhcmFtcyIsInNob3dUb29sQnV0dG9uIiwib25TaG93Rm9ybSIsImZvcm1DaGFuZ2VWYWxpZCIsImNsYXNzTmFtZSIsImFjdGlvbkNvbHVtbnMiLCJmaWx0ZXJDb2x1bW4iLCJhY3Rpb25Db2x1bW4iLCJzaG93Um93U2VsZWN0aW9uIiwiY29sdW1uT3JkZXIiLCJvdGhlcnRhYmxlUGFyYW1zIiwidHJlZVN0b3JlIiwidHJlZVNlYXJjaCIsInRpdGxlQWxpYXMiLCJvdGhlcnRyZWVQYXJhbXMiLCJ0YWJsZVBhcmFtcyIsInJvd1NlbGVjdGlvbiIsIm9uU2VsZWN0Iiwicm93U2VsZWN0aW9uT25TZWxlY3QiLCJiaW5kIiwib25TZWxlY3RBbGwiLCJyb3dTZWxlY3Rpb25PblNlbGVjdEFsbCIsImNvbHVtbldpZHRoIiwidGFibGVDb2x1bW4iLCJzZWFyY2hGb3JtcyIsImVkaXRvckZvcm1zIiwiZGVmYXVsdFZhbHVlIiwidGVtcCIsInNlYXJjaCIsImZpZWxkIiwiZGF0YUluZGV4IiwiZWRpdG9yIiwicnVsZXMiLCJzcGFuIiwiZGljdE5hbWUiLCJ1bmRlZmluZWQiLCJjb2x1bW5TZWFyY2giLCJmaWx0ZXJQcm9wcyIsInRlbXBQcm9wIiwic3R5bGUiLCJyZW5kZXIiLCJnZXRUZXh0IiwiZWxsaXBzaXMiLCJjb2x1bW5TaG93Iiwic2VsZkJ1dHRvbnMiLCJzaG93Rm9ybSIsImFkZCIsImRlbGV0ZTMiLCJBcnJheSIsImlzQXJyYXkiLCJhbGlnbiIsIndpZHRoIiwiZml4ZWQiLCJyZW5kZXJDbG91bW5CdXR0b24iLCJoZWFkZXJDb3VudCIsInJlYWNvcmQiLCJwYWdpbmF0aW9uIiwic2Nyb2xsIiwieCIsInkiLCJkaXNwbGF5IiwidHJlZVNlbGVjdCIsInBhZGRpbmdSaWdodCIsInBsYWNlaG9sZGVyIiwicGFkZGluZyIsIm1hcmdpblRvcCIsInJlc2V0U2VhcmNoIiwicmVmcmVzaCIsInJlbmRlclRvb2xCdXR0b25zIiwiZXhwYW5kSWNvbiIsImV4cGFuZGVkIiwib25FeHBhbmQiLCJlIiwiY2hpbGROb2RlcyIsInRhYmxlUmVsb2FkIiwib25TdWJtaXQiLCJvbkhpZGVGb3JtIiwib25Gb3JtQ2hhbmdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE9BQU9BLEtBQVAsSUFB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QUFRLEVBQUUsS0FBS3ZILEtBQUwsQ0FBV2tNLFFBTnZCO0FBT0UsUUFBQSxZQUFZLEVBQUVqRCxZQVBoQjtBQVFFLFFBQUEsVUFBVSxFQUFFLEtBQUtqSixLQUFMLENBQVdtTSxVQVJ6QjtBQVNFLFFBQUEsWUFBWSxFQUFFLEtBQUtuTSxLQUFMLENBQVdvTSxZQVQzQjtBQVVFLFFBQUEsUUFBUSxFQUFFLEtBQUtwTSxLQUFMLENBQVdXLFFBQVgsSUFBdUIsS0FBS0ksS0FBTCxDQUFXSixRQVY5QztBQVdFLFFBQUEsV0FBVyxFQUFFK0c7QUFYZixRQTlJSixDQURGO0FBK0pEOzs7O0VBenhCb0JySixhOztBQTJ4QnZCLGVBQWUwQixRQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IFB1cmVDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IFRhYmxlIGZyb20gXCIuLi8uLi9iYXNlL3RhYmxlXCI7XHJcbmltcG9ydCBUcmVlIGZyb20gXCIuLi8uLi9iYXNlL3RyZWVcIjtcclxuaW1wb3J0IEZvcm0gZnJvbSBcIi4uLy4uL2Jhc2UvZm9ybVwiO1xyXG5pbXBvcnQgQnV0dG9uIGZyb20gXCIuLi8uLi9iYXNlL2J1dHRvblwiO1xyXG5pbXBvcnQgTW9kYWwgZnJvbSBcIi4uLy4uL2Jhc2UvbW9kYWxcIjtcclxuaW1wb3J0IFBvcG92ZXIgZnJvbSBcIi4uLy4uL2Jhc2UvcG9wb3ZlclwiO1xyXG5pbXBvcnQgbWVzc2FnZSBmcm9tIFwiLi4vLi4vYmFzZS9tZXNzYWdlXCI7XHJcbmltcG9ydCBJY29uIGZyb20gXCIuLi8uLi9iYXNlL2NvbW1vbi9JY29uRm9udFwiO1xyXG5pbXBvcnQgeyBpY29uVHlwZSB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcclxuaW1wb3J0IEVkaXRvckZvcm0gZnJvbSBcIi4vRm9ybVwiO1xyXG5pbXBvcnQgY2xzIGZyb20gXCJjbGFzc25hbWVzXCI7XHJcbmltcG9ydCBzdHlsZXMgZnJvbSBcIi4vaW5kZXgubW9kdWxlLmxlc3NcIjtcclxuaW1wb3J0IFN0b3JlLCB7IFBhZ2VTdG9yZSwgU3RvcmVQcm9wcyB9IGZyb20gXCJAYmotbnNjL21zblwiO1xyXG5pbXBvcnQgQ29sIGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvQ29sXCI7XHJcbmltcG9ydCBSb3cgZnJvbSBcIi4uLy4uL2Jhc2UvZ3JpZC9Sb3dcIjtcclxuaW1wb3J0IHtcclxuICBEb3duT3V0bGluZWQsXHJcbiAgVXBPdXRsaW5lZCxcclxuICBFeWVPdXRsaW5lZCxcclxuICBFZGl0T3V0bGluZWQsXHJcbiAgUmlnaHRPdXRsaW5lZCxcclxufSBmcm9tIFwiQGFudC1kZXNpZ24vaWNvbnNcIjtcclxuaW1wb3J0IHsgZ2V0TGVzcywgZ2V0Tm9kZSB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xyXG5pbXBvcnQgcmVxdWVzdCBmcm9tIFwibnNjLXJlcXVlc3RcIjtcclxuaW1wb3J0IG9taXQgZnJvbSBcIm9taXQuanNcIjtcclxuaW1wb3J0IGNvbmZpZyBmcm9tIFwiLi4vLi4vY29uZmlnXCI7XHJcbmltcG9ydCB7IGdldFN0b3JhZ2UgfSBmcm9tIFwiQGJqLW5zYy9mdW5jdGlvbnNcIjtcclxuaW50ZXJmYWNlIFRhYmxlUHJvcHMge1xyXG4gIGFjdGlvbkNvbHVtbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65pON5L2c5YiXXHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIGZpbHRlckNvbHVtbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S66L+H5ruk5oyJ6ZKuXHJcbiAgc2hvd1Jvd1NlbGVjdGlvbj86IGJvb2xlYW47IC8v5piv5ZCm6KGo5qC85Yu+6YCJ5YiXXHJcbiAgcGFnaW5hdGlvbj86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65YiG6aG1XHJcbiAgY29sdW1uT3JkZXI/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuihqOagvOW6j+WIl1xyXG4gIFtwcm9wc05hbWU6IHN0cmluZ106IGFueTtcclxufVxyXG5pbnRlcmZhY2UgVHJlZVByb3BzIHtcclxuICBzdG9yZT86IFN0b3JlUHJvcHM7XHJcbiAgc2hvd1NlYXJjaD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65pCc57Si5qGGXHJcbiAgc2VhcmNoS2V5Pzogc3RyaW5nOyAvL+aQnOe0onZhbHVl5a+55bqU55qEa2V5XHJcbiAgc2VhcmNoRmllbGQ/OiBzdHJpbmc7IC8v5p+l6K+i5a+55bqU55qEa2V5XHJcbiAgdGl0bGVBbGlhcz86IHN0cmluZzsgLy/moJF0aXRsZeWvueW6lOeahGtleSzpu5jorqR0aXRsZVxyXG4gIG5vZGVQb3Jwcz86IG9iamVjdDtcclxuICBbcHJvcHNOYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuaW50ZXJmYWNlIE5TQ0Jhc2VCYWdlUHJvcHMge1xyXG4gIHNob3dTZWFyY2g/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuWktOmDqOaQnOe0ouagj1xyXG4gIHRhYmxlUHJvcHM/OiBUYWJsZVByb3BzOyAvL+ihqOagvOWPguaVsFxyXG4gIHRyZWVQcm9wcz86IFRyZWVQcm9wczsgLy/lt6bkvqfmoJHlj4LmlbBcclxuICBzdWJtaXRQYXJhbXM/OiBPYmplY3Q7IC8v5re75Yqg5Y+C5pWw77yM6buY6K6kbW90aG9kOnBvc3TvvIwg5Y+C5pWw6YCa6L+HZGF0YeS8oOmAklxyXG4gIHN1Ym1pdFVybD86IHN0cmluZztcclxuICBvblN1Ym1pdD86ICh2YWx1ZT86IGFueSwgbGFiZWw/OiBhbnkpID0+IHZvaWQ7XHJcbiAgY29sdW1uczogQXJyYXk8T2JqZWN0PjtcclxuICBzaG93TGVmdD86IGJvb2xlYW47IC8v5piv5ZCm5pi+56S65bem5L6n55uu5b2V5qCRXHJcbiAgc2hvd1Rvb2xCdXR0b24/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuaMiemSruagj1xyXG4gIGVkaXRvckZvcm0/OiBib29sZWFuOyAvL+aYr+WQpumcgOimgeihqOWNleWKn+iDvSAsIOS4umZhbHNlIOe8lui+ke+8jOafpeeci++8jOaWsOWinuWKn+iDveWdh+S4jeWPr+eUqFxyXG4gIGRlbGV0ZVVybD86IHN0cmluZzsgLy/liKDpmaR1cmxcclxuICBvbkRlbGV0ZT86IChzZWxlY3RlZEtleXM/OiBBcnJheTxhbnk+KSA9PiB2b2lkOyAvL+WIoOmZpOWPguaVsO+8jOm7mOiupG1vdGhvZDpwb3N077yMIOWPguaVsOmAmui/h2lkc+aLvOaOpeS8oOmAkue7meWQjuWPsFxyXG4gIGRlbGV0ZVBhcmFtcz86IE9iamVjdDtcclxuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcclxuICBvblNlYXJjaD86ICh2YWx1ZT86IGFueSkgPT4gdm9pZDtcclxuICBpbml0RGF0YT86IGFueTsgLy/liJ3lp4vljJblm57osIPlh73mlbDvvIzlnKhjb21wb25lbnREaWRNb3VudOS4reiwg+eUqFxyXG4gIGJ1dHRvbnM/OiBBcnJheTxzdHJpbmc+OyAvL+aMiemSrumbhuWQiCAgWydhZGQnLCdkZWxldGUnLCdzZWFyY2gnLCdlZGl0b3InXVxyXG4gIG9uU2hvd0Zvcm0/OiAodmFsdWU/OiBhbnksIGVkaXRvckZsYWc/OiBzdHJpbmcpID0+IHZvaWQ7IC8v5omT5byA6KGo5Y2V5Zue6LCDXHJcbiAgb25IaWRlRm9ybT86ICgpID0+IHZvaWQ7IC8v5omT5byA6KGo5Y2V5Zue6LCDXHJcbiAgb25Gb3JtQ2hhbmdlPzogKGNoYW5nZWRWYWx1ZXM/OiBhbnksIGFsbFZhbHVlcz86IGFueSkgPT4gdm9pZDsgLy/ooajljZVvbkNoYW5nZeWbnuiwg1xyXG4gIGZvcm1UeXBlPzogXCJtb2RhbFwiIHwgXCJkcmF3ZXJcIjtcclxuICBmb3JtQ2hhbmdlVmFsaWQ/OiBib29sZWFuOyAvL+ihqOWNleagoemqjFxyXG4gIGNsYXNzTmFtZT86IGFueTtcclxuICBhY3Rpb25Db2x1bW5zPzogQXJyYXk8YW55PjtcclxufVxyXG5cclxuY2xhc3MgQmFzZVBhZ2UgZXh0ZW5kcyBQdXJlQ29tcG9uZW50PE5TQ0Jhc2VCYWdlUHJvcHMsIGFueT4ge1xyXG4gIHRhYmxlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICB0cmVlUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBzZWFyY2hSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG4gIGVkaXRvclJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBhbnkpIHtcclxuICAgIHN1cGVyKHByb3BzKTtcclxuICAgIGxldCB7IHN0b3JlUHJlZml4IH0gPSBjb25maWcoKTtcclxuICAgIGxldCB0eXBlID0gZ2V0U3RvcmFnZShcclxuICAgICAgc3RvcmVQcmVmaXggPyBzdG9yZVByZWZpeCArIFwiLVwiICsgXCJmb3JtVHlwZVwiIDogXCJmb3JtVHlwZVwiXHJcbiAgICApO1xyXG4gICAgdHlwZSA9IHR5cGU/LmNvbnRlbnQ7XHJcbiAgICBsZXQgc2l6ZSA9IGdldFN0b3JhZ2UoXHJcbiAgICAgIHN0b3JlUHJlZml4ID8gc3RvcmVQcmVmaXggKyBcIi1cIiArIFwidGFibGVTaXplXCIgOiBcInRhYmxlU2l6ZVwiXHJcbiAgICApO1xyXG4gICAgdHlwZSA9IHR5cGU/LmNvbnRlbnQ7XHJcbiAgICBzaXplID0gc2l6ZT8uY29udGVudDtcclxuICAgIHRoaXMuc3RhdGUgPSB7XHJcbiAgICAgIHR5cGU6IFwiYWRkXCIsXHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogW10sXHJcbiAgICAgIHNlbGVjdGVkUm93RGF0YXM6IFtdLFxyXG4gICAgICB0cmVlU2VsZWN0ZWRLZXk6IFwiXCIsXHJcbiAgICAgIGV4cGFuZDogZmFsc2UsXHJcbiAgICAgIGZvcm1UeXBlOiB0eXBlIHx8IFwibW9kYWxcIixcclxuICAgICAgdGFibGVTaXplOiBzaXplIHx8IFwiZGVmYXVsdFwiLFxyXG4gICAgfTtcclxuICB9XHJcbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XHJcbiAgICBjb25zdCB7IGluaXREYXRhIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgaW5pdERhdGEgJiYgaW5pdERhdGEoKTtcclxuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwibWVzc2FnZVwiLCB0aGlzLmxpc3Rlbk1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5saXN0ZW5NZXNzYWdlKTtcclxuICB9XHJcbiAgbGlzdGVuTWVzc2FnZSA9IChldikgPT4ge1xyXG4gICAgY29uc3QgZGF0YSA9IHR5cGVvZiBldi5kYXRhID09PSBcInN0cmluZ1wiID8gSlNPTi5wYXJzZShldi5kYXRhKSA6IGV2LmRhdGE7XHJcbiAgICBsZXQgX3RoaXMgPSB0aGlzO1xyXG4gICAgaWYgKGRhdGEuZXZlbnRUeXBlID09IFwiY2hhbmdlRm9ybVR5cGVcIikge1xyXG4gICAgICBjb25zdCB7IHBheWxvYWQgfSA9IGRhdGE7XHJcbiAgICAgIGlmIChwYXlsb2FkLnR5cGUgPT0gXCJtb2RhbFwiIHx8IHBheWxvYWQudHlwZSA9PSBcImRyYXdlclwiKSB7XHJcbiAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyBmb3JtVHlwZTogcGF5bG9hZC50eXBlIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoZGF0YS5ldmVudFR5cGUgPT0gXCJjaGFuZ2VUYWJsZVNpemVcIikge1xyXG4gICAgICBjb25zdCB7IHBheWxvYWQgfSA9IGRhdGE7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBwYXlsb2FkLnNpemUgPT0gXCJkZWZhdWx0XCIgfHxcclxuICAgICAgICBwYXlsb2FkLnNpemUgPT0gXCJzbWFsbFwiIHx8XHJcbiAgICAgICAgcGF5bG9hZC5zaXplID09IFwibWlkZGxlXCJcclxuICAgICAgKSB7XHJcbiAgICAgICAgX3RoaXMuc2V0U3RhdGUoeyB0YWJsZVNpemU6IHBheWxvYWQuc2l6ZSB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH07XHJcbiAgb25TZWxlY3QgPSAoY2hlY2tlZFRyZWVLZXlzOiBhbnkpID0+IHtcclxuICAgIGNvbnN0IHsgbmFtZSwgdXNlclR5cGUsIGFjY291bnQgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHsgbmFtZSwgdXNlclR5cGUsIGFjY291bnQsIGRlcHRJZDogY2hlY2tlZFRyZWVLZXlzWzBdIH07XHJcbiAgICB0aGlzLnRhYmxlTG9hZCh2YWx1ZSk7XHJcbiAgfTtcclxuXHJcbiAgLy/mmL7npLrooajljZVcclxuICBzaG93Rm9ybSh2YWx1ZT86IGFueSwgZWRpdG9yZmxhZyA9IFwiYWRkXCIpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LnNob3codmFsdWUsIGVkaXRvcmZsYWcpO1xyXG4gIH1cclxuXHJcbiAgLy/lhbPpl63ooajljZVcclxuICBoaWRlRm9ybSgpIHtcclxuICAgIHRoaXMuZWRpdG9yUmVmLmN1cnJlbnQ/LmhpZGVGb3JtKCk7XHJcbiAgfVxyXG5cclxuICAvL+aJuemHj+WIoOmZpFxyXG4gIG9uRGVsZXRlKCkge1xyXG4gICAgY29uc3QgeyBkZWxldGVVcmwsIG9uRGVsZXRlLCBkZWxldGVQYXJhbXMgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkUm93S2V5cyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGlmIChzZWxlY3RlZFJvd0tleXMubGVuZ3RoID09IDApIHtcclxuICAgICAgbWVzc2FnZS53YXJuaW5nKFwi6K+36YCJ5oup6KaB5Yig6Zmk55qE5pWw5o2u77yBXCIpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAob25EZWxldGUpIHtcclxuICAgICAgb25EZWxldGUgJiYgb25EZWxldGUoc2VsZWN0ZWRSb3dLZXlzKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCFkZWxldGVVcmwpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwidXJs5LiN6IO95Li656m677yBXCIpO1xyXG4gICAgfVxyXG4gICAgTW9kYWwuY29uZmlybSh7XHJcbiAgICAgIHRpdGxlOiBcIuaYr+WQpuehruiupOWIoOmZpOaJgOmAiemhue+8n1wiLFxyXG4gICAgICBva1RleHQ6IFwi56Gu6K6kXCIsXHJcbiAgICAgIGNhbmNlbFRleHQ6IFwi5Y+W5raIXCIsXHJcbiAgICAgIG9uT2s6ICgpID0+IHtcclxuICAgICAgICBjb25zdCBkZWZhdWx0UGFyYW1zID0ge1xyXG4gICAgICAgICAgbWV0aG9kOiBcInBvc3RcIixcclxuICAgICAgICAgIHBhcmFtczogeyBpZHM6IHNlbGVjdGVkUm93S2V5cy5qb2luKCkgfSxcclxuICAgICAgICB9O1xyXG4gICAgICAgIGxldCByZXF1ZXN0UGFyYW1zID0ge30gYXMgYW55O1xyXG4gICAgICAgIGlmIChkZWZhdWx0UGFyYW1zKSB7XHJcbiAgICAgICAgICByZXF1ZXN0UGFyYW1zID0geyAuLi5kZWxldGVQYXJhbXMgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmVxdWVzdFBhcmFtcyA9IHsgLi4uZGVmYXVsdFBhcmFtcyB9O1xyXG4gICAgICAgIHJlcXVlc3QoZGVsZXRlVXJsLCB7XHJcbiAgICAgICAgICAuLi5yZXF1ZXN0UGFyYW1zLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgICAudGhlbihmdW5jdGlvbiAocmVzOiBhbnkpIHtcclxuICAgICAgICAgICAgY29uc3QgeyBjb2RlIH0gPSByZXM7XHJcbiAgICAgICAgICAgIGlmIChjb2RlID09PSAyMDApIHtcclxuICAgICAgICAgICAgICBtZXNzYWdlLnN1Y2Nlc3MoXCLliKDpmaTmiJDlip/vvIFcIik7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5lcnJvcihcIuWIoOmZpOWksei0pe+8gVwiKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC5jYXRjaChmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhcImVycm9yXCIsIGVycm9yKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRhYmxlTG9hZChwYXJhbXM6IGFueSkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5sb2FkKHtcclxuICAgICAgcGFyYW1zOiBwYXJhbXMsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgLy/mn6Xor6JcclxuICBvblNlYXJjaCgpIHtcclxuICAgIGNvbnN0IHsgb25TZWFyY2ggfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5nZXRGaWVsZHNWYWx1ZSgpO1xyXG4gICAgaWYgKG9uU2VhcmNoKSB7XHJcbiAgICAgIG9uU2VhcmNoKGZyb21WYWx1ZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHRoaXMudGFibGVMb2FkKGZyb21WYWx1ZSk7XHJcbiAgfVxyXG4gIC8v6KGo5qC86YeN5paw5Yqg6L29XHJcbiAgdGFibGVSZWxvYWQoKSB7XHJcbiAgICB0aGlzLnRhYmxlUmVmLmN1cnJlbnQ/LnN0b3JlLnJlbG9hZCgpO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZFJvd0tleXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5zZWxlY3RlZFJvd0tleXM7XHJcbiAgfVxyXG4gIGdldFNlbGVjdGVkUm93RGF0YXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5zZWxlY3RlZFJvd0RhdGFzO1xyXG4gIH1cclxuICBnZXRTZWFyY2hWYWx1ZXMoKSB7XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5nZXRGaWVsZHNWYWx1ZSgpO1xyXG4gICAgcmV0dXJuIGZyb21WYWx1ZTtcclxuICB9XHJcbiAgcm93U2VsZWN0aW9uT25TZWxlY3QocmVjb3JkOiBhbnksIHNlbGVjdGVkOiBhbnkpIHtcclxuICAgIGNvbnN0IHsgc2VsZWN0ZWRSb3dLZXlzLCBzZWxlY3RlZFJvd0RhdGFzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IG5ld1NlbGVjdGVkUm93S2V5cyA9IFsuLi5zZWxlY3RlZFJvd0tleXNdO1xyXG4gICAgbGV0IG5ld1NlbGVjdGVkUm93RGF0YXMgPSBbLi4uc2VsZWN0ZWRSb3dEYXRhc107XHJcbiAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgbmV3U2VsZWN0ZWRSb3dLZXlzID0gWy4uLm5ld1NlbGVjdGVkUm93S2V5cywgcmVjb3JkLmlkXTtcclxuICAgICAgbmV3U2VsZWN0ZWRSb3dEYXRhcyA9IFsuLi5uZXdTZWxlY3RlZFJvd0RhdGFzLCByZWNvcmRdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGl0ZW0gPT09IHJlY29yZC5pZCkge1xyXG4gICAgICAgICAgbmV3U2VsZWN0ZWRSb3dLZXlzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgc2VsZWN0ZWRSb3dEYXRhcy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtLmlkID09PSByZWNvcmQuaWQpIHtcclxuICAgICAgICAgIG5ld1NlbGVjdGVkUm93RGF0YXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIHNlbGVjdGVkUm93S2V5czogbmV3U2VsZWN0ZWRSb3dLZXlzLFxyXG4gICAgICBzZWxlY3RlZFJvd0RhdGFzOiBuZXdTZWxlY3RlZFJvd0RhdGFzLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJvd1NlbGVjdGlvbk9uU2VsZWN0QWxsKHNlbGVjdGVkOiBhbnksIHNlbGVjdGVkUm93czogYW55LCBjaGFuZ2VSb3dzOiBhbnkpIHtcclxuICAgIGNvbnN0IHsgc2VsZWN0ZWRSb3dLZXlzLCBzZWxlY3RlZFJvd0RhdGFzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgbGV0IG5ld2lkczogYW55ID0gW107XHJcbiAgICBsZXQgbmV3ZGF0YXM6IGFueSA9IFtdO1xyXG4gICAgaWYgKGNoYW5nZVJvd3MubGVuZ3RoID4gMCkge1xyXG4gICAgICBsZXQgY2hhbmdlSWRzID0gY2hhbmdlUm93cy5tYXAoKGl0ZW06IGFueSkgPT4gaXRlbS5pZCk7XHJcbiAgICAgIGlmIChzZWxlY3RlZCkge1xyXG4gICAgICAgIG5ld2lkcyA9IFsuLi5zZWxlY3RlZFJvd0tleXMsIC4uLmNoYW5nZUlkc107XHJcbiAgICAgICAgbmV3ZGF0YXMgPSBbLi4uc2VsZWN0ZWRSb3dEYXRhcywgLi4uY2hhbmdlUm93c107XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc2VsZWN0ZWRSb3dLZXlzLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoY2hhbmdlSWRzLmluZGV4T2YoaXRlbSkgPT0gLTEpIHtcclxuICAgICAgICAgICAgbmV3aWRzLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgc2VsZWN0ZWRSb3dEYXRhcy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNoYW5nZUlkcy5pbmRleE9mKGl0ZW0uaWQpID09IC0xKSB7XHJcbiAgICAgICAgICAgIG5ld2RhdGFzLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIG5ld2lkcyA9IFsuLi5zZWxlY3RlZFJvd0tleXNdO1xyXG4gICAgICBuZXdkYXRhcyA9IFsuLi5zZWxlY3RlZFJvd0RhdGFzXTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RlZFJvd0tleXM6IFsuLi5uZXdpZHNdLFxyXG4gICAgICBzZWxlY3RlZFJvd0RhdGFzOiBbLi4ubmV3ZGF0YXNdLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJlbmRlclRvb2xCdXR0b25zKHRvb2xidXR0b25zOiBhbnkpIHtcclxuICAgIGNvbnN0IGZsYWcgPSB0b29sYnV0dG9ucy5sZW5ndGggPiA1O1xyXG4gICAgY29uc3QgY29udGVudCA9IHRvb2xidXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCBpY29uLCBzaG93LCAuLi5wYXJhbXMgfSA9IGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChpbmRleCA+IDQpIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NscyhcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JcIiksXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudC1pdGVtXCIpXHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2soKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT57aWNvbn08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidG9vbC1idXR0b25zXCIpfVxyXG4gICAgICAgIHN0eWxlPXt7IG1hcmdpbkxlZnQ6IDAgfX1cclxuICAgICAgPlxyXG4gICAgICAgIHt0b29sYnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZsYWcpIHtcclxuICAgICAgICAgICAgaWYgKGluZGV4IDwgNCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17aW5kZXh9PntpdGVtfTwvZGl2PjtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PSA0KSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgIDxQb3BvdmVyXHJcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XHJcbiAgICAgICAgICAgICAgICAgIHRpdGxlPXtudWxsfVxyXG4gICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgICAgICB0cmlnZ2VyPXtbXCJjbGlja1wiXX1cclxuICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgICAgLy8gb3ZlcmxheUNsYXNzTmFtZT17c3R5bGVzWydwb3AtYm94J119XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxCdXR0b24gdHlwZT1cInByaW1hcnlcIj5cclxuICAgICAgICAgICAgICAgICAgICDmm7TlpJogPERvd25PdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2luZGV4fT57aXRlbX08L2Rpdj47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICB9XHJcbiAgcmVuZGVyQ2xvdW1uQnV0dG9uKGNvbHVtbkJ1dHRvbnM6IGFueSwgcmVjb3JkOiBhbnkpIHtcclxuICAgIGNvbnN0IHsgZWRpdG9yRm9ybSA9IHRydWUsIGJ1dHRvbnMgPSBbXSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IG5ld0J1dHRvbnMgPSBbXTtcclxuICAgIGNvbHVtbkJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgeyBjaGlsZHJlbiwgcGFnZVR5cGUsIG9uQ2xpY2ssIGljb24sIHJlY29yZFNob3csIC4uLnBhcmFtcyB9ID1cclxuICAgICAgICBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAocmVjb3JkU2hvdykge1xyXG4gICAgICAgIGlmIChldmFsKHJlY29yZFNob3cpKSB7XHJcbiAgICAgICAgICBuZXdCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIG5ld0J1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBmbGFnID0gbmV3QnV0dG9ucy5sZW5ndGggPiAzO1xyXG5cclxuICAgIGNvbnN0IGNvbnRlbnQgPSBuZXdCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCBpY29uLCBzaG93LCAuLi5wYXJhbXMgfSA9IGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChpbmRleCA+IDEpIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2NscyhcclxuICAgICAgICAgICAgICBnZXRMZXNzKHN0eWxlcywgXCJlZGl0b3JcIiksXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiY29udGVudC1pdGVtXCIpXHJcbiAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICBvbkNsaWNrICYmIG9uQ2xpY2socmVjb3JkKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT57aWNvbn08L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBuZXdCdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCBpY29uLCAuLi5wYXJhbXMgfSA9IGl0ZW0ucHJvcHM7XHJcbiAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgaWYgKGluZGV4IDwgMikge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpfVxyXG4gICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT57aWNvbn08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpbmRleCA9PSAyKSB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8UG9wb3ZlclxyXG4gICAgICAgICAgICAgIHBsYWNlbWVudD1cImJvdHRvbVwiXHJcbiAgICAgICAgICAgICAgdGl0bGU9e251bGx9XHJcbiAgICAgICAgICAgICAgY29udGVudD17Y29udGVudH1cclxuICAgICAgICAgICAgICB0cmlnZ2VyPXtbXCJjbGlja1wiXX1cclxuICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgIC8vIG92ZXJsYXlDbGFzc05hbWU9e3N0eWxlc1sncG9wJ119XHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpfT5cclxuICAgICAgICAgICAgICAgICZuYnNwOyDmm7TlpJpcclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+XHJcbiAgICAgICAgICAgICAgICAgIDxEb3duT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9Qb3BvdmVyPlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpfVxyXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9PntjaGlsZHJlbn08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIC8vIH1cclxuICB9XHJcbiAgLy/moJHngrnlh7vkuovku7ZcclxuICB0cmVlU2VsZWN0KHNlbGVjdGVkS2V5czogYW55LCB7IHNlbGVjdGVkLCBzZWxlY3RlZE5vZGVzIH06IGFueSkge1xyXG4gICAgbGV0IGtleXdvcmQgPSBcIlwiO1xyXG4gICAgY29uc3QgeyBzZWFyY2hLZXkgPSBcImtleVwiLCBzZWFyY2hGaWVsZCA9IFwiXCIgfSA9IHRoaXMucHJvcHMudHJlZVByb3BzO1xyXG4gICAgY29uc3QgeyB0cmVlU2VsZWN0ZWRLZXkgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgaWYgKHNlbGVjdGVkTm9kZXNbMF0uaXNMZWFmIHx8ICFzZWxlY3RlZE5vZGVzWzBdLmNoaWxkcmVuKSB7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkS2V5c1swXSAhPT0gdHJlZVNlbGVjdGVkS2V5KSB7XHJcbiAgICAgICAgICAvLyBsZXQgbWFwRGF0YSA9IHRoaXMudHJlZVJlZi5jdXJyZW50Py5zdG9yZS5nZXRGbGF0dGVuRGF0YSgpO1xyXG4gICAgICAgICAga2V5d29yZCA9IHNlbGVjdGVkTm9kZXNbMF0uZGF0YXJlZi5hdHRyaWJ1dGVbc2VhcmNoS2V5XTtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICB0cmVlU2VsZWN0ZWRLZXk6IHNlbGVjdGVkS2V5c1swXSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgICAgdHJlZVNlbGVjdGVkS2V5OiBrZXl3b3JkLFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuc2VhcmNoUmVmLmN1cnJlbnQ/LmdldEZpZWxkc1ZhbHVlKCk7XHJcbiAgICBzZWFyY2hGaWVsZCAmJiB0aGlzLnRhYmxlTG9hZCh7IC4uLmZyb21WYWx1ZSwgW3NlYXJjaEZpZWxkXToga2V5d29yZCB9KTtcclxuICB9XHJcbiAgcmVzZXRTZWFyY2goKSB7XHJcbiAgICB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5yZXNldEZpZWxkcygpO1xyXG4gIH1cclxuICBnZXRUZXh0KHByb3BzLCB0ZXh0KSB7XHJcbiAgICBsZXQgbmV3VGV4dCA9IHRleHQ7XHJcbiAgICBpZiAocHJvcHM/LmRhdGEgJiYgcHJvcHM/LmRhdGE/Lmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGRhdGEgPSBwcm9wcy5kYXRhO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGE/Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGRhdGFbaV0udmFsdWUgPT0gdGV4dCkge1xyXG4gICAgICAgICAgbmV3VGV4dCA9IGRhdGFbaV0ubGFiZWw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbmV3VGV4dDtcclxuICB9XHJcblxyXG4gIHJlbmRlcigpIHtcclxuICAgIGNvbnN0IHsgc2VsZWN0ZWRSb3dLZXlzIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3Qge1xyXG4gICAgICBjb2x1bW5zID0gW10sXHJcbiAgICAgIHNob3dTZWFyY2ggPSB0cnVlLFxyXG4gICAgICBjaGlsZHJlbixcclxuICAgICAgc3VibWl0VXJsID0gXCJcIixcclxuICAgICAgdGFibGVQcm9wcyA9IHt9LFxyXG4gICAgICB0cmVlUHJvcHMgPSB7fSxcclxuICAgICAgc2hvd0xlZnQgPSBmYWxzZSxcclxuICAgICAgc3VibWl0UGFyYW1zID0ge30sXHJcbiAgICAgIHNob3dUb29sQnV0dG9uID0gdHJ1ZSxcclxuICAgICAgYnV0dG9ucyA9IFtdLFxyXG4gICAgICBlZGl0b3JGb3JtID0gdHJ1ZSxcclxuICAgICAgb25TaG93Rm9ybSxcclxuICAgICAgZm9ybUNoYW5nZVZhbGlkID0gdHJ1ZSxcclxuICAgICAgY2xhc3NOYW1lLFxyXG4gICAgICBhY3Rpb25Db2x1bW5zID0gW10sXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgc3RvcmUgPSB7fSxcclxuICAgICAgZmlsdGVyQ29sdW1uID0gdHJ1ZSxcclxuICAgICAgYWN0aW9uQ29sdW1uID0gdHJ1ZSxcclxuICAgICAgc2hvd1Jvd1NlbGVjdGlvbiA9IHRydWUsXHJcbiAgICAgIGNvbHVtbk9yZGVyID0gdHJ1ZSxcclxuICAgICAgLi4ub3RoZXJ0YWJsZVBhcmFtc1xyXG4gICAgfSA9IHRhYmxlUHJvcHM7XHJcblxyXG4gICAgY29uc3Qge1xyXG4gICAgICBzdG9yZTogdHJlZVN0b3JlID0ge30sXHJcbiAgICAgIHNob3dTZWFyY2g6IHRyZWVTZWFyY2ggPSB0cnVlLFxyXG4gICAgICB0aXRsZUFsaWFzID0gXCJ0aXRsZVwiLFxyXG4gICAgICAuLi5vdGhlcnRyZWVQYXJhbXNcclxuICAgIH0gPSB0cmVlUHJvcHM7XHJcblxyXG4gICAgbGV0IHRhYmxlUGFyYW1zID0geyBmaWx0ZXJDb2x1bW4sIHN0b3JlLCAuLi5vdGhlcnRhYmxlUGFyYW1zIH0gYXMgYW55O1xyXG5cclxuICAgIGlmIChzaG93Um93U2VsZWN0aW9uKSB7XHJcbiAgICAgIHRhYmxlUGFyYW1zID0ge1xyXG4gICAgICAgIC4uLnRhYmxlUGFyYW1zLFxyXG4gICAgICAgIHJvd1NlbGVjdGlvbjoge1xyXG4gICAgICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBzZWxlY3RlZFJvd0tleXMsXHJcbiAgICAgICAgICBvblNlbGVjdDogdGhpcy5yb3dTZWxlY3Rpb25PblNlbGVjdC5iaW5kKHRoaXMpLFxyXG4gICAgICAgICAgb25TZWxlY3RBbGw6IHRoaXMucm93U2VsZWN0aW9uT25TZWxlY3RBbGwuYmluZCh0aGlzKSxcclxuICAgICAgICAgIGNvbHVtbldpZHRoOiA0MCxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgbGV0IHRhYmxlQ29sdW1uOiBhbnlbXSA9IFtdO1xyXG4gICAgY29uc3Qgc2VhcmNoRm9ybXM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgZWRpdG9yRm9ybXM6IGFueSA9IFtdO1xyXG4gICAgY29uc3QgZGVmYXVsdFZhbHVlOiBhbnkgPSB7fTtcclxuICAgIGNvbnN0IGNvbHVtbkJ1dHRvbnM6IGFueSA9IFtdO1xyXG4gICAgY29sdW1ucy5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICBsZXQgdGVtcCA9IHsgLi4uaXRlbSB9O1xyXG4gICAgICBpZiAodGVtcC5zZWFyY2gpIHtcclxuICAgICAgICBzZWFyY2hGb3Jtcy5wdXNoKHtcclxuICAgICAgICAgIG5hbWU6IHRlbXAuZmllbGQgfHwgdGVtcC5kYXRhSW5kZXgsXHJcbiAgICAgICAgICBsYWJlbDogdGVtcC50aXRsZSxcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnNlYXJjaDtcclxuICAgICAgdGVtcC5lZGl0b3IgIT09IGZhbHNlICYmXHJcbiAgICAgICAgZWRpdG9yRm9ybXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4LFxyXG4gICAgICAgICAgbGFiZWw6IHRlbXAudGl0bGUsXHJcbiAgICAgICAgICBydWxlczogdGVtcC5ydWxlcyA/IHRlbXAucnVsZXMgOiBbXSxcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHNwYW46IHRlbXAuc3BhbixcclxuICAgICAgICAgIGRpY3ROYW1lOiB0ZW1wLmRpY3ROYW1lLFxyXG4gICAgICAgICAgcHJvcHM6IG9taXQoeyAuLi50ZW1wLnByb3BzIH0sIFtcImRlZmF1bHRWYWx1ZVwiLCBcInZhbHVlXCJdKSxcclxuICAgICAgICB9KTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRlbXAucHJvcHM/LmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkICYmXHJcbiAgICAgICAgdGVtcC5wcm9wcz8uZGVmYXVsdFZhbHVlICE9PSBudWxsXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IG5hbWUgPSB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4O1xyXG4gICAgICAgIGRlZmF1bHRWYWx1ZVtuYW1lXSA9IHRlbXAucHJvcHM/LmRlZmF1bHRWYWx1ZTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgdGVtcC5ydWxlcztcclxuICAgICAgZGVsZXRlIHRlbXAuc3BhbjtcclxuICAgICAgaWYgKHRlbXAuY29sdW1uU2VhcmNoKSB7XHJcbiAgICAgICAgdGVtcC5maWx0ZXJQcm9wcyA9IHtcclxuICAgICAgICAgIHR5cGU6IHRlbXAudHlwZSxcclxuICAgICAgICAgIHByb3BzOiB0ZW1wLnByb3BzLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAudHlwZTtcclxuICAgICAgbGV0IHRlbXBQcm9wID0geyAuLi50ZW1wLnByb3BzIH07XHJcbiAgICAgIGlmICh0ZW1wLnN0eWxlKSB7XHJcbiAgICAgICAgdGVtcCA9IHtcclxuICAgICAgICAgIHJlbmRlcjogKHRleHQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAgICB7dGV4dCAhPT0gXCJcIiAmJiB0ZXh0ICE9PSBudWxsICYmIHRleHQgIT09IHVuZGVmaW5lZCAmJiAoXHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiY29sLWJhY2tcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiY29sLXRleHRcIil9PlxyXG4gICAgICAgICAgICAgICAgICAgICAge3RoaXMuZ2V0VGV4dCh0ZW1wUHJvcCwgdGV4dCl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIGVsbGlwc2lzOiB0cnVlLFxyXG4gICAgICAgICAgLi4udGVtcCxcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRlbXAgPSB7XHJcbiAgICAgICAgICByZW5kZXI6ICh0ZXh0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIDw+e3RoaXMuZ2V0VGV4dCh0ZW1wUHJvcCwgdGV4dCl9PC8+O1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIC4uLnRlbXAsXHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgdGVtcC5wcm9wcztcclxuICAgICAgaWYgKHRlbXA/LmNvbHVtblNob3cgIT09IGZhbHNlKSB0YWJsZUNvbHVtbi5wdXNoKHRlbXApO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBzZWxmQnV0dG9uczogYW55ID0gW107XHJcblxyXG4gICAgaWYgKGVkaXRvckZvcm0gPT0gdHJ1ZSkge1xyXG4gICAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwic2VhcmNoXCIpID4gLTEpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpfVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsocmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAob25TaG93Rm9ybSkge1xyXG4gICAgICAgICAgICAgICAgb25TaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJkZXRhaWxcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZGV0YWlsXCIpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PlxyXG4gICAgICAgICAgICAgIDxFeWVPdXRsaW5lZCAvPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+5p+l55yLPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwiZWRpdG9yXCIpID4gLTEpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goXHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpfVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsocmVjb3JkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBpZiAob25TaG93Rm9ybSkge1xyXG4gICAgICAgICAgICAgICAgb25TaG93Rm9ybShyZWNvcmQuYXR0cmlidXRlIHx8IHJlY29yZCwgXCJlZGl0b3JcIik7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZWRpdG9yXCIpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PlxyXG4gICAgICAgICAgICAgIDxFZGl0T3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9Pue8lui+kTwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJhZGRcIikgPiAtMSkge1xyXG4gICAgICBzZWxmQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IG9uU2hvd0Zvcm0gfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgICAgIGlmIChvblNob3dGb3JtKSB7XHJcbiAgICAgICAgICAgICAgb25TaG93Rm9ybSgpO1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLnNob3dGb3JtKCk7XHJcbiAgICAgICAgICB9fVxyXG4gICAgICAgICAgaWNvbj17PEljb24gdHlwZT17aWNvblR5cGUuYWRkfSAvPn1cclxuICAgICAgICA+XHJcbiAgICAgICAgICDmt7vliqBcclxuICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmIChidXR0b25zLmluZGV4T2YoXCJkZWxldGVcIikgPiAtMSkge1xyXG4gICAgICBzZWxmQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgIDxCdXR0b25cclxuICAgICAgICAgIC8vIHR5cGU9e1wicHJpbWFyeVwifVxyXG4gICAgICAgICAgb25DbGljaz17dGhpcy5vbkRlbGV0ZS5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgaWNvbj17PEljb24gdHlwZT17aWNvblR5cGUuZGVsZXRlM30gLz59XHJcbiAgICAgICAgICBkYW5nZXJcclxuICAgICAgICA+XHJcbiAgICAgICAgICDliKDpmaRcclxuICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuKSkge1xyXG4gICAgICBjaGlsZHJlbi5tYXAoKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICAgIHNlbGZCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChpdGVtPy5wcm9wcz8ucGFnZVR5cGUgPT0gXCJjbG91bW5CdXR0b25cIikge1xyXG4gICAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGNoaWxkcmVuKSB7XHJcbiAgICAgIGNvbnN0IHsgcHJvcHMgfTogYW55ID0gY2hpbGRyZW47XHJcbiAgICAgIGlmIChwcm9wcz8ucGFnZVR5cGUgPT0gXCJ0b29sQnV0dG9uXCIpIHtcclxuICAgICAgICBzZWxmQnV0dG9ucy5wdXNoKGNoaWxkcmVuKTtcclxuICAgICAgfSBlbHNlIGlmIChwcm9wcz8ucGFnZVR5cGUgPT0gXCJjbG91bW5CdXR0b25cIikge1xyXG4gICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBhY3Rpb25Db2x1bW4gJiZcclxuICAgICAgdGFibGVDb2x1bW4ucHVzaCh7XHJcbiAgICAgICAgdGl0bGU6IFwi5pON5L2cXCIsXHJcbiAgICAgICAgZGF0YUluZGV4OiBcImFjdGlvblwiLFxyXG4gICAgICAgIGFsaWduOiBcImNlbnRlclwiLFxyXG4gICAgICAgIHdpZHRoOiAyNTAsXHJcbiAgICAgICAgZml4ZWQ6IFwicmlnaHRcIixcclxuICAgICAgICBlbGxpcHNpczogdHJ1ZSxcclxuICAgICAgICByZW5kZXI6ICh0ZXh0OiBhbnksIHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiYWN0aW9uXCIpfT5cclxuICAgICAgICAgICAgICB7dGhpcy5yZW5kZXJDbG91bW5CdXR0b24oY29sdW1uQnV0dG9ucywgcmVjb3JkKX1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgY29uc3QgaGVhZGVyQ291bnQgPSBzaG93TGVmdCA/IDIgOiAzO1xyXG4gICAgaWYgKGNvbHVtbk9yZGVyKVxyXG4gICAgICB0YWJsZUNvbHVtbiA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICB0aXRsZTogXCIjXCIsXHJcbiAgICAgICAgICB3aWR0aDogMzAsXHJcbiAgICAgICAgICBhbGlnbjogXCJjZW50ZXJcIixcclxuICAgICAgICAgIHJlbmRlcjogKHRleHQsIHJlYWNvcmQsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiA8PntpbmRleCArIDF9PC8+O1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIC4uLnRhYmxlQ29sdW1uLFxyXG4gICAgICBdO1xyXG4gICAgaWYgKHRhYmxlUHJvcHMucGFnaW5hdGlvbiAhPT0gZmFsc2UpIHtcclxuICAgICAgLy8gc2Nyb2xsPXt7IHg6IFwibWF4LWNvbnRlbnRcIiwgeTogXCIyNXZ3XCIgfX1cclxuICAgICAgdGFibGVQYXJhbXMgPSB7IHNjcm9sbDogeyB4OiBcIm1heC1jb250ZW50XCIsIHk6IFwiMjV2d1wiIH0sIC4uLnRhYmxlUGFyYW1zIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwicGFnZVwiKSwgY2xhc3NOYW1lKX1cclxuICAgICAgICBzdHlsZT17eyBkaXNwbGF5OiBcImZsZXhcIiB9fVxyXG4gICAgICA+XHJcbiAgICAgICAge3Nob3dMZWZ0ICYmIChcclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJsZWZ0XCIpfT5cclxuICAgICAgICAgICAgPFRyZWVcclxuICAgICAgICAgICAgICBzdG9yZT17eyAuLi50cmVlU3RvcmUgfX1cclxuICAgICAgICAgICAgICBzaG93SWNvbj17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgY2hlY2thYmxlPXtmYWxzZX1cclxuICAgICAgICAgICAgICBzZWFyY2hhYmxlPXt0cmVlU2VhcmNofVxyXG4gICAgICAgICAgICAgIG9uU2VsZWN0PXt0aGlzLnRyZWVTZWxlY3QuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICBzZWxlY3RlZEtleXM9e1t0aGlzLnN0YXRlLnRyZWVTZWxlY3RlZEtleV19XHJcbiAgICAgICAgICAgICAgdGl0bGVBbGlhcz17dGl0bGVBbGlhc31cclxuICAgICAgICAgICAgICB7Li4ub3RoZXJ0cmVlUGFyYW1zfVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKX1cclxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwicmlnaHRcIil9PlxyXG4gICAgICAgICAge3Nob3dTZWFyY2ggJiYgKFxyXG4gICAgICAgICAgICA8Um93IGd1dHRlcj17MjR9IHdyYXA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImhlYWRlclwiKX0+XHJcbiAgICAgICAgICAgICAgICA8Q29sXHJcbiAgICAgICAgICAgICAgICAgIG1kPXt7IHNwYW46IDEyIH19XHJcbiAgICAgICAgICAgICAgICAgIHNtPXt7IHNwYW46IDEyIH19XHJcbiAgICAgICAgICAgICAgICAgIGxnPXt7IHNwYW46IDE4IH19XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Nscyh7IFtnZXRMZXNzKHN0eWxlcywgXCJmb3JtXCIpXTogIXNob3dMZWZ0IH0pfVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPFJvdyBndXR0ZXI9ezI0fSB3cmFwPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPEZvcm1cclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmPXt0aGlzLnNlYXJjaFJlZn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxDb2w9e3t9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3cmFwcGVyQ29sPXt7fX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgbGF5b3V0PVwiaW5saW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgd2lkdGg6IFwiMTAwJVwiIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtzZWFyY2hGb3Jtcy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCA+IGhlYWRlckNvdW50ICYmICF0aGlzLnN0YXRlLmV4cGFuZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZD17eyBzcGFuOiAxMiB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbT17eyBzcGFuOiAyNCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZz17eyBzcGFuOiA4IH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7cGFkZGluZ1JpZ2h0OjB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Rm9ybS5JdGVtIGxhYmVsPXtpdGVtLmxhYmVsfSBuYW1lPXtpdGVtLm5hbWV9PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtnZXROb2RlKGl0ZW0udHlwZSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uaXRlbS5wcm9wcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyOiBg6K+36L6T5YWlJHtpdGVtLmxhYmVsfWAsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9Db2w+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9Gb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvUm93PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvQ29sPlxyXG4gICAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgICBtZD17eyBzcGFuOiAxMiB9fVxyXG4gICAgICAgICAgICAgICAgICBzbT17eyBzcGFuOiAxMiB9fVxyXG4gICAgICAgICAgICAgICAgICBsZz17eyBzcGFuOiA2IH19XHJcbiAgICAgICAgICAgICAgICAgIHN0eWxlPXt7cGFkZGluZzowfX1cclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwic2VhcmNoLWJ1dHRvbnNcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3sgbWFyZ2luVG9wOiAwIH19XHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMub25TZWFyY2guYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgICAgICAgICAgIGljb249ezxJY29uIHR5cGU9e2ljb25UeXBlLnNlYXJjaH0gLz59XHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAg5p+l6K+iXHJcbiAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLnJlc2V0U2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgICAgICAgICBpY29uPXs8SWNvbiB0eXBlPXtpY29uVHlwZS5yZWZyZXNofSAvPn1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICDph43nva5cclxuICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICB7c2VhcmNoRm9ybXMubGVuZ3RoID4gMyAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsJ2Ffc3R5bGUnKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZXhwYW5kIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kOiAhZXhwYW5kLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5zdGF0ZS5leHBhbmQgPyBcIuaUtui1t1wiIDogXCLlsZXlvIBcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAge3RoaXMuc3RhdGUuZXhwYW5kID8gPFVwT3V0bGluZWQgLz4gOiA8RG93bk91dGxpbmVkIC8+fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9Sb3c+XHJcbiAgICAgICAgICApfVxyXG5cclxuICAgICAgICAgIHtzaG93VG9vbEJ1dHRvbiAmJiB0aGlzLnJlbmRlclRvb2xCdXR0b25zKHNlbGZCdXR0b25zKX1cclxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbHMoZ2V0TGVzcyhzdHlsZXMsIFwidGFibGVcIikpfT5cclxuICAgICAgICAgICAgPFRhYmxlXHJcbiAgICAgICAgICAgICAgcmVmPXt0aGlzLnRhYmxlUmVmfVxyXG4gICAgICAgICAgICAgIGNvbHVtbnM9e3RhYmxlQ29sdW1ufVxyXG4gICAgICAgICAgICAgIGV4cGFuZGFibGU9e3tcclxuICAgICAgICAgICAgICAgIGV4cGFuZEljb246ICh7IGV4cGFuZGVkLCBvbkV4cGFuZCwgcmVjb3JkIH0pID0+IHtcclxuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAgICAgICAge2V4cGFuZGVkID8gKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8RG93bk91dGxpbmVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IG9uRXhwYW5kKHJlY29yZCwgZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJleHBhbmQtaWNvblwiKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZC5jaGlsZE5vZGVzICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8UmlnaHRPdXRsaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IG9uRXhwYW5kKHJlY29yZCwgZSl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImV4cGFuZC1pY29uXCIpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgPC8+XHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgY29sdW1uT3JkZXI9e3RydWV9XHJcbiAgICAgICAgICAgICAgYm9yZGVyZWQ9e3RydWV9XHJcbiAgICAgICAgICAgICAgc2l6ZT17dGhpcy5zdGF0ZS50YWJsZVNpemV9XHJcbiAgICAgICAgICAgICAgey4uLnRhYmxlUGFyYW1zfVxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAge2VkaXRvckZvcm0gJiYgKFxyXG4gICAgICAgICAgPEVkaXRvckZvcm1cclxuICAgICAgICAgICAgcmVmPXt0aGlzLmVkaXRvclJlZn1cclxuICAgICAgICAgICAgY2FsbEJhY2s9e3RoaXMudGFibGVSZWxvYWQuYmluZCh0aGlzKX1cclxuICAgICAgICAgICAgZm9ybVByb3BzPXtlZGl0b3JGb3Jtc31cclxuICAgICAgICAgICAgc3VibWl0VXJsPXtzdWJtaXRVcmx9XHJcbiAgICAgICAgICAgIHN1Ym1pdFBhcmFtcz17c3VibWl0UGFyYW1zfVxyXG4gICAgICAgICAgICBvblN1Ym1pdD17dGhpcy5wcm9wcy5vblN1Ym1pdH1cclxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlPXtkZWZhdWx0VmFsdWV9XHJcbiAgICAgICAgICAgIG9uSGlkZUZvcm09e3RoaXMucHJvcHMub25IaWRlRm9ybX1cclxuICAgICAgICAgICAgb25Gb3JtQ2hhbmdlPXt0aGlzLnByb3BzLm9uRm9ybUNoYW5nZX1cclxuICAgICAgICAgICAgZm9ybVR5cGU9e3RoaXMucHJvcHMuZm9ybVR5cGUgfHwgdGhpcy5zdGF0ZS5mb3JtVHlwZX1cclxuICAgICAgICAgICAgY2hhbmdlVmFsaWQ9e2Zvcm1DaGFuZ2VWYWxpZH1cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgKX1cclxuICAgICAgPC9kaXY+XHJcbiAgICApO1xyXG4gIH1cclxufVxyXG5leHBvcnQgZGVmYXVsdCBCYXNlUGFnZTtcclxuIl19
997
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3BhZ2UvQmFzZVBhZ2UvaW5kZXgudHN4Il0sIm5hbWVzIjpbIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIlRhYmxlIiwiVHJlZSIsIkZvcm0iLCJCdXR0b24iLCJNb2RhbCIsIlBvcG92ZXIiLCJtZXNzYWdlIiwiSWNvbiIsImljb25UeXBlIiwiRWRpdG9yRm9ybSIsImNscyIsInN0eWxlcyIsIkNvbCIsIlJvdyIsIkRvd25PdXRsaW5lZCIsIlVwT3V0bGluZWQiLCJFeWVPdXRsaW5lZCIsIkVkaXRPdXRsaW5lZCIsIlJpZ2h0T3V0bGluZWQiLCJnZXRMZXNzIiwiZ2V0Tm9kZSIsInJlcXVlc3QiLCJvbWl0IiwiY29uZmlnIiwiZ2V0U3RvcmFnZSIsIkJhc2VQYWdlIiwicHJvcHMiLCJjcmVhdGVSZWYiLCJldiIsImRhdGEiLCJKU09OIiwicGFyc2UiLCJfdGhpcyIsImV2ZW50VHlwZSIsInBheWxvYWQiLCJ0eXBlIiwic2V0U3RhdGUiLCJmb3JtVHlwZSIsInNpemUiLCJ0YWJsZVNpemUiLCJjaGVja2VkVHJlZUtleXMiLCJzdGF0ZSIsIm5hbWUiLCJ1c2VyVHlwZSIsImFjY291bnQiLCJ2YWx1ZSIsImRlcHRJZCIsInRhYmxlTG9hZCIsInN0b3JlUHJlZml4IiwiY29udGVudCIsInNlbGVjdGVkUm93S2V5cyIsInNlbGVjdGVkUm93RGF0YXMiLCJ0cmVlU2VsZWN0ZWRLZXkiLCJleHBhbmQiLCJpbml0RGF0YSIsIndpbmRvdyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsaXN0ZW5NZXNzYWdlIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImVkaXRvcmZsYWciLCJlZGl0b3JSZWYiLCJjdXJyZW50Iiwic2hvdyIsImhpZGVGb3JtIiwiZGVsZXRlVXJsIiwib25EZWxldGUiLCJkZWxldGVQYXJhbXMiLCJsZW5ndGgiLCJ3YXJuaW5nIiwiRXJyb3IiLCJjb25maXJtIiwidGl0bGUiLCJva1RleHQiLCJjYW5jZWxUZXh0Iiwib25PayIsImRlZmF1bHRQYXJhbXMiLCJtZXRob2QiLCJwYXJhbXMiLCJpZHMiLCJqb2luIiwicmVxdWVzdFBhcmFtcyIsInRoZW4iLCJyZXMiLCJjb2RlIiwic3VjY2VzcyIsImVycm9yIiwiY2F0Y2giLCJjb25zb2xlIiwibG9nIiwidGFibGVSZWYiLCJzdG9yZSIsImxvYWQiLCJvblNlYXJjaCIsImZyb21WYWx1ZSIsInNlYXJjaFJlZiIsImdldEZpZWxkc1ZhbHVlIiwicmVsb2FkIiwicmVjb3JkIiwic2VsZWN0ZWQiLCJuZXdTZWxlY3RlZFJvd0tleXMiLCJuZXdTZWxlY3RlZFJvd0RhdGFzIiwiaWQiLCJtYXAiLCJpdGVtIiwiaW5kZXgiLCJzcGxpY2UiLCJzZWxlY3RlZFJvd3MiLCJjaGFuZ2VSb3dzIiwibmV3aWRzIiwibmV3ZGF0YXMiLCJjaGFuZ2VJZHMiLCJpbmRleE9mIiwicHVzaCIsInRvb2xidXR0b25zIiwiZmxhZyIsImNoaWxkcmVuIiwicGFnZVR5cGUiLCJvbkNsaWNrIiwiaWNvbiIsIm1hcmdpbkxlZnQiLCJjb2x1bW5CdXR0b25zIiwiZWRpdG9yRm9ybSIsImJ1dHRvbnMiLCJuZXdCdXR0b25zIiwicmVjb3JkU2hvdyIsImV2YWwiLCJzZWxlY3RlZEtleXMiLCJzZWxlY3RlZE5vZGVzIiwia2V5d29yZCIsInRyZWVQcm9wcyIsInNlYXJjaEtleSIsInNlYXJjaEZpZWxkIiwiaXNMZWFmIiwiZGF0YXJlZiIsImF0dHJpYnV0ZSIsInJlc2V0RmllbGRzIiwidGV4dCIsIm5ld1RleHQiLCJpIiwibGFiZWwiLCJjb2x1bW5zIiwic2hvd1NlYXJjaCIsInN1Ym1pdFVybCIsInRhYmxlUHJvcHMiLCJzaG93TGVmdCIsInN1Ym1pdFBhcmFtcyIsInNob3dUb29sQnV0dG9uIiwib25TaG93Rm9ybSIsImZvcm1DaGFuZ2VWYWxpZCIsImNsYXNzTmFtZSIsImFjdGlvbkNvbHVtbnMiLCJmaWx0ZXJDb2x1bW4iLCJhY3Rpb25Db2x1bW4iLCJzaG93Um93U2VsZWN0aW9uIiwiY29sdW1uT3JkZXIiLCJvdGhlcnRhYmxlUGFyYW1zIiwidHJlZVN0b3JlIiwidHJlZVNlYXJjaCIsInRpdGxlQWxpYXMiLCJvdGhlcnRyZWVQYXJhbXMiLCJ0YWJsZVBhcmFtcyIsInJvd1NlbGVjdGlvbiIsIm9uU2VsZWN0Iiwicm93U2VsZWN0aW9uT25TZWxlY3QiLCJiaW5kIiwib25TZWxlY3RBbGwiLCJyb3dTZWxlY3Rpb25PblNlbGVjdEFsbCIsImNvbHVtbldpZHRoIiwidGFibGVDb2x1bW4iLCJzZWFyY2hGb3JtcyIsImVkaXRvckZvcm1zIiwiZGVmYXVsdFZhbHVlIiwidGVtcCIsInNlYXJjaCIsImZpZWxkIiwiZGF0YUluZGV4IiwiZWRpdG9yIiwicnVsZXMiLCJzcGFuIiwiZGljdE5hbWUiLCJ1bmRlZmluZWQiLCJjb2x1bW5TZWFyY2giLCJmaWx0ZXJQcm9wcyIsInRlbXBQcm9wIiwic3R5bGUiLCJyZW5kZXIiLCJnZXRUZXh0IiwiZWxsaXBzaXMiLCJjb2x1bW5TaG93Iiwic2VsZkJ1dHRvbnMiLCJzaG93Rm9ybSIsImFkZCIsImRlbGV0ZTMiLCJBcnJheSIsImlzQXJyYXkiLCJhbGlnbiIsIndpZHRoIiwiZml4ZWQiLCJyZW5kZXJDbG91bW5CdXR0b24iLCJoZWFkZXJDb3VudCIsInJlYWNvcmQiLCJwYWdpbmF0aW9uIiwic2Nyb2xsIiwieCIsInkiLCJkaXNwbGF5IiwidHJlZVNlbGVjdCIsInBhZGRpbmdSaWdodCIsInBsYWNlaG9sZGVyIiwibWFyZ2luVG9wIiwicmVzZXRTZWFyY2giLCJyZWZyZXNoIiwicmVuZGVyVG9vbEJ1dHRvbnMiLCJleHBhbmRJY29uIiwiZXhwYW5kZWQiLCJvbkV4cGFuZCIsImUiLCJjaGlsZE5vZGVzIiwidGFibGVSZWxvYWQiLCJvblN1Ym1pdCIsIm9uSGlkZUZvcm0iLCJvbkZvcm1DaGFuZ2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBT0EsS0FBUCxJQUFnQkMsYUFBaEIs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YTs7QUFzeEJ2QixlQUFlMEIsUUFBZiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBQdXJlQ29tcG9uZW50IH0gZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCBUYWJsZSBmcm9tIFwiLi4vLi4vYmFzZS90YWJsZVwiO1xyXG5pbXBvcnQgVHJlZSBmcm9tIFwiLi4vLi4vYmFzZS90cmVlXCI7XHJcbmltcG9ydCBGb3JtIGZyb20gXCIuLi8uLi9iYXNlL2Zvcm1cIjtcclxuaW1wb3J0IEJ1dHRvbiBmcm9tIFwiLi4vLi4vYmFzZS9idXR0b25cIjtcclxuaW1wb3J0IE1vZGFsIGZyb20gXCIuLi8uLi9iYXNlL21vZGFsXCI7XHJcbmltcG9ydCBQb3BvdmVyIGZyb20gXCIuLi8uLi9iYXNlL3BvcG92ZXJcIjtcclxuaW1wb3J0IG1lc3NhZ2UgZnJvbSBcIi4uLy4uL2Jhc2UvbWVzc2FnZVwiO1xyXG5pbXBvcnQgSWNvbiBmcm9tIFwiLi4vLi4vYmFzZS9jb21tb24vSWNvbkZvbnRcIjtcclxuaW1wb3J0IHsgaWNvblR5cGUgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzXCI7XHJcbmltcG9ydCBFZGl0b3JGb3JtIGZyb20gXCIuL0Zvcm1cIjtcclxuaW1wb3J0IGNscyBmcm9tIFwiY2xhc3NuYW1lc1wiO1xyXG5pbXBvcnQgc3R5bGVzIGZyb20gXCIuL2luZGV4Lm1vZHVsZS5sZXNzXCI7XHJcbmltcG9ydCBTdG9yZSwgeyBQYWdlU3RvcmUsIFN0b3JlUHJvcHMgfSBmcm9tIFwiQGJqLW5zYy9tc25cIjtcclxuaW1wb3J0IENvbCBmcm9tIFwiLi4vLi4vYmFzZS9ncmlkL0NvbFwiO1xyXG5pbXBvcnQgUm93IGZyb20gXCIuLi8uLi9iYXNlL2dyaWQvUm93XCI7XHJcbmltcG9ydCB7XHJcbiAgRG93bk91dGxpbmVkLFxyXG4gIFVwT3V0bGluZWQsXHJcbiAgRXllT3V0bGluZWQsXHJcbiAgRWRpdE91dGxpbmVkLFxyXG4gIFJpZ2h0T3V0bGluZWQsXHJcbn0gZnJvbSBcIkBhbnQtZGVzaWduL2ljb25zXCI7XHJcbmltcG9ydCB7IGdldExlc3MsIGdldE5vZGUgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcclxuaW1wb3J0IHJlcXVlc3QgZnJvbSBcIm5zYy1yZXF1ZXN0XCI7XHJcbmltcG9ydCBvbWl0IGZyb20gXCJvbWl0LmpzXCI7XHJcbmltcG9ydCBjb25maWcgZnJvbSBcIi4uLy4uL2NvbmZpZ1wiO1xyXG5pbXBvcnQgeyBnZXRTdG9yYWdlIH0gZnJvbSBcIkBiai1uc2MvZnVuY3Rpb25zXCI7XHJcbmludGVyZmFjZSBUYWJsZVByb3BzIHtcclxuICBhY3Rpb25Db2x1bW4/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuaTjeS9nOWIl1xyXG4gIHN0b3JlPzogU3RvcmVQcm9wcztcclxuICBmaWx0ZXJDb2x1bW4/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuui/h+a7pOaMiemSrlxyXG4gIHNob3dSb3dTZWxlY3Rpb24/OiBib29sZWFuOyAvL+aYr+WQpuihqOagvOWLvumAieWIl1xyXG4gIHBhZ2luYXRpb24/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuWIhumhtVxyXG4gIGNvbHVtbk9yZGVyPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrooajmoLzluo/liJdcclxuICBbcHJvcHNOYW1lOiBzdHJpbmddOiBhbnk7XHJcbn1cclxuaW50ZXJmYWNlIFRyZWVQcm9wcyB7XHJcbiAgc3RvcmU/OiBTdG9yZVByb3BzO1xyXG4gIHNob3dTZWFyY2g/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuaQnOe0ouahhlxyXG4gIHNlYXJjaEtleT86IHN0cmluZzsgLy/mkJzntKJ2YWx1ZeWvueW6lOeahGtleVxyXG4gIHNlYXJjaEZpZWxkPzogc3RyaW5nOyAvL+afpeivouWvueW6lOeahGtleVxyXG4gIHRpdGxlQWxpYXM/OiBzdHJpbmc7IC8v5qCRdGl0bGXlr7nlupTnmoRrZXks6buY6K6kdGl0bGVcclxuICBub2RlUG9ycHM/OiBvYmplY3Q7XHJcbiAgW3Byb3BzTmFtZTogc3RyaW5nXTogYW55O1xyXG59XHJcbmludGVyZmFjZSBOU0NCYXNlQmFnZVByb3BzIHtcclxuICBzaG93U2VhcmNoPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrlpLTpg6jmkJzntKLmoI9cclxuICB0YWJsZVByb3BzPzogVGFibGVQcm9wczsgLy/ooajmoLzlj4LmlbBcclxuICB0cmVlUHJvcHM/OiBUcmVlUHJvcHM7IC8v5bem5L6n5qCR5Y+C5pWwXHJcbiAgc3VibWl0UGFyYW1zPzogT2JqZWN0OyAvL+a3u+WKoOWPguaVsO+8jOm7mOiupG1vdGhvZDpwb3N077yMIOWPguaVsOmAmui/h2RhdGHkvKDpgJJcclxuICBzdWJtaXRVcmw/OiBzdHJpbmc7XHJcbiAgb25TdWJtaXQ/OiAodmFsdWU/OiBhbnksIGxhYmVsPzogYW55KSA9PiB2b2lkO1xyXG4gIGNvbHVtbnM6IEFycmF5PE9iamVjdD47XHJcbiAgc2hvd0xlZnQ/OiBib29sZWFuOyAvL+aYr+WQpuaYvuekuuW3puS+p+ebruW9leagkVxyXG4gIHNob3dUb29sQnV0dG9uPzogYm9vbGVhbjsgLy/mmK/lkKbmmL7npLrmjInpkq7moI9cclxuICBlZGl0b3JGb3JtPzogYm9vbGVhbjsgLy/mmK/lkKbpnIDopoHooajljZXlip/og70gLCDkuLpmYWxzZSDnvJbovpHvvIzmn6XnnIvvvIzmlrDlop7lip/og73lnYfkuI3lj6/nlKhcclxuICBkZWxldGVVcmw/OiBzdHJpbmc7IC8v5Yig6ZmkdXJsXHJcbiAgb25EZWxldGU/OiAoc2VsZWN0ZWRLZXlzPzogQXJyYXk8YW55PikgPT4gdm9pZDsgLy/liKDpmaTlj4LmlbDvvIzpu5jorqRtb3Rob2Q6cG9zdO+8jCDlj4LmlbDpgJrov4dpZHPmi7zmjqXkvKDpgJLnu5nlkI7lj7BcclxuICBkZWxldGVQYXJhbXM/OiBPYmplY3Q7XHJcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XHJcbiAgb25TZWFyY2g/OiAodmFsdWU/OiBhbnkpID0+IHZvaWQ7XHJcbiAgaW5pdERhdGE/OiBhbnk7IC8v5Yid5aeL5YyW5Zue6LCD5Ye95pWw77yM5ZyoY29tcG9uZW50RGlkTW91bnTkuK3osIPnlKhcclxuICBidXR0b25zPzogQXJyYXk8c3RyaW5nPjsgLy/mjInpkq7pm4blkIggIFsnYWRkJywnZGVsZXRlJywnc2VhcmNoJywnZWRpdG9yJ11cclxuICBvblNob3dGb3JtPzogKHZhbHVlPzogYW55LCBlZGl0b3JGbGFnPzogc3RyaW5nKSA9PiB2b2lkOyAvL+aJk+W8gOihqOWNleWbnuiwg1xyXG4gIG9uSGlkZUZvcm0/OiAoKSA9PiB2b2lkOyAvL+aJk+W8gOihqOWNleWbnuiwg1xyXG4gIG9uRm9ybUNoYW5nZT86IChjaGFuZ2VkVmFsdWVzPzogYW55LCBhbGxWYWx1ZXM/OiBhbnkpID0+IHZvaWQ7IC8v6KGo5Y2Vb25DaGFuZ2Xlm57osINcclxuICBmb3JtVHlwZT86IFwibW9kYWxcIiB8IFwiZHJhd2VyXCI7XHJcbiAgZm9ybUNoYW5nZVZhbGlkPzogYm9vbGVhbjsgLy/ooajljZXmoKHpqoxcclxuICBjbGFzc05hbWU/OiBhbnk7XHJcbiAgYWN0aW9uQ29sdW1ucz86IEFycmF5PGFueT47XHJcbn1cclxuXHJcbmNsYXNzIEJhc2VQYWdlIGV4dGVuZHMgUHVyZUNvbXBvbmVudDxOU0NCYXNlQmFnZVByb3BzLCBhbnk+IHtcclxuICB0YWJsZVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgdHJlZVJlZiA9IFJlYWN0LmNyZWF0ZVJlZjxhbnk+KCk7XHJcbiAgc2VhcmNoUmVmID0gUmVhY3QuY3JlYXRlUmVmPGFueT4oKTtcclxuICBlZGl0b3JSZWYgPSBSZWFjdC5jcmVhdGVSZWY8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcm9wczogYW55KSB7XHJcbiAgICBzdXBlcihwcm9wcyk7XHJcbiAgICBsZXQgeyBzdG9yZVByZWZpeCB9ID0gY29uZmlnKCk7XHJcbiAgICBsZXQgdHlwZSA9IGdldFN0b3JhZ2UoXHJcbiAgICAgIHN0b3JlUHJlZml4ID8gc3RvcmVQcmVmaXggKyBcIi1cIiArIFwiZm9ybVR5cGVcIiA6IFwiZm9ybVR5cGVcIlxyXG4gICAgKTtcclxuICAgIHR5cGUgPSB0eXBlPy5jb250ZW50O1xyXG4gICAgbGV0IHNpemUgPSBnZXRTdG9yYWdlKFxyXG4gICAgICBzdG9yZVByZWZpeCA/IHN0b3JlUHJlZml4ICsgXCItXCIgKyBcInRhYmxlU2l6ZVwiIDogXCJ0YWJsZVNpemVcIlxyXG4gICAgKTtcclxuICAgIHR5cGUgPSB0eXBlPy5jb250ZW50O1xyXG4gICAgc2l6ZSA9IHNpemU/LmNvbnRlbnQ7XHJcbiAgICB0aGlzLnN0YXRlID0ge1xyXG4gICAgICB0eXBlOiBcImFkZFwiLFxyXG4gICAgICBzZWxlY3RlZFJvd0tleXM6IFtdLFxyXG4gICAgICBzZWxlY3RlZFJvd0RhdGFzOiBbXSxcclxuICAgICAgdHJlZVNlbGVjdGVkS2V5OiBcIlwiLFxyXG4gICAgICBleHBhbmQ6IGZhbHNlLFxyXG4gICAgICBmb3JtVHlwZTogdHlwZSB8fCBcIm1vZGFsXCIsXHJcbiAgICAgIHRhYmxlU2l6ZTogc2l6ZSB8fCBcImRlZmF1bHRcIixcclxuICAgIH07XHJcbiAgfVxyXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xyXG4gICAgY29uc3QgeyBpbml0RGF0YSB9ID0gdGhpcy5wcm9wcztcclxuICAgIGluaXREYXRhICYmIGluaXREYXRhKCk7XHJcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcIm1lc3NhZ2VcIiwgdGhpcy5saXN0ZW5NZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xyXG4gICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtZXNzYWdlXCIsIHRoaXMubGlzdGVuTWVzc2FnZSk7XHJcbiAgfVxyXG4gIGxpc3Rlbk1lc3NhZ2UgPSAoZXYpID0+IHtcclxuICAgIGNvbnN0IGRhdGEgPSB0eXBlb2YgZXYuZGF0YSA9PT0gXCJzdHJpbmdcIiA/IEpTT04ucGFyc2UoZXYuZGF0YSkgOiBldi5kYXRhO1xyXG4gICAgbGV0IF90aGlzID0gdGhpcztcclxuICAgIGlmIChkYXRhLmV2ZW50VHlwZSA9PSBcImNoYW5nZUZvcm1UeXBlXCIpIHtcclxuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBkYXRhO1xyXG4gICAgICBpZiAocGF5bG9hZC50eXBlID09IFwibW9kYWxcIiB8fCBwYXlsb2FkLnR5cGUgPT0gXCJkcmF3ZXJcIikge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgZm9ybVR5cGU6IHBheWxvYWQudHlwZSB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKGRhdGEuZXZlbnRUeXBlID09IFwiY2hhbmdlVGFibGVTaXplXCIpIHtcclxuICAgICAgY29uc3QgeyBwYXlsb2FkIH0gPSBkYXRhO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgcGF5bG9hZC5zaXplID09IFwiZGVmYXVsdFwiIHx8XHJcbiAgICAgICAgcGF5bG9hZC5zaXplID09IFwic21hbGxcIiB8fFxyXG4gICAgICAgIHBheWxvYWQuc2l6ZSA9PSBcIm1pZGRsZVwiXHJcbiAgICAgICkge1xyXG4gICAgICAgIF90aGlzLnNldFN0YXRlKHsgdGFibGVTaXplOiBwYXlsb2FkLnNpemUgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9O1xyXG4gIG9uU2VsZWN0ID0gKGNoZWNrZWRUcmVlS2V5czogYW55KSA9PiB7XHJcbiAgICBjb25zdCB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgY29uc3QgdmFsdWUgPSB7IG5hbWUsIHVzZXJUeXBlLCBhY2NvdW50LCBkZXB0SWQ6IGNoZWNrZWRUcmVlS2V5c1swXSB9O1xyXG4gICAgdGhpcy50YWJsZUxvYWQodmFsdWUpO1xyXG4gIH07XHJcblxyXG4gIC8v5pi+56S66KGo5Y2VXHJcbiAgc2hvd0Zvcm0odmFsdWU/OiBhbnksIGVkaXRvcmZsYWcgPSBcImFkZFwiKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5zaG93KHZhbHVlLCBlZGl0b3JmbGFnKTtcclxuICB9XHJcblxyXG4gIC8v5YWz6Zet6KGo5Y2VXHJcbiAgaGlkZUZvcm0oKSB7XHJcbiAgICB0aGlzLmVkaXRvclJlZi5jdXJyZW50Py5oaWRlRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgLy/mibnph4/liKDpmaRcclxuICBvbkRlbGV0ZSgpIHtcclxuICAgIGNvbnN0IHsgZGVsZXRlVXJsLCBvbkRlbGV0ZSwgZGVsZXRlUGFyYW1zIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgeyBzZWxlY3RlZFJvd0tleXMgfSA9IHRoaXMuc3RhdGU7XHJcbiAgICBpZiAoc2VsZWN0ZWRSb3dLZXlzLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgIG1lc3NhZ2Uud2FybmluZyhcIuivt+mAieaLqeimgeWIoOmZpOeahOaVsOaNru+8gVwiKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKG9uRGVsZXRlKSB7XHJcbiAgICAgIG9uRGVsZXRlICYmIG9uRGVsZXRlKHNlbGVjdGVkUm93S2V5cyk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICghZGVsZXRlVXJsKSB7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcihcInVybOS4jeiDveS4uuepuu+8gVwiKTtcclxuICAgIH1cclxuICAgIE1vZGFsLmNvbmZpcm0oe1xyXG4gICAgICB0aXRsZTogXCLmmK/lkKbnoa7orqTliKDpmaTmiYDpgInpobnvvJ9cIixcclxuICAgICAgb2tUZXh0OiBcIuehruiupFwiLFxyXG4gICAgICBjYW5jZWxUZXh0OiBcIuWPlua2iFwiLFxyXG4gICAgICBvbk9rOiAoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdFBhcmFtcyA9IHtcclxuICAgICAgICAgIG1ldGhvZDogXCJwb3N0XCIsXHJcbiAgICAgICAgICBwYXJhbXM6IHsgaWRzOiBzZWxlY3RlZFJvd0tleXMuam9pbigpIH0sXHJcbiAgICAgICAgfTtcclxuICAgICAgICBsZXQgcmVxdWVzdFBhcmFtcyA9IHt9IGFzIGFueTtcclxuICAgICAgICBpZiAoZGVmYXVsdFBhcmFtcykge1xyXG4gICAgICAgICAgcmVxdWVzdFBhcmFtcyA9IHsgLi4uZGVsZXRlUGFyYW1zIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlcXVlc3RQYXJhbXMgPSB7IC4uLmRlZmF1bHRQYXJhbXMgfTtcclxuICAgICAgICByZXF1ZXN0KGRlbGV0ZVVybCwge1xyXG4gICAgICAgICAgLi4ucmVxdWVzdFBhcmFtcyxcclxuICAgICAgICB9KVxyXG4gICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlczogYW55KSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgY29kZSB9ID0gcmVzO1xyXG4gICAgICAgICAgICBpZiAoY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgICAgbWVzc2FnZS5zdWNjZXNzKFwi5Yig6Zmk5oiQ5Yqf77yBXCIpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgIG1lc3NhZ2UuZXJyb3IoXCLliKDpmaTlpLHotKXvvIFcIik7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgICAuY2F0Y2goZnVuY3Rpb24gKGVycm9yOiBhbnkpIHtcclxuICAgICAgICAgICAgY29uc29sZS5sb2coXCJlcnJvclwiLCBlcnJvcik7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxuICB0YWJsZUxvYWQocGFyYW1zOiBhbnkpIHtcclxuICAgIHRoaXMudGFibGVSZWYuY3VycmVudD8uc3RvcmUubG9hZCh7XHJcbiAgICAgIHBhcmFtczogcGFyYW1zLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIC8v5p+l6K+iXHJcbiAgb25TZWFyY2goKSB7XHJcbiAgICBjb25zdCB7IG9uU2VhcmNoIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIGlmIChvblNlYXJjaCkge1xyXG4gICAgICBvblNlYXJjaChmcm9tVmFsdWUpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnRhYmxlTG9hZChmcm9tVmFsdWUpO1xyXG4gIH1cclxuICAvL+ihqOagvOmHjeaWsOWKoOi9vVxyXG4gIHRhYmxlUmVsb2FkKCkge1xyXG4gICAgdGhpcy50YWJsZVJlZi5jdXJyZW50Py5zdG9yZS5yZWxvYWQoKTtcclxuICB9XHJcbiAgZ2V0U2VsZWN0ZWRSb3dLZXlzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc2VsZWN0ZWRSb3dLZXlzO1xyXG4gIH1cclxuICBnZXRTZWxlY3RlZFJvd0RhdGFzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc2VsZWN0ZWRSb3dEYXRhcztcclxuICB9XHJcbiAgZ2V0U2VhcmNoVmFsdWVzKCkge1xyXG4gICAgY29uc3QgZnJvbVZhbHVlID0gdGhpcy5zZWFyY2hSZWYuY3VycmVudD8uZ2V0RmllbGRzVmFsdWUoKTtcclxuICAgIHJldHVybiBmcm9tVmFsdWU7XHJcbiAgfVxyXG4gIHJvd1NlbGVjdGlvbk9uU2VsZWN0KHJlY29yZDogYW55LCBzZWxlY3RlZDogYW55KSB7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkUm93S2V5cywgc2VsZWN0ZWRSb3dEYXRhcyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBuZXdTZWxlY3RlZFJvd0tleXMgPSBbLi4uc2VsZWN0ZWRSb3dLZXlzXTtcclxuICAgIGxldCBuZXdTZWxlY3RlZFJvd0RhdGFzID0gWy4uLnNlbGVjdGVkUm93RGF0YXNdO1xyXG4gICAgaWYgKHNlbGVjdGVkKSB7XHJcbiAgICAgIG5ld1NlbGVjdGVkUm93S2V5cyA9IFsuLi5uZXdTZWxlY3RlZFJvd0tleXMsIHJlY29yZC5pZF07XHJcbiAgICAgIG5ld1NlbGVjdGVkUm93RGF0YXMgPSBbLi4ubmV3U2VsZWN0ZWRSb3dEYXRhcywgcmVjb3JkXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNlbGVjdGVkUm93S2V5cy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChpdGVtID09PSByZWNvcmQuaWQpIHtcclxuICAgICAgICAgIG5ld1NlbGVjdGVkUm93S2V5cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHNlbGVjdGVkUm93RGF0YXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoaXRlbS5pZCA9PT0gcmVjb3JkLmlkKSB7XHJcbiAgICAgICAgICBuZXdTZWxlY3RlZFJvd0RhdGFzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICBzZWxlY3RlZFJvd0tleXM6IG5ld1NlbGVjdGVkUm93S2V5cyxcclxuICAgICAgc2VsZWN0ZWRSb3dEYXRhczogbmV3U2VsZWN0ZWRSb3dEYXRhcyxcclxuICAgIH0pO1xyXG4gIH1cclxuICByb3dTZWxlY3Rpb25PblNlbGVjdEFsbChzZWxlY3RlZDogYW55LCBzZWxlY3RlZFJvd3M6IGFueSwgY2hhbmdlUm93czogYW55KSB7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkUm93S2V5cywgc2VsZWN0ZWRSb3dEYXRhcyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGxldCBuZXdpZHM6IGFueSA9IFtdO1xyXG4gICAgbGV0IG5ld2RhdGFzOiBhbnkgPSBbXTtcclxuICAgIGlmIChjaGFuZ2VSb3dzLmxlbmd0aCA+IDApIHtcclxuICAgICAgbGV0IGNoYW5nZUlkcyA9IGNoYW5nZVJvd3MubWFwKChpdGVtOiBhbnkpID0+IGl0ZW0uaWQpO1xyXG4gICAgICBpZiAoc2VsZWN0ZWQpIHtcclxuICAgICAgICBuZXdpZHMgPSBbLi4uc2VsZWN0ZWRSb3dLZXlzLCAuLi5jaGFuZ2VJZHNdO1xyXG4gICAgICAgIG5ld2RhdGFzID0gWy4uLnNlbGVjdGVkUm93RGF0YXMsIC4uLmNoYW5nZVJvd3NdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHNlbGVjdGVkUm93S2V5cy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNoYW5nZUlkcy5pbmRleE9mKGl0ZW0pID09IC0xKSB7XHJcbiAgICAgICAgICAgIG5ld2lkcy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHNlbGVjdGVkUm93RGF0YXMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChjaGFuZ2VJZHMuaW5kZXhPZihpdGVtLmlkKSA9PSAtMSkge1xyXG4gICAgICAgICAgICBuZXdkYXRhcy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBuZXdpZHMgPSBbLi4uc2VsZWN0ZWRSb3dLZXlzXTtcclxuICAgICAgbmV3ZGF0YXMgPSBbLi4uc2VsZWN0ZWRSb3dEYXRhc107XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgc2VsZWN0ZWRSb3dLZXlzOiBbLi4ubmV3aWRzXSxcclxuICAgICAgc2VsZWN0ZWRSb3dEYXRhczogWy4uLm5ld2RhdGFzXSxcclxuICAgIH0pO1xyXG4gIH1cclxuICByZW5kZXJUb29sQnV0dG9ucyh0b29sYnV0dG9uczogYW55KSB7XHJcbiAgICBjb25zdCBmbGFnID0gdG9vbGJ1dHRvbnMubGVuZ3RoID4gNTtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0b29sYnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgaWNvbiwgc2hvdywgLi4ucGFyYW1zIH0gPSBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAoaW5kZXggPiA0KSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImNvbnRlbnQtaXRlbVwiKVxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9PntjaGlsZHJlbn08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiAoXHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRvb2wtYnV0dG9uc1wiKX1cclxuICAgICAgICBzdHlsZT17eyBtYXJnaW5MZWZ0OiAwIH19XHJcbiAgICAgID5cclxuICAgICAgICB7dG9vbGJ1dHRvbnMubWFwKChpdGVtOiBhbnksIGluZGV4OiBhbnkpID0+IHtcclxuICAgICAgICAgIGlmIChmbGFnKSB7XHJcbiAgICAgICAgICAgIGlmIChpbmRleCA8IDQpIHtcclxuICAgICAgICAgICAgICByZXR1cm4gPGRpdiBrZXk9e2luZGV4fT57aXRlbX08L2Rpdj47XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT0gNCkge1xyXG4gICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICA8UG9wb3ZlclxyXG4gICAgICAgICAgICAgICAgICBjb250ZW50PXtjb250ZW50fVxyXG4gICAgICAgICAgICAgICAgICB0aXRsZT17bnVsbH1cclxuICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tXCJcclxuICAgICAgICAgICAgICAgICAgdHJpZ2dlcj17W1wiY2xpY2tcIl19XHJcbiAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XHJcbiAgICAgICAgICAgICAgICAgIC8vIG92ZXJsYXlDbGFzc05hbWU9e3N0eWxlc1sncG9wLWJveCddfVxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICA8QnV0dG9uIHR5cGU9XCJwcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAg5pu05aSaIDxEb3duT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L1BvcG92ZXI+XHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0+e2l0ZW19PC9kaXY+O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pfVxyXG4gICAgICA8L2Rpdj5cclxuICAgICk7XHJcbiAgfVxyXG4gIHJlbmRlckNsb3VtbkJ1dHRvbihjb2x1bW5CdXR0b25zOiBhbnksIHJlY29yZDogYW55KSB7XHJcbiAgICBjb25zdCB7IGVkaXRvckZvcm0gPSB0cnVlLCBidXR0b25zID0gW10gfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCBuZXdCdXR0b25zID0gW107XHJcbiAgICBjb2x1bW5CdXR0b25zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY2hpbGRyZW4sIHBhZ2VUeXBlLCBvbkNsaWNrLCBpY29uLCByZWNvcmRTaG93LCAuLi5wYXJhbXMgfSA9XHJcbiAgICAgICAgaXRlbS5wcm9wcztcclxuICAgICAgaWYgKHJlY29yZFNob3cpIHtcclxuICAgICAgICBpZiAoZXZhbChyZWNvcmRTaG93KSkge1xyXG4gICAgICAgICAgbmV3QnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBuZXdCdXR0b25zLnB1c2goaXRlbSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgY29uc3QgZmxhZyA9IG5ld0J1dHRvbnMubGVuZ3RoID4gMztcclxuXHJcbiAgICBjb25zdCBjb250ZW50ID0gbmV3QnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgaWNvbiwgc2hvdywgLi4ucGFyYW1zIH0gPSBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAoaW5kZXggPiAxKSB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbHMoXHJcbiAgICAgICAgICAgICAgZ2V0TGVzcyhzdHlsZXMsIFwiZWRpdG9yXCIpLFxyXG4gICAgICAgICAgICAgIGdldExlc3Moc3R5bGVzLCBcImNvbnRlbnQtaXRlbVwiKVxyXG4gICAgICAgICAgICApfVxyXG4gICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgb25DbGljayAmJiBvbkNsaWNrKHJlY29yZCk7XHJcbiAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgIHsuLi5wYXJhbXN9XHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9PntjaGlsZHJlbn08L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gbmV3QnV0dG9ucy5tYXAoKGl0ZW06IGFueSwgaW5kZXg6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB7IGNoaWxkcmVuLCBwYWdlVHlwZSwgb25DbGljaywgaWNvbiwgLi4ucGFyYW1zIH0gPSBpdGVtLnByb3BzO1xyXG4gICAgICBpZiAoZmxhZykge1xyXG4gICAgICAgIGlmIChpbmRleCA8IDIpIHtcclxuICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKX1cclxuICAgICAgICAgICAgICBrZXk9e2luZGV4fVxyXG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljayhyZWNvcmQpO1xyXG4gICAgICAgICAgICAgIH19XHJcbiAgICAgICAgICAgICAgey4uLnBhcmFtc31cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiaWNvblwiKX0+e2ljb259PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwidGV4dFwiKX0+e2NoaWxkcmVufTwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT0gMikge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPFBvcG92ZXJcclxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b21cIlxyXG4gICAgICAgICAgICAgIHRpdGxlPXtudWxsfVxyXG4gICAgICAgICAgICAgIGNvbnRlbnQ9e2NvbnRlbnR9XHJcbiAgICAgICAgICAgICAgdHJpZ2dlcj17W1wiY2xpY2tcIl19XHJcbiAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAvLyBvdmVybGF5Q2xhc3NOYW1lPXtzdHlsZXNbJ3BvcCddfVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKX0+XHJcbiAgICAgICAgICAgICAgICAmbmJzcDsg5pu05aSaXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PlxyXG4gICAgICAgICAgICAgICAgICA8RG93bk91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvUG9wb3Zlcj5cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKX1cclxuICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xyXG4gICAgICAgICAgICAgIG9uQ2xpY2sgJiYgb25DbGljayhyZWNvcmQpO1xyXG4gICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICB7Li4ucGFyYW1zfVxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImljb25cIil9PntpY29ufTwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT57Y2hpbGRyZW59PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG4gIC8v5qCR54K55Ye75LqL5Lu2XHJcbiAgdHJlZVNlbGVjdChzZWxlY3RlZEtleXM6IGFueSwgeyBzZWxlY3RlZCwgc2VsZWN0ZWROb2RlcyB9OiBhbnkpIHtcclxuICAgIGxldCBrZXl3b3JkID0gXCJcIjtcclxuICAgIGNvbnN0IHsgc2VhcmNoS2V5ID0gXCJrZXlcIiwgc2VhcmNoRmllbGQgPSBcIlwiIH0gPSB0aGlzLnByb3BzLnRyZWVQcm9wcztcclxuICAgIGNvbnN0IHsgdHJlZVNlbGVjdGVkS2V5IH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgaWYgKHNlbGVjdGVkKSB7XHJcbiAgICAgIGlmIChzZWxlY3RlZE5vZGVzWzBdLmlzTGVhZiB8fCAhc2VsZWN0ZWROb2Rlc1swXS5jaGlsZHJlbikge1xyXG4gICAgICAgIGlmIChzZWxlY3RlZEtleXNbMF0gIT09IHRyZWVTZWxlY3RlZEtleSkge1xyXG4gICAgICAgICAgLy8gbGV0IG1hcERhdGEgPSB0aGlzLnRyZWVSZWYuY3VycmVudD8uc3RvcmUuZ2V0RmxhdHRlbkRhdGEoKTtcclxuICAgICAgICAgIGtleXdvcmQgPSBzZWxlY3RlZE5vZGVzWzBdLmRhdGFyZWYuYXR0cmlidXRlW3NlYXJjaEtleV07XHJcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgdHJlZVNlbGVjdGVkS2V5OiBzZWxlY3RlZEtleXNbMF0sXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgIHRyZWVTZWxlY3RlZEtleToga2V5d29yZCxcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBmcm9tVmFsdWUgPSB0aGlzLnNlYXJjaFJlZi5jdXJyZW50Py5nZXRGaWVsZHNWYWx1ZSgpO1xyXG4gICAgc2VhcmNoRmllbGQgJiYgdGhpcy50YWJsZUxvYWQoeyAuLi5mcm9tVmFsdWUsIFtzZWFyY2hGaWVsZF06IGtleXdvcmQgfSk7XHJcbiAgfVxyXG4gIHJlc2V0U2VhcmNoKCkge1xyXG4gICAgdGhpcy5zZWFyY2hSZWYuY3VycmVudD8ucmVzZXRGaWVsZHMoKTtcclxuICB9XHJcbiAgZ2V0VGV4dChwcm9wcywgdGV4dCkge1xyXG4gICAgbGV0IG5ld1RleHQgPSB0ZXh0O1xyXG4gICAgaWYgKHByb3BzPy5kYXRhICYmIHByb3BzPy5kYXRhPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIGxldCBkYXRhID0gcHJvcHMuZGF0YTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhPy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChkYXRhW2ldLnZhbHVlID09IHRleHQpIHtcclxuICAgICAgICAgIG5ld1RleHQgPSBkYXRhW2ldLmxhYmVsO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ld1RleHQ7XHJcbiAgfVxyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkUm93S2V5cyB9ID0gdGhpcy5zdGF0ZTtcclxuICAgIGNvbnN0IHtcclxuICAgICAgY29sdW1ucyA9IFtdLFxyXG4gICAgICBzaG93U2VhcmNoID0gdHJ1ZSxcclxuICAgICAgY2hpbGRyZW4sXHJcbiAgICAgIHN1Ym1pdFVybCA9IFwiXCIsXHJcbiAgICAgIHRhYmxlUHJvcHMgPSB7fSxcclxuICAgICAgdHJlZVByb3BzID0ge30sXHJcbiAgICAgIHNob3dMZWZ0ID0gZmFsc2UsXHJcbiAgICAgIHN1Ym1pdFBhcmFtcyA9IHt9LFxyXG4gICAgICBzaG93VG9vbEJ1dHRvbiA9IHRydWUsXHJcbiAgICAgIGJ1dHRvbnMgPSBbXSxcclxuICAgICAgZWRpdG9yRm9ybSA9IHRydWUsXHJcbiAgICAgIG9uU2hvd0Zvcm0sXHJcbiAgICAgIGZvcm1DaGFuZ2VWYWxpZCA9IHRydWUsXHJcbiAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgYWN0aW9uQ29sdW1ucyA9IFtdLFxyXG4gICAgfSA9IHRoaXMucHJvcHM7XHJcbiAgICBjb25zdCB7XHJcbiAgICAgIHN0b3JlID0ge30sXHJcbiAgICAgIGZpbHRlckNvbHVtbiA9IHRydWUsXHJcbiAgICAgIGFjdGlvbkNvbHVtbiA9IHRydWUsXHJcbiAgICAgIHNob3dSb3dTZWxlY3Rpb24gPSB0cnVlLFxyXG4gICAgICBjb2x1bW5PcmRlciA9IHRydWUsXHJcbiAgICAgIC4uLm90aGVydGFibGVQYXJhbXNcclxuICAgIH0gPSB0YWJsZVByb3BzO1xyXG5cclxuICAgIGNvbnN0IHtcclxuICAgICAgc3RvcmU6IHRyZWVTdG9yZSA9IHt9LFxyXG4gICAgICBzaG93U2VhcmNoOiB0cmVlU2VhcmNoID0gdHJ1ZSxcclxuICAgICAgdGl0bGVBbGlhcyA9IFwidGl0bGVcIixcclxuICAgICAgLi4ub3RoZXJ0cmVlUGFyYW1zXHJcbiAgICB9ID0gdHJlZVByb3BzO1xyXG5cclxuICAgIGxldCB0YWJsZVBhcmFtcyA9IHsgZmlsdGVyQ29sdW1uLCBzdG9yZSwgLi4ub3RoZXJ0YWJsZVBhcmFtcyB9IGFzIGFueTtcclxuXHJcbiAgICBpZiAoc2hvd1Jvd1NlbGVjdGlvbikge1xyXG4gICAgICB0YWJsZVBhcmFtcyA9IHtcclxuICAgICAgICAuLi50YWJsZVBhcmFtcyxcclxuICAgICAgICByb3dTZWxlY3Rpb246IHtcclxuICAgICAgICAgIHNlbGVjdGVkUm93S2V5czogc2VsZWN0ZWRSb3dLZXlzLFxyXG4gICAgICAgICAgb25TZWxlY3Q6IHRoaXMucm93U2VsZWN0aW9uT25TZWxlY3QuYmluZCh0aGlzKSxcclxuICAgICAgICAgIG9uU2VsZWN0QWxsOiB0aGlzLnJvd1NlbGVjdGlvbk9uU2VsZWN0QWxsLmJpbmQodGhpcyksXHJcbiAgICAgICAgICBjb2x1bW5XaWR0aDogNDAsXHJcbiAgICAgICAgfSxcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGxldCB0YWJsZUNvbHVtbjogYW55W10gPSBbXTtcclxuICAgIGNvbnN0IHNlYXJjaEZvcm1zOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IGVkaXRvckZvcm1zOiBhbnkgPSBbXTtcclxuICAgIGNvbnN0IGRlZmF1bHRWYWx1ZTogYW55ID0ge307XHJcbiAgICBjb25zdCBjb2x1bW5CdXR0b25zOiBhbnkgPSBbXTtcclxuICAgIGNvbHVtbnMubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgbGV0IHRlbXAgPSB7IC4uLml0ZW0gfTtcclxuICAgICAgaWYgKHRlbXAuc2VhcmNoKSB7XHJcbiAgICAgICAgc2VhcmNoRm9ybXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiB0ZW1wLmZpZWxkIHx8IHRlbXAuZGF0YUluZGV4LFxyXG4gICAgICAgICAgbGFiZWw6IHRlbXAudGl0bGUsXHJcbiAgICAgICAgICB0eXBlOiB0ZW1wLnR5cGUsXHJcbiAgICAgICAgICBwcm9wczogdGVtcC5wcm9wcyxcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBkZWxldGUgdGVtcC5zZWFyY2g7XHJcbiAgICAgIHRlbXAuZWRpdG9yICE9PSBmYWxzZSAmJlxyXG4gICAgICAgIGVkaXRvckZvcm1zLnB1c2goe1xyXG4gICAgICAgICAgbmFtZTogdGVtcC5maWVsZCB8fCB0ZW1wLmRhdGFJbmRleCxcclxuICAgICAgICAgIGxhYmVsOiB0ZW1wLnRpdGxlLFxyXG4gICAgICAgICAgcnVsZXM6IHRlbXAucnVsZXMgPyB0ZW1wLnJ1bGVzIDogW10sXHJcbiAgICAgICAgICB0eXBlOiB0ZW1wLnR5cGUsXHJcbiAgICAgICAgICBzcGFuOiB0ZW1wLnNwYW4sXHJcbiAgICAgICAgICBkaWN0TmFtZTogdGVtcC5kaWN0TmFtZSxcclxuICAgICAgICAgIHByb3BzOiBvbWl0KHsgLi4udGVtcC5wcm9wcyB9LCBbXCJkZWZhdWx0VmFsdWVcIiwgXCJ2YWx1ZVwiXSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB0ZW1wLnByb3BzPy5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCAmJlxyXG4gICAgICAgIHRlbXAucHJvcHM/LmRlZmF1bHRWYWx1ZSAhPT0gbnVsbFxyXG4gICAgICApIHtcclxuICAgICAgICBjb25zdCBuYW1lID0gdGVtcC5maWVsZCB8fCB0ZW1wLmRhdGFJbmRleDtcclxuICAgICAgICBkZWZhdWx0VmFsdWVbbmFtZV0gPSB0ZW1wLnByb3BzPy5kZWZhdWx0VmFsdWU7XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAucnVsZXM7XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnNwYW47XHJcbiAgICAgIGlmICh0ZW1wLmNvbHVtblNlYXJjaCkge1xyXG4gICAgICAgIHRlbXAuZmlsdGVyUHJvcHMgPSB7XHJcbiAgICAgICAgICB0eXBlOiB0ZW1wLnR5cGUsXHJcbiAgICAgICAgICBwcm9wczogdGVtcC5wcm9wcyxcclxuICAgICAgICB9O1xyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZSB0ZW1wLnR5cGU7XHJcbiAgICAgIGxldCB0ZW1wUHJvcCA9IHsgLi4udGVtcC5wcm9wcyB9O1xyXG4gICAgICBpZiAodGVtcC5zdHlsZSkge1xyXG4gICAgICAgIHRlbXAgPSB7XHJcbiAgICAgICAgICByZW5kZXI6ICh0ZXh0OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICA8PlxyXG4gICAgICAgICAgICAgICAge3RleHQgIT09IFwiXCIgJiYgdGV4dCAhPT0gbnVsbCAmJiB0ZXh0ICE9PSB1bmRlZmluZWQgJiYgKFxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImNvbC1iYWNrXCIpfT5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImNvbC10ZXh0XCIpfT5cclxuICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLmdldFRleHQodGVtcFByb3AsIHRleHQpfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICA8Lz5cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBlbGxpcHNpczogdHJ1ZSxcclxuICAgICAgICAgIC4uLnRlbXAsXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0ZW1wID0ge1xyXG4gICAgICAgICAgcmVuZGVyOiAodGV4dDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiA8Pnt0aGlzLmdldFRleHQodGVtcFByb3AsIHRleHQpfTwvPjtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICAuLi50ZW1wLFxyXG4gICAgICAgIH07XHJcbiAgICAgIH1cclxuICAgICAgZGVsZXRlIHRlbXAucHJvcHM7XHJcbiAgICAgIGlmICh0ZW1wPy5jb2x1bW5TaG93ICE9PSBmYWxzZSkgdGFibGVDb2x1bW4ucHVzaCh0ZW1wKTtcclxuICAgIH0pO1xyXG4gICAgY29uc3Qgc2VsZkJ1dHRvbnM6IGFueSA9IFtdO1xyXG5cclxuICAgIGlmIChlZGl0b3JGb3JtID09IHRydWUpIHtcclxuICAgICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcInNlYXJjaFwiKSA+IC0xKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKX1cclxuICAgICAgICAgICAgb25DbGljaz17KHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKG9uU2hvd0Zvcm0pIHtcclxuICAgICAgICAgICAgICAgIG9uU2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZGV0YWlsXCIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNob3dGb3JtKHJlY29yZC5hdHRyaWJ1dGUgfHwgcmVjb3JkLCBcImRldGFpbFwiKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT5cclxuICAgICAgICAgICAgICA8RXllT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInRleHRcIil9Puafpeecizwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGJ1dHRvbnMuaW5kZXhPZihcImVkaXRvclwiKSA+IC0xKSB7XHJcbiAgICAgICAgY29sdW1uQnV0dG9ucy5wdXNoKFxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImVkaXRvclwiKX1cclxuICAgICAgICAgICAgb25DbGljaz17KHJlY29yZDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgaWYgKG9uU2hvd0Zvcm0pIHtcclxuICAgICAgICAgICAgICAgIG9uU2hvd0Zvcm0ocmVjb3JkLmF0dHJpYnV0ZSB8fCByZWNvcmQsIFwiZWRpdG9yXCIpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB0aGlzLnNob3dGb3JtKHJlY29yZC5hdHRyaWJ1dGUgfHwgcmVjb3JkLCBcImVkaXRvclwiKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJpY29uXCIpfT5cclxuICAgICAgICAgICAgICA8RWRpdE91dGxpbmVkIC8+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJ0ZXh0XCIpfT7nvJbovpE8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwiYWRkXCIpID4gLTEpIHtcclxuICAgICAgc2VsZkJ1dHRvbnMucHVzaChcclxuICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgeyBvblNob3dGb3JtIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgICAgICBpZiAob25TaG93Rm9ybSkge1xyXG4gICAgICAgICAgICAgIG9uU2hvd0Zvcm0oKTtcclxuICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgdGhpcy5zaG93Rm9ybSgpO1xyXG4gICAgICAgICAgfX1cclxuICAgICAgICAgIGljb249ezxJY29uIHR5cGU9e2ljb25UeXBlLmFkZH0gLz59XHJcbiAgICAgICAgPlxyXG4gICAgICAgICAg5re75YqgXHJcbiAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAoYnV0dG9ucy5pbmRleE9mKFwiZGVsZXRlXCIpID4gLTEpIHtcclxuICAgICAgc2VsZkJ1dHRvbnMucHVzaChcclxuICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAvLyB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgIG9uQ2xpY2s9e3RoaXMub25EZWxldGUuYmluZCh0aGlzKX1cclxuICAgICAgICAgIGljb249ezxJY29uIHR5cGU9e2ljb25UeXBlLmRlbGV0ZTN9IC8+fVxyXG4gICAgICAgICAgZGFuZ2VyXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAg5Yig6ZmkXHJcbiAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheShjaGlsZHJlbikpIHtcclxuICAgICAgY2hpbGRyZW4ubWFwKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoaXRlbT8ucHJvcHM/LnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgICBzZWxmQnV0dG9ucy5wdXNoKGl0ZW0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoaXRlbT8ucHJvcHM/LnBhZ2VUeXBlID09IFwiY2xvdW1uQnV0dG9uXCIpIHtcclxuICAgICAgICAgIGNvbHVtbkJ1dHRvbnMucHVzaChpdGVtKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIGlmIChjaGlsZHJlbikge1xyXG4gICAgICBjb25zdCB7IHByb3BzIH06IGFueSA9IGNoaWxkcmVuO1xyXG4gICAgICBpZiAocHJvcHM/LnBhZ2VUeXBlID09IFwidG9vbEJ1dHRvblwiKSB7XHJcbiAgICAgICAgc2VsZkJ1dHRvbnMucHVzaChjaGlsZHJlbik7XHJcbiAgICAgIH0gZWxzZSBpZiAocHJvcHM/LnBhZ2VUeXBlID09IFwiY2xvdW1uQnV0dG9uXCIpIHtcclxuICAgICAgICBjb2x1bW5CdXR0b25zLnB1c2goY2hpbGRyZW4pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgYWN0aW9uQ29sdW1uICYmXHJcbiAgICAgIHRhYmxlQ29sdW1uLnB1c2goe1xyXG4gICAgICAgIHRpdGxlOiBcIuaTjeS9nFwiLFxyXG4gICAgICAgIGRhdGFJbmRleDogXCJhY3Rpb25cIixcclxuICAgICAgICBhbGlnbjogXCJjZW50ZXJcIixcclxuICAgICAgICB3aWR0aDogMjUwLFxyXG4gICAgICAgIGZpeGVkOiBcInJpZ2h0XCIsXHJcbiAgICAgICAgZWxsaXBzaXM6IHRydWUsXHJcbiAgICAgICAgcmVuZGVyOiAodGV4dDogYW55LCByZWNvcmQ6IGFueSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImFjdGlvblwiKX0+XHJcbiAgICAgICAgICAgICAge3RoaXMucmVuZGVyQ2xvdW1uQnV0dG9uKGNvbHVtbkJ1dHRvbnMsIHJlY29yZCl9XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICAgIGNvbnN0IGhlYWRlckNvdW50ID0gc2hvd0xlZnQgPyAyIDogMztcclxuICAgIGlmIChjb2x1bW5PcmRlcilcclxuICAgICAgdGFibGVDb2x1bW4gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGl0bGU6IFwiI1wiLFxyXG4gICAgICAgICAgd2lkdGg6IDMwLFxyXG4gICAgICAgICAgYWxpZ246IFwiY2VudGVyXCIsXHJcbiAgICAgICAgICByZW5kZXI6ICh0ZXh0LCByZWFjb3JkLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gPD57aW5kZXggKyAxfTwvPjtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICAuLi50YWJsZUNvbHVtbixcclxuICAgICAgXTtcclxuICAgIGlmICh0YWJsZVByb3BzLnBhZ2luYXRpb24gIT09IGZhbHNlKSB7XHJcbiAgICAgIC8vIHNjcm9sbD17eyB4OiBcIm1heC1jb250ZW50XCIsIHk6IFwiMjV2d1wiIH19XHJcbiAgICAgIHRhYmxlUGFyYW1zID0geyBzY3JvbGw6IHsgeDogXCJtYXgtY29udGVudFwiLCB5OiBcIjI1dndcIiB9LCAuLi50YWJsZVBhcmFtcyB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIChcclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInBhZ2VcIiksIGNsYXNzTmFtZSl9XHJcbiAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogXCJmbGV4XCIgfX1cclxuICAgICAgPlxyXG4gICAgICAgIHtzaG93TGVmdCAmJiAoXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwibGVmdFwiKX0+XHJcbiAgICAgICAgICAgIDxUcmVlXHJcbiAgICAgICAgICAgICAgc3RvcmU9e3sgLi4udHJlZVN0b3JlIH19XHJcbiAgICAgICAgICAgICAgc2hvd0ljb249e2ZhbHNlfVxyXG4gICAgICAgICAgICAgIGNoZWNrYWJsZT17ZmFsc2V9XHJcbiAgICAgICAgICAgICAgc2VhcmNoYWJsZT17dHJlZVNlYXJjaH1cclxuICAgICAgICAgICAgICBvblNlbGVjdD17dGhpcy50cmVlU2VsZWN0LmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgc2VsZWN0ZWRLZXlzPXtbdGhpcy5zdGF0ZS50cmVlU2VsZWN0ZWRLZXldfVxyXG4gICAgICAgICAgICAgIHRpdGxlQWxpYXM9e3RpdGxlQWxpYXN9XHJcbiAgICAgICAgICAgICAgey4uLm90aGVydHJlZVBhcmFtc31cclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICl9XHJcbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcInJpZ2h0XCIpfT5cclxuICAgICAgICAgIHtzaG93U2VhcmNoICYmIChcclxuICAgICAgICAgICAgPFJvdyBndXR0ZXI9ezI0fSB3cmFwPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJoZWFkZXJcIil9PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NscyhnZXRMZXNzKHN0eWxlcywgXCJmb3JtXCIpKX0+XHJcbiAgICAgICAgICAgICAgICAgIHsvKiA8Um93IGd1dHRlcj17MjR9IHdyYXAgc3R5bGU9e3ttYXJnaW46MH19PiAqL31cclxuICAgICAgICAgICAgICAgICAgPEZvcm1cclxuICAgICAgICAgICAgICAgICAgICByZWY9e3RoaXMuc2VhcmNoUmVmfVxyXG4gICAgICAgICAgICAgICAgICAgIGxhYmVsQ29sPXt7fX1cclxuICAgICAgICAgICAgICAgICAgICB3cmFwcGVyQ29sPXt7fX1cclxuICAgICAgICAgICAgICAgICAgICBsYXlvdXQ9XCJpbmxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IHdpZHRoOiBcIjEwMCVcIiB9fVxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAge3NlYXJjaEZvcm1zLm1hcCgoaXRlbTogYW55LCBpbmRleDogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPiBoZWFkZXJDb3VudCAmJiAhdGhpcy5zdGF0ZS5leHBhbmQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1kPXt7IHNwYW46IDEyIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc209e3sgc3BhbjogMjQgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBsZz17eyBzcGFuOiA2IH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBwYWRkaW5nUmlnaHQ6IDAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxGb3JtLkl0ZW0gbGFiZWw9e2l0ZW0ubGFiZWx9IG5hbWU9e2l0ZW0ubmFtZX0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Z2V0Tm9kZShpdGVtLnR5cGUsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uaXRlbS5wcm9wcyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI6IGDor7fovpPlhaUke2l0ZW0ubGFiZWx9YCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvRm9ybS5JdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgICAgICAgICAgPENvbFxyXG4gICAgICAgICAgICAgICAgICAgICAgbWQ9e3sgc3BhbjogMTIgfX1cclxuICAgICAgICAgICAgICAgICAgICAgIHNtPXt7IHNwYW46IDI0IH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBsZz17eyBzcGFuOiA2IH19XHJcbiAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17eyBwYWRkaW5nUmlnaHQ6IDAgfX1cclxuICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwic2VhcmNoLWJ1dHRvbnNcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7IG1hcmdpblRvcDogMCB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT17XCJwcmltYXJ5XCJ9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17dGhpcy5vblNlYXJjaC5iaW5kKHRoaXMpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGljb249ezxJY29uIHR5cGU9e2ljb25UeXBlLnNlYXJjaH0gLz59XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICDmn6Xor6JcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPXtcInByaW1hcnlcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXt0aGlzLnJlc2V0U2VhcmNoLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj17PEljb24gdHlwZT17aWNvblR5cGUucmVmcmVzaH0gLz59XHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICDph43nva5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHtzZWFyY2hGb3Jtcy5sZW5ndGggPiAzICYmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2dldExlc3Moc3R5bGVzLCBcImFfc3R5bGVcIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZXhwYW5kIH0gPSB0aGlzLnN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBhbmQ6ICFleHBhbmQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dGhpcy5zdGF0ZS5leHBhbmQgPyBcIuaUtui1t1wiIDogXCLlsZXlvIBcIn1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0aGlzLnN0YXRlLmV4cGFuZCA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFVwT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEb3duT3V0bGluZWQgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L0NvbD5cclxuICAgICAgICAgICAgICAgICAgPC9Gb3JtPlxyXG4gICAgICAgICAgICAgICAgICB7LyogPC9Sb3c+ICovfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvUm93PlxyXG4gICAgICAgICAgKX1cclxuXHJcbiAgICAgICAgICB7c2hvd1Rvb2xCdXR0b24gJiYgdGhpcy5yZW5kZXJUb29sQnV0dG9ucyhzZWxmQnV0dG9ucyl9XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xzKGdldExlc3Moc3R5bGVzLCBcInRhYmxlXCIpKX0+XHJcbiAgICAgICAgICAgIDxUYWJsZVxyXG4gICAgICAgICAgICAgIHJlZj17dGhpcy50YWJsZVJlZn1cclxuICAgICAgICAgICAgICBjb2x1bW5zPXt0YWJsZUNvbHVtbn1cclxuICAgICAgICAgICAgICBleHBhbmRhYmxlPXt7XHJcbiAgICAgICAgICAgICAgICBleHBhbmRJY29uOiAoeyBleHBhbmRlZCwgb25FeHBhbmQsIHJlY29yZCB9KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPD5cclxuICAgICAgICAgICAgICAgICAgICAgIHtleHBhbmRlZCA/IChcclxuICAgICAgICAgICAgICAgICAgICAgICAgPERvd25PdXRsaW5lZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiBvbkV4cGFuZChyZWNvcmQsIGUpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Z2V0TGVzcyhzdHlsZXMsIFwiZXhwYW5kLWljb25cIil9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQuY2hpbGROb2RlcyAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPFJpZ2h0T3V0bGluZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiBvbkV4cGFuZChyZWNvcmQsIGUpfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtnZXRMZXNzKHN0eWxlcywgXCJleHBhbmQtaWNvblwiKX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgIGNvbHVtbk9yZGVyPXt0cnVlfVxyXG4gICAgICAgICAgICAgIGJvcmRlcmVkPXt0cnVlfVxyXG4gICAgICAgICAgICAgIHNpemU9e3RoaXMuc3RhdGUudGFibGVTaXplfVxyXG4gICAgICAgICAgICAgIHsuLi50YWJsZVBhcmFtc31cclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIHtlZGl0b3JGb3JtICYmIChcclxuICAgICAgICAgIDxFZGl0b3JGb3JtXHJcbiAgICAgICAgICAgIHJlZj17dGhpcy5lZGl0b3JSZWZ9XHJcbiAgICAgICAgICAgIGNhbGxCYWNrPXt0aGlzLnRhYmxlUmVsb2FkLmJpbmQodGhpcyl9XHJcbiAgICAgICAgICAgIGZvcm1Qcm9wcz17ZWRpdG9yRm9ybXN9XHJcbiAgICAgICAgICAgIHN1Ym1pdFVybD17c3VibWl0VXJsfVxyXG4gICAgICAgICAgICBzdWJtaXRQYXJhbXM9e3N1Ym1pdFBhcmFtc31cclxuICAgICAgICAgICAgb25TdWJtaXQ9e3RoaXMucHJvcHMub25TdWJtaXR9XHJcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17ZGVmYXVsdFZhbHVlfVxyXG4gICAgICAgICAgICBvbkhpZGVGb3JtPXt0aGlzLnByb3BzLm9uSGlkZUZvcm19XHJcbiAgICAgICAgICAgIG9uRm9ybUNoYW5nZT17dGhpcy5wcm9wcy5vbkZvcm1DaGFuZ2V9XHJcbiAgICAgICAgICAgIGZvcm1UeXBlPXt0aGlzLnByb3BzLmZvcm1UeXBlIHx8IHRoaXMuc3RhdGUuZm9ybVR5cGV9XHJcbiAgICAgICAgICAgIGNoYW5nZVZhbGlkPXtmb3JtQ2hhbmdlVmFsaWR9XHJcbiAgICAgICAgICAvPlxyXG4gICAgICAgICl9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGRlZmF1bHQgQmFzZVBhZ2U7XHJcbiJdfQ==
@@ -3,29 +3,31 @@
3
3
  height: 100%;
4
4
  display: flex;
5
5
  .left {
6
- width: 280px;
6
+ max-width: 265px;
7
7
  padding: 20px;
8
8
  margin-right: 15px;
9
9
  background: #fff;
10
10
  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 10%);
11
+ width: 20%;
11
12
  }
12
13
  .right {
13
14
  // margin-left: 30px;
14
15
  flex: 1;
15
- width: 900px;
16
+ width: calc(80% - 15px);
16
17
  background: #fff;
17
18
  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 10%);
18
19
  padding: 0 20px 20px 20px;
19
20
  .header {
20
21
  display: flex;
21
22
  margin-top: 20px;
22
- width:100%;
23
+ width: 100%;
23
24
  .form {
24
- :global {
25
- .ant-form-inline {
26
- max-width: 61vw !important;
27
- }
28
- }
25
+ width: 100%;
26
+ // :global {
27
+ // .ant-form-inline {
28
+ // max-width: 61vw !important;
29
+ // }
30
+ // }
29
31
  }
30
32
  :global {
31
33
  // .ant-form-inline {
@@ -126,6 +128,7 @@
126
128
  .a_style {
127
129
  line-height: 35px;
128
130
  color: var(--ant-primary-color);
131
+ // width: 60px;
129
132
  }
130
133
 
131
134
  .col-back {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nsc-react-component",
3
- "version": "2.2.21",
3
+ "version": "2.2.22",
4
4
  "description": "",
5
5
  "main": "lib/index.js",
6
6
  "scripts": {