@1money/react-ui 1.14.1-rc.1 → 1.14.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.
@@ -131,7 +131,7 @@ export var InputAmount = function InputAmount(props) {
131
131
  var calcCaretPos = useCallback(function (val) {
132
132
  var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
133
133
  var currPos = arguments.length > 2 ? arguments[2] : undefined;
134
- var _a, _b, _c;
134
+ var _a, _b;
135
135
  if (inputRef.current) {
136
136
  var _valueRef$current = valueRef.current,
137
137
  _value2 = _valueRef$current._value,
@@ -142,13 +142,9 @@ export var InputAmount = function InputAmount(props) {
142
142
  allowNegative: _negative
143
143
  });
144
144
  var originOffset = val.length - ((_a = _value2 === null || _value2 === void 0 ? void 0 : _value2.length) !== null && _a !== void 0 ? _a : 0);
145
- var isAdd = originOffset > 0;
146
- var ignoreOldPos = isAdd ? val.length - ((_b = _value2 === null || _value2 === void 0 ? void 0 : _value2.length) !== null && _b !== void 0 ? _b : 0) > 1 : false;
147
- var position = (_c = currPos !== null && currPos !== void 0 ? currPos : inputRef.current.selectionEnd) !== null && _c !== void 0 ? _c : 0;
148
- if (!ignoreOldPos) {
149
- var oldPosVal = _formattedValue.slice(0, Math.max(position, 0));
150
- position = oldPosVal.split(',').join('').length;
151
- }
145
+ var position = (_b = currPos !== null && currPos !== void 0 ? currPos : inputRef.current.selectionEnd) !== null && _b !== void 0 ? _b : 0;
146
+ var oldPosVal = _formattedValue.slice(0, Math.max(position, 0));
147
+ position = oldPosVal.split(',').join('').length;
152
148
  var posVal = val.slice(0, position + originOffset);
153
149
  formattedNewVal.split('').reduce(function (acc, _char, ind) {
154
150
  if (_char === ',') return acc;else acc.push(_char);
@@ -281,10 +277,10 @@ export var InputAmount = function InputAmount(props) {
281
277
  if (typeof value === 'undefined') {
282
278
  setValue(val);
283
279
  } else {
284
- // @ts-expect-error
285
- (_a = onChangeRef.current) === null || _a === void 0 ? void 0 : _a.call(onChangeRef, {
280
+ var syntheticEvent = {
286
281
  target: inputRef.current
287
- }, val !== null && val !== void 0 ? val : '');
282
+ };
283
+ (_a = onChangeRef.current) === null || _a === void 0 ? void 0 : _a.call(onChangeRef, syntheticEvent, val !== null && val !== void 0 ? val : '');
288
284
  }
289
285
  return;
290
286
  }
@@ -400,4 +396,4 @@ export var InputAmount = function InputAmount(props) {
400
396
  });
401
397
  };
402
398
  export default /*#__PURE__*/memo(InputAmount);
403
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXRBbW91bnQvSW5wdXRBbW91bnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwidXNlTWVtbyIsInVzZVN0YXRlIiwidXNlQ2FsbGJhY2siLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJCaWdOdW1iZXIiLCJudW1lcmljRm9ybWF0dGVyIiwiU2tlbGV0b24iLCJTcGlubmVyIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwiTUlOX0lOUFVUX1dJRFRIIiwibm9ybWFsaXplTnVtYmVySW5wdXQiLCJ2YWwiLCJyZXBsYWNlIiwiY2FsY1ZhbHVlSW5SYW5nZSIsIm1pbiIsIm1heCIsImlzTmFOIiwiY2FsY1ZhbCIsImJuVmFsIiwibWluQm4iLCJsdCIsIm1heEJuIiwiZ3QiLCJJbnB1dEFtb3VudCIsInByb3BzIiwidmFsdWUiLCJfcHJvcHMkdHlwZSIsInR5cGUiLCJtYXhGcmFjdGlvbkRpZ2l0cyIsImNoaWxkcmVuIiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJmb290bm90ZSIsImZvb3Rub3RlQ2xzIiwiY2xhc3NOYW1lIiwid3JhcHBlckNscyIsImxhYmVsQ2xzIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsIm1lc3NhZ2VDbHMiLCJwcmVmaXhFbGVDbHMiLCJzdWZmaXhFbGVDbHMiLCJpbnZhbGlkIiwibmVnYXRpdmUiLCJyZXF1aXJlZCIsImxvYWRpbmciLCJzdWNjZXNzIiwiZGlzYWJsZWQiLCJyZWFkT25seSIsImxhYmVsIiwicHJlZml4Iiwic3VmZml4IiwiY3VycmVuY3kiLCJtZXNzYWdlIiwib25DaGFuZ2UiLCJvbkJsdXIiLCJvbkZvY3VzIiwicmVzdCIsImNsYXNzZXMiLCJjb25jYXQiLCJpbnB1dFJlZiIsImZha2VFbGVSZWYiLCJwcmVmaXhSZWYiLCJzdWZmaXhSZWYiLCJjdXJyZW5jeVJlZiIsImNvbnRhaW5lclJlZiIsImlucHV0Q2FyZXRQb3NpdGlvblJlZiIsImlnbm9yZVNlbGVjdFJlZiIsIm9uQ2hhbmdlUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiX3ZhbHVlIiwic2V0VmFsdWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIl93aWR0aCIsInNldFdpZHRoIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc01heFdpZHRoIiwic2V0SXNNYXhXaWR0aCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiaXNGb2N1cyIsInNldElzRm9jdXMiLCJmb3JtYXR0ZWRWYWx1ZSIsInRob3VzYW5kU2VwYXJhdG9yIiwiYWxsb3dOZWdhdGl2ZSIsInZhbHVlUmVmIiwic2Nyb2xsVG9FbmQiLCJzdGlja3kiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJfYSIsImlucHV0IiwiY3VycmVudCIsImxlbiIsInBvc2l0aW9uIiwic2Nyb2xsTGVmdCIsInNob3VsZFRvRW5kIiwic3RhcnQiLCJzZXRTZWxlY3Rpb25SYW5nZSIsInNjcm9sbFdpZHRoIiwiZm9jdXMiLCJjYWxjQ2FyZXRQb3MiLCJvZmZzZXQiLCJjdXJyUG9zIiwiX2IiLCJfYyIsIl92YWx1ZVJlZiRjdXJyZW50IiwiZm9ybWF0dGVkTmV3VmFsIiwib3JpZ2luT2Zmc2V0IiwiaXNBZGQiLCJpZ25vcmVPbGRQb3MiLCJzZWxlY3Rpb25FbmQiLCJvbGRQb3NWYWwiLCJzbGljZSIsIk1hdGgiLCJzcGxpdCIsImpvaW4iLCJwb3NWYWwiLCJyZWR1Y2UiLCJhY2MiLCJjaGFyIiwiaW5kIiwicHVzaCIsImhhbmRsZUNoYW5nZSIsIl9kIiwiX3ZhbHVlUmVmJGN1cnJlbnQyIiwidGFyZ2V0IiwiaGFzRGVjaW1hbFBvaW50IiwiZW5kc1dpdGgiLCJpbmNsdWRlcyIsImlzU3RhbmRhbG9uZU1pbnVzIiwiX3ZhbCRzcGxpdCIsIl92YWwkc3BsaXQyIiwiaW50IiwiZGVjaW1hbCIsIm1heERlY2ltYWxzIiwiTnVtYmVyIiwidHJ1bmNhdGVkRGVjaW1hbHMiLCJfZm9ybWF0dGVkVmFsdWUkc3BsaXQiLCJfZm9ybWF0dGVkVmFsdWUkc3BsaXQyIiwib2xkSW50IiwiZGVjaW1hbHMiLCJtYXRjaCIsImJuIiwibm9ybWFsaXplZCIsInRvRml4ZWQiLCJ0cmltIiwic3RhcnRzV2l0aCIsImlzWmVybyIsInByZXZlbnREZWZhdWx0Iiwic3RvcFByb3BhZ2F0aW9uIiwiaGFuZGxlU2VsZWN0IiwiX2UiLCJfZiIsIl9nIiwiX2giLCJfaiIsIl9rIiwiY29udGFpbmVyV2lkdGgiLCJvZmZzZXRXaWR0aCIsInByZWZpeFdpZHRoIiwic3VmZml4V2lkdGgiLCJjdXJyZW5jeVdpZHRoIiwiZmFrZVdpZHRoIiwiZ2FwV2lkdGgiLCJtYXhXaWR0aCIsImlzTWF4IiwiYWJzIiwiemVybyIsIkJpZ0ludCIsIl9zcGxpdCIsIl9zcGxpdDIiLCJzdHJWYWwiLCJ3aWR0aCIsImhlaWdodCIsInJlZiIsIm9uQ2xpY2siLCJIVE1MSW5wdXRFbGVtZW50IiwiYXNzaWduIiwic3R5bGUiLCJvblNlbGVjdCIsInN0cm9rZVdpZHRoIl0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FRCxDQUFDLENBQUNDLENBQUMsQ0FBQyxHQUFHSCxDQUFDLENBQUNHLENBQUMsQ0FBQztFQUNmLElBQUlILENBQUMsSUFBSSxJQUFJLElBQUksT0FBT0ksTUFBTSxDQUFDSyxxQkFBcUIsS0FBSyxVQUFVLEVBQy9ELEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRVAsQ0FBQyxHQUFHQyxNQUFNLENBQUNLLHFCQUFxQixDQUFDVCxDQUFDLENBQUMsRUFBRVUsQ0FBQyxHQUFHUCxDQUFDLENBQUNRLE1BQU0sRUFBRUQsQ0FBQyxFQUFFLEVBQUU7SUFDcEUsSUFBSVQsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUlOLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDTyxvQkFBb0IsQ0FBQ0wsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLENBQUMsRUFDMUVSLENBQUMsQ0FBQ0MsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHVixDQUFDLENBQUNHLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLENBQUM7RUFDekI7RUFDSixPQUFPUixDQUFDO0FBQ1osQ0FBQztBQUNELFNBQVNXLEdBQUcsSUFBSUMsSUFBSSxFQUFFQyxJQUFJLElBQUlDLEtBQUssUUFBUSxtQkFBbUI7QUNYOUQsU0FBU0MsSUFBSSxFQUFFQyxPQUFPLEVBQUVDLFFBQVEsRUFBRUMsV0FBVyxFQUFFQyxNQUFNLEVBQUVDLFNBQVMsRUFBRUMsZUFBZSxRQUFRLE9BQU87QUFDaEcsT0FBT0MsU0FBUyxNQUFNLGNBQWM7QUFDcEMsU0FBU0MsZ0JBQWdCLFFBQVEscUJBQXFCO0FBQ3RELFNBQVNDLFFBQVEsUUFBUSxxQkFBcUI7QUFDOUMsT0FBT0MsT0FBTyxNQUFNLFlBQVk7QUFDaEMsU0FBU0MsT0FBTyxJQUFJQyxVQUFVLEVBQUVDLE9BQU8sUUFBUSx3QkFBd0I7QUFLdkUsSUFBTUMsZUFBZSxHQUFHLEVBQUU7QUFFMUIsSUFBTUMsb0JBQW9CLEdBQUcsU0FBdkJBLG9CQUFvQkEsQ0FBSUMsR0FBVztFQUFBLE9BQ3ZDQSxHQUFHLENBQ0FDLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsQ0FDckNBLE9BQU8sQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDO0FBQUE7QUFFOUIsSUFBTUMsZ0JBQWdCLEdBQUcsU0FBbkJBLGdCQUFnQkEsQ0FDcEJGLEdBQVcsRUFDWEcsR0FBK0IsRUFDL0JDLEdBQStCLEVBQzdCO0VBQ0YsSUFBSUosR0FBRyxLQUFLLEVBQUUsSUFBSUEsR0FBRyxLQUFLLEdBQUcsSUFBSUssS0FBSyxDQUFDLENBQUNMLEdBQUcsQ0FBQyxFQUFFLE9BQU9BLEdBQUc7RUFFeEQsSUFBSU0sT0FBTyxHQUFHTixHQUFHO0VBQ2pCLElBQU1PLEtBQUssR0FBR2hCLFNBQVMsQ0FBQ1MsR0FBRyxDQUFDO0VBRTVCLElBQUksT0FBT0csR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPQSxHQUFHLEtBQUssUUFBUSxFQUFFO0lBQ3RELElBQU1LLEtBQUssR0FBR2pCLFNBQVMsQ0FBQ1ksR0FBRyxDQUFDO0lBQzVCLElBQUlJLEtBQUssQ0FBQ0UsRUFBRSxDQUFDRCxLQUFLLENBQUMsRUFBRTtNQUNuQkYsT0FBTyxHQUFHLEVBQUUsR0FBR0gsR0FBRztJQUNwQjtFQUNGO0VBRUEsSUFBSSxPQUFPQyxHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU9BLEdBQUcsS0FBSyxRQUFRLEVBQUU7SUFDdEQsSUFBTU0sS0FBSyxHQUFHbkIsU0FBUyxDQUFDYSxHQUFHLENBQUM7SUFDNUIsSUFBSUcsS0FBSyxDQUFDSSxFQUFFLENBQUNELEtBQUssQ0FBQyxFQUFFO01BQ25CSixPQUFPLEdBQUcsRUFBRSxHQUFHRixHQUFHO0lBQ3BCO0VBQ0Y7RUFFQSxPQUFPRSxPQUFPO0FBQ2hCLENBQUM7QUFFRCxPQUFPLElBQU1NLFdBQVcsR0FBNEMsU0FBdkRBLFdBQVdBLENBQTRDQyxLQUFLLEVBQUc7RUFDMUUsSUFDRUMsS0FBSyxHQWFIRCxLQUFLLENBYlBDLEtBQUs7SUFBQUMsV0FBQSxHQWFIRixLQUFLLENBWlBHLElBQUk7SUFBSkEsSUFBSSxHQUFBRCxXQUFBLGNBQUcsU0FBUyxHQUFBQSxXQUFBO0lBQ2hCRSxpQkFBaUIsR0FXZkosS0FBSyxDQVhQSSxpQkFBaUI7SUFDakJDLFFBQVEsR0FVTkwsS0FBSyxDQVZQSyxRQUFRO0lBQUFDLGtCQUFBLEdBVU5OLEtBQUssQ0FUUE8sV0FBVztJQUFYQSxXQUFXLEdBQUFELGtCQUFBLGNBQUcsR0FBRyxHQUFBQSxrQkFBQTtJQUNqQmhCLEdBQUcsR0FRRFUsS0FBSyxDQVJQVixHQUFHO0lBQUVDLEdBQUcsR0FRTlMsS0FBSyxDQVJGVCxHQUFHO0lBQUFpQixXQUFBLEdBUU5SLEtBQUssQ0FOUFMsSUFBSTtJQUFKQSxJQUFJLEdBQUFELFdBQUEsY0FBRyxPQUFPLEdBQUFBLFdBQUE7SUFBRUUsUUFBUSxHQU10QlYsS0FBSyxDQU5TVSxRQUFRO0lBQUVDLFdBQVcsR0FNbkNYLEtBQUssQ0FObUJXLFdBQVc7SUFDckNDLFNBQVMsR0FLUFosS0FBSyxDQUxQWSxTQUFTO0lBQUVDLFVBQVUsR0FLbkJiLEtBQUssQ0FMSWEsVUFBVTtJQUFFQyxRQUFRLEdBSzdCZCxLQUFLLENBTGdCYyxRQUFRO0lBQUFDLGdCQUFBLEdBSzdCZixLQUFLLENBTDBCZ0IsU0FBUztJQUFUQSxTQUFTLEdBQUFELGdCQUFBLGNBQUcsY0FBYyxHQUFBQSxnQkFBQTtJQUFFRSxVQUFVLEdBS3JFakIsS0FBSyxDQUxzRGlCLFVBQVU7SUFBRUMsWUFBWSxHQUtuRmxCLEtBQUssQ0FMa0VrQixZQUFZO0lBQUVDLFlBQVksR0FLakduQixLQUFLLENBTGdGbUIsWUFBWTtJQUNuR0MsT0FBTyxHQUlMcEIsS0FBSyxDQUpQb0IsT0FBTztJQUFFQyxRQUFRLEdBSWZyQixLQUFLLENBSkVxQixRQUFRO0lBQUVDLFFBQVEsR0FJekJ0QixLQUFLLENBSllzQixRQUFRO0lBQUVDLE9BQU8sR0FJbEN2QixLQUFLLENBSnNCdUIsT0FBTztJQUFFQyxPQUFPLEdBSTNDeEIsS0FBSyxDQUorQndCLE9BQU87SUFBRUMsUUFBUSxHQUlyRHpCLEtBQUssQ0FKd0N5QixRQUFRO0lBQUVDLFFBQVEsR0FJL0QxQixLQUFLLENBSmtEMEIsUUFBUTtJQUNqRUMsS0FBSyxHQUdIM0IsS0FBSyxDQUhQMkIsS0FBSztJQUFFQyxNQUFNLEdBR1g1QixLQUFLLENBSEE0QixNQUFNO0lBQUVDLE1BQU0sR0FHbkI3QixLQUFLLENBSFE2QixNQUFNO0lBQUVDLFFBQVEsR0FHN0I5QixLQUFLLENBSGdCOEIsUUFBUTtJQUFFQyxPQUFPLEdBR3RDL0IsS0FBSyxDQUgwQitCLE9BQU87SUFDeENDLFFBQVEsR0FFTmhDLEtBQUssQ0FGUGdDLFFBQVE7SUFBRUMsT0FBTSxHQUVkakMsS0FBSyxDQUZHaUMsTUFBTTtJQUFFQyxRQUFPLEdBRXZCbEMsS0FBSyxDQUZXa0MsT0FBTztJQUN0QkMsSUFBSSxHQUFBbEYsTUFBQSxDQUNMK0MsS0FBSyxFQWRILENBQUEsT0FBQSxFQUFBLE1BQUEsRUFBQSxtQkFBQSxFQUFBLFVBQUEsRUFBQSxhQUFBLEVBQUEsS0FBQSxFQUFBLEtBQUEsRUFBQSxNQUFBLEVBQUEsVUFBQSxFQUFBLGFBQUEsRUFBQSxXQUFBLEVBQUEsWUFBQSxFQUFBLFVBQUEsRUFBQSxXQUFBLEVBQUEsWUFBQSxFQUFBLGNBQUEsRUFBQSxjQUFBLEVBQUEsU0FBQSxFQUFBLFVBQUEsRUFBQSxVQUFBLEVBQUEsU0FBQSxFQUFBLFNBQUEsRUFBQSxVQUFBLEVBQUEsVUFBQSxFQUFBLE9BQUEsRUFBQSxRQUFBLEVBQUEsUUFBQSxFQUFBLFVBQUEsRUFBQSxTQUFBLEVBQUEsVUFBQSxFQUFBLFFBQUEsRUFBQSxTQUFBLENBY0wsQ0FBUTtFQUNULElBQU1vQyxPQUFPLEdBQUdyRCxVQUFVLElBQUFzRCxNQUFBLENBQUlyQixTQUFTLE9BQUFxQixNQUFBLENBQUlsQyxJQUFJLENBQUUsQ0FBQztFQUVsRCxJQUFNbUMsUUFBUSxHQUFHL0QsTUFBTSxDQUFtQixJQUFJLENBQUM7RUFDL0MsSUFBTWdFLFVBQVUsR0FBR2hFLE1BQU0sQ0FBa0IsSUFBSSxDQUFDO0VBQ2hELElBQU1pRSxTQUFTLEdBQUdqRSxNQUFNLENBQWtCLElBQUksQ0FBQztFQUMvQyxJQUFNa0UsU0FBUyxHQUFHbEUsTUFBTSxDQUFrQixJQUFJLENBQUM7RUFDL0MsSUFBTW1FLFdBQVcsR0FBR25FLE1BQU0sQ0FBa0IsSUFBSSxDQUFDO0VBQ2pELElBQU1vRSxZQUFZLEdBQUdwRSxNQUFNLENBQWlCLElBQUksQ0FBQztFQUNqRCxJQUFNcUUscUJBQXFCLEdBQUdyRSxNQUFNLENBQVMsQ0FBQyxDQUFDO0VBQy9DLElBQU1zRSxlQUFlLEdBQUd0RSxNQUFNLENBQVUsS0FBSyxDQUFDO0VBQzlDLElBQU11RSxXQUFXLEdBQUd2RSxNQUFNLENBQUN5RCxRQUFRLENBQUM7RUFFcEMsSUFBQWUsU0FBQSxHQUEyQjFFLFFBQVEsQ0FBZ0IsSUFBSSxDQUFDO0lBQUEyRSxVQUFBLEdBQUFDLGNBQUEsQ0FBQUYsU0FBQTtJQUFqREcsTUFBTSxHQUFBRixVQUFBO0lBQUVHLFFBQVEsR0FBQUgsVUFBQTtFQUN2QixJQUFBSSxVQUFBLEdBQTJCL0UsUUFBUSxDQUFTWSxlQUFlLENBQUM7SUFBQW9FLFVBQUEsR0FBQUosY0FBQSxDQUFBRyxVQUFBO0lBQXJERSxNQUFNLEdBQUFELFVBQUE7SUFBRUUsUUFBUSxHQUFBRixVQUFBO0VBQ3ZCLElBQUFHLFVBQUEsR0FBb0NuRixRQUFRLENBQVUsS0FBSyxDQUFDO0lBQUFvRixVQUFBLEdBQUFSLGNBQUEsQ0FBQU8sVUFBQTtJQUFyREUsVUFBVSxHQUFBRCxVQUFBO0lBQUVFLGFBQWEsR0FBQUYsVUFBQTtFQUNoQyxJQUFBRyxVQUFBLEdBQThCdkYsUUFBUSxDQUFVLEtBQUssQ0FBQztJQUFBd0YsVUFBQSxHQUFBWixjQUFBLENBQUFXLFVBQUE7SUFBL0NFLE9BQU8sR0FBQUQsVUFBQTtJQUFFRSxVQUFVLEdBQUFGLFVBQUE7RUFFMUIsSUFBTUcsY0FBYyxHQUFHNUYsT0FBTyxDQUFDLFlBQUs7SUFDbEMsT0FBT08sZ0JBQWdCLENBQUMsRUFBRSxJQUFJdUUsTUFBTSxJQUFJLElBQUksR0FBRyxFQUFFLEdBQUdBLE1BQU0sQ0FBQyxFQUFFO01BQzNEZSxpQkFBaUIsRUFBRSxJQUFJO01BQ3ZCQyxhQUFhLEVBQUU3QztJRGpCYixDQ2tCSCxDQUFDO0VBQ0osQ0FBQyxFQUFFLENBQUM2QixNQUFNLEVBQUU3QixRQUFRLENBQUMsQ0FBQztFQUV0QixJQUFNOEMsUUFBUSxHQUFHNUYsTUFBTSxDQUFDO0lBQ3RCMEIsS0FBSyxFQUFMQSxLQUFLO0lBQ0xpRCxNQUFNLEVBQU5BLE1BQU07SUFDTmMsY0FBYyxFQUFkQSxjQUFjO0lBQ2QxRSxHQUFHLEVBQUhBLEdBQUc7SUFDSEMsR0FBRyxFQUFIQSxHQUFHO0lBQ0g4QixRQUFRLEVBQVJBLFFBQVE7SUFDUmpCLGlCQUFpQixFQUFqQkE7RURsQkEsQ0NtQkQsQ0FBQztFQUVGLElBQU1nRSxXQUFXLEdBQUc5RixXQUFXLENBQUMsWUFBNEI7SUFBQSxJQUEzQitGLE1BQUEsR0FBQUMsU0FBQSxDQUFBekcsTUFBQSxRQUFBeUcsU0FBQSxRQUFBQyxTQUFBLEdBQUFELFNBQUEsTUFBa0IsS0FBSztJRG5CbEQsSUFBSUUsRUFBRTtJQ29CVixJQUFNQyxLQUFLLEdBQUduQyxRQUFRLENBQUNvQyxPQUFPO0lBQzlCLElBQUksQ0FBQ0QsS0FBSyxFQUFFO0lBQ1osSUFBTUUsR0FBRyxHQUFHLENBQUFILEVBQUEsR0FBQUMsS0FBSyxDQUFDeEUsS0FBSyxNQUFBLElBQUEsSUFBQXVFLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFM0csTUFBTTtJQUMvQixJQUFNK0csUUFBUSxHQUFHSCxLQUFLLENBQUNJLFVBQVU7SUFDakMsSUFBTUMsV0FBVyxHQUFHLENBQUNULE1BQU07SUFDM0IsSUFBTVUsS0FBSyxHQUFHRCxXQUFXLEdBQUdILEdBQUcsR0FBRy9CLHFCQUFxQixDQUFDOEIsT0FBTztJQUMvREQsS0FBSyxDQUFDTyxpQkFBaUIsQ0FBQ0QsS0FBSyxFQUFFQSxLQUFLLENBQUM7SUFDckNOLEtBQUssQ0FBQ0ksVUFBVSxHQUFHQyxXQUFXLEdBQUdMLEtBQUssQ0FBQ1EsV0FBVyxHQUFHTCxRQUFRO0lBQzdESCxLQUFLLENBQUNTLEtBQUssQ0FBQSxDQUFFO0VBQ2YsQ0FBQyxFQUFFLEVBQUUsQ0FBQztFQUVOLElBQU1DLFlBQVksR0FBRzdHLFdBQVcsQ0FBQyxVQUMvQmEsR0FBVyxFQUdUO0lBQUEsSUFGRmlHLE1BQU0sR0FBQWQsU0FBQSxDQUFBekcsTUFBQSxRQUFBeUcsU0FBQSxRQUFBQyxTQUFBLEdBQUFELFNBQUEsTUFBRyxDQUFDO0lBQUEsSUFDVmUsT0FBZ0IsR0FBQWYsU0FBQSxDQUFBekcsTUFBQSxPQUFBeUcsU0FBQSxNQUFBQyxTQUFBO0lEckJaLElBQUlDLEVBQUUsRUFBRWMsRUFBRSxFQUFFQyxFQUFFO0lDdUJsQixJQUFJakQsUUFBUSxDQUFDb0MsT0FBTyxFQUFFO01BQ3BCLElBQUFjLGlCQUFBLEdBQTZDckIsUUFBUSxDQUFDTyxPQUFPO1FBQXJEeEIsT0FBTSxHQUFBc0MsaUJBQUEsQ0FBTnRDLE1BQU07UUFBRTdCLFNBQVEsR0FBQW1FLGlCQUFBLENBQVJuRSxRQUFRO1FBQUUyQyxlQUFjLEdBQUF3QixpQkFBQSxDQUFkeEIsY0FBYztNQUN4QyxJQUFNeUIsZUFBZSxHQUFHOUcsZ0JBQWdCLENBQUNRLEdBQUcsRUFBRTtRQUM1QzhFLGlCQUFpQixFQUFFLElBQUk7UUFDdkJDLGFBQWEsRUFBRTdDO01EckJYLENDc0JMLENBQUM7TUFFRixJQUFNcUUsWUFBWSxHQUFHdkcsR0FBRyxDQUFDdEIsTUFBTSxJQUFJLENBQUEyRyxFQUFBLEdBQUF0QixPQUFNLEtBQUEsSUFBQSxJQUFOQSxPQUFNLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQU5BLE9BQU0sQ0FBRXJGLE1BQU0sTUFBQSxJQUFBLElBQUEyRyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSSxDQUFDLENBQUM7TUFDdkQsSUFBTW1CLEtBQUssR0FBR0QsWUFBWSxHQUFHLENBQUM7TUFDOUIsSUFBTUUsWUFBWSxHQUFHRCxLQUFLLEdBQUd4RyxHQUFHLENBQUN0QixNQUFNLElBQUksQ0FBQXlILEVBQUEsR0FBQXBDLE9BQU0sS0FBQSxJQUFBLElBQU5BLE9BQU0sS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBTkEsT0FBTSxDQUFFckYsTUFBTSxNQUFBLElBQUEsSUFBQXlILEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLO01BQzNFLElBQUlWLFFBQVEsR0FBRyxDQUFBVyxFQUFBLEdBQUFGLE9BQU8sS0FBQSxJQUFBLElBQVBBLE9BQU8sS0FBQSxLQUFBLENBQUEsR0FBUEEsT0FBTyxHQUFJL0MsUUFBUSxDQUFDb0MsT0FBTyxDQUFDbUIsWUFBWSxNQUFBLElBQUEsSUFBQU4sRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUksQ0FBQztNQUM1RCxJQUFJLENBQUNLLFlBQVksRUFBRTtRQUNqQixJQUFNRSxTQUFTLEdBQUc5QixlQUFjLENBQUMrQixLQUFLLENBQUMsQ0FBQyxFQUFFQyxJQUFJLENBQUN6RyxHQUFHLENBQUNxRixRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEVBLFFBQVEsR0FBR2tCLFNBQVMsQ0FBQ0csS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUNySSxNQUFNO01BQ2pEO01BQ0EsSUFBTXNJLE1BQU0sR0FBR2hILEdBQUcsQ0FBQzRHLEtBQUssQ0FBQyxDQUFDLEVBQUduQixRQUFRLEdBQUdjLFlBQWEsQ0FBQztNQUN0REQsZUFBZSxDQUFDUSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUNHLE1BQU0sQ0FBVyxVQUFDQyxHQUFHLEVBQUVDLEtBQUksRUFBRUMsR0FBRyxFQUFJO1FBQzVELElBQUlELEtBQUksS0FBSyxHQUFHLEVBQUUsT0FBT0QsR0FBRyxDQUFDLEtBQ3hCQSxHQUFHLENBQUNHLElBQUksQ0FBQ0YsS0FBSSxDQUFDO1FBQ25CLElBQUlELEdBQUcsQ0FBQ0gsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLQyxNQUFNLEVBQUU7VUFDM0J2QixRQUFRLEdBQUcyQixHQUFHLEdBQUcsQ0FBQztVQUNsQixPQUFPRixHQUFHO1FBQ1o7UUFDQSxPQUFPQSxHQUFHO01BQ1osQ0FBQyxFQUFFLEVBQUUsQ0FBQztNQUNOekQscUJBQXFCLENBQUM4QixPQUFPLEdBQUdFLFFBQVEsR0FBR1EsTUFBTTtJQUNuRDtFQUNGLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTixJQUFNcUIsWUFBWSxHQUFHbkksV0FBVyxDQUFDLFVBQUNuQixDQUFnQyxFQUFJO0lEckJoRSxJQUFJcUgsRUFBRSxFQUFFYyxFQUFFLEVBQUVDLEVBQUUsRUFBRW1CLEVBQUU7SUNzQnRCLElBQUlqRixRQUFRLElBQUlDLFFBQVEsRUFBRTtJQUUxQixJQUFBaUYsa0JBQUEsR0FBaUZ4QyxRQUFRLENBQUNPLE9BQU87TUFBekZ6RSxLQUFLLEdBQUEwRyxrQkFBQSxDQUFMMUcsS0FBSztNQUFFaUQsTUFBTSxHQUFBeUQsa0JBQUEsQ0FBTnpELE1BQU07TUFBRWMsY0FBYyxHQUFBMkMsa0JBQUEsQ0FBZDNDLGNBQWM7TUFBRTFFLEdBQUcsR0FBQXFILGtCQUFBLENBQUhySCxHQUFHO01BQUVDLEdBQUcsR0FBQW9ILGtCQUFBLENBQUhwSCxHQUFHO01BQUU4QixRQUFRLEdBQUFzRixrQkFBQSxDQUFSdEYsUUFBUTtNQUFFakIsaUJBQWlCLEdBQUF1RyxrQkFBQSxDQUFqQnZHLGlCQUFpQjtJQUM1RSxJQUFJakIsR0FBRyxHQUFHaEMsQ0FBQyxDQUFDeUosTUFBTSxDQUFDM0csS0FBSztJQUN4QixJQUFJZCxHQUFHLElBQUksSUFBSSxFQUFFQSxHQUFHLEdBQUdELG9CQUFvQixDQUFDQyxHQUFHLENBQUMsQ0FBQzhHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNwRSxJQUFNVyxlQUFlLEdBQUcsQ0FBQyxDQUFDMUgsR0FBRyxJQUFJQSxHQUFHLENBQUMySCxRQUFRLENBQUMsR0FBRyxDQUFDO0lBQ2xELElBQUlELGVBQWUsRUFBRTFILEdBQUcsR0FBR0EsR0FBRyxDQUFDNEcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUMzQyxJQUFJLENBQUMxRSxRQUFRLEtBQUlsQyxHQUFHLEtBQUEsSUFBQSxJQUFIQSxHQUFHLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUhBLEdBQUcsQ0FBRTRILFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQSxFQUFFO0lBQ3JDLElBQU1DLGlCQUFpQixHQUFHM0YsUUFBUSxJQUFJbEMsR0FBRyxLQUFLLEdBQUc7SUFDakQsSUFBSSxDQUFDNkgsaUJBQWlCLElBQUl4SCxLQUFLLENBQUMsQ0FBQ0wsR0FBRyxDQUFDLEVBQUU7SUFDdkMsSUFBSUEsR0FBRyxLQUFLK0QsTUFBTSxJQUFJLENBQUMyRCxlQUFlLEVBQUU7SUFFeEMsSUFBSSxPQUFPekcsaUJBQWlCLEtBQUssUUFBUSxJQUFJLE9BQU9BLGlCQUFpQixLQUFLLFFBQVEsRUFBRTtNQUNsRixJQUFBNkcsVUFBQSxHQUF1QjlILEdBQUcsQ0FBQzhHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFBQWlCLFdBQUEsR0FBQWpFLGNBQUEsQ0FBQWdFLFVBQUE7UUFBOUJFLElBQUcsR0FBQUQsV0FBQTtRQUFFRSxPQUFPLEdBQUFGLFdBQUE7TUFDbkIsSUFBTUcsV0FBVyxHQUFHQyxNQUFNLENBQUNsSCxpQkFBaUIsQ0FBQztNQUM3QyxJQUFJZ0gsT0FBTyxJQUFJLElBQUksSUFBSUEsT0FBTyxDQUFDdkosTUFBTSxHQUFHd0osV0FBVyxFQUFFO1FBQ25ELElBQU1FLGlCQUFpQixHQUFHSCxPQUFPLENBQUNyQixLQUFLLENBQUMsQ0FBQyxFQUFFc0IsV0FBVyxDQUFDO1FBQ3ZELElBQUFHLHFCQUFBLEdBQWtCeEQsY0FBYyxDQUFDaUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztVQUFBd0Isc0JBQUEsR0FBQXhFLGNBQUEsQ0FBQXVFLHFCQUFBO1VBQXBDRSxNQUFNLEdBQUFELHNCQUFBO1FBQ2IsSUFBSUMsTUFBTSxDQUFDekIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUlpQixJQUFHLEVBQUU7UUFDdkNoSSxHQUFHLE1BQUFrRCxNQUFBLENBQU04RSxJQUFHLE9BQUE5RSxNQUFBLENBQUlrRixpQkFBaUIsQ0FBRTtNQUNyQztJQUNGO0lBRUEsSUFBSyxPQUFPakksR0FBRyxLQUFLLFFBQVEsSUFBSSxPQUFPQSxHQUFHLEtBQUssUUFBUSxJQUFNLE9BQU9DLEdBQUcsS0FBSyxRQUFRLElBQUksT0FBT0EsR0FBRyxLQUFLLFFBQVMsRUFBRTtNQUNoSEosR0FBRyxHQUFHRSxnQkFBZ0IsQ0FBQ0YsR0FBRyxFQUFFRyxHQUFHLEVBQUVDLEdBQUcsQ0FBQztJQUN2QztJQUVBLElBQUlKLEdBQUcsS0FBSyxFQUFFLEVBQUU7TUFDZCxJQUFJNkgsaUJBQWlCLEVBQUU7UUFDckI3SCxHQUFHLEdBQUcsR0FBRztNQUNYLENBQUMsTUFBTTtRQUNMLElBQU13SSxRQUFRLEdBQUcsQ0FBQXBDLEVBQUEsR0FBQSxDQUFBRCxFQUFBLEdBQUEsQ0FBQWQsRUFBQSxHQUFBckYsR0FBRyxDQUFDeUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFBLElBQUEsSUFBQXBELEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFHLENBQUMsQ0FBQyxNQUFBLElBQUEsSUFBQWMsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUV6SCxNQUFNLE1BQUEsSUFBQSxJQUFBMEgsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUksQ0FBQztRQUN4RCxJQUFNc0MsRUFBRSxHQUFHbkosU0FBUyxDQUFDUyxHQUFHLENBQUM7UUFDekIsSUFBSTJJLFVBQVUsR0FBR0QsRUFBRSxDQUFDRSxPQUFPLENBQUNKLFFBQVEsQ0FBQztRQUNyQyxJQUFJdEcsUUFBUSxJQUFJbEMsR0FBRyxDQUFDNkksSUFBSSxDQUFBLENBQUUsQ0FBQ0MsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJSixFQUFFLENBQUNLLE1BQU0sQ0FBQSxDQUFFLEVBQUU7VUFDekRKLFVBQVUsR0FBR0EsVUFBVSxDQUFDRyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUdILFVBQVUsT0FBQXpGLE1BQUEsQ0FBT3lGLFVBQVUsQ0FBRTtRQUN6RTtRQUNBM0ksR0FBRyxHQUFHLEdBQUFrRCxNQUFBLENBQUd5RixVQUFVLEVBQUF6RixNQUFBLENBQUd3RSxlQUFlLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBR21CLElBQUksQ0FBQSxDQUFFO01BQzNEO0lBQ0Y7SUFFQSxJQUFJLE9BQU8vSCxLQUFLLEtBQUssV0FBVyxFQUFFO01BQ2hDa0QsUUFBUSxDQUFDaEUsR0FBRyxLQUFLLEVBQUUsR0FBRyxJQUFJLEdBQUdBLEdBQUcsQ0FBQztNQUNqQ2dHLFlBQVksQ0FBQ2hHLEdBQUcsRUFBRTBILGVBQWUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFYixJQUFJLENBQUN6RyxHQUFHLENBQUNxRCxxQkFBcUIsQ0FBQzhCLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQztNQUN0RjdCLGVBQWUsQ0FBQzZCLE9BQU8sR0FBRyxJQUFJO0lBQ2hDLENBQUMsTUFBTTtNQUNMdkgsQ0FBQyxDQUFDZ0wsY0FBYyxDQUFBLENBQUU7TUFDbEJoTCxDQUFDLENBQUNpTCxlQUFlLENBQUEsQ0FBRTtJQUNyQjtJQUNBLENBQUExQixFQUFBLEdBQUE1RCxXQUFXLENBQUM0QixPQUFPLE1BQUEsSUFBQSxJQUFBZ0MsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUFqSixJQUFBLENBQUFxRixXQUFBLEVBQUczRixDQUFDLEVBQUVnQyxHQUFHLENBQUM7RUFDL0IsQ0FBQyxFQUFFLENBQUNzQyxRQUFRLEVBQUVDLFFBQVEsQ0FBQyxDQUFDO0VBRXhCLElBQU0yRyxZQUFZLEdBQUcvSixXQUFXLENBQUMsWUFBSztJRGpCaEMsSUFBSWtHLEVBQUU7SUNrQlYsSUFBSTNCLGVBQWUsQ0FBQzZCLE9BQU8sRUFBRTtNQUMzQjdCLGVBQWUsQ0FBQzZCLE9BQU8sR0FBRyxLQUFLO01BQy9CO0lBQ0Y7SUFDQSxJQUFNVyxPQUFPLEdBQUcsQ0FBQWIsRUFBQSxHQUFBbEMsUUFBUSxDQUFDb0MsT0FBTyxNQUFBLElBQUEsSUFBQUYsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVxQixZQUFZO0lBQzlDLElBQUksT0FBT1IsT0FBTyxLQUFLLFFBQVEsRUFBRXpDLHFCQUFxQixDQUFDOEIsT0FBTyxHQUFHVyxPQUFPO0VBQzFFLENBQUMsRUFBRSxFQUFFLENBQUM7RUFFTjVHLGVBQWUsQ0FBQyxZQUFLO0lEaEJmLElBQUkrRixFQUFFLEVBQUVjLEVBQUUsRUFBRUMsRUFBRSxFQUFFbUIsRUFBRSxFQUFFNEIsRUFBRSxFQUFFQyxFQUFFLEVBQUVDLEVBQUUsRUFBRUMsRUFBRSxFQUFFQyxFQUFFLEVBQUVDLEVBQUU7SUNpQjlDLElBQU1DLGNBQWMsR0FBRyxDQUFBdEQsRUFBQSxHQUFBLENBQUFkLEVBQUEsR0FBQTdCLFlBQVksQ0FBQytCLE9BQU8sTUFBQSxJQUFBLElBQUFGLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFcUUsV0FBVyxNQUFBLElBQUEsSUFBQXZELEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJckcsZUFBZTtJQUMzRSxJQUFNNkosV0FBVyxHQUFHLENBQUFwQyxFQUFBLEdBQUEsQ0FBQW5CLEVBQUEsR0FBQS9DLFNBQVMsQ0FBQ2tDLE9BQU8sTUFBQSxJQUFBLElBQUFhLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFc0QsV0FBVyxNQUFBLElBQUEsSUFBQW5DLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLENBQUM7SUFDdkQsSUFBTXFDLFdBQVcsR0FBRyxDQUFBUixFQUFBLEdBQUEsQ0FBQUQsRUFBQSxHQUFBN0YsU0FBUyxDQUFDaUMsT0FBTyxNQUFBLElBQUEsSUFBQTRELEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFTyxXQUFXLE1BQUEsSUFBQSxJQUFBTixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSSxDQUFDO0lBQ3ZELElBQU1TLGFBQWEsR0FBRyxDQUFBUCxFQUFBLEdBQUEsQ0FBQUQsRUFBQSxHQUFBOUYsV0FBVyxDQUFDZ0MsT0FBTyxNQUFBLElBQUEsSUFBQThELEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFSyxXQUFXLE1BQUEsSUFBQSxJQUFBSixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSSxDQUFDO0lBQzNELElBQU1RLFNBQVMsR0FBRyxDQUFBTixFQUFBLEdBQUEsQ0FBQUQsRUFBQSxHQUFBbkcsVUFBVSxDQUFDbUMsT0FBTyxNQUFBLElBQUEsSUFBQWdFLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFRyxXQUFXLE1BQUEsSUFBQSxJQUFBRixFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSSxDQUFDO0lBQ3RELElBQU1PLFFBQVEsR0FBR0osV0FBVyxJQUFJQyxXQUFXLElBQUlDLGFBQWEsR0FDeEQsRUFBRSxHQUNERixXQUFXLElBQUlDLFdBQVcsSUFBTUQsV0FBVyxJQUFJRSxhQUFjLElBQUtELFdBQVcsSUFBSUMsYUFBYyxHQUM5RixFQUFFLEdBQ0ZGLFdBQVcsSUFBSUMsV0FBVyxJQUFJQyxhQUFhLEdBQ3pDLENBQUMsR0FDRCxDQUFDO0lBRVQsSUFBTUcsUUFBUSxHQUFHUCxjQUFjLEdBQUdFLFdBQVcsR0FBR0MsV0FBVyxHQUFHQyxhQUFhLEdBQUdFLFFBQVE7SUFDdEYsSUFBTUUsS0FBSyxHQUFHSCxTQUFTLElBQUlFLFFBQVE7SUFDbkM1RixRQUFRLENBQUN5QyxJQUFJLENBQUMxRyxHQUFHLENBQUM2SixRQUFRLEVBQUVuRCxJQUFJLENBQUN6RyxHQUFHLENBQUMwSixTQUFTLEVBQUVoSyxlQUFlLENBQUMsQ0FBQyxDQUFDO0lBQ2xFMEUsYUFBYSxDQUFDeUYsS0FBSyxDQUFDO0lBQ3BCLElBQUl0RixPQUFPLEVBQUVNLFdBQVcsQ0FBQyxJQUFJLENBQUM7RUFDaEMsQ0FBQyxFQUFFLENBQUNsQixNQUFNLEVBQUV0QixNQUFNLEVBQUVDLE1BQU0sRUFBRUMsUUFBUSxFQUFFZ0MsT0FBTyxDQUFDLENBQUM7RUFFL0NyRixlQUFlLENBQUMsWUFBSztJRGhCZixJQUFJK0YsRUFBRSxFQUFFYyxFQUFFLEVBQUVDLEVBQUUsRUFBRW1CLEVBQUU7SUNpQnRCLElBQUl2SCxHQUFHLEdBQUcsT0FBT2MsS0FBSyxLQUFLLFdBQVcsR0FBR2lELE1BQU0sR0FBR2pELEtBQUs7SUFDdkQsSUFBSTRHLGVBQWUsR0FBRyxLQUFLO0lBQzNCLElBQUlHLGlCQUFpQixHQUFHLEtBQUs7SUFDN0IsSUFBSSxPQUFPN0gsR0FBRyxLQUFLLFFBQVEsRUFBRTtNQUMzQixJQUFJQSxHQUFHLEtBQUssRUFBRSxFQUFFO1FBQ2RBLEdBQUcsR0FBRyxJQUFJO01BQ1osQ0FBQyxNQUFNO1FBQ0xBLEdBQUcsR0FBR0Qsb0JBQW9CLENBQUNDLEdBQUcsQ0FBQyxDQUFDOEcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ25EVyxlQUFlLEdBQUcsQ0FBQyxDQUFDMUgsR0FBRyxJQUFJQSxHQUFHLENBQUMySCxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQzVDLElBQUlELGVBQWUsRUFBRTFILEdBQUcsR0FBR0EsR0FBRyxDQUFDNEcsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMxRSxRQUFRLEVBQUVsQyxHQUFHLEdBQUdBLEdBQUcsQ0FBQ0MsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7UUFDMUM0SCxpQkFBaUIsR0FBRyxDQUFDLENBQUMzRixRQUFRLElBQUlsQyxHQUFHLEtBQUssR0FBRztRQUM3QyxJQUFJLENBQUM2SCxpQkFBaUIsSUFBSXhILEtBQUssQ0FBQyxDQUFDTCxHQUFHLENBQUMsRUFBRTtNQUN6QztJQUNGLENBQUMsTUFBTSxJQUFJQSxHQUFHLEtBQUssSUFBSSxJQUFJLE9BQU9BLEdBQUcsS0FBSyxRQUFRLElBQUksT0FBT0EsR0FBRyxLQUFLLFFBQVEsRUFBRTtJQUUvRSxJQUFJLENBQUNrQyxRQUFRLEVBQUU7TUFDYixJQUFJLE9BQU9sQyxHQUFHLEtBQUssUUFBUSxFQUFFO1FBQzNCQSxHQUFHLEdBQUc2RyxJQUFJLENBQUNxRCxHQUFHLENBQUNsSyxHQUFHLENBQUM7TUFDckIsQ0FBQyxNQUFNLElBQUksT0FBT0EsR0FBRyxLQUFLLFFBQVEsRUFBRTtRQUNsQyxJQUFNbUssSUFBSSxHQUFHQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3RCcEssR0FBRyxHQUFHQSxHQUFHLEdBQUdtSyxJQUFJLEdBQUcsQ0FBQ25LLEdBQUcsR0FBR0EsR0FBRztNQUMvQjtJQUNGO0lBRUEsSUFDRSxDQUFDLE9BQU9BLEdBQUcsS0FBSyxRQUFRLElBQUksT0FBT0EsR0FBRyxLQUFLLFFBQVEsTUFDbEQsT0FBT2lCLGlCQUFpQixLQUFLLFFBQVEsSUFBSSxPQUFPQSxpQkFBaUIsS0FBSyxRQUFRLENBQUMsRUFDaEY7TUFDQSxJQUFBb0osTUFBQSxHQUF1QixDQUFDLEVBQUUsR0FBR3JLLEdBQUcsRUFBRThHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFBQXdELE9BQUEsR0FBQXhHLGNBQUEsQ0FBQXVHLE1BQUE7UUFBckNyQyxLQUFHLEdBQUFzQyxPQUFBO1FBQUVyQyxPQUFPLEdBQUFxQyxPQUFBO01BQ25CLElBQU1wQyxXQUFXLEdBQUdDLE1BQU0sQ0FBQ2xILGlCQUFpQixDQUFDO01BQzdDLElBQUlnSCxPQUFPLElBQUksSUFBSSxJQUFJQSxPQUFPLENBQUN2SixNQUFNLEdBQUd3SixXQUFXLEVBQUU7UUFDbkQsSUFBTUUsaUJBQWlCLEdBQUdILE9BQU8sQ0FBQ3JCLEtBQUssQ0FBQyxDQUFDLEVBQUVzQixXQUFXLENBQUM7UUFDdkRsSSxHQUFHLE1BQUFrRCxNQUFBLENBQU04RSxLQUFHLE9BQUE5RSxNQUFBLENBQUlrRixpQkFBaUIsQ0FBRTtRQUNuQyxJQUFJLE9BQU90SCxLQUFLLEtBQUssV0FBVyxFQUFFO1VBQ2hDa0QsUUFBUSxDQUFDaEUsR0FBRyxDQUFDO1FBQ2YsQ0FBQyxNQUFNO1VBQ0w7VUFDQSxDQUFBcUYsRUFBQSxHQUFBMUIsV0FBVyxDQUFDNEIsT0FBTyxNQUFBLElBQUEsSUFBQUYsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUEvRyxJQUFBLENBQUFxRixXQUFBLEVBQUc7WUFBRThELE1BQU0sRUFBRXRFLFFBQVEsQ0FBQ29DO1VBQVEsQ0FBRSxFQUFFdkYsR0FBRyxLQUFBLElBQUEsSUFBSEEsR0FBRyxLQUFBLEtBQUEsQ0FBQSxHQUFIQSxHQUFHLEdBQUksRUFBRSxDQUFDO1FBQ2pFO1FBQ0E7TUFDRjtJQUNGO0lBRUEsSUFBSSxPQUFPQSxHQUFHLEtBQUssUUFBUSxJQUFJLE9BQU9BLEdBQUcsS0FBSyxRQUFRLElBQUksT0FBT0EsR0FBRyxLQUFLLFFBQVEsRUFBRTtNQUNqRkEsR0FBRyxHQUFHRSxnQkFBZ0IsQ0FBQyxFQUFFLEdBQUdGLEdBQUcsRUFBRUcsR0FBRyxFQUFFQyxHQUFHLENBQUM7SUFDNUM7SUFFQSxJQUFJSixHQUFHLEtBQUssRUFBRSxJQUFJQSxHQUFHLElBQUksSUFBSSxFQUFFO01BQzdCZ0UsUUFBUSxDQUFDLElBQUksQ0FBQztJQUNoQixDQUFDLE1BQU07TUFDTCxJQUFJNkQsaUJBQWlCLEVBQUU7UUFDckI3SCxHQUFHLEdBQUcsR0FBRztNQUNYLENBQUMsTUFBTTtRQUNMLElBQU11SyxNQUFNLEdBQUcsRUFBRSxHQUFHdkssR0FBRztRQUN2QixJQUFNd0ksUUFBUSxHQUFHLENBQUFqQixFQUFBLEdBQUEsQ0FBQW5CLEVBQUEsR0FBQSxDQUFBRCxFQUFBLEdBQUFvRSxNQUFNLENBQUM5QixLQUFLLENBQUMsVUFBVSxDQUFDLE1BQUEsSUFBQSxJQUFBdEMsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUcsQ0FBQyxDQUFDLE1BQUEsSUFBQSxJQUFBQyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRTFILE1BQU0sTUFBQSxJQUFBLElBQUE2SSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSSxDQUFDO1FBQzNELElBQU1tQixFQUFFLEdBQUduSixTQUFTLENBQUNnTCxNQUFNLENBQUM7UUFDNUIsSUFBSTVCLFVBQVUsR0FBR0QsRUFBRSxDQUFDRSxPQUFPLENBQUNKLFFBQVEsQ0FBQztRQUNyQyxJQUFJdEcsUUFBUSxJQUFJcUksTUFBTSxDQUFDMUIsSUFBSSxDQUFBLENBQUUsQ0FBQ0MsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJSixFQUFFLENBQUNLLE1BQU0sQ0FBQSxDQUFFLEVBQUU7VUFDNURKLFVBQVUsR0FBR0EsVUFBVSxDQUFDRyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUdILFVBQVUsT0FBQXpGLE1BQUEsQ0FBT3lGLFVBQVUsQ0FBRTtRQUN6RTtRQUNBM0ksR0FBRyxHQUFHLEdBQUFrRCxNQUFBLENBQUd5RixVQUFVLEVBQUF6RixNQUFBLENBQUd3RSxlQUFlLEdBQUcsR0FBRyxHQUFHLEVBQUUsRUFBR21CLElBQUksQ0FBQSxDQUFFO01BQzNEO01BQ0E3RSxRQUFRLENBQUNoRSxHQUFHLENBQUM7SUFDZjtJQUNBZ0csWUFBWSxDQUFDaEcsR0FBRyxLQUFBLElBQUEsSUFBSEEsR0FBRyxLQUFBLEtBQUEsQ0FBQSxHQUFIQSxHQUFHLEdBQUksRUFBRSxFQUFFMEgsZUFBZSxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUViLElBQUksQ0FBQ3pHLEdBQUcsQ0FBQ3FELHFCQUFxQixDQUFDOEIsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVGN0IsZUFBZSxDQUFDNkIsT0FBTyxHQUFHLElBQUk7RUFDaEMsQ0FBQyxFQUFFLENBQUN6RSxLQUFLLEVBQUVHLGlCQUFpQixFQUFFZCxHQUFHLEVBQUVDLEdBQUcsRUFBRThCLFFBQVEsQ0FBQyxDQUFDO0VBRWxEN0MsU0FBUyxDQUFDLFlBQUs7SUFDYnNFLFdBQVcsQ0FBQzRCLE9BQU8sR0FBRzFDLFFBQVE7SUFDOUJtQyxRQUFRLENBQUNPLE9BQU8sR0FBRztNQUNqQnpFLEtBQUssRUFBTEEsS0FBSztNQUNMaUQsTUFBTSxFQUFOQSxNQUFNO01BQ05jLGNBQWMsRUFBZEEsY0FBYztNQUNkMUUsR0FBRyxFQUFIQSxHQUFHO01BQ0hDLEdBQUcsRUFBSEEsR0FBRztNQUNIOEIsUUFBUSxFQUFSQSxRQUFRO01BQ1JqQixpQkFBaUIsRUFBakJBO0lEWkUsQ0NhSDtFQUNILENBQUMsRUFBRSxDQUFDOEMsTUFBTSxFQUFFakQsS0FBSyxFQUFFK0QsY0FBYyxFQUFFMUUsR0FBRyxFQUFFQyxHQUFHLEVBQUU4QixRQUFRLEVBQUVqQixpQkFBaUIsRUFBRTRCLFFBQVEsQ0FBQyxDQUFDO0VBRXBGLE9BQU85RCxLQUFBLENBQUEsS0FBQSxFQUFBO0lBQ0wwQyxTQUFTLEVBQUV3QixPQUFPLENBQUMsU0FBUyxFQUFFcEQsT0FBTyxDQUNuQzZCLFVBQVUsRUFDVnVCLE9BQU8sQ0FBQzNCLElBQUksQ0FBQyxFQUNiVyxPQUFPLElBQUlnQixPQUFPLENBQUMsU0FBUyxDQUFDLEVBQzdCWixPQUFPLElBQUlZLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFDN0JYLFFBQVEsSUFBSVcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUMvQlYsUUFBUSxJQUFJVSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQy9CYyxNQUFNLElBQUlkLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FDNUIsQ0FBQztJQUFBL0IsUUFBQSxFQUFBLENBR0FzQixLQUFLLEdBQ0RKLE9BQU8sR0FDTHZELElBQUEsQ0FBQ1ksUUFBUSxFQUFBO01BQUMrSyxLQUFLLEVBQUMsTUFBTTtNQUFDQyxNQUFNLEVBQUMsTUFBTTtNQUFDaEosU0FBUyxFQUFFd0IsT0FBTyxDQUFDLGVBQWU7SUFBQyxDQUFBLENBQUksR0FDNUVwRSxJQUFBLENBQUEsTUFBQSxFQUFBO01BQU00QyxTQUFTLEVBQUV3QixPQUFPLENBQUMsT0FBTyxFQUFFcEQsT0FBTyxDQUFDc0MsUUFBUSxJQUFJYyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsRUFBRXRCLFFBQVEsQ0FBQyxDQUFDO01BQUFULFFBQUEsRUFBR3NCO0lBQUssQ0FBQSxDQUFRLEdBQzdHLElBQUksRUFFVnpELEtBQUEsQ0FBQSxLQUFBLEVBQUE7TUFDRTJMLEdBQUcsRUFBRWxILFlBQVk7TUFDakIvQixTQUFTLEVBQUV3QixPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUVwRCxPQUFPLENBQUM0QixTQUFTLEVBQUVrRCxPQUFPLElBQUkxQixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztNQUMzRTBILE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFHM00sQ0FBQyxFQUFJO1FEOUJELElBQUlxSCxFQUFFO1FDK0JsQixJQUFJckgsQ0FBQyxDQUFDeUosTUFBTSxZQUFZbUQsZ0JBQWdCLEVBQUU7UUFDMUMsQ0FBQXZGLEVBQUEsR0FBQWxDLFFBQVEsQ0FBQ29DLE9BQU8sTUFBQSxJQUFBLElBQUFGLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFVSxLQUFLLENBQUEsQ0FBRTtRQUN6QixJQUFJeEIsVUFBVSxFQUFFVSxXQUFXLENBQUEsQ0FBRTtNQUMvQixDQUFDO01BQUEvRCxRQUFBLEVBQUEsQ0FHQ3VCLE1BQU0sSUFBSTVELElBQUEsQ0FBQSxNQUFBLEVBQUE7UUFDUjZMLEdBQUcsRUFBRXJILFNBQVM7UUFDZDVCLFNBQVMsRUFBRXdCLE9BQU8sQ0FBQyxRQUFRLEVBQUVsQixZQUFZLENBQUM7UUFBQWIsUUFBQSxFQUV6Q3VCO01BQU0sQ0FBQSxDQUNGLEVBRVQ1RCxJQUFBLENBQUEsS0FBQSxFQUFBO1FBQ0U0QyxTQUFTLEVBQUV3QixPQUFPLENBQUMsU0FBUyxFQUFHLENBQUMwQixPQUFPLElBQUlKLFVBQVUsR0FBSXRCLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLENBQUM7UUFBQS9CLFFBQUEsRUFFckZyQyxJQUFBLENBQUEsT0FBQSxFQUFBVixNQUFBLENBQUEwTSxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ003SCxJQUFJLEVBQUE7VUFDUjBILEdBQUcsRUFBRXZILFFBQVE7VUFDYnJDLEtBQUssRUFBRStELGNBQWM7VUFDckJ6RCxXQUFXLEVBQUVBLFdBQVc7VUFDeEJtQixRQUFRLEVBQUVBLFFBQVE7VUFDbEJELFFBQVEsRUFBRUEsUUFBUTtVQUNsQndJLEtBQUssRUFBRTtZQUFFLGVBQWUsS0FBQTVILE1BQUEsQ0FBS2lCLE1BQU07VUFBSSxDQUFtQjtVQUMxRHRCLFFBQVEsRUFBRXlFLFlBQVk7VUFDdEJ5RCxRQUFRLEVBQUU3QixZQUFZO1VBQ3RCbkcsT0FBTyxFQUFFLFNBQVRBLE9BQU9BLENBQUUvRSxDQUFDLEVBQUc7WUFDWDRHLFVBQVUsQ0FBQyxJQUFJLENBQUM7WUFDaEI3QixRQUFPLEtBQUEsSUFBQSxJQUFQQSxRQUFPLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVBBLFFBQU8sQ0FBRy9FLENBQUMsQ0FBQztVQUNkLENBQUM7VUFDRDhFLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFFOUUsQ0FBQyxFQUFHO1lBQ1Y0RyxVQUFVLENBQUMsS0FBSyxDQUFDO1lBQ2pCOUIsT0FBTSxLQUFBLElBQUEsSUFBTkEsT0FBTSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFOQSxPQUFNLENBQUc5RSxDQUFDLENBQUM7VUFDYjtRQUFDLENBQUEsQ0FBQTtNQUNELENBQUEsQ0FDRSxFQUVKMkUsUUFBUSxJQUFJOUQsSUFBQSxDQUFBLE1BQUEsRUFBQTtRQUNWNkwsR0FBRyxFQUFFbkgsV0FBVztRQUNoQjlCLFNBQVMsRUFBRXdCLE9BQU8sQ0FBQyxVQUFVLENBQUM7UUFBQS9CLFFBQUEsRUFFN0J5QjtNQUFRLENBQUEsQ0FDSixFQUVSUCxPQUFPLEdBQUd2RCxJQUFBLENBQUNhLE9BQU8sRUFBQTtRQUFDK0IsU0FBUyxFQUFFd0IsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1FBQUUrSCxXQUFXLEVBQUM7TUFBRyxDQUFBLENBQUcsR0FBR3RJLE1BQU0sR0FBRzdELElBQUEsQ0FBQSxNQUFBLEVBQUE7UUFBTTZMLEdBQUcsRUFBRXBILFNBQVM7UUFBRTdCLFNBQVMsRUFBRXdCLE9BQU8sQ0FBQyxRQUFRLEVBQUVqQixZQUFZLENBQUM7UUFBQWQsUUFBQSxFQUFHd0I7TUFBTSxDQUFBLENBQVEsR0FBRyxJQUFJLEVBQ2hMN0QsSUFBQSxDQUFBLE1BQUEsRUFBQTtRQUNFNkwsR0FBRyxFQUFFdEgsVUFBVTtRQUNmM0IsU0FBUyxFQUFFd0IsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUMxQjBILE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFFM00sQ0FBQztVQUFBLE9BQUlBLENBQUMsQ0FBQ2lMLGVBQWUsQ0FBQSxDQUFFO1FBQUE7UUFBQS9ILFFBQUEsRUFFaEMyRDtNQUFjLENBQUEsQ0FDVjtJQUFBLENBQUEsQ0FDSCxFQUVKLENBQUNqQyxPQUFPLElBQUlyQixRQUFRLEtBQUt4QyxLQUFBLENBQUEsS0FBQSxFQUFBO01BQUswQyxTQUFTLEVBQUV3QixPQUFPLENBQUMsT0FBTyxDQUFDO01BQUEvQixRQUFBLEVBQUEsQ0FDdEQwQixPQUFPLElBQUkvRCxJQUFBLENBQUEsS0FBQSxFQUFBO1FBQUs0QyxTQUFTLEVBQUV3QixPQUFPLENBQUMsU0FBUyxFQUFFbkIsVUFBVSxDQUFDO1FBQUFaLFFBQUEsRUFBRzBCO01BQU8sQ0FBQSxDQUFPLEVBQzFFckIsUUFBUSxJQUFJMUMsSUFBQSxDQUFBLEtBQUEsRUFBQTtRQUFLNEMsU0FBUyxFQUFFd0IsT0FBTyxDQUFDLFVBQVUsRUFBRXpCLFdBQVcsQ0FBQztRQUFBTixRQUFBLEVBQUdLO01BQVEsQ0FBQSxDQUFPO0lBQUEsQ0FBQSxDQUMzRTtFQUFBLENBQUEsQ0FFSjtBQUNSLENBQUM7QUFFRCw0QkFBZXZDLElBQUksQ0FBQzRCLFdBQVcsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZU1lbW8sIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VFZmZlY3QsIHVzZUxheW91dEVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCB7IG51bWVyaWNGb3JtYXR0ZXIgfSBmcm9tICdyZWFjdC1udW1iZXItZm9ybWF0JztcbmltcG9ydCB7IFNrZWxldG9uIH0gZnJvbSAncHJpbWVyZWFjdC9za2VsZXRvbic7XG5pbXBvcnQgU3Bpbm5lciBmcm9tICcuLi9TcGlubmVyJztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuY29uc3QgTUlOX0lOUFVUX1dJRFRIID0gMzM7XG5jb25zdCBub3JtYWxpemVOdW1iZXJJbnB1dCA9ICh2YWwpID0+IHZhbFxuICAgIC5yZXBsYWNlKC9bXFx1MzAwMlxcdWZmMGVcXHVmZjYxXS9nLCAnLicpXG4gICAgLnJlcGxhY2UoL1tcXHVGRjBDXS9nLCAnLCcpO1xuY29uc3QgY2FsY1ZhbHVlSW5SYW5nZSA9ICh2YWwsIG1pbiwgbWF4KSA9PiB7XG4gICAgaWYgKHZhbCA9PT0gJycgfHwgdmFsID09PSAnLScgfHwgaXNOYU4oK3ZhbCkpXG4gICAgICAgIHJldHVybiB2YWw7XG4gICAgbGV0IGNhbGNWYWwgPSB2YWw7XG4gICAgY29uc3QgYm5WYWwgPSBCaWdOdW1iZXIodmFsKTtcbiAgICBpZiAodHlwZW9mIG1pbiA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1pbiA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgY29uc3QgbWluQm4gPSBCaWdOdW1iZXIobWluKTtcbiAgICAgICAgaWYgKGJuVmFsLmx0KG1pbkJuKSkge1xuICAgICAgICAgICAgY2FsY1ZhbCA9ICcnICsgbWluO1xuICAgICAgICB9XG4gICAgfVxuICAgIGlmICh0eXBlb2YgbWF4ID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWF4ID09PSAnYmlnaW50Jykge1xuICAgICAgICBjb25zdCBtYXhCbiA9IEJpZ051bWJlcihtYXgpO1xuICAgICAgICBpZiAoYm5WYWwuZ3QobWF4Qm4pKSB7XG4gICAgICAgICAgICBjYWxjVmFsID0gJycgKyBtYXg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGNhbGNWYWw7XG59O1xuZXhwb3J0IGNvbnN0IElucHV0QW1vdW50ID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IHsgdmFsdWUsIHR5cGUgPSAncHJpbWFyeScsIG1heEZyYWN0aW9uRGlnaXRzLCBjaGlsZHJlbiwgcGxhY2Vob2xkZXIgPSAnMCcsIG1pbiwgbWF4LCBcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgc2l6ZSA9ICdsYXJnZScsIGZvb3Rub3RlLCBmb290bm90ZUNscywgY2xhc3NOYW1lLCB3cmFwcGVyQ2xzLCBsYWJlbENscywgcHJlZml4Q2xzID0gJ2lucHV0LWFtb3VudCcsIG1lc3NhZ2VDbHMsIHByZWZpeEVsZUNscywgc3VmZml4RWxlQ2xzLCBpbnZhbGlkLCBuZWdhdGl2ZSwgcmVxdWlyZWQsIGxvYWRpbmcsIHN1Y2Nlc3MsIGRpc2FibGVkLCByZWFkT25seSwgbGFiZWwsIHByZWZpeCwgc3VmZml4LCBjdXJyZW5jeSwgbWVzc2FnZSwgb25DaGFuZ2UsIG9uQmx1ciwgb25Gb2N1cyB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcInZhbHVlXCIsIFwidHlwZVwiLCBcIm1heEZyYWN0aW9uRGlnaXRzXCIsIFwiY2hpbGRyZW5cIiwgXCJwbGFjZWhvbGRlclwiLCBcIm1pblwiLCBcIm1heFwiLCBcInNpemVcIiwgXCJmb290bm90ZVwiLCBcImZvb3Rub3RlQ2xzXCIsIFwiY2xhc3NOYW1lXCIsIFwid3JhcHBlckNsc1wiLCBcImxhYmVsQ2xzXCIsIFwicHJlZml4Q2xzXCIsIFwibWVzc2FnZUNsc1wiLCBcInByZWZpeEVsZUNsc1wiLCBcInN1ZmZpeEVsZUNsc1wiLCBcImludmFsaWRcIiwgXCJuZWdhdGl2ZVwiLCBcInJlcXVpcmVkXCIsIFwibG9hZGluZ1wiLCBcInN1Y2Nlc3NcIiwgXCJkaXNhYmxlZFwiLCBcInJlYWRPbmx5XCIsIFwibGFiZWxcIiwgXCJwcmVmaXhcIiwgXCJzdWZmaXhcIiwgXCJjdXJyZW5jeVwiLCBcIm1lc3NhZ2VcIiwgXCJvbkNoYW5nZVwiLCBcIm9uQmx1clwiLCBcIm9uRm9jdXNcIl0pO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke3ByZWZpeENsc30tJHt0eXBlfWApO1xuICAgIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGZha2VFbGVSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgcHJlZml4UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHN1ZmZpeFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjdXJyZW5jeVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgaW5wdXRDYXJldFBvc2l0aW9uUmVmID0gdXNlUmVmKDApO1xuICAgIGNvbnN0IGlnbm9yZVNlbGVjdFJlZiA9IHVzZVJlZihmYWxzZSk7XG4gICAgY29uc3Qgb25DaGFuZ2VSZWYgPSB1c2VSZWYob25DaGFuZ2UpO1xuICAgIGNvbnN0IFtfdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtfd2lkdGgsIHNldFdpZHRoXSA9IHVzZVN0YXRlKE1JTl9JTlBVVF9XSURUSCk7XG4gICAgY29uc3QgW2lzTWF4V2lkdGgsIHNldElzTWF4V2lkdGhdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtpc0ZvY3VzLCBzZXRJc0ZvY3VzXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICByZXR1cm4gbnVtZXJpY0Zvcm1hdHRlcignJyArIChfdmFsdWUgPT0gbnVsbCA/ICcnIDogX3ZhbHVlKSwge1xuICAgICAgICAgICAgdGhvdXNhbmRTZXBhcmF0b3I6IHRydWUsXG4gICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiBuZWdhdGl2ZSxcbiAgICAgICAgfSk7XG4gICAgfSwgW192YWx1ZSwgbmVnYXRpdmVdKTtcbiAgICBjb25zdCB2YWx1ZVJlZiA9IHVzZVJlZih7XG4gICAgICAgIHZhbHVlLFxuICAgICAgICBfdmFsdWUsXG4gICAgICAgIGZvcm1hdHRlZFZhbHVlLFxuICAgICAgICBtaW4sXG4gICAgICAgIG1heCxcbiAgICAgICAgbmVnYXRpdmUsXG4gICAgICAgIG1heEZyYWN0aW9uRGlnaXRzLFxuICAgIH0pO1xuICAgIGNvbnN0IHNjcm9sbFRvRW5kID0gdXNlQ2FsbGJhY2soKHN0aWNreSA9IGZhbHNlKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgY29uc3QgaW5wdXQgPSBpbnB1dFJlZi5jdXJyZW50O1xuICAgICAgICBpZiAoIWlucHV0KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBsZW4gPSAoX2EgPSBpbnB1dC52YWx1ZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmxlbmd0aDtcbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSBpbnB1dC5zY3JvbGxMZWZ0O1xuICAgICAgICBjb25zdCBzaG91bGRUb0VuZCA9ICFzdGlja3k7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gc2hvdWxkVG9FbmQgPyBsZW4gOiBpbnB1dENhcmV0UG9zaXRpb25SZWYuY3VycmVudDtcbiAgICAgICAgaW5wdXQuc2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIHN0YXJ0KTtcbiAgICAgICAgaW5wdXQuc2Nyb2xsTGVmdCA9IHNob3VsZFRvRW5kID8gaW5wdXQuc2Nyb2xsV2lkdGggOiBwb3NpdGlvbjtcbiAgICAgICAgaW5wdXQuZm9jdXMoKTtcbiAgICB9LCBbXSk7XG4gICAgY29uc3QgY2FsY0NhcmV0UG9zID0gdXNlQ2FsbGJhY2soKHZhbCwgb2Zmc2V0ID0gMCwgY3VyclBvcykgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYztcbiAgICAgICAgaWYgKGlucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgX3ZhbHVlLCBuZWdhdGl2ZSwgZm9ybWF0dGVkVmFsdWUgfSA9IHZhbHVlUmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWROZXdWYWwgPSBudW1lcmljRm9ybWF0dGVyKHZhbCwge1xuICAgICAgICAgICAgICAgIHRob3VzYW5kU2VwYXJhdG9yOiB0cnVlLFxuICAgICAgICAgICAgICAgIGFsbG93TmVnYXRpdmU6IG5lZ2F0aXZlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBvcmlnaW5PZmZzZXQgPSB2YWwubGVuZ3RoIC0gKChfYSA9IF92YWx1ZSA9PT0gbnVsbCB8fCBfdmFsdWUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF92YWx1ZS5sZW5ndGgpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDApO1xuICAgICAgICAgICAgY29uc3QgaXNBZGQgPSBvcmlnaW5PZmZzZXQgPiAwO1xuICAgICAgICAgICAgY29uc3QgaWdub3JlT2xkUG9zID0gaXNBZGQgPyB2YWwubGVuZ3RoIC0gKChfYiA9IF92YWx1ZSA9PT0gbnVsbCB8fCBfdmFsdWUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF92YWx1ZS5sZW5ndGgpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDApID4gMSA6IGZhbHNlO1xuICAgICAgICAgICAgbGV0IHBvc2l0aW9uID0gKF9jID0gY3VyclBvcyAhPT0gbnVsbCAmJiBjdXJyUG9zICE9PSB2b2lkIDAgPyBjdXJyUG9zIDogaW5wdXRSZWYuY3VycmVudC5zZWxlY3Rpb25FbmQpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IDA7XG4gICAgICAgICAgICBpZiAoIWlnbm9yZU9sZFBvcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9sZFBvc1ZhbCA9IGZvcm1hdHRlZFZhbHVlLnNsaWNlKDAsIE1hdGgubWF4KHBvc2l0aW9uLCAwKSk7XG4gICAgICAgICAgICAgICAgcG9zaXRpb24gPSBvbGRQb3NWYWwuc3BsaXQoJywnKS5qb2luKCcnKS5sZW5ndGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwb3NWYWwgPSB2YWwuc2xpY2UoMCwgKHBvc2l0aW9uICsgb3JpZ2luT2Zmc2V0KSk7XG4gICAgICAgICAgICBmb3JtYXR0ZWROZXdWYWwuc3BsaXQoJycpLnJlZHVjZSgoYWNjLCBjaGFyLCBpbmQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY2hhciA9PT0gJywnKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgYWNjLnB1c2goY2hhcik7XG4gICAgICAgICAgICAgICAgaWYgKGFjYy5qb2luKCcnKSA9PT0gcG9zVmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gaW5kICsgMTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH0sIFtdKTtcbiAgICAgICAgICAgIGlucHV0Q2FyZXRQb3NpdGlvblJlZi5jdXJyZW50ID0gcG9zaXRpb24gKyBvZmZzZXQ7XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2soKGUpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoZGlzYWJsZWQgfHwgcmVhZE9ubHkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHsgdmFsdWUsIF92YWx1ZSwgZm9ybWF0dGVkVmFsdWUsIG1pbiwgbWF4LCBuZWdhdGl2ZSwgbWF4RnJhY3Rpb25EaWdpdHMgfSA9IHZhbHVlUmVmLmN1cnJlbnQ7XG4gICAgICAgIGxldCB2YWwgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgaWYgKHZhbCAhPSBudWxsKVxuICAgICAgICAgICAgdmFsID0gbm9ybWFsaXplTnVtYmVySW5wdXQodmFsKS5zcGxpdCgnLCcpLmpvaW4oJycpO1xuICAgICAgICBjb25zdCBoYXNEZWNpbWFsUG9pbnQgPSAhIXZhbCAmJiB2YWwuZW5kc1dpdGgoJy4nKTtcbiAgICAgICAgaWYgKGhhc0RlY2ltYWxQb2ludClcbiAgICAgICAgICAgIHZhbCA9IHZhbC5zbGljZSgwLCAtMSk7XG4gICAgICAgIGlmICghbmVnYXRpdmUgJiYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHZhbC5pbmNsdWRlcygnLScpKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgaXNTdGFuZGFsb25lTWludXMgPSBuZWdhdGl2ZSAmJiB2YWwgPT09ICctJztcbiAgICAgICAgaWYgKCFpc1N0YW5kYWxvbmVNaW51cyAmJiBpc05hTigrdmFsKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKHZhbCA9PT0gX3ZhbHVlICYmICFoYXNEZWNpbWFsUG9pbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2YgbWF4RnJhY3Rpb25EaWdpdHMgPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXhGcmFjdGlvbkRpZ2l0cyA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgICAgIGNvbnN0IFtpbnQsIGRlY2ltYWxdID0gdmFsLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICBjb25zdCBtYXhEZWNpbWFscyA9IE51bWJlcihtYXhGcmFjdGlvbkRpZ2l0cyk7XG4gICAgICAgICAgICBpZiAoZGVjaW1hbCAhPSBudWxsICYmIGRlY2ltYWwubGVuZ3RoID4gbWF4RGVjaW1hbHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0cnVuY2F0ZWREZWNpbWFscyA9IGRlY2ltYWwuc2xpY2UoMCwgbWF4RGVjaW1hbHMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IFtvbGRJbnQsXSA9IGZvcm1hdHRlZFZhbHVlLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICAgICAgaWYgKG9sZEludC5zcGxpdCgnLCcpLmpvaW4oJycpID09IGludClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIHZhbCA9IGAke2ludH0uJHt0cnVuY2F0ZWREZWNpbWFsc31gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG1pbiA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1pbiA9PT0gJ2JpZ2ludCcpIHx8ICh0eXBlb2YgbWF4ID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWF4ID09PSAnYmlnaW50JykpIHtcbiAgICAgICAgICAgIHZhbCA9IGNhbGNWYWx1ZUluUmFuZ2UodmFsLCBtaW4sIG1heCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbCAhPT0gJycpIHtcbiAgICAgICAgICAgIGlmIChpc1N0YW5kYWxvbmVNaW51cykge1xuICAgICAgICAgICAgICAgIHZhbCA9ICctJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlY2ltYWxzID0gKF9jID0gKF9iID0gKF9hID0gdmFsLm1hdGNoKC9cXC4oXFxkKykkLykpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVsxXSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmxlbmd0aCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMDtcbiAgICAgICAgICAgICAgICBjb25zdCBibiA9IEJpZ051bWJlcih2YWwpO1xuICAgICAgICAgICAgICAgIGxldCBub3JtYWxpemVkID0gYm4udG9GaXhlZChkZWNpbWFscyk7XG4gICAgICAgICAgICAgICAgaWYgKG5lZ2F0aXZlICYmIHZhbC50cmltKCkuc3RhcnRzV2l0aCgnLScpICYmIGJuLmlzWmVybygpKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVkLnN0YXJ0c1dpdGgoJy0nKSA/IG5vcm1hbGl6ZWQgOiBgLSR7bm9ybWFsaXplZH1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YWwgPSBgJHtub3JtYWxpemVkfSR7aGFzRGVjaW1hbFBvaW50ID8gJy4nIDogJyd9YC50cmltKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHNldFZhbHVlKHZhbCA9PT0gJycgPyBudWxsIDogdmFsKTtcbiAgICAgICAgICAgIGNhbGNDYXJldFBvcyh2YWwsIGhhc0RlY2ltYWxQb2ludCA/IDIgOiAwLCBNYXRoLm1heChpbnB1dENhcmV0UG9zaXRpb25SZWYuY3VycmVudCwgMCkpO1xuICAgICAgICAgICAgaWdub3JlU2VsZWN0UmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICAoX2QgPSBvbkNoYW5nZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QuY2FsbChvbkNoYW5nZVJlZiwgZSwgdmFsKTtcbiAgICB9LCBbZGlzYWJsZWQsIHJlYWRPbmx5XSk7XG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpZ25vcmVTZWxlY3RSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgaWdub3JlU2VsZWN0UmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyUG9zID0gKF9hID0gaW5wdXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNlbGVjdGlvbkVuZDtcbiAgICAgICAgaWYgKHR5cGVvZiBjdXJyUG9zID09PSAnbnVtYmVyJylcbiAgICAgICAgICAgIGlucHV0Q2FyZXRQb3NpdGlvblJlZi5jdXJyZW50ID0gY3VyclBvcztcbiAgICB9LCBbXSk7XG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZSwgX2YsIF9nLCBfaCwgX2osIF9rO1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IChfYiA9IChfYSA9IGNvbnRhaW5lclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IE1JTl9JTlBVVF9XSURUSDtcbiAgICAgICAgY29uc3QgcHJlZml4V2lkdGggPSAoX2QgPSAoX2MgPSBwcmVmaXhSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiAwO1xuICAgICAgICBjb25zdCBzdWZmaXhXaWR0aCA9IChfZiA9IChfZSA9IHN1ZmZpeFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Uub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9mICE9PSB2b2lkIDAgPyBfZiA6IDA7XG4gICAgICAgIGNvbnN0IGN1cnJlbmN5V2lkdGggPSAoX2ggPSAoX2cgPSBjdXJyZW5jeVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2cub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6IDA7XG4gICAgICAgIGNvbnN0IGZha2VXaWR0aCA9IChfayA9IChfaiA9IGZha2VFbGVSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2ogPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9qLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfayAhPT0gdm9pZCAwID8gX2sgOiAwO1xuICAgICAgICBjb25zdCBnYXBXaWR0aCA9IHByZWZpeFdpZHRoICYmIHN1ZmZpeFdpZHRoICYmIGN1cnJlbmN5V2lkdGhcbiAgICAgICAgICAgID8gMjRcbiAgICAgICAgICAgIDogKHByZWZpeFdpZHRoICYmIHN1ZmZpeFdpZHRoKSB8fCAocHJlZml4V2lkdGggJiYgY3VycmVuY3lXaWR0aCkgfHwgKHN1ZmZpeFdpZHRoICYmIGN1cnJlbmN5V2lkdGgpXG4gICAgICAgICAgICAgICAgPyAxNlxuICAgICAgICAgICAgICAgIDogcHJlZml4V2lkdGggfHwgc3VmZml4V2lkdGggfHwgY3VycmVuY3lXaWR0aFxuICAgICAgICAgICAgICAgICAgICA/IDhcbiAgICAgICAgICAgICAgICAgICAgOiAwO1xuICAgICAgICBjb25zdCBtYXhXaWR0aCA9IGNvbnRhaW5lcldpZHRoIC0gcHJlZml4V2lkdGggLSBzdWZmaXhXaWR0aCAtIGN1cnJlbmN5V2lkdGggLSBnYXBXaWR0aDtcbiAgICAgICAgY29uc3QgaXNNYXggPSBmYWtlV2lkdGggPj0gbWF4V2lkdGg7XG4gICAgICAgIHNldFdpZHRoKE1hdGgubWluKG1heFdpZHRoLCBNYXRoLm1heChmYWtlV2lkdGgsIE1JTl9JTlBVVF9XSURUSCkpKTtcbiAgICAgICAgc2V0SXNNYXhXaWR0aChpc01heCk7XG4gICAgICAgIGlmIChpc0ZvY3VzKVxuICAgICAgICAgICAgc2Nyb2xsVG9FbmQodHJ1ZSk7XG4gICAgfSwgW192YWx1ZSwgcHJlZml4LCBzdWZmaXgsIGN1cnJlbmN5LCBpc0ZvY3VzXSk7XG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBsZXQgdmFsID0gdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyA/IF92YWx1ZSA6IHZhbHVlO1xuICAgICAgICBsZXQgaGFzRGVjaW1hbFBvaW50ID0gZmFsc2U7XG4gICAgICAgIGxldCBpc1N0YW5kYWxvbmVNaW51cyA9IGZhbHNlO1xuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICh2YWwgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbCA9IG5vcm1hbGl6ZU51bWJlcklucHV0KHZhbCkuc3BsaXQoJywnKS5qb2luKCcnKTtcbiAgICAgICAgICAgICAgICBoYXNEZWNpbWFsUG9pbnQgPSAhIXZhbCAmJiB2YWwuZW5kc1dpdGgoJy4nKTtcbiAgICAgICAgICAgICAgICBpZiAoaGFzRGVjaW1hbFBvaW50KVxuICAgICAgICAgICAgICAgICAgICB2YWwgPSB2YWwuc2xpY2UoMCwgLTEpO1xuICAgICAgICAgICAgICAgIGlmICghbmVnYXRpdmUpXG4gICAgICAgICAgICAgICAgICAgIHZhbCA9IHZhbC5yZXBsYWNlKC8tL2csICcnKTtcbiAgICAgICAgICAgICAgICBpc1N0YW5kYWxvbmVNaW51cyA9ICEhbmVnYXRpdmUgJiYgdmFsID09PSAnLSc7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1N0YW5kYWxvbmVNaW51cyAmJiBpc05hTigrdmFsKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHZhbCAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsICE9PSAnbnVtYmVyJyAmJiB0eXBlb2YgdmFsICE9PSAnYmlnaW50JylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKCFuZWdhdGl2ZSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gTWF0aC5hYnModmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgemVybyA9IEJpZ0ludCgwKTtcbiAgICAgICAgICAgICAgICB2YWwgPSB2YWwgPCB6ZXJvID8gLXZhbCA6IHZhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSAmJlxuICAgICAgICAgICAgKHR5cGVvZiBtYXhGcmFjdGlvbkRpZ2l0cyA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1heEZyYWN0aW9uRGlnaXRzID09PSAnYmlnaW50JykpIHtcbiAgICAgICAgICAgIGNvbnN0IFtpbnQsIGRlY2ltYWxdID0gKCcnICsgdmFsKS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgY29uc3QgbWF4RGVjaW1hbHMgPSBOdW1iZXIobWF4RnJhY3Rpb25EaWdpdHMpO1xuICAgICAgICAgICAgaWYgKGRlY2ltYWwgIT0gbnVsbCAmJiBkZWNpbWFsLmxlbmd0aCA+IG1heERlY2ltYWxzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdHJ1bmNhdGVkRGVjaW1hbHMgPSBkZWNpbWFsLnNsaWNlKDAsIG1heERlY2ltYWxzKTtcbiAgICAgICAgICAgICAgICB2YWwgPSBgJHtpbnR9LiR7dHJ1bmNhdGVkRGVjaW1hbHN9YDtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZSh2YWwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICAgICAgICAgICAgICAoX2EgPSBvbkNoYW5nZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChvbkNoYW5nZVJlZiwgeyB0YXJnZXQ6IGlucHV0UmVmLmN1cnJlbnQgfSwgdmFsICE9PSBudWxsICYmIHZhbCAhPT0gdm9pZCAwID8gdmFsIDogJycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWwgPT09ICdudW1iZXInIHx8IHR5cGVvZiB2YWwgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICB2YWwgPSBjYWxjVmFsdWVJblJhbmdlKCcnICsgdmFsLCBtaW4sIG1heCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbCA9PT0gJycgfHwgdmFsID09IG51bGwpIHtcbiAgICAgICAgICAgIHNldFZhbHVlKG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGlzU3RhbmRhbG9uZU1pbnVzKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gJy0nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RyVmFsID0gJycgKyB2YWw7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVjaW1hbHMgPSAoX2QgPSAoX2MgPSAoX2IgPSBzdHJWYWwubWF0Y2goL1xcLihcXGQrKSQvKSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iWzFdKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubGVuZ3RoKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJuID0gQmlnTnVtYmVyKHN0clZhbCk7XG4gICAgICAgICAgICAgICAgbGV0IG5vcm1hbGl6ZWQgPSBibi50b0ZpeGVkKGRlY2ltYWxzKTtcbiAgICAgICAgICAgICAgICBpZiAobmVnYXRpdmUgJiYgc3RyVmFsLnRyaW0oKS5zdGFydHNXaXRoKCctJykgJiYgYm4uaXNaZXJvKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZWQuc3RhcnRzV2l0aCgnLScpID8gbm9ybWFsaXplZCA6IGAtJHtub3JtYWxpemVkfWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhbCA9IGAke25vcm1hbGl6ZWR9JHtoYXNEZWNpbWFsUG9pbnQgPyAnLicgOiAnJ31gLnRyaW0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFZhbHVlKHZhbCk7XG4gICAgICAgIH1cbiAgICAgICAgY2FsY0NhcmV0UG9zKHZhbCAhPT0gbnVsbCAmJiB2YWwgIT09IHZvaWQgMCA/IHZhbCA6ICcnLCBoYXNEZWNpbWFsUG9pbnQgPyAyIDogMCwgTWF0aC5tYXgoaW5wdXRDYXJldFBvc2l0aW9uUmVmLmN1cnJlbnQsIDApKTtcbiAgICAgICAgaWdub3JlU2VsZWN0UmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgIH0sIFt2YWx1ZSwgbWF4RnJhY3Rpb25EaWdpdHMsIG1pbiwgbWF4LCBuZWdhdGl2ZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIG9uQ2hhbmdlUmVmLmN1cnJlbnQgPSBvbkNoYW5nZTtcbiAgICAgICAgdmFsdWVSZWYuY3VycmVudCA9IHtcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgX3ZhbHVlLFxuICAgICAgICAgICAgZm9ybWF0dGVkVmFsdWUsXG4gICAgICAgICAgICBtaW4sXG4gICAgICAgICAgICBtYXgsXG4gICAgICAgICAgICBuZWdhdGl2ZSxcbiAgICAgICAgICAgIG1heEZyYWN0aW9uRGlnaXRzXG4gICAgICAgIH07XG4gICAgfSwgW192YWx1ZSwgdmFsdWUsIGZvcm1hdHRlZFZhbHVlLCBtaW4sIG1heCwgbmVnYXRpdmUsIG1heEZyYWN0aW9uRGlnaXRzLCBvbkNoYW5nZV0pO1xuICAgIHJldHVybiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnd3JhcHBlcicsIGpvaW5DbHMod3JhcHBlckNscywgY2xhc3NlcyhzaXplKSwgaW52YWxpZCAmJiBjbGFzc2VzKCdpbnZhbGlkJyksIHN1Y2Nlc3MgJiYgY2xhc3Nlcygnc3VjY2VzcycpLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCdkaXNhYmxlZCcpLCByZWFkT25seSAmJiBjbGFzc2VzKCdyZWFkb25seScpLCBfdmFsdWUgJiYgY2xhc3NlcygnZmlsbGVkJykpKSwgY2hpbGRyZW46IFtsYWJlbFxuICAgICAgICAgICAgICAgID8gbG9hZGluZ1xuICAgICAgICAgICAgICAgICAgICA/IF9qc3goU2tlbGV0b24sIHsgd2lkdGg6ICc3MnB4JywgaGVpZ2h0OiAnMThweCcsIGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwtbG9hZGluZycpIH0pXG4gICAgICAgICAgICAgICAgICAgIDogX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsJywgam9pbkNscyhyZXF1aXJlZCAmJiBjbGFzc2VzKCdsYWJlbC1yZXF1aXJlZCcpLCBsYWJlbENscykpLCBjaGlsZHJlbjogbGFiZWwgfSlcbiAgICAgICAgICAgICAgICA6IG51bGwsIF9qc3hzKFwiZGl2XCIsIHsgcmVmOiBjb250YWluZXJSZWYsIGNsYXNzTmFtZTogY2xhc3Nlcyh2b2lkIDAsIGpvaW5DbHMoY2xhc3NOYW1lLCBpc0ZvY3VzICYmIGNsYXNzZXMoJ2ZvY3VzJykpKSwgb25DbGljazogKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAoX2EgPSBpbnB1dFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWF4V2lkdGgpXG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUb0VuZCgpO1xuICAgICAgICAgICAgICAgIH0sIGNoaWxkcmVuOiBbcHJlZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgcmVmOiBwcmVmaXhSZWYsIGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JywgcHJlZml4RWxlQ2xzKSwgY2hpbGRyZW46IHByZWZpeCB9KSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZWxlbWVudCcsICghaXNGb2N1cyAmJiBpc01heFdpZHRoKSA/IGNsYXNzZXMoJ2VsZW1lbnQtbWF4JykgOiAnJyksIGNoaWxkcmVuOiBfanN4KFwiaW5wdXRcIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGlucHV0UmVmLCB2YWx1ZTogZm9ybWF0dGVkVmFsdWUsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgcmVhZE9ubHk6IHJlYWRPbmx5LCBkaXNhYmxlZDogZGlzYWJsZWQsIHN0eWxlOiB7ICctLWlucHV0LXdpZHRoJzogYCR7X3dpZHRofXB4YCB9LCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBvblNlbGVjdDogaGFuZGxlU2VsZWN0LCBvbkZvY3VzOiBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNGb2N1cyh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Gb2N1cyA9PT0gbnVsbCB8fCBvbkZvY3VzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZvY3VzKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIG9uQmx1cjogZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzRm9jdXMoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSB9KSkgfSksIGN1cnJlbmN5ICYmIF9qc3goXCJzcGFuXCIsIHsgcmVmOiBjdXJyZW5jeVJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdjdXJyZW5jeScpLCBjaGlsZHJlbjogY3VycmVuY3kgfSksIGxvYWRpbmcgPyBfanN4KFNwaW5uZXIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzdWZmaXgtbG9hZGluZycpLCBzdHJva2VXaWR0aDogJzQnIH0pIDogc3VmZml4ID8gX2pzeChcInNwYW5cIiwgeyByZWY6IHN1ZmZpeFJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdzdWZmaXgnLCBzdWZmaXhFbGVDbHMpLCBjaGlsZHJlbjogc3VmZml4IH0pIDogbnVsbCwgX2pzeChcInNwYW5cIiwgeyByZWY6IGZha2VFbGVSZWYsIGNsYXNzTmFtZTogY2xhc3NlcygnZmFrZScpLCBvbkNsaWNrOiBlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCksIGNoaWxkcmVuOiBmb3JtYXR0ZWRWYWx1ZSB9KV0gfSksIChtZXNzYWdlIHx8IGZvb3Rub3RlKSAmJiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZXh0cmEnKSwgY2hpbGRyZW46IFttZXNzYWdlICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ21lc3NhZ2UnLCBtZXNzYWdlQ2xzKSwgY2hpbGRyZW46IG1lc3NhZ2UgfSksIGZvb3Rub3RlICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2Zvb3Rub3RlJywgZm9vdG5vdGVDbHMpLCBjaGlsZHJlbjogZm9vdG5vdGUgfSldIH0pXSB9KTtcbn07XG5leHBvcnQgZGVmYXVsdCBtZW1vKElucHV0QW1vdW50KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
399
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXRBbW91bnQvSW5wdXRBbW91bnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwidXNlTWVtbyIsInVzZVN0YXRlIiwidXNlQ2FsbGJhY2siLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJ1c2VMYXlvdXRFZmZlY3QiLCJCaWdOdW1iZXIiLCJudW1lcmljRm9ybWF0dGVyIiwiU2tlbGV0b24iLCJTcGlubmVyIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwiTUlOX0lOUFVUX1dJRFRIIiwibm9ybWFsaXplTnVtYmVySW5wdXQiLCJ2YWwiLCJyZXBsYWNlIiwiY2FsY1ZhbHVlSW5SYW5nZSIsIm1pbiIsIm1heCIsImlzTmFOIiwiY2FsY1ZhbCIsImJuVmFsIiwibWluQm4iLCJsdCIsIm1heEJuIiwiZ3QiLCJJbnB1dEFtb3VudCIsInByb3BzIiwidmFsdWUiLCJfcHJvcHMkdHlwZSIsInR5cGUiLCJtYXhGcmFjdGlvbkRpZ2l0cyIsImNoaWxkcmVuIiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJmb290bm90ZSIsImZvb3Rub3RlQ2xzIiwiY2xhc3NOYW1lIiwid3JhcHBlckNscyIsImxhYmVsQ2xzIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsIm1lc3NhZ2VDbHMiLCJwcmVmaXhFbGVDbHMiLCJzdWZmaXhFbGVDbHMiLCJpbnZhbGlkIiwibmVnYXRpdmUiLCJyZXF1aXJlZCIsImxvYWRpbmciLCJzdWNjZXNzIiwiZGlzYWJsZWQiLCJyZWFkT25seSIsImxhYmVsIiwicHJlZml4Iiwic3VmZml4IiwiY3VycmVuY3kiLCJtZXNzYWdlIiwib25DaGFuZ2UiLCJvbkJsdXIiLCJvbkZvY3VzIiwicmVzdCIsImNsYXNzZXMiLCJjb25jYXQiLCJpbnB1dFJlZiIsImZha2VFbGVSZWYiLCJwcmVmaXhSZWYiLCJzdWZmaXhSZWYiLCJjdXJyZW5jeVJlZiIsImNvbnRhaW5lclJlZiIsImlucHV0Q2FyZXRQb3NpdGlvblJlZiIsImlnbm9yZVNlbGVjdFJlZiIsIm9uQ2hhbmdlUmVmIiwiX3VzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5IiwiX3ZhbHVlIiwic2V0VmFsdWUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsIl93aWR0aCIsInNldFdpZHRoIiwiX3VzZVN0YXRlNSIsIl91c2VTdGF0ZTYiLCJpc01heFdpZHRoIiwic2V0SXNNYXhXaWR0aCIsIl91c2VTdGF0ZTciLCJfdXNlU3RhdGU4IiwiaXNGb2N1cyIsInNldElzRm9jdXMiLCJmb3JtYXR0ZWRWYWx1ZSIsInRob3VzYW5kU2VwYXJhdG9yIiwiYWxsb3dOZWdhdGl2ZSIsInZhbHVlUmVmIiwic2Nyb2xsVG9FbmQiLCJzdGlja3kiLCJhcmd1bWVudHMiLCJ1bmRlZmluZWQiLCJfYSIsImlucHV0IiwiY3VycmVudCIsImxlbiIsInBvc2l0aW9uIiwic2Nyb2xsTGVmdCIsInNob3VsZFRvRW5kIiwic3RhcnQiLCJzZXRTZWxlY3Rpb25SYW5nZSIsInNjcm9sbFdpZHRoIiwiZm9jdXMiLCJjYWxjQ2FyZXRQb3MiLCJvZmZzZXQiLCJjdXJyUG9zIiwiX2IiLCJfdmFsdWVSZWYkY3VycmVudCIsImZvcm1hdHRlZE5ld1ZhbCIsIm9yaWdpbk9mZnNldCIsInNlbGVjdGlvbkVuZCIsIm9sZFBvc1ZhbCIsInNsaWNlIiwiTWF0aCIsInNwbGl0Iiwiam9pbiIsInBvc1ZhbCIsInJlZHVjZSIsImFjYyIsImNoYXIiLCJpbmQiLCJwdXNoIiwiaGFuZGxlQ2hhbmdlIiwiX2MiLCJfZCIsIl92YWx1ZVJlZiRjdXJyZW50MiIsInRhcmdldCIsImhhc0RlY2ltYWxQb2ludCIsImVuZHNXaXRoIiwiaW5jbHVkZXMiLCJpc1N0YW5kYWxvbmVNaW51cyIsIl92YWwkc3BsaXQiLCJfdmFsJHNwbGl0MiIsImludCIsImRlY2ltYWwiLCJtYXhEZWNpbWFscyIsIk51bWJlciIsInRydW5jYXRlZERlY2ltYWxzIiwiX2Zvcm1hdHRlZFZhbHVlJHNwbGl0IiwiX2Zvcm1hdHRlZFZhbHVlJHNwbGl0MiIsIm9sZEludCIsImRlY2ltYWxzIiwibWF0Y2giLCJibiIsIm5vcm1hbGl6ZWQiLCJ0b0ZpeGVkIiwidHJpbSIsInN0YXJ0c1dpdGgiLCJpc1plcm8iLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsImhhbmRsZVNlbGVjdCIsIl9lIiwiX2YiLCJfZyIsIl9oIiwiX2oiLCJfayIsImNvbnRhaW5lcldpZHRoIiwib2Zmc2V0V2lkdGgiLCJwcmVmaXhXaWR0aCIsInN1ZmZpeFdpZHRoIiwiY3VycmVuY3lXaWR0aCIsImZha2VXaWR0aCIsImdhcFdpZHRoIiwibWF4V2lkdGgiLCJpc01heCIsImFicyIsInplcm8iLCJCaWdJbnQiLCJfc3BsaXQiLCJfc3BsaXQyIiwic3ludGhldGljRXZlbnQiLCJzdHJWYWwiLCJ3aWR0aCIsImhlaWdodCIsInJlZiIsIm9uQ2xpY2siLCJIVE1MSW5wdXRFbGVtZW50IiwiYXNzaWduIiwic3R5bGUiLCJvblNlbGVjdCIsInN0cm9rZVdpZHRoIl0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FB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cyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VNZW1vLCB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgdXNlRWZmZWN0LCB1c2VMYXlvdXRFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBudW1lcmljRm9ybWF0dGVyIH0gZnJvbSAncmVhY3QtbnVtYmVyLWZvcm1hdCc7XG5pbXBvcnQgeyBTa2VsZXRvbiB9IGZyb20gJ3ByaW1lcmVhY3Qvc2tlbGV0b24nO1xuaW1wb3J0IFNwaW5uZXIgZnJvbSAnLi4vU3Bpbm5lcic7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmNvbnN0IE1JTl9JTlBVVF9XSURUSCA9IDMzO1xuY29uc3Qgbm9ybWFsaXplTnVtYmVySW5wdXQgPSAodmFsKSA9PiB2YWxcbiAgICAucmVwbGFjZSgvW1xcdTMwMDJcXHVmZjBlXFx1ZmY2MV0vZywgJy4nKVxuICAgIC5yZXBsYWNlKC9bXFx1RkYwQ10vZywgJywnKTtcbmNvbnN0IGNhbGNWYWx1ZUluUmFuZ2UgPSAodmFsLCBtaW4sIG1heCkgPT4ge1xuICAgIGlmICh2YWwgPT09ICcnIHx8IHZhbCA9PT0gJy0nIHx8IGlzTmFOKCt2YWwpKVxuICAgICAgICByZXR1cm4gdmFsO1xuICAgIGxldCBjYWxjVmFsID0gdmFsO1xuICAgIGNvbnN0IGJuVmFsID0gQmlnTnVtYmVyKHZhbCk7XG4gICAgaWYgKHR5cGVvZiBtaW4gPT09ICdudW1iZXInIHx8IHR5cGVvZiBtaW4gPT09ICdiaWdpbnQnKSB7XG4gICAgICAgIGNvbnN0IG1pbkJuID0gQmlnTnVtYmVyKG1pbik7XG4gICAgICAgIGlmIChiblZhbC5sdChtaW5CbikpIHtcbiAgICAgICAgICAgIGNhbGNWYWwgPSAnJyArIG1pbjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAodHlwZW9mIG1heCA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1heCA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgY29uc3QgbWF4Qm4gPSBCaWdOdW1iZXIobWF4KTtcbiAgICAgICAgaWYgKGJuVmFsLmd0KG1heEJuKSkge1xuICAgICAgICAgICAgY2FsY1ZhbCA9ICcnICsgbWF4O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjYWxjVmFsO1xufTtcbmV4cG9ydCBjb25zdCBJbnB1dEFtb3VudCA9IHByb3BzID0+IHtcbiAgICBjb25zdCB7IHZhbHVlLCB0eXBlID0gJ3ByaW1hcnknLCBtYXhGcmFjdGlvbkRpZ2l0cywgY2hpbGRyZW4sIHBsYWNlaG9sZGVyID0gJzAnLCBtaW4sIG1heCwgXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIHNpemUgPSAnbGFyZ2UnLCBmb290bm90ZSwgZm9vdG5vdGVDbHMsIGNsYXNzTmFtZSwgd3JhcHBlckNscywgbGFiZWxDbHMsIHByZWZpeENscyA9ICdpbnB1dC1hbW91bnQnLCBtZXNzYWdlQ2xzLCBwcmVmaXhFbGVDbHMsIHN1ZmZpeEVsZUNscywgaW52YWxpZCwgbmVnYXRpdmUsIHJlcXVpcmVkLCBsb2FkaW5nLCBzdWNjZXNzLCBkaXNhYmxlZCwgcmVhZE9ubHksIGxhYmVsLCBwcmVmaXgsIHN1ZmZpeCwgY3VycmVuY3ksIG1lc3NhZ2UsIG9uQ2hhbmdlLCBvbkJsdXIsIG9uRm9jdXMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJ2YWx1ZVwiLCBcInR5cGVcIiwgXCJtYXhGcmFjdGlvbkRpZ2l0c1wiLCBcImNoaWxkcmVuXCIsIFwicGxhY2Vob2xkZXJcIiwgXCJtaW5cIiwgXCJtYXhcIiwgXCJzaXplXCIsIFwiZm9vdG5vdGVcIiwgXCJmb290bm90ZUNsc1wiLCBcImNsYXNzTmFtZVwiLCBcIndyYXBwZXJDbHNcIiwgXCJsYWJlbENsc1wiLCBcInByZWZpeENsc1wiLCBcIm1lc3NhZ2VDbHNcIiwgXCJwcmVmaXhFbGVDbHNcIiwgXCJzdWZmaXhFbGVDbHNcIiwgXCJpbnZhbGlkXCIsIFwibmVnYXRpdmVcIiwgXCJyZXF1aXJlZFwiLCBcImxvYWRpbmdcIiwgXCJzdWNjZXNzXCIsIFwiZGlzYWJsZWRcIiwgXCJyZWFkT25seVwiLCBcImxhYmVsXCIsIFwicHJlZml4XCIsIFwic3VmZml4XCIsIFwiY3VycmVuY3lcIiwgXCJtZXNzYWdlXCIsIFwib25DaGFuZ2VcIiwgXCJvbkJsdXJcIiwgXCJvbkZvY3VzXCJdKTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhgJHtwcmVmaXhDbHN9LSR7dHlwZX1gKTtcbiAgICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBmYWtlRWxlUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHByZWZpeFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzdWZmaXhSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgY3VycmVuY3lSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGlucHV0Q2FyZXRQb3NpdGlvblJlZiA9IHVzZVJlZigwKTtcbiAgICBjb25zdCBpZ25vcmVTZWxlY3RSZWYgPSB1c2VSZWYoZmFsc2UpO1xuICAgIGNvbnN0IG9uQ2hhbmdlUmVmID0gdXNlUmVmKG9uQ2hhbmdlKTtcbiAgICBjb25zdCBbX3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbX3dpZHRoLCBzZXRXaWR0aF0gPSB1c2VTdGF0ZShNSU5fSU5QVVRfV0lEVEgpO1xuICAgIGNvbnN0IFtpc01heFdpZHRoLCBzZXRJc01heFdpZHRoXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbaXNGb2N1cywgc2V0SXNGb2N1c10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIG51bWVyaWNGb3JtYXR0ZXIoJycgKyAoX3ZhbHVlID09IG51bGwgPyAnJyA6IF92YWx1ZSksIHtcbiAgICAgICAgICAgIHRob3VzYW5kU2VwYXJhdG9yOiB0cnVlLFxuICAgICAgICAgICAgYWxsb3dOZWdhdGl2ZTogbmVnYXRpdmUsXG4gICAgICAgIH0pO1xuICAgIH0sIFtfdmFsdWUsIG5lZ2F0aXZlXSk7XG4gICAgY29uc3QgdmFsdWVSZWYgPSB1c2VSZWYoe1xuICAgICAgICB2YWx1ZSxcbiAgICAgICAgX3ZhbHVlLFxuICAgICAgICBmb3JtYXR0ZWRWYWx1ZSxcbiAgICAgICAgbWluLFxuICAgICAgICBtYXgsXG4gICAgICAgIG5lZ2F0aXZlLFxuICAgICAgICBtYXhGcmFjdGlvbkRpZ2l0cyxcbiAgICB9KTtcbiAgICBjb25zdCBzY3JvbGxUb0VuZCA9IHVzZUNhbGxiYWNrKChzdGlja3kgPSBmYWxzZSkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gaW5wdXRSZWYuY3VycmVudDtcbiAgICAgICAgaWYgKCFpbnB1dClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbGVuID0gKF9hID0gaW5wdXQudmFsdWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uID0gaW5wdXQuc2Nyb2xsTGVmdDtcbiAgICAgICAgY29uc3Qgc2hvdWxkVG9FbmQgPSAhc3RpY2t5O1xuICAgICAgICBjb25zdCBzdGFydCA9IHNob3VsZFRvRW5kID8gbGVuIDogaW5wdXRDYXJldFBvc2l0aW9uUmVmLmN1cnJlbnQ7XG4gICAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKHN0YXJ0LCBzdGFydCk7XG4gICAgICAgIGlucHV0LnNjcm9sbExlZnQgPSBzaG91bGRUb0VuZCA/IGlucHV0LnNjcm9sbFdpZHRoIDogcG9zaXRpb247XG4gICAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGNhbGNDYXJldFBvcyA9IHVzZUNhbGxiYWNrKCh2YWwsIG9mZnNldCA9IDAsIGN1cnJQb3MpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKGlucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IHsgX3ZhbHVlLCBuZWdhdGl2ZSwgZm9ybWF0dGVkVmFsdWUgfSA9IHZhbHVlUmVmLmN1cnJlbnQ7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWROZXdWYWwgPSBudW1lcmljRm9ybWF0dGVyKHZhbCwge1xuICAgICAgICAgICAgICAgIHRob3VzYW5kU2VwYXJhdG9yOiB0cnVlLFxuICAgICAgICAgICAgICAgIGFsbG93TmVnYXRpdmU6IG5lZ2F0aXZlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBvcmlnaW5PZmZzZXQgPSB2YWwubGVuZ3RoIC0gKChfYSA9IF92YWx1ZSA9PT0gbnVsbCB8fCBfdmFsdWUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF92YWx1ZS5sZW5ndGgpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDApO1xuICAgICAgICAgICAgbGV0IHBvc2l0aW9uID0gKF9iID0gY3VyclBvcyAhPT0gbnVsbCAmJiBjdXJyUG9zICE9PSB2b2lkIDAgPyBjdXJyUG9zIDogaW5wdXRSZWYuY3VycmVudC5zZWxlY3Rpb25FbmQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDA7XG4gICAgICAgICAgICBjb25zdCBvbGRQb3NWYWwgPSBmb3JtYXR0ZWRWYWx1ZS5zbGljZSgwLCBNYXRoLm1heChwb3NpdGlvbiwgMCkpO1xuICAgICAgICAgICAgcG9zaXRpb24gPSBvbGRQb3NWYWwuc3BsaXQoJywnKS5qb2luKCcnKS5sZW5ndGg7XG4gICAgICAgICAgICBjb25zdCBwb3NWYWwgPSB2YWwuc2xpY2UoMCwgKHBvc2l0aW9uICsgb3JpZ2luT2Zmc2V0KSk7XG4gICAgICAgICAgICBmb3JtYXR0ZWROZXdWYWwuc3BsaXQoJycpLnJlZHVjZSgoYWNjLCBjaGFyLCBpbmQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY2hhciA9PT0gJywnKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgYWNjLnB1c2goY2hhcik7XG4gICAgICAgICAgICAgICAgaWYgKGFjYy5qb2luKCcnKSA9PT0gcG9zVmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gaW5kICsgMTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH0sIFtdKTtcbiAgICAgICAgICAgIGlucHV0Q2FyZXRQb3NpdGlvblJlZi5jdXJyZW50ID0gcG9zaXRpb24gKyBvZmZzZXQ7XG4gICAgICAgIH1cbiAgICB9LCBbXSk7XG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gdXNlQ2FsbGJhY2soKGUpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBpZiAoZGlzYWJsZWQgfHwgcmVhZE9ubHkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IHsgdmFsdWUsIF92YWx1ZSwgZm9ybWF0dGVkVmFsdWUsIG1pbiwgbWF4LCBuZWdhdGl2ZSwgbWF4RnJhY3Rpb25EaWdpdHMgfSA9IHZhbHVlUmVmLmN1cnJlbnQ7XG4gICAgICAgIGxldCB2YWwgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgaWYgKHZhbCAhPSBudWxsKVxuICAgICAgICAgICAgdmFsID0gbm9ybWFsaXplTnVtYmVySW5wdXQodmFsKS5zcGxpdCgnLCcpLmpvaW4oJycpO1xuICAgICAgICBjb25zdCBoYXNEZWNpbWFsUG9pbnQgPSAhIXZhbCAmJiB2YWwuZW5kc1dpdGgoJy4nKTtcbiAgICAgICAgaWYgKGhhc0RlY2ltYWxQb2ludClcbiAgICAgICAgICAgIHZhbCA9IHZhbC5zbGljZSgwLCAtMSk7XG4gICAgICAgIGlmICghbmVnYXRpdmUgJiYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHZhbC5pbmNsdWRlcygnLScpKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgaXNTdGFuZGFsb25lTWludXMgPSBuZWdhdGl2ZSAmJiB2YWwgPT09ICctJztcbiAgICAgICAgaWYgKCFpc1N0YW5kYWxvbmVNaW51cyAmJiBpc05hTigrdmFsKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKHZhbCA9PT0gX3ZhbHVlICYmICFoYXNEZWNpbWFsUG9pbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2YgbWF4RnJhY3Rpb25EaWdpdHMgPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXhGcmFjdGlvbkRpZ2l0cyA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgICAgIGNvbnN0IFtpbnQsIGRlY2ltYWxdID0gdmFsLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICBjb25zdCBtYXhEZWNpbWFscyA9IE51bWJlcihtYXhGcmFjdGlvbkRpZ2l0cyk7XG4gICAgICAgICAgICBpZiAoZGVjaW1hbCAhPSBudWxsICYmIGRlY2ltYWwubGVuZ3RoID4gbWF4RGVjaW1hbHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0cnVuY2F0ZWREZWNpbWFscyA9IGRlY2ltYWwuc2xpY2UoMCwgbWF4RGVjaW1hbHMpO1xuICAgICAgICAgICAgICAgIGNvbnN0IFtvbGRJbnQsXSA9IGZvcm1hdHRlZFZhbHVlLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICAgICAgaWYgKG9sZEludC5zcGxpdCgnLCcpLmpvaW4oJycpID09IGludClcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIHZhbCA9IGAke2ludH0uJHt0cnVuY2F0ZWREZWNpbWFsc31gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG1pbiA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1pbiA9PT0gJ2JpZ2ludCcpIHx8ICh0eXBlb2YgbWF4ID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWF4ID09PSAnYmlnaW50JykpIHtcbiAgICAgICAgICAgIHZhbCA9IGNhbGNWYWx1ZUluUmFuZ2UodmFsLCBtaW4sIG1heCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbCAhPT0gJycpIHtcbiAgICAgICAgICAgIGlmIChpc1N0YW5kYWxvbmVNaW51cykge1xuICAgICAgICAgICAgICAgIHZhbCA9ICctJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IGRlY2ltYWxzID0gKF9jID0gKF9iID0gKF9hID0gdmFsLm1hdGNoKC9cXC4oXFxkKykkLykpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVsxXSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmxlbmd0aCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMDtcbiAgICAgICAgICAgICAgICBjb25zdCBibiA9IEJpZ051bWJlcih2YWwpO1xuICAgICAgICAgICAgICAgIGxldCBub3JtYWxpemVkID0gYm4udG9GaXhlZChkZWNpbWFscyk7XG4gICAgICAgICAgICAgICAgaWYgKG5lZ2F0aXZlICYmIHZhbC50cmltKCkuc3RhcnRzV2l0aCgnLScpICYmIGJuLmlzWmVybygpKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vcm1hbGl6ZWQgPSBub3JtYWxpemVkLnN0YXJ0c1dpdGgoJy0nKSA/IG5vcm1hbGl6ZWQgOiBgLSR7bm9ybWFsaXplZH1gO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YWwgPSBgJHtub3JtYWxpemVkfSR7aGFzRGVjaW1hbFBvaW50ID8gJy4nIDogJyd9YC50cmltKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHNldFZhbHVlKHZhbCA9PT0gJycgPyBudWxsIDogdmFsKTtcbiAgICAgICAgICAgIGNhbGNDYXJldFBvcyh2YWwsIGhhc0RlY2ltYWxQb2ludCA/IDIgOiAwLCBNYXRoLm1heChpbnB1dENhcmV0UG9zaXRpb25SZWYuY3VycmVudCwgMCkpO1xuICAgICAgICAgICAgaWdub3JlU2VsZWN0UmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgICAoX2QgPSBvbkNoYW5nZVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2QuY2FsbChvbkNoYW5nZVJlZiwgZSwgdmFsKTtcbiAgICB9LCBbZGlzYWJsZWQsIHJlYWRPbmx5XSk7XG4gICAgY29uc3QgaGFuZGxlU2VsZWN0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGlmIChpZ25vcmVTZWxlY3RSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgaWdub3JlU2VsZWN0UmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyUG9zID0gKF9hID0gaW5wdXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLnNlbGVjdGlvbkVuZDtcbiAgICAgICAgaWYgKHR5cGVvZiBjdXJyUG9zID09PSAnbnVtYmVyJylcbiAgICAgICAgICAgIGlucHV0Q2FyZXRQb3NpdGlvblJlZi5jdXJyZW50ID0gY3VyclBvcztcbiAgICB9LCBbXSk7XG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZSwgX2YsIF9nLCBfaCwgX2osIF9rO1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IChfYiA9IChfYSA9IGNvbnRhaW5lclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IE1JTl9JTlBVVF9XSURUSDtcbiAgICAgICAgY29uc3QgcHJlZml4V2lkdGggPSAoX2QgPSAoX2MgPSBwcmVmaXhSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiAwO1xuICAgICAgICBjb25zdCBzdWZmaXhXaWR0aCA9IChfZiA9IChfZSA9IHN1ZmZpeFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Uub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9mICE9PSB2b2lkIDAgPyBfZiA6IDA7XG4gICAgICAgIGNvbnN0IGN1cnJlbmN5V2lkdGggPSAoX2ggPSAoX2cgPSBjdXJyZW5jeVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2cub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6IDA7XG4gICAgICAgIGNvbnN0IGZha2VXaWR0aCA9IChfayA9IChfaiA9IGZha2VFbGVSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2ogPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9qLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfayAhPT0gdm9pZCAwID8gX2sgOiAwO1xuICAgICAgICBjb25zdCBnYXBXaWR0aCA9IHByZWZpeFdpZHRoICYmIHN1ZmZpeFdpZHRoICYmIGN1cnJlbmN5V2lkdGhcbiAgICAgICAgICAgID8gMjRcbiAgICAgICAgICAgIDogKHByZWZpeFdpZHRoICYmIHN1ZmZpeFdpZHRoKSB8fCAocHJlZml4V2lkdGggJiYgY3VycmVuY3lXaWR0aCkgfHwgKHN1ZmZpeFdpZHRoICYmIGN1cnJlbmN5V2lkdGgpXG4gICAgICAgICAgICAgICAgPyAxNlxuICAgICAgICAgICAgICAgIDogcHJlZml4V2lkdGggfHwgc3VmZml4V2lkdGggfHwgY3VycmVuY3lXaWR0aFxuICAgICAgICAgICAgICAgICAgICA/IDhcbiAgICAgICAgICAgICAgICAgICAgOiAwO1xuICAgICAgICBjb25zdCBtYXhXaWR0aCA9IGNvbnRhaW5lcldpZHRoIC0gcHJlZml4V2lkdGggLSBzdWZmaXhXaWR0aCAtIGN1cnJlbmN5V2lkdGggLSBnYXBXaWR0aDtcbiAgICAgICAgY29uc3QgaXNNYXggPSBmYWtlV2lkdGggPj0gbWF4V2lkdGg7XG4gICAgICAgIHNldFdpZHRoKE1hdGgubWluKG1heFdpZHRoLCBNYXRoLm1heChmYWtlV2lkdGgsIE1JTl9JTlBVVF9XSURUSCkpKTtcbiAgICAgICAgc2V0SXNNYXhXaWR0aChpc01heCk7XG4gICAgICAgIGlmIChpc0ZvY3VzKVxuICAgICAgICAgICAgc2Nyb2xsVG9FbmQodHJ1ZSk7XG4gICAgfSwgW192YWx1ZSwgcHJlZml4LCBzdWZmaXgsIGN1cnJlbmN5LCBpc0ZvY3VzXSk7XG4gICAgdXNlTGF5b3V0RWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kO1xuICAgICAgICBsZXQgdmFsID0gdHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJyA/IF92YWx1ZSA6IHZhbHVlO1xuICAgICAgICBsZXQgaGFzRGVjaW1hbFBvaW50ID0gZmFsc2U7XG4gICAgICAgIGxldCBpc1N0YW5kYWxvbmVNaW51cyA9IGZhbHNlO1xuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICh2YWwgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbCA9IG5vcm1hbGl6ZU51bWJlcklucHV0KHZhbCkuc3BsaXQoJywnKS5qb2luKCcnKTtcbiAgICAgICAgICAgICAgICBoYXNEZWNpbWFsUG9pbnQgPSAhIXZhbCAmJiB2YWwuZW5kc1dpdGgoJy4nKTtcbiAgICAgICAgICAgICAgICBpZiAoaGFzRGVjaW1hbFBvaW50KVxuICAgICAgICAgICAgICAgICAgICB2YWwgPSB2YWwuc2xpY2UoMCwgLTEpO1xuICAgICAgICAgICAgICAgIGlmICghbmVnYXRpdmUpXG4gICAgICAgICAgICAgICAgICAgIHZhbCA9IHZhbC5yZXBsYWNlKC8tL2csICcnKTtcbiAgICAgICAgICAgICAgICBpc1N0YW5kYWxvbmVNaW51cyA9ICEhbmVnYXRpdmUgJiYgdmFsID09PSAnLSc7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1N0YW5kYWxvbmVNaW51cyAmJiBpc05hTigrdmFsKSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGVsc2UgaWYgKHZhbCAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsICE9PSAnbnVtYmVyJyAmJiB0eXBlb2YgdmFsICE9PSAnYmlnaW50JylcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKCFuZWdhdGl2ZSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gTWF0aC5hYnModmFsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWwgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgemVybyA9IEJpZ0ludCgwKTtcbiAgICAgICAgICAgICAgICB2YWwgPSB2YWwgPCB6ZXJvID8gLXZhbCA6IHZhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSAmJlxuICAgICAgICAgICAgKHR5cGVvZiBtYXhGcmFjdGlvbkRpZ2l0cyA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1heEZyYWN0aW9uRGlnaXRzID09PSAnYmlnaW50JykpIHtcbiAgICAgICAgICAgIGNvbnN0IFtpbnQsIGRlY2ltYWxdID0gKCcnICsgdmFsKS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgY29uc3QgbWF4RGVjaW1hbHMgPSBOdW1iZXIobWF4RnJhY3Rpb25EaWdpdHMpO1xuICAgICAgICAgICAgaWYgKGRlY2ltYWwgIT0gbnVsbCAmJiBkZWNpbWFsLmxlbmd0aCA+IG1heERlY2ltYWxzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdHJ1bmNhdGVkRGVjaW1hbHMgPSBkZWNpbWFsLnNsaWNlKDAsIG1heERlY2ltYWxzKTtcbiAgICAgICAgICAgICAgICB2YWwgPSBgJHtpbnR9LiR7dHJ1bmNhdGVkRGVjaW1hbHN9YDtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICBzZXRWYWx1ZSh2YWwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3ludGhldGljRXZlbnQgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ6IGlucHV0UmVmLmN1cnJlbnQsXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIChfYSA9IG9uQ2hhbmdlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKG9uQ2hhbmdlUmVmLCBzeW50aGV0aWNFdmVudCwgdmFsICE9PSBudWxsICYmIHZhbCAhPT0gdm9pZCAwID8gdmFsIDogJycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWwgPT09ICdudW1iZXInIHx8IHR5cGVvZiB2YWwgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICB2YWwgPSBjYWxjVmFsdWVJblJhbmdlKCcnICsgdmFsLCBtaW4sIG1heCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHZhbCA9PT0gJycgfHwgdmFsID09IG51bGwpIHtcbiAgICAgICAgICAgIHNldFZhbHVlKG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgaWYgKGlzU3RhbmRhbG9uZU1pbnVzKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gJy0nO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RyVmFsID0gJycgKyB2YWw7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVjaW1hbHMgPSAoX2QgPSAoX2MgPSAoX2IgPSBzdHJWYWwubWF0Y2goL1xcLihcXGQrKSQvKSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iWzFdKSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MubGVuZ3RoKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJuID0gQmlnTnVtYmVyKHN0clZhbCk7XG4gICAgICAgICAgICAgICAgbGV0IG5vcm1hbGl6ZWQgPSBibi50b0ZpeGVkKGRlY2ltYWxzKTtcbiAgICAgICAgICAgICAgICBpZiAobmVnYXRpdmUgJiYgc3RyVmFsLnRyaW0oKS5zdGFydHNXaXRoKCctJykgJiYgYm4uaXNaZXJvKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZWQuc3RhcnRzV2l0aCgnLScpID8gbm9ybWFsaXplZCA6IGAtJHtub3JtYWxpemVkfWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHZhbCA9IGAke25vcm1hbGl6ZWR9JHtoYXNEZWNpbWFsUG9pbnQgPyAnLicgOiAnJ31gLnRyaW0oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFZhbHVlKHZhbCk7XG4gICAgICAgIH1cbiAgICAgICAgY2FsY0NhcmV0UG9zKHZhbCAhPT0gbnVsbCAmJiB2YWwgIT09IHZvaWQgMCA/IHZhbCA6ICcnLCBoYXNEZWNpbWFsUG9pbnQgPyAyIDogMCwgTWF0aC5tYXgoaW5wdXRDYXJldFBvc2l0aW9uUmVmLmN1cnJlbnQsIDApKTtcbiAgICAgICAgaWdub3JlU2VsZWN0UmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgIH0sIFt2YWx1ZSwgbWF4RnJhY3Rpb25EaWdpdHMsIG1pbiwgbWF4LCBuZWdhdGl2ZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIG9uQ2hhbmdlUmVmLmN1cnJlbnQgPSBvbkNoYW5nZTtcbiAgICAgICAgdmFsdWVSZWYuY3VycmVudCA9IHtcbiAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgX3ZhbHVlLFxuICAgICAgICAgICAgZm9ybWF0dGVkVmFsdWUsXG4gICAgICAgICAgICBtaW4sXG4gICAgICAgICAgICBtYXgsXG4gICAgICAgICAgICBuZWdhdGl2ZSxcbiAgICAgICAgICAgIG1heEZyYWN0aW9uRGlnaXRzXG4gICAgICAgIH07XG4gICAgfSwgW192YWx1ZSwgdmFsdWUsIGZvcm1hdHRlZFZhbHVlLCBtaW4sIG1heCwgbmVnYXRpdmUsIG1heEZyYWN0aW9uRGlnaXRzLCBvbkNoYW5nZV0pO1xuICAgIHJldHVybiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnd3JhcHBlcicsIGpvaW5DbHMod3JhcHBlckNscywgY2xhc3NlcyhzaXplKSwgaW52YWxpZCAmJiBjbGFzc2VzKCdpbnZhbGlkJyksIHN1Y2Nlc3MgJiYgY2xhc3Nlcygnc3VjY2VzcycpLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCdkaXNhYmxlZCcpLCByZWFkT25seSAmJiBjbGFzc2VzKCdyZWFkb25seScpLCBfdmFsdWUgJiYgY2xhc3NlcygnZmlsbGVkJykpKSwgY2hpbGRyZW46IFtsYWJlbFxuICAgICAgICAgICAgICAgID8gbG9hZGluZ1xuICAgICAgICAgICAgICAgICAgICA/IF9qc3goU2tlbGV0b24sIHsgd2lkdGg6ICc3MnB4JywgaGVpZ2h0OiAnMThweCcsIGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwtbG9hZGluZycpIH0pXG4gICAgICAgICAgICAgICAgICAgIDogX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsJywgam9pbkNscyhyZXF1aXJlZCAmJiBjbGFzc2VzKCdsYWJlbC1yZXF1aXJlZCcpLCBsYWJlbENscykpLCBjaGlsZHJlbjogbGFiZWwgfSlcbiAgICAgICAgICAgICAgICA6IG51bGwsIF9qc3hzKFwiZGl2XCIsIHsgcmVmOiBjb250YWluZXJSZWYsIGNsYXNzTmFtZTogY2xhc3Nlcyh2b2lkIDAsIGpvaW5DbHMoY2xhc3NOYW1lLCBpc0ZvY3VzICYmIGNsYXNzZXMoJ2ZvY3VzJykpKSwgb25DbGljazogKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAoX2EgPSBpbnB1dFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWF4V2lkdGgpXG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxUb0VuZCgpO1xuICAgICAgICAgICAgICAgIH0sIGNoaWxkcmVuOiBbcHJlZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgcmVmOiBwcmVmaXhSZWYsIGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JywgcHJlZml4RWxlQ2xzKSwgY2hpbGRyZW46IHByZWZpeCB9KSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZWxlbWVudCcsICghaXNGb2N1cyAmJiBpc01heFdpZHRoKSA/IGNsYXNzZXMoJ2VsZW1lbnQtbWF4JykgOiAnJyksIGNoaWxkcmVuOiBfanN4KFwiaW5wdXRcIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGlucHV0UmVmLCB2YWx1ZTogZm9ybWF0dGVkVmFsdWUsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgcmVhZE9ubHk6IHJlYWRPbmx5LCBkaXNhYmxlZDogZGlzYWJsZWQsIHN0eWxlOiB7ICctLWlucHV0LXdpZHRoJzogYCR7X3dpZHRofXB4YCB9LCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBvblNlbGVjdDogaGFuZGxlU2VsZWN0LCBvbkZvY3VzOiBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNGb2N1cyh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Gb2N1cyA9PT0gbnVsbCB8fCBvbkZvY3VzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkZvY3VzKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIG9uQmx1cjogZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzRm9jdXMoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSB9KSkgfSksIGN1cnJlbmN5ICYmIF9qc3goXCJzcGFuXCIsIHsgcmVmOiBjdXJyZW5jeVJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdjdXJyZW5jeScpLCBjaGlsZHJlbjogY3VycmVuY3kgfSksIGxvYWRpbmcgPyBfanN4KFNwaW5uZXIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzdWZmaXgtbG9hZGluZycpLCBzdHJva2VXaWR0aDogJzQnIH0pIDogc3VmZml4ID8gX2pzeChcInNwYW5cIiwgeyByZWY6IHN1ZmZpeFJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdzdWZmaXgnLCBzdWZmaXhFbGVDbHMpLCBjaGlsZHJlbjogc3VmZml4IH0pIDogbnVsbCwgX2pzeChcInNwYW5cIiwgeyByZWY6IGZha2VFbGVSZWYsIGNsYXNzTmFtZTogY2xhc3NlcygnZmFrZScpLCBvbkNsaWNrOiBlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCksIGNoaWxkcmVuOiBmb3JtYXR0ZWRWYWx1ZSB9KV0gfSksIChtZXNzYWdlIHx8IGZvb3Rub3RlKSAmJiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZXh0cmEnKSwgY2hpbGRyZW46IFttZXNzYWdlICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ21lc3NhZ2UnLCBtZXNzYWdlQ2xzKSwgY2hpbGRyZW46IG1lc3NhZ2UgfSksIGZvb3Rub3RlICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2Zvb3Rub3RlJywgZm9vdG5vdGVDbHMpLCBjaGlsZHJlbjogZm9vdG5vdGUgfSldIH0pXSB9KTtcbn07XG5leHBvcnQgZGVmYXVsdCBtZW1vKElucHV0QW1vdW50KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=