@1money/react-ui 1.14.0-alpha.6 → 1.14.0-alpha.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -298,10 +298,12 @@ export var InputAmount = function InputAmount(props) {
298
298
  '--input-width': "".concat(_width, "px")
299
299
  },
300
300
  onChange: handleChange,
301
- // onSelect={() => {
302
- // const pos = inputRef.current?.selectionStart ?? 0;
303
- // inputCaretPositionRef.current = pos;
304
- // }}
301
+ onSelect: function onSelect() {
302
+ var _a, _b;
303
+ var pos = (_b = (_a = inputRef.current) === null || _a === void 0 ? void 0 : _a.selectionStart) !== null && _b !== void 0 ? _b : 0;
304
+ console.info('onSelect', pos);
305
+ inputCaretPositionRef.current = pos;
306
+ },
305
307
  onFocus: function onFocus(e) {
306
308
  setIsFocus(true);
307
309
  _onFocus === null || _onFocus === void 0 ? void 0 : _onFocus(e);
@@ -346,4 +348,4 @@ export var InputAmount = function InputAmount(props) {
346
348
  });
347
349
  };
348
350
  export default /*#__PURE__*/memo(InputAmount);
349
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXRBbW91bnQvSW5wdXRBbW91bnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwidXNlTWVtbyIsInVzZVN0YXRlIiwidXNlQ2FsbGJhY2siLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJCaWdOdW1iZXIiLCJudW1lcmljRm9ybWF0dGVyIiwiU2tlbGV0b24iLCJTcGlubmVyIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwiTUlOX0lOUFVUX1dJRFRIIiwibm9ybWFsaXplTnVtYmVySW5wdXQiLCJ2YWwiLCJyZXBsYWNlIiwiY2FsY1ZhbHVlSW5SYW5nZSIsIm1pbiIsIm1heCIsImlzTmFOIiwiY2FsY1ZhbCIsImJuVmFsIiwibWluQm4iLCJsdCIsIm1heEJuIiwiZ3QiLCJJbnB1dEFtb3VudCIsInByb3BzIiwidmFsdWUiLCJfcHJvcHMkdHlwZSIsInR5cGUiLCJtYXhGcmFjdGlvbkRpZ2l0cyIsImNoaWxkcmVuIiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJmb290bm90ZSIsImZvb3Rub3RlQ2xzIiwiY2xhc3NOYW1lIiwid3JhcHBlckNscyIsImxhYmVsQ2xzIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsIm1lc3NhZ2VDbHMiLCJpbnZhbGlkIiwibmVnYXRpdmUiLCJyZXF1aXJlZCIsImxvYWRpbmciLCJzdWNjZXNzIiwiZGlzYWJsZWQiLCJyZWFkT25seSIsImxhYmVsIiwicHJlZml4Iiwic3VmZml4IiwiY3VycmVuY3kiLCJtZXNzYWdlIiwib25DaGFuZ2UiLCJvbkJsdXIiLCJvbkZvY3VzIiwicmVzdCIsImNsYXNzZXMiLCJjb25jYXQiLCJpbnB1dFJlZiIsImZha2VFbGVSZWYiLCJwcmVmaXhSZWYiLCJzdWZmaXhSZWYiLCJjdXJyZW5jeVJlZiIsImNvbnRhaW5lclJlZiIsImlucHV0Q2FyZXRQb3NpdGlvblJlZiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsIl92YWx1ZSIsInNldFZhbHVlIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJfd2lkdGgiLCJzZXRXaWR0aCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNNYXhXaWR0aCIsInNldElzTWF4V2lkdGgiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImlzRm9jdXMiLCJzZXRJc0ZvY3VzIiwiZm9ybWF0dGVkVmFsdWUiLCJ0aG91c2FuZFNlcGFyYXRvciIsImFsbG93TmVnYXRpdmUiLCJzY3JvbGxUb0VuZCIsInN0aWNreSIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsIl9hIiwiaW5wdXQiLCJjdXJyZW50IiwibGVuIiwicG9zaXRpb24iLCJzY3JvbGxMZWZ0Iiwic2hvdWxkVG9FbmQiLCJzdGFydCIsInNldFNlbGVjdGlvblJhbmdlIiwic2Nyb2xsV2lkdGgiLCJmb2N1cyIsImhhbmRsZUNoYW5nZSIsIl9iIiwiX2MiLCJfZCIsIl9lIiwiX2YiLCJ0YXJnZXQiLCJzcGxpdCIsImpvaW4iLCJoYXNEZWNpbWFsUG9pbnQiLCJlbmRzV2l0aCIsInNsaWNlIiwiaW5jbHVkZXMiLCJpc1N0YW5kYWxvbmVNaW51cyIsIl92YWwkc3BsaXQiLCJfdmFsJHNwbGl0MiIsImludCIsImRlY2ltYWwiLCJOdW1iZXIiLCJfZm9ybWF0dGVkVmFsdWUkc3BsaXQiLCJfZm9ybWF0dGVkVmFsdWUkc3BsaXQyIiwib2xkRGVjaW1hbCIsImZvcm1hdHRlZE5ld1ZhbCIsImlzQWRkIiwiaWdub3JlT2xkUG9zIiwic2VsZWN0aW9uU3RhcnQiLCJjb25zb2xlIiwiaW5mbyIsIm9sZFBvc1ZhbCIsInBvc1ZhbCIsInJlZHVjZSIsImFjYyIsImNoYXIiLCJpbmQiLCJwdXNoIiwiZGVjaW1hbHMiLCJtYXRjaCIsImJuIiwibm9ybWFsaXplZCIsInRvRml4ZWQiLCJ0cmltIiwic3RhcnRzV2l0aCIsImlzWmVybyIsIl9nIiwiX2giLCJfaiIsIl9rIiwiY29udGFpbmVyV2lkdGgiLCJvZmZzZXRXaWR0aCIsInByZWZpeFdpZHRoIiwic3VmZml4V2lkdGgiLCJjdXJyZW5jeVdpZHRoIiwiZmFrZVdpZHRoIiwiZ2FwV2lkdGgiLCJtYXhXaWR0aCIsImlzTWF4IiwiTWF0aCIsImFicyIsInplcm8iLCJCaWdJbnQiLCJfc3BsaXQiLCJfc3BsaXQyIiwic3RyVmFsIiwid2lkdGgiLCJoZWlnaHQiLCJyZWYiLCJvbkNsaWNrIiwiSFRNTElucHV0RWxlbWVudCIsImFzc2lnbiIsInN0eWxlIiwic3Ryb2tlV2lkdGgiLCJzdG9wUHJvcGFnYXRpb24iXSwibWFwcGluZ3MiOiI7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJ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QUFDLFNBQVMsRUFBRWpCLFVBQVUsQ0FBQztRQUFBWixRQUFBLEVBQUd3QjtNQUFPLENBQUEsQ0FBTyxFQUMxRW5CLFFBQVEsSUFBSXpDLElBQUEsQ0FBQSxLQUFBLEVBQUE7UUFBSzJDLFNBQVMsRUFBRXNCLE9BQU8sQ0FBQyxVQUFVLEVBQUV2QixXQUFXLENBQUM7UUFBQU4sUUFBQSxFQUFHSztNQUFRLENBQUEsQ0FBTztJQUFBLENBQUEsQ0FDM0U7RUFBQSxDQUFBLENBRUo7QUFDUixDQUFDO0FBRUQsNEJBQWV0QyxJQUFJLENBQUMyQixXQUFXLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9JbnB1dEFtb3VudC9JbnB1dEFtb3VudC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VNZW1vLCB1c2VTdGF0ZSwgdXNlQ2FsbGJhY2ssIHVzZVJlZiwgdXNlRWZmZWN0IH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IEJpZ051bWJlciBmcm9tICdiaWdudW1iZXIuanMnO1xuaW1wb3J0IHsgbnVtZXJpY0Zvcm1hdHRlciB9IGZyb20gJ3JlYWN0LW51bWJlci1mb3JtYXQnO1xuaW1wb3J0IHsgU2tlbGV0b24gfSBmcm9tICdwcmltZXJlYWN0L3NrZWxldG9uJztcbmltcG9ydCBTcGlubmVyIGZyb20gJy4uL1NwaW5uZXInO1xuaW1wb3J0IHsgZGVmYXVsdCBhcyBjbGFzc25hbWVzLCBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5jb25zdCBNSU5fSU5QVVRfV0lEVEggPSAzMztcbmNvbnN0IG5vcm1hbGl6ZU51bWJlcklucHV0ID0gKHZhbCkgPT4gdmFsXG4gICAgLnJlcGxhY2UoL1tcXHUzMDAyXFx1ZmYwZVxcdWZmNjFdL2csICcuJylcbiAgICAucmVwbGFjZSgvW1xcdUZGMENdL2csICcsJyk7XG5jb25zdCBjYWxjVmFsdWVJblJhbmdlID0gKHZhbCwgbWluLCBtYXgpID0+IHtcbiAgICBpZiAodmFsID09PSAnJyB8fCB2YWwgPT09ICctJyB8fCBpc05hTigrdmFsKSlcbiAgICAgICAgcmV0dXJuIHZhbDtcbiAgICBsZXQgY2FsY1ZhbCA9IHZhbDtcbiAgICBjb25zdCBiblZhbCA9IEJpZ051bWJlcih2YWwpO1xuICAgIGlmICh0eXBlb2YgbWluID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWluID09PSAnYmlnaW50Jykge1xuICAgICAgICBjb25zdCBtaW5CbiA9IEJpZ051bWJlcihtaW4pO1xuICAgICAgICBpZiAoYm5WYWwubHQobWluQm4pKSB7XG4gICAgICAgICAgICBjYWxjVmFsID0gJycgKyBtaW47XG4gICAgICAgIH1cbiAgICB9XG4gICAgaWYgKHR5cGVvZiBtYXggPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXggPT09ICdiaWdpbnQnKSB7XG4gICAgICAgIGNvbnN0IG1heEJuID0gQmlnTnVtYmVyKG1heCk7XG4gICAgICAgIGlmIChiblZhbC5ndChtYXhCbikpIHtcbiAgICAgICAgICAgIGNhbGNWYWwgPSAnJyArIG1heDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2FsY1ZhbDtcbn07XG5leHBvcnQgY29uc3QgSW5wdXRBbW91bnQgPSBwcm9wcyA9PiB7XG4gICAgY29uc3QgeyB2YWx1ZSwgdHlwZSA9ICdwcmltYXJ5JywgbWF4RnJhY3Rpb25EaWdpdHMsIGNoaWxkcmVuLCBwbGFjZWhvbGRlciA9ICcwJywgbWluLCBtYXgsIFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgICBzaXplID0gJ2xhcmdlJywgZm9vdG5vdGUsIGZvb3Rub3RlQ2xzLCBjbGFzc05hbWUsIHdyYXBwZXJDbHMsIGxhYmVsQ2xzLCBwcmVmaXhDbHMgPSAnaW5wdXQtYW1vdW50JywgbWVzc2FnZUNscywgaW52YWxpZCwgbmVnYXRpdmUsIHJlcXVpcmVkLCBsb2FkaW5nLCBzdWNjZXNzLCBkaXNhYmxlZCwgcmVhZE9ubHksIGxhYmVsLCBwcmVmaXgsIHN1ZmZpeCwgY3VycmVuY3ksIG1lc3NhZ2UsIG9uQ2hhbmdlLCBvbkJsdXIsIG9uRm9jdXMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJ2YWx1ZVwiLCBcInR5cGVcIiwgXCJtYXhGcmFjdGlvbkRpZ2l0c1wiLCBcImNoaWxkcmVuXCIsIFwicGxhY2Vob2xkZXJcIiwgXCJtaW5cIiwgXCJtYXhcIiwgXCJzaXplXCIsIFwiZm9vdG5vdGVcIiwgXCJmb290bm90ZUNsc1wiLCBcImNsYXNzTmFtZVwiLCBcIndyYXBwZXJDbHNcIiwgXCJsYWJlbENsc1wiLCBcInByZWZpeENsc1wiLCBcIm1lc3NhZ2VDbHNcIiwgXCJpbnZhbGlkXCIsIFwibmVnYXRpdmVcIiwgXCJyZXF1aXJlZFwiLCBcImxvYWRpbmdcIiwgXCJzdWNjZXNzXCIsIFwiZGlzYWJsZWRcIiwgXCJyZWFkT25seVwiLCBcImxhYmVsXCIsIFwicHJlZml4XCIsIFwic3VmZml4XCIsIFwiY3VycmVuY3lcIiwgXCJtZXNzYWdlXCIsIFwib25DaGFuZ2VcIiwgXCJvbkJsdXJcIiwgXCJvbkZvY3VzXCJdKTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhgJHtwcmVmaXhDbHN9LSR7dHlwZX1gKTtcbiAgICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBmYWtlRWxlUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHByZWZpeFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBzdWZmaXhSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgY3VycmVuY3lSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgY29udGFpbmVyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGlucHV0Q2FyZXRQb3NpdGlvblJlZiA9IHVzZVJlZigwKTtcbiAgICBjb25zdCBbX3ZhbHVlLCBzZXRWYWx1ZV0gPSB1c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbX3dpZHRoLCBzZXRXaWR0aF0gPSB1c2VTdGF0ZShNSU5fSU5QVVRfV0lEVEgpO1xuICAgIGNvbnN0IFtpc01heFdpZHRoLCBzZXRJc01heFdpZHRoXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbaXNGb2N1cywgc2V0SXNGb2N1c10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgZm9ybWF0dGVkVmFsdWUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIG51bWVyaWNGb3JtYXR0ZXIoJycgKyAoX3ZhbHVlID09IG51bGwgPyAnJyA6IF92YWx1ZSksIHtcbiAgICAgICAgICAgIHRob3VzYW5kU2VwYXJhdG9yOiB0cnVlLFxuICAgICAgICAgICAgYWxsb3dOZWdhdGl2ZTogbmVnYXRpdmUsXG4gICAgICAgIH0pO1xuICAgIH0sIFtfdmFsdWUsIG5lZ2F0aXZlXSk7XG4gICAgY29uc3Qgc2Nyb2xsVG9FbmQgPSB1c2VDYWxsYmFjaygoc3RpY2t5ID0gZmFsc2UpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBjb25zdCBpbnB1dCA9IGlucHV0UmVmLmN1cnJlbnQ7XG4gICAgICAgIGlmICghaW5wdXQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGxlbiA9IChfYSA9IGlucHV0LnZhbHVlKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EubGVuZ3RoO1xuICAgICAgICBjb25zdCBwb3NpdGlvbiA9IGlucHV0LnNjcm9sbExlZnQ7XG4gICAgICAgIGNvbnN0IHNob3VsZFRvRW5kID0gIXN0aWNreTtcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBzaG91bGRUb0VuZCA/IGxlbiA6IGlucHV0Q2FyZXRQb3NpdGlvblJlZi5jdXJyZW50O1xuICAgICAgICBpbnB1dC5zZXRTZWxlY3Rpb25SYW5nZShzdGFydCwgc3RhcnQpO1xuICAgICAgICBpbnB1dC5zY3JvbGxMZWZ0ID0gc2hvdWxkVG9FbmQgPyBpbnB1dC5zY3JvbGxXaWR0aCA6IHBvc2l0aW9uO1xuICAgICAgICBpbnB1dC5mb2N1cygpO1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFjaygoZSkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iLCBfYywgX2QsIF9lLCBfZjtcbiAgICAgICAgaWYgKGRpc2FibGVkIHx8IHJlYWRPbmx5KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBsZXQgdmFsID0gZS50YXJnZXQudmFsdWU7XG4gICAgICAgIGlmICh2YWwgIT0gbnVsbClcbiAgICAgICAgICAgIHZhbCA9IG5vcm1hbGl6ZU51bWJlcklucHV0KHZhbCkuc3BsaXQoJywnKS5qb2luKCcnKTtcbiAgICAgICAgY29uc3QgaGFzRGVjaW1hbFBvaW50ID0gISF2YWwgJiYgdmFsLmVuZHNXaXRoKCcuJyk7XG4gICAgICAgIGlmIChoYXNEZWNpbWFsUG9pbnQpXG4gICAgICAgICAgICB2YWwgPSB2YWwuc2xpY2UoMCwgLTEpO1xuICAgICAgICBpZiAoIW5lZ2F0aXZlICYmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB2b2lkIDAgPyB2b2lkIDAgOiB2YWwuaW5jbHVkZXMoJy0nKSkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGNvbnN0IGlzU3RhbmRhbG9uZU1pbnVzID0gbmVnYXRpdmUgJiYgdmFsID09PSAnLSc7XG4gICAgICAgIGlmICghaXNTdGFuZGFsb25lTWludXMgJiYgaXNOYU4oK3ZhbCkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh2YWwgPT09IF92YWx1ZSAmJiAhaGFzRGVjaW1hbFBvaW50KVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAodHlwZW9mIG1heEZyYWN0aW9uRGlnaXRzID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWF4RnJhY3Rpb25EaWdpdHMgPT09ICdiaWdpbnQnKSB7XG4gICAgICAgICAgICBjb25zdCBbaW50LCBkZWNpbWFsXSA9IHZhbC5zcGxpdCgnLicpO1xuICAgICAgICAgICAgaWYgKGRlY2ltYWwgIT0gbnVsbCAmJiBkZWNpbWFsLmxlbmd0aCA+IE51bWJlcihtYXhGcmFjdGlvbkRpZ2l0cykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBbLCBvbGREZWNpbWFsXSA9IGZvcm1hdHRlZFZhbHVlLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICAgICAgdmFsID0gYCR7aW50fS4ke29sZERlY2ltYWx9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoKHR5cGVvZiBtaW4gPT09ICdudW1iZXInIHx8IHR5cGVvZiBtaW4gPT09ICdiaWdpbnQnKSB8fCAodHlwZW9mIG1heCA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1heCA9PT0gJ2JpZ2ludCcpKSB7XG4gICAgICAgICAgICB2YWwgPSBjYWxjVmFsdWVJblJhbmdlKHZhbCwgbWluLCBtYXgpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWROZXdWYWwgPSBudW1lcmljRm9ybWF0dGVyKHZhbCwge1xuICAgICAgICAgICAgICAgIHRob3VzYW5kU2VwYXJhdG9yOiB0cnVlLFxuICAgICAgICAgICAgICAgIGFsbG93TmVnYXRpdmU6IG5lZ2F0aXZlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25zdCBpc0FkZCA9IHZhbC5sZW5ndGggPiAoKF9hID0gX3ZhbHVlID09PSBudWxsIHx8IF92YWx1ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3ZhbHVlLmxlbmd0aCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMCk7XG4gICAgICAgICAgICBjb25zdCBpZ25vcmVPbGRQb3MgPSBpc0FkZCA/IHZhbC5sZW5ndGggLSAoKF9iID0gX3ZhbHVlID09PSBudWxsIHx8IF92YWx1ZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3ZhbHVlLmxlbmd0aCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMCkgPiAxIDogZmFsc2U7XG4gICAgICAgICAgICBsZXQgcG9zaXRpb24gPSAoX2MgPSBpbnB1dFJlZi5jdXJyZW50LnNlbGVjdGlvblN0YXJ0KSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwO1xuICAgICAgICAgICAgY29uc29sZS5pbmZvKCdwb3NpdGlvbiAtIDEnLCBwb3NpdGlvbik7XG4gICAgICAgICAgICBpZiAoIWlnbm9yZU9sZFBvcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9sZFBvc1ZhbCA9IGZvcm1hdHRlZFZhbHVlLnNsaWNlKDAsIChwb3NpdGlvbiAtIChpc0FkZCA/IDEgOiAtMSkpKTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IG9sZFBvc1ZhbC5zcGxpdCgnLCcpLmpvaW4oJycpLmxlbmd0aCArIChpc0FkZCA/IDEgOiAtMSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5pbmZvKCdwb3NpdGlvbiAtIDInLCBwb3NpdGlvbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBwb3NWYWwgPSB2YWwuc2xpY2UoMCwgcG9zaXRpb24pO1xuICAgICAgICAgICAgZm9ybWF0dGVkTmV3VmFsLnNwbGl0KCcnKS5yZWR1Y2UoKGFjYywgY2hhciwgaW5kKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNoYXIgPT09ICcsJylcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGFjYy5wdXNoKGNoYXIpO1xuICAgICAgICAgICAgICAgIGlmIChhY2Muam9pbignJykgPT09IHBvc1ZhbCkge1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbiA9IGluZCArIDE7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9LCBbXSk7XG4gICAgICAgICAgICBjb25zb2xlLmluZm8oJ3Bvc2l0aW9uIC0gMycsIHBvc2l0aW9uKTtcbiAgICAgICAgICAgIGlucHV0Q2FyZXRQb3NpdGlvblJlZi5jdXJyZW50ID0gcG9zaXRpb24gKyAoaGFzRGVjaW1hbFBvaW50ID8gMiA6IDApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBpZiAodmFsID09PSAnJykge1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKG51bGwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoaXNTdGFuZGFsb25lTWludXMpIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZSgnLScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGVjaW1hbHMgPSAoX2YgPSAoX2UgPSAoX2QgPSB2YWwubWF0Y2goL1xcLihcXGQrKSQvKSkgPT09IG51bGwgfHwgX2QgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9kWzFdKSA9PT0gbnVsbCB8fCBfZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2UubGVuZ3RoKSAhPT0gbnVsbCAmJiBfZiAhPT0gdm9pZCAwID8gX2YgOiAwO1xuICAgICAgICAgICAgICAgIGNvbnN0IGJuID0gQmlnTnVtYmVyKHZhbCk7XG4gICAgICAgICAgICAgICAgbGV0IG5vcm1hbGl6ZWQgPSBibi50b0ZpeGVkKGRlY2ltYWxzKTtcbiAgICAgICAgICAgICAgICBpZiAobmVnYXRpdmUgJiYgdmFsLnRyaW0oKS5zdGFydHNXaXRoKCctJykgJiYgYm4uaXNaZXJvKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZWQuc3RhcnRzV2l0aCgnLScpID8gbm9ybWFsaXplZCA6IGAtJHtub3JtYWxpemVkfWA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHNldFZhbHVlKGAke25vcm1hbGl6ZWR9JHtoYXNEZWNpbWFsUG9pbnQgPyAnLicgOiAnJ31gLnRyaW0oKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgb25DaGFuZ2UgPT09IG51bGwgfHwgb25DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2hhbmdlKGUpO1xuICAgIH0sIFtvbkNoYW5nZSwgX3ZhbHVlLCB2YWx1ZSwgZm9ybWF0dGVkVmFsdWUsIG1heEZyYWN0aW9uRGlnaXRzLCBtaW4sIG1heCwgbmVnYXRpdmUsIGRpc2FibGVkLCByZWFkT25seV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mLCBfZywgX2gsIF9qLCBfaztcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSAoX2IgPSAoX2EgPSBjb250YWluZXJSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBNSU5fSU5QVVRfV0lEVEg7XG4gICAgICAgIGNvbnN0IHByZWZpeFdpZHRoID0gKF9kID0gKF9jID0gcHJlZml4UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2QgIT09IHZvaWQgMCA/IF9kIDogMDtcbiAgICAgICAgY29uc3Qgc3VmZml4V2lkdGggPSAoX2YgPSAoX2UgPSBzdWZmaXhSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9lLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfZiAhPT0gdm9pZCAwID8gX2YgOiAwO1xuICAgICAgICBjb25zdCBjdXJyZW5jeVdpZHRoID0gKF9oID0gKF9nID0gY3VycmVuY3lSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2cgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9nLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfaCAhPT0gdm9pZCAwID8gX2ggOiAwO1xuICAgICAgICBjb25zdCBmYWtlV2lkdGggPSAoX2sgPSAoX2ogPSBmYWtlRWxlUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9qID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfai5vZmZzZXRXaWR0aCkgIT09IG51bGwgJiYgX2sgIT09IHZvaWQgMCA/IF9rIDogMDtcbiAgICAgICAgY29uc3QgZ2FwV2lkdGggPSBwcmVmaXhXaWR0aCAmJiBzdWZmaXhXaWR0aCAmJiBjdXJyZW5jeVdpZHRoXG4gICAgICAgICAgICA/IDI0XG4gICAgICAgICAgICA6IChwcmVmaXhXaWR0aCAmJiBzdWZmaXhXaWR0aCkgfHwgKHByZWZpeFdpZHRoICYmIGN1cnJlbmN5V2lkdGgpIHx8IChzdWZmaXhXaWR0aCAmJiBjdXJyZW5jeVdpZHRoKVxuICAgICAgICAgICAgICAgID8gMTZcbiAgICAgICAgICAgICAgICA6IHByZWZpeFdpZHRoIHx8IHN1ZmZpeFdpZHRoIHx8IGN1cnJlbmN5V2lkdGhcbiAgICAgICAgICAgICAgICAgICAgPyA4XG4gICAgICAgICAgICAgICAgICAgIDogMDtcbiAgICAgICAgY29uc3QgbWF4V2lkdGggPSBjb250YWluZXJXaWR0aCAtIHByZWZpeFdpZHRoIC0gc3VmZml4V2lkdGggLSBjdXJyZW5jeVdpZHRoIC0gZ2FwV2lkdGg7XG4gICAgICAgIGNvbnN0IGlzTWF4ID0gZmFrZVdpZHRoID49IG1heFdpZHRoO1xuICAgICAgICBzZXRXaWR0aChNYXRoLm1pbihtYXhXaWR0aCwgTWF0aC5tYXgoZmFrZVdpZHRoLCBNSU5fSU5QVVRfV0lEVEgpKSk7XG4gICAgICAgIHNldElzTWF4V2lkdGgoaXNNYXgpO1xuICAgICAgICBpZiAoaXNGb2N1cykge1xuICAgICAgICAgICAgY29uc29sZS5pbmZvKCdpbnB1dENhcmV0UG9zaXRpb25SZWY6ICcsIGlucHV0Q2FyZXRQb3NpdGlvblJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgIHNjcm9sbFRvRW5kKHRydWUpO1xuICAgICAgICB9XG4gICAgfSwgW192YWx1ZSwgcHJlZml4LCBzdWZmaXgsIGN1cnJlbmN5LCBpc0ZvY3VzXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgLy8gY2xlYXIgbmVnYXRpdmUgc2lnbiBpZiBub3QgYWxsb3dlZFxuICAgICAgICBpZiAobmVnYXRpdmUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoX3ZhbHVlID09IG51bGwpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChfdmFsdWUgPT09ICctJykge1xuICAgICAgICAgICAgc2V0VmFsdWUobnVsbCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKF92YWx1ZS5zdGFydHNXaXRoKCctJykpXG4gICAgICAgICAgICBzZXRWYWx1ZShfdmFsdWUuc2xpY2UoMSkpO1xuICAgIH0sIFtuZWdhdGl2ZSwgdmFsdWUsIF92YWx1ZV0pO1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jO1xuICAgICAgICBsZXQgdmFsID0gdmFsdWU7XG4gICAgICAgIGxldCBoYXNEZWNpbWFsUG9pbnQgPSBmYWxzZTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZiAodmFsID09PSAnJykge1xuICAgICAgICAgICAgICAgIHZhbCA9IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YWwgPSBub3JtYWxpemVOdW1iZXJJbnB1dCh2YWwpLnNwbGl0KCcsJykuam9pbignJyk7XG4gICAgICAgICAgICAgICAgaGFzRGVjaW1hbFBvaW50ID0gISF2YWwgJiYgdmFsLmVuZHNXaXRoKCcuJyk7XG4gICAgICAgICAgICAgICAgaWYgKGhhc0RlY2ltYWxQb2ludClcbiAgICAgICAgICAgICAgICAgICAgdmFsID0gdmFsLnNsaWNlKDAsIC0xKTtcbiAgICAgICAgICAgICAgICBpZiAoIW5lZ2F0aXZlKVxuICAgICAgICAgICAgICAgICAgICB2YWwgPSB2YWwucmVwbGFjZSgvLS9nLCAnJyk7XG4gICAgICAgICAgICAgICAgaWYgKG5lZ2F0aXZlICYmIHZhbCA9PT0gJy0nKSB7XG4gICAgICAgICAgICAgICAgICAgIHNldFZhbHVlKCctJyk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGlzTmFOKCt2YWwpKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSBpZiAodmFsICE9PSBudWxsICYmIHR5cGVvZiB2YWwgIT09ICdudW1iZXInICYmIHR5cGVvZiB2YWwgIT09ICdiaWdpbnQnKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBpZiAoIW5lZ2F0aXZlKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICB2YWwgPSBNYXRoLmFicyh2YWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAodHlwZW9mIHZhbCA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB6ZXJvID0gQmlnSW50KDApO1xuICAgICAgICAgICAgICAgIHZhbCA9IHZhbCA8IHplcm8gPyAtdmFsIDogdmFsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpICYmICh0eXBlb2YgbWF4RnJhY3Rpb25EaWdpdHMgPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXhGcmFjdGlvbkRpZ2l0cyA9PT0gJ2JpZ2ludCcpKSB7XG4gICAgICAgICAgICBjb25zdCBbaW50LCBkZWNpbWFsXSA9ICgnJyArIHZhbCkuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgIGlmIChkZWNpbWFsICE9IG51bGwgJiYgZGVjaW1hbC5sZW5ndGggPiBOdW1iZXIobWF4RnJhY3Rpb25EaWdpdHMpKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gaW50ICsgJy4nICsgZGVjaW1hbC5zbGljZSgwLCBOdW1iZXIobWF4RnJhY3Rpb25EaWdpdHMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHZhbCA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgICAgIHZhbCA9IGNhbGNWYWx1ZUluUmFuZ2UoJycgKyB2YWwsIG1pbiwgbWF4KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodmFsID09PSAnJyB8fCB2YWwgPT0gbnVsbCkge1xuICAgICAgICAgICAgc2V0VmFsdWUobnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBzdHJWYWwgPSAnJyArIHZhbDtcbiAgICAgICAgICAgIGNvbnN0IGRlY2ltYWxzID0gKF9jID0gKF9iID0gKF9hID0gc3RyVmFsLm1hdGNoKC9cXC4oXFxkKykkLykpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYVsxXSkgPT09IG51bGwgfHwgX2IgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9iLmxlbmd0aCkgIT09IG51bGwgJiYgX2MgIT09IHZvaWQgMCA/IF9jIDogMDtcbiAgICAgICAgICAgIGNvbnN0IGJuID0gQmlnTnVtYmVyKHN0clZhbCk7XG4gICAgICAgICAgICBsZXQgbm9ybWFsaXplZCA9IGJuLnRvRml4ZWQoZGVjaW1hbHMpO1xuICAgICAgICAgICAgaWYgKG5lZ2F0aXZlICYmIHN0clZhbC50cmltKCkuc3RhcnRzV2l0aCgnLScpICYmIGJuLmlzWmVybygpKSB7XG4gICAgICAgICAgICAgICAgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZWQuc3RhcnRzV2l0aCgnLScpID8gbm9ybWFsaXplZCA6IGAtJHtub3JtYWxpemVkfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzZXRWYWx1ZShgJHtub3JtYWxpemVkfSR7aGFzRGVjaW1hbFBvaW50ID8gJy4nIDogJyd9YC50cmltKCkpO1xuICAgICAgICB9XG4gICAgfSwgW3ZhbHVlLCBtYXhGcmFjdGlvbkRpZ2l0cywgbWluLCBtYXgsIG5lZ2F0aXZlXSk7XG4gICAgcmV0dXJuIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCd3cmFwcGVyJywgam9pbkNscyh3cmFwcGVyQ2xzLCBpbnZhbGlkICYmIGNsYXNzZXMoJ2ludmFsaWQnKSwgc3VjY2VzcyAmJiBjbGFzc2VzKCdzdWNjZXNzJyksIGRpc2FibGVkICYmIGNsYXNzZXMoJ2Rpc2FibGVkJyksIHJlYWRPbmx5ICYmIGNsYXNzZXMoJ3JlYWRvbmx5JyksIF92YWx1ZSAmJiBjbGFzc2VzKCdmaWxsZWQnKSkpLCBjaGlsZHJlbjogW2xhYmVsXG4gICAgICAgICAgICAgICAgPyBsb2FkaW5nXG4gICAgICAgICAgICAgICAgICAgID8gX2pzeChTa2VsZXRvbiwgeyB3aWR0aDogJzcycHgnLCBoZWlnaHQ6ICcxOHB4JywgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbC1sb2FkaW5nJykgfSlcbiAgICAgICAgICAgICAgICAgICAgOiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbGFiZWwnLCBqb2luQ2xzKHJlcXVpcmVkICYmIGNsYXNzZXMoJ2xhYmVsLXJlcXVpcmVkJyksIGxhYmVsQ2xzKSksIGNoaWxkcmVuOiBsYWJlbCB9KVxuICAgICAgICAgICAgICAgIDogbnVsbCwgX2pzeHMoXCJkaXZcIiwgeyByZWY6IGNvbnRhaW5lclJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKHZvaWQgMCwgam9pbkNscyhjbGFzc05hbWUsIGlzRm9jdXMgJiYgY2xhc3NlcygnZm9jdXMnKSkpLCBvbkNsaWNrOiAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlLnRhcmdldCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIChfYSA9IGlucHV0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cygpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNNYXhXaWR0aClcbiAgICAgICAgICAgICAgICAgICAgICAgIHNjcm9sbFRvRW5kKCk7XG4gICAgICAgICAgICAgICAgfSwgY2hpbGRyZW46IFtwcmVmaXggJiYgX2pzeChcInNwYW5cIiwgeyByZWY6IHByZWZpeFJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdwcmVmaXgnKSwgY2hpbGRyZW46IHByZWZpeCB9KSwgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZWxlbWVudCcsICghaXNGb2N1cyAmJiBpc01heFdpZHRoKSA/IGNsYXNzZXMoJ2VsZW1lbnQtbWF4JykgOiAnJyksIGNoaWxkcmVuOiBfanN4KFwiaW5wdXRcIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGlucHV0UmVmLCB2YWx1ZTogZm9ybWF0dGVkVmFsdWUsIHBsYWNlaG9sZGVyOiBwbGFjZWhvbGRlciwgcmVhZE9ubHk6IHJlYWRPbmx5LCBkaXNhYmxlZDogZGlzYWJsZWQsIHN0eWxlOiB7ICctLWlucHV0LXdpZHRoJzogYCR7X3dpZHRofXB4YCB9LCBvbkNoYW5nZTogaGFuZGxlQ2hhbmdlLCBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBvblNlbGVjdD17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgY29uc3QgcG9zID0gaW5wdXRSZWYuY3VycmVudD8uc2VsZWN0aW9uU3RhcnQgPz8gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgIGlucHV0Q2FyZXRQb3NpdGlvblJlZi5jdXJyZW50ID0gcG9zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Gb2N1czogZSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldElzRm9jdXModHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRm9jdXMgPT09IG51bGwgfHwgb25Gb2N1cyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25Gb2N1cyhlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBvbkJsdXI6IGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc0ZvY3VzKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gfSkpIH0pLCBjdXJyZW5jeSAmJiBfanN4KFwic3BhblwiLCB7IHJlZjogY3VycmVuY3lSZWYsIGNsYXNzTmFtZTogY2xhc3NlcygnY3VycmVuY3knKSwgY2hpbGRyZW46IGN1cnJlbmN5IH0pLCBsb2FkaW5nID8gX2pzeChTcGlubmVyLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc3VmZml4LWxvYWRpbmcnKSwgc3Ryb2tlV2lkdGg6ICc0JyB9KSA6IHN1ZmZpeCA/IF9qc3goXCJzcGFuXCIsIHsgcmVmOiBzdWZmaXhSZWYsIGNsYXNzTmFtZTogY2xhc3Nlcygnc3VmZml4JyksIGNoaWxkcmVuOiBzdWZmaXggfSkgOiBudWxsLCBfanN4KFwic3BhblwiLCB7IHJlZjogZmFrZUVsZVJlZiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdmYWtlJyksIG9uQ2xpY2s6IGUgPT4gZS5zdG9wUHJvcGFnYXRpb24oKSwgY2hpbGRyZW46IG51bWVyaWNGb3JtYXR0ZXIoJycgKyAoX3ZhbHVlID09IG51bGwgPyAnJyA6IF92YWx1ZSksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aG91c2FuZFNlcGFyYXRvcjogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiBuZWdhdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pIH0pXSB9KSwgKG1lc3NhZ2UgfHwgZm9vdG5vdGUpICYmIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdleHRyYScpLCBjaGlsZHJlbjogW21lc3NhZ2UgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbWVzc2FnZScsIG1lc3NhZ2VDbHMpLCBjaGlsZHJlbjogbWVzc2FnZSB9KSwgZm9vdG5vdGUgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZm9vdG5vdGUnLCBmb290bm90ZUNscyksIGNoaWxkcmVuOiBmb290bm90ZSB9KV0gfSldIH0pO1xufTtcbmV4cG9ydCBkZWZhdWx0IG1lbW8oSW5wdXRBbW91bnQpOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
351
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvSW5wdXRBbW91bnQvSW5wdXRBbW91bnQuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJtZW1vIiwidXNlTWVtbyIsInVzZVN0YXRlIiwidXNlQ2FsbGJhY2siLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJCaWdOdW1iZXIiLCJudW1lcmljRm9ybWF0dGVyIiwiU2tlbGV0b24iLCJTcGlubmVyIiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwiTUlOX0lOUFVUX1dJRFRIIiwibm9ybWFsaXplTnVtYmVySW5wdXQiLCJ2YWwiLCJyZXBsYWNlIiwiY2FsY1ZhbHVlSW5SYW5nZSIsIm1pbiIsIm1heCIsImlzTmFOIiwiY2FsY1ZhbCIsImJuVmFsIiwibWluQm4iLCJsdCIsIm1heEJuIiwiZ3QiLCJJbnB1dEFtb3VudCIsInByb3BzIiwidmFsdWUiLCJfcHJvcHMkdHlwZSIsInR5cGUiLCJtYXhGcmFjdGlvbkRpZ2l0cyIsImNoaWxkcmVuIiwiX3Byb3BzJHBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXIiLCJfcHJvcHMkc2l6ZSIsInNpemUiLCJmb290bm90ZSIsImZvb3Rub3RlQ2xzIiwiY2xhc3NOYW1lIiwid3JhcHBlckNscyIsImxhYmVsQ2xzIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsIm1lc3NhZ2VDbHMiLCJpbnZhbGlkIiwibmVnYXRpdmUiLCJyZXF1aXJlZCIsImxvYWRpbmciLCJzdWNjZXNzIiwiZGlzYWJsZWQiLCJyZWFkT25seSIsImxhYmVsIiwicHJlZml4Iiwic3VmZml4IiwiY3VycmVuY3kiLCJtZXNzYWdlIiwib25DaGFuZ2UiLCJvbkJsdXIiLCJvbkZvY3VzIiwicmVzdCIsImNsYXNzZXMiLCJjb25jYXQiLCJpbnB1dFJlZiIsImZha2VFbGVSZWYiLCJwcmVmaXhSZWYiLCJzdWZmaXhSZWYiLCJjdXJyZW5jeVJlZiIsImNvbnRhaW5lclJlZiIsImlucHV0Q2FyZXRQb3NpdGlvblJlZiIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsIl92YWx1ZSIsInNldFZhbHVlIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJfd2lkdGgiLCJzZXRXaWR0aCIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNNYXhXaWR0aCIsInNldElzTWF4V2lkdGgiLCJfdXNlU3RhdGU3IiwiX3VzZVN0YXRlOCIsImlzRm9jdXMiLCJzZXRJc0ZvY3VzIiwiZm9ybWF0dGVkVmFsdWUiLCJ0aG91c2FuZFNlcGFyYXRvciIsImFsbG93TmVnYXRpdmUiLCJzY3JvbGxUb0VuZCIsInN0aWNreSIsImFyZ3VtZW50cyIsInVuZGVmaW5lZCIsIl9hIiwiaW5wdXQiLCJjdXJyZW50IiwibGVuIiwicG9zaXRpb24iLCJzY3JvbGxMZWZ0Iiwic2hvdWxkVG9FbmQiLCJzdGFydCIsInNldFNlbGVjdGlvblJhbmdlIiwic2Nyb2xsV2lkdGgiLCJmb2N1cyIsImhhbmRsZUNoYW5nZSIsIl9iIiwiX2MiLCJfZCIsIl9lIiwiX2YiLCJ0YXJnZXQiLCJzcGxpdCIsImpvaW4iLCJoYXNEZWNpbWFsUG9pbnQiLCJlbmRzV2l0aCIsInNsaWNlIiwiaW5jbHVkZXMiLCJpc1N0YW5kYWxvbmVNaW51cyIsIl92YWwkc3BsaXQiLCJfdmFsJHNwbGl0MiIsImludCIsImRlY2ltYWwiLCJOdW1iZXIiLCJfZm9ybWF0dGVkVmFsdWUkc3BsaXQiLCJfZm9ybWF0dGVkVmFsdWUkc3BsaXQyIiwib2xkRGVjaW1hbCIsImZvcm1hdHRlZE5ld1ZhbCIsImlzQWRkIiwiaWdub3JlT2xkUG9zIiwic2VsZWN0aW9uU3RhcnQiLCJjb25zb2xlIiwiaW5mbyIsIm9sZFBvc1ZhbCIsInBvc1ZhbCIsInJlZHVjZSIsImFjYyIsImNoYXIiLCJpbmQiLCJwdXNoIiwiZGVjaW1hbHMiLCJtYXRjaCIsImJuIiwibm9ybWFsaXplZCIsInRvRml4ZWQiLCJ0cmltIiwic3RhcnRzV2l0aCIsImlzWmVybyIsIl9nIiwiX2giLCJfaiIsIl9rIiwiY29udGFpbmVyV2lkdGgiLCJvZmZzZXRXaWR0aCIsInByZWZpeFdpZHRoIiwic3VmZml4V2lkdGgiLCJjdXJyZW5jeVdpZHRoIiwiZmFrZVdpZHRoIiwiZ2FwV2lkdGgiLCJtYXhXaWR0aCIsImlzTWF4IiwiTWF0aCIsImFicyIsInplcm8iLCJCaWdJbnQiLCJfc3BsaXQiLCJfc3BsaXQyIiwic3RyVmFsIiwid2lkdGgiLCJoZWlnaHQiLCJyZWYiLCJvbkNsaWNrIiwiSFRNTElucHV0RWxlbWVudCIsImFzc2lnbiIsInN0eWxlIiwib25TZWxlY3QiLCJwb3MiLCJzdHJva2VXaWR0aCIsInN0b3BQcm9wYWdhdGlvbiJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0gsQ0FBQyxDQUFDRyxDQUFDLENBQUM7RUFDZixJQUFJSCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9JLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUssVUFB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bU0sZUFBZSxDQUFBLENBQUU7UUFBQTtRQUFBbEosUUFBQSxFQUcvQjFCLGdCQUFnQixDQUFDLEVBQUUsSUFBSW1FLE1BQU0sSUFBSSxJQUFJLEdBQUcsRUFBRSxHQUFHQSxNQUFNLENBQUMsRUFBRTtVQUNwRGUsaUJBQWlCLEVBQUUsSUFBSTtVQUN2QkMsYUFBYSxFQUFFM0M7UUQ3REgsQ0M4RGI7TUFBQyxDQUFBLENBRUM7SUFBQSxDQUFBLENBQ0gsRUFFSixDQUFDVSxPQUFPLElBQUluQixRQUFRLEtBQUt2QyxLQUFBLENBQUEsS0FBQSxFQUFBO01BQUt5QyxTQUFTLEVBQUVzQixPQUFPLENBQUMsT0FBTyxDQUFDO01BQUE3QixRQUFBLEVBQUEsQ0FDdER3QixPQUFPLElBQUk1RCxJQUFBLENBQUEsS0FBQSxFQUFBO1FBQUsyQyxTQUFTLEVBQUVzQixPQUFPLENBQUMsU0FBUyxFQUFFakIsVUFBVSxDQUFDO1FBQUFaLFFBQUEsRUFBR3dCO01BQU8sQ0FBQSxDQUFPLEVBQzFFbkIsUUFBUSxJQUFJekMsSUFBQSxDQUFBLEtBQUEsRUFBQTtRQUFLMkMsU0FBUyxFQUFFc0IsT0FBTyxDQUFDLFVBQVUsRUFBRXZCLFdBQVcsQ0FBQztRQUFBTixRQUFBLEVBQUdLO01BQVEsQ0FBQSxDQUFPO0lBQUEsQ0FBQSxDQUMzRTtFQUFBLENBQUEsQ0FFSjtBQUNSLENBQUM7QUFFRCw0QkFBZXRDLElBQUksQ0FBQzJCLFdBQVcsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL0lucHV0QW1vdW50L0lucHV0QW1vdW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8sIHVzZU1lbW8sIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlUmVmLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgQmlnTnVtYmVyIGZyb20gJ2JpZ251bWJlci5qcyc7XG5pbXBvcnQgeyBudW1lcmljRm9ybWF0dGVyIH0gZnJvbSAncmVhY3QtbnVtYmVyLWZvcm1hdCc7XG5pbXBvcnQgeyBTa2VsZXRvbiB9IGZyb20gJ3ByaW1lcmVhY3Qvc2tlbGV0b24nO1xuaW1wb3J0IFNwaW5uZXIgZnJvbSAnLi4vU3Bpbm5lcic7XG5pbXBvcnQgeyBkZWZhdWx0IGFzIGNsYXNzbmFtZXMsIGpvaW5DbHMgfSBmcm9tICcuLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmNvbnN0IE1JTl9JTlBVVF9XSURUSCA9IDMzO1xuY29uc3Qgbm9ybWFsaXplTnVtYmVySW5wdXQgPSAodmFsKSA9PiB2YWxcbiAgICAucmVwbGFjZSgvW1xcdTMwMDJcXHVmZjBlXFx1ZmY2MV0vZywgJy4nKVxuICAgIC5yZXBsYWNlKC9bXFx1RkYwQ10vZywgJywnKTtcbmNvbnN0IGNhbGNWYWx1ZUluUmFuZ2UgPSAodmFsLCBtaW4sIG1heCkgPT4ge1xuICAgIGlmICh2YWwgPT09ICcnIHx8IHZhbCA9PT0gJy0nIHx8IGlzTmFOKCt2YWwpKVxuICAgICAgICByZXR1cm4gdmFsO1xuICAgIGxldCBjYWxjVmFsID0gdmFsO1xuICAgIGNvbnN0IGJuVmFsID0gQmlnTnVtYmVyKHZhbCk7XG4gICAgaWYgKHR5cGVvZiBtaW4gPT09ICdudW1iZXInIHx8IHR5cGVvZiBtaW4gPT09ICdiaWdpbnQnKSB7XG4gICAgICAgIGNvbnN0IG1pbkJuID0gQmlnTnVtYmVyKG1pbik7XG4gICAgICAgIGlmIChiblZhbC5sdChtaW5CbikpIHtcbiAgICAgICAgICAgIGNhbGNWYWwgPSAnJyArIG1pbjtcbiAgICAgICAgfVxuICAgIH1cbiAgICBpZiAodHlwZW9mIG1heCA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1heCA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgY29uc3QgbWF4Qm4gPSBCaWdOdW1iZXIobWF4KTtcbiAgICAgICAgaWYgKGJuVmFsLmd0KG1heEJuKSkge1xuICAgICAgICAgICAgY2FsY1ZhbCA9ICcnICsgbWF4O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjYWxjVmFsO1xufTtcbmV4cG9ydCBjb25zdCBJbnB1dEFtb3VudCA9IHByb3BzID0+IHtcbiAgICBjb25zdCB7IHZhbHVlLCB0eXBlID0gJ3ByaW1hcnknLCBtYXhGcmFjdGlvbkRpZ2l0cywgY2hpbGRyZW4sIHBsYWNlaG9sZGVyID0gJzAnLCBtaW4sIG1heCwgXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIHNpemUgPSAnbGFyZ2UnLCBmb290bm90ZSwgZm9vdG5vdGVDbHMsIGNsYXNzTmFtZSwgd3JhcHBlckNscywgbGFiZWxDbHMsIHByZWZpeENscyA9ICdpbnB1dC1hbW91bnQnLCBtZXNzYWdlQ2xzLCBpbnZhbGlkLCBuZWdhdGl2ZSwgcmVxdWlyZWQsIGxvYWRpbmcsIHN1Y2Nlc3MsIGRpc2FibGVkLCByZWFkT25seSwgbGFiZWwsIHByZWZpeCwgc3VmZml4LCBjdXJyZW5jeSwgbWVzc2FnZSwgb25DaGFuZ2UsIG9uQmx1ciwgb25Gb2N1cyB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcInZhbHVlXCIsIFwidHlwZVwiLCBcIm1heEZyYWN0aW9uRGlnaXRzXCIsIFwiY2hpbGRyZW5cIiwgXCJwbGFjZWhvbGRlclwiLCBcIm1pblwiLCBcIm1heFwiLCBcInNpemVcIiwgXCJmb290bm90ZVwiLCBcImZvb3Rub3RlQ2xzXCIsIFwiY2xhc3NOYW1lXCIsIFwid3JhcHBlckNsc1wiLCBcImxhYmVsQ2xzXCIsIFwicHJlZml4Q2xzXCIsIFwibWVzc2FnZUNsc1wiLCBcImludmFsaWRcIiwgXCJuZWdhdGl2ZVwiLCBcInJlcXVpcmVkXCIsIFwibG9hZGluZ1wiLCBcInN1Y2Nlc3NcIiwgXCJkaXNhYmxlZFwiLCBcInJlYWRPbmx5XCIsIFwibGFiZWxcIiwgXCJwcmVmaXhcIiwgXCJzdWZmaXhcIiwgXCJjdXJyZW5jeVwiLCBcIm1lc3NhZ2VcIiwgXCJvbkNoYW5nZVwiLCBcIm9uQmx1clwiLCBcIm9uRm9jdXNcIl0pO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKGAke3ByZWZpeENsc30tJHt0eXBlfWApO1xuICAgIGNvbnN0IGlucHV0UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGZha2VFbGVSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgcHJlZml4UmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHN1ZmZpeFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjdXJyZW5jeVJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBjb250YWluZXJSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgaW5wdXRDYXJldFBvc2l0aW9uUmVmID0gdXNlUmVmKDApO1xuICAgIGNvbnN0IFtfdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtfd2lkdGgsIHNldFdpZHRoXSA9IHVzZVN0YXRlKE1JTl9JTlBVVF9XSURUSCk7XG4gICAgY29uc3QgW2lzTWF4V2lkdGgsIHNldElzTWF4V2lkdGhdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtpc0ZvY3VzLCBzZXRJc0ZvY3VzXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICByZXR1cm4gbnVtZXJpY0Zvcm1hdHRlcignJyArIChfdmFsdWUgPT0gbnVsbCA/ICcnIDogX3ZhbHVlKSwge1xuICAgICAgICAgICAgdGhvdXNhbmRTZXBhcmF0b3I6IHRydWUsXG4gICAgICAgICAgICBhbGxvd05lZ2F0aXZlOiBuZWdhdGl2ZSxcbiAgICAgICAgfSk7XG4gICAgfSwgW192YWx1ZSwgbmVnYXRpdmVdKTtcbiAgICBjb25zdCBzY3JvbGxUb0VuZCA9IHVzZUNhbGxiYWNrKChzdGlja3kgPSBmYWxzZSkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gaW5wdXRSZWYuY3VycmVudDtcbiAgICAgICAgaWYgKCFpbnB1dClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgbGVuID0gKF9hID0gaW5wdXQudmFsdWUpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5sZW5ndGg7XG4gICAgICAgIGNvbnN0IHBvc2l0aW9uID0gaW5wdXQuc2Nyb2xsTGVmdDtcbiAgICAgICAgY29uc3Qgc2hvdWxkVG9FbmQgPSAhc3RpY2t5O1xuICAgICAgICBjb25zdCBzdGFydCA9IHNob3VsZFRvRW5kID8gbGVuIDogaW5wdXRDYXJldFBvc2l0aW9uUmVmLmN1cnJlbnQ7XG4gICAgICAgIGlucHV0LnNldFNlbGVjdGlvblJhbmdlKHN0YXJ0LCBzdGFydCk7XG4gICAgICAgIGlucHV0LnNjcm9sbExlZnQgPSBzaG91bGRUb0VuZCA/IGlucHV0LnNjcm9sbFdpZHRoIDogcG9zaXRpb247XG4gICAgICAgIGlucHV0LmZvY3VzKCk7XG4gICAgfSwgW10pO1xuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKChlKSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2IsIF9jLCBfZCwgX2UsIF9mO1xuICAgICAgICBpZiAoZGlzYWJsZWQgfHwgcmVhZE9ubHkpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGxldCB2YWwgPSBlLnRhcmdldC52YWx1ZTtcbiAgICAgICAgaWYgKHZhbCAhPSBudWxsKVxuICAgICAgICAgICAgdmFsID0gbm9ybWFsaXplTnVtYmVySW5wdXQodmFsKS5zcGxpdCgnLCcpLmpvaW4oJycpO1xuICAgICAgICBjb25zdCBoYXNEZWNpbWFsUG9pbnQgPSAhIXZhbCAmJiB2YWwuZW5kc1dpdGgoJy4nKTtcbiAgICAgICAgaWYgKGhhc0RlY2ltYWxQb2ludClcbiAgICAgICAgICAgIHZhbCA9IHZhbC5zbGljZSgwLCAtMSk7XG4gICAgICAgIGlmICghbmVnYXRpdmUgJiYgKHZhbCA9PT0gbnVsbCB8fCB2YWwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHZhbC5pbmNsdWRlcygnLScpKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3QgaXNTdGFuZGFsb25lTWludXMgPSBuZWdhdGl2ZSAmJiB2YWwgPT09ICctJztcbiAgICAgICAgaWYgKCFpc1N0YW5kYWxvbmVNaW51cyAmJiBpc05hTigrdmFsKSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKHZhbCA9PT0gX3ZhbHVlICYmICFoYXNEZWNpbWFsUG9pbnQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICh0eXBlb2YgbWF4RnJhY3Rpb25EaWdpdHMgPT09ICdudW1iZXInIHx8IHR5cGVvZiBtYXhGcmFjdGlvbkRpZ2l0cyA9PT0gJ2JpZ2ludCcpIHtcbiAgICAgICAgICAgIGNvbnN0IFtpbnQsIGRlY2ltYWxdID0gdmFsLnNwbGl0KCcuJyk7XG4gICAgICAgICAgICBpZiAoZGVjaW1hbCAhPSBudWxsICYmIGRlY2ltYWwubGVuZ3RoID4gTnVtYmVyKG1heEZyYWN0aW9uRGlnaXRzKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IFssIG9sZERlY2ltYWxdID0gZm9ybWF0dGVkVmFsdWUuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgICAgICB2YWwgPSBgJHtpbnR9LiR7b2xkRGVjaW1hbH1gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICgodHlwZW9mIG1pbiA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1pbiA9PT0gJ2JpZ2ludCcpIHx8ICh0eXBlb2YgbWF4ID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgbWF4ID09PSAnYmlnaW50JykpIHtcbiAgICAgICAgICAgIHZhbCA9IGNhbGNWYWx1ZUluUmFuZ2UodmFsLCBtaW4sIG1heCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZE5ld1ZhbCA9IG51bWVyaWNGb3JtYXR0ZXIodmFsLCB7XG4gICAgICAgICAgICAgICAgdGhvdXNhbmRTZXBhcmF0b3I6IHRydWUsXG4gICAgICAgICAgICAgICAgYWxsb3dOZWdhdGl2ZTogbmVnYXRpdmUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGNvbnN0IGlzQWRkID0gdmFsLmxlbmd0aCA+ICgoX2EgPSBfdmFsdWUgPT09IG51bGwgfHwgX3ZhbHVlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdmFsdWUubGVuZ3RoKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiAwKTtcbiAgICAgICAgICAgIGNvbnN0IGlnbm9yZU9sZFBvcyA9IGlzQWRkID8gdmFsLmxlbmd0aCAtICgoX2IgPSBfdmFsdWUgPT09IG51bGwgfHwgX3ZhbHVlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdmFsdWUubGVuZ3RoKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiAwKSA+IDEgOiBmYWxzZTtcbiAgICAgICAgICAgIGxldCBwb3NpdGlvbiA9IChfYyA9IGlucHV0UmVmLmN1cnJlbnQuc2VsZWN0aW9uU3RhcnQpICE9PSBudWxsICYmIF9jICE9PSB2b2lkIDAgPyBfYyA6IDA7XG4gICAgICAgICAgICBjb25zb2xlLmluZm8oJ3Bvc2l0aW9uIC0gMScsIHBvc2l0aW9uKTtcbiAgICAgICAgICAgIGlmICghaWdub3JlT2xkUG9zKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb2xkUG9zVmFsID0gZm9ybWF0dGVkVmFsdWUuc2xpY2UoMCwgKHBvc2l0aW9uIC0gKGlzQWRkID8gMSA6IC0xKSkpO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gb2xkUG9zVmFsLnNwbGl0KCcsJykuam9pbignJykubGVuZ3RoICsgKGlzQWRkID8gMSA6IC0xKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmluZm8oJ3Bvc2l0aW9uIC0gMicsIHBvc2l0aW9uKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IHBvc1ZhbCA9IHZhbC5zbGljZSgwLCBwb3NpdGlvbik7XG4gICAgICAgICAgICBmb3JtYXR0ZWROZXdWYWwuc3BsaXQoJycpLnJlZHVjZSgoYWNjLCBjaGFyLCBpbmQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoY2hhciA9PT0gJywnKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgYWNjLnB1c2goY2hhcik7XG4gICAgICAgICAgICAgICAgaWYgKGFjYy5qb2luKCcnKSA9PT0gcG9zVmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uID0gaW5kICsgMTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH0sIFtdKTtcbiAgICAgICAgICAgIGNvbnNvbGUuaW5mbygncG9zaXRpb24gLSAzJywgcG9zaXRpb24pO1xuICAgICAgICAgICAgaW5wdXRDYXJldFBvc2l0aW9uUmVmLmN1cnJlbnQgPSBwb3NpdGlvbiArIChoYXNEZWNpbWFsUG9pbnQgPyAyIDogMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGlmICh2YWwgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUobnVsbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmIChpc1N0YW5kYWxvbmVNaW51cykge1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKCctJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBkZWNpbWFscyA9IChfZiA9IChfZSA9IChfZCA9IHZhbC5tYXRjaCgvXFwuKFxcZCspJC8pKSA9PT0gbnVsbCB8fCBfZCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2RbMV0pID09PSBudWxsIHx8IF9lID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZS5sZW5ndGgpICE9PSBudWxsICYmIF9mICE9PSB2b2lkIDAgPyBfZiA6IDA7XG4gICAgICAgICAgICAgICAgY29uc3QgYm4gPSBCaWdOdW1iZXIodmFsKTtcbiAgICAgICAgICAgICAgICBsZXQgbm9ybWFsaXplZCA9IGJuLnRvRml4ZWQoZGVjaW1hbHMpO1xuICAgICAgICAgICAgICAgIGlmIChuZWdhdGl2ZSAmJiB2YWwudHJpbSgpLnN0YXJ0c1dpdGgoJy0nKSAmJiBibi5pc1plcm8oKSkge1xuICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5zdGFydHNXaXRoKCctJykgPyBub3JtYWxpemVkIDogYC0ke25vcm1hbGl6ZWR9YDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0VmFsdWUoYCR7bm9ybWFsaXplZH0ke2hhc0RlY2ltYWxQb2ludCA/ICcuJyA6ICcnfWAudHJpbSgpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBvbkNoYW5nZSA9PT0gbnVsbCB8fCBvbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DaGFuZ2UoZSk7XG4gICAgfSwgW29uQ2hhbmdlLCBfdmFsdWUsIHZhbHVlLCBmb3JtYXR0ZWRWYWx1ZSwgbWF4RnJhY3Rpb25EaWdpdHMsIG1pbiwgbWF4LCBuZWdhdGl2ZSwgZGlzYWJsZWQsIHJlYWRPbmx5XSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2MsIF9kLCBfZSwgX2YsIF9nLCBfaCwgX2osIF9rO1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IChfYiA9IChfYSA9IGNvbnRhaW5lclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Eub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IE1JTl9JTlBVVF9XSURUSDtcbiAgICAgICAgY29uc3QgcHJlZml4V2lkdGggPSAoX2QgPSAoX2MgPSBwcmVmaXhSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2MgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfZCAhPT0gdm9pZCAwID8gX2QgOiAwO1xuICAgICAgICBjb25zdCBzdWZmaXhXaWR0aCA9IChfZiA9IChfZSA9IHN1ZmZpeFJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2Uub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9mICE9PSB2b2lkIDAgPyBfZiA6IDA7XG4gICAgICAgIGNvbnN0IGN1cnJlbmN5V2lkdGggPSAoX2ggPSAoX2cgPSBjdXJyZW5jeVJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfZyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2cub2Zmc2V0V2lkdGgpICE9PSBudWxsICYmIF9oICE9PSB2b2lkIDAgPyBfaCA6IDA7XG4gICAgICAgIGNvbnN0IGZha2VXaWR0aCA9IChfayA9IChfaiA9IGZha2VFbGVSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2ogPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9qLm9mZnNldFdpZHRoKSAhPT0gbnVsbCAmJiBfayAhPT0gdm9pZCAwID8gX2sgOiAwO1xuICAgICAgICBjb25zdCBnYXBXaWR0aCA9IHByZWZpeFdpZHRoICYmIHN1ZmZpeFdpZHRoICYmIGN1cnJlbmN5V2lkdGhcbiAgICAgICAgICAgID8gMjRcbiAgICAgICAgICAgIDogKHByZWZpeFdpZHRoICYmIHN1ZmZpeFdpZHRoKSB8fCAocHJlZml4V2lkdGggJiYgY3VycmVuY3lXaWR0aCkgfHwgKHN1ZmZpeFdpZHRoICYmIGN1cnJlbmN5V2lkdGgpXG4gICAgICAgICAgICAgICAgPyAxNlxuICAgICAgICAgICAgICAgIDogcHJlZml4V2lkdGggfHwgc3VmZml4V2lkdGggfHwgY3VycmVuY3lXaWR0aFxuICAgICAgICAgICAgICAgICAgICA/IDhcbiAgICAgICAgICAgICAgICAgICAgOiAwO1xuICAgICAgICBjb25zdCBtYXhXaWR0aCA9IGNvbnRhaW5lcldpZHRoIC0gcHJlZml4V2lkdGggLSBzdWZmaXhXaWR0aCAtIGN1cnJlbmN5V2lkdGggLSBnYXBXaWR0aDtcbiAgICAgICAgY29uc3QgaXNNYXggPSBmYWtlV2lkdGggPj0gbWF4V2lkdGg7XG4gICAgICAgIHNldFdpZHRoKE1hdGgubWluKG1heFdpZHRoLCBNYXRoLm1heChmYWtlV2lkdGgsIE1JTl9JTlBVVF9XSURUSCkpKTtcbiAgICAgICAgc2V0SXNNYXhXaWR0aChpc01heCk7XG4gICAgICAgIGlmIChpc0ZvY3VzKSB7XG4gICAgICAgICAgICBjb25zb2xlLmluZm8oJ2lucHV0Q2FyZXRQb3NpdGlvblJlZjogJywgaW5wdXRDYXJldFBvc2l0aW9uUmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgc2Nyb2xsVG9FbmQodHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9LCBbX3ZhbHVlLCBwcmVmaXgsIHN1ZmZpeCwgY3VycmVuY3ksIGlzRm9jdXNdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAvLyBjbGVhciBuZWdhdGl2ZSBzaWduIGlmIG5vdCBhbGxvd2VkXG4gICAgICAgIGlmIChuZWdhdGl2ZSlcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChfdmFsdWUgPT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKF92YWx1ZSA9PT0gJy0nKSB7XG4gICAgICAgICAgICBzZXRWYWx1ZShudWxsKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoX3ZhbHVlLnN0YXJ0c1dpdGgoJy0nKSlcbiAgICAgICAgICAgIHNldFZhbHVlKF92YWx1ZS5zbGljZSgxKSk7XG4gICAgfSwgW25lZ2F0aXZlLCB2YWx1ZSwgX3ZhbHVlXSk7XG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYiwgX2M7XG4gICAgICAgIGxldCB2YWwgPSB2YWx1ZTtcbiAgICAgICAgbGV0IGhhc0RlY2ltYWxQb2ludCA9IGZhbHNlO1xuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGlmICh2YWwgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgdmFsID0gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHZhbCA9IG5vcm1hbGl6ZU51bWJlcklucHV0KHZhbCkuc3BsaXQoJywnKS5qb2luKCcnKTtcbiAgICAgICAgICAgICAgICBoYXNEZWNpbWFsUG9pbnQgPSAhIXZhbCAmJiB2YWwuZW5kc1dpdGgoJy4nKTtcbiAgICAgICAgICAgICAgICBpZiAoaGFzRGVjaW1hbFBvaW50KVxuICAgICAgICAgICAgICAgICAgICB2YWwgPSB2YWwuc2xpY2UoMCwgLTEpO1xuICAgICAgICAgICAgICAgIGlmICghbmVnYXRpdmUpXG4gICAgICAgICAgICAgICAgICAgIHZhbCA9IHZhbC5yZXBsYWNlKC8tL2csICcnKTtcbiAgICAgICAgICAgICAgICBpZiAobmVnYXRpdmUgJiYgdmFsID09PSAnLScpIHtcbiAgICAgICAgICAgICAgICAgICAgc2V0VmFsdWUoJy0nKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXNOYU4oK3ZhbCkpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh2YWwgIT09IG51bGwgJiYgdHlwZW9mIHZhbCAhPT0gJ251bWJlcicgJiYgdHlwZW9mIHZhbCAhPT0gJ2JpZ2ludCcpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmICghbmVnYXRpdmUpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgIHZhbCA9IE1hdGguYWJzKHZhbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIGlmICh0eXBlb2YgdmFsID09PSAnYmlnaW50Jykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHplcm8gPSBCaWdJbnQoMCk7XG4gICAgICAgICAgICAgICAgdmFsID0gdmFsIDwgemVybyA/IC12YWwgOiB2YWw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsID09PSAnbnVtYmVyJykgJiYgKHR5cGVvZiBtYXhGcmFjdGlvbkRpZ2l0cyA9PT0gJ251bWJlcicgfHwgdHlwZW9mIG1heEZyYWN0aW9uRGlnaXRzID09PSAnYmlnaW50JykpIHtcbiAgICAgICAgICAgIGNvbnN0IFtpbnQsIGRlY2ltYWxdID0gKCcnICsgdmFsKS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgaWYgKGRlY2ltYWwgIT0gbnVsbCAmJiBkZWNpbWFsLmxlbmd0aCA+IE51bWJlcihtYXhGcmFjdGlvbkRpZ2l0cykpIHtcbiAgICAgICAgICAgICAgICB2YWwgPSBpbnQgKyAnLicgKyBkZWNpbWFsLnNsaWNlKDAsIE51bWJlcihtYXhGcmFjdGlvbkRpZ2l0cykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsID09PSAnbnVtYmVyJyB8fCB0eXBlb2YgdmFsID09PSAnYmlnaW50Jykge1xuICAgICAgICAgICAgdmFsID0gY2FsY1ZhbHVlSW5SYW5nZSgnJyArIHZhbCwgbWluLCBtYXgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh2YWwgPT09ICcnIHx8IHZhbCA9PSBudWxsKSB7XG4gICAgICAgICAgICBzZXRWYWx1ZShudWxsKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IHN0clZhbCA9ICcnICsgdmFsO1xuICAgICAgICAgICAgY29uc3QgZGVjaW1hbHMgPSAoX2MgPSAoX2IgPSAoX2EgPSBzdHJWYWwubWF0Y2goL1xcLihcXGQrKSQvKSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hWzFdKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IubGVuZ3RoKSAhPT0gbnVsbCAmJiBfYyAhPT0gdm9pZCAwID8gX2MgOiAwO1xuICAgICAgICAgICAgY29uc3QgYm4gPSBCaWdOdW1iZXIoc3RyVmFsKTtcbiAgICAgICAgICAgIGxldCBub3JtYWxpemVkID0gYm4udG9GaXhlZChkZWNpbWFscyk7XG4gICAgICAgICAgICBpZiAobmVnYXRpdmUgJiYgc3RyVmFsLnRyaW0oKS5zdGFydHNXaXRoKCctJykgJiYgYm4uaXNaZXJvKCkpIHtcbiAgICAgICAgICAgICAgICBub3JtYWxpemVkID0gbm9ybWFsaXplZC5zdGFydHNXaXRoKCctJykgPyBub3JtYWxpemVkIDogYC0ke25vcm1hbGl6ZWR9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldFZhbHVlKGAke25vcm1hbGl6ZWR9JHtoYXNEZWNpbWFsUG9pbnQgPyAnLicgOiAnJ31gLnRyaW0oKSk7XG4gICAgICAgIH1cbiAgICB9LCBbdmFsdWUsIG1heEZyYWN0aW9uRGlnaXRzLCBtaW4sIG1heCwgbmVnYXRpdmVdKTtcbiAgICByZXR1cm4gX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3dyYXBwZXInLCBqb2luQ2xzKHdyYXBwZXJDbHMsIGludmFsaWQgJiYgY2xhc3NlcygnaW52YWxpZCcpLCBzdWNjZXNzICYmIGNsYXNzZXMoJ3N1Y2Nlc3MnKSwgZGlzYWJsZWQgJiYgY2xhc3NlcygnZGlzYWJsZWQnKSwgcmVhZE9ubHkgJiYgY2xhc3NlcygncmVhZG9ubHknKSwgX3ZhbHVlICYmIGNsYXNzZXMoJ2ZpbGxlZCcpKSksIGNoaWxkcmVuOiBbbGFiZWxcbiAgICAgICAgICAgICAgICA/IGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgPyBfanN4KFNrZWxldG9uLCB7IHdpZHRoOiAnNzJweCcsIGhlaWdodDogJzE4cHgnLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2xhYmVsLWxvYWRpbmcnKSB9KVxuICAgICAgICAgICAgICAgICAgICA6IF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdsYWJlbCcsIGpvaW5DbHMocmVxdWlyZWQgJiYgY2xhc3NlcygnbGFiZWwtcmVxdWlyZWQnKSwgbGFiZWxDbHMpKSwgY2hpbGRyZW46IGxhYmVsIH0pXG4gICAgICAgICAgICAgICAgOiBudWxsLCBfanN4cyhcImRpdlwiLCB7IHJlZjogY29udGFpbmVyUmVmLCBjbGFzc05hbWU6IGNsYXNzZXModm9pZCAwLCBqb2luQ2xzKGNsYXNzTmFtZSwgaXNGb2N1cyAmJiBjbGFzc2VzKCdmb2N1cycpKSksIG9uQ2xpY2s6IChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUudGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgKF9hID0gaW5wdXRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc01heFdpZHRoKVxuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsVG9FbmQoKTtcbiAgICAgICAgICAgICAgICB9LCBjaGlsZHJlbjogW3ByZWZpeCAmJiBfanN4KFwic3BhblwiLCB7IHJlZjogcHJlZml4UmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ3ByZWZpeCcpLCBjaGlsZHJlbjogcHJlZml4IH0pLCBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdlbGVtZW50JywgKCFpc0ZvY3VzICYmIGlzTWF4V2lkdGgpID8gY2xhc3NlcygnZWxlbWVudC1tYXgnKSA6ICcnKSwgY2hpbGRyZW46IF9qc3goXCJpbnB1dFwiLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IHJlZjogaW5wdXRSZWYsIHZhbHVlOiBmb3JtYXR0ZWRWYWx1ZSwgcGxhY2Vob2xkZXI6IHBsYWNlaG9sZGVyLCByZWFkT25seTogcmVhZE9ubHksIGRpc2FibGVkOiBkaXNhYmxlZCwgc3R5bGU6IHsgJy0taW5wdXQtd2lkdGgnOiBgJHtfd2lkdGh9cHhgIH0sIG9uQ2hhbmdlOiBoYW5kbGVDaGFuZ2UsIG9uU2VsZWN0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvcyA9IChfYiA9IChfYSA9IGlucHV0UmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5zZWxlY3Rpb25TdGFydCkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5pbmZvKCdvblNlbGVjdCcsIHBvcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0Q2FyZXRQb3NpdGlvblJlZi5jdXJyZW50ID0gcG9zO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIG9uRm9jdXM6IGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJc0ZvY3VzKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkZvY3VzID09PSBudWxsIHx8IG9uRm9jdXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uRm9jdXMoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgb25CbHVyOiBlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXNGb2N1cyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQmx1ciA9PT0gbnVsbCB8fCBvbkJsdXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmx1cihlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IH0pKSB9KSwgY3VycmVuY3kgJiYgX2pzeChcInNwYW5cIiwgeyByZWY6IGN1cnJlbmN5UmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2N1cnJlbmN5JyksIGNoaWxkcmVuOiBjdXJyZW5jeSB9KSwgbG9hZGluZyA/IF9qc3goU3Bpbm5lciwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3N1ZmZpeC1sb2FkaW5nJyksIHN0cm9rZVdpZHRoOiAnNCcgfSkgOiBzdWZmaXggPyBfanN4KFwic3BhblwiLCB7IHJlZjogc3VmZml4UmVmLCBjbGFzc05hbWU6IGNsYXNzZXMoJ3N1ZmZpeCcpLCBjaGlsZHJlbjogc3VmZml4IH0pIDogbnVsbCwgX2pzeChcInNwYW5cIiwgeyByZWY6IGZha2VFbGVSZWYsIGNsYXNzTmFtZTogY2xhc3NlcygnZmFrZScpLCBvbkNsaWNrOiBlID0+IGUuc3RvcFByb3BhZ2F0aW9uKCksIGNoaWxkcmVuOiBudW1lcmljRm9ybWF0dGVyKCcnICsgKF92YWx1ZSA9PSBudWxsID8gJycgOiBfdmFsdWUpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhvdXNhbmRTZXBhcmF0b3I6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb3dOZWdhdGl2ZTogbmVnYXRpdmUsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSB9KV0gfSksIChtZXNzYWdlIHx8IGZvb3Rub3RlKSAmJiBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnZXh0cmEnKSwgY2hpbGRyZW46IFttZXNzYWdlICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ21lc3NhZ2UnLCBtZXNzYWdlQ2xzKSwgY2hpbGRyZW46IG1lc3NhZ2UgfSksIGZvb3Rub3RlICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2Zvb3Rub3RlJywgZm9vdG5vdGVDbHMpLCBjaGlsZHJlbjogZm9vdG5vdGUgfSldIH0pXSB9KTtcbn07XG5leHBvcnQgZGVmYXVsdCBtZW1vKElucHV0QW1vdW50KTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=