@kepler.gl/components 3.2.4 → 3.2.6

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.
@@ -12,6 +12,7 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
12
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
13
  var _react = _interopRequireWildcard(require("react"));
14
14
  var _styledComponents = _interopRequireDefault(require("styled-components"));
15
+ var _truncate = _interopRequireDefault(require("lodash/truncate"));
15
16
  var _styledComponents2 = require("../common/styled-components");
16
17
  var _icons = require("../common/icons");
17
18
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -35,6 +36,7 @@ var StyledTable = _styledComponents["default"].table(_templateObject2 || (_templ
35
36
  var StyledDivider = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n // offset divider to reach popover edge\n margin-left: -14px;\n margin-right: -14px;\n border-bottom: 1px solid ", ";\n"])), function (props) {
36
37
  return props.theme.panelBorderColor;
37
38
  });
39
+ var TOOLTIP_VALUE_MAX_LENGTH = 256;
38
40
  var Row = function Row(_ref) {
39
41
  var name = _ref.name,
40
42
  value = _ref.value,
@@ -44,6 +46,9 @@ var Row = function Row(_ref) {
44
46
  if (!url && value && typeof value === 'string' && value.match(/^http/)) {
45
47
  url = value;
46
48
  }
49
+ var displayValue = typeof value === 'string' && value.length > TOOLTIP_VALUE_MAX_LENGTH ? (0, _truncate["default"])(value, {
50
+ length: TOOLTIP_VALUE_MAX_LENGTH
51
+ }) : value;
47
52
  var asImg = /<img>/.test(name);
48
53
  return /*#__PURE__*/_react["default"].createElement("tr", {
49
54
  className: "layer-hover-info__row",
@@ -58,7 +63,7 @@ var Row = function Row(_ref) {
58
63
  target: "_blank",
59
64
  rel: "noopener noreferrer",
60
65
  href: url
61
- }, value) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("span", null, value), (0, _commonUtils.notNullorUndefined)(deltaValue) ? /*#__PURE__*/_react["default"].createElement("span", {
66
+ }, displayValue) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("span", null, displayValue), (0, _commonUtils.notNullorUndefined)(deltaValue) ? /*#__PURE__*/_react["default"].createElement("span", {
62
67
  className: "row__delta-value ".concat((deltaValue === null || deltaValue === void 0 ? void 0 : deltaValue.toString().charAt(0)) === '+' ? 'positive' : 'negative')
63
68
  }, deltaValue) : null)));
64
69
  };
@@ -242,4 +247,4 @@ var LayerHoverInfoFactory = function LayerHoverInfoFactory() {
242
247
  return LayerHoverInfo;
243
248
  };
244
249
  var _default = exports["default"] = LayerHoverInfoFactory;
245
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfaWNvbnMiLCJfcHJvcFR5cGVzIiwiX2NvbW1vblV0aWxzIiwiX3V0aWxzIiwiX3JlZHVjZXJzIiwiX3JlYWN0SW50bCIsIl9leGNsdWRlZCIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMyIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIlN0eWxlZExheWVyTmFtZSIsImV4cG9ydHMiLCJzdHlsZWQiLCJDZW50ZXJGbGV4Ym94IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwidGV4dENvbG9ySGwiLCJTdHlsZWRUYWJsZSIsInRhYmxlIiwibm90aWZpY2F0aW9uQ29sb3JzIiwic3VjY2VzcyIsIm5lZ2F0aXZlQnRuQWN0QmdkIiwiU3R5bGVkRGl2aWRlciIsImRpdiIsInBhbmVsQm9yZGVyQ29sb3IiLCJSb3ciLCJfcmVmIiwibmFtZSIsInZhbHVlIiwiZGVsdGFWYWx1ZSIsInVybCIsIm1hdGNoIiwiYXNJbWciLCJ0ZXN0IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImtleSIsInJlcGxhY2UiLCJzcmMiLCJ0YXJnZXQiLCJyZWwiLCJocmVmIiwiRnJhZ21lbnQiLCJub3ROdWxsb3JVbmRlZmluZWQiLCJjb25jYXQiLCJ0b1N0cmluZyIsImNoYXJBdCIsIkVudHJ5SW5mbyIsIl9yZWYyIiwiZmllbGRzVG9TaG93IiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzMiIsIm1hcCIsIml0ZW0iLCJFbnRyeUluZm9Sb3ciLCJfZXh0ZW5kczIiLCJfcmVmMyIsImxheWVyIiwiZmllbGRzIiwiZGF0YSIsInByaW1hcnlEYXRhIiwiY29tcGFyZVR5cGUiLCJjdXJyZW50VGltZSIsImZpZWxkSWR4IiwiZmluZEluZGV4IiwiZiIsImZpZWxkIiwiZmllbGRWYWx1ZUFjY2Vzc29yIiwiYWNjZXNzVlNGaWVsZFZhbHVlIiwiRGF0YVJvdyIsImluZGV4IiwiX3Jvd0luZGV4IiwicHJpbWFyeVZhbHVlIiwiZGlzcGxheURlbHRhVmFsdWUiLCJfdHlwZW9mMiIsImdldFRvb2x0aXBEaXNwbGF5RGVsdGFWYWx1ZSIsImVycm9yIiwiZGlzcGxheVZhbHVlIiwiZ2V0VG9vbHRpcERpc3BsYXlWYWx1ZSIsImRpc3BsYXlOYW1lIiwiQ2VsbEluZm8iLCJfcmVmNCIsIl9yZWY1IiwiY29uZmlnIiwiY29sb3JGaWVsZCIsInNpemVGaWVsZCIsImNvbG9yVmFsdWUiLCJ1c2VNZW1vIiwidmlzdWFsQ2hhbm5lbHMiLCJjb2xvciIsImZpbmQiLCJlbGV2YXRpb25WYWx1ZSIsInNpemUiLCJhZ2dyZWdhdGVkRGF0YSIsInJlZHVjZSIsImFjYyIsIl9kYXRhJGFnZ3JlZ2F0ZWREYXRhIiwiZGF0YUZvckZpZWxkIiwibWVhc3VyZSIsInB1c2giLCJjYXBpdGFsaXplRmlyc3RMZXR0ZXIiLCJjb2xvck1lYXN1cmUiLCJnZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24iLCJzaXplTWVhc3VyZSIsIlN0cmluZyIsInBvaW50cyIsImxlbmd0aCIsImlkeCIsIkxheWVySG92ZXJJbmZvRmFjdG9yeSIsIkxheWVySG92ZXJJbmZvIiwiaW50bCIsInVzZUludGwiLCJoYXNGaWVsZHNUb1Nob3ciLCJmaWVsZFZhbHVlcyIsImtleXMiLCJ3bXNGZWF0dXJlRGF0YSIsIkxheWVycyIsImhlaWdodCIsImxhYmVsIiwiX3JlZjYiLCJfcmVmNyIsImxhYmVsTWVzc2FnZSIsImZvcm1hdE1lc3NhZ2UiLCJpZCIsImlzQWdncmVnYXRlZCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImFycmF5T2YiLCJhbnkiLCJvYmplY3QiLCJvbmVPZlR5cGUiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbGF5ZXItaG92ZXItaW5mby50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0NvbXBhcmVUeXBlLCBGaWVsZCwgTWVyZ2UsIFRvb2x0aXBGaWVsZH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge0NlbnRlckZsZXhib3h9IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0xheWVyc30gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQge25vdE51bGxvclVuZGVmaW5lZH0gZnJvbSAnQGtlcGxlci5nbC9jb21tb24tdXRpbHMnO1xuaW1wb3J0IHtEYXRhUm93fSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7TGF5ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7XG4gIEFnZ3JlZ2F0aW9uTGF5ZXJIb3ZlckRhdGEsXG4gIExheWVySG92ZXJQcm9wLFxuICBnZXRUb29sdGlwRGlzcGxheURlbHRhVmFsdWUsXG4gIGdldFRvb2x0aXBEaXNwbGF5VmFsdWVcbn0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5pbXBvcnQge3VzZUludGx9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IHtWaXNTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC9zY2hlbWFzJztcbmltcG9ydCB7Y2FwaXRhbGl6ZUZpcnN0TGV0dGVyfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IFN0eWxlZExheWVyTmFtZSA9IHN0eWxlZChDZW50ZXJGbGV4Ym94KWBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjQzcHg7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuXG4gIHN2ZyB7XG4gICAgbWFyZ2luLXJpZ2h0OiA0cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZFRhYmxlID0gc3R5bGVkLnRhYmxlYFxuICAmIC5yb3dfX2RlbHRhLXZhbHVlIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBtYXJnaW4tbGVmdDogNnB4O1xuXG4gICAgJi5wb3NpdGl2ZSB7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5ub3RpZmljYXRpb25Db2xvcnMuc3VjY2Vzc307XG4gICAgfVxuXG4gICAgJi5uZWdhdGl2ZSB7XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5uZWdhdGl2ZUJ0bkFjdEJnZH07XG4gICAgfVxuICB9XG4gICYgLnJvd19fdmFsdWUsXG4gICYgLnJvd19fbmFtZSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICB3aGl0ZS1zcGFjZTogbm8td3JhcDtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkRGl2aWRlciA9IHN0eWxlZC5kaXZgXG4gIC8vIG9mZnNldCBkaXZpZGVyIHRvIHJlYWNoIHBvcG92ZXIgZWRnZVxuICBtYXJnaW4tbGVmdDogLTE0cHg7XG4gIG1hcmdpbi1yaWdodDogLTE0cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQm9yZGVyQ29sb3J9O1xuYDtcblxuaW50ZXJmYWNlIFJvd1Byb3BzIHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICBkZWx0YVZhbHVlPzogc3RyaW5nIHwgbnVsbDtcbiAgdXJsPzogc3RyaW5nO1xufVxuXG5jb25zdCBSb3c6IFJlYWN0LkZDPFJvd1Byb3BzPiA9ICh7bmFtZSwgdmFsdWUsIGRlbHRhVmFsdWUsIHVybH0pID0+IHtcbiAgLy8gU2V0ICd1cmwnIHRvICd2YWx1ZScgaWYgaXQgbG9va3MgbGlrZSBhIHVybFxuICBpZiAoIXVybCAmJiB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLm1hdGNoKC9eaHR0cC8pKSB7XG4gICAgdXJsID0gdmFsdWU7XG4gIH1cblxuICBjb25zdCBhc0ltZyA9IC88aW1nPi8udGVzdChuYW1lKTtcbiAgcmV0dXJuIChcbiAgICA8dHIgY2xhc3NOYW1lPVwibGF5ZXItaG92ZXItaW5mb19fcm93XCIga2V5PXtuYW1lfT5cbiAgICAgIDx0ZCBjbGFzc05hbWU9XCJyb3dfX25hbWVcIj57YXNJbWcgPyBuYW1lLnJlcGxhY2UoJzxpbWc+JywgJycpIDogbmFtZX08L3RkPlxuICAgICAgPHRkIGNsYXNzTmFtZT1cInJvd19fdmFsdWVcIj5cbiAgICAgICAge2FzSW1nID8gKFxuICAgICAgICAgIDxpbWcgc3JjPXt2YWx1ZX0gLz5cbiAgICAgICAgKSA6IHVybCA/IChcbiAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIHt2YWx1ZX1cbiAgICAgICAgICA8L2E+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIDxzcGFuPnt2YWx1ZX08L3NwYW4+XG4gICAgICAgICAgICB7bm90TnVsbG9yVW5kZWZpbmVkKGRlbHRhVmFsdWUpID8gKFxuICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHJvd19fZGVsdGEtdmFsdWUgJHtcbiAgICAgICAgICAgICAgICAgIGRlbHRhVmFsdWU/LnRvU3RyaW5nKCkuY2hhckF0KDApID09PSAnKycgPyAncG9zaXRpdmUnIDogJ25lZ2F0aXZlJ1xuICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2RlbHRhVmFsdWV9XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvPlxuICAgICAgICApfVxuICAgICAgPC90ZD5cbiAgICA8L3RyPlxuICApO1xufTtcblxuZXhwb3J0IHR5cGUgRW50cnlJbmZvUHJvcHMgPSBNZXJnZTxMYXllckhvdmVyUHJvcCwge2ZpZWxkc1RvU2hvdzogVG9vbHRpcEZpZWxkW119PjtcblxuY29uc3QgRW50cnlJbmZvOiBSZWFjdC5GQzxFbnRyeUluZm9Qcm9wcz4gPSAoe2ZpZWxkc1RvU2hvdywgLi4ucHJvcHN9KSA9PiAoXG4gIDx0Ym9keT5cbiAgICB7ZmllbGRzVG9TaG93Lm1hcChpdGVtID0+IChcbiAgICAgIDxFbnRyeUluZm9Sb3cga2V5PXtpdGVtLm5hbWV9IGl0ZW09e2l0ZW19IHsuLi5wcm9wc30gLz5cbiAgICApKX1cbiAgPC90Ym9keT5cbik7XG5cbmV4cG9ydCB0eXBlIEVudHJ5SW5mb1Jvd1Byb3BzID0ge1xuICBkYXRhOiBMYXllckhvdmVyUHJvcFsnZGF0YSddO1xuICBmaWVsZHM6IEZpZWxkW107XG4gIGxheWVyOiBMYXllcjtcbiAgcHJpbWFyeURhdGE/OiBMYXllckhvdmVyUHJvcFsncHJpbWFyeURhdGEnXTtcbiAgY29tcGFyZVR5cGU/OiBDb21wYXJlVHlwZTtcbiAgY3VycmVudFRpbWU/OiBWaXNTdGF0ZVsnYW5pbWF0aW9uQ29uZmlnJ11bJ2N1cnJlbnRUaW1lJ107XG4gIGl0ZW06IFRvb2x0aXBGaWVsZDtcbn07XG5cbmNvbnN0IEVudHJ5SW5mb1JvdzogUmVhY3QuRkM8RW50cnlJbmZvUm93UHJvcHM+ID0gKHtcbiAgbGF5ZXIsXG4gIGl0ZW0sXG4gIGZpZWxkcyxcbiAgZGF0YSxcbiAgcHJpbWFyeURhdGEsXG4gIGNvbXBhcmVUeXBlLFxuICBjdXJyZW50VGltZVxufSkgPT4ge1xuICBjb25zdCBmaWVsZElkeCA9IGZpZWxkcy5maW5kSW5kZXgoZiA9PiBmLm5hbWUgPT09IGl0ZW0ubmFtZSk7XG4gIGlmIChmaWVsZElkeCA8IDApIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuICBjb25zdCBmaWVsZCA9IGZpZWxkc1tmaWVsZElkeF07XG4gIGNvbnN0IGZpZWxkVmFsdWVBY2Nlc3NvciA9IGxheWVyLmFjY2Vzc1ZTRmllbGRWYWx1ZShmaWVsZCwgY3VycmVudFRpbWUpO1xuICBjb25zdCB2YWx1ZSA9IGZpZWxkVmFsdWVBY2Nlc3NvcihmaWVsZCwgZGF0YSBpbnN0YW5jZW9mIERhdGFSb3cgPyB7aW5kZXg6IGRhdGEuX3Jvd0luZGV4fSA6IGRhdGEpO1xuXG4gIC8vIEhhbmRsZSBXTVMgbGF5ZXIgZGF0YSBpbiBjb21wYXJpc29uIG1vZGUgLSBXTVMgbGF5ZXJzIGRvbid0IGhhdmUgY29tcGFyYWJsZSBmaWVsZCBkYXRhXG4gIGxldCBwcmltYXJ5VmFsdWUgPSBudWxsO1xuICBsZXQgZGlzcGxheURlbHRhVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGlmIChwcmltYXJ5RGF0YSkge1xuICAgIHRyeSB7XG4gICAgICAvLyBPbmx5IGNhbGN1bGF0ZSBwcmltYXJ5IHZhbHVlIGlmIHByaW1hcnlEYXRhIGhhcyBhIGNvbXBhdGlibGUgc3RydWN0dXJlXG4gICAgICBpZiAoXG4gICAgICAgIHByaW1hcnlEYXRhIGluc3RhbmNlb2YgRGF0YVJvdyB8fFxuICAgICAgICAocHJpbWFyeURhdGEgJiYgdHlwZW9mIHByaW1hcnlEYXRhID09PSAnb2JqZWN0JyAmJiAnaW5kZXgnIGluIHByaW1hcnlEYXRhKVxuICAgICAgKSB7XG4gICAgICAgIHByaW1hcnlWYWx1ZSA9IGZpZWxkVmFsdWVBY2Nlc3NvcihcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBwcmltYXJ5RGF0YSBpbnN0YW5jZW9mIERhdGFSb3cgPyB7aW5kZXg6IHByaW1hcnlEYXRhLl9yb3dJbmRleH0gOiBwcmltYXJ5RGF0YVxuICAgICAgICApO1xuXG4gICAgICAgIGRpc3BsYXlEZWx0YVZhbHVlID0gZ2V0VG9vbHRpcERpc3BsYXlEZWx0YVZhbHVlKHtcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICBwcmltYXJ5VmFsdWUsXG4gICAgICAgICAgY29tcGFyZVR5cGVcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIC8vIElmIHRoZXJlJ3MgYW4gZXJyb3IgYWNjZXNzaW5nIHByaW1hcnlEYXRhIChlLmcuLCBXTVMgbGF5ZXIgZGF0YSksIHNraXAgY29tcGFyaXNvblxuICAgICAgcHJpbWFyeVZhbHVlID0gbnVsbDtcbiAgICB9XG4gIH1cblxuICBjb25zdCBkaXNwbGF5VmFsdWUgPSBnZXRUb29sdGlwRGlzcGxheVZhbHVlKHtpdGVtLCBmaWVsZCwgdmFsdWV9KTtcblxuICByZXR1cm4gKFxuICAgIDxSb3dcbiAgICAgIG5hbWU9e2ZpZWxkLmRpc3BsYXlOYW1lIHx8IGZpZWxkLm5hbWV9XG4gICAgICB2YWx1ZT17ZGlzcGxheVZhbHVlfVxuICAgICAgZGVsdGFWYWx1ZT17ZGlzcGxheURlbHRhVmFsdWV9XG4gICAgLz5cbiAgKTtcbn07XG5cbi8vIFRPRE86IHN1cHBvcnRpbmcgY29tcGFyYXRpdmUgdmFsdWUgZm9yIGFnZ3JlZ2F0ZWQgY2VsbHMgYXMgd2VsbFxuY29uc3QgQ2VsbEluZm8gPSAoe1xuICBmaWVsZHNUb1Nob3csXG4gIGRhdGEsXG4gIGxheWVyXG59OiB7XG4gIGRhdGE6IEFnZ3JlZ2F0aW9uTGF5ZXJIb3ZlckRhdGE7XG4gIGZpZWxkc1RvU2hvdzogVG9vbHRpcEZpZWxkW107XG4gIGxheWVyOiBMYXllcjtcbn0pID0+IHtcbiAgY29uc3Qge2NvbG9yRmllbGQsIHNpemVGaWVsZH0gPSBsYXllci5jb25maWcgYXMgYW55O1xuXG4gIGNvbnN0IGNvbG9yVmFsdWUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoY29sb3JGaWVsZCAmJiBsYXllci52aXN1YWxDaGFubmVscy5jb2xvcikge1xuICAgICAgY29uc3QgaXRlbSA9IGZpZWxkc1RvU2hvdy5maW5kKGZpZWxkID0+IGZpZWxkLm5hbWUgPT09IGNvbG9yRmllbGQubmFtZSk7XG4gICAgICByZXR1cm4gZ2V0VG9vbHRpcERpc3BsYXlWYWx1ZSh7aXRlbSwgZmllbGQ6IGNvbG9yRmllbGQsIHZhbHVlOiBkYXRhLmNvbG9yVmFsdWV9KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH0sIFtmaWVsZHNUb1Nob3csIGNvbG9yRmllbGQsIGxheWVyLCBkYXRhLmNvbG9yVmFsdWVdKTtcblxuICBjb25zdCBlbGV2YXRpb25WYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChzaXplRmllbGQgJiYgbGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZSkge1xuICAgICAgY29uc3QgaXRlbSA9IGZpZWxkc1RvU2hvdy5maW5kKGZpZWxkID0+IGZpZWxkLm5hbWUgPT09IHNpemVGaWVsZC5uYW1lKTtcbiAgICAgIHJldHVybiBnZXRUb29sdGlwRGlzcGxheVZhbHVlKHtpdGVtLCBmaWVsZDogc2l6ZUZpZWxkLCB2YWx1ZTogZGF0YS5lbGV2YXRpb25WYWx1ZX0pO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfSwgW2ZpZWxkc1RvU2hvdywgc2l6ZUZpZWxkLCBsYXllciwgZGF0YS5lbGV2YXRpb25WYWx1ZV0pO1xuXG4gIGNvbnN0IGFnZ3JlZ2F0ZWREYXRhID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGRhdGEuYWdncmVnYXRlZERhdGEgJiYgZmllbGRzVG9TaG93KSB7XG4gICAgICByZXR1cm4gZmllbGRzVG9TaG93LnJlZHVjZSgoYWNjLCBmaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBkYXRhRm9yRmllbGQgPSBkYXRhLmFnZ3JlZ2F0ZWREYXRhPy5bZmllbGQubmFtZV07XG4gICAgICAgIGlmIChkYXRhRm9yRmllbGQ/Lm1lYXN1cmUgJiYgZmllbGQubmFtZSAhPT0gY29sb3JGaWVsZD8ubmFtZSkge1xuICAgICAgICAgIGFjYy5wdXNoKHtcbiAgICAgICAgICAgIG5hbWU6IGAke2NhcGl0YWxpemVGaXJzdExldHRlcihkYXRhRm9yRmllbGQubWVhc3VyZSl9IG9mICR7ZmllbGQubmFtZX1gLFxuICAgICAgICAgICAgdmFsdWU6IGRhdGFGb3JGaWVsZC52YWx1ZVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCBbXSBhcyB7bmFtZTogc3RyaW5nOyB2YWx1ZT86IHN0cmluZ31bXSk7XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfSwgW2RhdGEuYWdncmVnYXRlZERhdGEsIGZpZWxkc1RvU2hvdywgY29sb3JGaWVsZD8ubmFtZV0pO1xuXG4gIGNvbnN0IGNvbG9yTWVhc3VyZSA9IGxheWVyLmdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbignY29sb3InKS5tZWFzdXJlO1xuICBjb25zdCBzaXplTWVhc3VyZSA9IGxheWVyLmdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbignc2l6ZScpLm1lYXN1cmU7XG4gIHJldHVybiAoXG4gICAgPHRib2R5PlxuICAgICAgPFJvdyBuYW1lPXsndG90YWwgcG9pbnRzJ30ga2V5PVwiY291bnRcIiB2YWx1ZT17U3RyaW5nKGRhdGEucG9pbnRzICYmIGRhdGEucG9pbnRzLmxlbmd0aCl9IC8+XG4gICAgICB7Y29sb3JGaWVsZCAmJiBsYXllci52aXN1YWxDaGFubmVscy5jb2xvciAmJiBjb2xvck1lYXN1cmUgPyAoXG4gICAgICAgIDxSb3cgbmFtZT17Y29sb3JNZWFzdXJlfSBrZXk9XCJjb2xvclwiIHZhbHVlPXtjb2xvclZhbHVlIHx8ICdOL0EnfSAvPlxuICAgICAgKSA6IG51bGx9XG4gICAgICB7c2l6ZUZpZWxkICYmIGxheWVyLnZpc3VhbENoYW5uZWxzLnNpemUgJiYgc2l6ZU1lYXN1cmUgPyAoXG4gICAgICAgIDxSb3cgbmFtZT17c2l6ZU1lYXN1cmV9IGtleT1cInNpemVcIiB2YWx1ZT17ZWxldmF0aW9uVmFsdWUgfHwgJ04vQSd9IC8+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHthZ2dyZWdhdGVkRGF0YS5tYXAoKGRhdGFGb3JGaWVsZCwgaWR4KSA9PiAoXG4gICAgICAgIDxSb3cgbmFtZT17ZGF0YUZvckZpZWxkLm5hbWV9IGtleT17YGRhdGFfJHtpZHh9YH0gdmFsdWU9e2RhdGFGb3JGaWVsZC52YWx1ZSB8fCAnTi9BJ30gLz5cbiAgICAgICkpfVxuICAgIDwvdGJvZHk+XG4gICk7XG59O1xuXG5jb25zdCBMYXllckhvdmVySW5mb0ZhY3RvcnkgPSAoKSA9PiB7XG4gIGNvbnN0IExheWVySG92ZXJJbmZvID0gcHJvcHMgPT4ge1xuICAgIGNvbnN0IHtkYXRhLCBsYXllcn0gPSBwcm9wcztcbiAgICBjb25zdCBpbnRsID0gdXNlSW50bCgpO1xuICAgIGlmICghZGF0YSB8fCAhbGF5ZXIpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGhhc0ZpZWxkc1RvU2hvdyA9XG4gICAgICAoZGF0YS5maWVsZFZhbHVlcyAmJiBPYmplY3Qua2V5cyhkYXRhLmZpZWxkVmFsdWVzKS5sZW5ndGggPiAwKSB8fFxuICAgICAgKGRhdGEud21zRmVhdHVyZURhdGEgJiYgZGF0YS53bXNGZWF0dXJlRGF0YS5sZW5ndGggPiAwKSB8fFxuICAgICAgKHByb3BzLmZpZWxkc1RvU2hvdyAmJiBwcm9wcy5maWVsZHNUb1Nob3cubGVuZ3RoID4gMCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXAtcG9wb3Zlcl9fbGF5ZXItaW5mb1wiPlxuICAgICAgICA8U3R5bGVkTGF5ZXJOYW1lIGNsYXNzTmFtZT1cIm1hcC1wb3BvdmVyX19sYXllci1uYW1lXCI+XG4gICAgICAgICAgPExheWVycyBoZWlnaHQ9XCIxMnB4XCIgLz5cbiAgICAgICAgICB7cHJvcHMubGF5ZXIuY29uZmlnLmxhYmVsfVxuICAgICAgICA8L1N0eWxlZExheWVyTmFtZT5cbiAgICAgICAge2hhc0ZpZWxkc1RvU2hvdyAmJiA8U3R5bGVkRGl2aWRlciAvPn1cbiAgICAgICAgPFN0eWxlZFRhYmxlPlxuICAgICAgICAgIHtkYXRhLndtc0ZlYXR1cmVEYXRhID8gKFxuICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICB7ZGF0YS53bXNGZWF0dXJlRGF0YS5tYXAoKHtuYW1lLCB2YWx1ZX0sIGkpID0+IChcbiAgICAgICAgICAgICAgICA8Um93IGtleT17aX0gbmFtZT17bmFtZX0gdmFsdWU9e3ZhbHVlfSAvPlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgKSA6IGRhdGEuZmllbGRWYWx1ZXMgPyAoXG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgIHtkYXRhLmZpZWxkVmFsdWVzLm1hcCgoe2xhYmVsTWVzc2FnZSwgdmFsdWV9LCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgPFJvdyBrZXk9e2l9IG5hbWU9e2ludGwuZm9ybWF0TWVzc2FnZSh7aWQ6IGxhYmVsTWVzc2FnZX0pfSB2YWx1ZT17dmFsdWV9IC8+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICApIDogcHJvcHMubGF5ZXIuaXNBZ2dyZWdhdGVkID8gKFxuICAgICAgICAgICAgPENlbGxJbmZvIHsuLi5wcm9wc30gLz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPEVudHJ5SW5mbyB7Li4ucHJvcHN9IC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9TdHlsZWRUYWJsZT5cbiAgICAgICAge2hhc0ZpZWxkc1RvU2hvdyAmJiA8U3R5bGVkRGl2aWRlciAvPn1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH07XG5cbiAgTGF5ZXJIb3ZlckluZm8ucHJvcFR5cGVzID0ge1xuICAgIGZpZWxkczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmFueSksXG4gICAgZmllbGRzVG9TaG93OiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KSxcbiAgICBsYXllcjogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBkYXRhOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KSwgUHJvcFR5cGVzLm9iamVjdF0pXG4gIH07XG4gIHJldHVybiBMYXllckhvdmVySW5mbztcbn07XG5cbmV4cG9ydCBkZWZhdWx0IExheWVySG92ZXJJbmZvRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLGtCQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxVQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTSxZQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxNQUFBLEdBQUFQLE9BQUE7QUFFQSxJQUFBUSxTQUFBLEdBQUFSLE9BQUE7QUFNQSxJQUFBUyxVQUFBLEdBQUFULE9BQUE7QUFBbUMsSUFBQVUsU0FBQTtBQUFBLElBQUFDLGVBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFsQm5DO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFB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
250
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfdHJ1bmNhdGUiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfaWNvbnMiLCJfcHJvcFR5cGVzIiwiX2NvbW1vblV0aWxzIiwiX3V0aWxzIiwiX3JlZHVjZXJzIiwiX3JlYWN0SW50bCIsIl9leGNsdWRlZCIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mMyIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIlN0eWxlZExheWVyTmFtZSIsImV4cG9ydHMiLCJzdHlsZWQiLCJDZW50ZXJGbGV4Ym94IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwidGV4dENvbG9ySGwiLCJTdHlsZWRUYWJsZSIsInRhYmxlIiwibm90aWZpY2F0aW9uQ29sb3JzIiwic3VjY2VzcyIsIm5lZ2F0aXZlQnRuQWN0QmdkIiwiU3R5bGVkRGl2aWRlciIsImRpdiIsInBhbmVsQm9yZGVyQ29sb3IiLCJUT09MVElQX1ZBTFVFX01BWF9MRU5HVEgiLCJSb3ciLCJfcmVmIiwibmFtZSIsInZhbHVlIiwiZGVsdGFWYWx1ZSIsInVybCIsIm1hdGNoIiwiZGlzcGxheVZhbHVlIiwibGVuZ3RoIiwidHJ1bmNhdGUiLCJhc0ltZyIsInRlc3QiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwia2V5IiwicmVwbGFjZSIsInNyYyIsInRhcmdldCIsInJlbCIsImhyZWYiLCJGcmFnbWVudCIsIm5vdE51bGxvclVuZGVmaW5lZCIsImNvbmNhdCIsInRvU3RyaW5nIiwiY2hhckF0IiwiRW50cnlJbmZvIiwiX3JlZjIiLCJmaWVsZHNUb1Nob3ciLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwibWFwIiwiaXRlbSIsIkVudHJ5SW5mb1JvdyIsIl9leHRlbmRzMiIsIl9yZWYzIiwibGF5ZXIiLCJmaWVsZHMiLCJkYXRhIiwicHJpbWFyeURhdGEiLCJjb21wYXJlVHlwZSIsImN1cnJlbnRUaW1lIiwiZmllbGRJZHgiLCJmaW5kSW5kZXgiLCJmIiwiZmllbGQiLCJmaWVsZFZhbHVlQWNjZXNzb3IiLCJhY2Nlc3NWU0ZpZWxkVmFsdWUiLCJEYXRhUm93IiwiaW5kZXgiLCJfcm93SW5kZXgiLCJwcmltYXJ5VmFsdWUiLCJkaXNwbGF5RGVsdGFWYWx1ZSIsIl90eXBlb2YyIiwiZ2V0VG9vbHRpcERpc3BsYXlEZWx0YVZhbHVlIiwiZXJyb3IiLCJnZXRUb29sdGlwRGlzcGxheVZhbHVlIiwiZGlzcGxheU5hbWUiLCJDZWxsSW5mbyIsIl9yZWY0IiwiX3JlZjUiLCJjb25maWciLCJjb2xvckZpZWxkIiwic2l6ZUZpZWxkIiwiY29sb3JWYWx1ZSIsInVzZU1lbW8iLCJ2aXN1YWxDaGFubmVscyIsImNvbG9yIiwiZmluZCIsImVsZXZhdGlvblZhbHVlIiwic2l6ZSIsImFnZ3JlZ2F0ZWREYXRhIiwicmVkdWNlIiwiYWNjIiwiX2RhdGEkYWdncmVnYXRlZERhdGEiLCJkYXRhRm9yRmllbGQiLCJtZWFzdXJlIiwicHVzaCIsImNhcGl0YWxpemVGaXJzdExldHRlciIsImNvbG9yTWVhc3VyZSIsImdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbiIsInNpemVNZWFzdXJlIiwiU3RyaW5nIiwicG9pbnRzIiwiaWR4IiwiTGF5ZXJIb3ZlckluZm9GYWN0b3J5IiwiTGF5ZXJIb3ZlckluZm8iLCJpbnRsIiwidXNlSW50bCIsImhhc0ZpZWxkc1RvU2hvdyIsImZpZWxkVmFsdWVzIiwia2V5cyIsIndtc0ZlYXR1cmVEYXRhIiwiTGF5ZXJzIiwiaGVpZ2h0IiwibGFiZWwiLCJfcmVmNiIsIl9yZWY3IiwibGFiZWxNZXNzYWdlIiwiZm9ybWF0TWVzc2FnZSIsImlkIiwiaXNBZ2dyZWdhdGVkIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwiYXJyYXlPZiIsImFueSIsIm9iamVjdCIsIm9uZU9mVHlwZSIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcC9sYXllci1ob3Zlci1pbmZvLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB0cnVuY2F0ZSBmcm9tICdsb2Rhc2gvdHJ1bmNhdGUnO1xuaW1wb3J0IHtDb21wYXJlVHlwZSwgRmllbGQsIE1lcmdlLCBUb29sdGlwRmllbGR9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtDZW50ZXJGbGV4Ym94fSBmcm9tICcuLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtMYXllcnN9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHtub3ROdWxsb3JVbmRlZmluZWR9IGZyb20gJ0BrZXBsZXIuZ2wvY29tbW9uLXV0aWxzJztcbmltcG9ydCB7RGF0YVJvd30gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge0xheWVyfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge1xuICBBZ2dyZWdhdGlvbkxheWVySG92ZXJEYXRhLFxuICBMYXllckhvdmVyUHJvcCxcbiAgZ2V0VG9vbHRpcERpc3BsYXlEZWx0YVZhbHVlLFxuICBnZXRUb29sdGlwRGlzcGxheVZhbHVlXG59IGZyb20gJ0BrZXBsZXIuZ2wvcmVkdWNlcnMnO1xuaW1wb3J0IHt1c2VJbnRsfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7VmlzU3RhdGV9IGZyb20gJ0BrZXBsZXIuZ2wvc2NoZW1hcyc7XG5pbXBvcnQge2NhcGl0YWxpemVGaXJzdExldHRlcn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRMYXllck5hbWUgPSBzdHlsZWQoQ2VudGVyRmxleGJveClgXG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBsZXR0ZXItc3BhY2luZzogMC40M3B4O1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcblxuICBzdmcge1xuICAgIG1hcmdpbi1yaWdodDogNHB4O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRUYWJsZSA9IHN0eWxlZC50YWJsZWBcbiAgJiAucm93X19kZWx0YS12YWx1ZSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgbWFyZ2luLWxlZnQ6IDZweDtcblxuICAgICYucG9zaXRpdmUge1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubm90aWZpY2F0aW9uQ29sb3JzLnN1Y2Nlc3N9O1xuICAgIH1cblxuICAgICYubmVnYXRpdmUge1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubmVnYXRpdmVCdG5BY3RCZ2R9O1xuICAgIH1cbiAgfVxuICAmIC5yb3dfX3ZhbHVlLFxuICAmIC5yb3dfX25hbWUge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gICAgd2hpdGUtc3BhY2U6IG5vLXdyYXA7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZERpdmlkZXIgPSBzdHlsZWQuZGl2YFxuICAvLyBvZmZzZXQgZGl2aWRlciB0byByZWFjaCBwb3BvdmVyIGVkZ2VcbiAgbWFyZ2luLWxlZnQ6IC0xNHB4O1xuICBtYXJnaW4tcmlnaHQ6IC0xNHB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJvcmRlckNvbG9yfTtcbmA7XG5cbmludGVyZmFjZSBSb3dQcm9wcyB7XG4gIG5hbWU6IHN0cmluZztcbiAgdmFsdWU6IHN0cmluZztcbiAgZGVsdGFWYWx1ZT86IHN0cmluZyB8IG51bGw7XG4gIHVybD86IHN0cmluZztcbn1cblxuY29uc3QgVE9PTFRJUF9WQUxVRV9NQVhfTEVOR1RIID0gMjU2O1xuXG5jb25zdCBSb3c6IFJlYWN0LkZDPFJvd1Byb3BzPiA9ICh7bmFtZSwgdmFsdWUsIGRlbHRhVmFsdWUsIHVybH0pID0+IHtcbiAgLy8gU2V0ICd1cmwnIHRvICd2YWx1ZScgaWYgaXQgbG9va3MgbGlrZSBhIHVybFxuICBpZiAoIXVybCAmJiB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLm1hdGNoKC9eaHR0cC8pKSB7XG4gICAgdXJsID0gdmFsdWU7XG4gIH1cblxuICBjb25zdCBkaXNwbGF5VmFsdWUgPVxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgdmFsdWUubGVuZ3RoID4gVE9PTFRJUF9WQUxVRV9NQVhfTEVOR1RIXG4gICAgICA/IHRydW5jYXRlKHZhbHVlLCB7bGVuZ3RoOiBUT09MVElQX1ZBTFVFX01BWF9MRU5HVEh9KVxuICAgICAgOiB2YWx1ZTtcblxuICBjb25zdCBhc0ltZyA9IC88aW1nPi8udGVzdChuYW1lKTtcbiAgcmV0dXJuIChcbiAgICA8dHIgY2xhc3NOYW1lPVwibGF5ZXItaG92ZXItaW5mb19fcm93XCIga2V5PXtuYW1lfT5cbiAgICAgIDx0ZCBjbGFzc05hbWU9XCJyb3dfX25hbWVcIj57YXNJbWcgPyBuYW1lLnJlcGxhY2UoJzxpbWc+JywgJycpIDogbmFtZX08L3RkPlxuICAgICAgPHRkIGNsYXNzTmFtZT1cInJvd19fdmFsdWVcIj5cbiAgICAgICAge2FzSW1nID8gKFxuICAgICAgICAgIDxpbWcgc3JjPXt2YWx1ZX0gLz5cbiAgICAgICAgKSA6IHVybCA/IChcbiAgICAgICAgICA8YSB0YXJnZXQ9XCJfYmxhbmtcIiByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCIgaHJlZj17dXJsfT5cbiAgICAgICAgICAgIHtkaXNwbGF5VmFsdWV9XG4gICAgICAgICAgPC9hPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDw+XG4gICAgICAgICAgICA8c3Bhbj57ZGlzcGxheVZhbHVlfTwvc3Bhbj5cbiAgICAgICAgICAgIHtub3ROdWxsb3JVbmRlZmluZWQoZGVsdGFWYWx1ZSkgPyAoXG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcm93X19kZWx0YS12YWx1ZSAke1xuICAgICAgICAgICAgICAgICAgZGVsdGFWYWx1ZT8udG9TdHJpbmcoKS5jaGFyQXQoMCkgPT09ICcrJyA/ICdwb3NpdGl2ZScgOiAnbmVnYXRpdmUnXG4gICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7ZGVsdGFWYWx1ZX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC8+XG4gICAgICAgICl9XG4gICAgICA8L3RkPlxuICAgIDwvdHI+XG4gICk7XG59O1xuXG5leHBvcnQgdHlwZSBFbnRyeUluZm9Qcm9wcyA9IE1lcmdlPExheWVySG92ZXJQcm9wLCB7ZmllbGRzVG9TaG93OiBUb29sdGlwRmllbGRbXX0+O1xuXG5jb25zdCBFbnRyeUluZm86IFJlYWN0LkZDPEVudHJ5SW5mb1Byb3BzPiA9ICh7ZmllbGRzVG9TaG93LCAuLi5wcm9wc30pID0+IChcbiAgPHRib2R5PlxuICAgIHtmaWVsZHNUb1Nob3cubWFwKGl0ZW0gPT4gKFxuICAgICAgPEVudHJ5SW5mb1JvdyBrZXk9e2l0ZW0ubmFtZX0gaXRlbT17aXRlbX0gey4uLnByb3BzfSAvPlxuICAgICkpfVxuICA8L3Rib2R5PlxuKTtcblxuZXhwb3J0IHR5cGUgRW50cnlJbmZvUm93UHJvcHMgPSB7XG4gIGRhdGE6IExheWVySG92ZXJQcm9wWydkYXRhJ107XG4gIGZpZWxkczogRmllbGRbXTtcbiAgbGF5ZXI6IExheWVyO1xuICBwcmltYXJ5RGF0YT86IExheWVySG92ZXJQcm9wWydwcmltYXJ5RGF0YSddO1xuICBjb21wYXJlVHlwZT86IENvbXBhcmVUeXBlO1xuICBjdXJyZW50VGltZT86IFZpc1N0YXRlWydhbmltYXRpb25Db25maWcnXVsnY3VycmVudFRpbWUnXTtcbiAgaXRlbTogVG9vbHRpcEZpZWxkO1xufTtcblxuY29uc3QgRW50cnlJbmZvUm93OiBSZWFjdC5GQzxFbnRyeUluZm9Sb3dQcm9wcz4gPSAoe1xuICBsYXllcixcbiAgaXRlbSxcbiAgZmllbGRzLFxuICBkYXRhLFxuICBwcmltYXJ5RGF0YSxcbiAgY29tcGFyZVR5cGUsXG4gIGN1cnJlbnRUaW1lXG59KSA9PiB7XG4gIGNvbnN0IGZpZWxkSWR4ID0gZmllbGRzLmZpbmRJbmRleChmID0+IGYubmFtZSA9PT0gaXRlbS5uYW1lKTtcbiAgaWYgKGZpZWxkSWR4IDwgMCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGNvbnN0IGZpZWxkID0gZmllbGRzW2ZpZWxkSWR4XTtcbiAgY29uc3QgZmllbGRWYWx1ZUFjY2Vzc29yID0gbGF5ZXIuYWNjZXNzVlNGaWVsZFZhbHVlKGZpZWxkLCBjdXJyZW50VGltZSk7XG4gIGNvbnN0IHZhbHVlID0gZmllbGRWYWx1ZUFjY2Vzc29yKGZpZWxkLCBkYXRhIGluc3RhbmNlb2YgRGF0YVJvdyA/IHtpbmRleDogZGF0YS5fcm93SW5kZXh9IDogZGF0YSk7XG5cbiAgLy8gSGFuZGxlIFdNUyBsYXllciBkYXRhIGluIGNvbXBhcmlzb24gbW9kZSAtIFdNUyBsYXllcnMgZG9uJ3QgaGF2ZSBjb21wYXJhYmxlIGZpZWxkIGRhdGFcbiAgbGV0IHByaW1hcnlWYWx1ZSA9IG51bGw7XG4gIGxldCBkaXNwbGF5RGVsdGFWYWx1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgaWYgKHByaW1hcnlEYXRhKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIE9ubHkgY2FsY3VsYXRlIHByaW1hcnkgdmFsdWUgaWYgcHJpbWFyeURhdGEgaGFzIGEgY29tcGF0aWJsZSBzdHJ1Y3R1cmVcbiAgICAgIGlmIChcbiAgICAgICAgcHJpbWFyeURhdGEgaW5zdGFuY2VvZiBEYXRhUm93IHx8XG4gICAgICAgIChwcmltYXJ5RGF0YSAmJiB0eXBlb2YgcHJpbWFyeURhdGEgPT09ICdvYmplY3QnICYmICdpbmRleCcgaW4gcHJpbWFyeURhdGEpXG4gICAgICApIHtcbiAgICAgICAgcHJpbWFyeVZhbHVlID0gZmllbGRWYWx1ZUFjY2Vzc29yKFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIHByaW1hcnlEYXRhIGluc3RhbmNlb2YgRGF0YVJvdyA/IHtpbmRleDogcHJpbWFyeURhdGEuX3Jvd0luZGV4fSA6IHByaW1hcnlEYXRhXG4gICAgICAgICk7XG5cbiAgICAgICAgZGlzcGxheURlbHRhVmFsdWUgPSBnZXRUb29sdGlwRGlzcGxheURlbHRhVmFsdWUoe1xuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgIHByaW1hcnlWYWx1ZSxcbiAgICAgICAgICBjb21wYXJlVHlwZVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgLy8gSWYgdGhlcmUncyBhbiBlcnJvciBhY2Nlc3NpbmcgcHJpbWFyeURhdGEgKGUuZy4sIFdNUyBsYXllciBkYXRhKSwgc2tpcCBjb21wYXJpc29uXG4gICAgICBwcmltYXJ5VmFsdWUgPSBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRpc3BsYXlWYWx1ZSA9IGdldFRvb2x0aXBEaXNwbGF5VmFsdWUoe2l0ZW0sIGZpZWxkLCB2YWx1ZX0pO1xuXG4gIHJldHVybiAoXG4gICAgPFJvd1xuICAgICAgbmFtZT17ZmllbGQuZGlzcGxheU5hbWUgfHwgZmllbGQubmFtZX1cbiAgICAgIHZhbHVlPXtkaXNwbGF5VmFsdWV9XG4gICAgICBkZWx0YVZhbHVlPXtkaXNwbGF5RGVsdGFWYWx1ZX1cbiAgICAvPlxuICApO1xufTtcblxuLy8gVE9ETzogc3VwcG9ydGluZyBjb21wYXJhdGl2ZSB2YWx1ZSBmb3IgYWdncmVnYXRlZCBjZWxscyBhcyB3ZWxsXG5jb25zdCBDZWxsSW5mbyA9ICh7XG4gIGZpZWxkc1RvU2hvdyxcbiAgZGF0YSxcbiAgbGF5ZXJcbn06IHtcbiAgZGF0YTogQWdncmVnYXRpb25MYXllckhvdmVyRGF0YTtcbiAgZmllbGRzVG9TaG93OiBUb29sdGlwRmllbGRbXTtcbiAgbGF5ZXI6IExheWVyO1xufSkgPT4ge1xuICBjb25zdCB7Y29sb3JGaWVsZCwgc2l6ZUZpZWxkfSA9IGxheWVyLmNvbmZpZyBhcyBhbnk7XG5cbiAgY29uc3QgY29sb3JWYWx1ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChjb2xvckZpZWxkICYmIGxheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yKSB7XG4gICAgICBjb25zdCBpdGVtID0gZmllbGRzVG9TaG93LmZpbmQoZmllbGQgPT4gZmllbGQubmFtZSA9PT0gY29sb3JGaWVsZC5uYW1lKTtcbiAgICAgIHJldHVybiBnZXRUb29sdGlwRGlzcGxheVZhbHVlKHtpdGVtLCBmaWVsZDogY29sb3JGaWVsZCwgdmFsdWU6IGRhdGEuY29sb3JWYWx1ZX0pO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfSwgW2ZpZWxkc1RvU2hvdywgY29sb3JGaWVsZCwgbGF5ZXIsIGRhdGEuY29sb3JWYWx1ZV0pO1xuXG4gIGNvbnN0IGVsZXZhdGlvblZhbHVlID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHNpemVGaWVsZCAmJiBsYXllci52aXN1YWxDaGFubmVscy5zaXplKSB7XG4gICAgICBjb25zdCBpdGVtID0gZmllbGRzVG9TaG93LmZpbmQoZmllbGQgPT4gZmllbGQubmFtZSA9PT0gc2l6ZUZpZWxkLm5hbWUpO1xuICAgICAgcmV0dXJuIGdldFRvb2x0aXBEaXNwbGF5VmFsdWUoe2l0ZW0sIGZpZWxkOiBzaXplRmllbGQsIHZhbHVlOiBkYXRhLmVsZXZhdGlvblZhbHVlfSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9LCBbZmllbGRzVG9TaG93LCBzaXplRmllbGQsIGxheWVyLCBkYXRhLmVsZXZhdGlvblZhbHVlXSk7XG5cbiAgY29uc3QgYWdncmVnYXRlZERhdGEgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBpZiAoZGF0YS5hZ2dyZWdhdGVkRGF0YSAmJiBmaWVsZHNUb1Nob3cpIHtcbiAgICAgIHJldHVybiBmaWVsZHNUb1Nob3cucmVkdWNlKChhY2MsIGZpZWxkKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGFGb3JGaWVsZCA9IGRhdGEuYWdncmVnYXRlZERhdGE/LltmaWVsZC5uYW1lXTtcbiAgICAgICAgaWYgKGRhdGFGb3JGaWVsZD8ubWVhc3VyZSAmJiBmaWVsZC5uYW1lICE9PSBjb2xvckZpZWxkPy5uYW1lKSB7XG4gICAgICAgICAgYWNjLnB1c2goe1xuICAgICAgICAgICAgbmFtZTogYCR7Y2FwaXRhbGl6ZUZpcnN0TGV0dGVyKGRhdGFGb3JGaWVsZC5tZWFzdXJlKX0gb2YgJHtmaWVsZC5uYW1lfWAsXG4gICAgICAgICAgICB2YWx1ZTogZGF0YUZvckZpZWxkLnZhbHVlXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIFtdIGFzIHtuYW1lOiBzdHJpbmc7IHZhbHVlPzogc3RyaW5nfVtdKTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9LCBbZGF0YS5hZ2dyZWdhdGVkRGF0YSwgZmllbGRzVG9TaG93LCBjb2xvckZpZWxkPy5uYW1lXSk7XG5cbiAgY29uc3QgY29sb3JNZWFzdXJlID0gbGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKCdjb2xvcicpLm1lYXN1cmU7XG4gIGNvbnN0IHNpemVNZWFzdXJlID0gbGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKCdzaXplJykubWVhc3VyZTtcbiAgcmV0dXJuIChcbiAgICA8dGJvZHk+XG4gICAgICA8Um93IG5hbWU9eyd0b3RhbCBwb2ludHMnfSBrZXk9XCJjb3VudFwiIHZhbHVlPXtTdHJpbmcoZGF0YS5wb2ludHMgJiYgZGF0YS5wb2ludHMubGVuZ3RoKX0gLz5cbiAgICAgIHtjb2xvckZpZWxkICYmIGxheWVyLnZpc3VhbENoYW5uZWxzLmNvbG9yICYmIGNvbG9yTWVhc3VyZSA/IChcbiAgICAgICAgPFJvdyBuYW1lPXtjb2xvck1lYXN1cmV9IGtleT1cImNvbG9yXCIgdmFsdWU9e2NvbG9yVmFsdWUgfHwgJ04vQSd9IC8+XG4gICAgICApIDogbnVsbH1cbiAgICAgIHtzaXplRmllbGQgJiYgbGF5ZXIudmlzdWFsQ2hhbm5lbHMuc2l6ZSAmJiBzaXplTWVhc3VyZSA/IChcbiAgICAgICAgPFJvdyBuYW1lPXtzaXplTWVhc3VyZX0ga2V5PVwic2l6ZVwiIHZhbHVlPXtlbGV2YXRpb25WYWx1ZSB8fCAnTi9BJ30gLz5cbiAgICAgICkgOiBudWxsfVxuICAgICAge2FnZ3JlZ2F0ZWREYXRhLm1hcCgoZGF0YUZvckZpZWxkLCBpZHgpID0+IChcbiAgICAgICAgPFJvdyBuYW1lPXtkYXRhRm9yRmllbGQubmFtZX0ga2V5PXtgZGF0YV8ke2lkeH1gfSB2YWx1ZT17ZGF0YUZvckZpZWxkLnZhbHVlIHx8ICdOL0EnfSAvPlxuICAgICAgKSl9XG4gICAgPC90Ym9keT5cbiAgKTtcbn07XG5cbmNvbnN0IExheWVySG92ZXJJbmZvRmFjdG9yeSA9ICgpID0+IHtcbiAgY29uc3QgTGF5ZXJIb3ZlckluZm8gPSBwcm9wcyA9PiB7XG4gICAgY29uc3Qge2RhdGEsIGxheWVyfSA9IHByb3BzO1xuICAgIGNvbnN0IGludGwgPSB1c2VJbnRsKCk7XG4gICAgaWYgKCFkYXRhIHx8ICFsYXllcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgaGFzRmllbGRzVG9TaG93ID1cbiAgICAgIChkYXRhLmZpZWxkVmFsdWVzICYmIE9iamVjdC5rZXlzKGRhdGEuZmllbGRWYWx1ZXMpLmxlbmd0aCA+IDApIHx8XG4gICAgICAoZGF0YS53bXNGZWF0dXJlRGF0YSAmJiBkYXRhLndtc0ZlYXR1cmVEYXRhLmxlbmd0aCA+IDApIHx8XG4gICAgICAocHJvcHMuZmllbGRzVG9TaG93ICYmIHByb3BzLmZpZWxkc1RvU2hvdy5sZW5ndGggPiAwKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1hcC1wb3BvdmVyX19sYXllci1pbmZvXCI+XG4gICAgICAgIDxTdHlsZWRMYXllck5hbWUgY2xhc3NOYW1lPVwibWFwLXBvcG92ZXJfX2xheWVyLW5hbWVcIj5cbiAgICAgICAgICA8TGF5ZXJzIGhlaWdodD1cIjEycHhcIiAvPlxuICAgICAgICAgIHtwcm9wcy5sYXllci5jb25maWcubGFiZWx9XG4gICAgICAgIDwvU3R5bGVkTGF5ZXJOYW1lPlxuICAgICAgICB7aGFzRmllbGRzVG9TaG93ICYmIDxTdHlsZWREaXZpZGVyIC8+fVxuICAgICAgICA8U3R5bGVkVGFibGU+XG4gICAgICAgICAge2RhdGEud21zRmVhdHVyZURhdGEgPyAoXG4gICAgICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgICAgIHtkYXRhLndtc0ZlYXR1cmVEYXRhLm1hcCgoe25hbWUsIHZhbHVlfSwgaSkgPT4gKFxuICAgICAgICAgICAgICAgIDxSb3cga2V5PXtpfSBuYW1lPXtuYW1lfSB2YWx1ZT17dmFsdWV9IC8+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICApIDogZGF0YS5maWVsZFZhbHVlcyA/IChcbiAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAge2RhdGEuZmllbGRWYWx1ZXMubWFwKCh7bGFiZWxNZXNzYWdlLCB2YWx1ZX0sIGkpID0+IChcbiAgICAgICAgICAgICAgICA8Um93IGtleT17aX0gbmFtZT17aW50bC5mb3JtYXRNZXNzYWdlKHtpZDogbGFiZWxNZXNzYWdlfSl9IHZhbHVlPXt2YWx1ZX0gLz5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICAgICkgOiBwcm9wcy5sYXllci5pc0FnZ3JlZ2F0ZWQgPyAoXG4gICAgICAgICAgICA8Q2VsbEluZm8gey4uLnByb3BzfSAvPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8RW50cnlJbmZvIHsuLi5wcm9wc30gLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1N0eWxlZFRhYmxlPlxuICAgICAgICB7aGFzRmllbGRzVG9TaG93ICYmIDxTdHlsZWREaXZpZGVyIC8+fVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICBMYXllckhvdmVySW5mby5wcm9wVHlwZXMgPSB7XG4gICAgZmllbGRzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KSxcbiAgICBmaWVsZHNUb1Nob3c6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLFxuICAgIGxheWVyOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGRhdGE6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLCBQcm9wVHlwZXMub2JqZWN0XSlcbiAgfTtcbiAgcmV0dXJuIExheWVySG92ZXJJbmZvO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJIb3ZlckluZm9GYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsU0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUks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SSxFQUFFQSxJQUFLO1FBQUNDLEtBQUssRUFBRUE7TUFBTSxDQUFFLENBQUM7SUFBQSxDQUMxQyxDQUNJLENBQUMsR0FDTmlDLElBQUksQ0FBQ29ELFdBQVcsZ0JBQ2xCOUksTUFBQSxZQUFBa0UsYUFBQSxnQkFDR3dCLElBQUksQ0FBQ29ELFdBQVcsQ0FBQzNELEdBQUcsQ0FBQyxVQUFBa0UsS0FBQSxFQUF3QmxILENBQUM7TUFBQSxJQUF2Qm1ILFlBQVksR0FBQUQsS0FBQSxDQUFaQyxZQUFZO1FBQUU3RixLQUFLLEdBQUE0RixLQUFBLENBQUw1RixLQUFLO01BQUEsb0JBQ3pDekQsTUFBQSxZQUFBa0UsYUFBQSxDQUFDWixHQUFHO1FBQUNjLEdBQUcsRUFBRWpDLENBQUU7UUFBQ3FCLElBQUksRUFBRW1GLElBQUksQ0FBQ1ksYUFBYSxDQUFDO1VBQUNDLEVBQUUsRUFBRUY7UUFBWSxDQUFDLENBQUU7UUFBQzdGLEtBQUssRUFBRUE7TUFBTSxDQUFFLENBQUM7SUFBQSxDQUM1RSxDQUNJLENBQUMsR0FDTmYsS0FBSyxDQUFDOEMsS0FBSyxDQUFDaUUsWUFBWSxnQkFDMUJ6SixNQUFBLFlBQUFrRSxhQUFBLENBQUM0QyxRQUFRLEVBQUtwRSxLQUFRLENBQUMsZ0JBRXZCMUMsTUFBQSxZQUFBa0UsYUFBQSxDQUFDYSxTQUFTLEVBQUtyQyxLQUFRLENBRWQsQ0FBQyxFQUNibUcsZUFBZSxpQkFBSTdJLE1BQUEsWUFBQWtFLGFBQUEsQ0FBQ2hCLGFBQWEsTUFBRSxDQUNqQyxDQUFDO0VBRVYsQ0FBQztFQUVEd0YsY0FBYyxDQUFDZ0IsU0FBUyxHQUFHO0lBQ3pCakUsTUFBTSxFQUFFa0UscUJBQVMsQ0FBQ0MsT0FBTyxDQUFDRCxxQkFBUyxDQUFDRSxHQUFHLENBQUM7SUFDeEM1RSxZQUFZLEVBQUUwRSxxQkFBUyxDQUFDQyxPQUFPLENBQUNELHFCQUFTLENBQUNFLEdBQUcsQ0FBQztJQUM5Q3JFLEtBQUssRUFBRW1FLHFCQUFTLENBQUNHLE1BQU07SUFDdkJwRSxJQUFJLEVBQUVpRSxxQkFBUyxDQUFDSSxTQUFTLENBQUMsQ0FBQ0oscUJBQVMsQ0FBQ0MsT0FBTyxDQUFDRCxxQkFBUyxDQUFDRSxHQUFHLENBQUMsRUFBRUYscUJBQVMsQ0FBQ0csTUFBTSxDQUFDO0VBQ2hGLENBQUM7RUFDRCxPQUFPcEIsY0FBYztBQUN2QixDQUFDO0FBQUMsSUFBQXNCLFFBQUEsR0FBQTFILE9BQUEsY0FFYW1HLHFCQUFxQiIsImlnbm9yZUxpc3QiOltdfQ==
@@ -34,8 +34,10 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
34
34
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
35
35
  var DRAG_RESIZE_ID = 'map-legend-resize';
36
36
  var DRAG_MOVE_ID = 'map-legend-move';
37
- var StyledDraggableLegendContent = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n outline: none;\n transition: border-color 0.2s ease-in-out;\n border: 1px solid transparent;\n .legend-input-block {\n display: none;\n }\n &.is-dragging .legend-input-block {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: transparent;\n }\n &:hover,\n &.is-dragging {\n .legend-move-handle {\n opacity: 1;\n pointer-events: auto;\n }\n .legend-resize-handle {\n opacity: 1;\n pointer-events: auto;\n }\n border-color: ", ";\n }\n .map-control__panel-content {\n max-height: calc(100vh - 100px);\n ", ";\n }\n border-radius: 4px;\n z-index: 2;\n .map-control-panel {\n margin-bottom: 0 !important;\n }\n"])), function (props) {
37
+ var StyledDraggableLegendContent = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n outline: none;\n transition: border-color 0.2s ease-in-out;\n border: 1px solid transparent;\n .legend-input-block {\n display: none;\n }\n &.is-dragging .legend-input-block {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: transparent;\n }\n &:hover,\n &.is-dragging {\n .legend-move-handle {\n opacity: 1;\n pointer-events: auto;\n }\n .legend-resize-handle {\n opacity: 1;\n pointer-events: auto;\n }\n border-color: ", ";\n }\n .map-control__panel-content {\n max-height: ", ";\n ", ";\n }\n border-radius: 4px;\n z-index: 2;\n .map-control-panel {\n margin-bottom: 0 !important;\n }\n"])), function (props) {
38
38
  return props.theme.activeColor;
39
+ }, function (props) {
40
+ return props.maxContentHeight ? "".concat(props.maxContentHeight, "px") : 'calc(100vh - 100px)';
39
41
  }, function (props) {
40
42
  return props.contentHeight ? "height: ".concat(props.contentHeight, "px;") : '';
41
43
  });
@@ -48,7 +50,9 @@ var StyledFixedLegendContent = _styledComponents["default"].div(_templateObject4
48
50
  });
49
51
  var DraggableLegendContent = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
50
52
  var positionStyles = props.positionStyles,
51
- children = props.children;
53
+ children = props.children,
54
+ contentHeight = props.contentHeight,
55
+ maxContentHeight = props.maxContentHeight;
52
56
  var draggableMove = (0, _core.useDraggable)({
53
57
  id: DRAG_MOVE_ID
54
58
  });
@@ -65,7 +69,8 @@ var DraggableLegendContent = /*#__PURE__*/(0, _react.forwardRef)(function (props
65
69
  style: _objectSpread(_objectSpread({}, positionStyles), {}, {
66
70
  transform: _utilities.CSS.Translate.toString(draggableMove.transform)
67
71
  }),
68
- contentHeight: props.contentHeight
72
+ contentHeight: contentHeight,
73
+ maxContentHeight: maxContentHeight
69
74
  }, draggableMove.attributes), children, isDragging ? /*#__PURE__*/_react["default"].createElement("div", {
70
75
  className: "legend-input-block"
71
76
  }) : null, /*#__PURE__*/_react["default"].createElement(StyledMoveHandle, (0, _extends2["default"])({
@@ -85,6 +90,7 @@ var DraggableLegend = (0, _styledComponents.withTheme)(function (_ref) {
85
90
  children = _ref.children,
86
91
  mapControls = _ref.mapControls,
87
92
  setMapControlSettings = _ref.setMapControlSettings,
93
+ mapState = _ref.mapState,
88
94
  theme = _ref.theme;
89
95
  var settings = mapControls === null || mapControls === void 0 || (_mapControls$mapLegen = mapControls.mapLegend) === null || _mapControls$mapLegen === void 0 ? void 0 : _mapControls$mapLegen.settings;
90
96
  var legendContentRef = (0, _react.useRef)(null);
@@ -96,13 +102,16 @@ var DraggableLegend = (0, _styledComponents.withTheme)(function (_ref) {
96
102
  isSidePanelShown: isSidePanelShown,
97
103
  theme: theme,
98
104
  settings: settings,
99
- onChangeSettings: onChangeSettings
105
+ onChangeSettings: onChangeSettings,
106
+ mapHeight: mapState === null || mapState === void 0 ? void 0 : mapState.height,
107
+ mapWidth: mapState === null || mapState === void 0 ? void 0 : mapState.width
100
108
  }),
101
109
  positionStyles = _useLegendPosition.positionStyles,
102
110
  updatePosition = _useLegendPosition.updatePosition,
103
111
  startResize = _useLegendPosition.startResize,
104
112
  resize = _useLegendPosition.resize,
105
- contentHeight = _useLegendPosition.contentHeight;
113
+ contentHeight = _useLegendPosition.contentHeight,
114
+ maxContentHeight = _useLegendPosition.maxContentHeight;
106
115
  var handleDragStart = (0, _react.useCallback)(function (event) {
107
116
  switch (event.active.id) {
108
117
  case DRAG_RESIZE_ID:
@@ -128,7 +137,8 @@ var DraggableLegend = (0, _styledComponents.withTheme)(function (_ref) {
128
137
  }, /*#__PURE__*/_react["default"].createElement(DraggableLegendContent, {
129
138
  ref: legendContentRef,
130
139
  positionStyles: positionStyles,
131
- contentHeight: contentHeight
140
+ contentHeight: contentHeight,
141
+ maxContentHeight: maxContentHeight
132
142
  }, children));
133
143
  });
134
144
  var ImageExportLegend = (0, _styledComponents.withTheme)(function (_ref2) {
@@ -240,7 +250,8 @@ var MapLegendPanelComponent = function MapLegendPanelComponent(_ref3) {
240
250
  }, legendPanel) : ( /*#__PURE__*/(0, _reactDom.createPortal)( /*#__PURE__*/_react["default"].createElement(DraggableLegend, {
241
251
  isSidePanelShown: isSidePanelShown,
242
252
  mapControls: mapControls,
243
- setMapControlSettings: setMapControlSettings
253
+ setMapControlSettings: setMapControlSettings,
254
+ mapState: mapState
244
255
  }, legendPanel), (_rootContext$current = rootContext === null || rootContext === void 0 ? void 0 : rootContext.current) !== null && _rootContext$current !== void 0 ? _rootContext$current : document.body)) : null, !isExport ? /*#__PURE__*/_react["default"].createElement(MapControlTooltip, {
245
256
  id: "show-legend",
246
257
  message: "tooltip.showLegend"
@@ -261,4 +272,4 @@ function MapLegendPanelFactory(MapControlTooltip, MapControlPanel, MapLegend) {
261
272
  };
262
273
  }
263
274
  var _default = exports["default"] = MapLegendPanelFactory;
264
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0RG9tIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9jb3JlIiwiX3V0aWxpdGllcyIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX3V0aWxzIiwiX2ljb25zIiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX2NvbnRleHQiLCJfdXNlTGVnZW5kUG9zaXRpb24zIiwiX21hcENvbnRyb2xQYW5lbCIsIl9tYXBDb250cm9sVG9vbHRpcCIsIl9tYXBMZWdlbmQiLCJfbW9kaWZpZXJzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiRFJBR19SRVNJWkVfSUQiLCJEUkFHX01PVkVfSUQiLCJTdHlsZWREcmFnZ2FibGVMZWdlbmRDb250ZW50Iiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwiYWN0aXZlQ29sb3IiLCJjb250ZW50SGVpZ2h0IiwiY29uY2F0IiwiU3R5bGVkTW92ZUhhbmRsZSIsIlN0eWxlZFJlc2l6ZUhhbmRsZSIsIlN0eWxlZEZpeGVkTGVnZW5kQ29udGVudCIsIkRyYWdnYWJsZUxlZ2VuZENvbnRlbnQiLCJmb3J3YXJkUmVmIiwicmVmIiwicG9zaXRpb25TdHlsZXMiLCJjaGlsZHJlbiIsImRyYWdnYWJsZU1vdmUiLCJ1c2VEcmFnZ2FibGUiLCJpZCIsImRyYWdnYWJsZVJlc2l6ZSIsInJlZnMiLCJ1c2VNZXJnZVJlZnMiLCJzZXROb2RlUmVmIiwiaXNEcmFnZ2luZyIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJjbGFzc05hbWUiLCJjbGFzc25hbWVzIiwic3R5bGUiLCJ0cmFuc2Zvcm0iLCJDU1MiLCJUcmFuc2xhdGUiLCJ0b1N0cmluZyIsImF0dHJpYnV0ZXMiLCJsaXN0ZW5lcnMiLCJEcmFnZ2FibGVEb3RzIiwiaGVpZ2h0IiwiSG9yaXpvbnRhbFJlc2l6ZUhhbmRsZSIsIkRyYWdnYWJsZUxlZ2VuZCIsIndpdGhUaGVtZSIsIl9yZWYiLCJfbWFwQ29udHJvbHMkbWFwTGVnZW4iLCJpc1NpZGVQYW5lbFNob3duIiwibWFwQ29udHJvbHMiLCJzZXRNYXBDb250cm9sU2V0dGluZ3MiLCJzZXR0aW5ncyIsIm1hcExlZ2VuZCIsImxlZ2VuZENvbnRlbnRSZWYiLCJ1c2VSZWYiLCJvbkNoYW5nZVNldHRpbmdzIiwidXNlQ2FsbGJhY2siLCJuZXdTZXR0aW5ncyIsIl91c2VMZWdlbmRQb3NpdGlvbiIsInVzZUxlZ2VuZFBvc2l0aW9uIiwidXBkYXRlUG9zaXRpb24iLCJzdGFydFJlc2l6ZSIsInJlc2l6ZSIsImhhbmRsZURyYWdTdGFydCIsImV2ZW50IiwiYWN0aXZlIiwiaGFuZGxlRHJhZ0VuZCIsImhhbmRsZURyYWdNb3ZlIiwiZGVsdGEiLCJ5IiwiRG5kQ29udGV4dCIsIm9uRHJhZ1N0YXJ0Iiwib25EcmFnTW92ZSIsIm9uRHJhZ0VuZCIsIm1vZGlmaWVycyIsInJlc3RyaWN0VG9XaW5kb3dFZGdlcyIsIkltYWdlRXhwb3J0TGVnZW5kIiwiX3JlZjIiLCJfY29udGFpbmVyUmVmJGN1cnJlbnQiLCJjb250YWluZXJSZWYiLCJfdXNlTGVnZW5kUG9zaXRpb24yIiwicG9ydGFsUm9vdCIsImN1cnJlbnQiLCJjbG9zZXN0IiwicXVlcnlTZWxlY3RvciIsImNyZWF0ZVBvcnRhbCIsInBvc2l0aW9uIiwiTWFwTGVnZW5kUGFuZWxGYWN0b3J5IiwiZGVwcyIsIk1hcENvbnRyb2xUb29sdGlwRmFjdG9yeSIsIk1hcENvbnRyb2xQYW5lbEZhY3RvcnkiLCJNYXBMZWdlbmRGYWN0b3J5IiwiZGVmYXVsdEFjdGlvbkljb25zIiwibGVnZW5kIiwiTGVnZW5kIiwiTWFwTGVnZW5kUGFuZWxDb21wb25lbnQiLCJfcmVmMyIsIl9tYXBDb250cm9scyRtYXBMZWdlbjIiLCJfcm9vdENvbnRleHQkY3VycmVudCIsImxheWVycyIsInNjYWxlIiwib25Ub2dnbGVNYXBDb250cm9sIiwiaXNFeHBvcnQiLCJsb2dvQ29tcG9uZW50IiwiX3JlZjMkYWN0aW9uSWNvbnMiLCJhY3Rpb25JY29ucyIsIm1hcFN0YXRlIiwib25MYXllclZpc0NvbmZpZ0NoYW5nZSIsIm9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydCIsIm9uQ2xpY2tDb250cm9sQnRuIiwiYWN0aXZlU2lkZVBhbmVsIiwiX3JlZjMkaXNWaWV3cG9ydFVuc3luIiwiaXNWaWV3cG9ydFVuc3luY0FsbG93ZWQiLCJNYXBDb250cm9sVG9vbHRpcCIsIk1hcENvbnRyb2xQYW5lbCIsIk1hcExlZ2VuZCIsIkJvb2xlYW4iLCJfcmVmNCIsImRpc2FibGVFZGl0Iiwicm9vdENvbnRleHQiLCJ1c2VDb250ZXh0IiwiUm9vdENvbnRleHQiLCJvbkNsaWNrIiwiX21hcENvbnRyb2xzJG1hcERyYXciLCJtYXBEcmF3Iiwib25DbG9zZUNsaWNrIiwicHJldmVudERlZmF1bHQiLCJzaG93IiwibGVnZW5kUGFuZWwiLCJoZWFkZXIiLCJwaW5uYWJsZSIsImRpc2FibGVDbG9zZSIsIkZyYWdtZW50IiwiaGFzUG9ydGFibGVXaWR0aCIsImJyZWFrUG9pbnRWYWx1ZXMiLCJkb2N1bWVudCIsImJvZHkiLCJtZXNzYWdlIiwiTWFwQ29udHJvbEJ1dHRvbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbWFwLWxlZ2VuZC1wYW5lbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQge2NyZWF0ZVBvcnRhbH0gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBSZWFjdCwge1xuICBDb21wb25lbnRUeXBlLFxuICBGQyxcbiAgZm9yd2FyZFJlZixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUNvbnRleHQsXG4gIHVzZVJlZixcbiAgUHJvcHNXaXRoQ2hpbGRyZW5cbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCwge3dpdGhUaGVtZX0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQge0RuZENvbnRleHQsIHVzZURyYWdnYWJsZX0gZnJvbSAnQGRuZC1raXQvY29yZSc7XG5pbXBvcnQge0NTU30gZnJvbSAnQGRuZC1raXQvdXRpbGl0aWVzJztcbmltcG9ydCB7dXNlTWVyZ2VSZWZzfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QnO1xuXG5pbXBvcnQge0FjdGlvbkhhbmRsZXIsIHNldE1hcENvbnRyb2xTZXR0aW5ncywgdG9nZ2xlU3BsaXRNYXBWaWV3cG9ydH0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7TGF5ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7YnJlYWtQb2ludFZhbHVlc30gZnJvbSAnQGtlcGxlci5nbC9zdHlsZXMnO1xuaW1wb3J0IHtMYXllclZpc0NvbmZpZywgTWFwQ29udHJvbE1hcExlZ2VuZCwgTWFwQ29udHJvbHMsIE1hcFN0YXRlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7aGFzUG9ydGFibGVXaWR0aH0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge01hcExlZ2VuZENvbnRyb2xTZXR0aW5nc30gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbmltcG9ydCB7TGVnZW5kLCBEcmFnZ2FibGVEb3RzLCBIb3Jpem9udGFsUmVzaXplSGFuZGxlfSBmcm9tICcuLi9jb21tb24vaWNvbnMnO1xuaW1wb3J0IHtNYXBDb250cm9sQnV0dG9ufSBmcm9tICcuLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtSb290Q29udGV4dH0gZnJvbSAnLi4vY29udGV4dCc7XG5pbXBvcnQgdXNlTGVnZW5kUG9zaXRpb24gZnJvbSAnLi4vaG9va3MvdXNlLWxlZ2VuZC1wb3NpdGlvbic7XG5pbXBvcnQgTWFwQ29udHJvbFBhbmVsRmFjdG9yeSBmcm9tICcuL21hcC1jb250cm9sLXBhbmVsJztcbmltcG9ydCBNYXBDb250cm9sVG9vbHRpcEZhY3RvcnkgZnJvbSAnLi9tYXAtY29udHJvbC10b29sdGlwJztcbmltcG9ydCBNYXBMZWdlbmRGYWN0b3J5IGZyb20gJy4vbWFwLWxlZ2VuZCc7XG5pbXBvcnQge3Jlc3RyaWN0VG9XaW5kb3dFZGdlc30gZnJvbSAnQGRuZC1raXQvbW9kaWZpZXJzJztcblxuY29uc3QgRFJBR19SRVNJWkVfSUQgPSAnbWFwLWxlZ2VuZC1yZXNpemUnO1xuY29uc3QgRFJBR19NT1ZFX0lEID0gJ21hcC1sZWdlbmQtbW92ZSc7XG5cbmNvbnN0IFN0eWxlZERyYWdnYWJsZUxlZ2VuZENvbnRlbnQgPSBzdHlsZWQuZGl2PHtjb250ZW50SGVpZ2h0PzogbnVtYmVyfT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAubGVnZW5kLWlucHV0LWJsb2NrIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICYuaXMtZHJhZ2dpbmcgLmxlZ2VuZC1pbnB1dC1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICAmOmhvdmVyLFxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICAubGVnZW5kLW1vdmUtaGFuZGxlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICB9XG4gICAgLmxlZ2VuZC1yZXNpemUtaGFuZGxlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICB9XG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmFjdGl2ZUNvbG9yfTtcbiAgfVxuICAubWFwLWNvbnRyb2xfX3BhbmVsLWNvbnRlbnQge1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxMDBweCk7XG4gICAgJHtwcm9wcyA9PiAocHJvcHMuY29udGVudEhlaWdodCA/IGBoZWlnaHQ6ICR7cHJvcHMuY29udGVudEhlaWdodH1weDtgIDogJycpfTtcbiAgfVxuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHotaW5kZXg6IDI7XG4gIC5tYXAtY29udHJvbC1wYW5lbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRNb3ZlSGFuZGxlID0gc3R5bGVkLmRpdmBcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLWluLW91dDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogd2hpdGU7XG4gIHotaW5kZXg6IDI7XG4gIHRvcDogMDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogMTZweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjdXJzb3I6IG1vdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYWN0aXZlQ29sb3J9O1xuYDtcblxuY29uc3QgU3R5bGVkUmVzaXplSGFuZGxlID0gc3R5bGVkLmRpdmBcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLWluLW91dDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogI2Y3ZjhmYTtcbiAgei1pbmRleDogMjtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogbnMtcmVzaXplO1xuYDtcblxuY29uc3QgU3R5bGVkRml4ZWRMZWdlbmRDb250ZW50ID0gc3R5bGVkLmRpdjx7Y29udGVudEhlaWdodD86IG51bWJlcn0+YFxuICAubWFwLWNvbnRyb2xfX3BhbmVsLWNvbnRlbnQge1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxMDBweCk7XG4gICAgJHtwcm9wcyA9PiAocHJvcHMuY29udGVudEhlaWdodCA/IGBoZWlnaHQ6ICR7cHJvcHMuY29udGVudEhlaWdodH1weDtgIDogJycpfTtcbiAgfVxuXG4gIC8qIEhpZGUgc2Nyb2xsYmFycyBpbiBleHBvcnQgdG8gYXZvaWQgT1MgZGVmYXVsdCBzdHlsaW5nIGRpZmZlcmVuY2VzICovXG4gIC5zdHlsZWQtY29sb3ItbGVnZW5kIHtcbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7IC8qIElFIGFuZCBvbGQgRWRnZSAqL1xuICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTsgLyogRmlyZWZveCAqL1xuICB9XG4gIC5zdHlsZWQtY29sb3ItbGVnZW5kOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDAgIWltcG9ydGFudDsgLyogQ2hyb21lLCBTYWZhcmksIG5ldyBFZGdlICovXG4gICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbmA7XG5cbmV4cG9ydCB0eXBlIE1hcExlZ2VuZFBhbmVsRmFjdG9yeURlcHMgPSBbXG4gIHR5cGVvZiBNYXBDb250cm9sVG9vbHRpcEZhY3RvcnksXG4gIHR5cGVvZiBNYXBDb250cm9sUGFuZWxGYWN0b3J5LFxuICB0eXBlb2YgTWFwTGVnZW5kRmFjdG9yeVxuXTtcblxudHlwZSBEcmFnZ2FibGVMZWdlbmRDb250ZW50UHJvcHMgPSB7XG4gIGNvbnRlbnRIZWlnaHQ/OiBudW1iZXI7XG4gIHBvc2l0aW9uU3R5bGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IERyYWdnYWJsZUxlZ2VuZENvbnRlbnQgPSBmb3J3YXJkUmVmKChwcm9wczogRHJhZ2dhYmxlTGVnZW5kQ29udGVudFByb3BzLCByZWYpID0+IHtcbiAgY29uc3Qge3Bvc2l0aW9uU3R5bGVzLCBjaGlsZHJlbn0gPSBwcm9wcztcbiAgY29uc3QgZHJhZ2dhYmxlTW92ZSA9IHVzZURyYWdnYWJsZSh7aWQ6IERSQUdfTU9WRV9JRH0pO1xuICBjb25zdCBkcmFnZ2FibGVSZXNpemUgPSB1c2VEcmFnZ2FibGUoe2lkOiBEUkFHX1JFU0laRV9JRH0pO1xuICBjb25zdCByZWZzID0gdXNlTWVyZ2VSZWZzKFtkcmFnZ2FibGVNb3ZlLnNldE5vZGVSZWYsIHJlZl0pO1xuICBjb25zdCBpc0RyYWdnaW5nID0gZHJhZ2dhYmxlTW92ZS5pc0RyYWdnaW5nIHx8IGRyYWdnYWJsZVJlc2l6ZS5pc0RyYWdnaW5nO1xuICByZXR1cm4gKFxuICAgIDxTdHlsZWREcmFnZ2FibGVMZWdlbmRDb250ZW50XG4gICAgICByZWY9e3JlZnN9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2RyYWdnYWJsZS1sZWdlbmQnLCB7J2lzLWRyYWdnaW5nJzogaXNEcmFnZ2luZ30pfVxuICAgICAgc3R5bGU9e3suLi5wb3NpdGlvblN0eWxlcywgdHJhbnNmb3JtOiBDU1MuVHJhbnNsYXRlLnRvU3RyaW5nKGRyYWdnYWJsZU1vdmUudHJhbnNmb3JtKX19XG4gICAgICBjb250ZW50SGVpZ2h0PXtwcm9wcy5jb250ZW50SGVpZ2h0fVxuICAgICAgey4uLmRyYWdnYWJsZU1vdmUuYXR0cmlidXRlc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgICB7aXNEcmFnZ2luZyA/IDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLWlucHV0LWJsb2NrXCIgLz4gOiBudWxsfVxuICAgICAgPFN0eWxlZE1vdmVIYW5kbGUgY2xhc3NOYW1lPVwibGVnZW5kLW1vdmUtaGFuZGxlXCIgey4uLmRyYWdnYWJsZU1vdmUubGlzdGVuZXJzfT5cbiAgICAgICAgPERyYWdnYWJsZURvdHMgaGVpZ2h0PVwiMTZweFwiIC8+XG4gICAgICA8L1N0eWxlZE1vdmVIYW5kbGU+XG4gICAgICA8U3R5bGVkUmVzaXplSGFuZGxlXG4gICAgICAgIGNsYXNzTmFtZT1cImxlZ2VuZC1yZXNpemUtaGFuZGxlXCJcbiAgICAgICAgcmVmPXtkcmFnZ2FibGVSZXNpemUuc2V0Tm9kZVJlZn1cbiAgICAgICAgey4uLmRyYWdnYWJsZVJlc2l6ZS5saXN0ZW5lcnN9XG4gICAgICA+XG4gICAgICAgIDxIb3Jpem9udGFsUmVzaXplSGFuZGxlIGhlaWdodD1cIjE2cHhcIiAvPlxuICAgICAgPC9TdHlsZWRSZXNpemVIYW5kbGU+XG4gICAgPC9TdHlsZWREcmFnZ2FibGVMZWdlbmRDb250ZW50PlxuICApO1xufSk7XG5cbnR5cGUgRHJhZ2dhYmxlTGVnZW5kUHJvcHMgPSBQcm9wc1dpdGhDaGlsZHJlbjx7XG4gIGlzU2lkZVBhbmVsU2hvd246IGJvb2xlYW47XG4gIG1hcENvbnRyb2xzOiBNYXBDb250cm9scztcbiAgc2V0TWFwQ29udHJvbFNldHRpbmdzOiB0eXBlb2Ygc2V0TWFwQ29udHJvbFNldHRpbmdzO1xufT47XG5cbmNvbnN0IERyYWdnYWJsZUxlZ2VuZCA9IHdpdGhUaGVtZShcbiAgKHtcbiAgICBpc1NpZGVQYW5lbFNob3duLFxuICAgIGNoaWxkcmVuLFxuICAgIG1hcENvbnRyb2xzLFxuICAgIHNldE1hcENvbnRyb2xTZXR0aW5ncyxcbiAgICB0aGVtZVxuICB9OiBEcmFnZ2FibGVMZWdlbmRQcm9wcyAmIHt0aGVtZTogYW55fSkgPT4ge1xuICAgIGNvbnN0IHNldHRpbmdzID0gbWFwQ29udHJvbHM/Lm1hcExlZ2VuZD8uc2V0dGluZ3M7XG5cbiAgICBjb25zdCBsZWdlbmRDb250ZW50UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBvbkNoYW5nZVNldHRpbmdzID0gdXNlQ2FsbGJhY2soXG4gICAgICBuZXdTZXR0aW5ncyA9PiBzZXRNYXBDb250cm9sU2V0dGluZ3MoJ21hcExlZ2VuZCcsIG5ld1NldHRpbmdzKSxcbiAgICAgIFtzZXRNYXBDb250cm9sU2V0dGluZ3NdXG4gICAgKTtcbiAgICBjb25zdCB7cG9zaXRpb25TdHlsZXMsIHVwZGF0ZVBvc2l0aW9uLCBzdGFydFJlc2l6ZSwgcmVzaXplLCBjb250ZW50SGVpZ2h0fSA9IHVzZUxlZ2VuZFBvc2l0aW9uKHtcbiAgICAgIGxlZ2VuZENvbnRlbnRSZWYsXG4gICAgICBpc1NpZGVQYW5lbFNob3duLFxuICAgICAgdGhlbWUsXG4gICAgICBzZXR0aW5ncyxcbiAgICAgIG9uQ2hhbmdlU2V0dGluZ3NcbiAgICB9KTtcblxuICAgIGNvbnN0IGhhbmRsZURyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgZXZlbnQgPT4ge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmFjdGl2ZS5pZCkge1xuICAgICAgICAgIGNhc2UgRFJBR19SRVNJWkVfSUQ6XG4gICAgICAgICAgICBzdGFydFJlc2l6ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbdXBkYXRlUG9zaXRpb24sIHN0YXJ0UmVzaXplXVxuICAgICk7XG4gICAgY29uc3QgaGFuZGxlRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKHVwZGF0ZVBvc2l0aW9uLCBbdXBkYXRlUG9zaXRpb25dKTtcbiAgICBjb25zdCBoYW5kbGVEcmFnTW92ZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgZXZlbnQgPT4ge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmFjdGl2ZS5pZCkge1xuICAgICAgICAgIGNhc2UgRFJBR19SRVNJWkVfSUQ6XG4gICAgICAgICAgICByZXNpemUoZXZlbnQuZGVsdGEueSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtyZXNpemVdXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8RG5kQ29udGV4dFxuICAgICAgICBvbkRyYWdTdGFydD17aGFuZGxlRHJhZ1N0YXJ0fVxuICAgICAgICBvbkRyYWdNb3ZlPXtoYW5kbGVEcmFnTW92ZX1cbiAgICAgICAgb25EcmFnRW5kPXtoYW5kbGVEcmFnRW5kfVxuICAgICAgICBtb2RpZmllcnM9e1tyZXN0cmljdFRvV2luZG93RWRnZXNdfVxuICAgICAgPlxuICAgICAgICA8RHJhZ2dhYmxlTGVnZW5kQ29udGVudFxuICAgICAgICAgIHJlZj17bGVnZW5kQ29udGVudFJlZn1cbiAgICAgICAgICBwb3NpdGlvblN0eWxlcz17cG9zaXRpb25TdHlsZXN9XG4gICAgICAgICAgY29udGVudEhlaWdodD17Y29udGVudEhlaWdodH1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9EcmFnZ2FibGVMZWdlbmRDb250ZW50PlxuICAgICAgPC9EbmRDb250ZXh0PlxuICAgICk7XG4gIH1cbikgYXMgRkM8RHJhZ2dhYmxlTGVnZW5kUHJvcHM+O1xuXG50eXBlIEltYWdlRXhwb3J0TGVnZW5kUHJvcHMgPSB7XG4gIHNldHRpbmdzPzogTWFwTGVnZW5kQ29udHJvbFNldHRpbmdzO1xuICBpc1NpZGVQYW5lbFNob3duOiBib29sZWFuO1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgSW1hZ2VFeHBvcnRMZWdlbmQgPSB3aXRoVGhlbWUoKHtzZXR0aW5ncywgaXNTaWRlUGFuZWxTaG93biwgdGhlbWUsIGNoaWxkcmVufSkgPT4ge1xuICBjb25zdCBjb250YWluZXJSZWY6IFJlYWN0Lk11dGFibGVSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbGVnZW5kQ29udGVudFJlZjogUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+ID0gdXNlUmVmKG51bGwpO1xuXG4gIGNvbnN0IHtwb3NpdGlvblN0eWxlcywgY29udGVudEhlaWdodH0gPSB1c2VMZWdlbmRQb3NpdGlvbih7XG4gICAgbGVnZW5kQ29udGVudFJlZixcbiAgICBpc1NpZGVQYW5lbFNob3duLFxuICAgIHRoZW1lLFxuICAgIHNldHRpbmdzLFxuICAgIG9uQ2hhbmdlU2V0dGluZ3M6ICgpID0+IHtcbiAgICAgIC8vIGRvIG5vdGhpbmcgYnkgZGVmYXVsdFxuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgcG9ydGFsUm9vdCA9IGNvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgPy5jbG9zZXN0KCcuZXhwb3J0LW1hcC1pbnN0YW5jZScpXG4gICAgPy5xdWVyeVNlbGVjdG9yKCcjZGVmYXVsdC1kZWNrZ2wtb3ZlcmxheS13cmFwcGVyJyk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17Y29udGFpbmVyUmVmfT5cbiAgICAgIHtwb3J0YWxSb290XG4gICAgICAgID8gY3JlYXRlUG9ydGFsKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmaXhlZC1sZWdlbmRcIlxuICAgICAgICAgICAgICByZWY9e2xlZ2VuZENvbnRlbnRSZWZ9XG4gICAgICAgICAgICAgIHN0eWxlPXt7Li4ucG9zaXRpb25TdHlsZXMsIHBvc2l0aW9uOiAnYWJzb2x1dGUnfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0eWxlZEZpeGVkTGVnZW5kQ29udGVudCBjb250ZW50SGVpZ2h0PXtjb250ZW50SGVpZ2h0fT5cbiAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgIDwvU3R5bGVkRml4ZWRMZWdlbmRDb250ZW50PlxuICAgICAgICAgICAgPC9kaXY+LFxuICAgICAgICAgICAgcG9ydGFsUm9vdFxuICAgICAgICAgIClcbiAgICAgICAgOiBudWxsfVxuICAgIDwvZGl2PlxuICApO1xufSkgYXMgUmVhY3QuRkM8SW1hZ2VFeHBvcnRMZWdlbmRQcm9wcz47XG5cbk1hcExlZ2VuZFBhbmVsRmFjdG9yeS5kZXBzID0gW01hcENvbnRyb2xUb29sdGlwRmFjdG9yeSwgTWFwQ29udHJvbFBhbmVsRmFjdG9yeSwgTWFwTGVnZW5kRmFjdG9yeV07XG5cbmludGVyZmFjZSBNYXBMZWdlbmRQYW5lbEljb25zIHtcbiAgbGVnZW5kOiBDb21wb25lbnRUeXBlPGFueT47XG59XG5cbmV4cG9ydCB0eXBlIE1hcExlZ2VuZFBhbmVsUHJvcHMgPSB7XG4gIHRoZW1lOiBhbnk7XG4gIGxheWVyczogUmVhZG9ubHlBcnJheTxMYXllcj47XG4gIHNjYWxlOiBudW1iZXI7XG4gIG9uVG9nZ2xlTWFwQ29udHJvbDogKGNvbnRyb2w6IHN0cmluZykgPT4gdm9pZDtcbiAgaXNFeHBvcnQ6IGJvb2xlYW47XG4gIGxvZ29Db21wb25lbnQ6IEVsZW1lbnQ7XG4gIGFjdGlvbkljb25zOiBNYXBMZWdlbmRQYW5lbEljb25zO1xuICBtYXBDb250cm9sczogTWFwQ29udHJvbHM7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U/OiAob2xkTGF5ZXI6IExheWVyLCBuZXdWaXNDb25maWc6IFBhcnRpYWw8TGF5ZXJWaXNDb25maWc+KSA9PiB2b2lkO1xuICBvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnQ/OiBBY3Rpb25IYW5kbGVyPHR5cGVvZiB0b2dnbGVTcGxpdE1hcFZpZXdwb3J0PjtcbiAgaXNWaWV3cG9ydFVuc3luY0FsbG93ZWQ/OiBib29sZWFuO1xuICBvbkNsaWNrQ29udHJvbEJ0bj86IChlPzogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gIHNldHRpbmdzOiBNYXBMZWdlbmRDb250cm9sU2V0dGluZ3M7XG4gIGlzU2lkZVBhbmVsU2hvd246IGJvb2xlYW47XG4gIGFjdGl2ZVNpZGVQYW5lbDogc3RyaW5nIHwgbnVsbDtcbiAgc2V0TWFwQ29udHJvbFNldHRpbmdzOiBhbnk7XG59O1xuXG50eXBlIE1hcExlZ2VuZFBhbmVsQ29tcG9uZW50cyA9IHtcbiAgTWFwQ29udHJvbFRvb2x0aXA6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRyb2xUb29sdGlwRmFjdG9yeT47XG4gIE1hcENvbnRyb2xQYW5lbDogUmV0dXJuVHlwZTx0eXBlb2YgTWFwQ29udHJvbFBhbmVsRmFjdG9yeT47XG4gIE1hcExlZ2VuZDogUmV0dXJuVHlwZTx0eXBlb2YgTWFwTGVnZW5kRmFjdG9yeT47XG59O1xuXG50eXBlIE1hcExlZ2VuZFBhbmVsQ29tcG9uZW50VHlwZSA9IFJlYWN0LkZDPE1hcExlZ2VuZFBhbmVsUHJvcHM+O1xuXG5jb25zdCBkZWZhdWx0QWN0aW9uSWNvbnMgPSB7XG4gIGxlZ2VuZDogcHJvcHMgPT4gPExlZ2VuZCB7Li4ucHJvcHN9IGhlaWdodD1cIjE4cHhcIiAvPlxufTtcblxuY29uc3QgTWFwTGVnZW5kUGFuZWxDb21wb25lbnQgPSAoe1xuICBsYXllcnMsXG4gIG1hcENvbnRyb2xzLFxuICBzY2FsZSxcbiAgb25Ub2dnbGVNYXBDb250cm9sLFxuICBpc0V4cG9ydCxcbiAgbG9nb0NvbXBvbmVudCxcbiAgYWN0aW9uSWNvbnMgPSBkZWZhdWx0QWN0aW9uSWNvbnMsXG4gIG1hcFN0YXRlLFxuICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlLFxuICBvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnQsXG4gIG9uQ2xpY2tDb250cm9sQnRuLFxuICBhY3RpdmVTaWRlUGFuZWwsXG4gIHNldE1hcENvbnRyb2xTZXR0aW5ncyxcbiAgaXNWaWV3cG9ydFVuc3luY0FsbG93ZWQgPSB0cnVlLFxuICBjbGFzc05hbWUsXG4gIE1hcENvbnRyb2xUb29sdGlwLFxuICBNYXBDb250cm9sUGFuZWwsXG4gIE1hcExlZ2VuZFxufTogTWFwTGVnZW5kUGFuZWxQcm9wcyAmIE1hcExlZ2VuZFBhbmVsQ29tcG9uZW50cykgPT4ge1xuICBjb25zdCBpc1NpZGVQYW5lbFNob3duID0gQm9vbGVhbihhY3RpdmVTaWRlUGFuZWwpO1xuICBjb25zdCBzZXR0aW5ncyA9IG1hcENvbnRyb2xzPy5tYXBMZWdlbmQ/LnNldHRpbmdzO1xuXG4gIGNvbnN0IG1hcExlZ2VuZCA9IG1hcENvbnRyb2xzPy5tYXBMZWdlbmQgfHwgKHt9IGFzIE1hcENvbnRyb2xNYXBMZWdlbmQpO1xuICBjb25zdCB7YWN0aXZlLCBkaXNhYmxlRWRpdH0gPSBtYXBMZWdlbmQgfHwge307XG4gIGNvbnN0IHJvb3RDb250ZXh0ID0gdXNlQ29udGV4dChSb290Q29udGV4dCk7XG5cbiAgY29uc3Qgb25DbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBvbkNsaWNrQ29udHJvbEJ0bj8uKCk7XG4gICAgaWYgKG1hcENvbnRyb2xzPy5tYXBEcmF3Py5hY3RpdmUpIHtcbiAgICAgIG9uVG9nZ2xlTWFwQ29udHJvbCgnbWFwRHJhdycpO1xuICAgIH1cbiAgICBvblRvZ2dsZU1hcENvbnRyb2woJ21hcExlZ2VuZCcpO1xuICB9LCBbb25DbGlja0NvbnRyb2xCdG4sIG9uVG9nZ2xlTWFwQ29udHJvbCwgbWFwQ29udHJvbHNdKTtcbiAgY29uc3Qgb25DbG9zZUNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgZSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBvblRvZ2dsZU1hcENvbnRyb2woJ21hcExlZ2VuZCcpO1xuICAgIH0sXG4gICAgW29uVG9nZ2xlTWFwQ29udHJvbF1cbiAgKTtcblxuICBpZiAoIW1hcExlZ2VuZC5zaG93KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBsZWdlbmRQYW5lbCA9IGFjdGl2ZSA/IChcbiAgICA8TWFwQ29udHJvbFBhbmVsXG4gICAgICBzY2FsZT17c2NhbGV9XG4gICAgICBoZWFkZXI9XCJoZWFkZXIubGF5ZXJMZWdlbmRcIlxuICAgICAgey4uLntvbkNsaWNrOiBvbkNsb3NlQ2xpY2ssIHBpbm5hYmxlOiBmYWxzZSwgZGlzYWJsZUNsb3NlOiBmYWxzZX19XG4gICAgICBpc0V4cG9ydD17aXNFeHBvcnR9XG4gICAgICBsb2dvQ29tcG9uZW50PXtsb2dvQ29tcG9uZW50fVxuICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgb25Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0PXtvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnR9XG4gICAgICBpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZD17aXNWaWV3cG9ydFVuc3luY0FsbG93ZWR9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICA+XG4gICAgICA8TWFwTGVnZW5kXG4gICAgICAgIGxheWVycz17bGF5ZXJzfVxuICAgICAgICBtYXBTdGF0ZT17bWFwU3RhdGV9XG4gICAgICAgIGRpc2FibGVFZGl0PXtkaXNhYmxlRWRpdH1cbiAgICAgICAgaXNFeHBvcnQ9e2lzRXhwb3J0fVxuICAgICAgICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlPXtvbkxheWVyVmlzQ29uZmlnQ2hhbmdlfVxuICAgICAgLz5cbiAgICA8L01hcENvbnRyb2xQYW5lbD5cbiAgKSA6IG51bGw7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2FjdGl2ZSA/IChcbiAgICAgICAgaGFzUG9ydGFibGVXaWR0aChicmVha1BvaW50VmFsdWVzKSA/IChcbiAgICAgICAgICBsZWdlbmRQYW5lbFxuICAgICAgICApIDogaXNFeHBvcnQgPyAoXG4gICAgICAgICAgPEltYWdlRXhwb3J0TGVnZW5kIGlzU2lkZVBhbmVsU2hvd249e2lzU2lkZVBhbmVsU2hvd259IHNldHRpbmdzPXtzZXR0aW5nc30+XG4gICAgICAgICAgICB7bGVnZW5kUGFuZWx9XG4gICAgICAgICAgPC9JbWFnZUV4cG9ydExlZ2VuZD5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICA8RHJhZ2dhYmxlTGVnZW5kXG4gICAgICAgICAgICAgIGlzU2lkZVBhbmVsU2hvd249e2lzU2lkZVBhbmVsU2hvd259XG4gICAgICAgICAgICAgIG1hcENvbnRyb2xzPXttYXBDb250cm9sc31cbiAgICAgICAgICAgICAgc2V0TWFwQ29udHJvbFNldHRpbmdzPXtzZXRNYXBDb250cm9sU2V0dGluZ3N9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtsZWdlbmRQYW5lbH1cbiAgICAgICAgICAgIDwvRHJhZ2dhYmxlTGVnZW5kPixcbiAgICAgICAgICAgIHJvb3RDb250ZXh0Py5jdXJyZW50ID8/IGRvY3VtZW50LmJvZHlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICkgOiBudWxsfVxuICAgICAgeyFpc0V4cG9ydCA/IChcbiAgICAgICAgPE1hcENvbnRyb2xUb29sdGlwIGlkPVwic2hvdy1sZWdlbmRcIiBtZXNzYWdlPVwidG9vbHRpcC5zaG93TGVnZW5kXCI+XG4gICAgICAgICAgPE1hcENvbnRyb2xCdXR0b24gY2xhc3NOYW1lPVwibWFwLWNvbnRyb2wtYnV0dG9uIHNob3ctbGVnZW5kXCIgb25DbGljaz17b25DbGlja30+XG4gICAgICAgICAgICA8YWN0aW9uSWNvbnMubGVnZW5kIGhlaWdodD1cIjIycHhcIiAvPlxuICAgICAgICAgIDwvTWFwQ29udHJvbEJ1dHRvbj5cbiAgICAgICAgPC9NYXBDb250cm9sVG9vbHRpcD5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvPlxuICApO1xufTtcblxuZnVuY3Rpb24gTWFwTGVnZW5kUGFuZWxGYWN0b3J5KFxuICBNYXBDb250cm9sVG9vbHRpcDogUmV0dXJuVHlwZTx0eXBlb2YgTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5PixcbiAgTWFwQ29udHJvbFBhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBDb250cm9sUGFuZWxGYWN0b3J5PixcbiAgTWFwTGVnZW5kOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBMZWdlbmRGYWN0b3J5PlxuKTogTWFwTGVnZW5kUGFuZWxDb21wb25lbnRUeXBlIHtcbiAgcmV0dXJuIChwcm9wczogTWFwTGVnZW5kUGFuZWxQcm9wcykgPT4gKFxuICAgIDxNYXBMZWdlbmRQYW5lbENvbXBvbmVudFxuICAgICAgey4uLnByb3BzfVxuICAgICAgTWFwQ29udHJvbFRvb2x0aXA9e01hcENvbnRyb2xUb29sdGlwfVxuICAgICAgTWFwQ29udHJvbFBhbmVsPXtNYXBDb250cm9sUGFuZWx9XG4gICAgICBNYXBMZWdlbmQ9e01hcExlZ2VuZH1cbiAgICAvPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBNYXBMZWdlbmRQYW5l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LE1BQUEsWUFBQWtGLGFBQUEsQ0FBQWxGLE1BQUEsWUFBQXdMLFFBQUEsUUFDR25FLE1BQU0sR0FDTCxJQUFBb0UsdUJBQWdCLEVBQUNDLHdCQUFnQixDQUFDLEdBQ2hDTixXQUFXLEdBQ1QxQixRQUFRLGdCQUNWMUosTUFBQSxZQUFBa0YsYUFBQSxDQUFDOEMsaUJBQWlCO0lBQUM1QixnQkFBZ0IsRUFBRUEsZ0JBQWlCO0lBQUNHLFFBQVEsRUFBRUE7RUFBUyxHQUN2RTZFLFdBQ2dCLENBQUMsa0JBRXBCLElBQUEzQyxzQkFBWSxnQkFDVnpJLE1BQUEsWUFBQWtGLGFBQUEsQ0FBQ2MsZUFBZTtJQUNkSSxnQkFBZ0IsRUFBRUEsZ0JBQWlCO0lBQ25DQyxXQUFXLEVBQUVBLFdBQVk7SUFDekJDLHFCQUFxQixFQUFFQTtFQUFzQixHQUU1QzhFLFdBQ2MsQ0FBQyxHQUFBOUIsb0JBQUEsR0FDbEJxQixXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRXJDLE9BQU8sY0FBQWdCLG9CQUFBLGNBQUFBLG9CQUFBLEdBQUlxQyxRQUFRLENBQUNDLElBQ25DLENBQUMsQ0FDRixHQUNDLElBQUksRUFDUCxDQUFDbEMsUUFBUSxnQkFDUjFKLE1BQUEsWUFBQWtGLGFBQUEsQ0FBQ21GLGlCQUFpQjtJQUFDekYsRUFBRSxFQUFDLGFBQWE7SUFBQ2lILE9BQU8sRUFBQztFQUFvQixnQkFDOUQ3TCxNQUFBLFlBQUFrRixhQUFBLENBQUN6RSxrQkFBQSxDQUFBcUwsZ0JBQWdCO0lBQUMxRyxTQUFTLEVBQUMsZ0NBQWdDO0lBQUMwRixPQUFPLEVBQUVBO0VBQVEsZ0JBQzVFOUssTUFBQSxZQUFBa0YsYUFBQSxDQUFDMkUsV0FBVyxDQUFDWixNQUFNO0lBQUNuRCxNQUFNLEVBQUM7RUFBTSxDQUFFLENBQ25CLENBQ0QsQ0FBQyxHQUNsQixJQUNKLENBQUM7QUFFUCxDQUFDO0FBRUQsU0FBUzZDLHFCQUFxQkEsQ0FDNUIwQixpQkFBOEQsRUFDOURDLGVBQTBELEVBQzFEQyxTQUE4QyxFQUNqQjtFQUM3QixPQUFPLFVBQUMxRyxLQUEwQjtJQUFBLG9CQUNoQzdELE1BQUEsWUFBQWtGLGFBQUEsQ0FBQ2lFLHVCQUF1QixNQUFBaEUsU0FBQSxpQkFDbEJ0QixLQUFLO01BQ1R3RyxpQkFBaUIsRUFBRUEsaUJBQWtCO01BQ3JDQyxlQUFlLEVBQUVBLGVBQWdCO01BQ2pDQyxTQUFTLEVBQUVBO0lBQVUsRUFDdEIsQ0FBQztFQUFBLENBQ0g7QUFDSDtBQUFDLElBQUF3QixRQUFBLEdBQUFDLE9BQUEsY0FFY3JELHFCQUFxQiIsImlnbm9yZUxpc3QiOltdfQ==
275
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0RG9tIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9jb3JlIiwiX3V0aWxpdGllcyIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX3V0aWxzIiwiX2ljb25zIiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX2NvbnRleHQiLCJfdXNlTGVnZW5kUG9zaXRpb24zIiwiX21hcENvbnRyb2xQYW5lbCIsIl9tYXBDb250cm9sVG9vbHRpcCIsIl9tYXBMZWdlbmQiLCJfbW9kaWZpZXJzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiRFJBR19SRVNJWkVfSUQiLCJEUkFHX01PVkVfSUQiLCJTdHlsZWREcmFnZ2FibGVMZWdlbmRDb250ZW50Iiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwiYWN0aXZlQ29sb3IiLCJtYXhDb250ZW50SGVpZ2h0IiwiY29uY2F0IiwiY29udGVudEhlaWdodCIsIlN0eWxlZE1vdmVIYW5kbGUiLCJTdHlsZWRSZXNpemVIYW5kbGUiLCJTdHlsZWRGaXhlZExlZ2VuZENvbnRlbnQiLCJEcmFnZ2FibGVMZWdlbmRDb250ZW50IiwiZm9yd2FyZFJlZiIsInJlZiIsInBvc2l0aW9uU3R5bGVzIiwiY2hpbGRyZW4iLCJkcmFnZ2FibGVNb3ZlIiwidXNlRHJhZ2dhYmxlIiwiaWQiLCJkcmFnZ2FibGVSZXNpemUiLCJyZWZzIiwidXNlTWVyZ2VSZWZzIiwic2V0Tm9kZVJlZiIsImlzRHJhZ2dpbmciLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwiY2xhc3NOYW1lIiwiY2xhc3NuYW1lcyIsInN0eWxlIiwidHJhbnNmb3JtIiwiQ1NTIiwiVHJhbnNsYXRlIiwidG9TdHJpbmciLCJhdHRyaWJ1dGVzIiwibGlzdGVuZXJzIiwiRHJhZ2dhYmxlRG90cyIsImhlaWdodCIsIkhvcml6b250YWxSZXNpemVIYW5kbGUiLCJEcmFnZ2FibGVMZWdlbmQiLCJ3aXRoVGhlbWUiLCJfcmVmIiwiX21hcENvbnRyb2xzJG1hcExlZ2VuIiwiaXNTaWRlUGFuZWxTaG93biIsIm1hcENvbnRyb2xzIiwic2V0TWFwQ29udHJvbFNldHRpbmdzIiwibWFwU3RhdGUiLCJzZXR0aW5ncyIsIm1hcExlZ2VuZCIsImxlZ2VuZENvbnRlbnRSZWYiLCJ1c2VSZWYiLCJvbkNoYW5nZVNldHRpbmdzIiwidXNlQ2FsbGJhY2siLCJuZXdTZXR0aW5ncyIsIl91c2VMZWdlbmRQb3NpdGlvbiIsInVzZUxlZ2VuZFBvc2l0aW9uIiwibWFwSGVpZ2h0IiwibWFwV2lkdGgiLCJ3aWR0aCIsInVwZGF0ZVBvc2l0aW9uIiwic3RhcnRSZXNpemUiLCJyZXNpemUiLCJoYW5kbGVEcmFnU3RhcnQiLCJldmVudCIsImFjdGl2ZSIsImhhbmRsZURyYWdFbmQiLCJoYW5kbGVEcmFnTW92ZSIsImRlbHRhIiwieSIsIkRuZENvbnRleHQiLCJvbkRyYWdTdGFydCIsIm9uRHJhZ01vdmUiLCJvbkRyYWdFbmQiLCJtb2RpZmllcnMiLCJyZXN0cmljdFRvV2luZG93RWRnZXMiLCJJbWFnZUV4cG9ydExlZ2VuZCIsIl9yZWYyIiwiX2NvbnRhaW5lclJlZiRjdXJyZW50IiwiY29udGFpbmVyUmVmIiwiX3VzZUxlZ2VuZFBvc2l0aW9uMiIsInBvcnRhbFJvb3QiLCJjdXJyZW50IiwiY2xvc2VzdCIsInF1ZXJ5U2VsZWN0b3IiLCJjcmVhdGVQb3J0YWwiLCJwb3NpdGlvbiIsIk1hcExlZ2VuZFBhbmVsRmFjdG9yeSIsImRlcHMiLCJNYXBDb250cm9sVG9vbHRpcEZhY3RvcnkiLCJNYXBDb250cm9sUGFuZWxGYWN0b3J5IiwiTWFwTGVnZW5kRmFjdG9yeSIsImRlZmF1bHRBY3Rpb25JY29ucyIsImxlZ2VuZCIsIkxlZ2VuZCIsIk1hcExlZ2VuZFBhbmVsQ29tcG9uZW50IiwiX3JlZjMiLCJfbWFwQ29udHJvbHMkbWFwTGVnZW4yIiwiX3Jvb3RDb250ZXh0JGN1cnJlbnQiLCJsYXllcnMiLCJzY2FsZSIsIm9uVG9nZ2xlTWFwQ29udHJvbCIsImlzRXhwb3J0IiwibG9nb0NvbXBvbmVudCIsIl9yZWYzJGFjdGlvbkljb25zIiwiYWN0aW9uSWNvbnMiLCJvbkxheWVyVmlzQ29uZmlnQ2hhbmdlIiwib25Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0Iiwib25DbGlja0NvbnRyb2xCdG4iLCJhY3RpdmVTaWRlUGFuZWwiLCJfcmVmMyRpc1ZpZXdwb3J0VW5zeW4iLCJpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZCIsIk1hcENvbnRyb2xUb29sdGlwIiwiTWFwQ29udHJvbFBhbmVsIiwiTWFwTGVnZW5kIiwiQm9vbGVhbiIsIl9yZWY0IiwiZGlzYWJsZUVkaXQiLCJyb290Q29udGV4dCIsInVzZUNvbnRleHQiLCJSb290Q29udGV4dCIsIm9uQ2xpY2siLCJfbWFwQ29udHJvbHMkbWFwRHJhdyIsIm1hcERyYXciLCJvbkNsb3NlQ2xpY2siLCJwcmV2ZW50RGVmYXVsdCIsInNob3ciLCJsZWdlbmRQYW5lbCIsImhlYWRlciIsInBpbm5hYmxlIiwiZGlzYWJsZUNsb3NlIiwiRnJhZ21lbnQiLCJoYXNQb3J0YWJsZVdpZHRoIiwiYnJlYWtQb2ludFZhbHVlcyIsImRvY3VtZW50IiwiYm9keSIsIm1lc3NhZ2UiLCJNYXBDb250cm9sQnV0dG9uIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcC9tYXAtbGVnZW5kLXBhbmVsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgY2xhc3NuYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7Y3JlYXRlUG9ydGFsfSBmcm9tICdyZWFjdC1kb20nO1xuaW1wb3J0IFJlYWN0LCB7XG4gIENvbXBvbmVudFR5cGUsXG4gIEZDLFxuICBmb3J3YXJkUmVmLFxuICB1c2VDYWxsYmFjayxcbiAgdXNlQ29udGV4dCxcbiAgdXNlUmVmLFxuICBQcm9wc1dpdGhDaGlsZHJlblxufSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7d2l0aFRoZW1lfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7RG5kQ29udGV4dCwgdXNlRHJhZ2dhYmxlfSBmcm9tICdAZG5kLWtpdC9jb3JlJztcbmltcG9ydCB7Q1NTfSBmcm9tICdAZG5kLWtpdC91dGlsaXRpZXMnO1xuaW1wb3J0IHt1c2VNZXJnZVJlZnN9IGZyb20gJ0BmbG9hdGluZy11aS9yZWFjdCc7XG5cbmltcG9ydCB7QWN0aW9uSGFuZGxlciwgc2V0TWFwQ29udHJvbFNldHRpbmdzLCB0b2dnbGVTcGxpdE1hcFZpZXdwb3J0fSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtMYXllcn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHticmVha1BvaW50VmFsdWVzfSBmcm9tICdAa2VwbGVyLmdsL3N0eWxlcyc7XG5pbXBvcnQge0xheWVyVmlzQ29uZmlnLCBNYXBDb250cm9sTWFwTGVnZW5kLCBNYXBDb250cm9scywgTWFwU3RhdGV9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtoYXNQb3J0YWJsZVdpZHRofSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7TWFwTGVnZW5kQ29udHJvbFNldHRpbmdzfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuaW1wb3J0IHtMZWdlbmQsIERyYWdnYWJsZURvdHMsIEhvcml6b250YWxSZXNpemVIYW5kbGV9IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge01hcENvbnRyb2xCdXR0b259IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge1Jvb3RDb250ZXh0fSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB1c2VMZWdlbmRQb3NpdGlvbiBmcm9tICcuLi9ob29rcy91c2UtbGVnZW5kLXBvc2l0aW9uJztcbmltcG9ydCBNYXBDb250cm9sUGFuZWxGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRyb2wtcGFuZWwnO1xuaW1wb3J0IE1hcENvbnRyb2xUb29sdGlwRmFjdG9yeSBmcm9tICcuL21hcC1jb250cm9sLXRvb2x0aXAnO1xuaW1wb3J0IE1hcExlZ2VuZEZhY3RvcnkgZnJvbSAnLi9tYXAtbGVnZW5kJztcbmltcG9ydCB7cmVzdHJpY3RUb1dpbmRvd0VkZ2VzfSBmcm9tICdAZG5kLWtpdC9tb2RpZmllcnMnO1xuXG5jb25zdCBEUkFHX1JFU0laRV9JRCA9ICdtYXAtbGVnZW5kLXJlc2l6ZSc7XG5jb25zdCBEUkFHX01PVkVfSUQgPSAnbWFwLWxlZ2VuZC1tb3ZlJztcblxuY29uc3QgU3R5bGVkRHJhZ2dhYmxlTGVnZW5kQ29udGVudCA9IHN0eWxlZC5kaXY8e1xuICBjb250ZW50SGVpZ2h0PzogbnVtYmVyO1xuICBtYXhDb250ZW50SGVpZ2h0PzogbnVtYmVyO1xufT5gXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgb3V0bGluZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYm9yZGVyLWNvbG9yIDAuMnMgZWFzZS1pbi1vdXQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAubGVnZW5kLWlucHV0LWJsb2NrIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gICYuaXMtZHJhZ2dpbmcgLmxlZ2VuZC1pbnB1dC1ibG9jayB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICAmOmhvdmVyLFxuICAmLmlzLWRyYWdnaW5nIHtcbiAgICAubGVnZW5kLW1vdmUtaGFuZGxlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICB9XG4gICAgLmxlZ2VuZC1yZXNpemUtaGFuZGxlIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbiAgICB9XG4gICAgYm9yZGVyLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmFjdGl2ZUNvbG9yfTtcbiAgfVxuICAubWFwLWNvbnRyb2xfX3BhbmVsLWNvbnRlbnQge1xuICAgIG1heC1oZWlnaHQ6ICR7cHJvcHMgPT5cbiAgICAgIHByb3BzLm1heENvbnRlbnRIZWlnaHQgPyBgJHtwcm9wcy5tYXhDb250ZW50SGVpZ2h0fXB4YCA6ICdjYWxjKDEwMHZoIC0gMTAwcHgpJ307XG4gICAgJHtwcm9wcyA9PiAocHJvcHMuY29udGVudEhlaWdodCA/IGBoZWlnaHQ6ICR7cHJvcHMuY29udGVudEhlaWdodH1weDtgIDogJycpfTtcbiAgfVxuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHotaW5kZXg6IDI7XG4gIC5tYXAtY29udHJvbC1wYW5lbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRNb3ZlSGFuZGxlID0gc3R5bGVkLmRpdmBcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLWluLW91dDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogd2hpdGU7XG4gIHotaW5kZXg6IDI7XG4gIHRvcDogMDtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgd2lkdGg6IDQ4cHg7XG4gIGhlaWdodDogMTZweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBjdXJzb3I6IG1vdmU7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYWN0aXZlQ29sb3J9O1xuYDtcblxuY29uc3QgU3R5bGVkUmVzaXplSGFuZGxlID0gc3R5bGVkLmRpdmBcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlLWluLW91dDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBjb2xvcjogI2Y3ZjhmYTtcbiAgei1pbmRleDogMjtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogbnMtcmVzaXplO1xuYDtcblxuY29uc3QgU3R5bGVkRml4ZWRMZWdlbmRDb250ZW50ID0gc3R5bGVkLmRpdjx7Y29udGVudEhlaWdodD86IG51bWJlcn0+YFxuICAubWFwLWNvbnRyb2xfX3BhbmVsLWNvbnRlbnQge1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxMDBweCk7XG4gICAgJHtwcm9wcyA9PiAocHJvcHMuY29udGVudEhlaWdodCA/IGBoZWlnaHQ6ICR7cHJvcHMuY29udGVudEhlaWdodH1weDtgIDogJycpfTtcbiAgfVxuXG4gIC8qIEhpZGUgc2Nyb2xsYmFycyBpbiBleHBvcnQgdG8gYXZvaWQgT1MgZGVmYXVsdCBzdHlsaW5nIGRpZmZlcmVuY2VzICovXG4gIC5zdHlsZWQtY29sb3ItbGVnZW5kIHtcbiAgICAtbXMtb3ZlcmZsb3ctc3R5bGU6IG5vbmU7IC8qIElFIGFuZCBvbGQgRWRnZSAqL1xuICAgIHNjcm9sbGJhci13aWR0aDogbm9uZTsgLyogRmlyZWZveCAqL1xuICB9XG4gIC5zdHlsZWQtY29sb3ItbGVnZW5kOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDAgIWltcG9ydGFudDsgLyogQ2hyb21lLCBTYWZhcmksIG5ldyBFZGdlICovXG4gICAgaGVpZ2h0OiAwICFpbXBvcnRhbnQ7XG4gIH1cbmA7XG5cbmV4cG9ydCB0eXBlIE1hcExlZ2VuZFBhbmVsRmFjdG9yeURlcHMgPSBbXG4gIHR5cGVvZiBNYXBDb250cm9sVG9vbHRpcEZhY3RvcnksXG4gIHR5cGVvZiBNYXBDb250cm9sUGFuZWxGYWN0b3J5LFxuICB0eXBlb2YgTWFwTGVnZW5kRmFjdG9yeVxuXTtcblxudHlwZSBEcmFnZ2FibGVMZWdlbmRDb250ZW50UHJvcHMgPSB7XG4gIGNvbnRlbnRIZWlnaHQ/OiBudW1iZXI7XG4gIG1heENvbnRlbnRIZWlnaHQ/OiBudW1iZXI7XG4gIHBvc2l0aW9uU3R5bGVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IERyYWdnYWJsZUxlZ2VuZENvbnRlbnQgPSBmb3J3YXJkUmVmKChwcm9wczogRHJhZ2dhYmxlTGVnZW5kQ29udGVudFByb3BzLCByZWYpID0+IHtcbiAgY29uc3Qge3Bvc2l0aW9uU3R5bGVzLCBjaGlsZHJlbiwgY29udGVudEhlaWdodCwgbWF4Q29udGVudEhlaWdodH0gPSBwcm9wcztcbiAgY29uc3QgZHJhZ2dhYmxlTW92ZSA9IHVzZURyYWdnYWJsZSh7aWQ6IERSQUdfTU9WRV9JRH0pO1xuICBjb25zdCBkcmFnZ2FibGVSZXNpemUgPSB1c2VEcmFnZ2FibGUoe2lkOiBEUkFHX1JFU0laRV9JRH0pO1xuICBjb25zdCByZWZzID0gdXNlTWVyZ2VSZWZzKFtkcmFnZ2FibGVNb3ZlLnNldE5vZGVSZWYsIHJlZl0pO1xuICBjb25zdCBpc0RyYWdnaW5nID0gZHJhZ2dhYmxlTW92ZS5pc0RyYWdnaW5nIHx8IGRyYWdnYWJsZVJlc2l6ZS5pc0RyYWdnaW5nO1xuICByZXR1cm4gKFxuICAgIDxTdHlsZWREcmFnZ2FibGVMZWdlbmRDb250ZW50XG4gICAgICByZWY9e3JlZnN9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2RyYWdnYWJsZS1sZWdlbmQnLCB7J2lzLWRyYWdnaW5nJzogaXNEcmFnZ2luZ30pfVxuICAgICAgc3R5bGU9e3suLi5wb3NpdGlvblN0eWxlcywgdHJhbnNmb3JtOiBDU1MuVHJhbnNsYXRlLnRvU3RyaW5nKGRyYWdnYWJsZU1vdmUudHJhbnNmb3JtKX19XG4gICAgICBjb250ZW50SGVpZ2h0PXtjb250ZW50SGVpZ2h0fVxuICAgICAgbWF4Q29udGVudEhlaWdodD17bWF4Q29udGVudEhlaWdodH1cbiAgICAgIHsuLi5kcmFnZ2FibGVNb3ZlLmF0dHJpYnV0ZXN9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgICAge2lzRHJhZ2dpbmcgPyA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC1pbnB1dC1ibG9ja1wiIC8+IDogbnVsbH1cbiAgICAgIDxTdHlsZWRNb3ZlSGFuZGxlIGNsYXNzTmFtZT1cImxlZ2VuZC1tb3ZlLWhhbmRsZVwiIHsuLi5kcmFnZ2FibGVNb3ZlLmxpc3RlbmVyc30+XG4gICAgICAgIDxEcmFnZ2FibGVEb3RzIGhlaWdodD1cIjE2cHhcIiAvPlxuICAgICAgPC9TdHlsZWRNb3ZlSGFuZGxlPlxuICAgICAgPFN0eWxlZFJlc2l6ZUhhbmRsZVxuICAgICAgICBjbGFzc05hbWU9XCJsZWdlbmQtcmVzaXplLWhhbmRsZVwiXG4gICAgICAgIHJlZj17ZHJhZ2dhYmxlUmVzaXplLnNldE5vZGVSZWZ9XG4gICAgICAgIHsuLi5kcmFnZ2FibGVSZXNpemUubGlzdGVuZXJzfVxuICAgICAgPlxuICAgICAgICA8SG9yaXpvbnRhbFJlc2l6ZUhhbmRsZSBoZWlnaHQ9XCIxNnB4XCIgLz5cbiAgICAgIDwvU3R5bGVkUmVzaXplSGFuZGxlPlxuICAgIDwvU3R5bGVkRHJhZ2dhYmxlTGVnZW5kQ29udGVudD5cbiAgKTtcbn0pO1xuXG50eXBlIERyYWdnYWJsZUxlZ2VuZFByb3BzID0gUHJvcHNXaXRoQ2hpbGRyZW48e1xuICBpc1NpZGVQYW5lbFNob3duOiBib29sZWFuO1xuICBtYXBDb250cm9sczogTWFwQ29udHJvbHM7XG4gIHNldE1hcENvbnRyb2xTZXR0aW5nczogdHlwZW9mIHNldE1hcENvbnRyb2xTZXR0aW5ncztcbiAgbWFwU3RhdGU/OiBNYXBTdGF0ZTtcbn0+O1xuXG5jb25zdCBEcmFnZ2FibGVMZWdlbmQgPSB3aXRoVGhlbWUoXG4gICh7XG4gICAgaXNTaWRlUGFuZWxTaG93bixcbiAgICBjaGlsZHJlbixcbiAgICBtYXBDb250cm9scyxcbiAgICBzZXRNYXBDb250cm9sU2V0dGluZ3MsXG4gICAgbWFwU3RhdGUsXG4gICAgdGhlbWVcbiAgfTogRHJhZ2dhYmxlTGVnZW5kUHJvcHMgJiB7dGhlbWU6IGFueX0pID0+IHtcbiAgICBjb25zdCBzZXR0aW5ncyA9IG1hcENvbnRyb2xzPy5tYXBMZWdlbmQ/LnNldHRpbmdzO1xuXG4gICAgY29uc3QgbGVnZW5kQ29udGVudFJlZiA9IHVzZVJlZjxIVE1MRWxlbWVudD4obnVsbCk7XG4gICAgY29uc3Qgb25DaGFuZ2VTZXR0aW5ncyA9IHVzZUNhbGxiYWNrKFxuICAgICAgbmV3U2V0dGluZ3MgPT4gc2V0TWFwQ29udHJvbFNldHRpbmdzKCdtYXBMZWdlbmQnLCBuZXdTZXR0aW5ncyksXG4gICAgICBbc2V0TWFwQ29udHJvbFNldHRpbmdzXVxuICAgICk7XG4gICAgY29uc3Qge3Bvc2l0aW9uU3R5bGVzLCB1cGRhdGVQb3NpdGlvbiwgc3RhcnRSZXNpemUsIHJlc2l6ZSwgY29udGVudEhlaWdodCwgbWF4Q29udGVudEhlaWdodH0gPVxuICAgICAgdXNlTGVnZW5kUG9zaXRpb24oe1xuICAgICAgICBsZWdlbmRDb250ZW50UmVmLFxuICAgICAgICBpc1NpZGVQYW5lbFNob3duLFxuICAgICAgICB0aGVtZSxcbiAgICAgICAgc2V0dGluZ3MsXG4gICAgICAgIG9uQ2hhbmdlU2V0dGluZ3MsXG4gICAgICAgIG1hcEhlaWdodDogbWFwU3RhdGU/LmhlaWdodCxcbiAgICAgICAgbWFwV2lkdGg6IG1hcFN0YXRlPy53aWR0aFxuICAgICAgfSk7XG5cbiAgICBjb25zdCBoYW5kbGVEcmFnU3RhcnQgPSB1c2VDYWxsYmFjayhcbiAgICAgIGV2ZW50ID0+IHtcbiAgICAgICAgc3dpdGNoIChldmVudC5hY3RpdmUuaWQpIHtcbiAgICAgICAgICBjYXNlIERSQUdfUkVTSVpFX0lEOlxuICAgICAgICAgICAgc3RhcnRSZXNpemUoKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB1cGRhdGVQb3NpdGlvbigpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW3VwZGF0ZVBvc2l0aW9uLCBzdGFydFJlc2l6ZV1cbiAgICApO1xuICAgIGNvbnN0IGhhbmRsZURyYWdFbmQgPSB1c2VDYWxsYmFjayh1cGRhdGVQb3NpdGlvbiwgW3VwZGF0ZVBvc2l0aW9uXSk7XG4gICAgY29uc3QgaGFuZGxlRHJhZ01vdmUgPSB1c2VDYWxsYmFjayhcbiAgICAgIGV2ZW50ID0+IHtcbiAgICAgICAgc3dpdGNoIChldmVudC5hY3RpdmUuaWQpIHtcbiAgICAgICAgICBjYXNlIERSQUdfUkVTSVpFX0lEOlxuICAgICAgICAgICAgcmVzaXplKGV2ZW50LmRlbHRhLnkpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbcmVzaXplXVxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPERuZENvbnRleHRcbiAgICAgICAgb25EcmFnU3RhcnQ9e2hhbmRsZURyYWdTdGFydH1cbiAgICAgICAgb25EcmFnTW92ZT17aGFuZGxlRHJhZ01vdmV9XG4gICAgICAgIG9uRHJhZ0VuZD17aGFuZGxlRHJhZ0VuZH1cbiAgICAgICAgbW9kaWZpZXJzPXtbcmVzdHJpY3RUb1dpbmRvd0VkZ2VzXX1cbiAgICAgID5cbiAgICAgICAgPERyYWdnYWJsZUxlZ2VuZENvbnRlbnRcbiAgICAgICAgICByZWY9e2xlZ2VuZENvbnRlbnRSZWZ9XG4gICAgICAgICAgcG9zaXRpb25TdHlsZXM9e3Bvc2l0aW9uU3R5bGVzfVxuICAgICAgICAgIGNvbnRlbnRIZWlnaHQ9e2NvbnRlbnRIZWlnaHR9XG4gICAgICAgICAgbWF4Q29udGVudEhlaWdodD17bWF4Q29udGVudEhlaWdodH1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9EcmFnZ2FibGVMZWdlbmRDb250ZW50PlxuICAgICAgPC9EbmRDb250ZXh0PlxuICAgICk7XG4gIH1cbikgYXMgRkM8RHJhZ2dhYmxlTGVnZW5kUHJvcHM+O1xuXG50eXBlIEltYWdlRXhwb3J0TGVnZW5kUHJvcHMgPSB7XG4gIHNldHRpbmdzPzogTWFwTGVnZW5kQ29udHJvbFNldHRpbmdzO1xuICBpc1NpZGVQYW5lbFNob3duOiBib29sZWFuO1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgSW1hZ2VFeHBvcnRMZWdlbmQgPSB3aXRoVGhlbWUoKHtzZXR0aW5ncywgaXNTaWRlUGFuZWxTaG93biwgdGhlbWUsIGNoaWxkcmVufSkgPT4ge1xuICBjb25zdCBjb250YWluZXJSZWY6IFJlYWN0Lk11dGFibGVSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPiA9IHVzZVJlZihudWxsKTtcbiAgY29uc3QgbGVnZW5kQ29udGVudFJlZjogUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+ID0gdXNlUmVmKG51bGwpO1xuXG4gIGNvbnN0IHtwb3NpdGlvblN0eWxlcywgY29udGVudEhlaWdodH0gPSB1c2VMZWdlbmRQb3NpdGlvbih7XG4gICAgbGVnZW5kQ29udGVudFJlZixcbiAgICBpc1NpZGVQYW5lbFNob3duLFxuICAgIHRoZW1lLFxuICAgIHNldHRpbmdzLFxuICAgIG9uQ2hhbmdlU2V0dGluZ3M6ICgpID0+IHtcbiAgICAgIC8vIGRvIG5vdGhpbmcgYnkgZGVmYXVsdFxuICAgIH1cbiAgfSk7XG5cbiAgY29uc3QgcG9ydGFsUm9vdCA9IGNvbnRhaW5lclJlZi5jdXJyZW50XG4gICAgPy5jbG9zZXN0KCcuZXhwb3J0LW1hcC1pbnN0YW5jZScpXG4gICAgPy5xdWVyeVNlbGVjdG9yKCcjZGVmYXVsdC1kZWNrZ2wtb3ZlcmxheS13cmFwcGVyJyk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IHJlZj17Y29udGFpbmVyUmVmfT5cbiAgICAgIHtwb3J0YWxSb290XG4gICAgICAgID8gY3JlYXRlUG9ydGFsKFxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmaXhlZC1sZWdlbmRcIlxuICAgICAgICAgICAgICByZWY9e2xlZ2VuZENvbnRlbnRSZWZ9XG4gICAgICAgICAgICAgIHN0eWxlPXt7Li4ucG9zaXRpb25TdHlsZXMsIHBvc2l0aW9uOiAnYWJzb2x1dGUnfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPFN0eWxlZEZpeGVkTGVnZW5kQ29udGVudCBjb250ZW50SGVpZ2h0PXtjb250ZW50SGVpZ2h0fT5cbiAgICAgICAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgICAgICAgIDwvU3R5bGVkRml4ZWRMZWdlbmRDb250ZW50PlxuICAgICAgICAgICAgPC9kaXY+LFxuICAgICAgICAgICAgcG9ydGFsUm9vdFxuICAgICAgICAgIClcbiAgICAgICAgOiBudWxsfVxuICAgIDwvZGl2PlxuICApO1xufSkgYXMgUmVhY3QuRkM8SW1hZ2VFeHBvcnRMZWdlbmRQcm9wcz47XG5cbk1hcExlZ2VuZFBhbmVsRmFjdG9yeS5kZXBzID0gW01hcENvbnRyb2xUb29sdGlwRmFjdG9yeSwgTWFwQ29udHJvbFBhbmVsRmFjdG9yeSwgTWFwTGVnZW5kRmFjdG9yeV07XG5cbmludGVyZmFjZSBNYXBMZWdlbmRQYW5lbEljb25zIHtcbiAgbGVnZW5kOiBDb21wb25lbnRUeXBlPGFueT47XG59XG5cbmV4cG9ydCB0eXBlIE1hcExlZ2VuZFBhbmVsUHJvcHMgPSB7XG4gIHRoZW1lOiBhbnk7XG4gIGxheWVyczogUmVhZG9ubHlBcnJheTxMYXllcj47XG4gIHNjYWxlOiBudW1iZXI7XG4gIG9uVG9nZ2xlTWFwQ29udHJvbDogKGNvbnRyb2w6IHN0cmluZykgPT4gdm9pZDtcbiAgaXNFeHBvcnQ6IGJvb2xlYW47XG4gIGxvZ29Db21wb25lbnQ6IEVsZW1lbnQ7XG4gIGFjdGlvbkljb25zOiBNYXBMZWdlbmRQYW5lbEljb25zO1xuICBtYXBDb250cm9sczogTWFwQ29udHJvbHM7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U/OiAob2xkTGF5ZXI6IExheWVyLCBuZXdWaXNDb25maWc6IFBhcnRpYWw8TGF5ZXJWaXNDb25maWc+KSA9PiB2b2lkO1xuICBvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnQ/OiBBY3Rpb25IYW5kbGVyPHR5cGVvZiB0b2dnbGVTcGxpdE1hcFZpZXdwb3J0PjtcbiAgaXNWaWV3cG9ydFVuc3luY0FsbG93ZWQ/OiBib29sZWFuO1xuICBvbkNsaWNrQ29udHJvbEJ0bj86IChlPzogTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gIHNldHRpbmdzOiBNYXBMZWdlbmRDb250cm9sU2V0dGluZ3M7XG4gIGlzU2lkZVBhbmVsU2hvd246IGJvb2xlYW47XG4gIGFjdGl2ZVNpZGVQYW5lbDogc3RyaW5nIHwgbnVsbDtcbiAgc2V0TWFwQ29udHJvbFNldHRpbmdzOiBhbnk7XG59O1xuXG50eXBlIE1hcExlZ2VuZFBhbmVsQ29tcG9uZW50cyA9IHtcbiAgTWFwQ29udHJvbFRvb2x0aXA6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRyb2xUb29sdGlwRmFjdG9yeT47XG4gIE1hcENvbnRyb2xQYW5lbDogUmV0dXJuVHlwZTx0eXBlb2YgTWFwQ29udHJvbFBhbmVsRmFjdG9yeT47XG4gIE1hcExlZ2VuZDogUmV0dXJuVHlwZTx0eXBlb2YgTWFwTGVnZW5kRmFjdG9yeT47XG59O1xuXG50eXBlIE1hcExlZ2VuZFBhbmVsQ29tcG9uZW50VHlwZSA9IFJlYWN0LkZDPE1hcExlZ2VuZFBhbmVsUHJvcHM+O1xuXG5jb25zdCBkZWZhdWx0QWN0aW9uSWNvbnMgPSB7XG4gIGxlZ2VuZDogcHJvcHMgPT4gPExlZ2VuZCB7Li4ucHJvcHN9IGhlaWdodD1cIjE4cHhcIiAvPlxufTtcblxuY29uc3QgTWFwTGVnZW5kUGFuZWxDb21wb25lbnQgPSAoe1xuICBsYXllcnMsXG4gIG1hcENvbnRyb2xzLFxuICBzY2FsZSxcbiAgb25Ub2dnbGVNYXBDb250cm9sLFxuICBpc0V4cG9ydCxcbiAgbG9nb0NvbXBvbmVudCxcbiAgYWN0aW9uSWNvbnMgPSBkZWZhdWx0QWN0aW9uSWNvbnMsXG4gIG1hcFN0YXRlLFxuICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlLFxuICBvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnQsXG4gIG9uQ2xpY2tDb250cm9sQnRuLFxuICBhY3RpdmVTaWRlUGFuZWwsXG4gIHNldE1hcENvbnRyb2xTZXR0aW5ncyxcbiAgaXNWaWV3cG9ydFVuc3luY0FsbG93ZWQgPSB0cnVlLFxuICBjbGFzc05hbWUsXG4gIE1hcENvbnRyb2xUb29sdGlwLFxuICBNYXBDb250cm9sUGFuZWwsXG4gIE1hcExlZ2VuZFxufTogTWFwTGVnZW5kUGFuZWxQcm9wcyAmIE1hcExlZ2VuZFBhbmVsQ29tcG9uZW50cykgPT4ge1xuICBjb25zdCBpc1NpZGVQYW5lbFNob3duID0gQm9vbGVhbihhY3RpdmVTaWRlUGFuZWwpO1xuICBjb25zdCBzZXR0aW5ncyA9IG1hcENvbnRyb2xzPy5tYXBMZWdlbmQ/LnNldHRpbmdzO1xuXG4gIGNvbnN0IG1hcExlZ2VuZCA9IG1hcENvbnRyb2xzPy5tYXBMZWdlbmQgfHwgKHt9IGFzIE1hcENvbnRyb2xNYXBMZWdlbmQpO1xuICBjb25zdCB7YWN0aXZlLCBkaXNhYmxlRWRpdH0gPSBtYXBMZWdlbmQgfHwge307XG4gIGNvbnN0IHJvb3RDb250ZXh0ID0gdXNlQ29udGV4dChSb290Q29udGV4dCk7XG5cbiAgY29uc3Qgb25DbGljayA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBvbkNsaWNrQ29udHJvbEJ0bj8uKCk7XG4gICAgaWYgKG1hcENvbnRyb2xzPy5tYXBEcmF3Py5hY3RpdmUpIHtcbiAgICAgIG9uVG9nZ2xlTWFwQ29udHJvbCgnbWFwRHJhdycpO1xuICAgIH1cbiAgICBvblRvZ2dsZU1hcENvbnRyb2woJ21hcExlZ2VuZCcpO1xuICB9LCBbb25DbGlja0NvbnRyb2xCdG4sIG9uVG9nZ2xlTWFwQ29udHJvbCwgbWFwQ29udHJvbHNdKTtcbiAgY29uc3Qgb25DbG9zZUNsaWNrID0gdXNlQ2FsbGJhY2soXG4gICAgZSA9PiB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBvblRvZ2dsZU1hcENvbnRyb2woJ21hcExlZ2VuZCcpO1xuICAgIH0sXG4gICAgW29uVG9nZ2xlTWFwQ29udHJvbF1cbiAgKTtcblxuICBpZiAoIW1hcExlZ2VuZC5zaG93KSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBjb25zdCBsZWdlbmRQYW5lbCA9IGFjdGl2ZSA/IChcbiAgICA8TWFwQ29udHJvbFBhbmVsXG4gICAgICBzY2FsZT17c2NhbGV9XG4gICAgICBoZWFkZXI9XCJoZWFkZXIubGF5ZXJMZWdlbmRcIlxuICAgICAgey4uLntvbkNsaWNrOiBvbkNsb3NlQ2xpY2ssIHBpbm5hYmxlOiBmYWxzZSwgZGlzYWJsZUNsb3NlOiBmYWxzZX19XG4gICAgICBpc0V4cG9ydD17aXNFeHBvcnR9XG4gICAgICBsb2dvQ29tcG9uZW50PXtsb2dvQ29tcG9uZW50fVxuICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgb25Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0PXtvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnR9XG4gICAgICBpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZD17aXNWaWV3cG9ydFVuc3luY0FsbG93ZWR9XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICA+XG4gICAgICA8TWFwTGVnZW5kXG4gICAgICAgIGxheWVycz17bGF5ZXJzfVxuICAgICAgICBtYXBTdGF0ZT17bWFwU3RhdGV9XG4gICAgICAgIGRpc2FibGVFZGl0PXtkaXNhYmxlRWRpdH1cbiAgICAgICAgaXNFeHBvcnQ9e2lzRXhwb3J0fVxuICAgICAgICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlPXtvbkxheWVyVmlzQ29uZmlnQ2hhbmdlfVxuICAgICAgLz5cbiAgICA8L01hcENvbnRyb2xQYW5lbD5cbiAgKSA6IG51bGw7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAge2FjdGl2ZSA/IChcbiAgICAgICAgaGFzUG9ydGFibGVXaWR0aChicmVha1BvaW50VmFsdWVzKSA/IChcbiAgICAgICAgICBsZWdlbmRQYW5lbFxuICAgICAgICApIDogaXNFeHBvcnQgPyAoXG4gICAgICAgICAgPEltYWdlRXhwb3J0TGVnZW5kIGlzU2lkZVBhbmVsU2hvd249e2lzU2lkZVBhbmVsU2hvd259IHNldHRpbmdzPXtzZXR0aW5nc30+XG4gICAgICAgICAgICB7bGVnZW5kUGFuZWx9XG4gICAgICAgICAgPC9JbWFnZUV4cG9ydExlZ2VuZD5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICA8RHJhZ2dhYmxlTGVnZW5kXG4gICAgICAgICAgICAgIGlzU2lkZVBhbmVsU2hvd249e2lzU2lkZVBhbmVsU2hvd259XG4gICAgICAgICAgICAgIG1hcENvbnRyb2xzPXttYXBDb250cm9sc31cbiAgICAgICAgICAgICAgc2V0TWFwQ29udHJvbFNldHRpbmdzPXtzZXRNYXBDb250cm9sU2V0dGluZ3N9XG4gICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge2xlZ2VuZFBhbmVsfVxuICAgICAgICAgICAgPC9EcmFnZ2FibGVMZWdlbmQ+LFxuICAgICAgICAgICAgcm9vdENvbnRleHQ/LmN1cnJlbnQgPz8gZG9jdW1lbnQuYm9keVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgKSA6IG51bGx9XG4gICAgICB7IWlzRXhwb3J0ID8gKFxuICAgICAgICA8TWFwQ29udHJvbFRvb2x0aXAgaWQ9XCJzaG93LWxlZ2VuZFwiIG1lc3NhZ2U9XCJ0b29sdGlwLnNob3dMZWdlbmRcIj5cbiAgICAgICAgICA8TWFwQ29udHJvbEJ1dHRvbiBjbGFzc05hbWU9XCJtYXAtY29udHJvbC1idXR0b24gc2hvdy1sZWdlbmRcIiBvbkNsaWNrPXtvbkNsaWNrfT5cbiAgICAgICAgICAgIDxhY3Rpb25JY29ucy5sZWdlbmQgaGVpZ2h0PVwiMjJweFwiIC8+XG4gICAgICAgICAgPC9NYXBDb250cm9sQnV0dG9uPlxuICAgICAgICA8L01hcENvbnRyb2xUb29sdGlwPlxuICAgICAgKSA6IG51bGx9XG4gICAgPC8+XG4gICk7XG59O1xuXG5mdW5jdGlvbiBNYXBMZWdlbmRQYW5lbEZhY3RvcnkoXG4gIE1hcENvbnRyb2xUb29sdGlwOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBDb250cm9sVG9vbHRpcEZhY3Rvcnk+LFxuICBNYXBDb250cm9sUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRyb2xQYW5lbEZhY3Rvcnk+LFxuICBNYXBMZWdlbmQ6IFJldHVyblR5cGU8dHlwZW9mIE1hcExlZ2VuZEZhY3Rvcnk+XG4pOiBNYXBMZWdlbmRQYW5lbENvbXBvbmVudFR5cGUge1xuICByZXR1cm4gKHByb3BzOiBNYXBMZWdlbmRQYW5lbFByb3BzKSA9PiAoXG4gICAgPE1hcExlZ2VuZFBhbmVsQ29tcG9uZW50XG4gICAgICB7Li4ucHJvcHN9XG4gICAgICBNYXBDb250cm9sVG9vbHRpcD17TWFwQ29udHJvbFRvb2x0aXB9XG4gICAgICBNYXBDb250cm9sUGFuZWw9e01hcENvbnRyb2xQYW5lbH1cbiAgICAgIE1hcExlZ2VuZD17TWFwTGVnZW5kfVxuICAgIC8+XG4gICk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1hcExlZ2VuZFBhbmVsRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxXQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxTQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFDLHVCQUFBLENBQUFILE9BQUE7QUFTQSxJQUFBSSxpQkFBQSxHQUFBRCx1QkFBQSxDQUFBSCxPQUFBO0FBRUEsSUFBQUssS0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sVUFBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sT0FBQSxHQUFBUCxPQUFBO0FBSUEsSUFBQVEsT0FBQSxHQUFBUixPQUFBO0FBRUEsSUFBQVMsTUFBQSxHQUFBVCxPQUFBO0FBR0EsSUFBQVUsTUFBQSxHQUFBVixPQUFBO0FBQ0EsSUFBQVcsa0JBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLFFBQUEsR0FBQVosT0FBQTtBQUNB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