@1money/component-ui 0.1.24-alpha.2 → 0.1.25-alpha.0

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.
@@ -19,7 +19,6 @@ var _useSelectShell2 = require("./useSelectShell");
19
19
  var _utils = require("./utils");
20
20
  require("./style");
21
21
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
22
- var DEFAULT_MAX_HEIGHT = 320;
23
22
  var isRenderableTemplate = function isRenderableTemplate(value) {
24
23
  return value !== null && value !== undefined && value !== false;
25
24
  };
@@ -66,8 +65,8 @@ var SelectCustom = exports.SelectCustom = function SelectCustom(props) {
66
65
  portal = _props$portal === void 0 ? true : _props$portal,
67
66
  panelClassName = props.panelClassName,
68
67
  panelFooter = props.panelFooter,
69
- _props$listMaxHeight = props.listMaxHeight,
70
- listMaxHeight = _props$listMaxHeight === void 0 ? DEFAULT_MAX_HEIGHT : _props$listMaxHeight,
68
+ listMaxHeight = props.listMaxHeight,
69
+ listHeight = props.listHeight,
71
70
  placement = props.placement,
72
71
  panelWidth = props.panelWidth,
73
72
  offset = props.offset,
@@ -104,6 +103,7 @@ var SelectCustom = exports.SelectCustom = function SelectCustom(props) {
104
103
  placement: placement,
105
104
  panelWidth: panelWidth,
106
105
  listMaxHeight: listMaxHeight,
106
+ listHeight: listHeight,
107
107
  animation: animation,
108
108
  role: roleProp,
109
109
  offset: offset
@@ -246,4 +246,4 @@ var SelectCustom = exports.SelectCustom = function SelectCustom(props) {
246
246
  };
247
247
  SelectCustom.displayName = 'SelectCustom';
248
248
  var _default = exports["default"] = /*#__PURE__*/(0, _react2.memo)(SelectCustom);
249
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdEN1c3RvbS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdEN1c3RvbS50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl91c2VFdmVudENhbGxiYWNrIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9Db25maWdQcm92aWRlciIsIl9JY29ucyIsIl9TcGlubmVyIiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9TZWxlY3RGaWVsZFNoZWxsIiwiX3VzZVNlbGVjdFNoZWxsMiIsIl91dGlscyIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiREVGQVVMVF9NQVhfSEVJR0hUIiwiaXNSZW5kZXJhYmxlVGVtcGxhdGUiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsIlNlbGVjdEN1c3RvbSIsImV4cG9ydHMiLCJwcm9wcyIsImxvY2FsZSIsInVzZUxvY2FsZSIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwic3R5bGUiLCJpZCIsIm5hbWUiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSIsIl9wcm9wcyRzaXplIiwic2l6ZSIsIl9wcm9wcyRzdGF0dXMiLCJzdGF0dXMiLCJfcHJvcHMkdmFyaWFudCIsInZhcmlhbnQiLCJfcHJvcHMkZGlzYWJsZWQiLCJkaXNhYmxlZCIsImRpc2FibGVkUHJvcCIsIl9wcm9wcyRyZWFkT25seSIsInJlYWRPbmx5IiwiX3Byb3BzJGxvYWRpbmciLCJsb2FkaW5nIiwibGFiZWwiLCJsYWJlbENsYXNzTmFtZSIsImluZm8iLCJkZXNjcmlwdGlvbiIsImZlZWRiYWNrIiwiX3Byb3BzJHJlcXVpcmVkIiwicmVxdWlyZWQiLCJwcmVmaXgiLCJfcHJvcHMkcGxhY2Vob2xkZXIiLCJwbGFjZWhvbGRlciIsInNlbGVjdGVkVGVtcGxhdGUiLCJfcHJvcHMkYXJyb3ciLCJhcnJvdyIsIm9wZW4iLCJfcHJvcHMkZGVmYXVsdE9wZW4iLCJkZWZhdWx0T3BlbiIsIl9wcm9wcyRwb3J0YWwiLCJwb3J0YWwiLCJwYW5lbENsYXNzTmFtZSIsInBhbmVsRm9vdGVyIiwiX3Byb3BzJGxpc3RNYXhIZWlnaHQiLCJsaXN0TWF4SGVpZ2h0IiwicGxhY2VtZW50IiwicGFuZWxXaWR0aCIsIm9mZnNldCIsIl9wcm9wcyRyb2xlIiwicm9sZSIsInJvbGVQcm9wIiwiYW5pbWF0aW9uIiwib25PcGVuQ2hhbmdlIiwib25CbHVyIiwiY2hpbGRyZW4iLCJyZWYiLCJpbnRlcmFjdGl2ZSIsImNsYXNzZXMiLCJyb290Q2xhc3NuYW1lcyIsImF1dG9JZCIsInVzZUlkIiwidHJpZ2dlcklkIiwibGFiZWxJZCIsImRlc2NyaXB0aW9uSWQiLCJmZWVkYmFja0lkIiwibm9ybWFsaXplZFNpemUiLCJub3JtYWxpemVTaXplIiwiZmxvYXRpbmdSZWYiLCJ1c2VSZWYiLCJ0cmlnZ2VyUmVmIiwiaGFuZGxlVHJpZ2dlclJlZiIsInVzZUV2ZW50Q2FsbGJhY2siLCJub2RlIiwiY3VycmVudCIsIl91c2VTZWxlY3RTaGVsbCIsInVzZVNlbGVjdFNoZWxsIiwiaXNPcGVuIiwic2V0T3BlbiIsInJlZnMiLCJjb250ZXh0IiwiZmxvYXRpbmdTdHlsZXMiLCJ0cmFuc2l0aW9uU3R5bGVzIiwiaXNNb3VudGVkIiwiYmFzZUludGVyYWN0aW9ucyIsInNldFJlZmVyZW5jZSIsInNldEZsb2F0aW5nIiwiX3VzZUludGVyYWN0aW9ucyIsInVzZUludGVyYWN0aW9ucyIsImdldFJlZmVyZW5jZVByb3BzIiwiZ2V0RmxvYXRpbmdQcm9wcyIsIm5vdGlmeUJsdXJJZk91dHNpZGUiLCJyZWxhdGVkVGFyZ2V0IiwiZXZlbnQiLCJfYSIsIl9iIiwibmV4dFRhcmdldCIsIndpdGhpblRyaWdnZXIiLCJjb250YWlucyIsIndpdGhpbkZsb2F0aW5nIiwiaGFuZGxlVHJpZ2dlckJsdXIiLCJjbG9zZSIsImZvY3VzIiwicHJldmVudFNjcm9sbCIsInRyaWdnZXJDb250ZW50IiwiZm9udFNpemUiLCJnZXRGb250U2l6ZSIsImhhc1NlbGVjdGlvbiIsInZhbHVlTGFiZWxDbGFzcyIsInRyaWdnZXJDbGFzc05hbWUiLCJqb2luQ2xzIiwiY29uY2F0IiwiaWNvblNpemUiLCJmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5IiwiZGVzY3JpYmVkQnlJZHMiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsInBhbmVsQ3R4IiwicGFuZWxCb2R5IiwiX2pzeHMiLCJTZWxlY3RGaWVsZFNoZWxsIiwiYXNzaWduIiwidHlwZSIsIl9qc3giLCJTcGlubmVyIiwic3Ryb2tlV2lkdGgiLCJJY29ucyIsImNvbG9yIiwicGFuZWxOb2RlIiwiRmxvYXRpbmdGb2N1c01hbmFnZXIiLCJtb2RhbCIsImluaXRpYWxGb2N1cyIsInJldHVybkZvY3VzIiwiRmxvYXRpbmdQb3J0YWwiLCJkaXNwbGF5TmFtZSIsIl9kZWZhdWx0IiwibWVtbyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxJQUFBQSxXQUFBLEdBQUFDLE9BQUE7QUNBQSxJQUFBQyxNQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxPQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQUssZUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sTUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sUUFBQSxHQUFBUCxPQUFBO0FBQ0EsSUFBQVEsV0FBQSxHQUFBQyx1QkFBQSxDQUFBVCxPQUFBO0FBR0EsSUFBQVUsaUJBQUEsR0FBQU4sc0JBQUEsQ0FB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UyxDQUFBLENBQWtCLEdBQUdBLFNBQVM7SUFDMUUsQ0FBQyxDQUFDLENBQUU7RUFBQSxDQUFBLENBQ2E7QUFFdkIsQ0FBQztBQUVEcEksWUFBWSxDQUFDMEksV0FBVyxHQUFHLGNBQWM7QUFBQyxJQUFBQyxRQUFBLEdBQUExSSxPQUFBLDJCQUUzQixJQUFBMkksWUFBSSxFQUFDNUksWUFBWSxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdEN1c3RvbS5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBGbG9hdGluZ0ZvY3VzTWFuYWdlciwgRmxvYXRpbmdQb3J0YWwsIHVzZUludGVyYWN0aW9ucyB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyBtZW1vLCB1c2VJZCwgdXNlUmVmIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUV2ZW50Q2FsbGJhY2sgZnJvbSAnQDFtb25leS9ob29rcy91c2VFdmVudENhbGxiYWNrJztcbmltcG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uL0NvbmZpZ1Byb3ZpZGVyJztcbmltcG9ydCB7IEljb25zIH0gZnJvbSAnLi4vSWNvbnMnO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJy4uL1NwaW5uZXInO1xuaW1wb3J0IHsgam9pbkNscywgZGVmYXVsdCBhcyByb290Q2xhc3NuYW1lcyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IFNlbGVjdEZpZWxkU2hlbGwgZnJvbSAnLi9TZWxlY3RGaWVsZFNoZWxsJztcbmltcG9ydCB7IHVzZVNlbGVjdFNoZWxsIH0gZnJvbSAnLi91c2VTZWxlY3RTaGVsbCc7XG5pbXBvcnQgeyBnZXRGb250U2l6ZSwgbm9ybWFsaXplU2l6ZSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IERFRkFVTFRfTUFYX0hFSUdIVCA9IDMyMDtcbmNvbnN0IGlzUmVuZGVyYWJsZVRlbXBsYXRlID0gKHZhbHVlKSA9PiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlICE9PSBmYWxzZTtcbmV4cG9ydCBjb25zdCBTZWxlY3RDdXN0b20gPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCBsb2NhbGUgPSB1c2VMb2NhbGUoJ1NlbGVjdCcpO1xuICAgIGNvbnN0IHsgY2xhc3NOYW1lID0gJycsIHByZWZpeENscyA9ICdzZWxlY3QnLCBzdHlsZSwgaWQsIG5hbWUsICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLCAnYXJpYS1sYWJlbGxlZGJ5JzogYXJpYUxhYmVsbGVkQnksIHNpemUgPSAnbGFyZ2UnLCBzdGF0dXMgPSAnZGVmYXVsdCcsIHZhcmlhbnQgPSAnZmlsbCcsIGRpc2FibGVkOiBkaXNhYmxlZFByb3AgPSBmYWxzZSwgcmVhZE9ubHkgPSBmYWxzZSwgbG9hZGluZyA9IGZhbHNlLCBsYWJlbCwgbGFiZWxDbGFzc05hbWUsIGluZm8sIGRlc2NyaXB0aW9uLCBmZWVkYmFjaywgcmVxdWlyZWQgPSB0cnVlLCBwcmVmaXgsIHBsYWNlaG9sZGVyID0gbG9jYWxlLnBsYWNlaG9sZGVyLCBzZWxlY3RlZFRlbXBsYXRlLCBhcnJvdyA9IHRydWUsIG9wZW4sIGRlZmF1bHRPcGVuID0gZmFsc2UsIHBvcnRhbCA9IHRydWUsIHBhbmVsQ2xhc3NOYW1lLCBwYW5lbEZvb3RlciwgbGlzdE1heEhlaWdodCA9IERFRkFVTFRfTUFYX0hFSUdIVCwgcGxhY2VtZW50LCBwYW5lbFdpZHRoLCBvZmZzZXQsIHJvbGU6IHJvbGVQcm9wID0gJ2RpYWxvZycsIGFuaW1hdGlvbiwgb25PcGVuQ2hhbmdlLCBvbkJsdXIsIGNoaWxkcmVuLCByZWYsIH0gPSBwcm9wcztcbiAgICBjb25zdCBkaXNhYmxlZCA9IGRpc2FibGVkUHJvcCB8fCBsb2FkaW5nO1xuICAgIGNvbnN0IGludGVyYWN0aXZlID0gIWRpc2FibGVkICYmICFyZWFkT25seTtcbiAgICBjb25zdCBjbGFzc2VzID0gcm9vdENsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBhdXRvSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHRyaWdnZXJJZCA9IGlkICE9PSBudWxsICYmIGlkICE9PSB2b2lkIDAgPyBpZCA6IGF1dG9JZDtcbiAgICBjb25zdCBsYWJlbElkID0gdXNlSWQoKTtcbiAgICBjb25zdCBkZXNjcmlwdGlvbklkID0gdXNlSWQoKTtcbiAgICBjb25zdCBmZWVkYmFja0lkID0gdXNlSWQoKTtcbiAgICBjb25zdCBub3JtYWxpemVkU2l6ZSA9IG5vcm1hbGl6ZVNpemUoc2l6ZSk7XG4gICAgY29uc3QgZmxvYXRpbmdSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgdHJpZ2dlclJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBoYW5kbGVUcmlnZ2VyUmVmID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICB0cmlnZ2VyUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgICAgICBpZiAocmVmKSB7XG4gICAgICAgICAgICByZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBjb25zdCB7IGlzT3Blbiwgc2V0T3BlbiwgcmVmcywgY29udGV4dCwgZmxvYXRpbmdTdHlsZXMsIHRyYW5zaXRpb25TdHlsZXMsIGlzTW91bnRlZCwgYmFzZUludGVyYWN0aW9ucywgfSA9IHVzZVNlbGVjdFNoZWxsKHtcbiAgICAgICAgb3BlbixcbiAgICAgICAgZGVmYXVsdE9wZW4sXG4gICAgICAgIG9uT3BlbkNoYW5nZSxcbiAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgIHJlYWRPbmx5LFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHBhbmVsV2lkdGgsXG4gICAgICAgIGxpc3RNYXhIZWlnaHQsXG4gICAgICAgIGFuaW1hdGlvbixcbiAgICAgICAgcm9sZTogcm9sZVByb3AsXG4gICAgICAgIG9mZnNldCxcbiAgICB9KTtcbiAgICBjb25zdCBzZXRSZWZlcmVuY2UgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0UmVmZXJlbmNlKG5vZGUpO1xuICAgICAgICBoYW5kbGVUcmlnZ2VyUmVmKG5vZGUpO1xuICAgIH0pO1xuICAgIGNvbnN0IHNldEZsb2F0aW5nID0gdXNlRXZlbnRDYWxsYmFjaygobm9kZSkgPT4ge1xuICAgICAgICByZWZzLnNldEZsb2F0aW5nKG5vZGUpO1xuICAgICAgICBmbG9hdGluZ1JlZi5jdXJyZW50ID0gbm9kZTtcbiAgICB9KTtcbiAgICBjb25zdCB7IGdldFJlZmVyZW5jZVByb3BzLCBnZXRGbG9hdGluZ1Byb3BzIH0gPSB1c2VJbnRlcmFjdGlvbnMoYmFzZUludGVyYWN0aW9ucyk7XG4gICAgY29uc3Qgbm90aWZ5Qmx1cklmT3V0c2lkZSA9IHVzZUV2ZW50Q2FsbGJhY2soKHJlbGF0ZWRUYXJnZXQsIGV2ZW50KSA9PiB7XG4gICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgIGNvbnN0IG5leHRUYXJnZXQgPSByZWxhdGVkVGFyZ2V0O1xuICAgICAgICBjb25zdCB3aXRoaW5UcmlnZ2VyID0gISEobmV4dFRhcmdldCAmJiAoKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgY29uc3Qgd2l0aGluRmxvYXRpbmcgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2IgPSBmbG9hdGluZ1JlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY29udGFpbnMobmV4dFRhcmdldCkpKTtcbiAgICAgICAgaWYgKCF3aXRoaW5UcmlnZ2VyICYmICF3aXRoaW5GbG9hdGluZykge1xuICAgICAgICAgICAgb25CbHVyID09PSBudWxsIHx8IG9uQmx1ciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25CbHVyKGV2ZW50KTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJCbHVyID0gdXNlRXZlbnRDYWxsYmFjaygoZXZlbnQpID0+IHtcbiAgICAgICAgbm90aWZ5Qmx1cklmT3V0c2lkZShldmVudC5yZWxhdGVkVGFyZ2V0LCBldmVudCk7XG4gICAgfSk7XG4gICAgY29uc3QgY2xvc2UgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICBzZXRPcGVuKGZhbHNlKTtcbiAgICAgICAgKF9hID0gdHJpZ2dlclJlZi5jdXJyZW50KSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuZm9jdXMoeyBwcmV2ZW50U2Nyb2xsOiB0cnVlIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IHRyaWdnZXJDb250ZW50ID0gdHlwZW9mIHNlbGVjdGVkVGVtcGxhdGUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgPyBzZWxlY3RlZFRlbXBsYXRlKHtcbiAgICAgICAgICAgIG9wZW46IGlzT3BlbixcbiAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgcmVhZE9ubHksXG4gICAgICAgICAgICBzaXplOiBub3JtYWxpemVkU2l6ZSxcbiAgICAgICAgICAgIGZvbnRTaXplOiBnZXRGb250U2l6ZShub3JtYWxpemVkU2l6ZSksXG4gICAgICAgIH0pXG4gICAgICAgIDogc2VsZWN0ZWRUZW1wbGF0ZTtcbiAgICBjb25zdCBoYXNTZWxlY3Rpb24gPSBpc1JlbmRlcmFibGVUZW1wbGF0ZSh0cmlnZ2VyQ29udGVudCk7XG4gICAgY29uc3QgdmFsdWVMYWJlbENsYXNzID0gaGFzU2VsZWN0aW9uID8gJ3ZhbHVlJyA6ICdwbGFjZWhvbGRlcic7XG4gICAgY29uc3QgdHJpZ2dlckNsYXNzTmFtZSA9IGNsYXNzZXMoJ3RyaWdnZXInLCBqb2luQ2xzKGNsYXNzZXMoYHRyaWdnZXItJHtub3JtYWxpemVkU2l6ZX1gKSwgY2xhc3NlcyhgdHJpZ2dlci0ke3ZhcmlhbnR9YCksIGlzT3BlbiAmJiBjbGFzc2VzKCd0cmlnZ2VyLW9wZW4nKSwgaGFzU2VsZWN0aW9uID8gY2xhc3NlcygndHJpZ2dlci1maWxsZWQnKSA6IGNsYXNzZXMoJ3RyaWdnZXItcGxhY2Vob2xkZXInKSwgc3RhdHVzICE9PSAnZGVmYXVsdCcgJiYgY2xhc3NlcyhgdHJpZ2dlci0ke3N0YXR1c31gKSwgZGlzYWJsZWQgJiYgY2xhc3NlcygndHJpZ2dlci1kaXNhYmxlZCcpLCByZWFkT25seSAmJiAhZGlzYWJsZWQgJiYgY2xhc3NlcygndHJpZ2dlci1yZWFkb25seScpKSk7XG4gICAgY29uc3QgaWNvblNpemUgPSBub3JtYWxpemVkU2l6ZSA9PT0gJ2xhcmdlJyA/IDIwIDogMTY7XG4gICAgY29uc3QgZmxvYXRpbmdBcmlhTGFiZWxsZWRCeSA9IGFyaWFMYWJlbGxlZEJ5ICE9PSBudWxsICYmIGFyaWFMYWJlbGxlZEJ5ICE9PSB2b2lkIDAgPyBhcmlhTGFiZWxsZWRCeSA6IChsYWJlbCA/IGxhYmVsSWQgOiB1bmRlZmluZWQpO1xuICAgIGNvbnN0IGRlc2NyaWJlZEJ5SWRzID0gW2Rlc2NyaXB0aW9uID8gZGVzY3JpcHRpb25JZCA6IG51bGwsIGZlZWRiYWNrID8gZmVlZGJhY2tJZCA6IG51bGxdXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgLmpvaW4oJyAnKSB8fCB1bmRlZmluZWQ7XG4gICAgY29uc3QgcGFuZWxDdHggPSB7XG4gICAgICAgIGNsb3NlLFxuICAgICAgICBvcGVuOiBpc09wZW4sXG4gICAgICAgIHNpemU6IG5vcm1hbGl6ZWRTaXplLFxuICAgICAgICBmb250U2l6ZTogZ2V0Rm9udFNpemUobm9ybWFsaXplZFNpemUpLFxuICAgIH07XG4gICAgY29uc3QgcGFuZWxCb2R5ID0gdHlwZW9mIGNoaWxkcmVuID09PSAnZnVuY3Rpb24nID8gY2hpbGRyZW4ocGFuZWxDdHgpIDogY2hpbGRyZW47XG4gICAgcmV0dXJuIChfanN4cyhTZWxlY3RGaWVsZFNoZWxsLCB7IGNsYXNzZXM6IGNsYXNzZXMsIGNsYXNzTmFtZTogY2xhc3NOYW1lLCBzaXplOiBub3JtYWxpemVkU2l6ZSwgdmFyaWFudDogdmFyaWFudCwgc3RhdHVzOiBzdGF0dXMsIGRpc2FibGVkOiBkaXNhYmxlZCwgcmVhZE9ubHk6IHJlYWRPbmx5LCBsb2FkaW5nOiBsb2FkaW5nLCBsYWJlbDogbGFiZWwsIGxhYmVsQ2xhc3NOYW1lOiBsYWJlbENsYXNzTmFtZSwgaW5mbzogaW5mbywgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLCBmZWVkYmFjazogZmVlZGJhY2ssIHJlcXVpcmVkOiByZXF1aXJlZCwgbGFiZWxJZDogbGFiZWxJZCwgZGVzY3JpcHRpb25JZDogZGVzY3JpcHRpb25JZCwgZmVlZGJhY2tJZDogZmVlZGJhY2tJZCwgY2hpbGRyZW46IFtfanN4cyhcImJ1dHRvblwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRSZWZlcmVuY2VQcm9wcyh7XG4gICAgICAgICAgICAgICAgcmVmOiBzZXRSZWZlcmVuY2UsXG4gICAgICAgICAgICAgICAgaWQ6IHRyaWdnZXJJZCxcbiAgICAgICAgICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkLFxuICAgICAgICAgICAgICAgICdhcmlhLXJlYWRvbmx5JzogcmVhZE9ubHkgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIHN0eWxlLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogdHJpZ2dlckNsYXNzTmFtZSxcbiAgICAgICAgICAgICAgICBvbkJsdXI6IGhhbmRsZVRyaWdnZXJCbHVyLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsJzogYXJpYUxhYmVsLFxuICAgICAgICAgICAgICAgICdhcmlhLWxhYmVsbGVkYnknOiBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5LFxuICAgICAgICAgICAgICAgICdhcmlhLWRlc2NyaWJlZGJ5JzogZGVzY3JpYmVkQnlJZHMsXG4gICAgICAgICAgICB9KSwgeyBjaGlsZHJlbjogW19qc3hzKFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29udGVudCcpLCBjaGlsZHJlbjogW3ByZWZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncHJlZml4JyksIGNoaWxkcmVuOiBwcmVmaXggfSksIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKHZhbHVlTGFiZWxDbGFzcywgam9pbkNscyhjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tJHtub3JtYWxpemVkU2l6ZX1gKSwgZGlzYWJsZWQgJiYgY2xhc3NlcyhgJHt2YWx1ZUxhYmVsQ2xhc3N9LWRpc2FibGVkYCkpKSwgY2hpbGRyZW46IGhhc1NlbGVjdGlvbiA/IHRyaWdnZXJDb250ZW50IDogcGxhY2Vob2xkZXIgfSldIH0pLCBhcnJvdyAmJiAoX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2ljb24nKSwgY2hpbGRyZW46IGxvYWRpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IF9qc3goU3Bpbm5lciwgeyBzaXplOiBpY29uU2l6ZSwgc3Ryb2tlV2lkdGg6IDIgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHJlYWRPbmx5XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IF9qc3goSWNvbnMsIHsgbmFtZTogaXNPcGVuID8gJ2NoZXZyb25VcCcgOiAnY2hldnJvbkRvd24nLCBzaXplOiBpY29uU2l6ZSwgY29sb3I6IFwiY3VycmVudENvbG9yXCIgfSkgfSkpXSB9KSksIGlzTW91bnRlZCAmJiBpbnRlcmFjdGl2ZSAmJiAoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhbmVsTm9kZSA9IChfanN4KEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCB7IGNvbnRleHQ6IGNvbnRleHQsIG1vZGFsOiBmYWxzZSwgaW5pdGlhbEZvY3VzOiAtMSwgcmV0dXJuRm9jdXM6IGZhbHNlLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgZ2V0RmxvYXRpbmdQcm9wcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWY6IHNldEZsb2F0aW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBqb2luQ2xzKGNsYXNzZXMoJ3BhbmVsJyksIHBhbmVsQ2xhc3NOYW1lKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGZsb2F0aW5nU3R5bGVzKSwgdHJhbnNpdGlvblN0eWxlcyksXG4gICAgICAgICAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiBbX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygncGFuZWwtYm9keScpLCBjaGlsZHJlbjogcGFuZWxCb2R5IH0pLCBwYW5lbEZvb3RlciAhPSBudWxsICYmIChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1mb290ZXInKSwgY2hpbGRyZW46IHBhbmVsRm9vdGVyIH0pKV0gfSkpIH0pKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gcG9ydGFsID8gX2pzeChGbG9hdGluZ1BvcnRhbCwgeyBjaGlsZHJlbjogcGFuZWxOb2RlIH0pIDogcGFuZWxOb2RlO1xuICAgICAgICAgICAgfSkoKV0gfSkpO1xufTtcblNlbGVjdEN1c3RvbS5kaXNwbGF5TmFtZSA9ICdTZWxlY3RDdXN0b20nO1xuZXhwb3J0IGRlZmF1bHQgbWVtbyhTZWxlY3RDdXN0b20pOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
249
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvU2VsZWN0L1NlbGVjdEN1c3RvbS5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L1NlbGVjdEN1c3RvbS50c3giXSwibmFtZXMiOlsiX2pzeFJ1bnRpbWUiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0MiIsIl91c2VFdmVudENhbGxiYWNrIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9Db25maWdQcm92aWRlciIsIl9JY29ucyIsIl9TcGlubmVyIiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9TZWxlY3RGaWVsZFNoZWxsIiwiX3VzZVNlbGVjdFNoZWxsMiIsIl91dGlscyIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiaXNSZW5kZXJhYmxlVGVtcGxhdGUiLCJ2YWx1ZSIsInVuZGVmaW5lZCIsIlNlbGVjdEN1c3RvbSIsImV4cG9ydHMiLCJwcm9wcyIsImxvY2FsZSIsInVzZUxvY2FsZSIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwic3R5bGUiLCJpZCIsIm5hbWUiLCJhcmlhTGFiZWwiLCJhcmlhTGFiZWxsZWRCeSIsIl9wcm9wcyRzaXplIiwic2l6ZSIsIl9wcm9wcyRzdGF0dXMiLCJzdGF0dXMiLCJfcHJvcHMkdmFyaWFudCIsInZhcmlhbnQiLCJfcHJvcHMkZGlzYWJsZWQiLCJkaXNhYmxlZCIsImRpc2FibGVkUHJvcCIsIl9wcm9wcyRyZWFkT25seSIsInJlYWRPbmx5IiwiX3Byb3BzJGxvYWRpbmciLCJsb2FkaW5nIiwibGFiZWwiLCJsYWJlbENsYXNzTmFtZSIsImluZm8iLCJkZXNjcmlwdGlvbiIsImZlZWRiYWNrIiwiX3Byb3BzJHJlcXVpcmVkIiwicmVxdWlyZWQiLCJwcmVmaXgiLCJfcHJvcHMkcGxhY2Vob2xkZXIiLCJwbGFjZWhvbGRlciIsInNlbGVjdGVkVGVtcGxhdGUiLCJfcHJvcHMkYXJyb3ciLCJhcnJvdyIsIm9wZW4iLCJfcHJvcHMkZGVmYXVsdE9wZW4iLCJkZWZhdWx0T3BlbiIsIl9wcm9wcyRwb3J0YWwiLCJwb3J0YWwiLCJwYW5lbENsYXNzTmFtZSIsInBhbmVsRm9vdGVyIiwibGlzdE1heEhlaWdodCIsImxpc3RIZWlnaHQiLCJwbGFjZW1lbnQiLCJwYW5lbFdpZHRoIiwib2Zmc2V0IiwiX3Byb3BzJHJvbGUiLCJyb2xlIiwicm9sZVByb3AiLCJhbmltYXRpb24iLCJvbk9wZW5DaGFuZ2UiLCJvbkJsdXIiLCJjaGlsZHJlbiIsInJlZiIsImludGVyYWN0aXZlIiwiY2xhc3NlcyIsInJvb3RDbGFzc25hbWVzIiwiYXV0b0lkIiwidXNlSWQiLCJ0cmlnZ2VySWQiLCJsYWJlbElkIiwiZGVzY3JpcHRpb25JZCIsImZlZWRiYWNrSWQiLCJub3JtYWxpemVkU2l6ZSIsIm5vcm1hbGl6ZVNpemUiLCJmbG9hdGluZ1JlZiIsInVzZVJlZiIsInRyaWdnZXJSZWYiLCJoYW5kbGVUcmlnZ2VyUmVmIiwidXNlRXZlbnRDYWxsYmFjayIsIm5vZGUiLCJjdXJyZW50IiwiX3VzZVNlbGVjdFNoZWxsIiwidXNlU2VsZWN0U2hlbGwiLCJpc09wZW4iLCJzZXRPcGVuIiwicmVmcyIsImNvbnRleHQiLCJmbG9hdGluZ1N0eWxlcyIsInRyYW5zaXRpb25TdHlsZXMiLCJpc01vdW50ZWQiLCJiYXNlSW50ZXJhY3Rpb25zIiwic2V0UmVmZXJlbmNlIiwic2V0RmxvYXRpbmciLCJfdXNlSW50ZXJhY3Rpb25zIiwidXNlSW50ZXJhY3Rpb25zIiwiZ2V0UmVmZXJlbmNlUHJvcHMiLCJnZXRGbG9hdGluZ1Byb3BzIiwibm90aWZ5Qmx1cklmT3V0c2lkZSIsInJlbGF0ZWRUYXJnZXQiLCJldmVudCIsIl9hIiwiX2IiLCJuZXh0VGFyZ2V0Iiwid2l0aGluVHJpZ2dlciIsImNvbnRhaW5zIiwid2l0aGluRmxvYXRpbmciLCJoYW5kbGVUcmlnZ2VyQmx1ciIsImNsb3NlIiwiZm9jdXMiLCJwcmV2ZW50U2Nyb2xsIiwidHJpZ2dlckNvbnRlbnQiLCJmb250U2l6ZSIsImdldEZvbnRTaXplIiwiaGFzU2VsZWN0aW9uIiwidmFsdWVMYWJlbENsYXNzIiwidHJpZ2dlckNsYXNzTmFtZSIsImpvaW5DbHMiLCJjb25jYXQiLCJpY29uU2l6ZSIsImZsb2F0aW5nQXJpYUxhYmVsbGVkQnkiLCJkZXNjcmliZWRCeUlkcyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwicGFuZWxDdHgiLCJwYW5lbEJvZHkiLCJfanN4cyIsIlNlbGVjdEZpZWxkU2hlbGwiLCJhc3NpZ24iLCJ0eXBlIiwiX2pzeCIsIlNwaW5uZXIiLCJzdHJva2VXaWR0aCIsIkljb25zIiwiY29sb3IiLCJwYW5lbE5vZGUiLCJGbG9hdGluZ0ZvY3VzTWFuYWdlciIsIm1vZGFsIiwiaW5pdGlhbEZvY3VzIiwicmV0dXJuRm9jdXMiLCJGbG9hdGluZ1BvcnRhbCIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiLCJtZW1vIl0sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTtBQ0FBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE9BQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFKLE9BQUE7QUFDQSxJQUFBSyxlQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxRQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxXQUFBLEdBQUFDLHVCQUFBLENBQUFULE9BQUE7QUFHQSxJQUFBVSxpQkFBQSxHQUFBTixzQkFBQSxDQUFBSixPQUFBO0FBQ0EsSUFBQVcsZ0JBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLE1BQUEsR0FBQVosT0FBQTtBQUNBQSxPQUFBO0FBQWlCLFNBQUFTLHdCQUFBSSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBTix1QkFBQSxZQUFBQSx3QkFBQUksQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFLLFVBQUEsU0FBQUwsQ0FBQSxNQUFBTSxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxLQUFBQyxTQUFBLG1CQUFBVCxDQUFBLGlCQUFBQSxDQUFBLGdCQUFBVSxPQUFBLENBQUFWLENBQUEsMEJBQUFBLENBQUEsU0FBQVEsQ0FBQSxNQUFBRixDQUFBLEdBQUFMLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLFFBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBWCxDQUFBLFVBQUFNLENBQUEsQ0FBQU0sR0FBQSxDQUFBWixDQUFBLEdBQUFNLENBQUEsQ0FBQU8sR0FBQSxDQUFBYixDQUFBLEVBQUFRLENBQUEsY0FBQU0sRUFBQSxJQUFBZCxDQUFBLGdCQUFBYyxFQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBaEIsQ0FBQSxFQUFBYyxFQUFBLE9BQUFQLENBQUEsSUFBQUQsQ0FBQSxHQUFBVyxNQUFBLENBQUFDLGNBQUEsS0FBQUQsTUFBQSxDQUFBRSx3QkFBQSxDQUFBbkIsQ0FBQSxFQUFBYyxFQUFBLE9BQUFQLENBQUEsQ0FBQUssR0FBQSxJQUFBTCxDQUFBLENBQUFNLEdBQUEsSUFBQVAsQ0FBQSxDQUFBRSxDQUFBLEVBQUFNLEVBQUEsRUFBQVAsQ0FBQSxJQUFBQyxDQUFBLENBQUFNLEVBQUEsSUFBQWQsQ0FBQSxDQUFBYyxFQUFBLFdBQUFOLENBQUEsS0FBQVIsQ0FBQSxFQUFBQyxDQUFBO0FBRWpCLElBQU1tQixvQkFBb0IsR0FBRyxTQUF2QkEsb0JBQW9CQSxDQUFJQyxLQUFjO0VBQUEsT0FDMUNBLEtBQUssS0FBSyxJQUFJLElBQUlBLEtBQUssS0FBS0MsU0FBUyxJQUFJRCxLQUFLLEtBQUssS0FBSztBQUFBO0FBRW5ELElBQU1FLFlBQVksR0FBQUMsT0FBQSxDQUFBRCxZQUFBLEdBQTBCLFNBQXRDQSxZQUFZQSxDQUEyQkUsS0FBSyxFQUFJO0VBQzNELElBQU1DLE1BQU0sR0FBRyxJQUFBQyx5QkFBUyxFQUFDLFFBQVEsQ0FBQztFQUNsQyxJQUFBQyxnQkFBQSxHQXdDSUgsS0FBSyxDQXZDUEksU0FBUztJQUFUQSxTQUFTLEdBQUFELGdCQUFBLGNBQUcsRUFBRSxHQUFBQSxnQkFBQTtJQUFBRSxnQkFBQSxHQXVDWkwsS0FBSyxDQXRDUE0sU0FBUztJQUFUQSxTQUFTLEdBQUFELGdCQUFBLGNBQUcsUUFBUSxHQUFBQSxnQkFBQTtJQUNwQkUsS0FBSyxHQXFDSFAsS0FBSyxDQXJDUE8sS0FBSztJQUNMQyxFQUFFLEdBb0NBUixLQUFLLENBcENQUSxFQUFFO0lBQ0ZDLElBQUksR0FtQ0ZULEtBQUssQ0FuQ1BTLElBQUk7SUFDVUMsU0FBUyxHQWtDckJWLEtBQUssQ0FsQ1AsWUFBWTtJQUNPVyxjQUFjLEdBaUMvQlgsS0FBSyxDQWpDUCxpQkFBaUI7SUFBQVksV0FBQSxHQWlDZlosS0FBSyxDQWhDUGEsSUFBSTtJQUFKQSxJQUFJLEdBQUFELFdBQUEsY0FBRyxPQUFPLEdBQUFBLFdBQUE7SUFBQUUsYUFBQSxHQWdDWmQsS0FBSyxDQS9CUGUsTUFBTTtJQUFOQSxNQUFNLEdBQUFELGFBQUEsY0FBRyxTQUFTLEdBQUFBLGFBQUE7SUFBQUUsY0FBQSxHQStCaEJoQixLQUFLLENBOUJQaUIsT0FBTztJQUFQQSxPQUFPLEdBQUFELGNBQUEsY0FBRyxNQUFNLEdBQUFBLGNBQUE7SUFBQUUsZUFBQSxHQThCZGxCLEtBQUssQ0E3QlBtQixRQUFRO0lBQUVDLFlBQVksR0FBQUYsZUFBQSxjQUFHLEtBQUssR0FBQUEsZUFBQTtJQUFBRyxlQUFBLEdBNkI1QnJCLEtBQUssQ0E1QlBzQixRQUFRO0lBQVJBLFFBQVEsR0FBQUQsZUFBQSxjQUFHLEtBQUssR0FBQUEsZUFBQTtJQUFBRSxjQUFBLEdBNEJkdkIsS0FBSyxDQTNCUHdCLE9BQU87SUFBUEEsT0FBTyxHQUFBRCxjQUFBLGNBQUcsS0FBSyxHQUFBQSxjQUFBO0lBQ2ZFLEtBQUssR0EwQkh6QixLQUFLLENBMUJQeUIsS0FBSztJQUNMQyxjQUFjLEdBeUJaMUIsS0FBSyxDQXpCUDBCLGNBQWM7SUFDZEMsSUFBSSxHQXdCRjNCLEtBQUssQ0F4QlAyQixJQUFJO0lBQ0pDLFdBQVcsR0F1QlQ1QixLQUFLLENBdkJQNEIsV0FBVztJQUNYQyxRQUFRLEdBc0JON0IsS0FBSyxDQXRCUDZCLFFBQVE7SUFBQUMsZUFBQSxHQXNCTjlCLEtBQUssQ0FyQlArQixRQUFRO0lBQVJBLFFBQVEsR0FBQUQsZUFBQSxjQUFHLElBQUksR0FBQUEsZUFBQTtJQUNmRSxNQUFNLEdBb0JKaEMsS0FBSyxDQXBCUGdDLE1BQU07SUFBQUMsa0JBQUEsR0FvQkpqQyxLQUFLLENBbkJQa0MsV0FBVztJQUFYQSxXQUFXLEdBQUFELGtCQUFBLGNBQUdoQyxNQUFNLENBQUNpQyxXQUFXLEdBQUFELGtCQUFBO0lBQ2hDRSxnQkFBZ0IsR0FrQmRuQyxLQUFLLENBbEJQbUMsZ0JBQWdCO0lBQUFDLFlBQUEsR0FrQmRwQyxLQUFLLENBakJQcUMsS0FBSztJQUFMQSxLQUFLLEdBQUFELFlBQUEsY0FBRyxJQUFJLEdBQUFBLFlBQUE7SUFDWkUsSUFBSSxHQWdCRnRDLEtBQUssQ0FoQlBzQyxJQUFJO0lBQUFDLGtCQUFBLEdBZ0JGdkMsS0FBSyxDQWZQd0MsV0FBVztJQUFYQSxXQUFXLEdBQUFELGtCQUFBLGNBQUcsS0FBSyxHQUFBQSxrQkFBQTtJQUFBRSxhQUFBLEdBZWpCekMsS0FBSyxDQWRQMEMsTUFBTTtJQUFOQSxNQUFNLEdBQUFELGFBQUEsY0FBRyxJQUFJLEdBQUFBLGFBQUE7SUFDYkUsY0FBYyxHQWFaM0MsS0FBSyxDQWJQMkMsY0FBYztJQUNkQyxXQUFXLEdBWVQ1QyxLQUFLLENBWlA0QyxXQUFXO0lBQ1hDLGFBQWEsR0FXWDdDLEtBQUssQ0FYUDZDLGFBQWE7SUFDYkMsVUFBVSxHQVVSOUMsS0FBSyxDQVZQOEMsVUFBVTtJQUNWQyxTQUFTLEdBU1AvQyxLQUFLLENBVFArQyxTQUFTO0lBQ1RDLFVBQVUsR0FRUmhELEtBQUssQ0FSUGdELFVBQVU7SUFDVkMsTUFBTSxHQU9KakQsS0FBSyxDQVBQaUQsTUFBTTtJQUFBQyxXQUFBLEdBT0psRCxLQUFLLENBTlBtRCxJQUFJO0lBQUVDLFFBQVEsR0FBQUYsV0FBQSxjQUFHLFFBQVEsR0FBQUEsV0FBQTtJQUN6QkcsU0FBUyxHQUtQckQsS0FBSyxDQUxQcUQsU0FBUztJQUNUQyxZQUFZLEdBSVZ0RCxLQUFLLENBSlBzRCxZQUFZO0lBQ1pDLE1BQU0sR0FHSnZELEtBQUssQ0FIUHVELE1BQU07SUFDTkMsUUFBUSxHQUVOeEQsS0FBSyxDQUZQd0QsUUFBUTtJQUNSQyxHQUFHLEdBQ0R6RCxLQUFLLENBRFB5RCxHQUFHO0VBRUwsSUFBTXRDLFFBQVEsR0FBR0MsWUFBWSxJQUFJSSxPQUFPO0VBQ3hDLElBQU1rQyxXQUFXLEdBQUcsQ0FBQ3ZDLFFBQVEsSUFBSSxDQUFDRyxRQUFRO0VBRTFDLElBQU1xQyxPQUFPLEdBQUcsSUFBQUMsc0JBQWMsRUFBQ3RELFNBQVMsQ0FBQztFQUN6QyxJQUFNdUQsTUFBTSxHQUFHLElBQUFDLGFBQUssRUFBQSxDQUFFO0VBQ3RCLElBQU1DLFNBQVMsR0FBR3ZELEVBQUUsS0FBQSxJQUFBLElBQUZBLEVBQUUsS0FBQSxLQUFBLENBQUEsR0FBRkEsRUFBRSxHQUFJcUQsTUFBTTtFQUM5QixJQUFNRyxPQUFPLEdBQUcsSUFBQUYsYUFBSyxFQUFBLENBQUU7RUFDdkIsSUFBTUcsYUFBYSxHQUFHLElBQUFILGFBQUssRUFBQSxDQUFFO0VBQzdCLElBQU1JLFVBQVUsR0FBRyxJQUFBSixhQUFLLEVBQUEsQ0FBRTtFQUUxQixJQUFNSyxjQUFjLEdBQUcsSUFBQUMsb0JBQWEsRUFBQ3ZELElBQUksQ0FBQztFQUMxQyxJQUFNd0QsV0FBVyxHQUFHLElBQUFDLGNBQU0sRUFBd0IsSUFBSSxDQUFDO0VBQ3ZELElBQU1DLFVBQVUsR0FBRyxJQUFBRCxjQUFNLEVBQTJCLElBQUksQ0FBQztFQUV6RCxJQUFNRSxnQkFBZ0IsR0FBRyxJQUFBQyw0QkFBZ0IsRUFBQyxVQUFDQyxJQUE4QixFQUFJO0lBQzNFSCxVQUFVLENBQUNJLE9BQU8sR0FBR0QsSUFBSTtJQUN6QixJQUFJakIsR0FBRyxFQUFFO01BQ05BLEdBQTZDLENBQUNrQixPQUFPLEdBQUdELElBQUk7SUFDL0Q7RUFDRixDQUFDLENBQUM7RUFFRixJQUFBRSxlQUFBLEdBU0ksSUFBQUMsK0JBQWMsRUFBb0I7TUFDcEN2QyxJQUFJLEVBQUpBLElBQUk7TUFDSkUsV0FBVyxFQUFYQSxXQUFXO01BQ1hjLFlBQVksRUFBWkEsWUFBWTtNQUNabkMsUUFBUSxFQUFSQSxRQUFRO01BQ1JHLFFBQVEsRUFBUkEsUUFBUTtNQUNSeUIsU0FBUyxFQUFUQSxTQUFTO01BQ1RDLFVBQVUsRUFBVkEsVUFBVTtNQUNWSCxhQUFhLEVBQWJBLGFBQWE7TUFDYkMsVUFBVSxFQUFWQSxVQUFVO01BQ1ZPLFNBQVMsRUFBVEEsU0FBUztNQUNURixJQUFJLEVBQUVDLFFBQVE7TUFDZEgsTUFBTSxFQUFOQTtJRHhEQSxDQ3lERCxDQUFDO0lBckJBNkIsTUFBTSxHQUFBRixlQUFBLENBQU5FLE1BQU07SUFDTkMsT0FBTyxHQUFBSCxlQUFBLENBQVBHLE9BQU87SUFDUEMsSUFBSSxHQUFBSixlQUFBLENBQUpJLElBQUk7SUFDSkMsT0FBTyxHQUFBTCxlQUFBLENBQVBLLE9BQU87SUFDUEMsY0FBYyxHQUFBTixlQUFBLENBQWRNLGNBQWM7SUFDZEMsZ0JBQWdCLEdBQUFQLGVBQUEsQ0FBaEJPLGdCQUFnQjtJQUNoQkMsU0FBUyxHQUFBUixlQUFBLENBQVRRLFNBQVM7SUFDVEMsZ0JBQWdCLEdBQUFULGVBQUEsQ0FBaEJTLGdCQUFnQjtFQWdCbEIsSUFBTUMsWUFBWSxHQUFHLElBQUFiLDRCQUFnQixFQUFDLFVBQUNDLElBQThCLEVBQUk7SUFDdkVNLElBQUksQ0FBQ00sWUFBWSxDQUFDWixJQUFJLENBQUM7SUFDdkJGLGdCQUFnQixDQUFDRSxJQUFJLENBQUM7RUFDeEIsQ0FBQyxDQUFDO0VBRUYsSUFBTWEsV0FBVyxHQUFHLElBQUFkLDRCQUFnQixFQUFDLFVBQUNDLElBQTJCLEVBQUk7SUFDbkVNLElBQUksQ0FBQ08sV0FBVyxDQUFDYixJQUFJLENBQUM7SUFDdEJMLFdBQVcsQ0FBQ00sT0FBTyxHQUFHRCxJQUFJO0VBQzVCLENBQUMsQ0FBQztFQUVGLElBQUFjLGdCQUFBLEdBQWdELElBQUFDLHNCQUFlLEVBQUNKLGdCQUFnQixDQUFDO0lBQXpFSyxpQkFBaUIsR0FBQUYsZ0JBQUEsQ0FBakJFLGlCQUFpQjtJQUFFQyxnQkFBZ0IsR0FBQUgsZ0JBQUEsQ0FBaEJHLGdCQUFnQjtFQUUzQyxJQUFNQyxtQkFBbUIsR0FBRyxJQUFBbkIsNEJBQWdCLEVBQzFDLFVBQUNvQixhQUFpQyxFQUFFQyxLQUErQixFQUFJO0lEN0RuRSxJQUFJQyxFQUFFLEVBQUVDLEVBQUU7SUM4RFosSUFBTUMsVUFBVSxHQUFHSixhQUE0QjtJQUMvQyxJQUFNSyxhQUFhLEdBQUcsQ0FBQyxFQUFFRCxVQUFVLEtBQUksQ0FBQUYsRUFBQSxHQUFBeEIsVUFBVSxDQUFDSSxPQUFPLE1BQUEsSUFBQSxJQUFBb0IsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVJLFFBQVEsQ0FBQ0YsVUFBVSxDQUFDLENBQUEsQ0FBQztJQUNoRixJQUFNRyxjQUFjLEdBQUcsQ0FBQyxFQUFFSCxVQUFVLEtBQUksQ0FBQUQsRUFBQSxHQUFBM0IsV0FBVyxDQUFDTSxPQUFPLE1BQUEsSUFBQSxJQUFBcUIsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUVHLFFBQVEsQ0FBQ0YsVUFBVSxDQUFDLENBQUEsQ0FBQztJQUVsRixJQUFJLENBQUNDLGFBQWEsSUFBSSxDQUFDRSxjQUFjLEVBQUU7TUFDckM3QyxNQUFNLEtBQUEsSUFBQSxJQUFOQSxNQUFNLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQU5BLE1BQU0sQ0FBR3VDLEtBQUssQ0FBQztJQUNqQjtFQUNGLENBQUMsQ0FDRjtFQUVELElBQU1PLGlCQUFpQixHQUFHLElBQUE1Qiw0QkFBZ0IsRUFBQyxVQUFDcUIsS0FBb0MsRUFBSTtJQUNsRkYsbUJBQW1CLENBQUNFLEtBQUssQ0FBQ0QsYUFBYSxFQUFFQyxLQUFnQyxDQUFDO0VBQzVFLENBQUMsQ0FBQztFQUVGLElBQU1RLEtBQUssR0FBRyxJQUFBN0IsNEJBQWdCLEVBQUMsWUFBSztJRGhFOUIsSUFBSXNCLEVBQUU7SUNpRVZoQixPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ2QsQ0FBQWdCLEVBQUEsR0FBQXhCLFVBQVUsQ0FBQ0ksT0FBTyxNQUFBLElBQUEsSUFBQW9CLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxDQUFFUSxLQUFLLENBQUM7TUFBRUMsYUFBYSxFQUFFO0lBQUksQ0FBRSxDQUFDO0VBQ3BELENBQUMsQ0FBQztFQUVGLElBQU1DLGNBQWMsR0FDbEIsT0FBT3RFLGdCQUFnQixLQUFLLFVBQVUsR0FDbENBLGdCQUFnQixDQUFDO0lBQ2ZHLElBQUksRUFBRXdDLE1BQU07SUFDWjNELFFBQVEsRUFBUkEsUUFBUTtJQUNSRyxRQUFRLEVBQVJBLFFBQVE7SUFDUlQsSUFBSSxFQUFFc0QsY0FBYztJQUNwQnVDLFFBQVEsRUFBRSxJQUFBQyxrQkFBVyxFQUFDeEMsY0FBYztFRGpFdEMsQ0NrRUMsQ0FBQyxHQUNGaEMsZ0JBQWdCO0VBQ3RCLElBQU15RSxZQUFZLEdBQUdqSCxvQkFBb0IsQ0FBQzhHLGNBQWMsQ0FBQztFQUV6RCxJQUFNSSxlQUFlLEdBQUdELFlBQVksR0FBRyxPQUFPLEdBQUcsYUFBYTtFQUM5RCxJQUFNRSxnQkFBZ0IsR0FBR25ELE9BQU8sQ0FDOUIsU0FBUyxFQUNULElBQUFvRCxtQkFBTyxFQUNMcEQsT0FBTyxZQUFBcUQsTUFBQSxDQUFZN0MsY0FBYyxDQUFFLENBQUMsRUFDcENSLE9BQU8sWUFBQXFELE1BQUEsQ0FBWS9GLE9BQU8sQ0FBRSxDQUFDLEVBQzdCNkQsTUFBTSxJQUFJbkIsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUNqQ2lELFlBQVksR0FBR2pELE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHQSxPQUFPLENBQUMscUJBQXFCLENBQUMsRUFDekU1QyxNQUFNLEtBQUssU0FBUyxJQUFJNEMsT0FBTyxZQUFBcUQsTUFBQSxDQUFZakcsTUFBTSxDQUFFLENBQUMsRUFDcERJLFFBQVEsSUFBSXdDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxFQUN2Q3JDLFFBQVEsSUFBSSxDQUFDSCxRQUFRLElBQUl3QyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FDckQsQ0FDRjtFQUNELElBQU1zRCxRQUFRLEdBQUc5QyxjQUFjLEtBQUssT0FBTyxHQUFHLEVBQUUsR0FBRyxFQUFFO0VBQ3JELElBQU0rQyxzQkFBc0IsR0FBR3ZHLGNBQWMsS0FBQSxJQUFBLElBQWRBLGNBQWMsS0FBQSxLQUFBLENBQUEsR0FBZEEsY0FBYyxHQUFLYyxLQUFLLEdBQUd1QyxPQUFPLEdBQUduRSxTQUFVO0VBQzlFLElBQU1zSCxjQUFjLEdBQ2xCLENBQUN2RixXQUFXLEdBQUdxQyxhQUFhLEdBQUcsSUFBSSxFQUFFcEMsUUFBUSxHQUFHcUMsVUFBVSxHQUFHLElBQUksQ0FBQyxDQUMvRGtELE1BQU0sQ0FBQ0MsT0FBTyxDQUFDLENBQ2ZDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSXpILFNBQVM7RUFFM0IsSUFBTTBILFFBQVEsR0FBNkI7SUFDekNqQixLQUFLLEVBQUxBLEtBQUs7SUFDTGhFLElBQUksRUFBRXdDLE1BQU07SUFDWmpFLElBQUksRUFBRXNELGNBQWM7SUFDcEJ1QyxRQUFRLEVBQUUsSUFBQUMsa0JBQVcsRUFBQ3hDLGNBQWM7RUQvRXBDLENDZ0ZEO0VBQ0QsSUFBTXFELFNBQVMsR0FBRyxPQUFPaEUsUUFBUSxLQUFLLFVBQVUsR0FBR0EsUUFBUSxDQUFDK0QsUUFBUSxDQUFDLEdBQUcvRCxRQUFRO0VBRWhGLE9BQ0UsSUFBQWlFLGdCQUFBLEVBQUNDLDRCQUFnQixFQUFBO0lBQ2YvRCxPQUFPLEVBQUVBLE9BQU87SUFDaEJ2RCxTQUFTLEVBQUVBLFNBQVM7SUFDcEJTLElBQUksRUFBRXNELGNBQWM7SUFDcEJsRCxPQUFPLEVBQUVBLE9BQU87SUFDaEJGLE1BQU0sRUFBRUEsTUFBTTtJQUNkSSxRQUFRLEVBQUVBLFFBQVE7SUFDbEJHLFFBQVEsRUFBRUEsUUFBUTtJQUNsQkUsT0FBTyxFQUFFQSxPQUFPO0lBQ2hCQyxLQUFLLEVBQUVBLEtBQUs7SUFDWkMsY0FBYyxFQUFFQSxjQUFjO0lBQzlCQyxJQUFJLEVBQUVBLElBQUk7SUFDVkMsV0FBVyxFQUFFQSxXQUFXO0lBQ3hCQyxRQUFRLEVBQUVBLFFBQVE7SUFDbEJFLFFBQVEsRUFBRUEsUUFBUTtJQUNsQmlDLE9BQU8sRUFBRUEsT0FBTztJQUNoQkMsYUFBYSxFQUFFQSxhQUFhO0lBQzVCQyxVQUFVLEVBQUVBLFVBQVU7SUFBQVYsUUFBQSxFQUFBLENBRXRCLElBQUFpRSxnQkFBQSxFQUFBLFFBQUEsRUFBQWpJLE1BQUEsQ0FBQW1JLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDTWpDLGlCQUFpQixDQUFDO01BQ3BCakMsR0FBRyxFQUFFNkIsWUFBWTtNQUNqQjlFLEVBQUUsRUFBRXVELFNBQVM7TUFDYjZELElBQUksRUFBRSxRQUFRO01BQ2RuSCxJQUFJLEVBQUpBLElBQUk7TUFDSlUsUUFBUSxFQUFSQSxRQUFRO01BQ1IsZUFBZSxFQUFFRyxRQUFRLElBQUl6QixTQUFTO01BQ3RDVSxLQUFLLEVBQUxBLEtBQUs7TUFDTEgsU0FBUyxFQUFFMEcsZ0JBQWdCO01BQzNCdkQsTUFBTSxFQUFFOEMsaUJBQWlCO01BQ3pCLFlBQVksRUFBRTNGLFNBQVM7TUFDdkIsaUJBQWlCLEVBQUV3RyxzQkFBc0I7TUFDekMsa0JBQWtCLEVBQUVDO0lEckdsQixDQ3NHSCxDQUFDLEVBQUE7TUFBQTNELFFBQUEsRUFBQSxDQUVGLElBQUFpRSxnQkFBQSxFQUFBLE1BQUEsRUFBQTtRQUFNckgsU0FBUyxFQUFFdUQsT0FBTyxDQUFDLFNBQVMsQ0FBQztRQUFBSCxRQUFBLEVBQUEsQ0FDaEN4QixNQUFNLElBQUksSUFBQTZGLGVBQUEsRUFBQSxNQUFBLEVBQUE7VUFBTXpILFNBQVMsRUFBRXVELE9BQU8sQ0FBQyxRQUFRLENBQUM7VUFBQUgsUUFBQSxFQUFHeEI7UUFBTSxDQUFBLENBQVEsRUFDOUQsSUFBQTZGLGVBQUEsRUFBQSxNQUFBLEVBQUE7VUFDRXpILFNBQVMsRUFBRXVELE9BQU8sQ0FDaEJrRCxlQUFlLEVBQ2YsSUFBQUUsbUJBQU8sRUFDTHBELE9BQU8sSUFBQXFELE1BQUEsQ0FBSUgsZUFBZSxPQUFBRyxNQUFBLENBQUk3QyxjQUFjLENBQUUsQ0FBQyxFQUMvQ2hELFFBQVEsSUFBSXdDLE9BQU8sSUFBQXFELE1BQUEsQ0FBSUgsZUFBZSxjQUFXLENBQUMsQ0FDbkQsQ0FDRjtVQUFBckQsUUFBQSxFQUVBb0QsWUFBWSxHQUFHSCxjQUFjLEdBQUd2RTtRQUFXLENBQUEsQ0FDdkM7TUFBQSxDQUFBLENBQ0YsRUFDTkcsS0FBSyxJQUNKLElBQUF3RixlQUFBLEVBQUEsTUFBQSxFQUFBO1FBQU16SCxTQUFTLEVBQUV1RCxPQUFPLENBQUMsTUFBTSxDQUFDO1FBQUFILFFBQUEsRUFFNUJoQyxPQUFPLEdBQ0gsSUFBQXFHLGVBQUEsRUFBQ0MsZ0JBQU8sRUFBQTtVQUFDakgsSUFBSSxFQUFFb0csUUFBUTtVQUFFYyxXQUFXLEVBQUU7UUFBQyxDQUFBLENBQUksR0FDM0N6RyxRQUFRLEdBQ04sSUFBSSxHQUNKLElBQUF1RyxlQUFBLEVBQUNHLFlBQUssRUFBQTtVQUFDdkgsSUFBSSxFQUFFcUUsTUFBTSxHQUFHLFdBQVcsR0FBRyxhQUFhO1VBQUVqRSxJQUFJLEVBQUVvRyxRQUFRO1VBQUVnQixLQUFLLEVBQUM7UUFBYyxDQUFBO01BQUcsQ0FBQSxDQUdyRztJQUFBLENBQUEsQ0FBQSxDQUNNLEVBRVI3QyxTQUFTLElBQUkxQixXQUFXLElBQUssWUFBSztNQUNqQyxJQUFNd0UsU0FBUyxHQUNiLElBQUFMLGVBQUEsRUFBQ00sMkJBQW9CLEVBQUE7UUFDbkJsRCxPQUFPLEVBQUVBLE9BQU87UUFDaEJtRCxLQUFLLEVBQUUsS0FBSztRQUNaQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ2hCQyxXQUFXLEVBQUUsS0FBSztRQUFBOUUsUUFBQSxFQUVsQixJQUFBaUUsZ0JBQUEsRUFBQSxLQUFBLEVBQUFqSSxNQUFBLENBQUFtSSxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ01oQyxnQkFBZ0IsQ0FBQztVQUNuQmxDLEdBQUcsRUFBRThCLFdBQVc7VUFDaEJuRixTQUFTLEVBQUUsSUFBQTJHLG1CQUFPLEVBQUNwRCxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUVoQixjQUFjLENBQUM7VUFDcERwQyxLQUFLLEVBQUFmLE1BQUEsQ0FBQW1JLE1BQUEsQ0FBQW5JLE1BQUEsQ0FBQW1JLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBT3pDLGNBQWMsQ0FBQSxFQUFLQyxnQkFBZ0I7UUR0STNDLENDdUlMLENBQUMsRUFBQTtVQUFBM0IsUUFBQSxFQUFBLENBRUYsSUFBQXFFLGVBQUEsRUFBQSxLQUFBLEVBQUE7WUFBS3pILFNBQVMsRUFBRXVELE9BQU8sQ0FBQyxZQUFZLENBQUM7WUFBQUgsUUFBQSxFQUFHZ0U7VUFBUyxDQUFBLENBQU8sRUFDdkQ1RSxXQUFXLElBQUksSUFBSSxJQUNsQixJQUFBaUYsZUFBQSxFQUFBLEtBQUEsRUFBQTtZQUFLekgsU0FBUyxFQUFFdUQsT0FBTyxDQUFDLGNBQWMsQ0FBQztZQUFBSCxRQUFBLEVBQUdaO1VBQVcsQ0FBQSxDQUN0RDtRQUFBLENBQUEsQ0FBQTtNQUNHLENBQUEsQ0FFVDtNQUVELE9BQU9GLE1BQU0sR0FBRyxJQUFBbUYsZUFBQSxFQUFDVSxxQkFBYyxFQUFBO1FBQUEvRSxRQUFBLEVBQUUwRTtNQUFTLENBQUEsQ0FBa0IsR0FBR0EsU0FBUztJQUMxRSxDQUFDLENBQUMsQ0FBRTtFQUFBLENBQUEsQ0FDYTtBQUV2QixDQUFDO0FBRURwSSxZQUFZLENBQUMwSSxXQUFXLEdBQUcsY0FBYztBQUFDLElBQUFDLFFBQUEsR0FBQTFJLE9BQUEsMkJBRTNCLElBQUEySSxZQUFJLEVBQUM1SSxZQUFZLENBQUMiLCJmaWxlIjoiY29tcG9uZW50cy9TZWxlY3QvU2VsZWN0Q3VzdG9tLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IEZsb2F0aW5nRm9jdXNNYW5hZ2VyLCBGbG9hdGluZ1BvcnRhbCwgdXNlSW50ZXJhY3Rpb25zIH0gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcbmltcG9ydCB7IG1lbW8sIHVzZUlkLCB1c2VSZWYgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHsgdXNlTG9jYWxlIH0gZnJvbSAnLi4vQ29uZmlnUHJvdmlkZXInO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi9JY29ucyc7XG5pbXBvcnQgeyBTcGlubmVyIH0gZnJvbSAnLi4vU3Bpbm5lcic7XG5pbXBvcnQgeyBqb2luQ2xzLCBkZWZhdWx0IGFzIHJvb3RDbGFzc25hbWVzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgU2VsZWN0RmllbGRTaGVsbCBmcm9tICcuL1NlbGVjdEZpZWxkU2hlbGwnO1xuaW1wb3J0IHsgdXNlU2VsZWN0U2hlbGwgfSBmcm9tICcuL3VzZVNlbGVjdFNoZWxsJztcbmltcG9ydCB7IGdldEZvbnRTaXplLCBub3JtYWxpemVTaXplIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgaXNSZW5kZXJhYmxlVGVtcGxhdGUgPSAodmFsdWUpID0+IHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IGZhbHNlO1xuZXhwb3J0IGNvbnN0IFNlbGVjdEN1c3RvbSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGxvY2FsZSA9IHVzZUxvY2FsZSgnU2VsZWN0Jyk7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgPSAnJywgcHJlZml4Q2xzID0gJ3NlbGVjdCcsIHN0eWxlLCBpZCwgbmFtZSwgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsICdhcmlhLWxhYmVsbGVkYnknOiBhcmlhTGFiZWxsZWRCeSwgc2l6ZSA9ICdsYXJnZScsIHN0YXR1cyA9ICdkZWZhdWx0JywgdmFyaWFudCA9ICdmaWxsJywgZGlzYWJsZWQ6IGRpc2FibGVkUHJvcCA9IGZhbHNlLCByZWFkT25seSA9IGZhbHNlLCBsb2FkaW5nID0gZmFsc2UsIGxhYmVsLCBsYWJlbENsYXNzTmFtZSwgaW5mbywgZGVzY3JpcHRpb24sIGZlZWRiYWNrLCByZXF1aXJlZCA9IHRydWUsIHByZWZpeCwgcGxhY2Vob2xkZXIgPSBsb2NhbGUucGxhY2Vob2xkZXIsIHNlbGVjdGVkVGVtcGxhdGUsIGFycm93ID0gdHJ1ZSwgb3BlbiwgZGVmYXVsdE9wZW4gPSBmYWxzZSwgcG9ydGFsID0gdHJ1ZSwgcGFuZWxDbGFzc05hbWUsIHBhbmVsRm9vdGVyLCBsaXN0TWF4SGVpZ2h0LCBsaXN0SGVpZ2h0LCBwbGFjZW1lbnQsIHBhbmVsV2lkdGgsIG9mZnNldCwgcm9sZTogcm9sZVByb3AgPSAnZGlhbG9nJywgYW5pbWF0aW9uLCBvbk9wZW5DaGFuZ2UsIG9uQmx1ciwgY2hpbGRyZW4sIHJlZiwgfSA9IHByb3BzO1xuICAgIGNvbnN0IGRpc2FibGVkID0gZGlzYWJsZWRQcm9wIHx8IGxvYWRpbmc7XG4gICAgY29uc3QgaW50ZXJhY3RpdmUgPSAhZGlzYWJsZWQgJiYgIXJlYWRPbmx5O1xuICAgIGNvbnN0IGNsYXNzZXMgPSByb290Q2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IGF1dG9JZCA9IHVzZUlkKCk7XG4gICAgY29uc3QgdHJpZ2dlcklkID0gaWQgIT09IG51bGwgJiYgaWQgIT09IHZvaWQgMCA/IGlkIDogYXV0b0lkO1xuICAgIGNvbnN0IGxhYmVsSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGZlZWRiYWNrSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRTaXplID0gbm9ybWFsaXplU2l6ZShzaXplKTtcbiAgICBjb25zdCBmbG9hdGluZ1JlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCB0cmlnZ2VyUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGhhbmRsZVRyaWdnZXJSZWYgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHRyaWdnZXJSZWYuY3VycmVudCA9IG5vZGU7XG4gICAgICAgIGlmIChyZWYpIHtcbiAgICAgICAgICAgIHJlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IHsgaXNPcGVuLCBzZXRPcGVuLCByZWZzLCBjb250ZXh0LCBmbG9hdGluZ1N0eWxlcywgdHJhbnNpdGlvblN0eWxlcywgaXNNb3VudGVkLCBiYXNlSW50ZXJhY3Rpb25zLCB9ID0gdXNlU2VsZWN0U2hlbGwoe1xuICAgICAgICBvcGVuLFxuICAgICAgICBkZWZhdWx0T3BlbixcbiAgICAgICAgb25PcGVuQ2hhbmdlLFxuICAgICAgICBkaXNhYmxlZCxcbiAgICAgICAgcmVhZE9ubHksXG4gICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgcGFuZWxXaWR0aCxcbiAgICAgICAgbGlzdE1heEhlaWdodCxcbiAgICAgICAgbGlzdEhlaWdodCxcbiAgICAgICAgYW5pbWF0aW9uLFxuICAgICAgICByb2xlOiByb2xlUHJvcCxcbiAgICAgICAgb2Zmc2V0LFxuICAgIH0pO1xuICAgIGNvbnN0IHNldFJlZmVyZW5jZSA9IHVzZUV2ZW50Q2FsbGJhY2soKG5vZGUpID0+IHtcbiAgICAgICAgcmVmcy5zZXRSZWZlcmVuY2Uobm9kZSk7XG4gICAgICAgIGhhbmRsZVRyaWdnZXJSZWYobm9kZSk7XG4gICAgfSk7XG4gICAgY29uc3Qgc2V0RmxvYXRpbmcgPSB1c2VFdmVudENhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIHJlZnMuc2V0RmxvYXRpbmcobm9kZSk7XG4gICAgICAgIGZsb2F0aW5nUmVmLmN1cnJlbnQgPSBub2RlO1xuICAgIH0pO1xuICAgIGNvbnN0IHsgZ2V0UmVmZXJlbmNlUHJvcHMsIGdldEZsb2F0aW5nUHJvcHMgfSA9IHVzZUludGVyYWN0aW9ucyhiYXNlSW50ZXJhY3Rpb25zKTtcbiAgICBjb25zdCBub3RpZnlCbHVySWZPdXRzaWRlID0gdXNlRXZlbnRDYWxsYmFjaygocmVsYXRlZFRhcmdldCwgZXZlbnQpID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgY29uc3QgbmV4dFRhcmdldCA9IHJlbGF0ZWRUYXJnZXQ7XG4gICAgICAgIGNvbnN0IHdpdGhpblRyaWdnZXIgPSAhIShuZXh0VGFyZ2V0ICYmICgoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBjb25zdCB3aXRoaW5GbG9hdGluZyA9ICEhKG5leHRUYXJnZXQgJiYgKChfYiA9IGZsb2F0aW5nUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9iID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYi5jb250YWlucyhuZXh0VGFyZ2V0KSkpO1xuICAgICAgICBpZiAoIXdpdGhpblRyaWdnZXIgJiYgIXdpdGhpbkZsb2F0aW5nKSB7XG4gICAgICAgICAgICBvbkJsdXIgPT09IG51bGwgfHwgb25CbHVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkJsdXIoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgaGFuZGxlVHJpZ2dlckJsdXIgPSB1c2VFdmVudENhbGxiYWNrKChldmVudCkgPT4ge1xuICAgICAgICBub3RpZnlCbHVySWZPdXRzaWRlKGV2ZW50LnJlbGF0ZWRUYXJnZXQsIGV2ZW50KTtcbiAgICB9KTtcbiAgICBjb25zdCBjbG9zZSA9IHVzZUV2ZW50Q2FsbGJhY2soKCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHNldE9wZW4oZmFsc2UpO1xuICAgICAgICAoX2EgPSB0cmlnZ2VyUmVmLmN1cnJlbnQpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5mb2N1cyh7IHByZXZlbnRTY3JvbGw6IHRydWUgfSk7XG4gICAgfSk7XG4gICAgY29uc3QgdHJpZ2dlckNvbnRlbnQgPSB0eXBlb2Ygc2VsZWN0ZWRUZW1wbGF0ZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICA/IHNlbGVjdGVkVGVtcGxhdGUoe1xuICAgICAgICAgICAgb3BlbjogaXNPcGVuLFxuICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICByZWFkT25seSxcbiAgICAgICAgICAgIHNpemU6IG5vcm1hbGl6ZWRTaXplLFxuICAgICAgICAgICAgZm9udFNpemU6IGdldEZvbnRTaXplKG5vcm1hbGl6ZWRTaXplKSxcbiAgICAgICAgfSlcbiAgICAgICAgOiBzZWxlY3RlZFRlbXBsYXRlO1xuICAgIGNvbnN0IGhhc1NlbGVjdGlvbiA9IGlzUmVuZGVyYWJsZVRlbXBsYXRlKHRyaWdnZXJDb250ZW50KTtcbiAgICBjb25zdCB2YWx1ZUxhYmVsQ2xhc3MgPSBoYXNTZWxlY3Rpb24gPyAndmFsdWUnIDogJ3BsYWNlaG9sZGVyJztcbiAgICBjb25zdCB0cmlnZ2VyQ2xhc3NOYW1lID0gY2xhc3NlcygndHJpZ2dlcicsIGpvaW5DbHMoY2xhc3NlcyhgdHJpZ2dlci0ke25vcm1hbGl6ZWRTaXplfWApLCBjbGFzc2VzKGB0cmlnZ2VyLSR7dmFyaWFudH1gKSwgaXNPcGVuICYmIGNsYXNzZXMoJ3RyaWdnZXItb3BlbicpLCBoYXNTZWxlY3Rpb24gPyBjbGFzc2VzKCd0cmlnZ2VyLWZpbGxlZCcpIDogY2xhc3NlcygndHJpZ2dlci1wbGFjZWhvbGRlcicpLCBzdGF0dXMgIT09ICdkZWZhdWx0JyAmJiBjbGFzc2VzKGB0cmlnZ2VyLSR7c3RhdHVzfWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLWRpc2FibGVkJyksIHJlYWRPbmx5ICYmICFkaXNhYmxlZCAmJiBjbGFzc2VzKCd0cmlnZ2VyLXJlYWRvbmx5JykpKTtcbiAgICBjb25zdCBpY29uU2l6ZSA9IG5vcm1hbGl6ZWRTaXplID09PSAnbGFyZ2UnID8gMjAgOiAxNjtcbiAgICBjb25zdCBmbG9hdGluZ0FyaWFMYWJlbGxlZEJ5ID0gYXJpYUxhYmVsbGVkQnkgIT09IG51bGwgJiYgYXJpYUxhYmVsbGVkQnkgIT09IHZvaWQgMCA/IGFyaWFMYWJlbGxlZEJ5IDogKGxhYmVsID8gbGFiZWxJZCA6IHVuZGVmaW5lZCk7XG4gICAgY29uc3QgZGVzY3JpYmVkQnlJZHMgPSBbZGVzY3JpcHRpb24gPyBkZXNjcmlwdGlvbklkIDogbnVsbCwgZmVlZGJhY2sgPyBmZWVkYmFja0lkIDogbnVsbF1cbiAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAuam9pbignICcpIHx8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBwYW5lbEN0eCA9IHtcbiAgICAgICAgY2xvc2UsXG4gICAgICAgIG9wZW46IGlzT3BlbixcbiAgICAgICAgc2l6ZTogbm9ybWFsaXplZFNpemUsXG4gICAgICAgIGZvbnRTaXplOiBnZXRGb250U2l6ZShub3JtYWxpemVkU2l6ZSksXG4gICAgfTtcbiAgICBjb25zdCBwYW5lbEJvZHkgPSB0eXBlb2YgY2hpbGRyZW4gPT09ICdmdW5jdGlvbicgPyBjaGlsZHJlbihwYW5lbEN0eCkgOiBjaGlsZHJlbjtcbiAgICByZXR1cm4gKF9qc3hzKFNlbGVjdEZpZWxkU2hlbGwsIHsgY2xhc3NlczogY2xhc3NlcywgY2xhc3NOYW1lOiBjbGFzc05hbWUsIHNpemU6IG5vcm1hbGl6ZWRTaXplLCB2YXJpYW50OiB2YXJpYW50LCBzdGF0dXM6IHN0YXR1cywgZGlzYWJsZWQ6IGRpc2FibGVkLCByZWFkT25seTogcmVhZE9ubHksIGxvYWRpbmc6IGxvYWRpbmcsIGxhYmVsOiBsYWJlbCwgbGFiZWxDbGFzc05hbWU6IGxhYmVsQ2xhc3NOYW1lLCBpbmZvOiBpbmZvLCBkZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sIGZlZWRiYWNrOiBmZWVkYmFjaywgcmVxdWlyZWQ6IHJlcXVpcmVkLCBsYWJlbElkOiBsYWJlbElkLCBkZXNjcmlwdGlvbklkOiBkZXNjcmlwdGlvbklkLCBmZWVkYmFja0lkOiBmZWVkYmFja0lkLCBjaGlsZHJlbjogW19qc3hzKFwiYnV0dG9uXCIsIE9iamVjdC5hc3NpZ24oe30sIGdldFJlZmVyZW5jZVByb3BzKHtcbiAgICAgICAgICAgICAgICByZWY6IHNldFJlZmVyZW5jZSxcbiAgICAgICAgICAgICAgICBpZDogdHJpZ2dlcklkLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAgJ2FyaWEtcmVhZG9ubHknOiByZWFkT25seSB8fCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgc3R5bGUsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiB0cmlnZ2VyQ2xhc3NOYW1lLFxuICAgICAgICAgICAgICAgIG9uQmx1cjogaGFuZGxlVHJpZ2dlckJsdXIsXG4gICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWwnOiBhcmlhTGFiZWwsXG4gICAgICAgICAgICAgICAgJ2FyaWEtbGFiZWxsZWRieSc6IGZsb2F0aW5nQXJpYUxhYmVsbGVkQnksXG4gICAgICAgICAgICAgICAgJ2FyaWEtZGVzY3JpYmVkYnknOiBkZXNjcmliZWRCeUlkcyxcbiAgICAgICAgICAgIH0pLCB7IGNoaWxkcmVuOiBbX2pzeHMoXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb250ZW50JyksIGNoaWxkcmVuOiBbcHJlZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwcmVmaXgnKSwgY2hpbGRyZW46IHByZWZpeCB9KSwgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXModmFsdWVMYWJlbENsYXNzLCBqb2luQ2xzKGNsYXNzZXMoYCR7dmFsdWVMYWJlbENsYXNzfS0ke25vcm1hbGl6ZWRTaXplfWApLCBkaXNhYmxlZCAmJiBjbGFzc2VzKGAke3ZhbHVlTGFiZWxDbGFzc30tZGlzYWJsZWRgKSkpLCBjaGlsZHJlbjogaGFzU2VsZWN0aW9uID8gdHJpZ2dlckNvbnRlbnQgOiBwbGFjZWhvbGRlciB9KV0gfSksIGFycm93ICYmIChfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaWNvbicpLCBjaGlsZHJlbjogbG9hZGluZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gX2pzeChTcGlubmVyLCB7IHNpemU6IGljb25TaXplLCBzdHJva2VXaWR0aDogMiB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogcmVhZE9ubHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogX2pzeChJY29ucywgeyBuYW1lOiBpc09wZW4gPyAnY2hldnJvblVwJyA6ICdjaGV2cm9uRG93bicsIHNpemU6IGljb25TaXplLCBjb2xvcjogXCJjdXJyZW50Q29sb3JcIiB9KSB9KSldIH0pKSwgaXNNb3VudGVkICYmIGludGVyYWN0aXZlICYmICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcGFuZWxOb2RlID0gKF9qc3goRmxvYXRpbmdGb2N1c01hbmFnZXIsIHsgY29udGV4dDogY29udGV4dCwgbW9kYWw6IGZhbHNlLCBpbml0aWFsRm9jdXM6IC0xLCByZXR1cm5Gb2N1czogZmFsc2UsIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCBnZXRGbG9hdGluZ1Byb3BzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZjogc2V0RmxvYXRpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU6IGpvaW5DbHMoY2xhc3NlcygncGFuZWwnKSwgcGFuZWxDbGFzc05hbWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU6IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZmxvYXRpbmdTdHlsZXMpLCB0cmFuc2l0aW9uU3R5bGVzKSxcbiAgICAgICAgICAgICAgICAgICAgfSksIHsgY2hpbGRyZW46IFtfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdwYW5lbC1ib2R5JyksIGNoaWxkcmVuOiBwYW5lbEJvZHkgfSksIHBhbmVsRm9vdGVyICE9IG51bGwgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3BhbmVsLWZvb3RlcicpLCBjaGlsZHJlbjogcGFuZWxGb290ZXIgfSkpXSB9KSkgfSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBwb3J0YWwgPyBfanN4KEZsb2F0aW5nUG9ydGFsLCB7IGNoaWxkcmVuOiBwYW5lbE5vZGUgfSkgOiBwYW5lbE5vZGU7XG4gICAgICAgICAgICB9KSgpXSB9KSk7XG59O1xuU2VsZWN0Q3VzdG9tLmRpc3BsYXlOYW1lID0gJ1NlbGVjdEN1c3RvbSc7XG5leHBvcnQgZGVmYXVsdCBtZW1vKFNlbGVjdEN1c3RvbSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -139,7 +139,18 @@ export interface SelectProps extends Omit<HTMLAttributes<HTMLDivElement>, 'defau
139
139
  optionClassName?: string;
140
140
  /** Class applied to each option-group heading (the label above a group's options). */
141
141
  groupLabelClassName?: string;
142
- listMaxHeight?: number;
142
+ /**
143
+ * Maximum height of the entire panel in px, including search and footer.
144
+ * 'auto' reserves one option height from available clipping space (unless
145
+ * listHeight is set), and shrinks with the content.
146
+ * Defaults to 320 when listHeight is absent; otherwise no implicit cap.
147
+ */
148
+ listMaxHeight?: number | 'auto';
149
+ /**
150
+ * Fixed height of the entire panel in px, retaining space for short lists.
151
+ * Clamped by an explicit listMaxHeight and the available clipping space.
152
+ */
153
+ listHeight?: number;
143
154
  /**
144
155
  * Gap between panel and trigger.
145
156
  * - `number`: shorthand for `mainAxis` (perpendicular distance, in px).
@@ -216,7 +227,18 @@ export interface SelectCustomProps extends Omit<HTMLAttributes<HTMLDivElement>,
216
227
  portal?: boolean;
217
228
  panelClassName?: string;
218
229
  panelFooter?: ReactNode;
219
- listMaxHeight?: number;
230
+ /**
231
+ * Maximum height of the entire panel in px, including search and footer.
232
+ * 'auto' reserves one option height from available clipping space (unless
233
+ * listHeight is set), and shrinks with the content.
234
+ * Defaults to 320 when listHeight is absent; otherwise no implicit cap.
235
+ */
236
+ listMaxHeight?: number | 'auto';
237
+ /**
238
+ * Fixed height of the entire panel in px, retaining space for short lists.
239
+ * Clamped by an explicit listMaxHeight and the available clipping space.
240
+ */
241
+ listHeight?: number;
220
242
  /**
221
243
  * Floating-ui placement of the panel relative to the trigger.
222
244
  * @default 'bottom-start'
@@ -309,6 +309,7 @@
309
309
  margin-top: 1px;
310
310
  }
311
311
  .om-component-ui-select-panel {
312
+ box-sizing: border-box;
312
313
  z-index: 1500;
313
314
  display: flex;
314
315
  flex-direction: column;
@@ -14,7 +14,8 @@ export interface UseSelectShellOptions {
14
14
  readOnly?: boolean;
15
15
  placement?: Placement;
16
16
  panelWidth?: number | string;
17
- listMaxHeight?: number;
17
+ listMaxHeight?: number | 'auto';
18
+ listHeight?: number;
18
19
  animation?: FloatingAnimation;
19
20
  role?: UseRoleProps['role'];
20
21
  offset?: SelectShellOffset;
@@ -15,7 +15,7 @@ var _useEventCallback = _interopRequireDefault(require("@1money/hooks/useEventCa
15
15
  var _useFloatingAnimation2 = require("../../hooks/useFloatingAnimation");
16
16
  var DEFAULT_PLACEMENT = 'bottom-start';
17
17
  var DEFAULT_LIST_MAX_HEIGHT = 320;
18
- var PANEL_MIN_HEIGHT = 120;
18
+ var PANEL_VIEWPORT_PADDING = 8;
19
19
  function useSelectShell(options) {
20
20
  var open = options.open,
21
21
  _options$defaultOpen = options.defaultOpen,
@@ -28,8 +28,9 @@ function useSelectShell(options) {
28
28
  _options$placement = options.placement,
29
29
  placement = _options$placement === void 0 ? DEFAULT_PLACEMENT : _options$placement,
30
30
  panelWidth = options.panelWidth,
31
+ listHeight = options.listHeight,
31
32
  _options$listMaxHeigh = options.listMaxHeight,
32
- listMaxHeight = _options$listMaxHeigh === void 0 ? DEFAULT_LIST_MAX_HEIGHT : _options$listMaxHeigh,
33
+ listMaxHeight = _options$listMaxHeigh === void 0 ? listHeight == null ? DEFAULT_LIST_MAX_HEIGHT : 'auto' : _options$listMaxHeigh,
33
34
  animation = options.animation,
34
35
  _options$role = options.role,
35
36
  roleType = _options$role === void 0 ? 'select' : _options$role,
@@ -52,29 +53,63 @@ function useSelectShell(options) {
52
53
  open: isOpen,
53
54
  onOpenChange: setOpen,
54
55
  placement: placement,
55
- whileElementsMounted: _react.autoUpdate,
56
+ whileElementsMounted: function whileElementsMounted(reference, floating, update) {
57
+ var cleanup = (0, _react.autoUpdate)(reference, floating, update);
58
+ // The panel can stay capped while a size/custom-render change resizes
59
+ // its rows, so observing only the panel would miss the new row height.
60
+ var option = null;
61
+ var observer = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(update);
62
+ var observeOption = function observeOption() {
63
+ var nextOption = floating.querySelector('[role="option"]');
64
+ if (nextOption === option) return;
65
+ observer === null || observer === void 0 ? void 0 : observer.disconnect();
66
+ option = nextOption;
67
+ if (option) observer === null || observer === void 0 ? void 0 : observer.observe(option);
68
+ update();
69
+ };
70
+ observeOption();
71
+ // Filtering/loading can replace the first option without resizing the panel.
72
+ var mutations = new MutationObserver(observeOption);
73
+ mutations.observe(floating, {
74
+ childList: true,
75
+ subtree: true
76
+ });
77
+ return function () {
78
+ cleanup();
79
+ observer === null || observer === void 0 ? void 0 : observer.disconnect();
80
+ mutations.disconnect();
81
+ };
82
+ },
56
83
  transform: false,
57
84
  middleware: [(0, _react.offset)({
58
85
  mainAxis: offsetMainAxis,
59
86
  crossAxis: offsetCrossAxis,
60
87
  alignmentAxis: offsetAlignmentAxis
61
88
  }, [offsetMainAxis, offsetCrossAxis, offsetAlignmentAxis]), (0, _react.flip)({
62
- padding: 8
89
+ padding: PANEL_VIEWPORT_PADDING
63
90
  }), (0, _react.shift)({
64
- padding: 8
91
+ padding: PANEL_VIEWPORT_PADDING
65
92
  }), (0, _react.size)({
93
+ padding: PANEL_VIEWPORT_PADDING,
66
94
  apply: function apply(_ref) {
67
95
  var rects = _ref.rects,
68
96
  elements = _ref.elements,
69
97
  availableHeight = _ref.availableHeight;
70
- var nextMaxHeight = Math.max(PANEL_MIN_HEIGHT, Math.min(listMaxHeight, availableHeight));
98
+ var _a, _b;
71
99
  var resolvedWidth = panelWidth == null ? "".concat(rects.reference.width, "px") : typeof panelWidth === 'number' ? "".concat(panelWidth, "px") : panelWidth;
100
+ elements.floating.style.width = resolvedWidth;
101
+ // Auto panels leave one option of breathing room at the outer edge.
102
+ // Measure after setting width so wrapped labels use their real height.
103
+ // Custom/empty panels without an option have no row to reserve.
104
+ var reservedHeight = listMaxHeight === 'auto' && listHeight == null ? (_b = (_a = elements.floating.querySelector('[role="option"]')) === null || _a === void 0 ? void 0 : _a.offsetHeight) !== null && _b !== void 0 ? _b : 0 : 0;
105
+ var nextMaxHeight = Math.max(0, listMaxHeight === 'auto' ? availableHeight - reservedHeight : Math.min(listMaxHeight, availableHeight));
72
106
  Object.assign(elements.floating.style, {
73
- width: resolvedWidth,
74
- maxHeight: "".concat(nextMaxHeight, "px")
107
+ maxHeight: "".concat(nextMaxHeight, "px"),
108
+ // Clear a previous fixed height when props switch back to auto.
109
+ height: listHeight == null ? '' : "".concat(Math.max(0, Math.min(listHeight, nextMaxHeight)), "px")
75
110
  });
76
111
  }
77
- }, [panelWidth, listMaxHeight])]
112
+ }, [panelWidth, listMaxHeight, listHeight])]
78
113
  }),
79
114
  refs = _useFloating.refs,
80
115
  floatingStyles = _useFloating.floatingStyles,
@@ -112,4 +147,4 @@ function useSelectShell(options) {
112
147
  };
113
148
  }
114
149
  var _default = exports["default"] = useSelectShell;
115
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L3VzZVNlbGVjdFNoZWxsLnRzIiwiY29tcG9uZW50cy9TZWxlY3QvdXNlU2VsZWN0U2hlbGwuanMiXSwibmFtZXMiOlsiX3JlYWN0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfdXNlQ29udHJvbGxlZFN0YXRlMyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlRXZlbnRDYWxsYmFjayIsIl91c2VGbG9hdGluZ0FuaW1hdGlvbjIiLCJERUZBVUxUX1BMQUNFTUVOVCIsIkRFRkFVTFRfTElTVF9NQVhfSEVJR0hUIiwiUEFORUxfTUlOX0hFSUdIVCIsInVzZVNlbGVjdFNoZWxsIiwib3B0aW9ucyIsIm9wZW4iLCJfb3B0aW9ucyRkZWZhdWx0T3BlbiIsImRlZmF1bHRPcGVuIiwib25PcGVuQ2hhbmdlIiwiX29wdGlvbnMkZGlzYWJsZWQiLCJkaXNhYmxlZCIsIl9vcHRpb25zJHJlYWRPbmx5IiwicmVhZE9ubHkiLCJfb3B0aW9ucyRwbGFjZW1lbnQiLCJwbGFjZW1lbnQiLCJwYW5lbFdpZHRoIiwiX29wdGlvbnMkbGlzdE1heEhlaWdoIiwibGlzdE1heEhlaWdodCIsImFuaW1hdGlvbiIsIl9vcHRpb25zJHJvbGUiLCJyb2xlIiwicm9sZVR5cGUiLCJfb3B0aW9ucyRvZmZzZXQiLCJvZmZzZXQiLCJvZmZzZXRQcm9wIiwiaW50ZXJhY3RpdmUiLCJvZmZzZXRJc09iamVjdCIsIl90eXBlb2YyIiwib2Zmc2V0TWFpbkF4aXMiLCJtYWluQXhpcyIsIm9mZnNldENyb3NzQXhpcyIsImNyb3NzQXhpcyIsInVuZGVmaW5lZCIsIm9mZnNldEFsaWdubWVudEF4aXMiLCJhbGlnbm1lbnRBeGlzIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZSIsInVzZUNvbnRyb2xsZWRTdGF0ZSIsIl91c2VDb250cm9sbGVkU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiaXNPcGVuIiwic2V0T3BlblN0YXRlIiwic2V0T3BlbiIsInVzZUV2ZW50Q2FsbGJhY2siLCJuZXh0T3BlbiIsIl91c2VGbG9hdGluZyIsInVzZUZsb2F0aW5nIiwid2hpbGVFbGVtZW50c01vdW50ZWQiLCJhdXRvVXBkYXRlIiwidHJhbnNmb3JtIiwibWlkZGxld2FyZSIsImZsaXAiLCJwYWRkaW5nIiwic2hpZnQiLCJmbG9hdGluZ1NpemUiLCJhcHBseSIsIl9yZWYiLCJyZWN0cyIsImVsZW1lbnRzIiwiYXZhaWxhYmxlSGVpZ2h0IiwibmV4dE1heEhlaWdodCIsIk1hdGgiLCJtYXgiLCJtaW4iLCJyZXNvbHZlZFdpZHRoIiwiY29uY2F0IiwicmVmZXJlbmNlIiwid2lkdGgiLCJPYmplY3QiLCJhc3NpZ24iLCJmbG9hdGluZyIsInN0eWxlIiwibWF4SGVpZ2h0IiwicmVmcyIsImZsb2F0aW5nU3R5bGVzIiwiY29udGV4dCIsInJlc29sdmVkUGxhY2VtZW50IiwicmVzb2x2ZWRBbmltYXRpb24iLCJ1c2VNZW1vIiwia2luZCIsIl91c2VGbG9hdGluZ0FuaW1hdGlvbiIsInVzZUZsb2F0aW5nQW5pbWF0aW9uIiwiaXNNb3VudGVkIiwidHJhbnNpdGlvblN0eWxlcyIsInN0eWxlcyIsImNsaWNrIiwidXNlQ2xpY2siLCJlbmFibGVkIiwiZGlzbWlzcyIsInVzZURpc21pc3MiLCJvdXRzaWRlUHJlc3NFdmVudCIsInVzZVJvbGUiLCJiYXNlSW50ZXJhY3Rpb25zIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBV0EsSUFBQUMsT0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsb0JBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLGlCQUFBLEdBQUFELHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSyxzQkFBQSxHQUFBTCxPQUFBO0FBMENBLElBQU1NLGlCQUFpQixHQUFjLGNBQWM7QUFDbkQsSUFBTUMsdUJBQXVCLEdBQUcsR0FBRztBQUNuQyxJQUFNQyxnQkFB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UUFBQSxHQUFBQyxPQUFBLGNBRWMxRixjQUFjIiwiZmlsZSI6ImNvbXBvbmVudHMvU2VsZWN0L3VzZVNlbGVjdFNoZWxsLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgeyBhdXRvVXBkYXRlLCBmbGlwLCBvZmZzZXQsIHNoaWZ0LCBzaXplIGFzIGZsb2F0aW5nU2l6ZSwgdXNlQ2xpY2ssIHVzZURpc21pc3MsIHVzZUZsb2F0aW5nLCB1c2VSb2xlLCB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUNvbnRyb2xsZWRTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUNvbnRyb2xsZWRTdGF0ZSc7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHsgdXNlRmxvYXRpbmdBbmltYXRpb24gfSBmcm9tICcuLi8uLi9ob29rcy91c2VGbG9hdGluZ0FuaW1hdGlvbic7XG5jb25zdCBERUZBVUxUX1BMQUNFTUVOVCA9ICdib3R0b20tc3RhcnQnO1xuY29uc3QgREVGQVVMVF9MSVNUX01BWF9IRUlHSFQgPSAzMjA7XG5jb25zdCBQQU5FTF9NSU5fSEVJR0hUID0gMTIwO1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVNlbGVjdFNoZWxsKG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IG9wZW4sIGRlZmF1bHRPcGVuID0gZmFsc2UsIG9uT3BlbkNoYW5nZSwgZGlzYWJsZWQgPSBmYWxzZSwgcmVhZE9ubHkgPSBmYWxzZSwgcGxhY2VtZW50ID0gREVGQVVMVF9QTEFDRU1FTlQsIHBhbmVsV2lkdGgsIGxpc3RNYXhIZWlnaHQgPSBERUZBVUxUX0xJU1RfTUFYX0hFSUdIVCwgYW5pbWF0aW9uLCByb2xlOiByb2xlVHlwZSA9ICdzZWxlY3QnLCBvZmZzZXQ6IG9mZnNldFByb3AgPSA0LCB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBpbnRlcmFjdGl2ZSA9ICFkaXNhYmxlZCAmJiAhcmVhZE9ubHk7XG4gICAgY29uc3Qgb2Zmc2V0SXNPYmplY3QgPSB0eXBlb2Ygb2Zmc2V0UHJvcCA9PT0gJ29iamVjdCcgJiYgb2Zmc2V0UHJvcCAhPT0gbnVsbDtcbiAgICBjb25zdCBvZmZzZXRNYWluQXhpcyA9IG9mZnNldElzT2JqZWN0ID8gb2Zmc2V0UHJvcC5tYWluQXhpcyA6IG9mZnNldFByb3A7XG4gICAgY29uc3Qgb2Zmc2V0Q3Jvc3NBeGlzID0gb2Zmc2V0SXNPYmplY3QgPyBvZmZzZXRQcm9wLmNyb3NzQXhpcyA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBvZmZzZXRBbGlnbm1lbnRBeGlzID0gb2Zmc2V0SXNPYmplY3QgPyBvZmZzZXRQcm9wLmFsaWdubWVudEF4aXMgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgW2lzT3Blbiwgc2V0T3BlblN0YXRlXSA9IHVzZUNvbnRyb2xsZWRTdGF0ZShkZWZhdWx0T3Blbiwgb3Blbik7XG4gICAgY29uc3Qgc2V0T3BlbiA9IHVzZUV2ZW50Q2FsbGJhY2soKG5leHRPcGVuKSA9PiB7XG4gICAgICAgIHNldE9wZW5TdGF0ZShuZXh0T3Blbik7XG4gICAgICAgIG9uT3BlbkNoYW5nZSA9PT0gbnVsbCB8fCBvbk9wZW5DaGFuZ2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uT3BlbkNoYW5nZShuZXh0T3Blbik7XG4gICAgfSk7XG4gICAgY29uc3QgeyByZWZzLCBmbG9hdGluZ1N0eWxlcywgY29udGV4dCwgcGxhY2VtZW50OiByZXNvbHZlZFBsYWNlbWVudCwgfSA9IHVzZUZsb2F0aW5nKHtcbiAgICAgICAgb3BlbjogaXNPcGVuLFxuICAgICAgICBvbk9wZW5DaGFuZ2U6IHNldE9wZW4sXG4gICAgICAgIHBsYWNlbWVudCxcbiAgICAgICAgd2hpbGVFbGVtZW50c01vdW50ZWQ6IGF1dG9VcGRhdGUsXG4gICAgICAgIHRyYW5zZm9ybTogZmFsc2UsXG4gICAgICAgIG1pZGRsZXdhcmU6IFtcbiAgICAgICAgICAgIG9mZnNldCh7XG4gICAgICAgICAgICAgICAgbWFpbkF4aXM6IG9mZnNldE1haW5BeGlzLFxuICAgICAgICAgICAgICAgIGNyb3NzQXhpczogb2Zmc2V0Q3Jvc3NBeGlzLFxuICAgICAgICAgICAgICAgIGFsaWdubWVudEF4aXM6IG9mZnNldEFsaWdubWVudEF4aXMsXG4gICAgICAgICAgICB9LCBbb2Zmc2V0TWFpbkF4aXMsIG9mZnNldENyb3NzQXhpcywgb2Zmc2V0QWxpZ25tZW50QXhpc10pLFxuICAgICAgICAgICAgZmxpcCh7IHBhZGRpbmc6IDggfSksXG4gICAgICAgICAgICBzaGlmdCh7IHBhZGRpbmc6IDggfSksXG4gICAgICAgICAgICBmbG9hdGluZ1NpemUoe1xuICAgICAgICAgICAgICAgIGFwcGx5KHsgcmVjdHMsIGVsZW1lbnRzLCBhdmFpbGFibGVIZWlnaHQgfSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXh0TWF4SGVpZ2h0ID0gTWF0aC5tYXgoUEFORUxfTUlOX0hFSUdIVCwgTWF0aC5taW4obGlzdE1heEhlaWdodCwgYXZhaWxhYmxlSGVpZ2h0KSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkV2lkdGggPSBwYW5lbFdpZHRoID09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gYCR7cmVjdHMucmVmZXJlbmNlLndpZHRofXB4YFxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0eXBlb2YgcGFuZWxXaWR0aCA9PT0gJ251bWJlcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGAke3BhbmVsV2lkdGh9cHhgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwYW5lbFdpZHRoO1xuICAgICAgICAgICAgICAgICAgICBPYmplY3QuYXNzaWduKGVsZW1lbnRzLmZsb2F0aW5nLnN0eWxlLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogcmVzb2x2ZWRXaWR0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heEhlaWdodDogYCR7bmV4dE1heEhlaWdodH1weGAsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LCBbcGFuZWxXaWR0aCwgbGlzdE1heEhlaWdodF0pLFxuICAgICAgICBdLFxuICAgIH0pO1xuICAgIGNvbnN0IHJlc29sdmVkQW5pbWF0aW9uID0gdXNlTWVtbygoKSA9PiBhbmltYXRpb24gPT09IGZhbHNlXG4gICAgICAgID8gZmFsc2VcbiAgICAgICAgOiBPYmplY3QuYXNzaWduKHsga2luZDogJ2hlaWdodCcgfSwgKGFuaW1hdGlvbiAhPT0gbnVsbCAmJiBhbmltYXRpb24gIT09IHZvaWQgMCA/IGFuaW1hdGlvbiA6IHt9KSksIFthbmltYXRpb25dKTtcbiAgICBjb25zdCB7IGlzTW91bnRlZCwgc3R5bGVzOiB0cmFuc2l0aW9uU3R5bGVzIH0gPSB1c2VGbG9hdGluZ0FuaW1hdGlvbihjb250ZXh0LCByZXNvbHZlZFBsYWNlbWVudCwgcmVzb2x2ZWRBbmltYXRpb24pO1xuICAgIGNvbnN0IGNsaWNrID0gdXNlQ2xpY2soY29udGV4dCwgeyBlbmFibGVkOiBpbnRlcmFjdGl2ZSB9KTtcbiAgICBjb25zdCBkaXNtaXNzID0gdXNlRGlzbWlzcyhjb250ZXh0LCB7XG4gICAgICAgIGVuYWJsZWQ6IGludGVyYWN0aXZlLFxuICAgICAgICBvdXRzaWRlUHJlc3NFdmVudDogJ21vdXNlZG93bicsXG4gICAgfSk7XG4gICAgY29uc3Qgcm9sZSA9IHVzZVJvbGUoY29udGV4dCwgeyByb2xlOiByb2xlVHlwZSB9KTtcbiAgICBjb25zdCBiYXNlSW50ZXJhY3Rpb25zID0gW2NsaWNrLCBkaXNtaXNzLCByb2xlXTtcbiAgICByZXR1cm4ge1xuICAgICAgICBpc09wZW4sXG4gICAgICAgIHNldE9wZW4sXG4gICAgICAgIHJlZnMsXG4gICAgICAgIGNvbnRleHQsXG4gICAgICAgIHBsYWNlbWVudDogcmVzb2x2ZWRQbGFjZW1lbnQsXG4gICAgICAgIGZsb2F0aW5nU3R5bGVzLFxuICAgICAgICB0cmFuc2l0aW9uU3R5bGVzLFxuICAgICAgICBpc01vdW50ZWQsXG4gICAgICAgIGJhc2VJbnRlcmFjdGlvbnMsXG4gICAgfTtcbn1cbmV4cG9ydCBkZWZhdWx0IHVzZVNlbGVjdFNoZWxsOyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
150
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvU2VsZWN0L3VzZVNlbGVjdFNoZWxsLnRzIiwiY29tcG9uZW50cy9TZWxlY3QvdXNlU2VsZWN0U2hlbGwuanMiXSwibmFtZXMiOlsiX3JlYWN0IiwicmVxdWlyZSIsIl9yZWFjdDIiLCJfdXNlQ29udHJvbGxlZFN0YXRlMyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdXNlRXZlbnRDYWxsYmFjayIsIl91c2VGbG9hdGluZ0FuaW1hdGlvbjIiLCJERUZBVUxUX1BMQUNFTUVOVCIsIkRFRkFVTFRfTElTVF9NQVhfSEVJR0hUIiwiUEFORUxfVklFV1BPUlRfUEFERElORyIsInVzZVNlbGVjdFNoZWxsIiwib3B0aW9ucyIsIm9wZW4iLCJfb3B0aW9ucyRkZWZhdWx0T3BlbiIsImRlZmF1bHRPcGVuIiwib25PcGVuQ2hhbmdlIiwiX29wdGlvbnMkZGlzYWJsZWQiLCJkaXNhYmxlZCIsIl9vcHRpb25zJHJlYWRPbmx5IiwicmVhZE9ubHkiLCJfb3B0aW9ucyRwbGFjZW1lbnQiLCJwbGFjZW1lbnQiLCJwYW5lbFdpZHRoIiwibGlzdEhlaWdodCIsIl9vcHRpb25zJGxpc3RNYXhIZWlnaCIsImxpc3RNYXhIZWlnaHQiLCJhbmltYXRpb24iLCJfb3B0aW9ucyRyb2xlIiwicm9sZSIsInJvbGVUeXBlIiwiX29wdGlvbnMkb2Zmc2V0Iiwib2Zmc2V0Iiwib2Zmc2V0UHJvcCIsImludGVyYWN0aXZlIiwib2Zmc2V0SXNPYmplY3QiLCJfdHlwZW9mMiIsIm9mZnNldE1haW5BeGlzIiwibWFpbkF4aXMiLCJvZmZzZXRDcm9zc0F4aXMiLCJjcm9zc0F4aXMiLCJ1bmRlZmluZWQiLCJvZmZzZXRBbGlnbm1lbnRBeGlzIiwiYWxpZ25tZW50QXhpcyIsIl91c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJfdXNlQ29udHJvbGxlZFN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImlzT3BlbiIsInNldE9wZW5TdGF0ZSIsInNldE9wZW4iLCJ1c2VFdmVudENhbGxiYWNrIiwibmV4dE9wZW4iLCJfdXNlRmxvYXRpbmciLCJ1c2VGbG9hdGluZyIsIndoaWxlRWxlbWVudHNNb3VudGVkIiwicmVmZXJlbmNlIiwiZmxvYXRpbmciLCJ1cGRhdGUiLCJjbGVhbnVwIiwiYXV0b1VwZGF0ZSIsIm9wdGlvbiIsIm9ic2VydmVyIiwiUmVzaXplT2JzZXJ2ZXIiLCJvYnNlcnZlT3B0aW9uIiwibmV4dE9wdGlvbiIsInF1ZXJ5U2VsZWN0b3IiLCJkaXNjb25uZWN0Iiwib2JzZXJ2ZSIsIm11dGF0aW9ucyIsIk11dGF0aW9uT2JzZXJ2ZXIiLCJjaGlsZExpc3QiLCJzdWJ0cmVlIiwidHJhbnNmb3JtIiwibWlkZGxld2FyZSIsImZsaXAiLCJwYWRkaW5nIiwic2hpZnQiLCJmbG9hdGluZ1NpemUiLCJhcHBseSIsIl9yZWYiLCJyZWN0cyIsImVsZW1lbnRzIiwiYXZhaWxhYmxlSGVpZ2h0IiwiX2EiLCJfYiIsInJlc29sdmVkV2lkdGgiLCJjb25jYXQiLCJ3aWR0aCIsInN0eWxlIiwicmVzZXJ2ZWRIZWlnaHQiLCJvZmZzZXRIZWlnaHQiLCJuZXh0TWF4SGVpZ2h0IiwiTWF0aCIsIm1heCIsIm1pbiIsIk9iamVjdCIsImFzc2lnbiIsIm1heEhlaWdodCIsImhlaWdodCIsInJlZnMiLCJmbG9hdGluZ1N0eWxlcyIsImNvbnRleHQiLCJyZXNvbHZlZFBsYWNlbWVudCIsInJlc29sdmVkQW5pbWF0aW9uIiwidXNlTWVtbyIsImtpbmQiLCJfdXNlRmxvYXRpbmdBbmltYXRpb24iLCJ1c2VGbG9hdGluZ0FuaW1hdGlvbiIsImlzTW91bnRlZCIsInRyYW5zaXRpb25TdHlsZXMiLCJzdHlsZXMiLCJjbGljayIsInVzZUNsaWNrIiwiZW5hYmxlZCIsImRpc21pc3MiLCJ1c2VEaXNtaXNzIiwib3V0c2lkZVByZXNzRXZlbnQiLCJ1c2VSb2xlIiwiYmFzZUludGVyYWN0aW9ucyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJtYXBwaW5ncyI6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Y0FBYyxFQUFkQSxjQUFjO0lBQ2RTLGdCQUFnQixFQUFoQkEsZ0JBQWdCO0lBQ2hCRCxTQUFTLEVBQVRBLFNBQVM7SUFDVFUsZ0JBQWdCLEVBQWhCQTtFQy9GQSxDRGdHRDtBQUNIO0FBQUMsSUFBQUMsUUFBQSxHQUFBQyxPQUFBLGNBRWM5RyxjQUFjIiwiZmlsZSI6ImNvbXBvbmVudHMvU2VsZWN0L3VzZVNlbGVjdFNoZWxsLmpzIiwic291cmNlc0NvbnRlbnQiOltudWxsLCJpbXBvcnQgeyBhdXRvVXBkYXRlLCBmbGlwLCBvZmZzZXQsIHNoaWZ0LCBzaXplIGFzIGZsb2F0aW5nU2l6ZSwgdXNlQ2xpY2ssIHVzZURpc21pc3MsIHVzZUZsb2F0aW5nLCB1c2VSb2xlLCB9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5pbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZUNvbnRyb2xsZWRTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUNvbnRyb2xsZWRTdGF0ZSc7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHsgdXNlRmxvYXRpbmdBbmltYXRpb24gfSBmcm9tICcuLi8uLi9ob29rcy91c2VGbG9hdGluZ0FuaW1hdGlvbic7XG5jb25zdCBERUZBVUxUX1BMQUNFTUVOVCA9ICdib3R0b20tc3RhcnQnO1xuY29uc3QgREVGQVVMVF9MSVNUX01BWF9IRUlHSFQgPSAzMjA7XG5jb25zdCBQQU5FTF9WSUVXUE9SVF9QQURESU5HID0gODtcbmV4cG9ydCBmdW5jdGlvbiB1c2VTZWxlY3RTaGVsbChvcHRpb25zKSB7XG4gICAgY29uc3QgeyBvcGVuLCBkZWZhdWx0T3BlbiA9IGZhbHNlLCBvbk9wZW5DaGFuZ2UsIGRpc2FibGVkID0gZmFsc2UsIHJlYWRPbmx5ID0gZmFsc2UsIHBsYWNlbWVudCA9IERFRkFVTFRfUExBQ0VNRU5ULCBwYW5lbFdpZHRoLCBsaXN0SGVpZ2h0LCBsaXN0TWF4SGVpZ2h0ID0gbGlzdEhlaWdodCA9PSBudWxsID8gREVGQVVMVF9MSVNUX01BWF9IRUlHSFQgOiAnYXV0bycsIGFuaW1hdGlvbiwgcm9sZTogcm9sZVR5cGUgPSAnc2VsZWN0Jywgb2Zmc2V0OiBvZmZzZXRQcm9wID0gNCwgfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgaW50ZXJhY3RpdmUgPSAhZGlzYWJsZWQgJiYgIXJlYWRPbmx5O1xuICAgIGNvbnN0IG9mZnNldElzT2JqZWN0ID0gdHlwZW9mIG9mZnNldFByb3AgPT09ICdvYmplY3QnICYmIG9mZnNldFByb3AgIT09IG51bGw7XG4gICAgY29uc3Qgb2Zmc2V0TWFpbkF4aXMgPSBvZmZzZXRJc09iamVjdCA/IG9mZnNldFByb3AubWFpbkF4aXMgOiBvZmZzZXRQcm9wO1xuICAgIGNvbnN0IG9mZnNldENyb3NzQXhpcyA9IG9mZnNldElzT2JqZWN0ID8gb2Zmc2V0UHJvcC5jcm9zc0F4aXMgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qgb2Zmc2V0QWxpZ25tZW50QXhpcyA9IG9mZnNldElzT2JqZWN0ID8gb2Zmc2V0UHJvcC5hbGlnbm1lbnRBeGlzIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IFtpc09wZW4sIHNldE9wZW5TdGF0ZV0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdE9wZW4sIG9wZW4pO1xuICAgIGNvbnN0IHNldE9wZW4gPSB1c2VFdmVudENhbGxiYWNrKChuZXh0T3BlbikgPT4ge1xuICAgICAgICBzZXRPcGVuU3RhdGUobmV4dE9wZW4pO1xuICAgICAgICBvbk9wZW5DaGFuZ2UgPT09IG51bGwgfHwgb25PcGVuQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW5DaGFuZ2UobmV4dE9wZW4pO1xuICAgIH0pO1xuICAgIGNvbnN0IHsgcmVmcywgZmxvYXRpbmdTdHlsZXMsIGNvbnRleHQsIHBsYWNlbWVudDogcmVzb2x2ZWRQbGFjZW1lbnQsIH0gPSB1c2VGbG9hdGluZyh7XG4gICAgICAgIG9wZW46IGlzT3BlbixcbiAgICAgICAgb25PcGVuQ2hhbmdlOiBzZXRPcGVuLFxuICAgICAgICBwbGFjZW1lbnQsXG4gICAgICAgIHdoaWxlRWxlbWVudHNNb3VudGVkKHJlZmVyZW5jZSwgZmxvYXRpbmcsIHVwZGF0ZSkge1xuICAgICAgICAgICAgY29uc3QgY2xlYW51cCA9IGF1dG9VcGRhdGUocmVmZXJlbmNlLCBmbG9hdGluZywgdXBkYXRlKTtcbiAgICAgICAgICAgIC8vIFRoZSBwYW5lbCBjYW4gc3RheSBjYXBwZWQgd2hpbGUgYSBzaXplL2N1c3RvbS1yZW5kZXIgY2hhbmdlIHJlc2l6ZXNcbiAgICAgICAgICAgIC8vIGl0cyByb3dzLCBzbyBvYnNlcnZpbmcgb25seSB0aGUgcGFuZWwgd291bGQgbWlzcyB0aGUgbmV3IHJvdyBoZWlnaHQuXG4gICAgICAgICAgICBsZXQgb3B0aW9uID0gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IG9ic2VydmVyID0gdHlwZW9mIFJlc2l6ZU9ic2VydmVyID09PSAndW5kZWZpbmVkJyA/IG51bGwgOiBuZXcgUmVzaXplT2JzZXJ2ZXIodXBkYXRlKTtcbiAgICAgICAgICAgIGNvbnN0IG9ic2VydmVPcHRpb24gPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV4dE9wdGlvbiA9IGZsb2F0aW5nLnF1ZXJ5U2VsZWN0b3IoJ1tyb2xlPVwib3B0aW9uXCJdJyk7XG4gICAgICAgICAgICAgICAgaWYgKG5leHRPcHRpb24gPT09IG9wdGlvbilcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyID09PSBudWxsIHx8IG9ic2VydmVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICAgICAgb3B0aW9uID0gbmV4dE9wdGlvbjtcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9uKVxuICAgICAgICAgICAgICAgICAgICBvYnNlcnZlciA9PT0gbnVsbCB8fCBvYnNlcnZlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogb2JzZXJ2ZXIub2JzZXJ2ZShvcHRpb24pO1xuICAgICAgICAgICAgICAgIHVwZGF0ZSgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIG9ic2VydmVPcHRpb24oKTtcbiAgICAgICAgICAgIC8vIEZpbHRlcmluZy9sb2FkaW5nIGNhbiByZXBsYWNlIHRoZSBmaXJzdCBvcHRpb24gd2l0aG91dCByZXNpemluZyB0aGUgcGFuZWwuXG4gICAgICAgICAgICBjb25zdCBtdXRhdGlvbnMgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihvYnNlcnZlT3B0aW9uKTtcbiAgICAgICAgICAgIG11dGF0aW9ucy5vYnNlcnZlKGZsb2F0aW5nLCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY2xlYW51cCgpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyID09PSBudWxsIHx8IG9ic2VydmVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICAgICAgbXV0YXRpb25zLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sXG4gICAgICAgIHRyYW5zZm9ybTogZmFsc2UsXG4gICAgICAgIG1pZGRsZXdhcmU6IFtcbiAgICAgICAgICAgIG9mZnNldCh7XG4gICAgICAgICAgICAgICAgbWFpbkF4aXM6IG9mZnNldE1haW5BeGlzLFxuICAgICAgICAgICAgICAgIGNyb3NzQXhpczogb2Zmc2V0Q3Jvc3NBeGlzLFxuICAgICAgICAgICAgICAgIGFsaWdubWVudEF4aXM6IG9mZnNldEFsaWdubWVudEF4aXMsXG4gICAgICAgICAgICB9LCBbb2Zmc2V0TWFpbkF4aXMsIG9mZnNldENyb3NzQXhpcywgb2Zmc2V0QWxpZ25tZW50QXhpc10pLFxuICAgICAgICAgICAgZmxpcCh7IHBhZGRpbmc6IFBBTkVMX1ZJRVdQT1JUX1BBRERJTkcgfSksXG4gICAgICAgICAgICBzaGlmdCh7IHBhZGRpbmc6IFBBTkVMX1ZJRVdQT1JUX1BBRERJTkcgfSksXG4gICAgICAgICAgICBmbG9hdGluZ1NpemUoe1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IFBBTkVMX1ZJRVdQT1JUX1BBRERJTkcsXG4gICAgICAgICAgICAgICAgYXBwbHkoeyByZWN0cywgZWxlbWVudHMsIGF2YWlsYWJsZUhlaWdodCB9KSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc29sdmVkV2lkdGggPSBwYW5lbFdpZHRoID09IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgID8gYCR7cmVjdHMucmVmZXJlbmNlLndpZHRofXB4YFxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0eXBlb2YgcGFuZWxXaWR0aCA9PT0gJ251bWJlcidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGAke3BhbmVsV2lkdGh9cHhgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwYW5lbFdpZHRoO1xuICAgICAgICAgICAgICAgICAgICBlbGVtZW50cy5mbG9hdGluZy5zdHlsZS53aWR0aCA9IHJlc29sdmVkV2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIC8vIEF1dG8gcGFuZWxzIGxlYXZlIG9uZSBvcHRpb24gb2YgYnJlYXRoaW5nIHJvb20gYXQgdGhlIG91dGVyIGVkZ2UuXG4gICAgICAgICAgICAgICAgICAgIC8vIE1lYXN1cmUgYWZ0ZXIgc2V0dGluZyB3aWR0aCBzbyB3cmFwcGVkIGxhYmVscyB1c2UgdGhlaXIgcmVhbCBoZWlnaHQuXG4gICAgICAgICAgICAgICAgICAgIC8vIEN1c3RvbS9lbXB0eSBwYW5lbHMgd2l0aG91dCBhbiBvcHRpb24gaGF2ZSBubyByb3cgdG8gcmVzZXJ2ZS5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzZXJ2ZWRIZWlnaHQgPSBsaXN0TWF4SGVpZ2h0ID09PSAnYXV0bycgJiYgbGlzdEhlaWdodCA9PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICA/IChfYiA9IChfYSA9IGVsZW1lbnRzLmZsb2F0aW5nLnF1ZXJ5U2VsZWN0b3IoJ1tyb2xlPVwib3B0aW9uXCJdJykpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5vZmZzZXRIZWlnaHQpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IDBcbiAgICAgICAgICAgICAgICAgICAgICAgIDogMDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dE1heEhlaWdodCA9IE1hdGgubWF4KDAsIGxpc3RNYXhIZWlnaHQgPT09ICdhdXRvJ1xuICAgICAgICAgICAgICAgICAgICAgICAgPyBhdmFpbGFibGVIZWlnaHQgLSByZXNlcnZlZEhlaWdodFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBNYXRoLm1pbihsaXN0TWF4SGVpZ2h0LCBhdmFpbGFibGVIZWlnaHQpKTtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihlbGVtZW50cy5mbG9hdGluZy5zdHlsZSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiBgJHtuZXh0TWF4SGVpZ2h0fXB4YCxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIENsZWFyIGEgcHJldmlvdXMgZml4ZWQgaGVpZ2h0IHdoZW4gcHJvcHMgc3dpdGNoIGJhY2sgdG8gYXV0by5cbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogbGlzdEhlaWdodCA9PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYCR7TWF0aC5tYXgoMCwgTWF0aC5taW4obGlzdEhlaWdodCwgbmV4dE1heEhlaWdodCkpfXB4YCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sIFtwYW5lbFdpZHRoLCBsaXN0TWF4SGVpZ2h0LCBsaXN0SGVpZ2h0XSksXG4gICAgICAgIF0sXG4gICAgfSk7XG4gICAgY29uc3QgcmVzb2x2ZWRBbmltYXRpb24gPSB1c2VNZW1vKCgpID0+IGFuaW1hdGlvbiA9PT0gZmFsc2VcbiAgICAgICAgPyBmYWxzZVxuICAgICAgICA6IE9iamVjdC5hc3NpZ24oeyBraW5kOiAnaGVpZ2h0JyB9LCAoYW5pbWF0aW9uICE9PSBudWxsICYmIGFuaW1hdGlvbiAhPT0gdm9pZCAwID8gYW5pbWF0aW9uIDoge30pKSwgW2FuaW1hdGlvbl0pO1xuICAgIGNvbnN0IHsgaXNNb3VudGVkLCBzdHlsZXM6IHRyYW5zaXRpb25TdHlsZXMgfSA9IHVzZUZsb2F0aW5nQW5pbWF0aW9uKGNvbnRleHQsIHJlc29sdmVkUGxhY2VtZW50LCByZXNvbHZlZEFuaW1hdGlvbik7XG4gICAgY29uc3QgY2xpY2sgPSB1c2VDbGljayhjb250ZXh0LCB7IGVuYWJsZWQ6IGludGVyYWN0aXZlIH0pO1xuICAgIGNvbnN0IGRpc21pc3MgPSB1c2VEaXNtaXNzKGNvbnRleHQsIHtcbiAgICAgICAgZW5hYmxlZDogaW50ZXJhY3RpdmUsXG4gICAgICAgIG91dHNpZGVQcmVzc0V2ZW50OiAnbW91c2Vkb3duJyxcbiAgICB9KTtcbiAgICBjb25zdCByb2xlID0gdXNlUm9sZShjb250ZXh0LCB7IHJvbGU6IHJvbGVUeXBlIH0pO1xuICAgIGNvbnN0IGJhc2VJbnRlcmFjdGlvbnMgPSBbY2xpY2ssIGRpc21pc3MsIHJvbGVdO1xuICAgIHJldHVybiB7XG4gICAgICAgIGlzT3BlbixcbiAgICAgICAgc2V0T3BlbixcbiAgICAgICAgcmVmcyxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICAgcGxhY2VtZW50OiByZXNvbHZlZFBsYWNlbWVudCxcbiAgICAgICAgZmxvYXRpbmdTdHlsZXMsXG4gICAgICAgIHRyYW5zaXRpb25TdHlsZXMsXG4gICAgICAgIGlzTW91bnRlZCxcbiAgICAgICAgYmFzZUludGVyYWN0aW9ucyxcbiAgICB9O1xufVxuZXhwb3J0IGRlZmF1bHQgdXNlU2VsZWN0U2hlbGw7Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==