@1money/react-ui 1.14.0-alpha.1 → 1.14.0-alpha.2

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.
@@ -101,6 +101,7 @@ var InputAmount = exports.InputAmount = function InputAmount(props) {
101
101
  var inputCaretPositionRef = (0, _react.useRef)(0);
102
102
  var prevValueRef = (0, _react.useRef)(null);
103
103
  var prevFocusRef = (0, _react.useRef)(false);
104
+ var pendingCaretSyncRef = (0, _react.useRef)(false);
104
105
  var _useState = (0, _react.useState)(null),
105
106
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
106
107
  _value = _useState2[0],
@@ -188,6 +189,7 @@ var InputAmount = exports.InputAmount = function InputAmount(props) {
188
189
  caretPos = Math.min(formattedNewVal.length + 1, caretPos + 1);
189
190
  }
190
191
  inputCaretPositionRef.current = truncatedFraction ? formattedNewVal.length : clampedByRange ? formattedNewVal.length : caretPos;
192
+ pendingCaretSyncRef.current = true;
191
193
  }
192
194
  if (typeof value === 'undefined') {
193
195
  if (val === '') {
@@ -218,8 +220,9 @@ var InputAmount = exports.InputAmount = function InputAmount(props) {
218
220
  var isMax = fakeWidth >= maxWidth;
219
221
  setWidth(Math.min(maxWidth, Math.max(fakeWidth, MIN_INPUT_WIDTH)));
220
222
  setIsMaxWidth(isMax);
221
- if (isFocus && (_value !== prevValueRef.current || !prevFocusRef.current)) {
223
+ if (isFocus && (_value !== prevValueRef.current || !prevFocusRef.current) && pendingCaretSyncRef.current) {
222
224
  scrollToEnd(true);
225
+ pendingCaretSyncRef.current = false;
223
226
  }
224
227
  prevValueRef.current = _value;
225
228
  prevFocusRef.current = isFocus;
@@ -366,4 +369,4 @@ var InputAmount = exports.InputAmount = function InputAmount(props) {
366
369
  });
367
370
  };
368
371
  var _default = exports["default"] = /*#__PURE__*/(0, _react.memo)(InputAmount);
369
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXRBbW91bnQvSW5wdXRBbW91bnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfYmlnbnVtYmVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9yZWFjdE51bWJlckZvcm1hdCIsIl9za2VsZXRvbiIsIl9TcGlubmVyIiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiTUlOX0lOUFVUX1dJRFRIIiwibm9ybWFsaXplTnVtYmVySW5wdXQiLCJ2YWwiLCJyZXBsYWNlIiwiY2xhbXBWYWx1ZUluUmFuZ2UiLCJtaW4iLCJtYXgiLCJpc05hTiIsImNsYW1wZWQiLCJjbGFtcGVkVmFsIiwiYm5WYWwiLCJCaWdOdW1iZXIiLCJtaW5CbiIsImx0IiwibWF4Qm4iLCJndCIsIklucHV0QW1vdW50IiwiZXhwb3J0cyIsInByb3BzIiwidmFsdWUiLCJfcHJvcHMkdHlwZSIsInR5cGUiLCJtYXhGcmFjdGlvbkRpZ2l0cyIsImNoaWxkcmVuIiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJmb290bm90ZSIsImZvb3Rub3RlQ2xzIiwiY2xhc3NOYW1lIiwid3JhcHBlckNscyIsImxhYmVsQ2xzIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsIm1lc3NhZ2VDbHMiLCJpbnZhbGlkIiwibmVnYXRpdmUiLCJyZXF1aXJlZCIsImxvYWRpbmciLCJzdWNjZXNzIiwiZGlzYWJsZWQiLCJyZWFkT25seSIsImxhYmVsIiwicHJlZml4Iiwic3VmZml4IiwiY3VycmVuY3kiLCJtZXNzYWdlIiwib25DaGFuZ2UiLCJvbkJsdXIiLCJvbkZvY3VzIiwicmVzdCIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwiY29uY2F0IiwiaW5wdXRSZWYiLCJ1c2VSZWYiLCJmYWtlRWxlUmVmIiwicHJlZml4UmVmIiwic3VmZml4UmVmIiwiY3VycmVuY3lSZWYiLCJjb250YWluZXJSZWYiLCJpbnB1dENhcmV0UG9zaXRpb25SZWYiLCJwcmV2VmFsdWVSZWYiLCJwcmV2Rm9jdXNSZWYiLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJfdmFsdWUiLCJzZXRWYWx1ZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiX3dpZHRoIiwic2V0V2lkdGgiLCJfdXNlU3RhdGU1IiwiX3VzZVN0YXRlNiIsImlzTWF4V2lkdGgiLCJzZXRJc01heFdpZHRoIiwiX3VzZVN0YXRlNyIsIl91c2VTdGF0ZTgiLCJpc0ZvY3VzIiwic2V0SXNGb2N1cyIsImZvcm1hdHRlZFZhbHVlIiwidXNlTWVtbyIsIm51bWVyaWNGb3JtYXR0ZXIiLCJ0aG91c2FuZFNlcGFyYXRvciIsImFsbG93TmVnYXRpdmUiLCJzY3JvbGxUb0VuZCIsInVzZUNhbGxiYWNrIiwic3RpY2t5IiwiYXJndW1lbnRzIiwidW5kZWZpbmVkIiwiX2EiLCJpbnB1dCIsImN1cnJlbnQiLCJsZW4iLCJwb3NpdGlvbiIsInNjcm9sbExlZnQiLCJzaG91bGRUb0VuZCIsInN0YXJ0Iiwic2V0U2VsZWN0aW9uUmFuZ2UiLCJzY3JvbGxXaWR0aCIsImZvY3VzIiwiaGFuZGxlQ2hhbmdlIiwiX2IiLCJfYyIsIl9kIiwiX2UiLCJfZiIsInRhcmdldCIsInRydW5jYXRlZEZyYWN0aW9uIiwic3BsaXQiLCJqb2luIiwiaGFzRGVjaW1hbFBvaW50IiwiZW5kc1dpdGgiLCJzbGljZSIsImluY2x1ZGVzIiwiaXNTdGFuZGFsb25lTWludXMiLCJfdmFsJHNwbGl0IiwiX3ZhbCRzcGxpdDIiLCJpbnQiLCJkZWNpbWFsIiwiTnVtYmVyIiwiY2xhbXBlZEJ5UmFuZ2UiLCJyZXMiLCJzZWxlY3Rpb25TdGFydCIsImN1cnJlbnRTbGljZSIsImNhcmV0UmF3TGVuZ3RoIiwiZm9ybWF0dGVkTmV3VmFsIiwidGFyZ2V0UmF3UG9zIiwiTWF0aCIsImNhcmV0UG9zIiwic2VlbiIsImRlY2ltYWxzIiwibWF0Y2giLCJibiIsIm5vcm1hbGl6ZWQiLCJ0b0ZpeGVkIiwidHJpbSIsInN0YXJ0c1dpdGgiLCJpc1plcm8iLCJ1c2VFZmZlY3QiLCJfZyIsIl9oIiwiX2oiLCJfayIsImNvbnRhaW5lcldpZHRoIiwib2Zmc2V0V2lkdGgiLCJwcmVmaXhXaWR0aCIsInN1ZmZpeFdpZHRoIiwiY3VycmVuY3lXaWR0aCIsImZha2VXaWR0aCIsImdhcFdpZHRoIiwibWF4V2lkdGgiLCJpc01heCIsImFicyIsInplcm8iLCJCaWdJbnQiLCJfc3BsaXQiLCJfc3BsaXQyIiwic3RyVmFsIiwiX2pzeHMiLCJqb2luQ2xzIiwiX2pzeCIsIlNrZWxldG9uIiwid2lkdGgiLCJoZWlnaHQiLCJyZWYiLCJvbkNsaWNrIiwiSFRNTElucHV0RWxlbWVudCIsImFzc2lnbiIsInN0eWxlIiwiU3Bpbm5lciIsInN0cm9rZVdpZHRoIiwic3RvcFByb3BhZ2F0aW9uIiwiX2RlZmF1bHQiLCJtZW1vIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFXQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNYQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFD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RUFBQ2pLLFdBQVcsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZU1lbW8sIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBudW1lcmljRm9ybWF0dGVyIH0gZnJvbSAncmVhY3QtbnVtYmVyLWZvcm1hdCc7XG5pbXBvcnQgeyBTa2VsZXRvbiB9IGZyb20gJ3ByaW1lcmVhY3Qvc2tlbGV0b24nO1xuaW1wb3J0IFNwaW5uZXIgZnJvbSAnLi4vU3Bpbm5lcic7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmNvbnN0IE1JTl9JTlBVVF9XSURUSCA9IDMzO1xuY29uc3Qgbm9ybWFsaXplTnVtYmVySW5wdXQgPSAodmFsKSA9PiB2YWxcbiAgICAucmVwbGFjZSgvW1xcdTMwMDJcXHVmZjBlXFx1ZmY2MV0vZywgJy4nKVxuICAgIC5yZXBsYWNlKC9bXFx1RkYwQ10vZywgJywnKTtcbmNvbnN0IGNsYW1wVmFsdWVJblJhbmdlID0gKHZhbCwgbWluLCBtYXgpID0+IHtcbiAgICBpZiAodmFsID09PSAnJyB8fCB2YWwgPT09ICctJyB8fCBpc05hTigrdmFsKSlcbiAgICAgICAgcmV0dXJuIHsgdmFsLCBjbGFtcGVkOiBmYWxzZSB9O1xuICAgIGxldCBjbGFtcGVkVmFsID0gdmFsO1xuICAgIGxldCBjbGFtcGVkID0gZmFsc2U7XG4gICAgY29uc3QgYm5WYWwgPSBCaWdOdW1iZXIodmFsKTtcbiAgICBpZiAodHlwZW9mIG1pbiA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1pbiA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgY29uc3QgbWluQm4gPSBCaWdOdW1iZXIobWluKTtcbiAgICAgICAgaWYgKGJuVmFsLmx0KG1pbkJuKSkge1xuICAgICAgICAgICAgY2xhbXBlZFZhbCA9ICcnICsgbWluO1xuICAgICAgICAgICAgY2xhbXBlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiBtYXggPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXggPT09ICdiaWdpbnQnKSB7XG4gICAgICAgIGNvbnN0IG1heEJuID0gQmlnTnVtYmVyKG1heCk7XG4gICAgICAgIGlmIChiblZhbC5ndChtYXhCbikpIHtcbiAgICAgICAgICAgIGNsYW1wZWRWYWwgPSAnJyArIG1heDtcbiAgICAgICAgICAgIGNsYW1wZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IHZhbDogY2xhbXBlZFZhbCwgY2xhbXBlZCB9O1xufTtcbmV4cG9ydCBjb25zdCBJbnB1dEFtb3VudCA9IHByb3BzID0+IHtcbiAgICBjb25zdCB7IHZhbHVlLCB0eXBlID0gJ3ByaW1hcnknLCBtYXhGcmFjdGlvbkRpZ2l0cywgY2hpbGRyZW4sIHBsYWNlaG9sZGVyID0gJzAnLCBtaW4sIG1heCwgXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIHNpemUgPSAnbGFyZ2UnLCBmb290bm90ZSwgZm9vdG5vdGVDbHMsIGNsYXNzTmFtZSwgd3JhcHBlckNscywgbGFiZWxDbHMsIHByZWZpeENscyA9ICdpbnB1dC1hbW91bnQnLCBtZXNzYWdlQ2xzLCBpbnZhbGlkLCBuZWdhdGl2ZSwgcmVxdWlyZWQsIGxvYWRpbmcsIHN1Y2Nlc3MsIGRpc2FibGVkLCByZWFkT25seSwgbGFiZWwsIHByZWZpeCwgc3VmZml4LCBjdXJyZW5jeSwgbWVzc2FnZSwgb25DaGFuZ2UsIG9uQmx1ciwgb25Gb2N1cyB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcInZhbHVlXCIsIFwidHlwZVwiLCBcIm1heEZyYWN0aW9uRGlnaXRzXCIsIFwiY2hpbGRyZW5cIiwgXCJwbGFjZWhvbGRlclwiLCBcIm1pblwiLCBcIm1heFwiLCBcInNpemVcIiwgXCJmb290bm90ZVwiLCBcImZvb3Rub3RlQ2xzXCIsIFwiY2xhc3NOYW1lXCIsIFwid3JhcHBlckNsc1wiLCBcImxhYmVsQ2xzXCIsIFwicHJlZml4Q2xzXCIsIFwibWVzc2FnZUNsc1wiLCBcImludmFsaWRcIiwgXCJuZWdhdGl2ZVwiLCBcInJlcXVpcmVkXCIsIFwibG9hZGluZ1wiLCBcInN1Y2Nlc3NcIiwgXCJkaXNhYmxlZFwiLCBcInJlYWRPbmx5XCIsIFwibGFiZWxcIiwgXCJwcmVmaXhcIiwgXCJzdWZmaXhcIiwgXCJjdXJyZW5jeVwiLCBcIm1lc3NhZ2VcIiwgXCJvbkNoYW5nZVwiLCBcIm9uQmx1clwiLCBcIm9uRm9jdXNcIl0pO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke3ByZWZpeENsc30tJHt0eXBlfWApO1xuICAgIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGZha2VFbGVSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgcHJlZml4UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHN1ZmZpeFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjdXJyZW5jeVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgaW5wdXRDYXJldFBvc2l0aW9uUmVmID0gdXNlUmVmKDApO1xuICAgIGNvbnN0IHByZXZWYWx1ZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBwcmV2Rm9jdXNSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IFtfdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtfd2lkdGgsIHNldFdpZHRoXSA9IHVzZVN0YXRlKE1JTl9JTlBVVF9XSURUSCk7XG4gICAgY29uc3QgW2lzTWF4V2lkdGgsIHNldElzTWF4V2lkdGhdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtpc0ZvY3VzLCBzZXRJc0ZvY3VzXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICByZXR1cm4gbnVtZXJpY0Zvcm1hdHRlcignJyArIChfdmFsdWUgPT0gbnVsbCA/ICcnIDogX3ZhbHVlKSwge1xuICAgICAgICAgICAgdGhvdXNhbmRTZXBhcmF0b3I6IHRydWUsXG4gICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiBuZWdhdGl2ZSxcbiAgICAgICAgfSk7XG4gICAgfSwgW192YWx1ZSwgbmVnYXRpdmVdKTtcbiAgICBjb25zdCBzY3JvbGxUb0VuZCA9IHVzZUNhbGxiYWNrKChzdGlja3kgPSBmYWxzZSkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gaW5wdXRSZWYuY3VycmVudDtcbiAgICAgICAgaWYgKCFpbnB1dClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbGVuID0gKF9hID0gaW5wdXQudmFsdWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uID0gaW5wdXQuc2Nyb2xsTGVmdDtcbiAgICAgICAgY29uc3Qgc2hvdWxkVG9FbmQgPSAhc3RpY2t5O1xuICAgICAgICBjb25zdCBzdGFydCA9IHNob3VsZFRvRW5kID8gbGVuIDogaW5wdXRDYXJldFBvc2l0aW9uUmVmLmN1cnJlbnQ7XG4gICAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKHN0YXJ0LCBzdGFydCk7XG4gICAgICAgIGlucHV0LnNjcm9sbExlZnQgPSBzaG91bGRUb0VuZCA/IGlucHV0LnNjcm9sbFdpZHRoIDogcG9zaXRpb247XG4gICAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKChlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mO1xuICAgICAgICBpZiAoZGlzYWJsZWQgfHwgcmVhZE9ubHkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGxldCB2YWwgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgbGV0IHRydW5jYXRlZEZyYWN0aW9uID0gZmFsc2U7XG4gICAgICAgIGlmICh2YWwgIT0gbnVsbClcbiAgICAgICAgICAgIHZhbCA9IG5vcm1hbGl6ZU51bWJlcklucHV0KHZhbCkuc3BsaXQoJywnKS5qb2luKCcnKTtcbiAgICAgICAgY29uc3QgaGFzRGVjaW1hbFBvaW50ID0gISF2YWwgJiYgdmFsLmVuZHNXaXRoKCcuJyk7XG4gICAgICAgIGlmIChoYXNEZWNpbWFsUG9pbnQpXG4gICAgICAgICAgICB2YWwgPSB2YWwuc2xpY2UoMCwgLTEpO1xuICAgICAgICBpZiAoIW5lZ2F0aXZlICYmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB2b2lkIDAgPyB2b2lkIDAgOiB2YWwuaW5jbHVkZXMoJy0nKSkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGlzU3RhbmRhbG9uZU1pbnVzID0gbmVnYXRpdmUgJiYgdmFsID09PSAnLSc7XG4gICAgICAgIGlmICghaXNTdGFuZGFsb25lTWludXMgJiYgaXNOYU4oK3ZhbCkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh2YWwgPT09IF92YWx1ZSAmJiAhaGFzRGVjaW1hbFBvaW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAodHlwZW9mIG1heEZyYWN0aW9uRGlnaXRzID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWF4RnJhY3Rpb25EaWdpdHMgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICBjb25zdCBbaW50LCBkZWNpbWFsXSA9IHZhbC5zcGxpdCgnLicpO1xuICAgICAgICAgICAgaWYgKGRlY2ltYWwgIT0gbnVsbCAmJiBkZWNpbWFsLmxlbmd0aCA+IE51bWJlcihtYXhGcmFjdGlvbkRpZ2l0cykpIHtcbiAgICAgICAgICAgICAgICB2YWwgPSBgJHtpbnR9LiR7ZGVjaW1hbC5zbGljZSgwLCBOdW1iZXIobWF4RnJhY3Rpb25EaWdpdHMpKX1gO1xuICAgICAgICAgICAgICAgIHRydW5jYXRlZEZyYWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsZXQgY2xhbXBlZEJ5UmFuZ2UgPSBmYWxzZTtcbiAgICAgICAgaWYgKCh0eXBlb2YgbWluID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWluID09PSAnYmlnaW50JykgfHwgKHR5cGVvZiBtYXggPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXggPT09ICdiaWdpbnQnKSkge1xuICAgICAgICAgICAgY29uc3QgcmVzID0gY2xhbXBWYWx1ZUluUmFuZ2UodmFsLCBtaW4sIG1heCk7XG4gICAgICAgICAgICB2YWwgPSByZXMudmFsO1xuICAgICAgICAgICAgY2xhbXBlZEJ5UmFuZ2UgPSByZXMuY2xhbXBlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSAoX2EgPSBpbnB1dFJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFNsaWNlID0gKF9jID0gKF9iID0gZS50YXJnZXQudmFsdWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5zbGljZSgwLCBzZWxlY3Rpb25TdGFydCkpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6ICcnO1xuICAgICAgICAgICAgY29uc3QgY2FyZXRSYXdMZW5ndGggPSBub3JtYWxpemVOdW1iZXJJbnB1dChjdXJyZW50U2xpY2UpLnNwbGl0KCcsJykuam9pbignJykubGVuZ3RoO1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkTmV3VmFsID0gbnVtZXJpY0Zvcm1hdHRlcih2YWwsIHtcbiAgICAgICAgICAgICAgICB0aG91c2FuZFNlcGFyYXRvcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiBuZWdhdGl2ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0UmF3UG9zID0gTWF0aC5taW4oY2FyZXRSYXdMZW5ndGgsIHZhbC5sZW5ndGgpO1xuICAgICAgICAgICAgbGV0IGNhcmV0UG9zID0gZm9ybWF0dGVkTmV3VmFsLmxlbmd0aDtcbiAgICAgICAgICAgIGxldCBzZWVuID0gMDtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybWF0dGVkTmV3VmFsLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZvcm1hdHRlZE5ld1ZhbFtpXSA9PT0gJywnKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBzZWVuICs9IDE7XG4gICAgICAgICAgICAgICAgaWYgKHNlZW4gPT09IHRhcmdldFJhd1Bvcykge1xuICAgICAgICAgICAgICAgICAgICBjYXJldFBvcyA9IGkgKyAxO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGFyZ2V0UmF3UG9zID09PSAwKVxuICAgICAgICAgICAgICAgIGNhcmV0UG9zID0gMDtcbiAgICAgICAgICAgIGlmIChoYXNEZWNpbWFsUG9pbnQgJiYgIXRydW5jYXRlZEZyYWN0aW9uICYmIHRhcmdldFJhd1BvcyA9PT0gdmFsLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNhcmV0UG9zID0gTWF0aC5taW4oZm9ybWF0dGVkTmV3VmFsLmxlbmd0aCArIDEsIGNhcmV0UG9zICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbnB1dENhcmV0UG9zaXRpb25SZWYuY3VycmVudCA9IHRydW5jYXRlZEZyYWN0aW9uXG4gICAgICAgICAgICAgICAgPyBmb3JtYXR0ZWROZXdWYWwubGVuZ3RoXG4gICAgICAgICAgICAgICAgOiBjbGFtcGVkQnlSYW5nZVxuICAgICAgICAgICAgICAgICAgICA/IGZvcm1hdHRlZE5ld1ZhbC5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgOiBjYXJldFBvcztcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgaWYgKHZhbCA9PT0gJycpIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShudWxsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKGlzU3RhbmRhbG9uZU1pbnVzKSB7XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUoJy0nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlY2ltYWxzID0gKF9mID0gKF9lID0gKF9kID0gdmFsLm1hdGNoKC9cXC4oXFxkKykkLykpID09PSBudWxsIHx8IF9kID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZFsxXSkgPT09IG51bGwgfHwgX2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lLmxlbmd0aCkgIT09IG51bGwgJiYgX2YgIT09IHZvaWQgMCA/IF9mIDogMDtcbiAgICAgICAgICAgICAgICBjb25zdCBibiA9IEJpZ051bWJlcih2YWwpO1xuICAgICAgICAgICAgICAgIGxldCBub3JtYWxpemVkID0gYm4udG9GaXhlZChkZWNpbWFscyk7XG4gICAgICAgICAgICAgICAgaWYgKG5lZ2F0aXZlICYmIHZhbC50cmltKCkuc3RhcnRzV2l0aCgnLScpICYmIGJuLmlzWmVybygpKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVkLnN0YXJ0c1dpdGgoJy0nKSA/IG5vcm1hbGl6ZWQgOiBgLSR7bm9ybWFsaXplZH1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShgJHtub3JtYWxpemVkfSR7aGFzRGVjaW1hbFBvaW50ID8gJy4nIDogJyd9YC50cmltKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIG9uQ2hhbmdlID09PSBudWxsIHx8IG9uQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNoYW5nZShlKTtcbiAgICB9LCBbb25DaGFuZ2UsIF92YWx1ZSwgdmFsdWUsIGZvcm1hdHRlZFZhbHVlLCBtYXhGcmFjdGlvbkRpZ2l0cywgbWluLCBtYXgsIG5lZ2F0aXZlLCBkaXNhYmxlZCwgcmVhZE9ubHldKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZiwgX2csIF9oLCBfaiwgX2s7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gKF9iID0gKF9hID0gY29udGFpbmVyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogTUlOX0lOUFVUX1dJRFRIO1xuICAgICAgICBjb25zdCBwcmVmaXhXaWR0aCA9IChfZCA9IChfYyA9IHByZWZpeFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Mub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9kICE9PSB2b2lkIDAgPyBfZCA6IDA7XG4gICAgICAgIGNvbnN0IHN1ZmZpeFdpZHRoID0gKF9mID0gKF9lID0gc3VmZml4UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9lID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZS5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2YgIT09IHZvaWQgMCA/IF9mIDogMDtcbiAgICAgICAgY29uc3QgY3VycmVuY3lXaWR0aCA9IChfaCA9IChfZyA9IGN1cnJlbmN5UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9nID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZy5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2ggIT09IHZvaWQgMCA/IF9oIDogMDtcbiAgICAgICAgY29uc3QgZmFrZVdpZHRoID0gKF9rID0gKF9qID0gZmFrZUVsZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfaiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2oub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9rICE9PSB2b2lkIDAgPyBfayA6IDA7XG4gICAgICAgIGNvbnN0IGdhcFdpZHRoID0gcHJlZml4V2lkdGggJiYgc3VmZml4V2lkdGggJiYgY3VycmVuY3lXaWR0aFxuICAgICAgICAgICAgPyAyNFxuICAgICAgICAgICAgOiAocHJlZml4V2lkdGggJiYgc3VmZml4V2lkdGgpIHx8IChwcmVmaXhXaWR0aCAmJiBjdXJyZW5jeVdpZHRoKSB8fCAoc3VmZml4V2lkdGggJiYgY3VycmVuY3lXaWR0aClcbiAgICAgICAgICAgICAgICA/IDE2XG4gICAgICAgICAgICAgICAgOiBwcmVmaXhXaWR0aCB8fCBzdWZmaXhXaWR0aCB8fCBjdXJyZW5jeVdpZHRoXG4gICAgICAgICAgICAgICAgICAgID8gOFxuICAgICAgICAgICAgICAgICAgICA6IDA7XG4gICAgICAgIGNvbnN0IG1heFdpZHRoID0gY29udGFpbmVyV2lkdGggLSBwcmVmaXhXaWR0aCAtIHN1ZmZpeFdpZHRoIC0gY3VycmVuY3lXaWR0aCAtIGdhcFdpZHRoO1xuICAgICAgICBjb25zdCBpc01heCA9IGZha2VXaWR0aCA+PSBtYXhXaWR0aDtcbiAgICAgICAgc2V0V2lkdGgoTWF0aC5taW4obWF4V2lkdGgsIE1hdGgubWF4KGZha2VXaWR0aCwgTUlOX0lOUFVUX1dJRFRIKSkpO1xuICAgICAgICBzZXRJc01heFdpZHRoKGlzTWF4KTtcbiAgICAgICAgaWYgKGlzRm9jdXMgJiYgKF92YWx1ZSAhPT0gcHJldlZhbHVlUmVmLmN1cnJlbnQgfHwgIXByZXZGb2N1c1JlZi5jdXJyZW50KSkge1xuICAgICAgICAgICAgc2Nyb2xsVG9FbmQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcHJldlZhbHVlUmVmLmN1cnJlbnQgPSBfdmFsdWU7XG4gICAgICAgIHByZXZGb2N1c1JlZi5jdXJyZW50ID0gaXNGb2N1cztcbiAgICB9LCBbX3ZhbHVlLCBwcmVmaXgsIHN1ZmZpeCwgY3VycmVuY3ksIGlzRm9jdXMsIHNjcm9sbFRvRW5kXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gY2xlYXIgbmVnYXRpdmUgc2lnbiBpZiBub3QgYWxsb3dlZFxuICAgICAgICBpZiAobmVnYXRpdmUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoX3ZhbHVlID09IG51bGwpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChfdmFsdWUgPT09ICctJykge1xuICAgICAgICAgICAgc2V0VmFsdWUobnVsbCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKF92YWx1ZS5zdGFydHNXaXRoKCctJykpXG4gICAgICAgICAgICBzZXRWYWx1ZShfdmFsdWUuc2xpY2UoMSkpO1xuICAgIH0sIFtuZWdhdGl2ZSwgdmFsdWUsIF92YWx1ZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBsZXQgdmFsID0gdmFsdWU7XG4gICAgICAgIGxldCBoYXNEZWNpbWFsUG9pbnQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZiAodmFsID09PSAnJykge1xuICAgICAgICAgICAgICAgIHZhbCA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWwgPSBub3JtYWxpemVOdW1iZXJJbnB1dCh2YWwpLnNwbGl0KCcsJykuam9pbignJyk7XG4gICAgICAgICAgICAgICAgaGFzRGVjaW1hbFBvaW50ID0gISF2YWwgJiYgdmFsLmVuZHNXaXRoKCcuJyk7XG4gICAgICAgICAgICAgICAgaWYgKGhhc0RlY2ltYWxQb2ludClcbiAgICAgICAgICAgICAgICAgICAgdmFsID0gdmFsLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgICAgICAgICBpZiAoIW5lZ2F0aXZlKVxuICAgICAgICAgICAgICAgICAgICB2YWwgPSB2YWwucmVwbGFjZSgvLS9nLCAnJyk7XG4gICAgICAgICAgICAgICAgaWYgKG5lZ2F0aXZlICYmIHZhbCA9PT0gJy0nKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKCctJyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlzTmFOKCt2YWwpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodmFsICE9PSBudWxsICYmIHR5cGVvZiB2YWwgIT09ICdudW1iZXInICYmIHR5cGVvZiB2YWwgIT09ICdiaWdpbnQnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoIW5lZ2F0aXZlKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICB2YWwgPSBNYXRoLmFicyh2YWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB6ZXJvID0gQmlnSW50KDApO1xuICAgICAgICAgICAgICAgIHZhbCA9IHZhbCA8IHplcm8gPyAtdmFsIDogdmFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpICYmICh0eXBlb2YgbWF4RnJhY3Rpb25EaWdpdHMgPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXhGcmFjdGlvbkRpZ2l0cyA9PT0gJ2JpZ2ludCcpKSB7XG4gICAgICAgICAgICBjb25zdCBbaW50LCBkZWNpbWFsXSA9ICgnJyArIHZhbCkuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgIGlmIChkZWNpbWFsICE9IG51bGwgJiYgZGVjaW1hbC5sZW5ndGggPiBOdW1iZXIobWF4RnJhY3Rpb25EaWdpdHMpKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gaW50ICsgJy4nICsgZGVjaW1hbC5zbGljZSgwLCBOdW1iZXIobWF4RnJhY3Rpb25EaWdpdHMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHZhbCA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IGNsYW1wVmFsdWVJblJhbmdlKCcnICsgdmFsLCBtaW4sIG1heCk7XG4gICAgICAgICAgICB2YWwgPSByZXMudmFsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWwgPT09ICcnIHx8IHZhbCA9PSBudWxsKSB7XG4gICAgICAgICAgICBzZXRWYWx1ZShudWxsKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHN0clZhbCA9ICcnICsgdmFsO1xuICAgICAgICAgICAgY29uc3QgZGVjaW1hbHMgPSAoX2MgPSAoX2IgPSAoX2EgPSBzdHJWYWwubWF0Y2goL1xcLihcXGQrKSQvKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hWzFdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubGVuZ3RoKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwO1xuICAgICAgICAgICAgY29uc3QgYm4gPSBCaWdOdW1iZXIoc3RyVmFsKTtcbiAgICAgICAgICAgIGxldCBub3JtYWxpemVkID0gYm4udG9GaXhlZChkZWNpbWFscyk7XG4gICAgICAgICAgICBpZiAobmVnYXRpdmUgJiYgc3RyVmFsLnRyaW0oKS5zdGFydHNXaXRoKCctJykgJiYgYm4uaXNaZXJvKCkpIHtcbiAgICAgICAgICAgICAgICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5zdGFydHNXaXRoKCctJykgPyBub3JtYWxpemVkIDogYC0ke25vcm1hbGl6ZWR9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFZhbHVlKGAke25vcm1hbGl6ZWR9JHtoYXNEZWNpbWFsUG9pbnQgPyAnLicgOiAnJ31gLnRyaW0oKSk7XG4gICAgICAgIH1cbiAgICB9LCBbdmFsdWUsIG1heEZyYWN0aW9uRGlnaXRzLCBtaW4sIG1heCwgbmVnYXRpdmVdKTtcbiAgICByZXR1cm4gX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3dyYXBwZXInLCBqb2luQ2xzKHdyYXBwZXJDbHMsIGludmFsaWQgJiYgY2xhc3NlcygnaW52YWxpZCcpLCBzdWNjZXNzICYmIGNsYXNzZXMoJ3N1Y2Nlc3MnKSwgZGlzYWJsZWQgJiYgY2xhc3NlcygnZGlzYWJsZWQnKSwgcmVhZE9ubHkgJiYgY2xhc3NlcygncmVhZG9ubHknKSwgX3ZhbHVlICYmIGNsYXNzZXMoJ2ZpbGxlZCcpKSksIGNoaWxkcmVuOiBbbGFiZWxcbiAgICAgICAgICAgICAgICA/IGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgPyBfanN4KFNrZWxldG9uLCB7IHdpZHRoOiAnNzJweCcsIGhlaWdodDogJzE4cHgnLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsLWxvYWRpbmcnKSB9KVxuICAgICAgICAgICAgICAgICAgICA6IF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbCcsIGpvaW5DbHMocmVxdWlyZWQgJiYgY2xhc3NlcygnbGFiZWwtcmVxdWlyZWQnKSwgbGFiZWxDbHMpKSwgY2hpbGRyZW46IGxhYmVsIH0pXG4gICAgICAgICAgICAgICAgOiBudWxsLCBfanN4cyhcImRpdlwiLCB7IHJlZjogY29udGFpbmVyUmVmLCBjbGFzc05hbWU6IGNsYXNzZXModm9pZCAwLCBqb2luQ2xzKGNsYXNzTmFtZSwgaXNGb2N1cyAmJiBjbGFzc2VzKCdmb2N1cycpKSksIG9uQ2xpY2s6IChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUudGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgKF9hID0gaW5wdXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc01heFdpZHRoKVxuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9FbmQoKTtcbiAgICAgICAgICAgICAgICB9LCBjaGlsZHJlbjogW3ByZWZpeCAmJiBfanN4KFwic3BhblwiLCB7IHJlZjogcHJlZml4UmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ3ByZWZpeCcpLCBjaGlsZHJlbjogcHJlZml4IH0pLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdlbGVtZW50JywgKCFpc0ZvY3VzICYmIGlzTWF4V2lkdGgpID8gY2xhc3NlcygnZWxlbWVudC1tYXgnKSA6ICcnKSwgY2hpbGRyZW46IF9qc3goXCJpbnB1dFwiLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IHJlZjogaW5wdXRSZWYsIHZhbHVlOiBmb3JtYXR0ZWRWYWx1ZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCByZWFkT25seTogcmVhZE9ubHksIGRpc2FibGVkOiBkaXNhYmxlZCwgc3R5bGU6IHsgJy0taW5wdXQtd2lkdGgnOiBgJHtfd2lkdGh9cHhgIH0sIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsIG9uRm9jdXM6IGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc0ZvY3VzKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzID09PSBudWxsIHx8IG9uRm9jdXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRm9jdXMoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgb25CbHVyOiBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNGb2N1cyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cihlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IH0pKSB9KSwgY3VycmVuY3kgJiYgX2pzeChcInNwYW5cIiwgeyByZWY6IGN1cnJlbmN5UmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2N1cnJlbmN5JyksIGNoaWxkcmVuOiBjdXJyZW5jeSB9KSwgbG9hZGluZyA/IF9qc3goU3Bpbm5lciwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3N1ZmZpeC1sb2FkaW5nJyksIHN0cm9rZVdpZHRoOiAnNCcgfSkgOiBzdWZmaXggPyBfanN4KFwic3BhblwiLCB7IHJlZjogc3VmZml4UmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ3N1ZmZpeCcpLCBjaGlsZHJlbjogc3VmZml4IH0pIDogbnVsbCwgX2pzeChcInNwYW5cIiwgeyByZWY6IGZha2VFbGVSZWYsIGNsYXNzTmFtZTogY2xhc3NlcygnZmFrZScpLCBvbkNsaWNrOiBlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCksIGNoaWxkcmVuOiBudW1lcmljRm9ybWF0dGVyKCcnICsgKF92YWx1ZSA9PSBudWxsID8gJycgOiBfdmFsdWUpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRTZXBhcmF0b3I6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dOZWdhdGl2ZTogbmVnYXRpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSB9KV0gfSksIChtZXNzYWdlIHx8IGZvb3Rub3RlKSAmJiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZXh0cmEnKSwgY2hpbGRyZW46IFttZXNzYWdlICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ21lc3NhZ2UnLCBtZXNzYWdlQ2xzKSwgY2hpbGRyZW46IG1lc3NhZ2UgfSksIGZvb3Rub3RlICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2Zvb3Rub3RlJywgZm9vdG5vdGVDbHMpLCBjaGlsZHJlbjogZm9vdG5vdGUgfSldIH0pXSB9KTtcbn07XG5leHBvcnQgZGVmYXVsdCBtZW1vKElucHV0QW1vdW50KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
372
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXRBbW91bnQvSW5wdXRBbW91bnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LnRzeCJdLCJuYW1lcyI6WyJfanN4UnVudGltZSIsInJlcXVpcmUiLCJfcmVhY3QiLCJfYmlnbnVtYmVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9yZWFjdE51bWJlckZvcm1hdCIsIl9za2VsZXRvbiIsIl9TcGlubmVyIiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9fcmVzdCIsInMiLCJwIiwicHJvdG90eXBlIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwiTUlOX0lOUFVUX1dJRFRIIiwibm9ybWFsaXplTnVtYmVySW5wdXQiLCJ2YWwiLCJyZXBsYWNlIiwiY2xhbXBWYWx1ZUluUmFuZ2UiLCJtaW4iLCJtYXgiLCJpc05hTiIsImNsYW1wZWQiLCJjbGFtcGVkVmFsIiwiYm5WYWwiLCJCaWdOdW1iZXIiLCJtaW5CbiIsImx0IiwibWF4Qm4iLCJndCIsIklucHV0QW1vdW50IiwiZXhwb3J0cyIsInByb3BzIiwidmFsdWUiLCJfcHJvcHMkdHlwZSIsInR5cGUiLCJtYXhGcmFjdGlvbkRpZ2l0cyIsImNoaWxkcmVuIiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJmb290bm90ZSIsImZvb3Rub3RlQ2xzIiwiY2xhc3NOYW1lIiwid3JhcHBlckNscyIsImxhYmVsQ2xzIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsIm1lc3NhZ2VDbHMiLCJpbnZhbGlkIiwibmVnYXRpdmUiLCJyZXF1aXJlZCIsImxvYWRpbmciLCJzdWNjZXNzIiwiZGlzYWJsZWQiLCJyZWFkT25seSIsImxhYmVsIiwicHJlZml4Iiwic3VmZml4IiwiY3VycmVuY3kiLCJtZXNzYWdlIiwib25DaGFuZ2UiLCJvbkJsdXIiLCJvbkZvY3VzIiwicmVzdCIsImNsYXNzZXMiLCJjbGFzc25hbWVzIiwiY29uY2F0IiwiaW5wdXRSZWYiLCJ1c2VSZWYiLCJmYWtlRWxlUmVmIiwicHJlZml4UmVmIiwic3VmZml4UmVmIiwiY3VycmVuY3lSZWYiLCJjb250YWluZXJSZWYiLCJpbnB1dENhcmV0UG9zaXRpb25SZWYiLCJwcmV2VmFsdWVSZWYiLCJwcmV2Rm9jdXNSZWYiLCJwZW5kaW5nQ2FyZXRTeW5jUmVmIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiX3ZhbHVlIiwic2V0VmFsdWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIl93aWR0aCIsInNldFdpZHRoIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc01heFdpZHRoIiwic2V0SXNNYXhXaWR0aCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiaXNGb2N1cyIsInNldElzRm9jdXMiLCJmb3JtYXR0ZWRWYWx1ZSIsInVzZU1lbW8iLCJudW1lcmljRm9ybWF0dGVyIiwidGhvdXNhbmRTZXBhcmF0b3IiLCJhbGxvd05lZ2F0aXZlIiwic2Nyb2xsVG9FbmQiLCJ1c2VDYWxsYmFjayIsInN0aWNreSIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsIl9hIiwiaW5wdXQiLCJjdXJyZW50IiwibGVuIiwicG9zaXRpb24iLCJzY3JvbGxMZWZ0Iiwic2hvdWxkVG9FbmQiLCJzdGFydCIsInNldFNlbGVjdGlvblJhbmdlIiwic2Nyb2xsV2lkdGgiLCJmb2N1cyIsImhhbmRsZUNoYW5nZSIsIl9iIiwiX2MiLCJfZCIsIl9lIiwiX2YiLCJ0YXJnZXQiLCJ0cnVuY2F0ZWRGcmFjdGlvbiIsInNwbGl0Iiwiam9pbiIsImhhc0RlY2ltYWxQb2ludCIsImVuZHNXaXRoIiwic2xpY2UiLCJpbmNsdWRlcyIsImlzU3RhbmRhbG9uZU1pbnVzIiwiX3ZhbCRzcGxpdCIsIl92YWwkc3BsaXQyIiwiaW50IiwiZGVjaW1hbCIsIk51bWJlciIsImNsYW1wZWRCeVJhbmdlIiwicmVzIiwic2VsZWN0aW9uU3RhcnQiLCJjdXJyZW50U2xpY2UiLCJjYXJldFJhd0xlbmd0aCIsImZvcm1hdHRlZE5ld1ZhbCIsInRhcmdldFJhd1BvcyIsIk1hdGgiLCJjYXJldFBvcyIsInNlZW4iLCJkZWNpbWFscyIsIm1hdGNoIiwiYm4iLCJub3JtYWxpemVkIiwidG9GaXhlZCIsInRyaW0iLCJzdGFydHNXaXRoIiwiaXNaZXJvIiwidXNlRWZmZWN0IiwiX2ciLCJfaCIsIl9qIiwiX2siLCJjb250YWluZXJXaWR0aCIsIm9mZnNldFdpZHRoIiwicHJlZml4V2lkdGgiLCJzdWZmaXhXaWR0aCIsImN1cnJlbmN5V2lkdGgiLCJmYWtlV2lkdGgiLCJnYXBXaWR0aCIsIm1heFdpZHRoIiwiaXNNYXgiLCJhYnMiLCJ6ZXJvIiwiQmlnSW50IiwiX3NwbGl0IiwiX3NwbGl0MiIsInN0clZhbCIsIl9qc3hzIiwiam9pbkNscyIsIl9qc3giLCJTa2VsZXRvbiIsIndpZHRoIiwiaGVpZ2h0IiwicmVmIiwib25DbGljayIsIkhUTUxJbnB1dEVsZW1lbnQiLCJhc3NpZ24iLCJzdHlsZSIsIlNwaW5uZXIiLCJzdHJva2VXaWR0aCIsInN0b3BQcm9wYWdhdGlvbiIsIl9kZWZhdWx0IiwibWVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBV0EsSUFBQUEsV0FBQSxHQUFBQyxPQUFBO0FDWEEsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksa0JBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFNBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFFBQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFPLFdBQUEsR0FBQUMsdUJBQUEsQ0FBQVIsT0FBQTtBQUF3RSxTQUFBUyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQUYsd0JBQUFFLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsQ0FBQSxTQUFBRyxDQUFBLEdBQUFQLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFjLENBQUEsVUFBQUcsQ0FBQSxLQUFBQSxDQUFBLENBQUFWLEdBQUEsSUFBQVUsQ0FBQSxDQUFBQyxHQUFBLElBQUFQLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSixDQUFBLEVBQUFNLENBQUEsRUFBQUcsQ0FBQSxJQUFBVCxDQUFBLENBQUFNLENBQUEsSUFBQWQsQ0FBQSxDQUFBYyxDQUFBLFlBQUFOLENBQUEsY0FBQVIsQ0FBQSxFQUFBRyxDQUFBLElBQUFBLENBQUEsQ0FBQWUsR0FBQSxDQUFBbEIsQ0FBQSxFQUFBUSxDQUFBLEdBQUFBLENBQUE7QURMeEUsSUFBSVcsTUFBTSxHQUFJLFVBQVEsU0FBS0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRXBCLENBQUMsRUFBRTtFQUNsRCxJQUFJRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJa0IsQ0FBQyxJQUFJRCxDQUFDLEVBQUUsSUFBSVQsTUFBTSxDQUFDVyxTQUFTLENBQUNQLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDSSxDQUFDLEVBQUVDLENBQUMsQ0FBQyxJQUFJckIsQ0FBQyxDQUFDdUIsT0FBTyxDQUFDRixDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FbEIsQ0FBQyxDQUFDa0IsQ0FBQyxDQUFDLEdBQUdELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDO0VBQ2YsSUFBSUQsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPVCxNQUFNLENBQUNhLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJUCxDQUFDLEdBQUcsQ0FBQyxFQUFFSSxDQUFDLEdBQUdWLE1BQU0sQ0FBQ2EscUJBQXFCLENBQUNKLENBQUMsQ0FBQyxFQUFFSCxDQUFDLEdBQUdJLENBQUMsQ0FBQ0ksTUFBTSxFQUFFUixDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJakIsQ0FBQyxDQUFDdUIsT0FBTyxDQUFDRixDQUFDLENBQUNKLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJTixNQUFNLENBQUNXLFNBQVMsQ0FBQ0ksb0JBQW9CLENBQUNWLElBQUksQ0FBQ0ksQ0FBQyxFQUFFQyxDQUFDLENBQUNKLENBQUMsQ0FBQyxDQUFDLEVBQzFFZCxDQUFDLENBQUNrQixDQUFDLENBQUNKLENBQUMsQ0FBQyxDQUFDLEdBQUdHLENBQUMsQ0FBQ0MsQ0FBQyxDQUFDSixDQUFDLENBQUMsQ0FBQztFQUN6QjtFQUNKLE9BQU9kLENBQUM7QUFDWixDQUFDO0FDQUQsSUFBTXdCLGVBQWUsR0FBRyxFQUFFO0FBRTFCLElBQU1DLG9CQUFvQixHQUFHLFNBQXZCQSxvQkFBb0JBLENBQUlDLEdBQVc7RUFBQSxPQUN2Q0EsR0FBRyxDQUNBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUUsR0FBRyxDQUFDLENBQ3JDQSxPQUFPLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQztBQUFBO0FBRTlCLElBQU1DLGlCQUFpQixHQUFHLFNBQXBCQSxpQkFBaUJBLENBQ3JCRixHQUFXLEVBQ1hHLEdBQStCLEVBQy9CQyxHQUErQixFQUM3QjtFQUNGLElBQUlKLEdBQUcsS0FBSyxFQUFFLElBQUlBLEdBQUcsS0FBSyxHQUFHLElBQUlLLEtBQUssQ0FBQyxDQUFDTCxHQUFHLENBQUMsRUFBRSxPQUFPO0lBQUVBLEdBQUcsRUFBSEEsR0FBRztJQUFFTSxPQUFPLEVBQUU7RUFBSyxDQUFFO0VBRTVFLElBQUlDLFVBQVUsR0FBR1AsR0FBRztFQUNwQixJQUFJTSxPQUFPLEdBQUcsS0FBSztFQUNuQixJQUFNRSxLQUFLLEdBQUcsSUFBQUMscUJBQVMsRUFBQ1QsR0FBRyxDQUFDO0VBRTVCLElBQUksT0FBT0csR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPQSxHQUFHLEtBQUssUUFBUSxFQUFFO0lBQ3RELElBQU1PLEtBQUssR0FBRyxJQUFBRCxxQkFBUyxFQUFDTixHQUFHLENBQUM7SUFDNUIsSUFBSUssS0FBSyxDQUFDRyxFQUFFLENBQUNELEtBQUssQ0FBQyxFQUFFO01BQ25CSCxVQUFVLEdBQUcsRUFBRSxHQUFHSixHQUFHO01BQ3JCRyxPQUFPLEdBQUcsSUFBSTtJQUNoQjtFQUNGO0VBRUEsSUFBSSxPQUFPRixHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU9BLEdBQUcsS0FBSyxRQUFRLEVBQUU7SUFDdEQsSUFBTVEsS0FBSyxHQUFHLElBQUFILHFCQUFTLEVBQUNMLEdBQUcsQ0FBQztJQUM1QixJQUFJSSxLQUFLLENBQUNLLEVBQUUsQ0FBQ0QsS0FBSyxDQUFDLEVBQUU7TUFDbkJMLFVBQVUsR0FBRyxFQUFFLEdBQUdILEdBQUc7TUFDckJFLE9BQU8sR0FBRyxJQUFJO0lBQ2hCO0VBQ0Y7RUFFQSxPQUFPO0lBQUVOLEdBQUcsRUFBRU8sVUFBVTtJQUFFRCxPQUFPLEVBQVBBO0VBQU8sQ0FBRTtBQUNyQyxDQUFDO0FBRU0sSUFBTVEsV0FBVyxHQUFBQyxPQUFBLENBQUFELFdBQUEsR0FBNEMsU0FBdkRBLFdBQVdBLENBQTRDRSxLQUFLLEVBQUc7RUFDMUUsSUFDRUMsS0FBSyxHQWFIRCxLQUFLLENBYlBDLEtBQUs7SUFBQUMsV0FBQSxHQWFIRixLQUFLLENBWlBHLElBQUk7SUFBSkEsSUFBSSxHQUFBRCxXQUFBLGNBQUcsU0FBUyxHQUFBQSxXQUFBO0lBQ2hCRSxpQkFBaUIsR0FXZkosS0FBSyxDQVhQSSxpQkFBaUI7SUFDakJDLFFBQVEsR0FVTkwsS0FBSyxDQVZQSyxRQUFRO0lBQUFDLGtCQUFBLEdBVU5OLEtBQUssQ0FUUE8sV0FBVztJQUFYQSxXQUFXLEdBQUFELGtCQUFBLGNBQUcsR0FBRyxHQUFBQSxrQkFBQTtJQUNqQm5CLEdBQUcsR0FRRGEsS0FBSyxDQVJQYixHQUFHO0lBQUVDLEdBQUcsR0FRTlksS0FBSyxDQVJGWixHQUFHO0lBQUFvQixXQUFBLEdBUU5SLEtBQUssQ0FOUFMsSUFBSTtJQUFKQSxJQUFJLEdBQUFELFdBQUEsY0FBRyxPQUFPLEdBQUFBLFdBQUE7SUFBRUUsUUFBUSxHQU10QlYsS0FBSyxDQU5TVSxRQUFRO0lBQUVDLFdBQVcsR0FNbkNYLEtBQUssQ0FObUJXLFdBQVc7SUFDckNDLFNBQVMsR0FLUFosS0FBSyxDQUxQWSxTQUFTO0lBQUVDLFVBQVUsR0FLbkJiLEtBQUssQ0FMSWEsVUFBVTtJQUFFQyxRQUFRLEdBSzdCZCxLQUFLLENBTGdCYyxRQUFRO0lBQUFDLGdCQUFBLEdBSzdCZixLQUFLLENBTDBCZ0IsU0FBUztJQUFUQSxTQUFTLEdBQUFELGdCQUFBLGNBQUcsY0FBYyxHQUFBQSxnQkFBQTtJQUFFRSxVQUFVLEdBS3JFakIsS0FBSyxDQUxzRGlCLFVBQVU7SUFDdkVDLE9BQU8sR0FJTGxCLEtBQUssQ0FKUGtCLE9BQU87SUFBRUMsUUFBUSxHQUlmbkIsS0FBSyxDQUpFbUIsUUFBUTtJQUFFQyxRQUFRLEdBSXpCcEIsS0FBSyxDQUpZb0IsUUFBUTtJQUFFQyxPQUFPLEdBSWxDckIsS0FBSyxDQUpzQnFCLE9BQU87SUFBRUMsT0FBTyxHQUkzQ3RCLEtBQUssQ0FKK0JzQixPQUFPO0lBQUVDLFFBQVEsR0FJckR2QixLQUFLLENBSndDdUIsUUFBUTtJQUFFQyxRQUFRLEdBSS9EeEIsS0FBSyxDQUprRHdCLFFBQVE7SUFDakVDLEtBQUssR0FHSHpCLEtBQUssQ0FIUHlCLEtBQUs7SUFBRUMsTUFBTSxHQUdYMUIsS0FBSyxDQUhBMEIsTUFBTTtJQUFFQyxNQUFNLEdBR25CM0IsS0FBSyxDQUhRMkIsTUFBTTtJQUFFQyxRQUFRLEdBRzdCNUIsS0FBSyxDQUhnQjRCLFFBQVE7SUFBRUMsT0FBTyxHQUd0QzdCLEtBQUssQ0FIMEI2QixPQUFPO0lBQ3hDQyxRQUFRLEdBRU45QixLQUFLLENBRlA4QixRQUFRO0lBQUVDLE9BQU0sR0FFZC9CLEtBQUssQ0FGRytCLE1BQU07SUFBRUMsUUFBTyxHQUV2QmhDLEtBQUssQ0FGV2dDLE9BQU87SUFDdEJDLElBQUksR0FBQTNELE1BQUEsQ0FDTDBCLEtBQUssRUFkSCxDQUFBLE9BQUEsRUFBQSxNQUFBLEVBQUEsbUJBQUEsRUFBQSxVQUFBLEVBQUEsYUFBQSxFQUFBLEtBQUEsRUFBQSxLQUFBLEVBQUEsTUFBQSxFQUFBLFVBQUEsRUFBQSxhQUFBLEVBQUEsV0FBQSxFQUFBLFlBQUEsRUFBQSxVQUFBLEVBQUEsV0FBQSxFQUFBLFlBQUEsRUFBQSxTQUFBLEVBQUEsVUFBQSxFQUFBLFVBQUEsRUFBQSxTQUFBLEVBQUEsU0FBQSxFQUFBLFVBQUEsRUFBQSxVQUFBLEVBQUEsT0FBQSxFQUFBLFFBQUEsRUFBQSxRQUFBLEVBQUEsVUFBQSxFQUFBLFNBQUEsRUFBQSxVQUFBLEVBQUEsUUFBQSxFQUFBLFNBQUEsQ0FjTCxDQUFRO0VBQ1QsSUFBTWtDLE9BQU8sR0FBRyxJQUFBQyxzQkFBVSxLQUFBQyxNQUFBLENBQUlwQixTQUFTLE9BQUFvQixNQUFBLENBQUlqQyxJQUFJLENBQUUsQ0FBQztFQUVsRCxJQUFNa0MsUUFBUSxHQUFHLElBQUFDLGFBQU0sRUFBbUIsSUFBSSxDQUFDO0VBQy9DLElBQU1DLFVBQVUsR0FBRyxJQUFBRCxhQUFNLEVBQWtCLElBQUksQ0FBQztFQUNoRCxJQUFNRSxTQUFTLEdBQUcsSUFBQUYsYUFBTSxFQUFrQixJQUFJLENBQUM7RUFDL0MsSUFBTUcsU0FBUyxHQUFHLElBQUFILGFBQU0sRUFBa0IsSUFBSSxDQUFDO0VBQy9DLElBQU1JLFdBQVcsR0FBRyxJQUFBSixhQUFNLEVBQWtCLElBQUksQ0FBQztFQUNqRCxJQUFNSyxZQUFZLEdBQUcsSUFBQUwsYUFBTSxFQUFpQixJQUFJLENBQUM7RUFDakQsSUFBTU0scUJBQXFCLEdBQUcsSUFBQU4sYUFBTSxFQUFTLENBQUMsQ0FBQztFQUMvQyxJQUFNTyxZQUFZLEdBQUcsSUFBQVAsYUFBTSxFQUFnQixJQUFJLENBQUM7RUFDaEQsSUFBTVEsWUFBWSxHQUFHLElBQUFSLGFBQU0sRUFBVSxLQUFLLENBQUM7RUFDM0MsSUFBTVMsbUJBQW1CLEdBQUcsSUFBQVQsYUFBTSxFQUFVLEtBQUssQ0FBQztFQUVsRCxJQUFBVSxTQUFBLEdBQTJCLElBQUFDLGVBQVEsRUFBZ0IsSUFBSSxDQUFDO0lBQUFDLFVBQUEsT0FBQUMsZUFBQSxhQUFBSCxTQUFBO0lBQWpESSxNQUFNLEdBQUFGLFVBQUE7SUFBRUcsUUFBUSxHQUFBSCxVQUFBO0VBQ3ZCLElBQUFJLFVBQUEsR0FBMkIsSUFBQUwsZUFBUSxFQUFTbkUsZUFBZSxDQUFDO0lBQUF5RSxVQUFBLE9BQUFKLGVBQUEsYUFBQUcsVUFBQTtJQUFyREUsTUFBTSxHQUFBRCxVQUFBO0lBQUVFLFFBQVEsR0FBQUYsVUFBQTtFQUN2QixJQUFBRyxVQUFBLEdBQW9DLElBQUFULGVBQVEsRUFBVSxLQUFLLENBQUM7SUFBQVUsVUFBQSxPQUFBUixlQUFBLGFBQUFPLFVBQUE7SUFBckRFLFVBQVUsR0FBQUQsVUFBQTtJQUFFRSxhQUFhLEdBQUFGLFVBQUE7RUFDaEMsSUFBQUcsVUFBQSxHQUE4QixJQUFBYixlQUFRLEVBQVUsS0FBSyxDQUFDO0lBQUFjLFVBQUEsT0FBQVosZUFBQSxhQUFBVyxVQUFBO0lBQS9DRSxPQUFPLEdBQUFELFVBQUE7SUFBRUUsVUFBVSxHQUFBRixVQUFBO0VBRTFCLElBQU1HLGNBQWMsR0FBRyxJQUFBQyxjQUFPLEVBQUMsWUFBSztJQUNsQyxPQUFPLElBQUFDLG1DQUFnQixFQUFDLEVBQUUsSUFBSWhCLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHQSxNQUFNLENBQUMsRUFBRTtNQUMzRGlCLGlCQUFpQixFQUFFLElBQUk7TUFDdkJDLGFBQWEsRUFBRW5EO0lEakJiLENDa0JILENBQUM7RUFDSixDQUFDLEVBQUUsQ0FBQ2lDLE1BQU0sRUFBRWpDLFFBQVEsQ0FBQyxDQUFDO0VBRXRCLElBQU1vRCxXQUFXLEdBQUcsSUFBQUMsa0JBQVcsRUFBQyxZQUE0QjtJQUFBLElBQTNCQyxNQUFBLEdBQUFDLFNBQUEsQ0FBQTlGLE1BQUEsUUFBQThGLFNBQUEsUUFBQUMsU0FBQSxHQUFBRCxTQUFBLE1BQWtCLEtBQUs7SURsQmxELElBQUlFLEVBQUU7SUNtQlYsSUFBTUMsS0FBSyxHQUFHeEMsUUFBUSxDQUFDeUMsT0FBTztJQUM5QixJQUFJLENBQUNELEtBQUssRUFBRTtJQUNaLElBQU1FLEdBQUcsR0FBRyxDQUFBSCxFQUFBLEdBQUFDLEtBQUssQ0FBQzVFLEtBQUssTUFBQSxJQUFBLElBQUEyRSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRWhHLE1BQU07SUFDL0IsSUFBTW9HLFFBQVEsR0FBR0gsS0FBSyxDQUFDSSxVQUFVO0lBQ2pDLElBQU1DLFdBQVcsR0FBRyxDQUFDVCxNQUFNO0lBQzNCLElBQU1VLEtBQUssR0FBR0QsV0FBVyxHQUFHSCxHQUFHLEdBQUduQyxxQkFBcUIsQ0FBQ2tDLE9BQU87SUFDL0RELEtBQUssQ0FBQ08saUJBQWlCLENBQUNELEtBQUssRUFBRUEsS0FBSyxDQUFDO0lBQ3JDTixLQUFLLENBQUNJLFVBQVUsR0FBR0MsV0FBVyxHQUFHTCxLQUFLLENBQUNRLFdBQVcsR0FBR0wsUUFBUTtJQUM3REgsS0FBSyxDQUFDUyxLQUFLLENBQUEsQ0FBRTtFQUNmLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTixJQUFNQyxZQUFZLEdBQUcsSUFBQWYsa0JBQVcsRUFBQyxVQUFDckgsQ0FBZ0MsRUFBSTtJRGpCaEUsSUFBSXlILEVBQUUsRUFBRVksRUFBRSxFQUFFQyxFQUFFLEVBQUVDLEVBQUUsRUFBRUMsRUFBRSxFQUFFQyxFQUFFO0lDa0I5QixJQUFJckUsUUFBUSxJQUFJQyxRQUFRLEVBQUU7SUFDMUIsSUFBSXhDLEdBQUcsR0FBRzdCLENBQUMsQ0FBQzBJLE1BQU0sQ0FBQzVGLEtBQUs7SUFDeEIsSUFBSTZGLGlCQUFpQixHQUFHLEtBQUs7SUFDN0IsSUFBSTlHLEdBQUcsSUFBSSxJQUFJLEVBQUVBLEdBQUcsR0FBR0Qsb0JBQW9CLENBQUNDLEdBQUcsQ0FBQyxDQUFDK0csS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDQyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ3BFLElBQU1DLGVBQWUsR0FBRyxDQUFDLENBQUNqSCxHQUFHLElBQUlBLEdBQUcsQ0FBQ2tILFFBQVEsQ0FBQyxHQUFHLENBQUM7SUFDbEQsSUFBSUQsZUFBZSxFQUFFakgsR0FBRyxHQUFHQSxHQUFHLENBQUNtSCxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNDLElBQUksQ0FBQ2hGLFFBQVEsS0FBSW5DLEdBQUcsS0FBQSxJQUFBLElBQUhBLEdBQUcsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBSEEsR0FBRyxDQUFFb0gsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFBLEVBQUU7SUFDckMsSUFBTUMsaUJBQWlCLEdBQUdsRixRQUFRLElBQUluQyxHQUFHLEtBQUssR0FBRztJQUNqRCxJQUFJLENBQUNxSCxpQkFBaUIsSUFBSWhILEtBQUssQ0FBQyxDQUFDTCxHQUFHLENBQUMsRUFBRTtJQUN2QyxJQUFJQSxHQUFHLEtBQUtvRSxNQUFNLElBQUksQ0FBQzZDLGVBQWUsRUFBRTtJQUN4QyxJQUFJLE9BQU83RixpQkFBaUIsS0FBSyxRQUFRLElBQUksT0FBT0EsaUJBQWlCLEtBQUssUUFBUSxFQUFFO01BQ2xGLElBQUFrRyxVQUFBLEdBQXVCdEgsR0FBRyxDQUFDK0csS0FBSyxDQUFDLEdBQUcsQ0FBQztRQUFBUSxXQUFBLE9BQUFwRCxlQUFBLGFBQUFtRCxVQUFBO1FBQTlCRSxJQUFHLEdBQUFELFdBQUE7UUFBRUUsT0FBTyxHQUFBRixXQUFBO01BQ25CLElBQUlFLE9BQU8sSUFBSSxJQUFJLElBQUlBLE9BQU8sQ0FBQzdILE1BQU0sR0FBRzhILE1BQU0sQ0FBQ3RHLGlCQUFpQixDQUFDLEVBQUU7UUFDakVwQixHQUFHLE1BQUFvRCxNQUFBLENBQU1vRSxJQUFHLE9BQUFwRSxNQUFBLENBQUlxRSxPQUFPLENBQUNOLEtBQUssQ0FBQyxDQUFDLEVBQUVPLE1BQU0sQ0FBQ3RHLGlCQUFpQixDQUFDLENBQUMsQ0FBRTtRQUM3RDBGLGlCQUFpQixHQUFHLElBQUk7TUFDMUI7SUFDRjtJQUVBLElBQUlhLGNBQWMsR0FBRyxLQUFLO0lBQzFCLElBQUssT0FBT3hILEdBQUcsS0FBSyxRQUFRLElBQUksT0FBT0EsR0FBRyxLQUFLLFFBQVEsSUFBTSxPQUFPQyxHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU9BLEdBQUcsS0FBSyxRQUFTLEVBQUU7TUFDaEgsSUFBTXdILEdBQUcsR0FBRzFILGlCQUFpQixDQUFDRixHQUFHLEVBQUVHLEdBQUcsRUFBRUMsR0FBRyxDQUFDO01BQzVDSixHQUFHLEdBQUc0SCxHQUFHLENBQUM1SCxHQUFHO01BQ2IySCxjQUFjLEdBQUdDLEdBQUcsQ0FBQ3RILE9BQU87SUFDOUI7SUFFQSxJQUFJK0MsUUFBUSxDQUFDeUMsT0FBTyxFQUFFO01BQ3BCLElBQU0rQixjQUFjLEdBQUcsQ0FBQWpDLEVBQUEsR0FBQXZDLFFBQVEsQ0FBQ3lDLE9BQU8sQ0FBQytCLGNBQWMsTUFBQSxJQUFBLElBQUFqQyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSSxDQUFDO01BQzNELElBQU1rQyxZQUFZLEdBQUcsQ0FBQXJCLEVBQUEsR0FBQSxDQUFBRCxFQUFBLEdBQUFySSxDQUFDLENBQUMwSSxNQUFNLENBQUM1RixLQUFLLE1BQUEsSUFBQSxJQUFBdUYsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVXLEtBQUssQ0FBQyxDQUFDLEVBQUVVLGNBQWMsQ0FBQyxNQUFBLElBQUEsSUFBQXBCLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLEVBQUU7TUFDbkUsSUFBTXNCLGNBQWMsR0FBR2hJLG9CQUFvQixDQUFDK0gsWUFBWSxDQUFDLENBQUNmLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDcEgsTUFBTTtNQUVwRixJQUFNb0ksZUFBZSxHQUFHLElBQUE1QyxtQ0FBZ0IsRUFBQ3BGLEdBQUcsRUFBRTtRQUM1Q3FGLGlCQUFpQixFQUFFLElBQUk7UUFDdkJDLGFBQWEsRUFBRW5EO01EYlgsQ0NjTCxDQUFDO01BRUYsSUFBTThGLFlBQVksR0FBR0MsSUFBSSxDQUFDL0gsR0FBRyxDQUFDNEgsY0FBYyxFQUFFL0gsR0FBRyxDQUFDSixNQUFNLENBQUM7TUFDekQsSUFBSXVJLFFBQVEsR0FBR0gsZUFBZSxDQUFDcEksTUFBTTtNQUNyQyxJQUFJd0ksSUFBSSxHQUFHLENBQUM7TUFDWixLQUFLLElBQUloSixDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUc0SSxlQUFlLENBQUNwSSxNQUFNLEVBQUVSLENBQUMsRUFBRSxFQUFFO1FBQy9DLElBQUk0SSxlQUFlLENBQUM1SSxDQUFDLENBQUMsS0FBSyxHQUFHLEVBQUU7UUFDaENnSixJQUFJLElBQUksQ0FBQztRQUNULElBQUlBLElBQUksS0FBS0gsWUFBWSxFQUFFO1VBQ3pCRSxRQUFRLEdBQUcvSSxDQUFDLEdBQUcsQ0FBQztVQUNoQjtRQUNGO01BQ0Y7TUFDQSxJQUFJNkksWUFBWSxLQUFLLENBQUMsRUFBRUUsUUFBUSxHQUFHLENBQUM7TUFFcEMsSUFBSWxCLGVBQWUsSUFBSSxDQUFDSCxpQkFBaUIsSUFBSW1CLFlBQVksS0FBS2pJLEdBQUcsQ0FBQ0osTUFBTSxFQUFFO1FBQ3hFdUksUUFBUSxHQUFHRCxJQUFJLENBQUMvSCxHQUFHLENBQUM2SCxlQUFlLENBQUNwSSxNQUFNLEdBQUcsQ0FBQyxFQUFFdUksUUFBUSxHQUFHLENBQUMsQ0FBQztNQUMvRDtNQUVBdkUscUJBQXFCLENBQUNrQyxPQUFPLEdBQUdnQixpQkFBaUIsR0FDN0NrQixlQUFlLENBQUNwSSxNQUFNLEdBQ3RCK0gsY0FBYyxHQUNaSyxlQUFlLENBQUNwSSxNQUFNLEdBQ3RCdUksUUFBUTtNQUNkcEUsbUJBQW1CLENBQUMrQixPQUFPLEdBQUcsSUFBSTtJQUNwQztJQUVBLElBQUksT0FBTzdFLEtBQUssS0FBSyxXQUFXLEVBQUU7TUFDaEMsSUFBSWpCLEdBQUcsS0FBSyxFQUFFLEVBQUU7UUFDZHFFLFFBQVEsQ0FBQyxJQUFJLENBQUM7TUFDaEIsQ0FBQyxNQUFNLElBQUlnRCxpQkFBaUIsRUFBRTtRQUM1QmhELFFBQVEsQ0FBQyxHQUFHLENBQUM7TUFDZixDQUFDLE1BQU07UUFDTCxJQUFNZ0UsUUFBUSxHQUFHLENBQUF6QixFQUFBLEdBQUEsQ0FBQUQsRUFBQSxHQUFBLENBQUFELEVBQUEsR0FBQTFHLEdBQUcsQ0FBQ3NJLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBQSxJQUFBLElBQUE1QixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRyxDQUFDLENBQUMsTUFBQSxJQUFBLElBQUFDLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFL0csTUFBTSxNQUFBLElBQUEsSUFBQWdILEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLENBQUM7UUFDeEQsSUFBTTJCLEVBQUUsR0FBRyxJQUFBOUgscUJBQVMsRUFBQ1QsR0FBRyxDQUFDO1FBQ3pCLElBQUl3SSxVQUFVLEdBQUdELEVBQUUsQ0FBQ0UsT0FBTyxDQUFDSixRQUFRLENBQUM7UUFDckMsSUFBSWxHLFFBQVEsSUFBSW5DLEdBQUcsQ0FBQzBJLElBQUksQ0FBQSxDQUFFLENBQUNDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSUosRUFBRSxDQUFDSyxNQUFNLENBQUEsQ0FBRSxFQUFFO1VBQ3pESixVQUFVLEdBQUdBLFVBQVUsQ0FBQ0csVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHSCxVQUFVLE9BQUFwRixNQUFBLENBQU9vRixVQUFVLENBQUU7UUFDekU7UUFDQW5FLFFBQVEsQ0FBQyxHQUFBakIsTUFBQSxDQUFHb0YsVUFBVSxFQUFBcEYsTUFBQSxDQUFHNkQsZUFBZSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUd5QixJQUFJLENBQUEsQ0FBRSxDQUFDO01BQy9EO0lBQ0Y7SUFFQTVGLFFBQVEsS0FBQSxJQUFBLElBQVJBLFFBQVEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBUkEsUUFBUSxDQUFHM0UsQ0FBQyxDQUFDO0VBQ2YsQ0FBQyxFQUFFLENBQUMyRSxRQUFRLEVBQUVzQixNQUFNLEVBQUVuRCxLQUFLLEVBQUVpRSxjQUFjLEVBQUU5RCxpQkFBaUIsRUFBRWpCLEdBQUcsRUFBRUMsR0FBRyxFQUFFK0IsUUFBUSxFQUFFSSxRQUFRLEVBQUVDLFFBQVEsQ0FBQyxDQUFDO0VBRXhHLElBQUFxRyxnQkFBUyxFQUFDLFlBQUs7SURmVCxJQUFJakQsRUFBRSxFQUFFWSxFQUFFLEVBQUVDLEVBQUUsRUFBRUMsRUFBRSxFQUFFQyxFQUFFLEVBQUVDLEVBQUUsRUFBRWtDLEVBQUUsRUFBRUMsRUFBRSxFQUFFQyxFQUFFLEVBQUVDLEVBQUU7SUNnQjlDLElBQU1DLGNBQWMsR0FBRyxDQUFBMUMsRUFBQSxHQUFBLENBQUFaLEVBQUEsR0FBQWpDLFlBQVksQ0FBQ21DLE9BQU8sTUFBQSxJQUFBLElBQUFGLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFdUQsV0FBVyxNQUFBLElBQUEsSUFBQTNDLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJMUcsZUFBZTtJQUMzRSxJQUFNc0osV0FBVyxHQUFHLENBQUExQyxFQUFBLEdBQUEsQ0FBQUQsRUFBQSxHQUFBakQsU0FBUyxDQUFDc0MsT0FBTyxNQUFBLElBQUEsSUFBQVcsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUUwQyxXQUFXLE1BQUEsSUFBQSxJQUFBekMsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUksQ0FBQztJQUN2RCxJQUFNMkMsV0FBVyxHQUFHLENBQUF6QyxFQUFBLEdBQUEsQ0FBQUQsRUFBQSxHQUFBbEQsU0FBUyxDQUFDcUMsT0FBTyxNQUFBLElBQUEsSUFBQWEsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUV3QyxXQUFXLE1BQUEsSUFBQSxJQUFBdkMsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUksQ0FBQztJQUN2RCxJQUFNMEMsYUFBYSxHQUFHLENBQUFQLEVBQUEsR0FBQSxDQUFBRCxFQUFBLEdBQUFwRixXQUFXLENBQUNvQyxPQUFPLE1BQUEsSUFBQSxJQUFBZ0QsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVLLFdBQVcsTUFBQSxJQUFBLElBQUFKLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLENBQUM7SUFDM0QsSUFBTVEsU0FBUyxHQUFHLENBQUFOLEVBQUEsR0FBQSxDQUFBRCxFQUFBLEdBQUF6RixVQUFVLENBQUN1QyxPQUFPLE1BQUEsSUFBQSxJQUFBa0QsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVHLFdBQVcsTUFBQSxJQUFBLElBQUFGLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLENBQUM7SUFDdEQsSUFBTU8sUUFBUSxHQUFHSixXQUFXLElBQUlDLFdBQVcsSUFBSUMsYUFBYSxHQUN4RCxFQUFFLEdBQ0RGLFdBQVcsSUFBSUMsV0FBVyxJQUFNRCxXQUFXLElBQUlFLGFBQWMsSUFBS0QsV0FBVyxJQUFJQyxhQUFjLEdBQzlGLEVBQUUsR0FDRkYsV0FBVyxJQUFJQyxXQUFXLElBQUlDLGFBQWEsR0FDekMsQ0FBQyxHQUNELENBQUM7SUFFVCxJQUFNRyxRQUFRLEdBQUdQLGNBQWMsR0FBR0UsV0FBVyxHQUFHQyxXQUFXLEdBQUdDLGFBQWEsR0FBR0UsUUFBUTtJQUN0RixJQUFNRSxLQUFLLEdBQUdILFNBQVMsSUFBSUUsUUFBUTtJQUNuQ2hGLFFBQVEsQ0FBQ3lELElBQUksQ0FBQy9ILEdBQUcsQ0FBQ3NKLFFBQVEsRUFBRXZCLElBQUksQ0FBQzlILEdBQUcsQ0FBQ21KLFNBQVMsRUFBRXpKLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFDbEUrRSxhQUFhLENBQUM2RSxLQUFLLENBQUM7SUFFcEIsSUFDRTFFLE9BQU8sS0FDTlosTUFBTSxLQUFLUCxZQUFZLENBQUNpQyxPQUFPLElBQUksQ0FBQ2hDLFlBQVksQ0FBQ2dDLE9BQU8sQ0FBQyxJQUMxRC9CLG1CQUFtQixDQUFDK0IsT0FBTyxFQUMzQjtNQUNBUCxXQUFXLENBQUMsSUFBSSxDQUFDO01BQ2pCeEIsbUJBQW1CLENBQUMrQixPQUFPLEdBQUcsS0FBSztJQUNyQztJQUNBakMsWUFBWSxDQUFDaUMsT0FBTyxHQUFHMUIsTUFBTTtJQUM3Qk4sWUFBWSxDQUFDZ0MsT0FBTyxHQUFHZCxPQUFPO0VBQ2hDLENBQUMsRUFBRSxDQUFDWixNQUFNLEVBQUUxQixNQUFNLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFFb0MsT0FBTyxFQUFFTyxXQUFXLENBQUMsQ0FBQztFQUU1RCxJQUFBc0QsZ0JBQVMsRUFBQyxZQUFLO0lBQ2I7SUFDQSxJQUFJMUcsUUFBUSxFQUFFO0lBQ2QsSUFBSSxPQUFPbEIsS0FBSyxLQUFLLFdBQVcsRUFBRTtJQUNsQyxJQUFJbUQsTUFBTSxJQUFJLElBQUksRUFBRTtJQUNwQixJQUFJQSxNQUFNLEtBQUssR0FBRyxFQUFFO01BQ2xCQyxRQUFRLENBQUMsSUFBSSxDQUFDO01BQ2Q7SUFDRjtJQUNBLElBQUlELE1BQU0sQ0FBQ3VFLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRXRFLFFBQVEsQ0FBQ0QsTUFBTSxDQUFDK0MsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0VBQ3ZELENBQUMsRUFBRSxDQUFDaEYsUUFBUSxFQUFFbEIsS0FBSyxFQUFFbUQsTUFBTSxDQUFDLENBQUM7RUFFN0IsSUFBQXlFLGdCQUFTLEVBQUMsWUFBSztJRGhCVCxJQUFJakQsRUFBRSxFQUFFWSxFQUFFLEVBQUVDLEVBQUU7SUNpQmxCLElBQUl6RyxHQUFHLEdBQUdpQixLQUFLO0lBQ2YsSUFBSWdHLGVBQWUsR0FBRyxLQUFLO0lBQzNCLElBQUksT0FBT2pILEdBQUcsS0FBSyxRQUFRLEVBQUU7TUFDM0IsSUFBSUEsR0FBRyxLQUFLLEVBQUUsRUFBRTtRQUNkQSxHQUFHLEdBQUcsSUFBSTtNQUNaLENBQUMsTUFBTTtRQUNMQSxHQUFHLEdBQUdELG9CQUFvQixDQUFDQyxHQUFHLENBQUMsQ0FBQytHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNuREMsZUFBZSxHQUFHLENBQUMsQ0FBQ2pILEdBQUcsSUFBSUEsR0FBRyxDQUFDa0gsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUM1QyxJQUFJRCxlQUFlLEVBQUVqSCxHQUFHLEdBQUdBLEdBQUcsQ0FBQ21ILEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDaEYsUUFBUSxFQUFFbkMsR0FBRyxHQUFHQSxHQUFHLENBQUNDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQzFDLElBQUlrQyxRQUFRLElBQUluQyxHQUFHLEtBQUssR0FBRyxFQUFFO1VBQzNCcUUsUUFBUSxDQUFDLEdBQUcsQ0FBQztVQUNiO1FBQ0Y7UUFDQSxJQUFJaEUsS0FBSyxDQUFDLENBQUNMLEdBQUcsQ0FBQyxFQUFFO01BQ25CO0lBQ0YsQ0FBQyxNQUFNLElBQUlBLEdBQUcsS0FBSyxJQUFJLElBQUksT0FBT0EsR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPQSxHQUFHLEtBQUssUUFBUSxFQUFFO0lBRS9FLElBQUksQ0FBQ21DLFFBQVEsRUFBRTtNQUNiLElBQUksT0FBT25DLEdBQUcsS0FBSyxRQUFRLEVBQUU7UUFDM0JBLEdBQUcsR0FBR2tJLElBQUksQ0FBQ3lCLEdBQUcsQ0FBQzNKLEdBQUcsQ0FBQztNQUNyQixDQUFDLE1BQU0sSUFBSSxPQUFPQSxHQUFHLEtBQUssUUFBUSxFQUFFO1FBQ2xDLElBQU00SixJQUFJLEdBQUdDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdEI3SixHQUFHLEdBQUdBLEdBQUcsR0FBRzRKLElBQUksR0FBRyxDQUFDNUosR0FBRyxHQUFHQSxHQUFHO01BQy9CO0lBQ0Y7SUFFQSxJQUFJLENBQUMsT0FBT0EsR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPQSxHQUFHLEtBQUssUUFBUSxNQUFNLE9BQU9vQixpQkFBaUIsS0FBSyxRQUFRLElBQUksT0FBT0EsaUJBQWlCLEtBQUssUUFBUSxDQUFDLEVBQUU7TUFDNUksSUFBQTBJLE1BQUEsR0FBdUIsQ0FBQyxFQUFFLEdBQUc5SixHQUFHLEVBQUUrRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQUFnRCxPQUFBLE9BQUE1RixlQUFBLGFBQUEyRixNQUFBO1FBQXJDdEMsS0FBRyxHQUFBdUMsT0FBQTtRQUFFdEMsT0FBTyxHQUFBc0MsT0FBQTtNQUNuQixJQUFJdEMsT0FBTyxJQUFJLElBQUksSUFBSUEsT0FBTyxDQUFDN0gsTUFBTSxHQUFHOEgsTUFBTSxDQUFDdEcsaUJBQWlCLENBQUMsRUFBRTtRQUNqRXBCLEdBQUcsR0FBR3dILEtBQUcsR0FBRyxHQUFHLEdBQUdDLE9BQU8sQ0FBQ04sS0FBSyxDQUFDLENBQUMsRUFBRU8sTUFBTSxDQUFDdEcsaUJBQWlCLENBQUMsQ0FBQztNQUMvRDtJQUNGO0lBRUEsSUFBSSxPQUFPcEIsR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPQSxHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU9BLEdBQUcsS0FBSyxRQUFRLEVBQUU7TUFDakYsSUFBTTRILEdBQUcsR0FBRzFILGlCQUFpQixDQUFDLEVBQUUsR0FBR0YsR0FBRyxFQUFFRyxHQUFHLEVBQUVDLEdBQUcsQ0FBQztNQUNqREosR0FBRyxHQUFHNEgsR0FBRyxDQUFDNUgsR0FBRztJQUNmO0lBRUEsSUFBSUEsR0FBRyxLQUFLLEVBQUUsSUFBSUEsR0FBRyxJQUFJLElBQUksRUFBRTtNQUM3QnFFLFFBQVEsQ0FBQyxJQUFJLENBQUM7SUFDaEIsQ0FBQyxNQUFNO01BQ0wsSUFBTTJGLE1BQU0sR0FBRyxFQUFFLEdBQUdoSyxHQUFHO01BQ3ZCLElBQU1xSSxRQUFRLEdBQUcsQ0FBQTVCLEVBQUEsR0FBQSxDQUFBRCxFQUFBLEdBQUEsQ0FBQVosRUFBQSxHQUFBb0UsTUFBTSxDQUFDMUIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFBLElBQUEsSUFBQTFDLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFHLENBQUMsQ0FBQyxNQUFBLElBQUEsSUFBQVksRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUU1RyxNQUFNLE1BQUEsSUFBQSxJQUFBNkcsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUksQ0FBQztNQUMzRCxJQUFNOEIsRUFBRSxHQUFHLElBQUE5SCxxQkFBUyxFQUFDdUosTUFBTSxDQUFDO01BQzVCLElBQUl4QixVQUFVLEdBQUdELEVBQUUsQ0FBQ0UsT0FBTyxDQUFDSixRQUFRLENBQUM7TUFDckMsSUFBSWxHLFFBQVEsSUFBSTZILE1BQU0sQ0FBQ3RCLElBQUksQ0FBQSxDQUFFLENBQUNDLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSUosRUFBRSxDQUFDSyxNQUFNLENBQUEsQ0FBRSxFQUFFO1FBQzVESixVQUFVLEdBQUdBLFVBQVUsQ0FBQ0csVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHSCxVQUFVLE9BQUFwRixNQUFBLENBQU9vRixVQUFVLENBQUU7TUFDekU7TUFDQW5FLFFBQVEsQ0FBQyxHQUFBakIsTUFBQSxDQUFHb0YsVUFBVSxFQUFBcEYsTUFBQSxDQUFHNkQsZUFBZSxHQUFHLEdBQUcsR0FBRyxFQUFFLEVBQUd5QixJQUFJLENBQUEsQ0FBRSxDQUFDO0lBQy9EO0VBQ0YsQ0FBQyxFQUFFLENBQUN6SCxLQUFLLEVBQUVHLGlCQUFpQixFQUFFakIsR0FBRyxFQUFFQyxHQUFHLEVBQUUrQixRQUFRLENBQUMsQ0FBQztFQUVsRCxPQUFPLElBQUE4SCxnQkFBQSxFQUFBLEtBQUEsRUFBQTtJQUNMckksU0FBUyxFQUFFc0IsT0FBTyxDQUFDLFNBQVMsRUFBRSxJQUFBZ0gsbUJBQU8sRUFDbkNySSxVQUFVLEVBQ1ZLLE9BQU8sSUFBSWdCLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFDN0JaLE9BQU8sSUFBSVksT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUM3QlgsUUFBUSxJQUFJVyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQy9CVixRQUFRLElBQUlVLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFDL0JrQixNQUFNLElBQUlsQixPQUFPLENBQUMsUUFBUSxDQUFDLENBQzVCLENBQUM7SUFBQTdCLFFBQUEsRUFBQSxDQUdBb0IsS0FBSyxHQUNESixPQUFPLEdBQ0wsSUFBQThILGVBQUEsRUFBQ0Msa0JBQVEsRUFBQTtNQUFDQyxLQUFLLEVBQUMsTUFBTTtNQUFDQyxNQUFNLEVBQUMsTUFBTTtNQUFDMUksU0FBUyxFQUFFc0IsT0FBTyxDQUFDLGVBQWU7SUFBQyxDQUFBLENBQUksR0FDNUUsSUFBQWlILGVBQUEsRUFBQSxNQUFBLEVBQUE7TUFBTXZJLFNBQVMsRUFBRXNCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBQWdILG1CQUFPLEVBQUM5SCxRQUFRLElBQUljLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFcEIsUUFBUSxDQUFDLENBQUM7TUFBQVQsUUFBQSxFQUFHb0I7SUFBSyxDQUFBLENBQVEsR0FDN0csSUFBSSxFQUVWLElBQUF3SCxnQkFBQSxFQUFBLEtBQUEsRUFBQTtNQUNFTSxHQUFHLEVBQUU1RyxZQUFZO01BQ2pCL0IsU0FBUyxFQUFFc0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUFnSCxtQkFBTyxFQUFDdEksU0FBUyxFQUFFb0QsT0FBTyxJQUFJOUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7TUFDM0VzSCxPQUFPLEVBQUUsU0FBVEEsT0FBT0EsQ0FBR3JNLENBQUMsRUFBSTtRRDVCRCxJQUFJeUgsRUFBRTtRQzZCbEIsSUFBSXpILENBQUMsQ0FBQzBJLE1BQU0sWUFBWTRELGdCQUFnQixFQUFFO1FBQzFDLENBQUE3RSxFQUFBLEdBQUF2QyxRQUFRLENBQUN5QyxPQUFPLE1BQUEsSUFBQSxJQUFBRixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRVUsS0FBSyxDQUFBLENBQUU7UUFDekIsSUFBSTFCLFVBQVUsRUFBRVcsV0FBVyxDQUFBLENBQUU7TUFDL0IsQ0FBQztNQUFBbEUsUUFBQSxFQUFBLENBR0NxQixNQUFNLElBQUksSUFBQXlILGVBQUEsRUFBQSxNQUFBLEVBQUE7UUFDUkksR0FBRyxFQUFFL0csU0FBUztRQUNkNUIsU0FBUyxFQUFFc0IsT0FBTyxDQUFDLFFBQVEsQ0FBQztRQUFBN0IsUUFBQSxFQUUzQnFCO01BQU0sQ0FBQSxDQUNGLEVBRVQsSUFBQXlILGVBQUEsRUFBQSxLQUFBLEVBQUE7UUFDRXZJLFNBQVMsRUFBRXNCLE9BQU8sQ0FBQyxTQUFTLEVBQUcsQ0FBQzhCLE9BQU8sSUFBSUosVUFBVSxHQUFJMUIsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUFBN0IsUUFBQSxFQUVyRixJQUFBOEksZUFBQSxFQUFBLE9BQUEsRUFBQXJMLE1BQUEsQ0FBQTRMLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDTXpILElBQUksRUFBQTtVQUNSc0gsR0FBRyxFQUFFbEgsUUFBUTtVQUNicEMsS0FBSyxFQUFFaUUsY0FBYztVQUNyQjNELFdBQVcsRUFBRUEsV0FBVztVQUN4QmlCLFFBQVEsRUFBRUEsUUFBUTtVQUNsQkQsUUFBUSxFQUFFQSxRQUFRO1VBQ2xCb0ksS0FBSyxFQUFFO1lBQUUsZUFBZSxLQUFBdkgsTUFBQSxDQUFLb0IsTUFBTTtVQUFJLENBQW1CO1VBQzFEMUIsUUFBUSxFQUFFeUQsWUFBWTtVQUN0QnZELE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFFN0UsQ0FBQyxFQUFHO1lBQ1g4RyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ2hCakMsUUFBTyxLQUFBLElBQUEsSUFBUEEsUUFBTyxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFQQSxRQUFPLENBQUc3RSxDQUFDLENBQUM7VUFDZCxDQUFDO1VBQ0Q0RSxNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBRTVFLENBQUMsRUFBRztZQUNWOEcsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUNqQmxDLE9BQU0sS0FBQSxJQUFBLElBQU5BLE9BQU0sS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBTkEsT0FBTSxDQUFHNUUsQ0FBQyxDQUFDO1VBQ2I7UUFBQyxDQUFBLENBQUE7TUFDRCxDQUFBLENBQ0UsRUFFSnlFLFFBQVEsSUFBSSxJQUFBdUgsZUFBQSxFQUFBLE1BQUEsRUFBQTtRQUNWSSxHQUFHLEVBQUU3RyxXQUFXO1FBQ2hCOUIsU0FBUyxFQUFFc0IsT0FBTyxDQUFDLFVBQVUsQ0FBQztRQUFBN0IsUUFBQSxFQUU3QnVCO01BQVEsQ0FBQSxDQUNKLEVBRVJQLE9BQU8sR0FBRyxJQUFBOEgsZUFBQSxFQUFDUyxtQkFBTyxFQUFBO1FBQUNoSixTQUFTLEVBQUVzQixPQUFPLENBQUMsZ0JBQWdCLENBQUM7UUFBRTJILFdBQVcsRUFBQztNQUFHLENBQUEsQ0FBRyxHQUFHbEksTUFBTSxHQUFHLElBQUF3SCxlQUFBLEVBQUEsTUFBQSxFQUFBO1FBQU1JLEdBQUcsRUFBRTlHLFNBQVM7UUFBRTdCLFNBQVMsRUFBRXNCLE9BQU8sQ0FBQyxRQUFRLENBQUM7UUFBQTdCLFFBQUEsRUFBR3NCO01BQU0sQ0FBQSxDQUFRLEdBQUcsSUFBSSxFQUNsSyxJQUFBd0gsZUFBQSxFQUFBLE1BQUEsRUFBQTtRQUNFSSxHQUFHLEVBQUVoSCxVQUFVO1FBQ2YzQixTQUFTLEVBQUVzQixPQUFPLENBQUMsTUFBTSxDQUFDO1FBQzFCc0gsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUVyTSxDQUFDO1VBQUEsT0FBSUEsQ0FBQyxDQUFDMk0sZUFBZSxDQUFBLENBQUU7UUFBQTtRQUFBekosUUFBQSxFQUcvQixJQUFBK0QsbUNBQWdCLEVBQUMsRUFBRSxJQUFJaEIsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUdBLE1BQU0sQ0FBQyxFQUFFO1VBQ3BEaUIsaUJBQWlCLEVBQUUsSUFBSTtVQUN2QkMsYUFBYSxFQUFFbkQ7UURsRUgsQ0NtRWI7TUFBQyxDQUFBLENBRUM7SUFBQSxDQUFBLENBQ0gsRUFFSixDQUFDVSxPQUFPLElBQUluQixRQUFRLEtBQUssSUFBQXVJLGdCQUFBLEVBQUEsS0FBQSxFQUFBO01BQUtySSxTQUFTLEVBQUVzQixPQUFPLENBQUMsT0FBTyxDQUFDO01BQUE3QixRQUFBLEVBQUEsQ0FDdER3QixPQUFPLElBQUksSUFBQXNILGVBQUEsRUFBQSxLQUFBLEVBQUE7UUFBS3ZJLFNBQVMsRUFBRXNCLE9BQU8sQ0FBQyxTQUFTLEVBQUVqQixVQUFVLENBQUM7UUFBQVosUUFBQSxFQUFHd0I7TUFBTyxDQUFBLENBQU8sRUFDMUVuQixRQUFRLElBQUksSUFBQXlJLGVBQUEsRUFBQSxLQUFBLEVBQUE7UUFBS3ZJLFNBQVMsRUFBRXNCLE9BQU8sQ0FBQyxVQUFVLEVBQUV2QixXQUFXLENBQUM7UUFBQU4sUUFBQSxFQUFHSztNQUFRLENBQUEsQ0FBTztJQUFBLENBQUEsQ0FDM0U7RUFBQSxDQUFBLENBRUo7QUFDUixDQUFDO0FBQUMsSUFBQXFKLFFBQUEsR0FBQWhLLE9BQUEsMkJBRWEsSUFBQWlLLFdBQUksRUFBQ2xLLFdBQVcsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZU1lbW8sIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBudW1lcmljRm9ybWF0dGVyIH0gZnJvbSAncmVhY3QtbnVtYmVyLWZvcm1hdCc7XG5pbXBvcnQgeyBTa2VsZXRvbiB9IGZyb20gJ3ByaW1lcmVhY3Qvc2tlbGV0b24nO1xuaW1wb3J0IFNwaW5uZXIgZnJvbSAnLi4vU3Bpbm5lcic7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmNvbnN0IE1JTl9JTlBVVF9XSURUSCA9IDMzO1xuY29uc3Qgbm9ybWFsaXplTnVtYmVySW5wdXQgPSAodmFsKSA9PiB2YWxcbiAgICAucmVwbGFjZSgvW1xcdTMwMDJcXHVmZjBlXFx1ZmY2MV0vZywgJy4nKVxuICAgIC5yZXBsYWNlKC9bXFx1RkYwQ10vZywgJywnKTtcbmNvbnN0IGNsYW1wVmFsdWVJblJhbmdlID0gKHZhbCwgbWluLCBtYXgpID0+IHtcbiAgICBpZiAodmFsID09PSAnJyB8fCB2YWwgPT09ICctJyB8fCBpc05hTigrdmFsKSlcbiAgICAgICAgcmV0dXJuIHsgdmFsLCBjbGFtcGVkOiBmYWxzZSB9O1xuICAgIGxldCBjbGFtcGVkVmFsID0gdmFsO1xuICAgIGxldCBjbGFtcGVkID0gZmFsc2U7XG4gICAgY29uc3QgYm5WYWwgPSBCaWdOdW1iZXIodmFsKTtcbiAgICBpZiAodHlwZW9mIG1pbiA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1pbiA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgY29uc3QgbWluQm4gPSBCaWdOdW1iZXIobWluKTtcbiAgICAgICAgaWYgKGJuVmFsLmx0KG1pbkJuKSkge1xuICAgICAgICAgICAgY2xhbXBlZFZhbCA9ICcnICsgbWluO1xuICAgICAgICAgICAgY2xhbXBlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiBtYXggPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXggPT09ICdiaWdpbnQnKSB7XG4gICAgICAgIGNvbnN0IG1heEJuID0gQmlnTnVtYmVyKG1heCk7XG4gICAgICAgIGlmIChiblZhbC5ndChtYXhCbikpIHtcbiAgICAgICAgICAgIGNsYW1wZWRWYWwgPSAnJyArIG1heDtcbiAgICAgICAgICAgIGNsYW1wZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IHZhbDogY2xhbXBlZFZhbCwgY2xhbXBlZCB9O1xufTtcbmV4cG9ydCBjb25zdCBJbnB1dEFtb3VudCA9IHByb3BzID0+IHtcbiAgICBjb25zdCB7IHZhbHVlLCB0eXBlID0gJ3ByaW1hcnknLCBtYXhGcmFjdGlvbkRpZ2l0cywgY2hpbGRyZW4sIHBsYWNlaG9sZGVyID0gJzAnLCBtaW4sIG1heCwgXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIHNpemUgPSAnbGFyZ2UnLCBmb290bm90ZSwgZm9vdG5vdGVDbHMsIGNsYXNzTmFtZSwgd3JhcHBlckNscywgbGFiZWxDbHMsIHByZWZpeENscyA9ICdpbnB1dC1hbW91bnQnLCBtZXNzYWdlQ2xzLCBpbnZhbGlkLCBuZWdhdGl2ZSwgcmVxdWlyZWQsIGxvYWRpbmcsIHN1Y2Nlc3MsIGRpc2FibGVkLCByZWFkT25seSwgbGFiZWwsIHByZWZpeCwgc3VmZml4LCBjdXJyZW5jeSwgbWVzc2FnZSwgb25DaGFuZ2UsIG9uQmx1ciwgb25Gb2N1cyB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcInZhbHVlXCIsIFwidHlwZVwiLCBcIm1heEZyYWN0aW9uRGlnaXRzXCIsIFwiY2hpbGRyZW5cIiwgXCJwbGFjZWhvbGRlclwiLCBcIm1pblwiLCBcIm1heFwiLCBcInNpemVcIiwgXCJmb290bm90ZVwiLCBcImZvb3Rub3RlQ2xzXCIsIFwiY2xhc3NOYW1lXCIsIFwid3JhcHBlckNsc1wiLCBcImxhYmVsQ2xzXCIsIFwicHJlZml4Q2xzXCIsIFwibWVzc2FnZUNsc1wiLCBcImludmFsaWRcIiwgXCJuZWdhdGl2ZVwiLCBcInJlcXVpcmVkXCIsIFwibG9hZGluZ1wiLCBcInN1Y2Nlc3NcIiwgXCJkaXNhYmxlZFwiLCBcInJlYWRPbmx5XCIsIFwibGFiZWxcIiwgXCJwcmVmaXhcIiwgXCJzdWZmaXhcIiwgXCJjdXJyZW5jeVwiLCBcIm1lc3NhZ2VcIiwgXCJvbkNoYW5nZVwiLCBcIm9uQmx1clwiLCBcIm9uRm9jdXNcIl0pO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke3ByZWZpeENsc30tJHt0eXBlfWApO1xuICAgIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGZha2VFbGVSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgcHJlZml4UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHN1ZmZpeFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjdXJyZW5jeVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgaW5wdXRDYXJldFBvc2l0aW9uUmVmID0gdXNlUmVmKDApO1xuICAgIGNvbnN0IHByZXZWYWx1ZVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBwcmV2Rm9jdXNSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IHBlbmRpbmdDYXJldFN5bmNSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IFtfdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtfd2lkdGgsIHNldFdpZHRoXSA9IHVzZVN0YXRlKE1JTl9JTlBVVF9XSURUSCk7XG4gICAgY29uc3QgW2lzTWF4V2lkdGgsIHNldElzTWF4V2lkdGhdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtpc0ZvY3VzLCBzZXRJc0ZvY3VzXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICByZXR1cm4gbnVtZXJpY0Zvcm1hdHRlcignJyArIChfdmFsdWUgPT0gbnVsbCA/ICcnIDogX3ZhbHVlKSwge1xuICAgICAgICAgICAgdGhvdXNhbmRTZXBhcmF0b3I6IHRydWUsXG4gICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiBuZWdhdGl2ZSxcbiAgICAgICAgfSk7XG4gICAgfSwgW192YWx1ZSwgbmVnYXRpdmVdKTtcbiAgICBjb25zdCBzY3JvbGxUb0VuZCA9IHVzZUNhbGxiYWNrKChzdGlja3kgPSBmYWxzZSkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gaW5wdXRSZWYuY3VycmVudDtcbiAgICAgICAgaWYgKCFpbnB1dClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbGVuID0gKF9hID0gaW5wdXQudmFsdWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uID0gaW5wdXQuc2Nyb2xsTGVmdDtcbiAgICAgICAgY29uc3Qgc2hvdWxkVG9FbmQgPSAhc3RpY2t5O1xuICAgICAgICBjb25zdCBzdGFydCA9IHNob3VsZFRvRW5kID8gbGVuIDogaW5wdXRDYXJldFBvc2l0aW9uUmVmLmN1cnJlbnQ7XG4gICAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKHN0YXJ0LCBzdGFydCk7XG4gICAgICAgIGlucHV0LnNjcm9sbExlZnQgPSBzaG91bGRUb0VuZCA/IGlucHV0LnNjcm9sbFdpZHRoIDogcG9zaXRpb247XG4gICAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKChlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mO1xuICAgICAgICBpZiAoZGlzYWJsZWQgfHwgcmVhZE9ubHkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGxldCB2YWwgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgbGV0IHRydW5jYXRlZEZyYWN0aW9uID0gZmFsc2U7XG4gICAgICAgIGlmICh2YWwgIT0gbnVsbClcbiAgICAgICAgICAgIHZhbCA9IG5vcm1hbGl6ZU51bWJlcklucHV0KHZhbCkuc3BsaXQoJywnKS5qb2luKCcnKTtcbiAgICAgICAgY29uc3QgaGFzRGVjaW1hbFBvaW50ID0gISF2YWwgJiYgdmFsLmVuZHNXaXRoKCcuJyk7XG4gICAgICAgIGlmIChoYXNEZWNpbWFsUG9pbnQpXG4gICAgICAgICAgICB2YWwgPSB2YWwuc2xpY2UoMCwgLTEpO1xuICAgICAgICBpZiAoIW5lZ2F0aXZlICYmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB2b2lkIDAgPyB2b2lkIDAgOiB2YWwuaW5jbHVkZXMoJy0nKSkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGlzU3RhbmRhbG9uZU1pbnVzID0gbmVnYXRpdmUgJiYgdmFsID09PSAnLSc7XG4gICAgICAgIGlmICghaXNTdGFuZGFsb25lTWludXMgJiYgaXNOYU4oK3ZhbCkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh2YWwgPT09IF92YWx1ZSAmJiAhaGFzRGVjaW1hbFBvaW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAodHlwZW9mIG1heEZyYWN0aW9uRGlnaXRzID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWF4RnJhY3Rpb25EaWdpdHMgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICBjb25zdCBbaW50LCBkZWNpbWFsXSA9IHZhbC5zcGxpdCgnLicpO1xuICAgICAgICAgICAgaWYgKGRlY2ltYWwgIT0gbnVsbCAmJiBkZWNpbWFsLmxlbmd0aCA+IE51bWJlcihtYXhGcmFjdGlvbkRpZ2l0cykpIHtcbiAgICAgICAgICAgICAgICB2YWwgPSBgJHtpbnR9LiR7ZGVjaW1hbC5zbGljZSgwLCBOdW1iZXIobWF4RnJhY3Rpb25EaWdpdHMpKX1gO1xuICAgICAgICAgICAgICAgIHRydW5jYXRlZEZyYWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBsZXQgY2xhbXBlZEJ5UmFuZ2UgPSBmYWxzZTtcbiAgICAgICAgaWYgKCh0eXBlb2YgbWluID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWluID09PSAnYmlnaW50JykgfHwgKHR5cGVvZiBtYXggPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXggPT09ICdiaWdpbnQnKSkge1xuICAgICAgICAgICAgY29uc3QgcmVzID0gY2xhbXBWYWx1ZUluUmFuZ2UodmFsLCBtaW4sIG1heCk7XG4gICAgICAgICAgICB2YWwgPSByZXMudmFsO1xuICAgICAgICAgICAgY2xhbXBlZEJ5UmFuZ2UgPSByZXMuY2xhbXBlZDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5wdXRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSAoX2EgPSBpbnB1dFJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwO1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFNsaWNlID0gKF9jID0gKF9iID0gZS50YXJnZXQudmFsdWUpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5zbGljZSgwLCBzZWxlY3Rpb25TdGFydCkpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6ICcnO1xuICAgICAgICAgICAgY29uc3QgY2FyZXRSYXdMZW5ndGggPSBub3JtYWxpemVOdW1iZXJJbnB1dChjdXJyZW50U2xpY2UpLnNwbGl0KCcsJykuam9pbignJykubGVuZ3RoO1xuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkTmV3VmFsID0gbnVtZXJpY0Zvcm1hdHRlcih2YWwsIHtcbiAgICAgICAgICAgICAgICB0aG91c2FuZFNlcGFyYXRvcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiBuZWdhdGl2ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0UmF3UG9zID0gTWF0aC5taW4oY2FyZXRSYXdMZW5ndGgsIHZhbC5sZW5ndGgpO1xuICAgICAgICAgICAgbGV0IGNhcmV0UG9zID0gZm9ybWF0dGVkTmV3VmFsLmxlbmd0aDtcbiAgICAgICAgICAgIGxldCBzZWVuID0gMDtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZm9ybWF0dGVkTmV3VmFsLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZvcm1hdHRlZE5ld1ZhbFtpXSA9PT0gJywnKVxuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBzZWVuICs9IDE7XG4gICAgICAgICAgICAgICAgaWYgKHNlZW4gPT09IHRhcmdldFJhd1Bvcykge1xuICAgICAgICAgICAgICAgICAgICBjYXJldFBvcyA9IGkgKyAxO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGFyZ2V0UmF3UG9zID09PSAwKVxuICAgICAgICAgICAgICAgIGNhcmV0UG9zID0gMDtcbiAgICAgICAgICAgIGlmIChoYXNEZWNpbWFsUG9pbnQgJiYgIXRydW5jYXRlZEZyYWN0aW9uICYmIHRhcmdldFJhd1BvcyA9PT0gdmFsLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNhcmV0UG9zID0gTWF0aC5taW4oZm9ybWF0dGVkTmV3VmFsLmxlbmd0aCArIDEsIGNhcmV0UG9zICsgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpbnB1dENhcmV0UG9zaXRpb25SZWYuY3VycmVudCA9IHRydW5jYXRlZEZyYWN0aW9uXG4gICAgICAgICAgICAgICAgPyBmb3JtYXR0ZWROZXdWYWwubGVuZ3RoXG4gICAgICAgICAgICAgICAgOiBjbGFtcGVkQnlSYW5nZVxuICAgICAgICAgICAgICAgICAgICA/IGZvcm1hdHRlZE5ld1ZhbC5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgOiBjYXJldFBvcztcbiAgICAgICAgICAgIHBlbmRpbmdDYXJldFN5bmNSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGlmICh2YWwgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChpc1N0YW5kYWxvbmVNaW51cykge1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKCctJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWNpbWFscyA9IChfZiA9IChfZSA9IChfZCA9IHZhbC5tYXRjaCgvXFwuKFxcZCspJC8pKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2RbMV0pID09PSBudWxsIHx8IF9lID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZS5sZW5ndGgpICE9PSBudWxsICYmIF9mICE9PSB2b2lkIDAgPyBfZiA6IDA7XG4gICAgICAgICAgICAgICAgY29uc3QgYm4gPSBCaWdOdW1iZXIodmFsKTtcbiAgICAgICAgICAgICAgICBsZXQgbm9ybWFsaXplZCA9IGJuLnRvRml4ZWQoZGVjaW1hbHMpO1xuICAgICAgICAgICAgICAgIGlmIChuZWdhdGl2ZSAmJiB2YWwudHJpbSgpLnN0YXJ0c1dpdGgoJy0nKSAmJiBibi5pc1plcm8oKSkge1xuICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5zdGFydHNXaXRoKCctJykgPyBub3JtYWxpemVkIDogYC0ke25vcm1hbGl6ZWR9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUoYCR7bm9ybWFsaXplZH0ke2hhc0RlY2ltYWxQb2ludCA/ICcuJyA6ICcnfWAudHJpbSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UoZSk7XG4gICAgfSwgW29uQ2hhbmdlLCBfdmFsdWUsIHZhbHVlLCBmb3JtYXR0ZWRWYWx1ZSwgbWF4RnJhY3Rpb25EaWdpdHMsIG1pbiwgbWF4LCBuZWdhdGl2ZSwgZGlzYWJsZWQsIHJlYWRPbmx5XSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZSwgX2YsIF9nLCBfaCwgX2osIF9rO1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IChfYiA9IChfYSA9IGNvbnRhaW5lclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IE1JTl9JTlBVVF9XSURUSDtcbiAgICAgICAgY29uc3QgcHJlZml4V2lkdGggPSAoX2QgPSAoX2MgPSBwcmVmaXhSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiAwO1xuICAgICAgICBjb25zdCBzdWZmaXhXaWR0aCA9IChfZiA9IChfZSA9IHN1ZmZpeFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Uub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9mICE9PSB2b2lkIDAgPyBfZiA6IDA7XG4gICAgICAgIGNvbnN0IGN1cnJlbmN5V2lkdGggPSAoX2ggPSAoX2cgPSBjdXJyZW5jeVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2cub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6IDA7XG4gICAgICAgIGNvbnN0IGZha2VXaWR0aCA9IChfayA9IChfaiA9IGZha2VFbGVSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2ogPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9qLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfayAhPT0gdm9pZCAwID8gX2sgOiAwO1xuICAgICAgICBjb25zdCBnYXBXaWR0aCA9IHByZWZpeFdpZHRoICYmIHN1ZmZpeFdpZHRoICYmIGN1cnJlbmN5V2lkdGhcbiAgICAgICAgICAgID8gMjRcbiAgICAgICAgICAgIDogKHByZWZpeFdpZHRoICYmIHN1ZmZpeFdpZHRoKSB8fCAocHJlZml4V2lkdGggJiYgY3VycmVuY3lXaWR0aCkgfHwgKHN1ZmZpeFdpZHRoICYmIGN1cnJlbmN5V2lkdGgpXG4gICAgICAgICAgICAgICAgPyAxNlxuICAgICAgICAgICAgICAgIDogcHJlZml4V2lkdGggfHwgc3VmZml4V2lkdGggfHwgY3VycmVuY3lXaWR0aFxuICAgICAgICAgICAgICAgICAgICA/IDhcbiAgICAgICAgICAgICAgICAgICAgOiAwO1xuICAgICAgICBjb25zdCBtYXhXaWR0aCA9IGNvbnRhaW5lcldpZHRoIC0gcHJlZml4V2lkdGggLSBzdWZmaXhXaWR0aCAtIGN1cnJlbmN5V2lkdGggLSBnYXBXaWR0aDtcbiAgICAgICAgY29uc3QgaXNNYXggPSBmYWtlV2lkdGggPj0gbWF4V2lkdGg7XG4gICAgICAgIHNldFdpZHRoKE1hdGgubWluKG1heFdpZHRoLCBNYXRoLm1heChmYWtlV2lkdGgsIE1JTl9JTlBVVF9XSURUSCkpKTtcbiAgICAgICAgc2V0SXNNYXhXaWR0aChpc01heCk7XG4gICAgICAgIGlmIChpc0ZvY3VzICYmXG4gICAgICAgICAgICAoX3ZhbHVlICE9PSBwcmV2VmFsdWVSZWYuY3VycmVudCB8fCAhcHJldkZvY3VzUmVmLmN1cnJlbnQpICYmXG4gICAgICAgICAgICBwZW5kaW5nQ2FyZXRTeW5jUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIHNjcm9sbFRvRW5kKHRydWUpO1xuICAgICAgICAgICAgcGVuZGluZ0NhcmV0U3luY1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcHJldlZhbHVlUmVmLmN1cnJlbnQgPSBfdmFsdWU7XG4gICAgICAgIHByZXZGb2N1c1JlZi5jdXJyZW50ID0gaXNGb2N1cztcbiAgICB9LCBbX3ZhbHVlLCBwcmVmaXgsIHN1ZmZpeCwgY3VycmVuY3ksIGlzRm9jdXMsIHNjcm9sbFRvRW5kXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gY2xlYXIgbmVnYXRpdmUgc2lnbiBpZiBub3QgYWxsb3dlZFxuICAgICAgICBpZiAobmVnYXRpdmUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoX3ZhbHVlID09IG51bGwpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChfdmFsdWUgPT09ICctJykge1xuICAgICAgICAgICAgc2V0VmFsdWUobnVsbCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKF92YWx1ZS5zdGFydHNXaXRoKCctJykpXG4gICAgICAgICAgICBzZXRWYWx1ZShfdmFsdWUuc2xpY2UoMSkpO1xuICAgIH0sIFtuZWdhdGl2ZSwgdmFsdWUsIF92YWx1ZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBsZXQgdmFsID0gdmFsdWU7XG4gICAgICAgIGxldCBoYXNEZWNpbWFsUG9pbnQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZiAodmFsID09PSAnJykge1xuICAgICAgICAgICAgICAgIHZhbCA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWwgPSBub3JtYWxpemVOdW1iZXJJbnB1dCh2YWwpLnNwbGl0KCcsJykuam9pbignJyk7XG4gICAgICAgICAgICAgICAgaGFzRGVjaW1hbFBvaW50ID0gISF2YWwgJiYgdmFsLmVuZHNXaXRoKCcuJyk7XG4gICAgICAgICAgICAgICAgaWYgKGhhc0RlY2ltYWxQb2ludClcbiAgICAgICAgICAgICAgICAgICAgdmFsID0gdmFsLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgICAgICAgICBpZiAoIW5lZ2F0aXZlKVxuICAgICAgICAgICAgICAgICAgICB2YWwgPSB2YWwucmVwbGFjZSgvLS9nLCAnJyk7XG4gICAgICAgICAgICAgICAgaWYgKG5lZ2F0aXZlICYmIHZhbCA9PT0gJy0nKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKCctJyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlzTmFOKCt2YWwpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodmFsICE9PSBudWxsICYmIHR5cGVvZiB2YWwgIT09ICdudW1iZXInICYmIHR5cGVvZiB2YWwgIT09ICdiaWdpbnQnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoIW5lZ2F0aXZlKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICB2YWwgPSBNYXRoLmFicyh2YWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB6ZXJvID0gQmlnSW50KDApO1xuICAgICAgICAgICAgICAgIHZhbCA9IHZhbCA8IHplcm8gPyAtdmFsIDogdmFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpICYmICh0eXBlb2YgbWF4RnJhY3Rpb25EaWdpdHMgPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXhGcmFjdGlvbkRpZ2l0cyA9PT0gJ2JpZ2ludCcpKSB7XG4gICAgICAgICAgICBjb25zdCBbaW50LCBkZWNpbWFsXSA9ICgnJyArIHZhbCkuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgIGlmIChkZWNpbWFsICE9IG51bGwgJiYgZGVjaW1hbC5sZW5ndGggPiBOdW1iZXIobWF4RnJhY3Rpb25EaWdpdHMpKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gaW50ICsgJy4nICsgZGVjaW1hbC5zbGljZSgwLCBOdW1iZXIobWF4RnJhY3Rpb25EaWdpdHMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHZhbCA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgICAgIGNvbnN0IHJlcyA9IGNsYW1wVmFsdWVJblJhbmdlKCcnICsgdmFsLCBtaW4sIG1heCk7XG4gICAgICAgICAgICB2YWwgPSByZXMudmFsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWwgPT09ICcnIHx8IHZhbCA9PSBudWxsKSB7XG4gICAgICAgICAgICBzZXRWYWx1ZShudWxsKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHN0clZhbCA9ICcnICsgdmFsO1xuICAgICAgICAgICAgY29uc3QgZGVjaW1hbHMgPSAoX2MgPSAoX2IgPSAoX2EgPSBzdHJWYWwubWF0Y2goL1xcLihcXGQrKSQvKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hWzFdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubGVuZ3RoKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwO1xuICAgICAgICAgICAgY29uc3QgYm4gPSBCaWdOdW1iZXIoc3RyVmFsKTtcbiAgICAgICAgICAgIGxldCBub3JtYWxpemVkID0gYm4udG9GaXhlZChkZWNpbWFscyk7XG4gICAgICAgICAgICBpZiAobmVnYXRpdmUgJiYgc3RyVmFsLnRyaW0oKS5zdGFydHNXaXRoKCctJykgJiYgYm4uaXNaZXJvKCkpIHtcbiAgICAgICAgICAgICAgICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5zdGFydHNXaXRoKCctJykgPyBub3JtYWxpemVkIDogYC0ke25vcm1hbGl6ZWR9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFZhbHVlKGAke25vcm1hbGl6ZWR9JHtoYXNEZWNpbWFsUG9pbnQgPyAnLicgOiAnJ31gLnRyaW0oKSk7XG4gICAgICAgIH1cbiAgICB9LCBbdmFsdWUsIG1heEZyYWN0aW9uRGlnaXRzLCBtaW4sIG1heCwgbmVnYXRpdmVdKTtcbiAgICByZXR1cm4gX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3dyYXBwZXInLCBqb2luQ2xzKHdyYXBwZXJDbHMsIGludmFsaWQgJiYgY2xhc3NlcygnaW52YWxpZCcpLCBzdWNjZXNzICYmIGNsYXNzZXMoJ3N1Y2Nlc3MnKSwgZGlzYWJsZWQgJiYgY2xhc3NlcygnZGlzYWJsZWQnKSwgcmVhZE9ubHkgJiYgY2xhc3NlcygncmVhZG9ubHknKSwgX3ZhbHVlICYmIGNsYXNzZXMoJ2ZpbGxlZCcpKSksIGNoaWxkcmVuOiBbbGFiZWxcbiAgICAgICAgICAgICAgICA/IGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgPyBfanN4KFNrZWxldG9uLCB7IHdpZHRoOiAnNzJweCcsIGhlaWdodDogJzE4cHgnLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsLWxvYWRpbmcnKSB9KVxuICAgICAgICAgICAgICAgICAgICA6IF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbCcsIGpvaW5DbHMocmVxdWlyZWQgJiYgY2xhc3NlcygnbGFiZWwtcmVxdWlyZWQnKSwgbGFiZWxDbHMpKSwgY2hpbGRyZW46IGxhYmVsIH0pXG4gICAgICAgICAgICAgICAgOiBudWxsLCBfanN4cyhcImRpdlwiLCB7IHJlZjogY29udGFpbmVyUmVmLCBjbGFzc05hbWU6IGNsYXNzZXModm9pZCAwLCBqb2luQ2xzKGNsYXNzTmFtZSwgaXNGb2N1cyAmJiBjbGFzc2VzKCdmb2N1cycpKSksIG9uQ2xpY2s6IChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUudGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgKF9hID0gaW5wdXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc01heFdpZHRoKVxuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9FbmQoKTtcbiAgICAgICAgICAgICAgICB9LCBjaGlsZHJlbjogW3ByZWZpeCAmJiBfanN4KFwic3BhblwiLCB7IHJlZjogcHJlZml4UmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ3ByZWZpeCcpLCBjaGlsZHJlbjogcHJlZml4IH0pLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdlbGVtZW50JywgKCFpc0ZvY3VzICYmIGlzTWF4V2lkdGgpID8gY2xhc3NlcygnZWxlbWVudC1tYXgnKSA6ICcnKSwgY2hpbGRyZW46IF9qc3goXCJpbnB1dFwiLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IHJlZjogaW5wdXRSZWYsIHZhbHVlOiBmb3JtYXR0ZWRWYWx1ZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCByZWFkT25seTogcmVhZE9ubHksIGRpc2FibGVkOiBkaXNhYmxlZCwgc3R5bGU6IHsgJy0taW5wdXQtd2lkdGgnOiBgJHtfd2lkdGh9cHhgIH0sIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsIG9uRm9jdXM6IGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc0ZvY3VzKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzID09PSBudWxsIHx8IG9uRm9jdXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRm9jdXMoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgb25CbHVyOiBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNGb2N1cyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cihlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IH0pKSB9KSwgY3VycmVuY3kgJiYgX2pzeChcInNwYW5cIiwgeyByZWY6IGN1cnJlbmN5UmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2N1cnJlbmN5JyksIGNoaWxkcmVuOiBjdXJyZW5jeSB9KSwgbG9hZGluZyA/IF9qc3goU3Bpbm5lciwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3N1ZmZpeC1sb2FkaW5nJyksIHN0cm9rZVdpZHRoOiAnNCcgfSkgOiBzdWZmaXggPyBfanN4KFwic3BhblwiLCB7IHJlZjogc3VmZml4UmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ3N1ZmZpeCcpLCBjaGlsZHJlbjogc3VmZml4IH0pIDogbnVsbCwgX2pzeChcInNwYW5cIiwgeyByZWY6IGZha2VFbGVSZWYsIGNsYXNzTmFtZTogY2xhc3NlcygnZmFrZScpLCBvbkNsaWNrOiBlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCksIGNoaWxkcmVuOiBudW1lcmljRm9ybWF0dGVyKCcnICsgKF92YWx1ZSA9PSBudWxsID8gJycgOiBfdmFsdWUpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRTZXBhcmF0b3I6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dOZWdhdGl2ZTogbmVnYXRpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSB9KV0gfSksIChtZXNzYWdlIHx8IGZvb3Rub3RlKSAmJiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZXh0cmEnKSwgY2hpbGRyZW46IFttZXNzYWdlICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ21lc3NhZ2UnLCBtZXNzYWdlQ2xzKSwgY2hpbGRyZW46IG1lc3NhZ2UgfSksIGZvb3Rub3RlICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2Zvb3Rub3RlJywgZm9vdG5vdGVDbHMpLCBjaGlsZHJlbjogZm9vdG5vdGUgfSldIH0pXSB9KTtcbn07XG5leHBvcnQgZGVmYXVsdCBtZW1vKElucHV0QW1vdW50KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=