@kepler.gl/components 3.1.0 → 3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/dist/common/checkbox.js +14 -5
  2. package/dist/common/data-table/header-cell.d.ts +1 -0
  3. package/dist/common/data-table/header-cell.js +2 -2
  4. package/dist/common/data-table/index.d.ts +1 -0
  5. package/dist/common/data-table/index.js +5 -1
  6. package/dist/common/file-uploader/file-drop.d.ts +1 -32
  7. package/dist/common/file-uploader/file-drop.js +152 -167
  8. package/dist/common/histogram-plot.js +13 -13
  9. package/dist/common/icons/index.js +1 -1
  10. package/dist/common/index.d.ts +1 -1
  11. package/dist/common/index.js +3 -3
  12. package/dist/common/item-selector/chickleted-input.js +5 -2
  13. package/dist/common/item-selector/dropdown-list.d.ts +3 -3
  14. package/dist/common/item-selector/dropdown-list.js +6 -7
  15. package/dist/common/item-selector/dropdown-select.js +8 -3
  16. package/dist/common/item-selector/item-selector.d.ts +1 -1
  17. package/dist/common/item-selector/item-selector.js +5 -2
  18. package/dist/common/item-selector/typeahead.d.ts +1 -1
  19. package/dist/common/item-selector/typeahead.js +8 -3
  20. package/dist/common/range-brush.js +6 -6
  21. package/dist/common/range-slider.js +7 -7
  22. package/dist/common/slider/slider-bar-handle.d.ts +2 -2
  23. package/dist/common/slider/slider-bar-handle.js +4 -4
  24. package/dist/common/slider/slider-handle.d.ts +3 -3
  25. package/dist/common/slider/slider-handle.js +11 -11
  26. package/dist/common/slider/slider.d.ts +3 -3
  27. package/dist/common/slider/slider.js +6 -6
  28. package/dist/common/styled-components.d.ts +4 -3
  29. package/dist/common/styled-components.js +47 -12
  30. package/dist/geocoder/geocoder.d.ts +7 -0
  31. package/dist/geocoder/geocoder.js +19 -11
  32. package/dist/geocoder-panel.d.ts +2 -2
  33. package/dist/geocoder-panel.js +64 -91
  34. package/dist/hooks/use-fetch-vector-tile-metadata.d.ts +4 -3
  35. package/dist/hooks/use-fetch-vector-tile-metadata.js +35 -26
  36. package/dist/hooks/use-legend-position.d.ts +2 -10
  37. package/dist/hooks/use-legend-position.js +12 -6
  38. package/dist/index.d.ts +1 -1
  39. package/dist/index.js +4 -4
  40. package/dist/kepler-gl.js +3 -13
  41. package/dist/loading-indicator.d.ts +2 -2
  42. package/dist/loading-indicator.js +5 -5
  43. package/dist/map/map-control.d.ts +2 -0
  44. package/dist/map/map-control.js +3 -3
  45. package/dist/map/map-legend-panel.d.ts +3 -1
  46. package/dist/map/map-legend-panel.js +23 -30
  47. package/dist/map-container.js +12 -10
  48. package/dist/modal-container.js +8 -8
  49. package/dist/modals/tilesets-modals/tileset-vector-form.js +31 -12
  50. package/dist/side-panel/common/dataset-title.js +4 -4
  51. package/dist/side-panel/common/types.d.ts +1 -1
  52. package/dist/side-panel/common/types.js +1 -1
  53. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +3 -3
  54. package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +7 -7
  55. package/dist/side-panel/layer-manager.js +84 -108
  56. package/dist/side-panel/layer-panel/color-palette-preset.js +2 -2
  57. package/dist/side-panel/layer-panel/color-palette.d.ts +2 -2
  58. package/dist/side-panel/layer-panel/color-palette.js +6 -6
  59. package/dist/side-panel/layer-panel/color-range-selector.js +10 -11
  60. package/dist/side-panel/layer-panel/color-selector.js +9 -5
  61. package/dist/side-panel/layer-panel/custom-palette.js +7 -4
  62. package/dist/side-panel/layer-panel/dataset-section.js +3 -3
  63. package/dist/side-panel/layer-panel/layer-config-group.js +5 -2
  64. package/dist/side-panel/layer-panel/layer-configurator.js +6 -8
  65. package/dist/side-panel/layer-panel/layer-list.js +5 -5
  66. package/dist/side-panel/layer-panel/layer-panel-header.js +9 -5
  67. package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +1 -2
  68. package/dist/side-panel/map-manager.js +76 -101
  69. package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +3 -3
  70. package/dist/side-panel/map-style-panel/map-layer-group-item.js +4 -4
  71. package/dist/side-panel/panel-header-action.js +8 -8
  72. package/dist/side-panel/panel-view-list-toggle.d.ts +1 -1
  73. package/dist/side-panel/panel-view-list-toggle.js +3 -3
  74. package/package.json +16 -16
@@ -28,13 +28,16 @@ var _utils = require("@kepler.gl/utils");
28
28
  var _commonUtils = require("@kepler.gl/common-utils");
29
29
  var _reactIntl = require("react-intl");
30
30
  var _dropdownSelect = _interopRequireDefault(require("./dropdown-select"));
31
+ var _styledComponents2 = require("../styled-components");
31
32
  var _templateObject; // SPDX-License-Identifier: MIT
32
33
  // Copyright contributors to the kepler.gl project
33
34
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
34
35
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
35
36
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
36
37
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
37
- var DropdownWrapper = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n border: 0;\n width: 100%;\n left: 0;\n z-index: ", ";\n width: ", "px;\n"])), function (props) {
38
+ var DropdownWrapper = _styledComponents["default"].div.withConfig({
39
+ shouldForwardProp: _styledComponents2.shouldForwardProp
40
+ })(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n border: 0;\n width: 100%;\n left: 0;\n z-index: ", ";\n width: ", "px;\n"])), function (props) {
38
41
  return props.theme.dropdownWrapperZ;
39
42
  }, function (props) {
40
43
  return props.width;
@@ -249,4 +252,4 @@ var ItemSelectorUnmemoized = /*#__PURE__*/function (_Component) {
249
252
  var ItemSelector = /*#__PURE__*/_react["default"].memo(ItemSelectorUnmemoized);
250
253
  ItemSelector.displayName = 'ItemSelector';
251
254
  var _default = exports["default"] = (0, _reactIntl.injectIntl)(ItemSelector);
252
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbG9kYXNoIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfYWNjZXNzb3IiLCJfY2hpY2tsZXRlZElucHV0IiwiX3R5cGVhaGVhZCIsIl9kcm9wZG93bkxpc3QiLCJfcG9ydGFsZWQiLCJfdXRpbHMiLCJfY29tbW9uVXRpbHMiLCJfcmVhY3RJbnRsIiwiX2Ryb3Bkb3duU2VsZWN0IiwiX3RlbXBsYXRlT2JqZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2NhbGxTdXBlciIsIm8iLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJEcm9wZG93bldyYXBwZXIiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJkcm9wZG93bldyYXBwZXJaIiwid2lkdGgiLCJJdGVtU2VsZWN0b3JVbm1lbW9pemVkIiwiX0NvbXBvbmVudCIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY29uY2F0IiwiX2RlZmluZVByb3BlcnR5MiIsInNob3dUeXBlYWhlYWQiLCJkaW1lbnNpb25zIiwiY3JlYXRlUmVmIiwiX2hpZGVUeXBlYWhlYWQiLCJzZXRTdGF0ZSIsIl9vbkJsdXIiLCJvbkJsdXIiLCJpdGVtIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJtdWx0aVNlbGVjdGVkSXRlbXMiLCJ0b0FycmF5Iiwic2VsZWN0ZWRJdGVtcyIsImluZGV4IiwiZmluZEluZGV4IiwiaXRlbXMiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwic2xpY2UiLCJvbkNoYW5nZSIsImNsb3NlT25TZWxlY3QiLCJnZXRWYWx1ZSIsIkFjY2Vzc29yIiwiZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0ZvciIsImdldE9wdGlvblZhbHVlIiwiZGlzcGxheU9wdGlvbiIsInByZXZpb3VzU2VsZWN0ZWQiLCJtdWx0aVNlbGVjdCIsInVuaXFCeSIsImRpc2FibGVkIiwib25PcGVuIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJ2YWx1ZSIsImNvbXBvbmVudERpZE1vdW50Iiwic2hvd0Ryb3Bkb3duT25Nb3VudCIsInJvb3QiLCJjdXJyZW50IiwiSFRNTEVsZW1lbnQiLCJvYnNlcnZlRGltZW5zaW9ucyIsIl9oYW5kbGVSZXNpemUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInVub2JzZXJ2ZURpbWVuc2lvbnMiLCJfcmVuZGVyRHJvcGRvd24iLCJpbnRsIiwiX3RoaXMkcHJvcHMkcGxhY2VtZW50IiwicGxhY2VtZW50Iiwic3RhdGUiLCJEcm9wRG93bldyYXBwZXJDb21wb25lbnQiLCJjcmVhdGVFbGVtZW50IiwibGVmdCIsInRvcCIsImlzT3BlbmVkIiwib25DbG9zZSIsImN1c3RvbUNsYXNzZXMiLCJyZXN1bHRzIiwiaW5wdXQiLCJsaXN0SXRlbSIsImxpc3RBbmNob3IiLCJvcHRpb25zIiwiZmlsdGVyT3B0aW9uIiwiZml4ZWRPcHRpb25zIiwicGxhY2Vob2xkZXIiLCJ0eXBlYWhlYWRQbGFjZWhvbGRlciIsImZvcm1hdE1lc3NhZ2UiLCJpZCIsIm9uT3B0aW9uU2VsZWN0ZWQiLCJfc2VsZWN0SXRlbSIsImN1c3RvbUxpc3RDb21wb25lbnQiLCJEcm9wRG93blJlbmRlckNvbXBvbmVudCIsImN1c3RvbUxpc3RIZWFkZXJDb21wb25lbnQiLCJEcm9wZG93bkhlYWRlckNvbXBvbmVudCIsImN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IiwiRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudCIsInNlYXJjaGFibGUiLCJzZWFyY2hPcHRpb25zIiwic2hvd09wdGlvbnNXaGVuRW1wdHkiLCJsaWdodCIsImlucHV0VGhlbWUiLCJyZW5kZXIiLCJzZWxlY3RlZCIsIl90aGlzJHByb3BzIiwiX3RoaXMkcHJvcHMkaW5wdXRUaGVtIiwiZHJvcGRvd25TZWxlY3RQcm9wcyIsImNsYXNzTmFtZSIsImNsYXNzbmFtZXMiLCJhY3RpdmUiLCJvbkNsaWNrIiwiX3Nob3dUeXBlYWhlYWQiLCJlcnJvciIsImlzRXJyb3IiLCJzaXplIiwicmVmIiwic3R5bGUiLCJwb3NpdGlvbiIsIl9leHRlbmRzMiIsInJlbW92ZUl0ZW0iLCJfcmVtb3ZlSXRlbSIsInJlb3JkZXJJdGVtcyIsIkN1c3RvbUNoaWNrbGV0Q29tcG9uZW50IiwiZXJhc2FibGUiLCJzaG93QXJyb3ciLCJvbkVyYXNlIiwiX29uRXJhc2UiLCJzaG93RHJvcGRvd24iLCJDb21wb25lbnQiLCJEcm9wZG93bkxpc3QiLCJMaXN0SXRlbSIsInVuZGVmaW5lZCIsIkl0ZW1TZWxlY3RvciIsIlJlYWN0IiwibWVtbyIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiaW5qZWN0SW50bCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vaXRlbS1zZWxlY3Rvci9pdGVtLXNlbGVjdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnQsIGNyZWF0ZVJlZiwgQ29tcG9uZW50VHlwZSwgTW91c2VFdmVudEhhbmRsZXIsIFJlZk9iamVjdH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgdW5pcUJ5IGZyb20gJ2xvZGFzaC51bmlxYnknO1xuaW1wb3J0IHN0eWxlZCwge0lTdHlsZWRDb21wb25lbnR9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IEFjY2Vzc29yIGZyb20gJy4vYWNjZXNzb3InO1xuaW1wb3J0IENoaWNrbGV0ZWRJbnB1dCBmcm9tICcuL2NoaWNrbGV0ZWQtaW5wdXQnO1xuaW1wb3J0IFR5cGVhaGVhZCBmcm9tICcuL3R5cGVhaGVhZCc7XG5pbXBvcnQgRHJvcGRvd25MaXN0LCB7TGlzdEl0ZW19IGZyb20gJy4vZHJvcGRvd24tbGlzdCc7XG5pbXBvcnQgUG9ydGFsZWQgZnJvbSAnLi4vLi4vY29tbW9uL3BvcnRhbGVkJztcbmltcG9ydCB7b2JzZXJ2ZURpbWVuc2lvbnMsIHVub2JzZXJ2ZURpbWVuc2lvbnN9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHt0b0FycmF5fSBmcm9tICdAa2VwbGVyLmdsL2NvbW1vbi11dGlscyc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0xpc3RJdGVtUHJvcHN9IGZyb20gJy4vZHJvcGRvd24tc2VsZWN0JztcbmltcG9ydCBEcm9wZG93blNlbGVjdCBmcm9tICcuL2Ryb3Bkb3duLXNlbGVjdCc7XG5cbmV4cG9ydCB0eXBlIERyb3Bkb3duV3JhcHBlclByb3BzID0ge1xuICBwbGFjZW1lbnQ/OiBzdHJpbmc7XG4gIHdpZHRoOiBudW1iZXI7XG59O1xuXG5jb25zdCBEcm9wZG93bldyYXBwZXI6IElTdHlsZWRDb21wb25lbnQ8XG4gICd3ZWInLFxuICBEcm9wZG93bldyYXBwZXJQcm9wc1xuPiA9IHN0eWxlZC5kaXY8RHJvcGRvd25XcmFwcGVyUHJvcHM+YFxuICBib3JkZXI6IDA7XG4gIHdpZHRoOiAxMDAlO1xuICBsZWZ0OiAwO1xuICB6LWluZGV4OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmRyb3Bkb3duV3JhcHBlclp9O1xuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy53aWR0aH1weDtcbmA7XG5cbmV4cG9ydCB0eXBlIEl0ZW1TZWxlY3RvclByb3BzPE9wdGlvbj4gPSB7XG4gIHNlbGVjdGVkSXRlbXM/OiBSZWFkb25seUFycmF5PE9wdGlvbj4gfCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgb2JqZWN0IHwgbnVsbDtcbiAgb3B0aW9uczogUmVhZG9ubHlBcnJheTxPcHRpb24+O1xuICBvbkNoYW5nZTogKGl0ZW1zOiBSZWFkb25seUFycmF5PE9wdGlvbj4gfCBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgb2JqZWN0IHwgbnVsbCkgPT4gdm9pZDtcbiAgZml4ZWRPcHRpb25zPzogUmVhZG9ubHlBcnJheTxPcHRpb24+IHwgbnVsbDtcbiAgZXJhc2FibGU/OiBib29sZWFuO1xuICBzaG93QXJyb3c/OiBib29sZWFuO1xuICBzZWFyY2hPcHRpb25zPzogKHZhbHVlOiBhbnksIG9wdDogT3B0aW9uKSA9PiBhbnk7XG4gIHNlYXJjaGFibGU/OiBib29sZWFuO1xuICBkaXNwbGF5T3B0aW9uPzogc3RyaW5nIHwgKChvcHQ6IE9wdGlvbikgPT4gc3RyaW5nKTtcbiAgZ2V0T3B0aW9uVmFsdWU/OiBzdHJpbmcgfCAoKG9wdDogT3B0aW9uKSA9PiBhbnkpO1xuICBmaWx0ZXJPcHRpb24/OiBzdHJpbmcgfCAoKG9wdDogT3B0aW9uKSA9PiBib29sZWFuKTtcbiAgcGxhY2VtZW50Pzogc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGlzRXJyb3I/OiBib29sZWFuO1xuICBtdWx0aVNlbGVjdD86IGJvb2xlYW47XG4gIGlucHV0VGhlbWU/OiBzdHJpbmc7XG4gIG9uT3Blbj86ICgpID0+IHZvaWQ7XG4gIHNpemU/OiBzdHJpbmc7XG4gIG9uQmx1cj86ICgpID0+IHZvaWQ7XG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xuICBjbG9zZU9uU2VsZWN0PzogYm9vbGVhbjtcbiAgdHlwZWFoZWFkUGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIERyb3BEb3duV3JhcHBlckNvbXBvbmVudD86IENvbXBvbmVudFR5cGU8YW55PiB8IG51bGw7XG4gIERyb3Bkb3duSGVhZGVyQ29tcG9uZW50PzogQ29tcG9uZW50VHlwZTxhbnk+IHwgbnVsbDtcbiAgRHJvcERvd25SZW5kZXJDb21wb25lbnQ/OiBDb21wb25lbnRUeXBlPGFueT47XG4gIERyb3BEb3duTGluZUl0ZW1SZW5kZXJDb21wb25lbnQ/OiBDb21wb25lbnRUeXBlPExpc3RJdGVtUHJvcHM8T3B0aW9uPj47XG4gIEN1c3RvbUNoaWNrbGV0Q29tcG9uZW50PzogQ29tcG9uZW50VHlwZTxhbnk+O1xuICBpbnRsOiBJbnRsU2hhcGU7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgcmVvcmRlckl0ZW1zPzogKG5ld09yZGVyOiBhbnkpID0+IHZvaWQ7XG4gIHNob3dEcm9wZG93bk9uTW91bnQ/OiBib29sZWFuO1xufTtcblxuY2xhc3MgSXRlbVNlbGVjdG9yVW5tZW1vaXplZCBleHRlbmRzIENvbXBvbmVudDxJdGVtU2VsZWN0b3JQcm9wczxhbnk+PiB7XG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgbXVsdGlTZWxlY3Q6IHRydWUsXG4gICAgcGxhY2Vob2xkZXI6ICdwbGFjZWhvbGRlci5lbnRlclZhbHVlJyxcbiAgICBjbG9zZU9uU2VsZWN0OiB0cnVlLFxuICAgIHNlYXJjaGFibGU6IHRydWUsXG4gICAgRHJvcERvd25SZW5kZXJDb21wb25lbnQ6IERyb3Bkb3duTGlzdCxcbiAgICBEcm9wRG93bkxpbmVJdGVtUmVuZGVyQ29tcG9uZW50OiBMaXN0SXRlbSxcbiAgICBEcm9wRG93bldyYXBwZXJDb21wb25lbnQ6IERyb3Bkb3duV3JhcHBlcixcbiAgICByZW9yZGVySXRlbXM6IHVuZGVmaW5lZCxcbiAgICBjbGFzc05hbWU6ICcnXG4gIH07XG5cbiAgc3RhdGUgPSB7XG4gICAgc2hvd1R5cGVhaGVhZDogZmFsc2UsXG4gICAgZGltZW5zaW9uczoge1xuICAgICAgd2lkdGg6IDIwMFxuICAgIH1cbiAgfTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBpZiAodGhpcy5wcm9wcy5zaG93RHJvcGRvd25Pbk1vdW50KSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtzaG93VHlwZWFoZWFkOiB0cnVlfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucm9vdC5jdXJyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgIG9ic2VydmVEaW1lbnNpb25zKHRoaXMucm9vdC5jdXJyZW50LCB0aGlzLl9oYW5kbGVSZXNpemUpO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIGlmICh0aGlzLnJvb3QuY3VycmVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICB1bm9ic2VydmVEaW1lbnNpb25zKHRoaXMucm9vdC5jdXJyZW50KTtcbiAgICB9XG4gIH1cblxuICByb290OiBSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+ID0gY3JlYXRlUmVmKCk7XG5cbiAgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKCkgPT4ge1xuICAgIHRoaXMuX2hpZGVUeXBlYWhlYWQoKTtcbiAgfTtcblxuICBfaGFuZGxlUmVzaXplID0gZGltZW5zaW9ucyA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7ZGltZW5zaW9uc30pO1xuICB9O1xuXG4gIF9oaWRlVHlwZWFoZWFkID0gKCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoe3Nob3dUeXBlYWhlYWQ6IGZhbHNlfSk7XG4gICAgdGhpcy5fb25CbHVyKCk7XG4gIH07XG5cbiAgX29uQmx1ciA9ICgpID0+IHtcbiAgICAvLyBub3RlOiBjaGlja2xldGVkIGlucHV0IGlzIG5vdCBhIHJlYWwgZm9ybSBlbGVtZW50IHNvIHdlIGNhbGwgb25CbHVyKClcbiAgICAvLyB3aGVuIHdlIGZlZWwgdGhlIGV2ZW50cyBhcmUgYXBwcm9wcmlhdGVcbiAgICBpZiAodGhpcy5wcm9wcy5vbkJsdXIpIHtcbiAgICAgIHRoaXMucHJvcHMub25CbHVyKCk7XG4gICAgfVxuICB9O1xuXG4gIF9yZW1vdmVJdGVtID0gKGl0ZW0sIGUpID0+IHtcbiAgICAvLyBvbmx5IHVzZWQgd2hlbiBtdWx0aVNlbGVjdCA9IHRydWVcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCBtdWx0aVNlbGVjdGVkSXRlbXMgPSB0b0FycmF5KHRoaXMucHJvcHMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgY29uc3QgaW5kZXggPSBtdWx0aVNlbGVjdGVkSXRlbXMuZmluZEluZGV4KHQgPT4gdCA9PT0gaXRlbSk7XG5cbiAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaXRlbXMgPSBbXG4gICAgICAuLi5tdWx0aVNlbGVjdGVkSXRlbXMuc2xpY2UoMCwgaW5kZXgpLFxuICAgICAgLi4ubXVsdGlTZWxlY3RlZEl0ZW1zLnNsaWNlKGluZGV4ICsgMSwgbXVsdGlTZWxlY3RlZEl0ZW1zLmxlbmd0aClcbiAgICBdO1xuXG4gICAgdGhpcy5wcm9wcy5vbkNoYW5nZShpdGVtcyk7XG5cbiAgICBpZiAodGhpcy5wcm9wcy5jbG9zZU9uU2VsZWN0KSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtzaG93VHlwZWFoZWFkOiBmYWxzZX0pO1xuICAgICAgdGhpcy5fb25CbHVyKCk7XG4gICAgfVxuICB9O1xuXG4gIF9zZWxlY3RJdGVtID0gaXRlbSA9PiB7XG4gICAgY29uc3QgZ2V0VmFsdWUgPSBBY2Nlc3Nvci5nZW5lcmF0ZU9wdGlvblRvU3RyaW5nRm9yKFxuICAgICAgdGhpcy5wcm9wcy5nZXRPcHRpb25WYWx1ZSB8fCB0aGlzLnByb3BzLmRpc3BsYXlPcHRpb25cbiAgICApO1xuXG4gICAgY29uc3QgcHJldmlvdXNTZWxlY3RlZCA9IHRvQXJyYXkodGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zKTtcblxuICAgIGlmICh0aGlzLnByb3BzLm11bHRpU2VsZWN0KSB7XG4gICAgICBjb25zdCBpdGVtcyA9IHVuaXFCeShwcmV2aW91c1NlbGVjdGVkLmNvbmNhdCh0b0FycmF5KGl0ZW0pKSwgZ2V0VmFsdWUpO1xuICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZShpdGVtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UoZ2V0VmFsdWUoaXRlbSkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLmNsb3NlT25TZWxlY3QpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe3Nob3dUeXBlYWhlYWQ6IGZhbHNlfSk7XG4gICAgICB0aGlzLl9vbkJsdXIoKTtcbiAgICB9XG4gIH07XG5cbiAgX29uRXJhc2U6IE1vdXNlRXZlbnRIYW5kbGVyID0gZSA9PiB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKG51bGwpO1xuICB9O1xuXG4gIF9zaG93VHlwZWFoZWFkOiBNb3VzZUV2ZW50SGFuZGxlciA9IGUgPT4ge1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKCF0aGlzLnByb3BzLmRpc2FibGVkKSB7XG4gICAgICBpZiAodGhpcy5wcm9wcy5vbk9wZW4pIHtcbiAgICAgICAgdGhpcy5wcm9wcy5vbk9wZW4oKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBzaG93VHlwZWFoZWFkOiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgX3JlbmRlckRyb3Bkb3duKGludGw6IEludGxTaGFwZSkge1xuICAgIGNvbnN0IHtwbGFjZW1lbnQgPSAnYm90dG9tJ30gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHtkaW1lbnNpb25zfSA9IHRoaXMuc3RhdGU7XG5cbiAgICBjb25zdCBEcm9wRG93bldyYXBwZXJDb21wb25lbnQgPSB0aGlzLnByb3BzXG4gICAgICAuRHJvcERvd25XcmFwcGVyQ29tcG9uZW50IGFzIFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PjtcblxuICAgIHJldHVybiAoXG4gICAgICA8UG9ydGFsZWQgbGVmdD17MH0gdG9wPXswfSBpc09wZW5lZD17dGhpcy5zdGF0ZS5zaG93VHlwZWFoZWFkfSBvbkNsb3NlPXt0aGlzLl9oaWRlVHlwZWFoZWFkfT5cbiAgICAgICAgPERyb3BEb3duV3JhcHBlckNvbXBvbmVudCBwbGFjZW1lbnQ9e3BsYWNlbWVudH0gd2lkdGg9e2RpbWVuc2lvbnM/LndpZHRofT5cbiAgICAgICAgICA8VHlwZWFoZWFkXG4gICAgICAgICAgICBjdXN0b21DbGFzc2VzPXt7XG4gICAgICAgICAgICAgIHJlc3VsdHM6ICdsaXN0LXNlbGVjdG9yJyxcbiAgICAgICAgICAgICAgaW5wdXQ6ICd0eXBlYWhlYWRfX2lucHV0JyxcbiAgICAgICAgICAgICAgbGlzdEl0ZW06ICdsaXN0X19pdGVtJyxcbiAgICAgICAgICAgICAgbGlzdEFuY2hvcjogJ2xpc3RfX2l0ZW1fX2FuY2hvcidcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICBvcHRpb25zPXt0aGlzLnByb3BzLm9wdGlvbnN9XG4gICAgICAgICAgICBmaWx0ZXJPcHRpb249e3RoaXMucHJvcHMuZmlsdGVyT3B0aW9ufVxuICAgICAgICAgICAgZml4ZWRPcHRpb25zPXt0aGlzLnByb3BzLmZpeGVkT3B0aW9uc31cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtcbiAgICAgICAgICAgICAgdGhpcy5wcm9wcy50eXBlYWhlYWRQbGFjZWhvbGRlciB8fCBpbnRsXG4gICAgICAgICAgICAgICAgPyBpbnRsLmZvcm1hdE1lc3NhZ2Uoe2lkOiAncGxhY2Vob2xkZXIuc2VhcmNoJ30pXG4gICAgICAgICAgICAgICAgOiAnU2VhcmNoJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb25PcHRpb25TZWxlY3RlZD17dGhpcy5fc2VsZWN0SXRlbX1cbiAgICAgICAgICAgIGN1c3RvbUxpc3RDb21wb25lbnQ9e3RoaXMucHJvcHMuRHJvcERvd25SZW5kZXJDb21wb25lbnR9XG4gICAgICAgICAgICBjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50PXt0aGlzLnByb3BzLkRyb3Bkb3duSGVhZGVyQ29tcG9uZW50fVxuICAgICAgICAgICAgY3VzdG9tTGlzdEl0ZW1Db21wb25lbnQ9e3RoaXMucHJvcHMuRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudH1cbiAgICAgICAgICAgIGRpc3BsYXlPcHRpb249e0FjY2Vzc29yLmdlbmVyYXRlT3B0aW9uVG9TdHJpbmdGb3IodGhpcy5wcm9wcy5kaXNwbGF5T3B0aW9uKX1cbiAgICAgICAgICAgIHNlYXJjaGFibGU9e3RoaXMucHJvcHMuc2VhcmNoYWJsZX1cbiAgICAgICAgICAgIHNlYXJjaE9wdGlvbnM9e3RoaXMucHJvcHMuc2VhcmNoT3B0aW9uc31cbiAgICAgICAgICAgIHNob3dPcHRpb25zV2hlbkVtcHR5XG4gICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXt0b0FycmF5KHRoaXMucHJvcHMuc2VsZWN0ZWRJdGVtcyl9XG4gICAgICAgICAgICBsaWdodD17dGhpcy5wcm9wcy5pbnB1dFRoZW1lID09PSAnbGlnaHQnfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvRHJvcERvd25XcmFwcGVyQ29tcG9uZW50PlxuICAgICAgPC9Qb3J0YWxlZD5cbiAgICApO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdG9BcnJheSh0aGlzLnByb3BzLnNlbGVjdGVkSXRlbXMpO1xuICAgIGNvbnN0IGRpc3BsYXlPcHRpb24gPSBBY2Nlc3Nvci5nZW5lcmF0ZU9wdGlvblRvU3RyaW5nRm9yKHRoaXMucHJvcHMuZGlzcGxheU9wdGlvbik7XG4gICAgY29uc3Qge2Rpc2FibGVkLCBpbnB1dFRoZW1lID0gJ3ByaW1hcnknfSA9IHRoaXMucHJvcHM7XG5cbiAgICBjb25zdCBkcm9wZG93blNlbGVjdFByb3BzID0ge1xuICAgICAgY2xhc3NOYW1lOiBjbGFzc25hbWVzKHtcbiAgICAgICAgYWN0aXZlOiB0aGlzLnN0YXRlLnNob3dUeXBlYWhlYWRcbiAgICAgIH0pLFxuICAgICAgZGlzcGxheU9wdGlvbixcbiAgICAgIGRpc2FibGVkLFxuICAgICAgb25DbGljazogdGhpcy5fc2hvd1R5cGVhaGVhZCxcbiAgICAgIGVycm9yOiB0aGlzLnByb3BzLmlzRXJyb3IsXG4gICAgICBpbnB1dFRoZW1lLFxuICAgICAgc2l6ZTogdGhpcy5wcm9wcy5zaXplXG4gICAgfTtcbiAgICBjb25zdCBpbnRsID0gdGhpcy5wcm9wcy5pbnRsO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdpdGVtLXNlbGVjdG9yJywgdGhpcy5wcm9wcy5jbGFzc05hbWUpfSByZWY9e3RoaXMucm9vdH0+XG4gICAgICAgIDxkaXYgc3R5bGU9e3twb3NpdGlvbjogJ3JlbGF0aXZlJ319PlxuICAgICAgICAgIHsvKiB0aGlzIHBhcnQgaXMgdXNlZCB0byBkaXNwbGF5IHRoZSBsYWJlbCAqL31cbiAgICAgICAgICB7dGhpcy5wcm9wcy5tdWx0aVNlbGVjdCA/IChcbiAgICAgICAgICAgIDxDaGlja2xldGVkSW5wdXRcbiAgICAgICAgICAgICAgey4uLmRyb3Bkb3duU2VsZWN0UHJvcHN9XG4gICAgICAgICAgICAgIHNlbGVjdGVkSXRlbXM9e3RvQXJyYXkodGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zKX1cbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3RoaXMucHJvcHMucGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgIHJlbW92ZUl0ZW09e3RoaXMuX3JlbW92ZUl0ZW19XG4gICAgICAgICAgICAgIHJlb3JkZXJJdGVtcz17dGhpcy5wcm9wcy5yZW9yZGVySXRlbXN9XG4gICAgICAgICAgICAgIEN1c3RvbUNoaWNrbGV0Q29tcG9uZW50PXt0aGlzLnByb3BzLkN1c3RvbUNoaWNrbGV0Q29tcG9uZW50fVxuICAgICAgICAgICAgICBpbnB1dFRoZW1lPXtpbnB1dFRoZW1lfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPERyb3Bkb3duU2VsZWN0XG4gICAgICAgICAgICAgIHsuLi5kcm9wZG93blNlbGVjdFByb3BzfVxuICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRbMF19XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0aGlzLnByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICBlcmFzYWJsZT17dGhpcy5wcm9wcy5lcmFzYWJsZX1cbiAgICAgICAgICAgICAgc2hvd0Fycm93PXt0aGlzLnByb3BzLnNob3dBcnJvd31cbiAgICAgICAgICAgICAgb25FcmFzZT17dGhpcy5fb25FcmFzZX1cbiAgICAgICAgICAgICAgc2hvd0Ryb3Bkb3duPXt0aGlzLl9zaG93VHlwZWFoZWFkfVxuICAgICAgICAgICAgICBEcm9wRG93bkxpbmVJdGVtUmVuZGVyQ29tcG9uZW50PXt0aGlzLnByb3BzLkRyb3BEb3duTGluZUl0ZW1SZW5kZXJDb21wb25lbnR9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAgey8qIHRoaXMgcGFydCBpcyB1c2VkIHRvIGJ1aWx0IHRoZSBsaXN0ICovfVxuICAgICAgICAgIHt0aGlzLl9yZW5kZXJEcm9wZG93bihpbnRsKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG59XG5cbmNvbnN0IEl0ZW1TZWxlY3RvciA9IFJlYWN0Lm1lbW8oSXRlbVNlbGVjdG9yVW5tZW1vaXplZCk7XG5JdGVtU2VsZWN0b3IuZGlzcGxheU5hbWUgPSAnSXRlbVNlbGVjdG9yJztcblxuZXhwb3J0IGRlZmF1bHQgaW5qZWN0SW50bChJdGVtU2VsZWN0b3Ip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LEVBQUUsSUFBSSxDQUFDOUUsS0FBSyxDQUFDOEUsV0FBWTtRQUNwQ2tDLFVBQVUsRUFBRSxJQUFJLENBQUNDLFdBQVk7UUFDN0JDLFlBQVksRUFBRSxJQUFJLENBQUNsSCxLQUFLLENBQUNrSCxZQUFhO1FBQ3RDQyx1QkFBdUIsRUFBRSxJQUFJLENBQUNuSCxLQUFLLENBQUNtSCx1QkFBd0I7UUFDNURyQixVQUFVLEVBQUVBO01BQVcsRUFDeEIsQ0FBQyxnQkFFRm5KLE1BQUEsWUFBQXNILGFBQUEsQ0FBQ3ZHLGVBQUEsV0FBYyxNQUFBcUosU0FBQSxpQkFDVFosbUJBQW1CO1FBQ3ZCbEQsS0FBSyxFQUFFK0MsUUFBUSxDQUFDLENBQUMsQ0FBRTtRQUNuQmxCLFdBQVcsRUFBRSxJQUFJLENBQUM5RSxLQUFLLENBQUM4RSxXQUFZO1FBQ3BDc0MsUUFBUSxFQUFFLElBQUksQ0FBQ3BILEtBQUssQ0FBQ29ILFFBQVM7UUFDOUJDLFNBQVMsRUFBRSxJQUFJLENBQUNySCxLQUFLLENBQUNxSCxTQUFVO1FBQ2hDQyxPQUFPLEVBQUUsSUFBSSxDQUFDQyxRQUFTO1FBQ3ZCQyxZQUFZLEVBQUUsSUFBSSxDQUFDaEIsY0FBZTtRQUNsQ2YsK0JBQStCLEVBQUUsSUFBSSxDQUFDekYsS0FBSyxDQUFDeUY7TUFBZ0MsRUFDN0UsQ0FDRixFQUVBLElBQUksQ0FBQzlCLGVBQWUsQ0FBQ0MsSUFBSSxDQUN2QixDQUNGLENBQUM7SUFFVjtFQUFDO0FBQUEsRUFsTmtDNkQsZ0JBQVM7QUFBQSxJQUFBMUcsZ0JBQUEsYUFBeENYLHNCQUFzQixrQkFDSjtFQUNwQnNDLFdBQVcsRUFBRSxJQUFJO0VBQ2pCb0MsV0FBVyxFQUFFLHdCQUF3QjtFQUNyQzNDLGFBQWEsRUFBRSxJQUFJO0VBQ25CdUQsVUFBVSxFQUFFLElBQUk7RUFDaEJMLHVCQUF1QixFQUFFcUMsd0JBQVk7RUFDckNqQywrQkFBK0IsRUFBRWtDLHNCQUFRO0VBQ3pDM0Qsd0JBQXdCLEVBQUVwRSxlQUFlO0VBQ3pDc0gsWUFBWSxFQUFFVSxTQUFTO0VBQ3ZCeEIsU0FBUyxFQUFFO0FBQ2IsQ0FBQztBQTBNSCxJQUFNeUIsWUFBWSxnQkFBR0MsaUJBQUssQ0FBQ0MsSUFBSSxDQUFDM0gsc0JBQXNCLENBQUM7QUFDdkR5SCxZQUFZLENBQUNHLFdBQVcsR0FBRyxjQUFjO0FBQUMsSUFBQUMsUUFBQSxHQUFBQyxPQUFBLGNBRTNCLElBQUFDLHFCQUFVLEVBQUNOLFlBQVksQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
255
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbG9kYXNoIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfYWNjZXNzb3IiLCJfY2hpY2tsZXRlZElucHV0IiwiX3R5cGVhaGVhZCIsIl9kcm9wZG93bkxpc3QiLCJfcG9ydGFsZWQiLCJfdXRpbHMiLCJfY29tbW9uVXRpbHMiLCJfcmVhY3RJbnRsIiwiX2Ryb3Bkb3duU2VsZWN0IiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX3RlbXBsYXRlT2JqZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2NhbGxTdXBlciIsIm8iLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJEcm9wZG93bldyYXBwZXIiLCJzdHlsZWQiLCJkaXYiLCJ3aXRoQ29uZmlnIiwic2hvdWxkRm9yd2FyZFByb3AiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJkcm9wZG93bldyYXBwZXJaIiwid2lkdGgiLCJJdGVtU2VsZWN0b3JVbm1lbW9pemVkIiwiX0NvbXBvbmVudCIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiY29uY2F0IiwiX2RlZmluZVByb3BlcnR5MiIsInNob3dUeXBlYWhlYWQiLCJkaW1lbnNpb25zIiwiY3JlYXRlUmVmIiwiX2hpZGVUeXBlYWhlYWQiLCJzZXRTdGF0ZSIsIl9vbkJsdXIiLCJvbkJsdXIiLCJpdGVtIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJtdWx0aVNlbGVjdGVkSXRlbXMiLCJ0b0FycmF5Iiwic2VsZWN0ZWRJdGVtcyIsImluZGV4IiwiZmluZEluZGV4IiwiaXRlbXMiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwic2xpY2UiLCJvbkNoYW5nZSIsImNsb3NlT25TZWxlY3QiLCJnZXRWYWx1ZSIsIkFjY2Vzc29yIiwiZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0ZvciIsImdldE9wdGlvblZhbHVlIiwiZGlzcGxheU9wdGlvbiIsInByZXZpb3VzU2VsZWN0ZWQiLCJtdWx0aVNlbGVjdCIsInVuaXFCeSIsImRpc2FibGVkIiwib25PcGVuIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJ2YWx1ZSIsImNvbXBvbmVudERpZE1vdW50Iiwic2hvd0Ryb3Bkb3duT25Nb3VudCIsInJvb3QiLCJjdXJyZW50IiwiSFRNTEVsZW1lbnQiLCJvYnNlcnZlRGltZW5zaW9ucyIsIl9oYW5kbGVSZXNpemUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsInVub2JzZXJ2ZURpbWVuc2lvbnMiLCJfcmVuZGVyRHJvcGRvd24iLCJpbnRsIiwiX3RoaXMkcHJvcHMkcGxhY2VtZW50IiwicGxhY2VtZW50Iiwic3RhdGUiLCJEcm9wRG93bldyYXBwZXJDb21wb25lbnQiLCJjcmVhdGVFbGVtZW50IiwibGVmdCIsInRvcCIsImlzT3BlbmVkIiwib25DbG9zZSIsImN1c3RvbUNsYXNzZXMiLCJyZXN1bHRzIiwiaW5wdXQiLCJsaXN0SXRlbSIsImxpc3RBbmNob3IiLCJvcHRpb25zIiwiZmlsdGVyT3B0aW9uIiwiZml4ZWRPcHRpb25zIiwicGxhY2Vob2xkZXIiLCJ0eXBlYWhlYWRQbGFjZWhvbGRlciIsImZvcm1hdE1lc3NhZ2UiLCJpZCIsIm9uT3B0aW9uU2VsZWN0ZWQiLCJfc2VsZWN0SXRlbSIsImN1c3RvbUxpc3RDb21wb25lbnQiLCJEcm9wRG93blJlbmRlckNvbXBvbmVudCIsImN1c3RvbUxpc3RIZWFkZXJDb21wb25lbnQiLCJEcm9wZG93bkhlYWRlckNvbXBvbmVudCIsImN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IiwiRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudCIsInNlYXJjaGFibGUiLCJzZWFyY2hPcHRpb25zIiwic2hvd09wdGlvbnNXaGVuRW1wdHkiLCJsaWdodCIsImlucHV0VGhlbWUiLCJyZW5kZXIiLCJzZWxlY3RlZCIsIl90aGlzJHByb3BzIiwiX3RoaXMkcHJvcHMkaW5wdXRUaGVtIiwiZHJvcGRvd25TZWxlY3RQcm9wcyIsImNsYXNzTmFtZSIsImNsYXNzbmFtZXMiLCJhY3RpdmUiLCJvbkNsaWNrIiwiX3Nob3dUeXBlYWhlYWQiLCJlcnJvciIsImlzRXJyb3IiLCJzaXplIiwicmVmIiwic3R5bGUiLCJwb3NpdGlvbiIsIl9leHRlbmRzMiIsInJlbW92ZUl0ZW0iLCJfcmVtb3ZlSXRlbSIsInJlb3JkZXJJdGVtcyIsIkN1c3RvbUNoaWNrbGV0Q29tcG9uZW50IiwiZXJhc2FibGUiLCJzaG93QXJyb3ciLCJvbkVyYXNlIiwiX29uRXJhc2UiLCJzaG93RHJvcGRvd24iLCJDb21wb25lbnQiLCJEcm9wZG93bkxpc3QiLCJMaXN0SXRlbSIsInVuZGVmaW5lZCIsIkl0ZW1TZWxlY3RvciIsIlJlYWN0IiwibWVtbyIsImRpc3BsYXlOYW1lIiwiX2RlZmF1bHQiLCJleHBvcnRzIiwiaW5qZWN0SW50bCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vaXRlbS1zZWxlY3Rvci9pdGVtLXNlbGVjdG9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnQsIGNyZWF0ZVJlZiwgQ29tcG9uZW50VHlwZSwgTW91c2VFdmVudEhhbmRsZXIsIFJlZk9iamVjdH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgdW5pcUJ5IGZyb20gJ2xvZGFzaC51bmlxYnknO1xuaW1wb3J0IHN0eWxlZCwge0lTdHlsZWRDb21wb25lbnR9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IEFjY2Vzc29yIGZyb20gJy4vYWNjZXNzb3InO1xuaW1wb3J0IENoaWNrbGV0ZWRJbnB1dCBmcm9tICcuL2NoaWNrbGV0ZWQtaW5wdXQnO1xuaW1wb3J0IFR5cGVhaGVhZCBmcm9tICcuL3R5cGVhaGVhZCc7XG5pbXBvcnQgRHJvcGRvd25MaXN0LCB7TGlzdEl0ZW19IGZyb20gJy4vZHJvcGRvd24tbGlzdCc7XG5pbXBvcnQgUG9ydGFsZWQgZnJvbSAnLi4vLi4vY29tbW9uL3BvcnRhbGVkJztcbmltcG9ydCB7b2JzZXJ2ZURpbWVuc2lvbnMsIHVub2JzZXJ2ZURpbWVuc2lvbnN9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHt0b0FycmF5fSBmcm9tICdAa2VwbGVyLmdsL2NvbW1vbi11dGlscyc7XG5pbXBvcnQge2luamVjdEludGwsIEludGxTaGFwZX0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge0xpc3RJdGVtUHJvcHN9IGZyb20gJy4vZHJvcGRvd24tc2VsZWN0JztcbmltcG9ydCBEcm9wZG93blNlbGVjdCBmcm9tICcuL2Ryb3Bkb3duLXNlbGVjdCc7XG5pbXBvcnQge3Nob3VsZEZvcndhcmRQcm9wfSBmcm9tICcuLi9zdHlsZWQtY29tcG9uZW50cyc7XG5cbmV4cG9ydCB0eXBlIERyb3Bkb3duV3JhcHBlclByb3BzID0ge1xuICBwbGFjZW1lbnQ/OiBzdHJpbmc7XG4gIHdpZHRoOiBudW1iZXI7XG59O1xuXG5jb25zdCBEcm9wZG93bldyYXBwZXI6IElTdHlsZWRDb21wb25lbnQ8J3dlYicsIERyb3Bkb3duV3JhcHBlclByb3BzPiA9IHN0eWxlZC5kaXYud2l0aENvbmZpZyh7XG4gIHNob3VsZEZvcndhcmRQcm9wXG59KTxEcm9wZG93bldyYXBwZXJQcm9wcz5gXG4gIGJvcmRlcjogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25XcmFwcGVyWn07XG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLndpZHRofXB4O1xuYDtcblxuZXhwb3J0IHR5cGUgSXRlbVNlbGVjdG9yUHJvcHM8T3B0aW9uPiA9IHtcbiAgc2VsZWN0ZWRJdGVtcz86IFJlYWRvbmx5QXJyYXk8T3B0aW9uPiB8IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBvYmplY3QgfCBudWxsO1xuICBvcHRpb25zOiBSZWFkb25seUFycmF5PE9wdGlvbj47XG4gIG9uQ2hhbmdlOiAoaXRlbXM6IFJlYWRvbmx5QXJyYXk8T3B0aW9uPiB8IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBvYmplY3QgfCBudWxsKSA9PiB2b2lkO1xuICBmaXhlZE9wdGlvbnM/OiBSZWFkb25seUFycmF5PE9wdGlvbj4gfCBudWxsO1xuICBlcmFzYWJsZT86IGJvb2xlYW47XG4gIHNob3dBcnJvdz86IGJvb2xlYW47XG4gIHNlYXJjaE9wdGlvbnM/OiAodmFsdWU6IGFueSwgb3B0OiBPcHRpb24pID0+IGFueTtcbiAgc2VhcmNoYWJsZT86IGJvb2xlYW47XG4gIGRpc3BsYXlPcHRpb24/OiBzdHJpbmcgfCAoKG9wdDogT3B0aW9uKSA9PiBzdHJpbmcpO1xuICBnZXRPcHRpb25WYWx1ZT86IHN0cmluZyB8ICgob3B0OiBPcHRpb24pID0+IGFueSk7XG4gIGZpbHRlck9wdGlvbj86IHN0cmluZyB8ICgob3B0OiBPcHRpb24pID0+IGJvb2xlYW4pO1xuICBwbGFjZW1lbnQ/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgaXNFcnJvcj86IGJvb2xlYW47XG4gIG11bHRpU2VsZWN0PzogYm9vbGVhbjtcbiAgaW5wdXRUaGVtZT86IHN0cmluZztcbiAgb25PcGVuPzogKCkgPT4gdm9pZDtcbiAgc2l6ZT86IHN0cmluZztcbiAgb25CbHVyPzogKCkgPT4gdm9pZDtcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIGNsb3NlT25TZWxlY3Q/OiBib29sZWFuO1xuICB0eXBlYWhlYWRQbGFjZWhvbGRlcj86IHN0cmluZztcbiAgRHJvcERvd25XcmFwcGVyQ29tcG9uZW50PzogQ29tcG9uZW50VHlwZTxhbnk+IHwgbnVsbDtcbiAgRHJvcGRvd25IZWFkZXJDb21wb25lbnQ/OiBDb21wb25lbnRUeXBlPGFueT4gfCBudWxsO1xuICBEcm9wRG93blJlbmRlckNvbXBvbmVudD86IENvbXBvbmVudFR5cGU8YW55PjtcbiAgRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudD86IENvbXBvbmVudFR5cGU8TGlzdEl0ZW1Qcm9wczxPcHRpb24+PjtcbiAgQ3VzdG9tQ2hpY2tsZXRDb21wb25lbnQ/OiBDb21wb25lbnRUeXBlPGFueT47XG4gIGludGw6IEludGxTaGFwZTtcbiAgY2xhc3NOYW1lPzogc3RyaW5nO1xuICByZW9yZGVySXRlbXM/OiAobmV3T3JkZXI6IGFueSkgPT4gdm9pZDtcbiAgc2hvd0Ryb3Bkb3duT25Nb3VudD86IGJvb2xlYW47XG59O1xuXG5jbGFzcyBJdGVtU2VsZWN0b3JVbm1lbW9pemVkIGV4dGVuZHMgQ29tcG9uZW50PEl0ZW1TZWxlY3RvclByb3BzPGFueT4+IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBtdWx0aVNlbGVjdDogdHJ1ZSxcbiAgICBwbGFjZWhvbGRlcjogJ3BsYWNlaG9sZGVyLmVudGVyVmFsdWUnLFxuICAgIGNsb3NlT25TZWxlY3Q6IHRydWUsXG4gICAgc2VhcmNoYWJsZTogdHJ1ZSxcbiAgICBEcm9wRG93blJlbmRlckNvbXBvbmVudDogRHJvcGRvd25MaXN0LFxuICAgIERyb3BEb3duTGluZUl0ZW1SZW5kZXJDb21wb25lbnQ6IExpc3RJdGVtLFxuICAgIERyb3BEb3duV3JhcHBlckNvbXBvbmVudDogRHJvcGRvd25XcmFwcGVyLFxuICAgIHJlb3JkZXJJdGVtczogdW5kZWZpbmVkLFxuICAgIGNsYXNzTmFtZTogJydcbiAgfTtcblxuICBzdGF0ZSA9IHtcbiAgICBzaG93VHlwZWFoZWFkOiBmYWxzZSxcbiAgICBkaW1lbnNpb25zOiB7XG4gICAgICB3aWR0aDogMjAwXG4gICAgfVxuICB9O1xuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGlmICh0aGlzLnByb3BzLnNob3dEcm9wZG93bk9uTW91bnQpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe3Nob3dUeXBlYWhlYWQ6IHRydWV9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5yb290LmN1cnJlbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgb2JzZXJ2ZURpbWVuc2lvbnModGhpcy5yb290LmN1cnJlbnQsIHRoaXMuX2hhbmRsZVJlc2l6ZSk7XG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgaWYgKHRoaXMucm9vdC5jdXJyZW50IGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHtcbiAgICAgIHVub2JzZXJ2ZURpbWVuc2lvbnModGhpcy5yb290LmN1cnJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJvb3Q6IFJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD4gPSBjcmVhdGVSZWYoKTtcblxuICBoYW5kbGVDbGlja091dHNpZGUgPSAoKSA9PiB7XG4gICAgdGhpcy5faGlkZVR5cGVhaGVhZCgpO1xuICB9O1xuXG4gIF9oYW5kbGVSZXNpemUgPSBkaW1lbnNpb25zID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHtkaW1lbnNpb25zfSk7XG4gIH07XG5cbiAgX2hpZGVUeXBlYWhlYWQgPSAoKSA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7c2hvd1R5cGVhaGVhZDogZmFsc2V9KTtcbiAgICB0aGlzLl9vbkJsdXIoKTtcbiAgfTtcblxuICBfb25CbHVyID0gKCkgPT4ge1xuICAgIC8vIG5vdGU6IGNoaWNrbGV0ZWQgaW5wdXQgaXMgbm90IGEgcmVhbCBmb3JtIGVsZW1lbnQgc28gd2UgY2FsbCBvbkJsdXIoKVxuICAgIC8vIHdoZW4gd2UgZmVlbCB0aGUgZXZlbnRzIGFyZSBhcHByb3ByaWF0ZVxuICAgIGlmICh0aGlzLnByb3BzLm9uQmx1cikge1xuICAgICAgdGhpcy5wcm9wcy5vbkJsdXIoKTtcbiAgICB9XG4gIH07XG5cbiAgX3JlbW92ZUl0ZW0gPSAoaXRlbSwgZSkgPT4ge1xuICAgIC8vIG9ubHkgdXNlZCB3aGVuIG11bHRpU2VsZWN0ID0gdHJ1ZVxuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGNvbnN0IG11bHRpU2VsZWN0ZWRJdGVtcyA9IHRvQXJyYXkodGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICBjb25zdCBpbmRleCA9IG11bHRpU2VsZWN0ZWRJdGVtcy5maW5kSW5kZXgodCA9PiB0ID09PSBpdGVtKTtcblxuICAgIGlmIChpbmRleCA8IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtcyA9IFtcbiAgICAgIC4uLm11bHRpU2VsZWN0ZWRJdGVtcy5zbGljZSgwLCBpbmRleCksXG4gICAgICAuLi5tdWx0aVNlbGVjdGVkSXRlbXMuc2xpY2UoaW5kZXggKyAxLCBtdWx0aVNlbGVjdGVkSXRlbXMubGVuZ3RoKVxuICAgIF07XG5cbiAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKGl0ZW1zKTtcblxuICAgIGlmICh0aGlzLnByb3BzLmNsb3NlT25TZWxlY3QpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe3Nob3dUeXBlYWhlYWQ6IGZhbHNlfSk7XG4gICAgICB0aGlzLl9vbkJsdXIoKTtcbiAgICB9XG4gIH07XG5cbiAgX3NlbGVjdEl0ZW0gPSBpdGVtID0+IHtcbiAgICBjb25zdCBnZXRWYWx1ZSA9IEFjY2Vzc29yLmdlbmVyYXRlT3B0aW9uVG9TdHJpbmdGb3IoXG4gICAgICB0aGlzLnByb3BzLmdldE9wdGlvblZhbHVlIHx8IHRoaXMucHJvcHMuZGlzcGxheU9wdGlvblxuICAgICk7XG5cbiAgICBjb25zdCBwcmV2aW91c1NlbGVjdGVkID0gdG9BcnJheSh0aGlzLnByb3BzLnNlbGVjdGVkSXRlbXMpO1xuXG4gICAgaWYgKHRoaXMucHJvcHMubXVsdGlTZWxlY3QpIHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gdW5pcUJ5KHByZXZpb3VzU2VsZWN0ZWQuY29uY2F0KHRvQXJyYXkoaXRlbSkpLCBnZXRWYWx1ZSk7XG4gICAgICB0aGlzLnByb3BzLm9uQ2hhbmdlKGl0ZW1zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZShnZXRWYWx1ZShpdGVtKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvcHMuY2xvc2VPblNlbGVjdCkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7c2hvd1R5cGVhaGVhZDogZmFsc2V9KTtcbiAgICAgIHRoaXMuX29uQmx1cigpO1xuICAgIH1cbiAgfTtcblxuICBfb25FcmFzZTogTW91c2VFdmVudEhhbmRsZXIgPSBlID0+IHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMucHJvcHMub25DaGFuZ2UobnVsbCk7XG4gIH07XG5cbiAgX3Nob3dUeXBlYWhlYWQ6IE1vdXNlRXZlbnRIYW5kbGVyID0gZSA9PiB7XG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoIXRoaXMucHJvcHMuZGlzYWJsZWQpIHtcbiAgICAgIGlmICh0aGlzLnByb3BzLm9uT3Blbikge1xuICAgICAgICB0aGlzLnByb3BzLm9uT3BlbigpO1xuICAgICAgfVxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIHNob3dUeXBlYWhlYWQ6IHRydWVcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBfcmVuZGVyRHJvcGRvd24oaW50bDogSW50bFNoYXBlKSB7XG4gICAgY29uc3Qge3BsYWNlbWVudCA9ICdib3R0b20nfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge2RpbWVuc2lvbnN9ID0gdGhpcy5zdGF0ZTtcblxuICAgIGNvbnN0IERyb3BEb3duV3JhcHBlckNvbXBvbmVudCA9IHRoaXMucHJvcHNcbiAgICAgIC5Ecm9wRG93bldyYXBwZXJDb21wb25lbnQgYXMgUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+O1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxQb3J0YWxlZCBsZWZ0PXswfSB0b3A9ezB9IGlzT3BlbmVkPXt0aGlzLnN0YXRlLnNob3dUeXBlYWhlYWR9IG9uQ2xvc2U9e3RoaXMuX2hpZGVUeXBlYWhlYWR9PlxuICAgICAgICA8RHJvcERvd25XcmFwcGVyQ29tcG9uZW50IHBsYWNlbWVudD17cGxhY2VtZW50fSB3aWR0aD17ZGltZW5zaW9ucz8ud2lkdGh9PlxuICAgICAgICAgIDxUeXBlYWhlYWRcbiAgICAgICAgICAgIGN1c3RvbUNsYXNzZXM9e3tcbiAgICAgICAgICAgICAgcmVzdWx0czogJ2xpc3Qtc2VsZWN0b3InLFxuICAgICAgICAgICAgICBpbnB1dDogJ3R5cGVhaGVhZF9faW5wdXQnLFxuICAgICAgICAgICAgICBsaXN0SXRlbTogJ2xpc3RfX2l0ZW0nLFxuICAgICAgICAgICAgICBsaXN0QW5jaG9yOiAnbGlzdF9faXRlbV9fYW5jaG9yJ1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9wdGlvbnM9e3RoaXMucHJvcHMub3B0aW9uc31cbiAgICAgICAgICAgIGZpbHRlck9wdGlvbj17dGhpcy5wcm9wcy5maWx0ZXJPcHRpb259XG4gICAgICAgICAgICBmaXhlZE9wdGlvbnM9e3RoaXMucHJvcHMuZml4ZWRPcHRpb25zfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9e1xuICAgICAgICAgICAgICB0aGlzLnByb3BzLnR5cGVhaGVhZFBsYWNlaG9sZGVyIHx8IGludGxcbiAgICAgICAgICAgICAgICA/IGludGwuZm9ybWF0TWVzc2FnZSh7aWQ6ICdwbGFjZWhvbGRlci5zZWFyY2gnfSlcbiAgICAgICAgICAgICAgICA6ICdTZWFyY2gnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvbk9wdGlvblNlbGVjdGVkPXt0aGlzLl9zZWxlY3RJdGVtfVxuICAgICAgICAgICAgY3VzdG9tTGlzdENvbXBvbmVudD17dGhpcy5wcm9wcy5Ecm9wRG93blJlbmRlckNvbXBvbmVudH1cbiAgICAgICAgICAgIGN1c3RvbUxpc3RIZWFkZXJDb21wb25lbnQ9e3RoaXMucHJvcHMuRHJvcGRvd25IZWFkZXJDb21wb25lbnR9XG4gICAgICAgICAgICBjdXN0b21MaXN0SXRlbUNvbXBvbmVudD17dGhpcy5wcm9wcy5Ecm9wRG93bkxpbmVJdGVtUmVuZGVyQ29tcG9uZW50fVxuICAgICAgICAgICAgZGlzcGxheU9wdGlvbj17QWNjZXNzb3IuZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0Zvcih0aGlzLnByb3BzLmRpc3BsYXlPcHRpb24pfVxuICAgICAgICAgICAgc2VhcmNoYWJsZT17dGhpcy5wcm9wcy5zZWFyY2hhYmxlfVxuICAgICAgICAgICAgc2VhcmNoT3B0aW9ucz17dGhpcy5wcm9wcy5zZWFyY2hPcHRpb25zfVxuICAgICAgICAgICAgc2hvd09wdGlvbnNXaGVuRW1wdHlcbiAgICAgICAgICAgIHNlbGVjdGVkSXRlbXM9e3RvQXJyYXkodGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zKX1cbiAgICAgICAgICAgIGxpZ2h0PXt0aGlzLnByb3BzLmlucHV0VGhlbWUgPT09ICdsaWdodCd9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Ecm9wRG93bldyYXBwZXJDb21wb25lbnQ+XG4gICAgICA8L1BvcnRhbGVkPlxuICAgICk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qgc2VsZWN0ZWQgPSB0b0FycmF5KHRoaXMucHJvcHMuc2VsZWN0ZWRJdGVtcyk7XG4gICAgY29uc3QgZGlzcGxheU9wdGlvbiA9IEFjY2Vzc29yLmdlbmVyYXRlT3B0aW9uVG9TdHJpbmdGb3IodGhpcy5wcm9wcy5kaXNwbGF5T3B0aW9uKTtcbiAgICBjb25zdCB7ZGlzYWJsZWQsIGlucHV0VGhlbWUgPSAncHJpbWFyeSd9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IGRyb3Bkb3duU2VsZWN0UHJvcHMgPSB7XG4gICAgICBjbGFzc05hbWU6IGNsYXNzbmFtZXMoe1xuICAgICAgICBhY3RpdmU6IHRoaXMuc3RhdGUuc2hvd1R5cGVhaGVhZFxuICAgICAgfSksXG4gICAgICBkaXNwbGF5T3B0aW9uLFxuICAgICAgZGlzYWJsZWQsXG4gICAgICBvbkNsaWNrOiB0aGlzLl9zaG93VHlwZWFoZWFkLFxuICAgICAgZXJyb3I6IHRoaXMucHJvcHMuaXNFcnJvcixcbiAgICAgIGlucHV0VGhlbWUsXG4gICAgICBzaXplOiB0aGlzLnByb3BzLnNpemVcbiAgICB9O1xuICAgIGNvbnN0IGludGwgPSB0aGlzLnByb3BzLmludGw7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2l0ZW0tc2VsZWN0b3InLCB0aGlzLnByb3BzLmNsYXNzTmFtZSl9IHJlZj17dGhpcy5yb290fT5cbiAgICAgICAgPGRpdiBzdHlsZT17e3Bvc2l0aW9uOiAncmVsYXRpdmUnfX0+XG4gICAgICAgICAgey8qIHRoaXMgcGFydCBpcyB1c2VkIHRvIGRpc3BsYXkgdGhlIGxhYmVsICovfVxuICAgICAgICAgIHt0aGlzLnByb3BzLm11bHRpU2VsZWN0ID8gKFxuICAgICAgICAgICAgPENoaWNrbGV0ZWRJbnB1dFxuICAgICAgICAgICAgICB7Li4uZHJvcGRvd25TZWxlY3RQcm9wc31cbiAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcz17dG9BcnJheSh0aGlzLnByb3BzLnNlbGVjdGVkSXRlbXMpfVxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj17dGhpcy5wcm9wcy5wbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgcmVtb3ZlSXRlbT17dGhpcy5fcmVtb3ZlSXRlbX1cbiAgICAgICAgICAgICAgcmVvcmRlckl0ZW1zPXt0aGlzLnByb3BzLnJlb3JkZXJJdGVtc31cbiAgICAgICAgICAgICAgQ3VzdG9tQ2hpY2tsZXRDb21wb25lbnQ9e3RoaXMucHJvcHMuQ3VzdG9tQ2hpY2tsZXRDb21wb25lbnR9XG4gICAgICAgICAgICAgIGlucHV0VGhlbWU9e2lucHV0VGhlbWV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8RHJvcGRvd25TZWxlY3RcbiAgICAgICAgICAgICAgey4uLmRyb3Bkb3duU2VsZWN0UHJvcHN9XG4gICAgICAgICAgICAgIHZhbHVlPXtzZWxlY3RlZFswXX1cbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3RoaXMucHJvcHMucGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgIGVyYXNhYmxlPXt0aGlzLnByb3BzLmVyYXNhYmxlfVxuICAgICAgICAgICAgICBzaG93QXJyb3c9e3RoaXMucHJvcHMuc2hvd0Fycm93fVxuICAgICAgICAgICAgICBvbkVyYXNlPXt0aGlzLl9vbkVyYXNlfVxuICAgICAgICAgICAgICBzaG93RHJvcGRvd249e3RoaXMuX3Nob3dUeXBlYWhlYWR9XG4gICAgICAgICAgICAgIERyb3BEb3duTGluZUl0ZW1SZW5kZXJDb21wb25lbnQ9e3RoaXMucHJvcHMuRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7LyogdGhpcyBwYXJ0IGlzIHVzZWQgdG8gYnVpbHQgdGhlIGxpc3QgKi99XG4gICAgICAgICAge3RoaXMuX3JlbmRlckRyb3Bkb3duKGludGwpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuY29uc3QgSXRlbVNlbGVjdG9yID0gUmVhY3QubWVtbyhJdGVtU2VsZWN0b3JVbm1lbW9pemVkKTtcbkl0ZW1TZWxlY3Rvci5kaXNwbGF5TmFtZSA9ICdJdGVtU2VsZWN0b3InO1xuXG5leHBvcnQgZGVmYXVsdCBpbmplY3RJbnRsKEl0ZW1TZWxlY3Rvcik7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksaUJBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFLLFNBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFNLGdCQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxVQUFBLEdBQUFMLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUSxhQUFBLEdBQUFULHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxTQUFBLEdBQUFQLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBVSxNQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxZQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxVQUFBLEdBQUFaLE9BQUE7QUFFQSxJQUFBYSxlQUFBLEdBQUFYLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBYyxrQkFBQSxHQUFBZCxPQUFBO0FBQXVELElBQUFlLGVBQUEsRUFsQnZEO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQWxCLHdCQUFBa0IsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBaEIsQ0FBQSxFQUFBYyxDQUFBLFNBQUFHLENBQUEsR0FBQVAsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQWMsQ0FBQSxVQUFBRyxDQUFBLEtBQUFBLENBQUEsQ0FBQVYsR0FBQSxJQUFBVSxDQUFBLENBQUFDLEdBQUEsSUFBQVAsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBRyxDQUFBLElBQUFULENBQUEsQ0FBQU0sQ0FBQSxJQUFBZCxDQUFBLENBQUFjLENBQUEsWUFBQU4sQ0FBQSxjQUFBUixDQUFBLEVBQUFHLENBQUEsSUFBQUEsQ0FBQSxDQUFBZSxHQUFBLENBQUFsQixDQUFBLEVBQUFRLENBQUEsR0FBQUEsQ0FBQTtBQUFBLFNBQUFXLFdBQUFoQixDQUFBLEVBQUFpQixDQUFBLEVBQUFwQixDQUFBLFdBQUFvQixDQUFBLE9BQUFDLGdCQUFBLGFBQUFELENBQUEsT0FBQUUsMkJBQUEsYUFBQW5CLENBQUEsRUFBQW9CLHlCQUFBLEtBQUFDLE9BQUEsQ0FBQUMsU0FBQSxDQUFBTCxDQUFBLEVBQUFwQixDQUFBLFlBQUFxQixnQkFBQSxhQUFBbEIsQ0FBQSxFQUFBdUIsV0FBQSxJQUFBTixDQUFBLENBQUFPLEtBQUEsQ0FBQXhCLENBQUEsRUFBQUgsQ0FBQTtBQUFBLFNBQUF1QiwwQkFBQSxjQUFBcEIsQ0FBQSxJQUFBeUIsT0FBQSxDQUFBQyxTQUFBLENBQUFDLE9BQUEsQ0FBQWQsSUFBQSxDQUFBUSxPQUFBLENBQUFDLFNBQUEsQ0FBQUcsT0FBQSxpQ0FBQXpCLENBQUEsYUFBQW9CLHlCQUFBLFlBQUFBLDBCQUFBLGFBQUFwQixDQUFBO0FBd0JBLElBQU00QixlQUE4RCxHQUFHQyw0QkFBTSxDQUFDQyxHQUFHLENBQUNDLFVBQVUsQ0FBQztFQUMzRkMsaUJBQWlCLEVBQWpCQTtBQUNGLENBQUMsQ0FBQyxDQUFBckMsZUFBQSxLQUFBQSxlQUFBLE9BQUFzQyx1QkFBQSxxR0FJVyxVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNDLGdCQUFnQjtBQUFBLEdBQ3ZDLFVBQUFGLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNHLEtBQUs7QUFBQSxFQUM5QjtBQUFDLElBb0NJQyxzQkFBc0IsMEJBQUFDLFVBQUE7RUFBQSxTQUFBRCx1QkFBQTtJQUFBLElBQUFFLEtBQUE7SUFBQSxJQUFBQyxnQkFBQSxtQkFBQUgsc0JBQUE7SUFBQSxTQUFBSSxJQUFBLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxFQUFBQyxJQUFBLE9BQUFDLEtBQUEsQ0FBQUosSUFBQSxHQUFBSyxJQUFBLE1BQUFBLElBQUEsR0FBQUwsSUFBQSxFQUFBSyxJQUFBO01BQUFGLElBQUEsQ0FBQUUsSUFBQSxJQUFBSixTQUFBLENBQUFJLElBQUE7SUFBQTtJQUFBUCxLQUFBLEdBQUF4QixVQUFBLE9BQUFzQixzQkFBQSxLQUFBVSxNQUFBLENBQUFILElBQUE7SUFBQSxJQUFBSSxnQkFBQSxhQUFBVCxLQUFBLFdBYWxCO01BQ05VLGFBQWEsRUFBRSxLQUFLO01BQ3BCQyxVQUFVLEVBQUU7UUFDVmQsS0FBSyxFQUFFO01BQ1Q7SUFDRixDQUFDO0lBQUEsSUFBQVksZ0JBQUEsYUFBQVQsS0FBQSx1QkFrQmlDLElBQUFZLGdCQUFTLEVBQUMsQ0FBQztJQUFBLElBQUFILGdCQUFBLGFBQUFULEtBQUEsd0JBRXhCLFlBQU07TUFDekJBLEtBQUEsQ0FBS2EsY0FBYyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUFBLElBQUFKLGdCQUFBLGFBQUFULEtBQUEsbUJBRWUsVUFBQVcsVUFBVSxFQUFJO01BQzVCWCxLQUFBLENBQUtjLFFBQVEsQ0FBQztRQUFDSCxVQUFVLEVBQVZBO01BQVUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFBQSxJQUFBRixnQkFBQSxhQUFBVCxLQUFBLG9CQUVnQixZQUFNO01BQ3JCQSxLQUFBLENBQUtjLFFBQVEsQ0FBQztRQUFDSixhQUFhLEVBQUU7TUFBSyxDQUFDLENBQUM7TUFDckNWLEtBQUEsQ0FBS2UsT0FBTyxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUFBLElBQUFOLGdCQUFBLGFBQUFULEtBQUEsYUFFUyxZQUFNO01BQ2Q7TUFDQTtNQUNBLElBQUlBLEtBQUEsQ0FBS04sS0FBSyxDQUFDc0IsTUFBTSxFQUFFO1FBQ3JCaEIsS0FBQSxDQUFLTixLQUFLLENBQUNzQixNQUFNLENBQUMsQ0FBQztNQUNyQjtJQUNGLENBQUM7SUFBQSxJQUFBUCxnQkFBQSxhQUFBVCxLQUFBLGlCQUVhLFVBQUNpQixJQUFJLEVBQUU1RCxDQUFDLEVBQUs7TUFDekI7TUFDQUEsQ0FBQyxDQUFDNkQsY0FBYyxDQUFDLENBQUM7TUFDbEI3RCxDQUFDLENBQUM4RCxlQUFlLENBQUMsQ0FBQztNQUNuQixJQUFNQyxrQkFBa0IsR0FBRyxJQUFBQyxvQkFBTyxFQUFDckIsS0FBQSxDQUFLTixLQUFLLENBQUM0QixhQUFhLENBQUM7TUFDNUQsSUFBTUMsS0FBSyxHQUFHSCxrQkFBa0IsQ0FBQ0ksU0FBUyxDQUFDLFVBQUFoRSxDQUFDO1FBQUEsT0FBSUEsQ0FBQyxLQUFLeUQsSUFBSTtNQUFBLEVBQUM7TUFFM0QsSUFBSU0sS0FBSyxHQUFHLENBQUMsRUFBRTtRQUNiO01BQ0Y7TUFFQSxJQUFNRSxLQUFLLE1BQUFqQixNQUFBLEtBQUFrQixtQkFBQSxhQUNOTixrQkFBa0IsQ0FBQ08sS0FBSyxDQUFDLENBQUMsRUFBRUosS0FBSyxDQUFDLE9BQUFHLG1CQUFBLGFBQ2xDTixrQkFBa0IsQ0FBQ08sS0FBSyxDQUFDSixLQUFLLEdBQUcsQ0FBQyxFQUFFSCxrQkFBa0IsQ0FBQ2hCLE1BQU0sQ0FBQyxFQUNsRTtNQUVESixLQUFBLENBQUtOLEtBQUssQ0FBQ2tDLFFBQVEsQ0FBQ0gsS0FBSyxDQUFDO01BRTFCLElBQUl6QixLQUFBLENBQUtOLEtBQUssQ0FBQ21DLGFBQWEsRUFBRTtRQUM1QjdCLEtBQUEsQ0FBS2MsUUFBUSxDQUFDO1VBQUNKLGFBQWEsRUFBRTtRQUFLLENBQUMsQ0FBQztRQUNyQ1YsS0FBQSxDQUFLZSxPQUFPLENBQUMsQ0FBQztNQUNoQjtJQUNGLENBQUM7SUFBQSxJQUFBTixnQkFBQSxhQUFBVCxLQUFBLGlCQUVhLFVBQUFpQixJQUFJLEVBQUk7TUFDcEIsSUFBTWEsUUFBUSxHQUFHQyxvQkFBUSxDQUFDQyx5QkFBeUIsQ0FDakRoQyxLQUFBLENBQUtOLEtBQUssQ0FBQ3VDLGNBQWMsSUFBSWpDLEtBQUEsQ0FBS04sS0FBSyxDQUFDd0MsYUFDMUMsQ0FBQztNQUVELElBQU1DLGdCQUFnQixHQUFHLElBQUFkLG9CQUFPLEVBQUNyQixLQUFBLENBQUtOLEtBQUssQ0FBQzRCLGFBQWEsQ0FBQztNQUUxRCxJQUFJdEIsS0FBQSxDQUFLTixLQUFLLENBQUMwQyxXQUFXLEVBQUU7UUFDMUIsSUFBTVgsS0FBSyxHQUFHLElBQUFZLGtCQUFNLEVBQUNGLGdCQUFnQixDQUFDM0IsTUFBTSxDQUFDLElBQUFhLG9CQUFPLEVBQUNKLElBQUksQ0FBQyxDQUFDLEVBQUVhLFFBQVEsQ0FBQztRQUN0RTlCLEtBQUEsQ0FBS04sS0FBSyxDQUFDa0MsUUFBUSxDQUFDSCxLQUFLLENBQUM7TUFDNUIsQ0FBQyxNQUFNO1FBQ0x6QixLQUFBLENBQUtOLEtBQUssQ0FBQ2tDLFFBQVEsQ0FBQ0UsUUFBUSxDQUFDYixJQUFJLENBQUMsQ0FBQztNQUNyQztNQUVBLElBQUlqQixLQUFBLENBQUtOLEtBQUssQ0FBQ21DLGFBQWEsRUFBRTtRQUM1QjdCLEtBQUEsQ0FBS2MsUUFBUSxDQUFDO1VBQUNKLGFBQWEsRUFBRTtRQUFLLENBQUMsQ0FBQztRQUNyQ1YsS0FBQSxDQUFLZSxPQUFPLENBQUMsQ0FBQztNQUNoQjtJQUNGLENBQUM7SUFBQSxJQUFBTixnQkFBQSxhQUFBVCxLQUFBLGNBRTZCLFVBQUEzQyxDQUFDLEVBQUk7TUFDakNBLENBQUMsQ0FBQzhELGVBQWUsQ0FBQyxDQUFDO01BQ25CbkIsS0FBQSxDQUFLTixLQUFLLENBQUNrQyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFBQSxJQUFBbkIsZ0JBQUEsYUFBQVQsS0FBQSxvQkFFbUMsVUFBQTNDLENBQUMsRUFBSTtNQUN2Q0EsQ0FBQyxDQUFDOEQsZUFBZSxDQUFDLENBQUM7TUFDbkIsSUFBSSxDQUFDbkIsS0FBQSxDQUFLTixLQUFLLENBQUM0QyxRQUFRLEVBQUU7UUFDeEIsSUFBSXRDLEtBQUEsQ0FBS04sS0FBSyxDQUFDNkMsTUFBTSxFQUFFO1VBQ3JCdkMsS0FBQSxDQUFLTixLQUFLLENBQUM2QyxNQUFNLENBQUMsQ0FBQztRQUNyQjtRQUNBdkMsS0FBQSxDQUFLYyxRQUFRLENBQUM7VUFDWkosYUFBYSxFQUFFO1FBQ2pCLENBQUMsQ0FBQztNQUNKO0lBQ0YsQ0FBQztJQUFBLE9BQUFWLEtBQUE7RUFBQTtFQUFBLElBQUF3QyxVQUFBLGFBQUExQyxzQkFBQSxFQUFBQyxVQUFBO0VBQUEsV0FBQTBDLGFBQUEsYUFBQTNDLHNCQUFBO0lBQUE0QyxHQUFBO0lBQUFDLEtBQUEsRUFsR0QsU0FBQUMsaUJBQWlCQSxDQUFBLEVBQUc7TUFDbEIsSUFBSSxJQUFJLENBQUNsRCxLQUFLLENBQUNtRCxtQkFBbUIsRUFBRTtRQUNsQyxJQUFJLENBQUMvQixRQUFRLENBQUM7VUFBQ0osYUFBYSxFQUFFO1FBQUksQ0FBQyxDQUFDO01BQ3RDO01BRUEsSUFBSSxJQUFJLENBQUNvQyxJQUFJLENBQUNDLE9BQU8sWUFBWUMsV0FBVyxFQUFFO1FBQzVDLElBQUFDLHdCQUFpQixFQUFDLElBQUksQ0FBQ0gsSUFBSSxDQUFDQyxPQUFPLEVBQUUsSUFBSSxDQUFDRyxhQUFhLENBQUM7TUFDMUQ7SUFDRjtFQUFDO0lBQUFSLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQUFRLG9CQUFvQkEsQ0FBQSxFQUFHO01BQ3JCLElBQUksSUFBSSxDQUFDTCxJQUFJLENBQUNDLE9BQU8sWUFBWUMsV0FBVyxFQUFFO1FBQzVDLElBQUFJLDBCQUFtQixFQUFDLElBQUksQ0FBQ04sSUFBSSxDQUFDQyxPQUFPLENBQUM7TUFDeEM7SUFDRjtFQUFDO0lBQUFMLEdBQUE7SUFBQUMsS0FBQSxFQXNGRCxTQUFBVSxlQUFlQSxDQUFDQyxJQUFlLEVBQUU7TUFDL0IsSUFBQUMscUJBQUEsR0FBK0IsSUFBSSxDQUFDN0QsS0FBSyxDQUFsQzhELFNBQVM7UUFBVEEsU0FBUyxHQUFBRCxxQkFBQSxjQUFHLFFBQVEsR0FBQUEscUJBQUE7TUFDM0IsSUFBTzVDLFVBQVUsR0FBSSxJQUFJLENBQUM4QyxLQUFLLENBQXhCOUMsVUFBVTtNQUVqQixJQUFNK0Msd0JBQXdCLEdBQUcsSUFBSSxDQUFDaEUsS0FBSyxDQUN4Q2dFLHdCQUFvRDtNQUV2RCxvQkFDRXhILE1BQUEsWUFBQXlILGFBQUEsQ0FBQzlHLFNBQUEsV0FBUTtRQUFDK0csSUFBSSxFQUFFLENBQUU7UUFBQ0MsR0FBRyxFQUFFLENBQUU7UUFBQ0MsUUFBUSxFQUFFLElBQUksQ0FBQ0wsS0FBSyxDQUFDL0MsYUFBYztRQUFDcUQsT0FBTyxFQUFFLElBQUksQ0FBQ2xEO01BQWUsZ0JBQzFGM0UsTUFBQSxZQUFBeUgsYUFBQSxDQUFDRCx3QkFBd0I7UUFBQ0YsU0FBUyxFQUFFQSxTQUFVO1FBQUMzRCxLQUFLLEVBQUVjLFVBQVUsYUFBVkEsVUFBVSx1QkFBVkEsVUFBVSxDQUFFZDtNQUFNLGdCQUN2RTNELE1BQUEsWUFBQXlILGFBQUEsQ0FBQ2hILFVBQUEsV0FBUztRQUNScUgsYUFBYSxFQUFFO1VBQ2JDLE9BQU8sRUFBRSxlQUFlO1VBQ3hCQyxLQUFLLEVBQUUsa0JBQWtCO1VBQ3pCQyxRQUFRLEVBQUUsWUFBWTtVQUN0QkMsVUFBVSxFQUFFO1FBQ2QsQ0FBRTtRQUNGQyxPQUFPLEVBQUUsSUFBSSxDQUFDM0UsS0FBSyxDQUFDMkUsT0FBUTtRQUM1QkMsWUFBWSxFQUFFLElBQUksQ0FBQzVFLEtBQUssQ0FBQzRFLFlBQWE7UUFDdENDLFlBQVksRUFBRSxJQUFJLENBQUM3RSxLQUFLLENBQUM2RSxZQUFhO1FBQ3RDQyxXQUFXLEVBQ1QsSUFBSSxDQUFDOUUsS0FBSyxDQUFDK0Usb0JBQW9CLElBQUluQixJQUFJLEdBQ25DQSxJQUFJLENBQUNvQixhQUFhLENBQUM7VUFBQ0MsRUFBRSxFQUFFO1FBQW9CLENBQUMsQ0FBQyxHQUM5QyxRQUNMO1FBQ0RDLGdCQUFnQixFQUFFLElBQUksQ0FBQ0MsV0FBWTtRQUNuQ0MsbUJBQW1CLEVBQUUsSUFBSSxDQUFDcEYsS0FBSyxDQUFDcUYsdUJBQXdCO1FBQ3hEQyx5QkFBeUIsRUFBRSxJQUFJLENBQUN0RixLQUFLLENBQUN1Rix1QkFBd0I7UUFDOURDLHVCQUF1QixFQUFFLElBQUksQ0FBQ3hGLEtBQUssQ0FBQ3lGLCtCQUFnQztRQUNwRWpELGFBQWEsRUFBRUgsb0JBQVEsQ0FBQ0MseUJBQXlCLENBQUMsSUFBSSxDQUFDdEMsS0FBSyxDQUFDd0MsYUFBYSxDQUFFO1FBQzVFa0QsVUFBVSxFQUFFLElBQUksQ0FBQzFGLEtBQUssQ0FBQzBGLFVBQVc7UUFDbENDLGFBQWEsRUFBRSxJQUFJLENBQUMzRixLQUFLLENBQUMyRixhQUFjO1FBQ3hDQyxvQkFBb0I7UUFDcEJoRSxhQUFhLEVBQUUsSUFBQUQsb0JBQU8sRUFBQyxJQUFJLENBQUMzQixLQUFLLENBQUM0QixhQUFhLENBQUU7UUFDakRpRSxLQUFLLEVBQUUsSUFBSSxDQUFDN0YsS0FBSyxDQUFDOEYsVUFBVSxLQUFLO01BQVEsQ0FDMUMsQ0FDdUIsQ0FDbEIsQ0FBQztJQUVmO0VBQUM7SUFBQTlDLEdBQUE7SUFBQUMsS0FBQSxFQUVELFNBQUE4QyxNQUFNQSxDQUFBLEVBQUc7TUFDUCxJQUFNQyxRQUFRLEdBQUcsSUFBQXJFLG9CQUFPLEVBQUMsSUFBSSxDQUFDM0IsS0FBSyxDQUFDNEIsYUFBYSxDQUFDO01BQ2xELElBQU1ZLGFBQWEsR0FBR0gsb0JBQVEsQ0FBQ0MseUJBQXlCLENBQUMsSUFBSSxDQUFDdEMsS0FBSyxDQUFDd0MsYUFBYSxDQUFDO01BQ2xGLElBQUF5RCxXQUFBLEdBQTJDLElBQUksQ0FBQ2pHLEtBQUs7UUFBOUM0QyxRQUFRLEdBQUFxRCxXQUFBLENBQVJyRCxRQUFRO1FBQUFzRCxxQkFBQSxHQUFBRCxXQUFBLENBQUVILFVBQVU7UUFBVkEsVUFBVSxHQUFBSSxxQkFBQSxjQUFHLFNBQVMsR0FBQUEscUJBQUE7TUFFdkMsSUFBTUMsbUJBQW1CLEdBQUc7UUFDMUJDLFNBQVMsRUFBRSxJQUFBQyxzQkFBVSxFQUFDO1VBQ3BCQyxNQUFNLEVBQUUsSUFBSSxDQUFDdkMsS0FBSyxDQUFDL0M7UUFDckIsQ0FBQyxDQUFDO1FBQ0Z3QixhQUFhLEVBQWJBLGFBQWE7UUFDYkksUUFBUSxFQUFSQSxRQUFRO1FBQ1IyRCxPQUFPLEVBQUUsSUFBSSxDQUFDQyxjQUFjO1FBQzVCQyxLQUFLLEVBQUUsSUFBSSxDQUFDekcsS0FBSyxDQUFDMEcsT0FBTztRQUN6QlosVUFBVSxFQUFWQSxVQUFVO1FBQ1ZhLElBQUksRUFBRSxJQUFJLENBQUMzRyxLQUFLLENBQUMyRztNQUNuQixDQUFDO01BQ0QsSUFBTS9DLElBQUksR0FBRyxJQUFJLENBQUM1RCxLQUFLLENBQUM0RCxJQUFJO01BRTVCLG9CQUNFcEgsTUFBQSxZQUFBeUgsYUFBQTtRQUFLbUMsU0FBUyxFQUFFLElBQUFDLHNCQUFVLEVBQUMsZUFBZSxFQUFFLElBQUksQ0FBQ3JHLEtBQUssQ0FBQ29HLFNBQVMsQ0FBRTtRQUFDUSxHQUFHLEVBQUUsSUFBSSxDQUFDeEQ7TUFBSyxnQkFDaEY1RyxNQUFBLFlBQUF5SCxhQUFBO1FBQUs0QyxLQUFLLEVBQUU7VUFBQ0MsUUFBUSxFQUFFO1FBQVU7TUFBRSxHQUVoQyxJQUFJLENBQUM5RyxLQUFLLENBQUMwQyxXQUFXLGdCQUNyQmxHLE1BQUEsWUFBQXlILGFBQUEsQ0FBQ2pILGdCQUFBLFdBQWUsTUFBQStKLFNBQUEsaUJBQ1ZaLG1CQUFtQjtRQUN2QnZFLGFBQWEsRUFBRSxJQUFBRCxvQkFBTyxFQUFDLElBQUksQ0FBQzNCLEtBQUssQ0FBQzRCLGFBQWEsQ0FBRTtRQUNqRGtELFdBQVcsRUFBRSxJQUFJLENBQUM5RSxLQUFLLENBQUM4RSxXQUFZO1FBQ3BDa0MsVUFBVSxFQUFFLElBQUksQ0FBQ0MsV0FBWTtRQUM3QkMsWUFBWSxFQUFFLElBQUksQ0FBQ2xILEtBQUssQ0FBQ2tILFlBQWE7UUFDdENDLHVCQUF1QixFQUFFLElBQUksQ0FBQ25ILEtBQUssQ0FBQ21ILHVCQUF3QjtRQUM1RHJCLFVBQVUsRUFBRUE7TUFBVyxFQUN4QixDQUFDLGdCQUVGdEosTUFBQSxZQUFBeUgsYUFBQSxDQUFDMUcsZUFBQSxXQUFjLE1BQUF3SixTQUFBLGlCQUNUWixtQkFBbUI7UUFDdkJsRCxLQUFLLEVBQUUrQyxRQUFRLENBQUMsQ0FBQyxDQUFFO1FBQ25CbEIsV0FBVyxFQUFFLElBQUksQ0FBQzlFLEtBQUssQ0FBQzhFLFdBQVk7UUFDcENzQyxRQUFRLEVBQUUsSUFBSSxDQUFDcEgsS0FBSyxDQUFDb0gsUUFBUztRQUM5QkMsU0FBUyxFQUFFLElBQUksQ0FBQ3JILEtBQUssQ0FBQ3FILFNBQVU7UUFDaENDLE9BQU8sRUFBRSxJQUFJLENBQUNDLFFBQVM7UUFDdkJDLFlBQVksRUFBRSxJQUFJLENBQUNoQixjQUFlO1FBQ2xDZiwrQkFBK0IsRUFBRSxJQUFJLENBQUN6RixLQUFLLENBQUN5RjtNQUFnQyxFQUM3RSxDQUNGLEVBRUEsSUFBSSxDQUFDOUIsZUFBZSxDQUFDQyxJQUFJLENBQ3ZCLENBQ0YsQ0FBQztJQUVWO0VBQUM7QUFBQSxFQWxOa0M2RCxnQkFBUztBQUFBLElBQUExRyxnQkFBQSxhQUF4Q1gsc0JBQXNCLGtCQUNKO0VBQ3BCc0MsV0FBVyxFQUFFLElBQUk7RUFDakJvQyxXQUFXLEVBQUUsd0JBQXdCO0VBQ3JDM0MsYUFBYSxFQUFFLElBQUk7RUFDbkJ1RCxVQUFVLEVBQUUsSUFBSTtFQUNoQkwsdUJBQXVCLEVBQUVxQyx3QkFBWTtFQUNyQ2pDLCtCQUErQixFQUFFa0Msc0JBQVE7RUFDekMzRCx3QkFBd0IsRUFBRXRFLGVBQWU7RUFDekN3SCxZQUFZLEVBQUVVLFNBQVM7RUFDdkJ4QixTQUFTLEVBQUU7QUFDYixDQUFDO0FBME1ILElBQU15QixZQUFZLGdCQUFHQyxpQkFBSyxDQUFDQyxJQUFJLENBQUMzSCxzQkFBc0IsQ0FBQztBQUN2RHlILFlBQVksQ0FBQ0csV0FBVyxHQUFHLGNBQWM7QUFBQyxJQUFBQyxRQUFBLEdBQUFDLE9BQUEsY0FFM0IsSUFBQUMscUJBQVUsRUFBQ04sWUFBWSxDQUFDIiwiaWdub3JlTGlzdCI6W119
@@ -95,7 +95,7 @@ declare class Typeahead extends Component<TypeaheadProps, TypeaheadState> {
95
95
  inputDisplayOption: null;
96
96
  defaultClassNames: boolean;
97
97
  customListComponent: typeof DropdownList;
98
- customListItemComponent: ({ value, displayOption, disabled, light }: import("./dropdown-list").ListItemProps<any>) => React.JSX.Element;
98
+ customListItemComponent: ({ value, displayOption, disabled }: import("./dropdown-list").ListItemProps<any>) => React.JSX.Element;
99
99
  inputIcon: typeof Search;
100
100
  customListHeaderComponent: null;
101
101
  showOptionsWhenEmpty: boolean;
@@ -24,6 +24,7 @@ var _accessor = _interopRequireDefault(require("./accessor"));
24
24
  var _dropdownList = _interopRequireWildcard(require("./dropdown-list"));
25
25
  var _icons = require("../icons");
26
26
  var _constants = require("@kepler.gl/constants");
27
+ var _styledComponents2 = require("../styled-components");
27
28
  var _templateObject, _templateObject2, _templateObject3, _templateObject4; // SPDX-License-Identifier: MIT
28
29
  // Copyright contributors to the kepler.gl project
29
30
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
@@ -38,7 +39,9 @@ var DEFAULT_CLASS = 'typeahead';
38
39
  * keyboard or mouse to select.
39
40
  */
40
41
 
41
- var TypeaheadWrapper = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n background-color: ", ";\n box-shadow: ", ";\n\n &:focus {\n outline: 0;\n }\n"])), function (props) {
42
+ var TypeaheadWrapper = _styledComponents["default"].div.withConfig({
43
+ shouldForwardProp: _styledComponents2.shouldForwardProp
44
+ })(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n background-color: ", ";\n box-shadow: ", ";\n\n &:focus {\n outline: 0;\n }\n"])), function (props) {
42
45
  return props.light ? props.theme.dropdownListBgdLT : props.theme.dropdownListBgd;
43
46
  }, function (props) {
44
47
  return props.theme.dropdownListShadow;
@@ -46,7 +49,9 @@ var TypeaheadWrapper = _styledComponents["default"].div(_templateObject || (_tem
46
49
  var InputBox = _styledComponents["default"].div.attrs({
47
50
  className: 'typeahead__input_box'
48
51
  })(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 8px;\n"])));
49
- var TypeaheadInput = _styledComponents["default"].input(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n &:hover {\n cursor: pointer;\n background-color: ", ";\n }\n"])), function (props) {
52
+ var TypeaheadInput = _styledComponents["default"].input.withConfig({
53
+ shouldForwardProp: _styledComponents2.shouldForwardProp
54
+ })(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n &:hover {\n cursor: pointer;\n background-color: ", ";\n }\n"])), function (props) {
50
55
  return props.light ? props.theme.inputLT : props.theme.secondaryInput;
51
56
  }, function (props) {
52
57
  return props.light ? props.theme.selectBackgroundLT : props.theme.secondaryInputBgd;
@@ -430,4 +435,4 @@ var Typeahead = /*#__PURE__*/function (_Component) {
430
435
  });
431
436
  (0, _reactLifecyclesCompat.polyfill)(Typeahead);
432
437
  var _default = exports["default"] = Typeahead;
433
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RMaWZlY3ljbGVzQ29tcGF0IiwiX2Z1enp5IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jbGFzc25hbWVzIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfd2luZG93IiwiX2FjY2Vzc29yIiwiX2Ryb3Bkb3duTGlzdCIsIl9pY29ucyIsIl9jb25zdGFudHMiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl90ZW1wbGF0ZU9iamVjdDQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfY2FsbFN1cGVyIiwibyIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiYXBwbHkiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsIkRFRkFVTFRfQ0xBU1MiLCJUeXBlYWhlYWRXcmFwcGVyIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsImxpZ2h0IiwidGhlbWUiLCJkcm9wZG93bkxpc3RCZ2RMVCIsImRyb3Bkb3duTGlzdEJnZCIsImRyb3Bkb3duTGlzdFNoYWRvdyIsIklucHV0Qm94IiwiYXR0cnMiLCJjbGFzc05hbWUiLCJUeXBlYWhlYWRJbnB1dCIsImlucHV0IiwiaW5wdXRMVCIsInNlY29uZGFyeUlucHV0Iiwic2VsZWN0QmFja2dyb3VuZExUIiwic2Vjb25kYXJ5SW5wdXRCZ2QiLCJJbnB1dEljb24iLCJpbnB1dFBsYWNlaG9sZGVyQ29sb3IiLCJnZW5lcmF0ZVNlYXJjaEZ1bmN0aW9uIiwic2VhcmNoT3B0aW9ucyIsImZpbHRlck9wdGlvbiIsIkNvbnNvbGUiLCJ3YXJuIiwidmFsdWUiLCJvcHRpb25zIiwiZmlsdGVyIiwibWFwcGVyIiwiQWNjZXNzb3IiLCJnZW5lcmF0ZUFjY2Vzc29yIiwiSURFTlRJVFlfRk4iLCJmdXp6eSIsImV4dHJhY3QiLCJtYXAiLCJyZXMiLCJpbmRleCIsInNlYXJjaE9wdGlvbnNPbklucHV0IiwiaW5wdXRWYWx1ZSIsImdldE9wdGlvbnNGb3JWYWx1ZSIsInN0YXRlIiwic2hvd09wdGlvbnNXaGVuRW1wdHkiLCJzZWFyY2hhYmxlIiwic2hvdWxkU2tpcFNlYXJjaCIsImVtcHR5VmFsdWUiLCJ0cmltIiwibGVuZ3RoIiwiaXNGb2N1c2VkIiwibm9vcCIsIlR5cGVhaGVhZCIsIl9Db21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfZGVmaW5lUHJvcGVydHkyIiwiY3JlYXRlUmVmIiwiZW50cnkiLCJjdXJyZW50IiwiZm9jdXMiLCJfdGhpcyRzdGF0ZSRlbnRyeVZhbHUiLCJOdW1iZXIiLCJhbGxvd0N1c3RvbVZhbHVlcyIsImVudHJ5VmFsdWUiLCJzZWFyY2hSZXN1bHRzIiwiaW5kZXhPZiIsIl9oYXNDdXN0b21WYWx1ZSIsIm9wdGlvbiIsImV2ZW50IiwiX3RoaXMkcHJvcHMkb25PcHRpb25TIiwiX3RoaXMkcHJvcHMiLCJzZXRTdGF0ZSIsInNlbGVjdGlvbiIsIm9uT3B0aW9uU2VsZWN0ZWQiLCJfdGhpcyRlbnRyeSRjdXJyZW50IiwiZ2V0U2VsZWN0aW9uIiwiX3RoaXMkcHJvcHMkb25LZXlEb3duIiwiX3RoaXMkcHJvcHMyIiwib25LZXlEb3duIiwiX29uT3B0aW9uU2VsZWN0ZWQiLCJzZWxlY3Rpb25JbmRleCIsIl9nZXRDdXN0b21WYWx1ZSIsImV2ZW50cyIsIktleUV2ZW50IiwiRE9NX1ZLX1VQIiwibmF2VXAiLCJET01fVktfRE9XTiIsIm5hdkRvd24iLCJET01fVktfUkVUVVJOIiwiRE9NX1ZLX0VOVEVSIiwiX29uRW50ZXIiLCJET01fVktfRVNDQVBFIiwiX29uRXNjYXBlIiwiRE9NX1ZLX1RBQiIsIl9vblRhYiIsImRlbHRhIiwiX2hhc0hpbnQiLCJuZXdJbmRleCIsIm1heFZpc2libGUiLCJzbGljZSIsIl9uYXYiLCJvbkNoYW5nZSIsIl9vblRleHRFbnRyeVVwZGF0ZWQiLCJzaGlmdEtleSIsIl90aGlzJHByb3BzJG9uS2V5RG93bjIiLCJfdGhpcyRwcm9wczMiLCJoYW5kbGVyIiwiZXZlbnRNYXAiLCJrZXlDb2RlIiwiX3RoaXMkcHJvcHMkb25LZXlEb3duMyIsIl90aGlzJHByb3BzNCIsInByZXZlbnREZWZhdWx0Iiwib25Gb2N1cyIsIm9uQmx1ciIsImluaXRpYWxWYWx1ZSIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwiY29tcG9uZW50RGlkTW91bnQiLCJhdXRvRm9jdXMiLCJfdGhpcyRyb290JGN1cnJlbnQiLCJyb290IiwiX3JlbmRlckluY3JlbWVudGFsU2VhcmNoUmVzdWx0cyIsIl90aGlzJHByb3BzJGN1c3RvbUxpcyIsImN1c3RvbUxpc3RDb21wb25lbnQiLCJDdXN0b21MaXN0Q29tcG9uZW50IiwiRHJvcGRvd25MaXN0IiwiY3JlYXRlRWxlbWVudCIsImZpeGVkT3B0aW9ucyIsImFyZVJlc3VsdHNUcnVuY2F0ZWQiLCJyZXN1bHRzVHJ1bmNhdGVkTWVzc2FnZSIsImN1c3RvbVZhbHVlIiwiY3VzdG9tQ2xhc3NlcyIsImN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IiwiY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudCIsImRlZmF1bHRDbGFzc05hbWVzIiwiZGlzcGxheU9wdGlvbiIsInNlbGVjdGVkSXRlbXMiLCJfaGFzRml4ZWRPcHRpb25zIiwiX3RoaXMkcHJvcHMkZml4ZWRPcHRpIiwiX3RoaXMkcHJvcHMkZml4ZWRPcHRpMiIsIl90aGlzJHByb3BzJGZpeGVkT3B0aTMiLCJfcmVuZGVySGlkZGVuSW5wdXQiLCJuYW1lIiwidHlwZSIsIkFycmF5IiwiaXNBcnJheSIsInJlbmRlciIsIl90aGlzJHByb3BzJGN1c3RvbUNsYSIsIl90aGlzJHByb3BzJGN1c3RvbUNsYTIiLCJpbnB1dENsYXNzZXMiLCJpbnB1dENsYXNzTGlzdCIsImNsYXNzTmFtZXMiLCJjbGFzc2VzIiwiY2xhc3NMaXN0IiwicmVmIiwidGFiSW5kZXgiLCJfb25LZXlEb3duIiwib25LZXlQcmVzcyIsIm9uS2V5VXAiLCJfb25Gb2N1cyIsIl9leHRlbmRzMiIsImRpc2FibGVkIiwiaW5wdXRQcm9wcyIsInBsYWNlaG9sZGVyIiwiX29uQ2hhbmdlIiwiX29uQmx1ciIsImlucHV0SWNvbiIsImhlaWdodCIsImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyIsInByZXZPcHRpb25zIiwiQ29tcG9uZW50IiwicmVzdWx0cyIsImxpc3RJdGVtIiwibGlzdEFuY2hvciIsInRleHRhcmVhIiwiaW5wdXREaXNwbGF5T3B0aW9uIiwiTGlzdEl0ZW0iLCJTZWFyY2giLCJwb2x5ZmlsbCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vaXRlbS1zZWxlY3Rvci90eXBlYWhlYWQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmLCBFbGVtZW50VHlwZSwgS2V5Ym9hcmRFdmVudEhhbmRsZXJ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7cG9seWZpbGx9IGZyb20gJ3JlYWN0LWxpZmVjeWNsZXMtY29tcGF0JztcbmltcG9ydCBmdXp6eSBmcm9tICdmdXp6eSc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBzdHlsZWQsIHtJU3R5bGVkQ29tcG9uZW50fSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge2NvbnNvbGUgYXMgQ29uc29sZX0gZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5cbmltcG9ydCBBY2Nlc3NvciBmcm9tICcuL2FjY2Vzc29yJztcbmltcG9ydCBEcm9wZG93bkxpc3QsIHtMaXN0SXRlbX0gZnJvbSAnLi9kcm9wZG93bi1saXN0JztcbmltcG9ydCB7U2VhcmNofSBmcm9tICcuLi9pY29ucyc7XG5pbXBvcnQge0tleUV2ZW50fSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0Jhc2VDb21wb25lbnRQcm9wc30gZnJvbSAnLi4vLi4vdHlwZXMnO1xuXG5jb25zdCBERUZBVUxUX0NMQVNTID0gJ3R5cGVhaGVhZCc7XG4vKipcbiAqIENvcGllZCBtb3N0bHkgZnJvbSAncmVhY3QtdHlwZWFoZWFkJywgYW4gYXV0by1jb21wbGV0aW5nIHRleHQgaW5wdXRcbiAqXG4gKiBSZW5kZXJzIGFuIHRleHQgaW5wdXQgdGhhdCBzaG93cyBvcHRpb25zIG5lYXJieSB0aGF0IHlvdSBjYW4gdXNlIHRoZVxuICoga2V5Ym9hcmQgb3IgbW91c2UgdG8gc2VsZWN0LlxuICovXG5cbmV4cG9ydCB0eXBlIFR5cGVhaGVhZFdyYXBwZXJQcm9wcyA9IEJhc2VDb21wb25lbnRQcm9wcyAmIHtcbiAgbGlnaHQ/OiBib29sZWFuO1xuICByZWY6IFJlYWN0LlJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG59O1xuXG5jb25zdCBUeXBlYWhlYWRXcmFwcGVyOiBJU3R5bGVkQ29tcG9uZW50PFxuICAnd2ViJyxcbiAgVHlwZWFoZWFkV3JhcHBlclByb3BzXG4+ID0gc3R5bGVkLmRpdjxUeXBlYWhlYWRXcmFwcGVyUHJvcHM+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+XG4gICAgcHJvcHMubGlnaHQgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCZ2RMVCA6IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJnZH07XG4gIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0U2hhZG93fTtcblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG5gO1xuXG5jb25zdCBJbnB1dEJveCA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICd0eXBlYWhlYWRfX2lucHV0X2JveCdcbn0pYFxuICBwYWRkaW5nOiA4cHg7XG5gO1xuXG5leHBvcnQgdHlwZSBUeXBlYWhlYWRJbnB1dFByb3BzID0gQmFzZUNvbXBvbmVudFByb3BzICYge1xuICBsaWdodD86IGJvb2xlYW47XG4gIHZhbHVlPzogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgcmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBwbGFjZWhvbGRlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn07XG5cbmNvbnN0IFR5cGVhaGVhZElucHV0OiBJU3R5bGVkQ29tcG9uZW50PFxuICAnd2ViJyxcbiAgVHlwZWFoZWFkSW5wdXRQcm9wc1xuPiA9IHN0eWxlZC5pbnB1dDxUeXBlYWhlYWRJbnB1dFByb3BzPmBcbiAgJHtwcm9wcyA9PiAocHJvcHMubGlnaHQgPyBwcm9wcy50aGVtZS5pbnB1dExUIDogcHJvcHMudGhlbWUuc2Vjb25kYXJ5SW5wdXQpfVxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PlxuICAgICAgcHJvcHMubGlnaHQgPyBwcm9wcy50aGVtZS5zZWxlY3RCYWNrZ3JvdW5kTFQgOiBwcm9wcy50aGVtZS5zZWNvbmRhcnlJbnB1dEJnZH07XG4gIH1cbmA7XG5cbmNvbnN0IElucHV0SWNvbiA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICd0eXBlYWhlYWRfX2lucHV0X2ljb24nXG59KWBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICByaWdodDogMTVweDtcbiAgdG9wOiAxNHB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dFBsYWNlaG9sZGVyQ29sb3J9O1xuYDtcblxuZnVuY3Rpb24gZ2VuZXJhdGVTZWFyY2hGdW5jdGlvbihwcm9wczogVHlwZWFoZWFkUHJvcHMpIHtcbiAgY29uc3Qge3NlYXJjaE9wdGlvbnMsIGZpbHRlck9wdGlvbn0gPSBwcm9wcztcbiAgaWYgKHR5cGVvZiBzZWFyY2hPcHRpb25zID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKGZpbHRlck9wdGlvbiAhPT0gbnVsbCkge1xuICAgICAgQ29uc29sZS53YXJuKCdzZWFyY2hPcHRpb25zIHByb3AgaXMgYmVpbmcgdXNlZCwgZmlsdGVyT3B0aW9uIHByb3Agd2lsbCBiZSBpZ25vcmVkJyk7XG4gICAgfVxuICAgIHJldHVybiBzZWFyY2hPcHRpb25zO1xuICB9IGVsc2UgaWYgKHR5cGVvZiBmaWx0ZXJPcHRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAvLyB1c2UgY3VzdG9tIGZpbHRlciBvcHRpb25cbiAgICByZXR1cm4gKHZhbHVlLCBvcHRpb25zKSA9PiBvcHRpb25zLmZpbHRlcihvID0+IGZpbHRlck9wdGlvbih2YWx1ZSwgbykpO1xuICB9XG5cbiAgY29uc3QgbWFwcGVyID1cbiAgICB0eXBlb2YgZmlsdGVyT3B0aW9uID09PSAnc3RyaW5nJ1xuICAgICAgPyBBY2Nlc3Nvci5nZW5lcmF0ZUFjY2Vzc29yKGZpbHRlck9wdGlvbilcbiAgICAgIDogQWNjZXNzb3IuSURFTlRJVFlfRk47XG5cbiAgcmV0dXJuICh2YWx1ZSwgb3B0aW9ucykgPT4ge1xuICAgIHJldHVybiBmdXp6eS5maWx0ZXIodmFsdWUsIG9wdGlvbnMsIHtleHRyYWN0OiBtYXBwZXJ9KS5tYXAocmVzID0+IG9wdGlvbnNbcmVzLmluZGV4XSk7XG4gIH07XG59XG5cbmZ1bmN0aW9uIHNlYXJjaE9wdGlvbnNPbklucHV0KGlucHV0VmFsdWUsIHByb3BzKSB7XG4gIGNvbnN0IHNlYXJjaE9wdGlvbnMgPSBnZW5lcmF0ZVNlYXJjaEZ1bmN0aW9uKHByb3BzKTtcbiAgcmV0dXJuIHNlYXJjaE9wdGlvbnMoaW5wdXRWYWx1ZSwgcHJvcHMub3B0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIGdldE9wdGlvbnNGb3JWYWx1ZSh2YWx1ZSwgcHJvcHMsIHN0YXRlKSB7XG4gIGNvbnN0IHtvcHRpb25zLCBzaG93T3B0aW9uc1doZW5FbXB0eX0gPSBwcm9wcztcblxuICBpZiAoIXByb3BzLnNlYXJjaGFibGUpIHtcbiAgICAvLyBkaXJlY3RseSBwYXNzIHRocm91Z2ggb3B0aW9ucyBpZiBjYW4gbm90IGJlIHNlYXJjaGVkXG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cbiAgaWYgKHNob3VsZFNraXBTZWFyY2godmFsdWUsIHN0YXRlLCBzaG93T3B0aW9uc1doZW5FbXB0eSkpIHtcbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuXG4gIGNvbnN0IHNlYXJjaE9wdGlvbnMgPSBnZW5lcmF0ZVNlYXJjaEZ1bmN0aW9uKHByb3BzKTtcbiAgcmV0dXJuIHNlYXJjaE9wdGlvbnModmFsdWUsIG9wdGlvbnMpO1xufVxuXG5mdW5jdGlvbiBzaG91bGRTa2lwU2VhcmNoKGlucHV0LCBzdGF0ZSwgc2hvd09wdGlvbnNXaGVuRW1wdHkpIHtcbiAgY29uc3QgZW1wdHlWYWx1ZSA9ICFpbnB1dCB8fCBpbnB1dC50cmltKCkubGVuZ3RoID09PSAwO1xuXG4gIC8vIHRoaXMuc3RhdGUgbXVzdCBiZSBjaGVja2VkIGJlY2F1c2UgaXQgbWF5IG5vdCBiZSBkZWZpbmVkIHlldCBpZiB0aGlzIGZ1bmN0aW9uXG4gIC8vIGlzIGNhbGxlZCBmcm9tIHdpdGhpbiBnZXRJbml0aWFsU3RhdGVcbiAgY29uc3QgaXNGb2N1c2VkID0gc3RhdGUgJiYgc3RhdGUuaXNGb2N1c2VkO1xuICByZXR1cm4gIShzaG93T3B0aW9uc1doZW5FbXB0eSAmJiBpc0ZvY3VzZWQpICYmIGVtcHR5VmFsdWU7XG59XG5cbnR5cGUgT3B0aW9uID0gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdCB8IHVuZGVmaW5lZDtcbmludGVyZmFjZSBUeXBlYWhlYWRQcm9wcyB7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGN1c3RvbUNsYXNzZXM/OiBhbnk7XG4gIHJlc3VsdHNUcnVuY2F0ZWRNZXNzYWdlPzogc3RyaW5nO1xuICBvcHRpb25zPzogUmVhZG9ubHlBcnJheTxPcHRpb24+O1xuICBmaXhlZE9wdGlvbnM/OiBSZWFkb25seUFycmF5PE9wdGlvbj4gfCBudWxsO1xuICBhbGxvd0N1c3RvbVZhbHVlcz86IG51bWJlcjtcbiAgaW5pdGlhbFZhbHVlPzogc3RyaW5nO1xuICB2YWx1ZT86IHN0cmluZztcbiAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgdGV4dGFyZWE/OiBib29sZWFuO1xuICBpbnB1dFByb3BzPzogb2JqZWN0O1xuICBvbk9wdGlvblNlbGVjdGVkPzogKG9wdGlvbjogYW55LCBldmVudDogYW55KSA9PiBhbnk7XG4gIG9uQ2hhbmdlPzogKGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbiAgb25LZXlEb3duPzogKGV2ZW50OiBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4gdm9pZDtcbiAgb25LZXlQcmVzcz86IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25LZXlVcD86IEtleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PjtcbiAgb25Gb2N1cz86IChldmVudDogUmVhY3QuRm9jdXNFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHZvaWQ7XG4gIG9uQmx1cj86IChldmVudDogUmVhY3QuRm9jdXNFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4gdm9pZDtcbiAgZmlsdGVyT3B0aW9uPzogc3RyaW5nIHwgKChvOiBPcHRpb24sIHM6IHN0cmluZykgPT4gYm9vbGVhbik7XG4gIHNlYXJjaE9wdGlvbnM/OiAobzogT3B0aW9uLCBzOiBzdHJpbmcpID0+IGJvb2xlYW47XG4gIGRpc3BsYXlPcHRpb24/OiBzdHJpbmcgfCAoKG86IE9wdGlvbikgPT4gc3RyaW5nKTtcbiAgaW5wdXREaXNwbGF5T3B0aW9uPzogc3RyaW5nIHwgKChvOiBPcHRpb24pID0+IHN0cmluZyk7XG4gIGZvcm1JbnB1dE9wdGlvbj86IHN0cmluZyB8ICgobzogT3B0aW9uKSA9PiBzdHJpbmcpO1xuICBkZWZhdWx0Q2xhc3NOYW1lcz86IGJvb2xlYW47XG4gIGN1c3RvbUxpc3RDb21wb25lbnQ/OiBFbGVtZW50VHlwZTtcbiAgY3VzdG9tTGlzdEl0ZW1Db21wb25lbnQ/OiBFbGVtZW50VHlwZTtcbiAgY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudD86IEVsZW1lbnRUeXBlIHwgbnVsbDtcbiAgc2hvd09wdGlvbnNXaGVuRW1wdHk/OiBib29sZWFuO1xuICBzZWFyY2hhYmxlPzogYm9vbGVhbjtcbiAgbGlnaHQ/OiBib29sZWFuO1xuICBpbnB1dEljb246IEVsZW1lbnRUeXBlO1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIHNlbGVjdGVkSXRlbXM/OiBhbnlbXSB8IG51bGw7XG4gIGF1dG9Gb2N1czogYm9vbGVhbjtcbiAgLy8gZGVwcmVjYXRlZFxuICBtYXhWaXNpYmxlPzogbnVtYmVyO1xufVxuXG5pbnRlcmZhY2UgVHlwZWFoZWFkU3RhdGUge1xuICBzZWFyY2hSZXN1bHRzOiBSZWFkb25seUFycmF5PHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBvYmplY3QgfCB1bmRlZmluZWQ+O1xuXG4gIC8vIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBzb21ldGhpbmcgZWxzZSwgJ2VudHJ5VmFsdWUnXG4gIGVudHJ5VmFsdWU/OiBzdHJpbmc7XG5cbiAgLy8gQSB2YWxpZCB0eXBlYWhlYWQgdmFsdWVcbiAgc2VsZWN0aW9uPzogc3RyaW5nO1xuXG4gIC8vIEluZGV4IG9mIHRoZSBzZWxlY3Rpb25cbiAgc2VsZWN0aW9uSW5kZXg6IG51bGw7XG5cbiAgLy8gS2VlcCB0cmFjayBvZiB0aGUgZm9jdXMgc3RhdGUgb2YgdGhlIGlucHV0IGVsZW1lbnQsIHRvIGRldGVybWluZVxuICAvLyB3aGV0aGVyIHRvIHNob3cgb3B0aW9ucyB3aGVuIGVtcHR5IChpZiBzaG93T3B0aW9uc1doZW5FbXB0eSBpcyB0cnVlKVxuICBpc0ZvY3VzZWQ6IGJvb2xlYW47XG59XG5cbmZ1bmN0aW9uIG5vb3AoKSB7XG4gIHJldHVybjtcbn1cbmNsYXNzIFR5cGVhaGVhZCBleHRlbmRzIENvbXBvbmVudDxUeXBlYWhlYWRQcm9wcywgVHlwZWFoZWFkU3RhdGU+IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBvcHRpb25zOiBbXSxcbiAgICBjdXN0b21DbGFzc2VzOiB7XG4gICAgICByZXN1bHRzOiAnbGlzdC1zZWxlY3RvcicsXG4gICAgICBpbnB1dDogJ3R5cGVhaGVhZF9faW5wdXQnLFxuICAgICAgbGlzdEl0ZW06ICdsaXN0X19pdGVtJyxcbiAgICAgIGxpc3RBbmNob3I6ICdsaXN0X19pdGVtX19hbmNob3InXG4gICAgfSxcbiAgICBhbGxvd0N1c3RvbVZhbHVlczogMCxcbiAgICBpbml0aWFsVmFsdWU6ICcnLFxuICAgIHZhbHVlOiAnJyxcbiAgICBwbGFjZWhvbGRlcjogJycsXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgIHRleHRhcmVhOiBmYWxzZSxcbiAgICBpbnB1dFByb3BzOiB7fSxcbiAgICBvbk9wdGlvblNlbGVjdGVkOiBub29wLFxuICAgIG9uQ2hhbmdlOiBub29wLFxuICAgIG9uS2V5RG93bjogbm9vcCxcbiAgICBvbktleVByZXNzOiBub29wLFxuICAgIG9uS2V5VXA6IG5vb3AsXG4gICAgb25Gb2N1czogbm9vcCxcbiAgICBvbkJsdXI6IG5vb3AsXG4gICAgZmlsdGVyT3B0aW9uOiBudWxsLFxuICAgIHNlYXJjaE9wdGlvbnM6IG51bGwsXG4gICAgaW5wdXREaXNwbGF5T3B0aW9uOiBudWxsLFxuICAgIGRlZmF1bHRDbGFzc05hbWVzOiB0cnVlLFxuICAgIGN1c3RvbUxpc3RDb21wb25lbnQ6IERyb3Bkb3duTGlzdCxcbiAgICBjdXN0b21MaXN0SXRlbUNvbXBvbmVudDogTGlzdEl0ZW0sXG4gICAgaW5wdXRJY29uOiBTZWFyY2gsXG4gICAgY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudDogbnVsbCxcbiAgICBzaG93T3B0aW9uc1doZW5FbXB0eTogdHJ1ZSxcbiAgICBzZWFyY2hhYmxlOiB0cnVlLFxuICAgIHJlc3VsdHNUcnVuY2F0ZWRNZXNzYWdlOiBudWxsLFxuICAgIGF1dG9Gb2N1czogdHJ1ZVxuICB9O1xuXG4gIHN0YXRpYyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHMocHJvcHMsIHN0YXRlKSB7XG4gICAgaWYgKHByb3BzLm9wdGlvbnMgPT09IHN0YXRlLnByZXZPcHRpb25zKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgLy8gIGludm9rZWQgYWZ0ZXIgYSBjb21wb25lbnQgaXMgaW5zdGFudGlhdGVkIGFzIHdlbGwgYXMgYmVmb3JlIGl0IGlzIHJlLXJlbmRlcmVkXG4gICAgY29uc3Qgc2VhcmNoUmVzdWx0cyA9IGdldE9wdGlvbnNGb3JWYWx1ZShzdGF0ZS5lbnRyeVZhbHVlLCBwcm9wcywgc3RhdGUpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHNlYXJjaFJlc3VsdHMsXG4gICAgICBwcmV2T3B0aW9uczogcHJvcHMub3B0aW9uc1xuICAgIH07XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICAvLyBpbml0aWF0ZSBzZWFyY2hSZXN1bHRzIHdpdGggb3B0aW9uc1xuICAgICAgc2VhcmNoUmVzdWx0czogdGhpcy5wcm9wcy5vcHRpb25zIHx8IFtdLFxuXG4gICAgICAvLyBUaGlzIHNob3VsZCBiZSBjYWxsZWQgc29tZXRoaW5nIGVsc2UsICdlbnRyeVZhbHVlJ1xuICAgICAgZW50cnlWYWx1ZTogdGhpcy5wcm9wcy52YWx1ZSB8fCB0aGlzLnByb3BzLmluaXRpYWxWYWx1ZSxcblxuICAgICAgLy8gQSB2YWxpZCB0eXBlYWhlYWQgdmFsdWVcbiAgICAgIHNlbGVjdGlvbjogdGhpcy5wcm9wcy52YWx1ZSxcblxuICAgICAgLy8gSW5kZXggb2YgdGhlIHNlbGVjdGlvblxuICAgICAgc2VsZWN0aW9uSW5kZXg6IG51bGwsXG5cbiAgICAgIC8vIEtlZXAgdHJhY2sgb2YgdGhlIGZvY3VzIHN0YXRlIG9mIHRoZSBpbnB1dCBlbGVtZW50LCB0byBkZXRlcm1pbmVcbiAgICAgIC8vIHdoZXRoZXIgdG8gc2hvdyBvcHRpb25zIHdoZW4gZW1wdHkgKGlmIHNob3dPcHRpb25zV2hlbkVtcHR5IGlzIHRydWUpXG4gICAgICBpc0ZvY3VzZWQ6IGZhbHNlXG4gICAgfTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIC8vIGNhbGwgZm9jdXMgb24gZW50cnkgb3IgZGl2IHRvIHRyaWdnZXIga2V5IGV2ZW50cyBsaXN0ZW5lclxuICAgIGlmICh0aGlzLnByb3BzLmF1dG9Gb2N1cykge1xuICAgICAgaWYgKHRoaXMuZW50cnkuY3VycmVudCkge1xuICAgICAgICB0aGlzLmVudHJ5LmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucm9vdC5jdXJyZW50Py5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJvb3QgPSBjcmVhdGVSZWY8SFRNTERpdkVsZW1lbnQ+KCk7XG4gIGVudHJ5ID0gY3JlYXRlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KCk7XG5cbiAgZm9jdXMgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMuZW50cnkuY3VycmVudCkge1xuICAgICAgdGhpcy5lbnRyeS5jdXJyZW50LmZvY3VzKCk7XG4gICAgfVxuICB9O1xuXG4gIF9oYXNDdXN0b21WYWx1ZSA9ICgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgTnVtYmVyKHRoaXMucHJvcHMuYWxsb3dDdXN0b21WYWx1ZXMpID4gMCAmJlxuICAgICAgTnVtYmVyKHRoaXMuc3RhdGUuZW50cnlWYWx1ZT8ubGVuZ3RoKSA+PSBOdW1iZXIodGhpcy5wcm9wcy5hbGxvd0N1c3RvbVZhbHVlcykgJiZcbiAgICAgIHRoaXMuc3RhdGUuc2VhcmNoUmVzdWx0cy5pbmRleE9mKHRoaXMuc3RhdGUuZW50cnlWYWx1ZSkgPCAwXG4gICAgKTtcbiAgfTtcblxuICBfZ2V0Q3VzdG9tVmFsdWUgPSAoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuX2hhc0N1c3RvbVZhbHVlKCkgPyB0aGlzLnN0YXRlLmVudHJ5VmFsdWUgOiBudWxsO1xuICB9O1xuXG4gIF9yZW5kZXJJbmNyZW1lbnRhbFNlYXJjaFJlc3VsdHMoKSB7XG4gICAgY29uc3Qge2N1c3RvbUxpc3RDb21wb25lbnQ6IEN1c3RvbUxpc3RDb21wb25lbnQgPSBEcm9wZG93bkxpc3R9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gKFxuICAgICAgPEN1c3RvbUxpc3RDb21wb25lbnRcbiAgICAgICAgZml4ZWRPcHRpb25zPXt0aGlzLnByb3BzLmZpeGVkT3B0aW9uc31cbiAgICAgICAgb3B0aW9ucz17dGhpcy5zdGF0ZS5zZWFyY2hSZXN1bHRzfVxuICAgICAgICBhcmVSZXN1bHRzVHJ1bmNhdGVkPXtmYWxzZX1cbiAgICAgICAgcmVzdWx0c1RydW5jYXRlZE1lc3NhZ2U9e3RoaXMucHJvcHMucmVzdWx0c1RydW5jYXRlZE1lc3NhZ2V9XG4gICAgICAgIG9uT3B0aW9uU2VsZWN0ZWQ9e3RoaXMuX29uT3B0aW9uU2VsZWN0ZWR9XG4gICAgICAgIGFsbG93Q3VzdG9tVmFsdWVzPXt0aGlzLnByb3BzLmFsbG93Q3VzdG9tVmFsdWVzfVxuICAgICAgICBjdXN0b21WYWx1ZT17dGhpcy5fZ2V0Q3VzdG9tVmFsdWUoKX1cbiAgICAgICAgY3VzdG9tQ2xhc3Nlcz17dGhpcy5wcm9wcy5jdXN0b21DbGFzc2VzfVxuICAgICAgICBjdXN0b21MaXN0SXRlbUNvbXBvbmVudD17dGhpcy5wcm9wcy5jdXN0b21MaXN0SXRlbUNvbXBvbmVudH1cbiAgICAgICAgY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudD17dGhpcy5wcm9wcy5jdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50fVxuICAgICAgICBzZWxlY3Rpb25JbmRleD17dGhpcy5zdGF0ZS5zZWxlY3Rpb25JbmRleH1cbiAgICAgICAgZGVmYXVsdENsYXNzTmFtZXM9e3RoaXMucHJvcHMuZGVmYXVsdENsYXNzTmFtZXN9XG4gICAgICAgIGRpc3BsYXlPcHRpb249e3RoaXMucHJvcHMuZGlzcGxheU9wdGlvbn1cbiAgICAgICAgc2VsZWN0ZWRJdGVtcz17dGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zfVxuICAgICAgICBsaWdodD17dGhpcy5wcm9wcy5saWdodH1cbiAgICAgIC8+XG4gICAgKTtcbiAgfVxuXG4gIGdldFNlbGVjdGlvbigpIHtcbiAgICBsZXQgaW5kZXg6IG51bWJlciB8IG51bGwgPSB0aGlzLnN0YXRlLnNlbGVjdGlvbkluZGV4O1xuICAgIGlmIChpbmRleCA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGluZGV4ID0gTnVtYmVyKGluZGV4KTtcblxuICAgIGlmICh0aGlzLl9oYXNDdXN0b21WYWx1ZSgpKSB7XG4gICAgICBpZiAoaW5kZXggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGUuZW50cnlWYWx1ZTtcbiAgICAgIH1cbiAgICAgIGluZGV4LS07XG4gICAgfVxuICAgIGlmICh0aGlzLl9oYXNGaXhlZE9wdGlvbnMoKSkge1xuICAgICAgcmV0dXJuIGluZGV4IDwgTnVtYmVyKHRoaXMucHJvcHMuZml4ZWRPcHRpb25zPy5sZW5ndGgpXG4gICAgICAgID8gdGhpcy5wcm9wcy5maXhlZE9wdGlvbnM/LltpbmRleF1cbiAgICAgICAgOiB0aGlzLnN0YXRlLnNlYXJjaFJlc3VsdHNbaW5kZXggLSBOdW1iZXIodGhpcy5wcm9wcy5maXhlZE9wdGlvbnM/Lmxlbmd0aCldO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5zZWFyY2hSZXN1bHRzW2luZGV4XTtcbiAgfVxuXG4gIF9vbk9wdGlvblNlbGVjdGVkID0gKG9wdGlvbiwgZXZlbnQpID0+IHtcbiAgICBpZiAodGhpcy5wcm9wcy5zZWFyY2hhYmxlKSB7XG4gICAgICAvLyByZXNldCBlbnRyeSBpbnB1dFxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIC8vIHJlc2V0IHNlYXJjaCBvcHRpb25zIHdoZW4gc2VsZWN0aW9uIGhhcyBiZWVuIG1hZGVcbiAgICAgICAgc2VhcmNoUmVzdWx0czogdGhpcy5wcm9wcy5vcHRpb25zIHx8IFtdLFxuICAgICAgICBzZWxlY3Rpb246ICcnLFxuICAgICAgICBlbnRyeVZhbHVlOiAnJ1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5wcm9wcy5vbk9wdGlvblNlbGVjdGVkPy4ob3B0aW9uLCBldmVudCk7XG4gIH07XG5cbiAgLy8gdXNlICgpID0+IHt9IHRvIGF2b2lkIGJpbmRpbmcgJ3RoaXMnXG4gIF9vblRleHRFbnRyeVVwZGF0ZWQgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMucHJvcHMuc2VhcmNoYWJsZSkge1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmVudHJ5LmN1cnJlbnQ/LnZhbHVlO1xuXG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgc2VhcmNoUmVzdWx0czogc2VhcmNoT3B0aW9uc09uSW5wdXQodmFsdWUsIHRoaXMucHJvcHMpLFxuICAgICAgICBzZWxlY3Rpb246ICcnLFxuICAgICAgICBlbnRyeVZhbHVlOiB2YWx1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIF9vbkVudGVyID0gZXZlbnQgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCk7XG4gICAgaWYgKCFzZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMucHJvcHMub25LZXlEb3duPy4oZXZlbnQpO1xuICAgIH1cbiAgICB0aGlzLl9vbk9wdGlvblNlbGVjdGVkKHNlbGVjdGlvbiwgZXZlbnQpO1xuICB9O1xuXG4gIF9vbkVzY2FwZSA9ICgpID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHNlbGVjdGlvbkluZGV4OiBudWxsXG4gICAgfSk7XG4gIH07XG5cbiAgX29uVGFiID0gZXZlbnQgPT4ge1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuZ2V0U2VsZWN0aW9uKCk7XG4gICAgbGV0IG9wdGlvbiA9IHNlbGVjdGlvblxuICAgICAgPyBzZWxlY3Rpb25cbiAgICAgIDogdGhpcy5zdGF0ZS5zZWFyY2hSZXN1bHRzLmxlbmd0aCA+IDBcbiAgICAgID8gdGhpcy5zdGF0ZS5zZWFyY2hSZXN1bHRzWzBdXG4gICAgICA6IG51bGw7XG5cbiAgICBpZiAob3B0aW9uID09PSBudWxsICYmIHRoaXMuX2hhc0N1c3RvbVZhbHVlKCkpIHtcbiAgICAgIG9wdGlvbiA9IHRoaXMuX2dldEN1c3RvbVZhbHVlKCk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbiAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuX29uT3B0aW9uU2VsZWN0ZWQob3B0aW9uLCBldmVudCk7XG4gICAgfVxuICB9O1xuXG4gIGV2ZW50TWFwID0gKCkgPT4ge1xuICAgIGNvbnN0IGV2ZW50cyA9IHt9O1xuXG4gICAgZXZlbnRzW0tleUV2ZW50LkRPTV9WS19VUF0gPSB0aGlzLm5hdlVwO1xuICAgIGV2ZW50c1tLZXlFdmVudC5ET01fVktfRE9XTl0gPSB0aGlzLm5hdkRvd247XG4gICAgZXZlbnRzW0tleUV2ZW50LkRPTV9WS19SRVRVUk5dID0gZXZlbnRzW0tleUV2ZW50LkRPTV9WS19FTlRFUl0gPSB0aGlzLl9vbkVudGVyO1xuICAgIGV2ZW50c1tLZXlFdmVudC5ET01fVktfRVNDQVBFXSA9IHRoaXMuX29uRXNjYXBlO1xuICAgIGV2ZW50c1tLZXlFdmVudC5ET01fVktfVEFCXSA9IHRoaXMuX29uVGFiO1xuXG4gICAgcmV0dXJuIGV2ZW50cztcbiAgfTtcblxuICBfbmF2ID0gZGVsdGEgPT4ge1xuICAgIGlmICghdGhpcy5faGFzSGludCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBuZXdJbmRleCA9XG4gICAgICB0aGlzLnN0YXRlLnNlbGVjdGlvbkluZGV4ID09PSBudWxsXG4gICAgICAgID8gZGVsdGEgPT09IDFcbiAgICAgICAgICA/IDBcbiAgICAgICAgICA6IGRlbHRhXG4gICAgICAgIDogdGhpcy5zdGF0ZS5zZWxlY3Rpb25JbmRleCArIGRlbHRhO1xuICAgIGxldCBsZW5ndGggPSB0aGlzLnByb3BzLm1heFZpc2libGVcbiAgICAgID8gdGhpcy5zdGF0ZS5zZWFyY2hSZXN1bHRzLnNsaWNlKDAsIHRoaXMucHJvcHMubWF4VmlzaWJsZSkubGVuZ3RoXG4gICAgICA6IHRoaXMuc3RhdGUuc2VhcmNoUmVzdWx0cy5sZW5ndGg7XG4gICAgaWYgKHRoaXMuX2hhc0N1c3RvbVZhbHVlKCkpIHtcbiAgICAgIGxlbmd0aCArPSAxO1xuICAgIH1cblxuICAgIGlmIChuZXdJbmRleCA8IDApIHtcbiAgICAgIG5ld0luZGV4ICs9IGxlbmd0aDtcbiAgICB9IGVsc2UgaWYgKG5ld0luZGV4ID49IGxlbmd0aCkge1xuICAgICAgbmV3SW5kZXggLT0gbGVuZ3RoO1xuICAgIH1cblxuICAgIHRoaXMuc2V0U3RhdGUoe3NlbGVjdGlvbkluZGV4OiBuZXdJbmRleH0pO1xuICB9O1xuXG4gIG5hdkRvd24gPSAoKSA9PiB7XG4gICAgdGhpcy5fbmF2KDEpO1xuICB9O1xuXG4gIG5hdlVwID0gKCkgPT4ge1xuICAgIHRoaXMuX25hdigtMSk7XG4gIH07XG5cbiAgX29uQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSBldmVudCA9PiB7XG4gICAgaWYgKHRoaXMucHJvcHMub25DaGFuZ2UpIHtcbiAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UoZXZlbnQpO1xuICAgIH1cblxuICAgIHRoaXMuX29uVGV4dEVudHJ5VXBkYXRlZCgpO1xuICB9O1xuXG4gIF9vbktleURvd246IFJlYWN0LktleWJvYXJkRXZlbnRIYW5kbGVyPEhUTUxEaXZFbGVtZW50PiA9IGV2ZW50ID0+IHtcbiAgICAvLyBJZiB0aGVyZSBhcmUgbm8gdmlzaWJsZSBlbGVtZW50cywgZG9uJ3QgcGVyZm9ybSBzZWxlY3RvciBuYXZpZ2F0aW9uLlxuICAgIC8vIEp1c3QgcGFzcyB0aGlzIHVwIHRvIHRoZSB1cHN0cmVhbSBvbktleWRvd24gaGFuZGxlci5cbiAgICAvLyBBbHNvIHNraXAgaWYgdGhlIHVzZXIgaXMgcHJlc3NpbmcgdGhlIHNoaWZ0IGtleSwgc2luY2Ugbm9uZSBvZiBvdXIgaGFuZGxlcnMgYXJlIGxvb2tpbmcgZm9yIHNoaWZ0XG4gICAgaWYgKCF0aGlzLl9oYXNIaW50KCkgfHwgZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uS2V5RG93bj8uKGV2ZW50KTtcbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGVyID0gdGhpcy5ldmVudE1hcCgpW2V2ZW50LmtleUNvZGVdO1xuXG4gICAgaWYgKGhhbmRsZXIpIHtcbiAgICAgIGhhbmRsZXIoZXZlbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbktleURvd24/LihldmVudCk7XG4gICAgfVxuICAgIC8vIERvbid0IHByb3BhZ2F0ZSB0aGUga2V5c3Ryb2tlIGJhY2sgdG8gdGhlIERPTS9icm93c2VyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfTtcblxuICBfb25Gb2N1czogUmVhY3QuRm9jdXNFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+ID0gZXZlbnQgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoe2lzRm9jdXNlZDogdHJ1ZX0pO1xuICAgIGlmICh0aGlzLnByb3BzLm9uRm9jdXMpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uRm9jdXMoZXZlbnQpO1xuICAgIH1cbiAgfTtcblxuICBfb25CbHVyOiBSZWFjdC5Gb2N1c0V2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IGV2ZW50ID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHtpc0ZvY3VzZWQ6IGZhbHNlfSk7XG4gICAgaWYgKHRoaXMucHJvcHMub25CbHVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5wcm9wcy5vbkJsdXIoZXZlbnQpO1xuICAgIH1cbiAgfTtcblxuICBfcmVuZGVySGlkZGVuSW5wdXQoKSB7XG4gICAgaWYgKCF0aGlzLnByb3BzLm5hbWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiA8aW5wdXQgdHlwZT1cImhpZGRlblwiIG5hbWU9e3RoaXMucHJvcHMubmFtZX0gdmFsdWU9e3RoaXMuc3RhdGUuc2VsZWN0aW9ufSAvPjtcbiAgfVxuXG4gIF9oYXNIaW50KCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLnNlYXJjaFJlc3VsdHMubGVuZ3RoID4gMCB8fCB0aGlzLl9oYXNDdXN0b21WYWx1ZSgpO1xuICB9XG5cbiAgX2hhc0ZpeGVkT3B0aW9ucygpIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLnByb3BzLmZpeGVkT3B0aW9ucykgJiYgdGhpcy5wcm9wcy5maXhlZE9wdGlvbnMubGVuZ3RoO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IGlucHV0Q2xhc3NlcyA9IHt9O1xuICAgIGlucHV0Q2xhc3Nlc1t0aGlzLnByb3BzLmN1c3RvbUNsYXNzZXM/LmlucHV0XSA9IEJvb2xlYW4odGhpcy5wcm9wcy5jdXN0b21DbGFzc2VzPy5pbnB1dCk7XG4gICAgY29uc3QgaW5wdXRDbGFzc0xpc3QgPSBjbGFzc05hbWVzKGlucHV0Q2xhc3Nlcyk7XG5cbiAgICBjb25zdCBjbGFzc2VzID0ge1xuICAgICAgW0RFRkFVTFRfQ0xBU1NdOiB0aGlzLnByb3BzLmRlZmF1bHRDbGFzc05hbWVzXG4gICAgfTtcbiAgICBjbGFzc2VzW3RoaXMucHJvcHMuY2xhc3NOYW1lID8gdGhpcy5wcm9wcy5jbGFzc05hbWUgOiAnJ10gPSBCb29sZWFuKHRoaXMucHJvcHMuY2xhc3NOYW1lKTtcbiAgICBjb25zdCBjbGFzc0xpc3QgPSBjbGFzc05hbWVzKGNsYXNzZXMpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUeXBlYWhlYWRXcmFwcGVyXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NMaXN0fVxuICAgICAgICByZWY9e3RoaXMucm9vdH1cbiAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgIG9uS2V5RG93bj17dGhpcy5fb25LZXlEb3dufVxuICAgICAgICBvbktleVByZXNzPXt0aGlzLnByb3BzLm9uS2V5UHJlc3N9XG4gICAgICAgIG9uS2V5VXA9e3RoaXMucHJvcHMub25LZXlVcH1cbiAgICAgICAgb25Gb2N1cz17dGhpcy5fb25Gb2N1c31cbiAgICAgICAgbGlnaHQ9e3RoaXMucHJvcHMubGlnaHR9XG4gICAgICA+XG4gICAgICAgIHt0aGlzLl9yZW5kZXJIaWRkZW5JbnB1dCgpfVxuICAgICAgICB7dGhpcy5wcm9wcy5zZWFyY2hhYmxlID8gKFxuICAgICAgICAgIDxJbnB1dEJveD5cbiAgICAgICAgICAgIDxUeXBlYWhlYWRJbnB1dFxuICAgICAgICAgICAgICByZWY9e3RoaXMuZW50cnl9XG4gICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgZGlzYWJsZWQ9e3RoaXMucHJvcHMuZGlzYWJsZWR9XG4gICAgICAgICAgICAgIHsuLi50aGlzLnByb3BzLmlucHV0UHJvcHN9XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0aGlzLnByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2lucHV0Q2xhc3NMaXN0fVxuICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5zdGF0ZS5lbnRyeVZhbHVlfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17dGhpcy5fb25DaGFuZ2V9XG4gICAgICAgICAgICAgIG9uQmx1cj17dGhpcy5fb25CbHVyfVxuICAgICAgICAgICAgICBsaWdodD17dGhpcy5wcm9wcy5saWdodH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8SW5wdXRJY29uPlxuICAgICAgICAgICAgICA8dGhpcy5wcm9wcy5pbnB1dEljb24gaGVpZ2h0PVwiMThweFwiIC8+XG4gICAgICAgICAgICA8L0lucHV0SWNvbj5cbiAgICAgICAgICA8L0lucHV0Qm94PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgICAge3RoaXMuX3JlbmRlckluY3JlbWVudGFsU2VhcmNoUmVzdWx0cygpfVxuICAgICAgPC9UeXBlYWhlYWRXcmFwcGVyPlxuICAgICk7XG4gIH1cbn1cblxucG9seWZpbGwoVHlwZWFoZWFkKTtcblxuZXhwb3J0IGRlZmF1bHQgVHlwZWFoZWFkO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsc0JBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLFdBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFLLGlCQUFBLEdBQUFGLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTSxPQUFBLEdBQUFOLE9BQUE7QUFFQSxJQUFBTyxTQUFBLEdBQUFKLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUSxhQUFBLEdBQUFULHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxNQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxVQUFBLEdBQUFWLE9BQUE7QUFBOEMsSUFBQVcsZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQWI5QztBQUNBO0FB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
438
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RMaWZlY3ljbGVzQ29tcGF0IiwiX2Z1enp5IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jbGFzc25hbWVzIiwiX3N0eWxlZENvbXBvbmVudHMiLCJfd2luZG93IiwiX2FjY2Vzc29yIiwiX2Ryb3Bkb3duTGlzdCIsIl9pY29ucyIsIl9jb25zdGFudHMiLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl90ZW1wbGF0ZU9iamVjdDQiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfY2FsbFN1cGVyIiwibyIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiYXBwbHkiLCJCb29sZWFuIiwicHJvdG90eXBlIiwidmFsdWVPZiIsIkRFRkFVTFRfQ0xBU1MiLCJUeXBlYWhlYWRXcmFwcGVyIiwic3R5bGVkIiwiZGl2Iiwid2l0aENvbmZpZyIsInNob3VsZEZvcndhcmRQcm9wIiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsImxpZ2h0IiwidGhlbWUiLCJkcm9wZG93bkxpc3RCZ2RMVCIsImRyb3Bkb3duTGlzdEJnZCIsImRyb3Bkb3duTGlzdFNoYWRvdyIsIklucHV0Qm94IiwiYXR0cnMiLCJjbGFzc05hbWUiLCJUeXBlYWhlYWRJbnB1dCIsImlucHV0IiwiaW5wdXRMVCIsInNlY29uZGFyeUlucHV0Iiwic2VsZWN0QmFja2dyb3VuZExUIiwic2Vjb25kYXJ5SW5wdXRCZ2QiLCJJbnB1dEljb24iLCJpbnB1dFBsYWNlaG9sZGVyQ29sb3IiLCJnZW5lcmF0ZVNlYXJjaEZ1bmN0aW9uIiwic2VhcmNoT3B0aW9ucyIsImZpbHRlck9wdGlvbiIsIkNvbnNvbGUiLCJ3YXJuIiwidmFsdWUiLCJvcHRpb25zIiwiZmlsdGVyIiwibWFwcGVyIiwiQWNjZXNzb3IiLCJnZW5lcmF0ZUFjY2Vzc29yIiwiSURFTlRJVFlfRk4iLCJmdXp6eSIsImV4dHJhY3QiLCJtYXAiLCJyZXMiLCJpbmRleCIsInNlYXJjaE9wdGlvbnNPbklucHV0IiwiaW5wdXRWYWx1ZSIsImdldE9wdGlvbnNGb3JWYWx1ZSIsInN0YXRlIiwic2hvd09wdGlvbnNXaGVuRW1wdHkiLCJzZWFyY2hhYmxlIiwic2hvdWxkU2tpcFNlYXJjaCIsImVtcHR5VmFsdWUiLCJ0cmltIiwibGVuZ3RoIiwiaXNGb2N1c2VkIiwibm9vcCIsIlR5cGVhaGVhZCIsIl9Db21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfZGVmaW5lUHJvcGVydHkyIiwiY3JlYXRlUmVmIiwiZW50cnkiLCJjdXJyZW50IiwiZm9jdXMiLCJfdGhpcyRzdGF0ZSRlbnRyeVZhbHUiLCJOdW1iZXIiLCJhbGxvd0N1c3RvbVZhbHVlcyIsImVudHJ5VmFsdWUiLCJzZWFyY2hSZXN1bHRzIiwiaW5kZXhPZiIsIl9oYXNDdXN0b21WYWx1ZSIsIm9wdGlvbiIsImV2ZW50IiwiX3RoaXMkcHJvcHMkb25PcHRpb25TIiwiX3RoaXMkcHJvcHMiLCJzZXRTdGF0ZSIsInNlbGVjdGlvbiIsIm9uT3B0aW9uU2VsZWN0ZWQiLCJfdGhpcyRlbnRyeSRjdXJyZW50IiwiZ2V0U2VsZWN0aW9uIiwiX3RoaXMkcHJvcHMkb25LZXlEb3duIiwiX3RoaXMkcHJvcHMyIiwib25LZXlEb3duIiwiX29uT3B0aW9uU2VsZWN0ZWQiLCJzZWxlY3Rpb25JbmRleCIsIl9nZXRDdXN0b21WYWx1ZSIsImV2ZW50cyIsIktleUV2ZW50IiwiRE9NX1ZLX1VQIiwibmF2VXAiLCJET01fVktfRE9XTiIsIm5hdkRvd24iLCJET01fVktfUkVUVVJOIiwiRE9NX1ZLX0VOVEVSIiwiX29uRW50ZXIiLCJET01fVktfRVNDQVBFIiwiX29uRXNjYXBlIiwiRE9NX1ZLX1RBQiIsIl9vblRhYiIsImRlbHRhIiwiX2hhc0hpbnQiLCJuZXdJbmRleCIsIm1heFZpc2libGUiLCJzbGljZSIsIl9uYXYiLCJvbkNoYW5nZSIsIl9vblRleHRFbnRyeVVwZGF0ZWQiLCJzaGlmdEtleSIsIl90aGlzJHByb3BzJG9uS2V5RG93bjIiLCJfdGhpcyRwcm9wczMiLCJoYW5kbGVyIiwiZXZlbnRNYXAiLCJrZXlDb2RlIiwiX3RoaXMkcHJvcHMkb25LZXlEb3duMyIsIl90aGlzJHByb3BzNCIsInByZXZlbnREZWZhdWx0Iiwib25Gb2N1cyIsIm9uQmx1ciIsImluaXRpYWxWYWx1ZSIsIl9pbmhlcml0czIiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwiY29tcG9uZW50RGlkTW91bnQiLCJhdXRvRm9jdXMiLCJfdGhpcyRyb290JGN1cnJlbnQiLCJyb290IiwiX3JlbmRlckluY3JlbWVudGFsU2VhcmNoUmVzdWx0cyIsIl90aGlzJHByb3BzJGN1c3RvbUxpcyIsImN1c3RvbUxpc3RDb21wb25lbnQiLCJDdXN0b21MaXN0Q29tcG9uZW50IiwiRHJvcGRvd25MaXN0IiwiY3JlYXRlRWxlbWVudCIsImZpeGVkT3B0aW9ucyIsImFyZVJlc3VsdHNUcnVuY2F0ZWQiLCJyZXN1bHRzVHJ1bmNhdGVkTWVzc2FnZSIsImN1c3RvbVZhbHVlIiwiY3VzdG9tQ2xhc3NlcyIsImN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IiwiY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudCIsImRlZmF1bHRDbGFzc05hbWVzIiwiZGlzcGxheU9wdGlvbiIsInNlbGVjdGVkSXRlbXMiLCJfaGFzRml4ZWRPcHRpb25zIiwiX3RoaXMkcHJvcHMkZml4ZWRPcHRpIiwiX3RoaXMkcHJvcHMkZml4ZWRPcHRpMiIsIl90aGlzJHByb3BzJGZpeGVkT3B0aTMiLCJfcmVuZGVySGlkZGVuSW5wdXQiLCJuYW1lIiwidHlwZSIsIkFycmF5IiwiaXNBcnJheSIsInJlbmRlciIsIl90aGlzJHByb3BzJGN1c3RvbUNsYSIsIl90aGlzJHByb3BzJGN1c3RvbUNsYTIiLCJpbnB1dENsYXNzZXMiLCJpbnB1dENsYXNzTGlzdCIsImNsYXNzTmFtZXMiLCJjbGFzc2VzIiwiY2xhc3NMaXN0IiwicmVmIiwidGFiSW5kZXgiLCJfb25LZXlEb3duIiwib25LZXlQcmVzcyIsIm9uS2V5VXAiLCJfb25Gb2N1cyIsIl9leHRlbmRzMiIsImRpc2FibGVkIiwiaW5wdXRQcm9wcyIsInBsYWNlaG9sZGVyIiwiX29uQ2hhbmdlIiwiX29uQmx1ciIsImlucHV0SWNvbiIsImhlaWdodCIsImdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyIsInByZXZPcHRpb25zIiwiQ29tcG9uZW50IiwicmVzdWx0cyIsImxpc3RJdGVtIiwibGlzdEFuY2hvciIsInRleHRhcmVhIiwiaW5wdXREaXNwbGF5T3B0aW9uIiwiTGlzdEl0ZW0iLCJTZWFyY2giLCJwb2x5ZmlsbCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21tb24vaXRlbS1zZWxlY3Rvci90eXBlYWhlYWQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmLCBFbGVtZW50VHlwZSwgS2V5Ym9hcmRFdmVudEhhbmRsZXJ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7cG9seWZpbGx9IGZyb20gJ3JlYWN0LWxpZmVjeWNsZXMtY29tcGF0JztcbmltcG9ydCBmdXp6eSBmcm9tICdmdXp6eSc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBzdHlsZWQsIHtJU3R5bGVkQ29tcG9uZW50fSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge2NvbnNvbGUgYXMgQ29uc29sZX0gZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5cbmltcG9ydCBBY2Nlc3NvciBmcm9tICcuL2FjY2Vzc29yJztcbmltcG9ydCBEcm9wZG93bkxpc3QsIHtMaXN0SXRlbX0gZnJvbSAnLi9kcm9wZG93bi1saXN0JztcbmltcG9ydCB7U2VhcmNofSBmcm9tICcuLi9pY29ucyc7XG5pbXBvcnQge0tleUV2ZW50fSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0Jhc2VDb21wb25lbnRQcm9wc30gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHtzaG91bGRGb3J3YXJkUHJvcH0gZnJvbSAnLi4vc3R5bGVkLWNvbXBvbmVudHMnO1xuY29uc3QgREVGQVVMVF9DTEFTUyA9ICd0eXBlYWhlYWQnO1xuLyoqXG4gKiBDb3BpZWQgbW9zdGx5IGZyb20gJ3JlYWN0LXR5cGVhaGVhZCcsIGFuIGF1dG8tY29tcGxldGluZyB0ZXh0IGlucHV0XG4gKlxuICogUmVuZGVycyBhbiB0ZXh0IGlucHV0IHRoYXQgc2hvd3Mgb3B0aW9ucyBuZWFyYnkgdGhhdCB5b3UgY2FuIHVzZSB0aGVcbiAqIGtleWJvYXJkIG9yIG1vdXNlIHRvIHNlbGVjdC5cbiAqL1xuXG5leHBvcnQgdHlwZSBUeXBlYWhlYWRXcmFwcGVyUHJvcHMgPSBCYXNlQ29tcG9uZW50UHJvcHMgJiB7XG4gIGxpZ2h0PzogYm9vbGVhbjtcbiAgcmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xufTtcblxuY29uc3QgVHlwZWFoZWFkV3JhcHBlcjogSVN0eWxlZENvbXBvbmVudDwnd2ViJywgVHlwZWFoZWFkV3JhcHBlclByb3BzPiA9IHN0eWxlZC5kaXYud2l0aENvbmZpZyh7XG4gIHNob3VsZEZvcndhcmRQcm9wXG59KTxUeXBlYWhlYWRXcmFwcGVyUHJvcHM+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+XG4gICAgcHJvcHMubGlnaHQgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCZ2RMVCA6IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJnZH07XG4gIGJveC1zaGFkb3c6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0U2hhZG93fTtcblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG5gO1xuXG5jb25zdCBJbnB1dEJveCA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICd0eXBlYWhlYWRfX2lucHV0X2JveCdcbn0pYFxuICBwYWRkaW5nOiA4cHg7XG5gO1xuXG5leHBvcnQgdHlwZSBUeXBlYWhlYWRJbnB1dFByb3BzID0gQmFzZUNvbXBvbmVudFByb3BzICYge1xuICBsaWdodD86IGJvb2xlYW47XG4gIHZhbHVlPzogc3RyaW5nO1xuICB0eXBlOiBzdHJpbmc7XG4gIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgcmVmOiBSZWFjdC5SZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQ+O1xuICBwbGFjZWhvbGRlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbn07XG5cbmNvbnN0IFR5cGVhaGVhZElucHV0OiBJU3R5bGVkQ29tcG9uZW50PCd3ZWInLCBUeXBlYWhlYWRJbnB1dFByb3BzPiA9IHN0eWxlZC5pbnB1dC53aXRoQ29uZmlnKHtcbiAgc2hvdWxkRm9yd2FyZFByb3Bcbn0pPFR5cGVhaGVhZElucHV0UHJvcHM+YFxuICAke3Byb3BzID0+IChwcm9wcy5saWdodCA/IHByb3BzLnRoZW1lLmlucHV0TFQgOiBwcm9wcy50aGVtZS5zZWNvbmRhcnlJbnB1dCl9XG4gICY6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+XG4gICAgICBwcm9wcy5saWdodCA/IHByb3BzLnRoZW1lLnNlbGVjdEJhY2tncm91bmRMVCA6IHByb3BzLnRoZW1lLnNlY29uZGFyeUlucHV0QmdkfTtcbiAgfVxuYDtcblxuY29uc3QgSW5wdXRJY29uID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ3R5cGVhaGVhZF9faW5wdXRfaWNvbidcbn0pYFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxNXB4O1xuICB0b3A6IDE0cHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlucHV0UGxhY2Vob2xkZXJDb2xvcn07XG5gO1xuXG5mdW5jdGlvbiBnZW5lcmF0ZVNlYXJjaEZ1bmN0aW9uKHByb3BzOiBUeXBlYWhlYWRQcm9wcykge1xuICBjb25zdCB7c2VhcmNoT3B0aW9ucywgZmlsdGVyT3B0aW9ufSA9IHByb3BzO1xuICBpZiAodHlwZW9mIHNlYXJjaE9wdGlvbnMgPT09ICdmdW5jdGlvbicpIHtcbiAgICBpZiAoZmlsdGVyT3B0aW9uICE9PSBudWxsKSB7XG4gICAgICBDb25zb2xlLndhcm4oJ3NlYXJjaE9wdGlvbnMgcHJvcCBpcyBiZWluZyB1c2VkLCBmaWx0ZXJPcHRpb24gcHJvcCB3aWxsIGJlIGlnbm9yZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIHNlYXJjaE9wdGlvbnM7XG4gIH0gZWxzZSBpZiAodHlwZW9mIGZpbHRlck9wdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIC8vIHVzZSBjdXN0b20gZmlsdGVyIG9wdGlvblxuICAgIHJldHVybiAodmFsdWUsIG9wdGlvbnMpID0+IG9wdGlvbnMuZmlsdGVyKG8gPT4gZmlsdGVyT3B0aW9uKHZhbHVlLCBvKSk7XG4gIH1cblxuICBjb25zdCBtYXBwZXIgPVxuICAgIHR5cGVvZiBmaWx0ZXJPcHRpb24gPT09ICdzdHJpbmcnXG4gICAgICA/IEFjY2Vzc29yLmdlbmVyYXRlQWNjZXNzb3IoZmlsdGVyT3B0aW9uKVxuICAgICAgOiBBY2Nlc3Nvci5JREVOVElUWV9GTjtcblxuICByZXR1cm4gKHZhbHVlLCBvcHRpb25zKSA9PiB7XG4gICAgcmV0dXJuIGZ1enp5LmZpbHRlcih2YWx1ZSwgb3B0aW9ucywge2V4dHJhY3Q6IG1hcHBlcn0pLm1hcChyZXMgPT4gb3B0aW9uc1tyZXMuaW5kZXhdKTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gc2VhcmNoT3B0aW9uc09uSW5wdXQoaW5wdXRWYWx1ZSwgcHJvcHMpIHtcbiAgY29uc3Qgc2VhcmNoT3B0aW9ucyA9IGdlbmVyYXRlU2VhcmNoRnVuY3Rpb24ocHJvcHMpO1xuICByZXR1cm4gc2VhcmNoT3B0aW9ucyhpbnB1dFZhbHVlLCBwcm9wcy5vcHRpb25zKTtcbn1cblxuZnVuY3Rpb24gZ2V0T3B0aW9uc0ZvclZhbHVlKHZhbHVlLCBwcm9wcywgc3RhdGUpIHtcbiAgY29uc3Qge29wdGlvbnMsIHNob3dPcHRpb25zV2hlbkVtcHR5fSA9IHByb3BzO1xuXG4gIGlmICghcHJvcHMuc2VhcmNoYWJsZSkge1xuICAgIC8vIGRpcmVjdGx5IHBhc3MgdGhyb3VnaCBvcHRpb25zIGlmIGNhbiBub3QgYmUgc2VhcmNoZWRcbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuICBpZiAoc2hvdWxkU2tpcFNlYXJjaCh2YWx1ZSwgc3RhdGUsIHNob3dPcHRpb25zV2hlbkVtcHR5KSkge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgY29uc3Qgc2VhcmNoT3B0aW9ucyA9IGdlbmVyYXRlU2VhcmNoRnVuY3Rpb24ocHJvcHMpO1xuICByZXR1cm4gc2VhcmNoT3B0aW9ucyh2YWx1ZSwgb3B0aW9ucyk7XG59XG5cbmZ1bmN0aW9uIHNob3VsZFNraXBTZWFyY2goaW5wdXQsIHN0YXRlLCBzaG93T3B0aW9uc1doZW5FbXB0eSkge1xuICBjb25zdCBlbXB0eVZhbHVlID0gIWlucHV0IHx8IGlucHV0LnRyaW0oKS5sZW5ndGggPT09IDA7XG5cbiAgLy8gdGhpcy5zdGF0ZSBtdXN0IGJlIGNoZWNrZWQgYmVjYXVzZSBpdCBtYXkgbm90IGJlIGRlZmluZWQgeWV0IGlmIHRoaXMgZnVuY3Rpb25cbiAgLy8gaXMgY2FsbGVkIGZyb20gd2l0aGluIGdldEluaXRpYWxTdGF0ZVxuICBjb25zdCBpc0ZvY3VzZWQgPSBzdGF0ZSAmJiBzdGF0ZS5pc0ZvY3VzZWQ7XG4gIHJldHVybiAhKHNob3dPcHRpb25zV2hlbkVtcHR5ICYmIGlzRm9jdXNlZCkgJiYgZW1wdHlWYWx1ZTtcbn1cblxudHlwZSBPcHRpb24gPSBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgb2JqZWN0IHwgdW5kZWZpbmVkO1xuaW50ZXJmYWNlIFR5cGVhaGVhZFByb3BzIHtcbiAgbmFtZT86IHN0cmluZztcbiAgY3VzdG9tQ2xhc3Nlcz86IGFueTtcbiAgcmVzdWx0c1RydW5jYXRlZE1lc3NhZ2U/OiBzdHJpbmc7XG4gIG9wdGlvbnM/OiBSZWFkb25seUFycmF5PE9wdGlvbj47XG4gIGZpeGVkT3B0aW9ucz86IFJlYWRvbmx5QXJyYXk8T3B0aW9uPiB8IG51bGw7XG4gIGFsbG93Q3VzdG9tVmFsdWVzPzogbnVtYmVyO1xuICBpbml0aWFsVmFsdWU/OiBzdHJpbmc7XG4gIHZhbHVlPzogc3RyaW5nO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICB0ZXh0YXJlYT86IGJvb2xlYW47XG4gIGlucHV0UHJvcHM/OiBvYmplY3Q7XG4gIG9uT3B0aW9uU2VsZWN0ZWQ/OiAob3B0aW9uOiBhbnksIGV2ZW50OiBhbnkpID0+IGFueTtcbiAgb25DaGFuZ2U/OiAoZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB2b2lkO1xuICBvbktleURvd24/OiAoZXZlbnQ6IFJlYWN0LktleWJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB2b2lkO1xuICBvbktleVByZXNzPzogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBvbktleVVwPzogS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+O1xuICBvbkZvY3VzPzogKGV2ZW50OiBSZWFjdC5Gb2N1c0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4gdm9pZDtcbiAgb25CbHVyPzogKGV2ZW50OiBSZWFjdC5Gb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB2b2lkO1xuICBmaWx0ZXJPcHRpb24/OiBzdHJpbmcgfCAoKG86IE9wdGlvbiwgczogc3RyaW5nKSA9PiBib29sZWFuKTtcbiAgc2VhcmNoT3B0aW9ucz86IChvOiBPcHRpb24sIHM6IHN0cmluZykgPT4gYm9vbGVhbjtcbiAgZGlzcGxheU9wdGlvbj86IHN0cmluZyB8ICgobzogT3B0aW9uKSA9PiBzdHJpbmcpO1xuICBpbnB1dERpc3BsYXlPcHRpb24/OiBzdHJpbmcgfCAoKG86IE9wdGlvbikgPT4gc3RyaW5nKTtcbiAgZm9ybUlucHV0T3B0aW9uPzogc3RyaW5nIHwgKChvOiBPcHRpb24pID0+IHN0cmluZyk7XG4gIGRlZmF1bHRDbGFzc05hbWVzPzogYm9vbGVhbjtcbiAgY3VzdG9tTGlzdENvbXBvbmVudD86IEVsZW1lbnRUeXBlO1xuICBjdXN0b21MaXN0SXRlbUNvbXBvbmVudD86IEVsZW1lbnRUeXBlO1xuICBjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50PzogRWxlbWVudFR5cGUgfCBudWxsO1xuICBzaG93T3B0aW9uc1doZW5FbXB0eT86IGJvb2xlYW47XG4gIHNlYXJjaGFibGU/OiBib29sZWFuO1xuICBsaWdodD86IGJvb2xlYW47XG4gIGlucHV0SWNvbjogRWxlbWVudFR5cGU7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgc2VsZWN0ZWRJdGVtcz86IGFueVtdIHwgbnVsbDtcbiAgYXV0b0ZvY3VzOiBib29sZWFuO1xuICAvLyBkZXByZWNhdGVkXG4gIG1heFZpc2libGU/OiBudW1iZXI7XG59XG5cbmludGVyZmFjZSBUeXBlYWhlYWRTdGF0ZSB7XG4gIHNlYXJjaFJlc3VsdHM6IFJlYWRvbmx5QXJyYXk8c3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdCB8IHVuZGVmaW5lZD47XG5cbiAgLy8gVGhpcyBzaG91bGQgYmUgY2FsbGVkIHNvbWV0aGluZyBlbHNlLCAnZW50cnlWYWx1ZSdcbiAgZW50cnlWYWx1ZT86IHN0cmluZztcblxuICAvLyBBIHZhbGlkIHR5cGVhaGVhZCB2YWx1ZVxuICBzZWxlY3Rpb24/OiBzdHJpbmc7XG5cbiAgLy8gSW5kZXggb2YgdGhlIHNlbGVjdGlvblxuICBzZWxlY3Rpb25JbmRleDogbnVsbDtcblxuICAvLyBLZWVwIHRyYWNrIG9mIHRoZSBmb2N1cyBzdGF0ZSBvZiB0aGUgaW5wdXQgZWxlbWVudCwgdG8gZGV0ZXJtaW5lXG4gIC8vIHdoZXRoZXIgdG8gc2hvdyBvcHRpb25zIHdoZW4gZW1wdHkgKGlmIHNob3dPcHRpb25zV2hlbkVtcHR5IGlzIHRydWUpXG4gIGlzRm9jdXNlZDogYm9vbGVhbjtcbn1cblxuZnVuY3Rpb24gbm9vcCgpIHtcbiAgcmV0dXJuO1xufVxuY2xhc3MgVHlwZWFoZWFkIGV4dGVuZHMgQ29tcG9uZW50PFR5cGVhaGVhZFByb3BzLCBUeXBlYWhlYWRTdGF0ZT4ge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIG9wdGlvbnM6IFtdLFxuICAgIGN1c3RvbUNsYXNzZXM6IHtcbiAgICAgIHJlc3VsdHM6ICdsaXN0LXNlbGVjdG9yJyxcbiAgICAgIGlucHV0OiAndHlwZWFoZWFkX19pbnB1dCcsXG4gICAgICBsaXN0SXRlbTogJ2xpc3RfX2l0ZW0nLFxuICAgICAgbGlzdEFuY2hvcjogJ2xpc3RfX2l0ZW1fX2FuY2hvcidcbiAgICB9LFxuICAgIGFsbG93Q3VzdG9tVmFsdWVzOiAwLFxuICAgIGluaXRpYWxWYWx1ZTogJycsXG4gICAgdmFsdWU6ICcnLFxuICAgIHBsYWNlaG9sZGVyOiAnJyxcbiAgICBkaXNhYmxlZDogZmFsc2UsXG4gICAgdGV4dGFyZWE6IGZhbHNlLFxuICAgIGlucHV0UHJvcHM6IHt9LFxuICAgIG9uT3B0aW9uU2VsZWN0ZWQ6IG5vb3AsXG4gICAgb25DaGFuZ2U6IG5vb3AsXG4gICAgb25LZXlEb3duOiBub29wLFxuICAgIG9uS2V5UHJlc3M6IG5vb3AsXG4gICAgb25LZXlVcDogbm9vcCxcbiAgICBvbkZvY3VzOiBub29wLFxuICAgIG9uQmx1cjogbm9vcCxcbiAgICBmaWx0ZXJPcHRpb246IG51bGwsXG4gICAgc2VhcmNoT3B0aW9uczogbnVsbCxcbiAgICBpbnB1dERpc3BsYXlPcHRpb246IG51bGwsXG4gICAgZGVmYXVsdENsYXNzTmFtZXM6IHRydWUsXG4gICAgY3VzdG9tTGlzdENvbXBvbmVudDogRHJvcGRvd25MaXN0LFxuICAgIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50OiBMaXN0SXRlbSxcbiAgICBpbnB1dEljb246IFNlYXJjaCxcbiAgICBjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50OiBudWxsLFxuICAgIHNob3dPcHRpb25zV2hlbkVtcHR5OiB0cnVlLFxuICAgIHNlYXJjaGFibGU6IHRydWUsXG4gICAgcmVzdWx0c1RydW5jYXRlZE1lc3NhZ2U6IG51bGwsXG4gICAgYXV0b0ZvY3VzOiB0cnVlXG4gIH07XG5cbiAgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhwcm9wcywgc3RhdGUpIHtcbiAgICBpZiAocHJvcHMub3B0aW9ucyA9PT0gc3RhdGUucHJldk9wdGlvbnMpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICAvLyAgaW52b2tlZCBhZnRlciBhIGNvbXBvbmVudCBpcyBpbnN0YW50aWF0ZWQgYXMgd2VsbCBhcyBiZWZvcmUgaXQgaXMgcmUtcmVuZGVyZWRcbiAgICBjb25zdCBzZWFyY2hSZXN1bHRzID0gZ2V0T3B0aW9uc0ZvclZhbHVlKHN0YXRlLmVudHJ5VmFsdWUsIHByb3BzLCBzdGF0ZSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgc2VhcmNoUmVzdWx0cyxcbiAgICAgIHByZXZPcHRpb25zOiBwcm9wcy5vcHRpb25zXG4gICAgfTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIC8vIGluaXRpYXRlIHNlYXJjaFJlc3VsdHMgd2l0aCBvcHRpb25zXG4gICAgICBzZWFyY2hSZXN1bHRzOiB0aGlzLnByb3BzLm9wdGlvbnMgfHwgW10sXG5cbiAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIGNhbGxlZCBzb21ldGhpbmcgZWxzZSwgJ2VudHJ5VmFsdWUnXG4gICAgICBlbnRyeVZhbHVlOiB0aGlzLnByb3BzLnZhbHVlIHx8IHRoaXMucHJvcHMuaW5pdGlhbFZhbHVlLFxuXG4gICAgICAvLyBBIHZhbGlkIHR5cGVhaGVhZCB2YWx1ZVxuICAgICAgc2VsZWN0aW9uOiB0aGlzLnByb3BzLnZhbHVlLFxuXG4gICAgICAvLyBJbmRleCBvZiB0aGUgc2VsZWN0aW9uXG4gICAgICBzZWxlY3Rpb25JbmRleDogbnVsbCxcblxuICAgICAgLy8gS2VlcCB0cmFjayBvZiB0aGUgZm9jdXMgc3RhdGUgb2YgdGhlIGlucHV0IGVsZW1lbnQsIHRvIGRldGVybWluZVxuICAgICAgLy8gd2hldGhlciB0byBzaG93IG9wdGlvbnMgd2hlbiBlbXB0eSAoaWYgc2hvd09wdGlvbnNXaGVuRW1wdHkgaXMgdHJ1ZSlcbiAgICAgIGlzRm9jdXNlZDogZmFsc2VcbiAgICB9O1xuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgLy8gY2FsbCBmb2N1cyBvbiBlbnRyeSBvciBkaXYgdG8gdHJpZ2dlciBrZXkgZXZlbnRzIGxpc3RlbmVyXG4gICAgaWYgKHRoaXMucHJvcHMuYXV0b0ZvY3VzKSB7XG4gICAgICBpZiAodGhpcy5lbnRyeS5jdXJyZW50KSB7XG4gICAgICAgIHRoaXMuZW50cnkuY3VycmVudC5mb2N1cygpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yb290LmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcm9vdCA9IGNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcbiAgZW50cnkgPSBjcmVhdGVSZWY8SFRNTElucHV0RWxlbWVudD4oKTtcblxuICBmb2N1cyA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5lbnRyeS5jdXJyZW50KSB7XG4gICAgICB0aGlzLmVudHJ5LmN1cnJlbnQuZm9jdXMoKTtcbiAgICB9XG4gIH07XG5cbiAgX2hhc0N1c3RvbVZhbHVlID0gKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBOdW1iZXIodGhpcy5wcm9wcy5hbGxvd0N1c3RvbVZhbHVlcykgPiAwICYmXG4gICAgICBOdW1iZXIodGhpcy5zdGF0ZS5lbnRyeVZhbHVlPy5sZW5ndGgpID49IE51bWJlcih0aGlzLnByb3BzLmFsbG93Q3VzdG9tVmFsdWVzKSAmJlxuICAgICAgdGhpcy5zdGF0ZS5zZWFyY2hSZXN1bHRzLmluZGV4T2YodGhpcy5zdGF0ZS5lbnRyeVZhbHVlKSA8IDBcbiAgICApO1xuICB9O1xuXG4gIF9nZXRDdXN0b21WYWx1ZSA9ICgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5faGFzQ3VzdG9tVmFsdWUoKSA/IHRoaXMuc3RhdGUuZW50cnlWYWx1ZSA6IG51bGw7XG4gIH07XG5cbiAgX3JlbmRlckluY3JlbWVudGFsU2VhcmNoUmVzdWx0cygpIHtcbiAgICBjb25zdCB7Y3VzdG9tTGlzdENvbXBvbmVudDogQ3VzdG9tTGlzdENvbXBvbmVudCA9IERyb3Bkb3duTGlzdH0gPSB0aGlzLnByb3BzO1xuICAgIHJldHVybiAoXG4gICAgICA8Q3VzdG9tTGlzdENvbXBvbmVudFxuICAgICAgICBmaXhlZE9wdGlvbnM9e3RoaXMucHJvcHMuZml4ZWRPcHRpb25zfVxuICAgICAgICBvcHRpb25zPXt0aGlzLnN0YXRlLnNlYXJjaFJlc3VsdHN9XG4gICAgICAgIGFyZVJlc3VsdHNUcnVuY2F0ZWQ9e2ZhbHNlfVxuICAgICAgICByZXN1bHRzVHJ1bmNhdGVkTWVzc2FnZT17dGhpcy5wcm9wcy5yZXN1bHRzVHJ1bmNhdGVkTWVzc2FnZX1cbiAgICAgICAgb25PcHRpb25TZWxlY3RlZD17dGhpcy5fb25PcHRpb25TZWxlY3RlZH1cbiAgICAgICAgYWxsb3dDdXN0b21WYWx1ZXM9e3RoaXMucHJvcHMuYWxsb3dDdXN0b21WYWx1ZXN9XG4gICAgICAgIGN1c3RvbVZhbHVlPXt0aGlzLl9nZXRDdXN0b21WYWx1ZSgpfVxuICAgICAgICBjdXN0b21DbGFzc2VzPXt0aGlzLnByb3BzLmN1c3RvbUNsYXNzZXN9XG4gICAgICAgIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50PXt0aGlzLnByb3BzLmN1c3RvbUxpc3RJdGVtQ29tcG9uZW50fVxuICAgICAgICBjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50PXt0aGlzLnByb3BzLmN1c3RvbUxpc3RIZWFkZXJDb21wb25lbnR9XG4gICAgICAgIHNlbGVjdGlvbkluZGV4PXt0aGlzLnN0YXRlLnNlbGVjdGlvbkluZGV4fVxuICAgICAgICBkZWZhdWx0Q2xhc3NOYW1lcz17dGhpcy5wcm9wcy5kZWZhdWx0Q2xhc3NOYW1lc31cbiAgICAgICAgZGlzcGxheU9wdGlvbj17dGhpcy5wcm9wcy5kaXNwbGF5T3B0aW9ufVxuICAgICAgICBzZWxlY3RlZEl0ZW1zPXt0aGlzLnByb3BzLnNlbGVjdGVkSXRlbXN9XG4gICAgICAgIGxpZ2h0PXt0aGlzLnByb3BzLmxpZ2h0fVxuICAgICAgLz5cbiAgICApO1xuICB9XG5cbiAgZ2V0U2VsZWN0aW9uKCkge1xuICAgIGxldCBpbmRleDogbnVtYmVyIHwgbnVsbCA9IHRoaXMuc3RhdGUuc2VsZWN0aW9uSW5kZXg7XG4gICAgaWYgKGluZGV4ID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaW5kZXggPSBOdW1iZXIoaW5kZXgpO1xuXG4gICAgaWYgKHRoaXMuX2hhc0N1c3RvbVZhbHVlKCkpIHtcbiAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZS5lbnRyeVZhbHVlO1xuICAgICAgfVxuICAgICAgaW5kZXgtLTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX2hhc0ZpeGVkT3B0aW9ucygpKSB7XG4gICAgICByZXR1cm4gaW5kZXggPCBOdW1iZXIodGhpcy5wcm9wcy5maXhlZE9wdGlvbnM/Lmxlbmd0aClcbiAgICAgICAgPyB0aGlzLnByb3BzLmZpeGVkT3B0aW9ucz8uW2luZGV4XVxuICAgICAgICA6IHRoaXMuc3RhdGUuc2VhcmNoUmVzdWx0c1tpbmRleCAtIE51bWJlcih0aGlzLnByb3BzLmZpeGVkT3B0aW9ucz8ubGVuZ3RoKV07XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnN0YXRlLnNlYXJjaFJlc3VsdHNbaW5kZXhdO1xuICB9XG5cbiAgX29uT3B0aW9uU2VsZWN0ZWQgPSAob3B0aW9uLCBldmVudCkgPT4ge1xuICAgIGlmICh0aGlzLnByb3BzLnNlYXJjaGFibGUpIHtcbiAgICAgIC8vIHJlc2V0IGVudHJ5IGlucHV0XG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgLy8gcmVzZXQgc2VhcmNoIG9wdGlvbnMgd2hlbiBzZWxlY3Rpb24gaGFzIGJlZW4gbWFkZVxuICAgICAgICBzZWFyY2hSZXN1bHRzOiB0aGlzLnByb3BzLm9wdGlvbnMgfHwgW10sXG4gICAgICAgIHNlbGVjdGlvbjogJycsXG4gICAgICAgIGVudHJ5VmFsdWU6ICcnXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnByb3BzLm9uT3B0aW9uU2VsZWN0ZWQ/LihvcHRpb24sIGV2ZW50KTtcbiAgfTtcblxuICAvLyB1c2UgKCkgPT4ge30gdG8gYXZvaWQgYmluZGluZyAndGhpcydcbiAgX29uVGV4dEVudHJ5VXBkYXRlZCA9ICgpID0+IHtcbiAgICBpZiAodGhpcy5wcm9wcy5zZWFyY2hhYmxlKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZW50cnkuY3VycmVudD8udmFsdWU7XG5cbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBzZWFyY2hSZXN1bHRzOiBzZWFyY2hPcHRpb25zT25JbnB1dCh2YWx1ZSwgdGhpcy5wcm9wcyksXG4gICAgICAgIHNlbGVjdGlvbjogJycsXG4gICAgICAgIGVudHJ5VmFsdWU6IHZhbHVlXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgX29uRW50ZXIgPSBldmVudCA9PiB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKTtcbiAgICBpZiAoIXNlbGVjdGlvbikge1xuICAgICAgdGhpcy5wcm9wcy5vbktleURvd24/LihldmVudCk7XG4gICAgfVxuICAgIHRoaXMuX29uT3B0aW9uU2VsZWN0ZWQoc2VsZWN0aW9uLCBldmVudCk7XG4gIH07XG5cbiAgX29uRXNjYXBlID0gKCkgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgc2VsZWN0aW9uSW5kZXg6IG51bGxcbiAgICB9KTtcbiAgfTtcblxuICBfb25UYWIgPSBldmVudCA9PiB7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5nZXRTZWxlY3Rpb24oKTtcbiAgICBsZXQgb3B0aW9uID0gc2VsZWN0aW9uXG4gICAgICA/IHNlbGVjdGlvblxuICAgICAgOiB0aGlzLnN0YXRlLnNlYXJjaFJlc3VsdHMubGVuZ3RoID4gMFxuICAgICAgPyB0aGlzLnN0YXRlLnNlYXJjaFJlc3VsdHNbMF1cbiAgICAgIDogbnVsbDtcblxuICAgIGlmIChvcHRpb24gPT09IG51bGwgJiYgdGhpcy5faGFzQ3VzdG9tVmFsdWUoKSkge1xuICAgICAgb3B0aW9uID0gdGhpcy5fZ2V0Q3VzdG9tVmFsdWUoKTtcbiAgICB9XG5cbiAgICBpZiAob3B0aW9uICE9PSBudWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5fb25PcHRpb25TZWxlY3RlZChvcHRpb24sIGV2ZW50KTtcbiAgICB9XG4gIH07XG5cbiAgZXZlbnRNYXAgPSAoKSA9PiB7XG4gICAgY29uc3QgZXZlbnRzID0ge307XG5cbiAgICBldmVudHNbS2V5RXZlbnQuRE9NX1ZLX1VQXSA9IHRoaXMubmF2VXA7XG4gICAgZXZlbnRzW0tleUV2ZW50LkRPTV9WS19ET1dOXSA9IHRoaXMubmF2RG93bjtcbiAgICBldmVudHNbS2V5RXZlbnQuRE9NX1ZLX1JFVFVSTl0gPSBldmVudHNbS2V5RXZlbnQuRE9NX1ZLX0VOVEVSXSA9IHRoaXMuX29uRW50ZXI7XG4gICAgZXZlbnRzW0tleUV2ZW50LkRPTV9WS19FU0NBUEVdID0gdGhpcy5fb25Fc2NhcGU7XG4gICAgZXZlbnRzW0tleUV2ZW50LkRPTV9WS19UQUJdID0gdGhpcy5fb25UYWI7XG5cbiAgICByZXR1cm4gZXZlbnRzO1xuICB9O1xuXG4gIF9uYXYgPSBkZWx0YSA9PiB7XG4gICAgaWYgKCF0aGlzLl9oYXNIaW50KCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IG5ld0luZGV4ID1cbiAgICAgIHRoaXMuc3RhdGUuc2VsZWN0aW9uSW5kZXggPT09IG51bGxcbiAgICAgICAgPyBkZWx0YSA9PT0gMVxuICAgICAgICAgID8gMFxuICAgICAgICAgIDogZGVsdGFcbiAgICAgICAgOiB0aGlzLnN0YXRlLnNlbGVjdGlvbkluZGV4ICsgZGVsdGE7XG4gICAgbGV0IGxlbmd0aCA9IHRoaXMucHJvcHMubWF4VmlzaWJsZVxuICAgICAgPyB0aGlzLnN0YXRlLnNlYXJjaFJlc3VsdHMuc2xpY2UoMCwgdGhpcy5wcm9wcy5tYXhWaXNpYmxlKS5sZW5ndGhcbiAgICAgIDogdGhpcy5zdGF0ZS5zZWFyY2hSZXN1bHRzLmxlbmd0aDtcbiAgICBpZiAodGhpcy5faGFzQ3VzdG9tVmFsdWUoKSkge1xuICAgICAgbGVuZ3RoICs9IDE7XG4gICAgfVxuXG4gICAgaWYgKG5ld0luZGV4IDwgMCkge1xuICAgICAgbmV3SW5kZXggKz0gbGVuZ3RoO1xuICAgIH0gZWxzZSBpZiAobmV3SW5kZXggPj0gbGVuZ3RoKSB7XG4gICAgICBuZXdJbmRleCAtPSBsZW5ndGg7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRTdGF0ZSh7c2VsZWN0aW9uSW5kZXg6IG5ld0luZGV4fSk7XG4gIH07XG5cbiAgbmF2RG93biA9ICgpID0+IHtcbiAgICB0aGlzLl9uYXYoMSk7XG4gIH07XG5cbiAgbmF2VXAgPSAoKSA9PiB7XG4gICAgdGhpcy5fbmF2KC0xKTtcbiAgfTtcblxuICBfb25DaGFuZ2U6IFJlYWN0LkNoYW5nZUV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IGV2ZW50ID0+IHtcbiAgICBpZiAodGhpcy5wcm9wcy5vbkNoYW5nZSkge1xuICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZShldmVudCk7XG4gICAgfVxuXG4gICAgdGhpcy5fb25UZXh0RW50cnlVcGRhdGVkKCk7XG4gIH07XG5cbiAgX29uS2V5RG93bjogUmVhY3QuS2V5Ym9hcmRFdmVudEhhbmRsZXI8SFRNTERpdkVsZW1lbnQ+ID0gZXZlbnQgPT4ge1xuICAgIC8vIElmIHRoZXJlIGFyZSBubyB2aXNpYmxlIGVsZW1lbnRzLCBkb24ndCBwZXJmb3JtIHNlbGVjdG9yIG5hdmlnYXRpb24uXG4gICAgLy8gSnVzdCBwYXNzIHRoaXMgdXAgdG8gdGhlIHVwc3RyZWFtIG9uS2V5ZG93biBoYW5kbGVyLlxuICAgIC8vIEFsc28gc2tpcCBpZiB0aGUgdXNlciBpcyBwcmVzc2luZyB0aGUgc2hpZnQga2V5LCBzaW5jZSBub25lIG9mIG91ciBoYW5kbGVycyBhcmUgbG9va2luZyBmb3Igc2hpZnRcbiAgICBpZiAoIXRoaXMuX2hhc0hpbnQoKSB8fCBldmVudC5zaGlmdEtleSkge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25LZXlEb3duPy4oZXZlbnQpO1xuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZXIgPSB0aGlzLmV2ZW50TWFwKClbZXZlbnQua2V5Q29kZV07XG5cbiAgICBpZiAoaGFuZGxlcikge1xuICAgICAgaGFuZGxlcihldmVudCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uS2V5RG93bj8uKGV2ZW50KTtcbiAgICB9XG4gICAgLy8gRG9uJ3QgcHJvcGFnYXRlIHRoZSBrZXlzdHJva2UgYmFjayB0byB0aGUgRE9NL2Jyb3dzZXJcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9O1xuXG4gIF9vbkZvY3VzOiBSZWFjdC5Gb2N1c0V2ZW50SGFuZGxlcjxIVE1MRGl2RWxlbWVudD4gPSBldmVudCA9PiB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7aXNGb2N1c2VkOiB0cnVlfSk7XG4gICAgaWYgKHRoaXMucHJvcHMub25Gb2N1cykge1xuICAgICAgcmV0dXJuIHRoaXMucHJvcHMub25Gb2N1cyhldmVudCk7XG4gICAgfVxuICB9O1xuXG4gIF9vbkJsdXI6IFJlYWN0LkZvY3VzRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gZXZlbnQgPT4ge1xuICAgIHRoaXMuc2V0U3RhdGUoe2lzRm9jdXNlZDogZmFsc2V9KTtcbiAgICBpZiAodGhpcy5wcm9wcy5vbkJsdXIpIHtcbiAgICAgIHJldHVybiB0aGlzLnByb3BzLm9uQmx1cihldmVudCk7XG4gICAgfVxuICB9O1xuXG4gIF9yZW5kZXJIaWRkZW5JbnB1dCgpIHtcbiAgICBpZiAoIXRoaXMucHJvcHMubmFtZSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIDxpbnB1dCB0eXBlPVwiaGlkZGVuXCIgbmFtZT17dGhpcy5wcm9wcy5uYW1lfSB2YWx1ZT17dGhpcy5zdGF0ZS5zZWxlY3Rpb259IC8+O1xuICB9XG5cbiAgX2hhc0hpbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuc2VhcmNoUmVzdWx0cy5sZW5ndGggPiAwIHx8IHRoaXMuX2hhc0N1c3RvbVZhbHVlKCk7XG4gIH1cblxuICBfaGFzRml4ZWRPcHRpb25zKCkge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMucHJvcHMuZml4ZWRPcHRpb25zKSAmJiB0aGlzLnByb3BzLmZpeGVkT3B0aW9ucy5sZW5ndGg7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3QgaW5wdXRDbGFzc2VzID0ge307XG4gICAgaW5wdXRDbGFzc2VzW3RoaXMucHJvcHMuY3VzdG9tQ2xhc3Nlcz8uaW5wdXRdID0gQm9vbGVhbih0aGlzLnByb3BzLmN1c3RvbUNsYXNzZXM/LmlucHV0KTtcbiAgICBjb25zdCBpbnB1dENsYXNzTGlzdCA9IGNsYXNzTmFtZXMoaW5wdXRDbGFzc2VzKTtcblxuICAgIGNvbnN0IGNsYXNzZXMgPSB7XG4gICAgICBbREVGQVVMVF9DTEFTU106IHRoaXMucHJvcHMuZGVmYXVsdENsYXNzTmFtZXNcbiAgICB9O1xuICAgIGNsYXNzZXNbdGhpcy5wcm9wcy5jbGFzc05hbWUgPyB0aGlzLnByb3BzLmNsYXNzTmFtZSA6ICcnXSA9IEJvb2xlYW4odGhpcy5wcm9wcy5jbGFzc05hbWUpO1xuICAgIGNvbnN0IGNsYXNzTGlzdCA9IGNsYXNzTmFtZXMoY2xhc3Nlcyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFR5cGVhaGVhZFdyYXBwZXJcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc0xpc3R9XG4gICAgICAgIHJlZj17dGhpcy5yb290fVxuICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgb25LZXlEb3duPXt0aGlzLl9vbktleURvd259XG4gICAgICAgIG9uS2V5UHJlc3M9e3RoaXMucHJvcHMub25LZXlQcmVzc31cbiAgICAgICAgb25LZXlVcD17dGhpcy5wcm9wcy5vbktleVVwfVxuICAgICAgICBvbkZvY3VzPXt0aGlzLl9vbkZvY3VzfVxuICAgICAgICBsaWdodD17dGhpcy5wcm9wcy5saWdodH1cbiAgICAgID5cbiAgICAgICAge3RoaXMuX3JlbmRlckhpZGRlbklucHV0KCl9XG4gICAgICAgIHt0aGlzLnByb3BzLnNlYXJjaGFibGUgPyAoXG4gICAgICAgICAgPElucHV0Qm94PlxuICAgICAgICAgICAgPFR5cGVhaGVhZElucHV0XG4gICAgICAgICAgICAgIHJlZj17dGhpcy5lbnRyeX1cbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICBkaXNhYmxlZD17dGhpcy5wcm9wcy5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgey4uLnRoaXMucHJvcHMuaW5wdXRQcm9wc31cbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3RoaXMucHJvcHMucGxhY2Vob2xkZXJ9XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT17aW5wdXRDbGFzc0xpc3R9XG4gICAgICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlLmVudHJ5VmFsdWV9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXt0aGlzLl9vbkNoYW5nZX1cbiAgICAgICAgICAgICAgb25CbHVyPXt0aGlzLl9vbkJsdXJ9XG4gICAgICAgICAgICAgIGxpZ2h0PXt0aGlzLnByb3BzLmxpZ2h0fVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxJbnB1dEljb24+XG4gICAgICAgICAgICAgIDx0aGlzLnByb3BzLmlucHV0SWNvbiBoZWlnaHQ9XCIxOHB4XCIgLz5cbiAgICAgICAgICAgIDwvSW5wdXRJY29uPlxuICAgICAgICAgIDwvSW5wdXRCb3g+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICB7dGhpcy5fcmVuZGVySW5jcmVtZW50YWxTZWFyY2hSZXN1bHRzKCl9XG4gICAgICA8L1R5cGVhaGVhZFdyYXBwZXI+XG4gICAgKTtcbiAgfVxufVxuXG5wb2x5ZmlsbChUeXBlYWhlYWQpO1xuXG5leHBvcnQgZGVmYXVsdCBUeXBlYWhlYWQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxzQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUssaUJBQUEsR0FBQUYsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFNLE9BQUEsR0FBQU4sT0FBQTtBQUVBLElBQUFPLFNBQUEsR0FBQUosc0JBQUEsQ0FB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
@@ -27,9 +27,9 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
27
27
  function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
28
28
  function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
29
29
  var StyledG = _styledComponents["default"].g(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n .selection {\n stroke: none;\n fill: ", ";\n fill-opacity: ", ";\n }\n .handle {\n fill: ", ";\n fill-opacity: 0.3;\n }\n"])), function (props) {
30
- return props.isRanged ? props.theme.rangeBrushBgd : props.theme.BLUE2;
30
+ return props.$isRanged ? props.theme.rangeBrushBgd : props.theme.BLUE2;
31
31
  }, function (props) {
32
- return props.isRanged ? 0.3 : 1;
32
+ return props.$isRanged ? 0.3 : 1;
33
33
  }, function (props) {
34
34
  return props.theme.BLUE2;
35
35
  });
@@ -173,9 +173,9 @@ function RangeBrushFactory() {
173
173
  var _prevProps$value = (0, _slicedToArray2["default"])(prevProps.value, 2),
174
174
  prevVal0 = _prevProps$value[0],
175
175
  prevVal1 = _prevProps$value[1];
176
- if (prevProps.width !== width) {
176
+ if (prevProps.width !== width || prevProps.range[0] !== this.props.range[0] || prevProps.range[1] !== this.props.range[1]) {
177
177
  var _this$root3;
178
- // width change should not trigger this._brushed
178
+ // dimension change should not trigger this._brushed
179
179
  this.moving = true;
180
180
  if (this.brush) (_this$root3 = this.root) === null || _this$root3 === void 0 || _this$root3.call(this.brush);
181
181
  this._move(val0, val1);
@@ -251,7 +251,7 @@ function RangeBrushFactory() {
251
251
  var isRanged = this.props.isRanged;
252
252
  return /*#__PURE__*/_react["default"].createElement(StyledG, {
253
253
  className: "kg-range-slider__brush",
254
- isRanged: isRanged,
254
+ $isRanged: isRanged,
255
255
  ref: this.rootContainer
256
256
  });
257
257
  }
@@ -263,4 +263,4 @@ function RangeBrushFactory() {
263
263
  return (0, _styledComponents.withTheme)(RangeBrush);
264
264
  }
265
265
  var _default = exports["default"] = RangeBrushFactory;
266
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9kM1NlbGVjdGlvbiIsIl9kM0JydXNoIiwiX3V0aWxzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2NhbGxTdXBlciIsIm8iLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJTdHlsZWRHIiwic3R5bGVkIiwiZyIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJpc1JhbmdlZCIsInRoZW1lIiwicmFuZ2VCcnVzaEJnZCIsIkJMVUUyIiwibW92ZVJpZ2h0Iiwic3RhcnRTZWwiLCJzZWxlY3Rpb24iLCJfc3RhcnRTZWwiLCJfc2xpY2VkVG9BcnJheTIiLCJzdGFydFNlbDAiLCJfc2VsZWN0aW9uIiwic2VsMCIsImdldEhhbmRsZVBhdGgiLCJicnVzaFJlc2l6ZVBhdGgiLCJkIiwiTnVtYmVyIiwidHlwZSIsIngiLCJoIiwidyIsInkiLCJoZWlnaHQiLCJjb25jYXQiLCJSYW5nZUJydXNoRmFjdG9yeSIsIlJhbmdlQnJ1c2giLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2xlbiIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJfZGVmaW5lUHJvcGVydHkyIiwiY3JlYXRlUmVmIiwicm9vdENvbnRhaW5lciIsImN1cnJlbnQiLCJzZWxlY3QiLCJ1bmRlZmluZWQiLCJldnQiLCJfdGhpczIiLCJzb3VyY2VFdmVudCIsIl9ldnQkc2VsZWN0aW9uIiwic2VsMSIsInJpZ2h0IiwiX3RoaXMkcHJvcHMiLCJfdGhpcyRwcm9wcyRyYW5nZSIsInJhbmdlIiwibWluIiwibWF4IiwiX3RoaXMkcHJvcHMkc3RlcCIsInN0ZXAiLCJ3aWR0aCIsIm1hcmtzIiwiaW52ZXJ0IiwiZDAiLCJkMSIsIm5vcm1hbGl6ZVNsaWRlclZhbHVlIiwiX21vdmUiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiX29uQnJ1c2giLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiY29tcG9uZW50RGlkTW91bnQiLCJfdGhpczMiLCJfdGhpcyRyb290IiwiX3RoaXMkcm9vdDIiLCJfdGhpcyRwcm9wczIiLCJvbk1vdXNlb3ZlckhhbmRsZSIsIm9uTW91c2VvdXRIYW5kbGUiLCJyb290IiwiYnJ1c2giLCJicnVzaFgiLCJoYW5kbGVTaXplIiwib24iLCJldmVudCIsIm9uQnJ1c2hTdGFydCIsIm1vdmluZyIsIl9sYXN0U2VsIiwiYnJ1c2hpbmciLCJfYnJ1c2hlZCIsIl9jbGljayIsIm9uQnJ1c2hFbmQiLCJoYW5kbGUiLCJzZWxlY3RBbGwiLCJkYXRhIiwiZW50ZXIiLCJhcHBlbmQiLCJhdHRyIiwic2xpZGVySGFuZGxlQ29sb3IiLCJfdGhpcyRwcm9wcyR2YWx1ZSIsInZhbDAiLCJ2YWwxIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwiX3RoaXMkcHJvcHMzIiwiX3RoaXMkcHJvcHMzJHZhbHVlIiwiX3ByZXZQcm9wcyR2YWx1ZSIsInByZXZWYWwwIiwicHJldlZhbDEiLCJfdGhpcyRyb290MyIsIl90aGlzJHByb3BzNCIsIl90aGlzJHByb3BzNCRyYW5nZSIsInNjYWxlIiwibW92ZSIsIl90aGlzJHByb3BzNSIsIl90aGlzJHByb3BzNSR2YWx1ZSIsImN1cnJlbnRWYWwwIiwiY3VycmVudFZhbDEiLCJvbkJydXNoIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInJlZiIsIkNvbXBvbmVudCIsIndpdGhUaGVtZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vcmFuZ2UtYnJ1c2gudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7d2l0aFRoZW1lfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge3NlbGVjdCwgU2VsZWN0aW9ufSBmcm9tICdkMy1zZWxlY3Rpb24nO1xuaW1wb3J0IHtCcnVzaEJlaGF2aW9yLCBicnVzaFh9IGZyb20gJ2QzLWJydXNoJztcbmltcG9ydCB7bm9ybWFsaXplU2xpZGVyVmFsdWV9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5pbnRlcmZhY2UgU3R5bGVkR1Byb3BzIHtcbiAgaXNSYW5nZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWRHID0gc3R5bGVkLmc8U3R5bGVkR1Byb3BzPmBcbiAgLnNlbGVjdGlvbiB7XG4gICAgc3Ryb2tlOiBub25lO1xuICAgIGZpbGw6ICR7cHJvcHMgPT4gKHByb3BzLmlzUmFuZ2VkID8gcHJvcHMudGhlbWUucmFuZ2VCcnVzaEJnZCA6IHByb3BzLnRoZW1lLkJMVUUyKX07XG4gICAgZmlsbC1vcGFjaXR5OiAke3Byb3BzID0+IChwcm9wcy5pc1JhbmdlZCA/IDAuMyA6IDEpfTtcbiAgfVxuICAuaGFuZGxlIHtcbiAgICBmaWxsOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLkJMVUUyfTtcbiAgICBmaWxsLW9wYWNpdHk6IDAuMztcbiAgfVxuYDtcblxuZnVuY3Rpb24gbW92ZVJpZ2h0KHN0YXJ0U2VsLCBzZWxlY3Rpb24pIHtcbiAgY29uc3QgW3N0YXJ0U2VsMF0gPSBzdGFydFNlbDtcbiAgY29uc3QgW3NlbDBdID0gc2VsZWN0aW9uO1xuXG4gIHJldHVybiBCb29sZWFuKHN0YXJ0U2VsMCA9PT0gc2VsMCk7XG59XG4vLyBzdHlsZSBicnVzaCByZXNpemUgaGFuZGxlXG4vLyBodHRwczovL2dpdGh1Yi5jb20vY3Jvc3NmaWx0ZXIvY3Jvc3NmaWx0ZXIvYmxvYi9naC1wYWdlcy9pbmRleC5odG1sI0w0NjZcbmNvbnN0IGdldEhhbmRsZVBhdGggPSAocHJvcHM6IFJhbmdlQnJ1c2hQcm9wcykgPT4ge1xuICByZXR1cm4gZnVuY3Rpb24gYnJ1c2hSZXNpemVQYXRoKGQpIHtcbiAgICBjb25zdCBlID0gTnVtYmVyKGQudHlwZSA9PT0gJ2UnKTtcbiAgICBjb25zdCB4ID0gZSA/IDEgOiAtMTtcbiAgICBjb25zdCBoID0gMzk7XG4gICAgY29uc3QgdyA9IDQuNTtcbiAgICBjb25zdCB5ID0gKHByb3BzLmhlaWdodCAtIGgpIC8gMjtcbiAgICByZXR1cm4gYE0kezAuNSAqIHh9LCR7eX1jJHsyLjUgKiB4fSwwLCR7dyAqIHh9LDIsJHt3ICogeH0sJHt3fXYke2ggLSB3ICogMn1jMCwyLjUsJHtcbiAgICAgIC0yICogeFxuICAgIH0sJHt3fSwkey13ICogeH0sJHt3fVYke3l9emA7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBPbkJydXNoID0gKHZhbDA6IG51bWJlciwgdmFsMTogbnVtYmVyKSA9PiB2b2lkO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJhbmdlQnJ1c2hQcm9wcyB7XG4gIGlzUmFuZ2VkPzogYm9vbGVhbjtcbiAgdGhlbWU/OiBhbnk7XG4gIHJhbmdlOiBudW1iZXJbXTtcbiAgdmFsdWU6IG51bWJlcltdO1xuICBvbkJydXNoU3RhcnQ6ICgpID0+IHZvaWQ7XG4gIG9uQnJ1c2hFbmQ6ICgpID0+IHZvaWQ7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBvbkJydXNoOiBPbkJydXNoO1xuICBzdGVwPzogbnVtYmVyO1xuICBtYXJrcz86IG51bWJlcltdO1xuICBvbk1vdXNlb3ZlckhhbmRsZTogKCkgPT4gdm9pZDtcbiAgb25Nb3VzZW91dEhhbmRsZTogKCkgPT4gdm9pZDtcbn1cblxuZnVuY3Rpb24gUmFuZ2VCcnVzaEZhY3RvcnkoKTogUmVhY3QuQ29tcG9uZW50VHlwZTxSYW5nZUJydXNoUHJvcHM+IHtcbiAgY2xhc3MgUmFuZ2VCcnVzaCBleHRlbmRzIENvbXBvbmVudDxSYW5nZUJydXNoUHJvcHM+IHtcbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgaXNSYW5nZWQ6IHRydWVcbiAgICB9O1xuXG4gICAgcm9vdENvbnRhaW5lciA9IGNyZWF0ZVJlZjxTVkdHRWxlbWVudD4oKTtcblxuICAgIGJydXNoaW5nID0gZmFsc2U7XG4gICAgbW92aW5nID0gZmFsc2U7XG5cbiAgICByb290ID0gdGhpcy5yb290Q29udGFpbmVyLmN1cnJlbnQgPyBzZWxlY3QodGhpcy5yb290Q29udGFpbmVyLmN1cnJlbnQpIDogdW5kZWZpbmVkO1xuICAgIGJydXNoOiBCcnVzaEJlaGF2aW9yPGFueT4gfCB1bmRlZmluZWQ7XG4gICAgX3N0YXJ0U2VsOiBudW1iZXJbXSB8IHVuZGVmaW5lZDtcbiAgICBfbGFzdFNlbDogbnVtYmVyW10gfCB1bmRlZmluZWQ7XG5cbiAgICBoYW5kbGU6IFNlbGVjdGlvbjxTVkdQYXRoRWxlbWVudCwge3R5cGU6IHN0cmluZ30sIFNWR0dFbGVtZW50IHwgbnVsbCwgdW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIC8vIFdlIHdhbnQgdGhlIFJlYWN0IGFwcCB0byByZXNwb25kIHRvIGJydXNoIHN0YXRlIGFuZCB2aWNlLXZlcnNhXG4gICAgICAvLyBidXQgZDMtYnJ1c2ggZmlyZXMgdGhlIHNhbWUgZXZlbnRzIGZvciBib3RoIHVzZXItaW5pdGlhdGVkIGJydXNoaW5nXG4gICAgICAvLyBhbmQgcHJvZ3JhbW1hdGljIGJydXNoaW5nIChicnVzaC5tb3ZlKS4gV2UgbmVlZCB0aGVzZSBmbGFncyB0b1xuICAgICAgLy8gZGlzdGluZ3Vpc2ggYmV0d2VlbiB0aGUgdXNlcy5cbiAgICAgIC8vXG4gICAgICAvLyBXZSBkb24ndCB1c2Ugc3RhdGUgYmVjYXVzZSB0aGF0IHdvdWxkIHRyaWdnZXIgYW5vdGhlciBgY29tcG9uZW50RGlkVXBkYXRlYFxuICAgICAgY29uc3Qge3RoZW1lLCBpc1JhbmdlZCwgb25Nb3VzZW92ZXJIYW5kbGUsIG9uTW91c2VvdXRIYW5kbGV9ID0gdGhpcy5wcm9wcztcblxuICAgICAgdGhpcy5yb290ID0gdGhpcy5yb290Q29udGFpbmVyLmN1cnJlbnQgPyBzZWxlY3QodGhpcy5yb290Q29udGFpbmVyLmN1cnJlbnQpIDogdW5kZWZpbmVkO1xuICAgICAgdGhpcy5icnVzaCA9IGJydXNoWCgpXG4gICAgICAgIC5oYW5kbGVTaXplKDMpXG4gICAgICAgIC5vbignc3RhcnQnLCBldmVudCA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLm9uQnJ1c2hTdGFydCA9PT0gJ2Z1bmN0aW9uJykgdGhpcy5wcm9wcy5vbkJydXNoU3RhcnQoKTtcbiAgICAgICAgICB0aGlzLl9zdGFydFNlbCA9IGV2ZW50LnNlbGVjdGlvbjtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdicnVzaCcsIGV2ZW50ID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5tb3ZpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGV2ZW50LnNlbGVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fbGFzdFNlbCA9IGV2ZW50LnNlbGVjdGlvbjtcbiAgICAgICAgICAgIHRoaXMuYnJ1c2hpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5fYnJ1c2hlZChldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAub24oJ2VuZCcsIGV2ZW50ID0+IHtcbiAgICAgICAgICBpZiAoIWV2ZW50LnNlbGVjdGlvbikge1xuICAgICAgICAgICAgaWYgKHRoaXMuYnJ1c2hpbmcpIHtcbiAgICAgICAgICAgICAgLy8gaGFuZGxlIG51bGwgc2VsZWN0aW9uXG4gICAgICAgICAgICAgIHRoaXMuX2NsaWNrKHRoaXMuX2xhc3RTZWwpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9zdGFydFNlbCkge1xuICAgICAgICAgICAgICAvLyBoYW5kbGUgY2xpY2tcbiAgICAgICAgICAgICAgdGhpcy5fY2xpY2sodGhpcy5fc3RhcnRTZWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vbkJydXNoRW5kID09PSAnZnVuY3Rpb24nKSB0aGlzLnByb3BzLm9uQnJ1c2hFbmQoKTtcblxuICAgICAgICAgIHRoaXMuYnJ1c2hpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm1vdmluZyA9IGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgdGhpcy5yb290Py5jYWxsKHRoaXMuYnJ1c2gpO1xuICAgICAgY29uc3QgYnJ1c2hSZXNpemVQYXRoID0gZ2V0SGFuZGxlUGF0aCh0aGlzLnByb3BzKTtcbiAgICAgIHRoaXMuaGFuZGxlID0gdGhpcy5yb290XG4gICAgICAgID8uc2VsZWN0QWxsKCcuaGFuZGxlLS1jdXN0b20nKVxuICAgICAgICAuZGF0YShbe3R5cGU6ICd3J30sIHt0eXBlOiAnZSd9XSlcbiAgICAgICAgLmVudGVyKClcbiAgICAgICAgLmFwcGVuZCgncGF0aCcpXG4gICAgICAgIC5hdHRyKCdjbGFzcycsICdoYW5kbGUtLWN1c3RvbScpXG4gICAgICAgIC5hdHRyKCdkaXNwbGF5JywgaXNSYW5nZWQgPyBudWxsIDogJ25vbmUnKVxuICAgICAgICAuYXR0cignZmlsbCcsIHRoZW1lID8gdGhlbWUuc2xpZGVySGFuZGxlQ29sb3IgOiAnI0QzRDhFMCcpXG4gICAgICAgIC5hdHRyKCdjdXJzb3InLCAnZXctcmVzaXplJylcbiAgICAgICAgLmF0dHIoJ2QnLCBicnVzaFJlc2l6ZVBhdGgpXG4gICAgICAgIC5vbignbW91c2VvdmVyJywgKCkgPT4ge1xuICAgICAgICAgIGlmIChvbk1vdXNlb3ZlckhhbmRsZSkgb25Nb3VzZW92ZXJIYW5kbGUoKTtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdtb3VzZW91dCcsICgpID0+IHtcbiAgICAgICAgICBpZiAob25Nb3VzZW91dEhhbmRsZSkgb25Nb3VzZW91dEhhbmRsZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgY29uc3Qge1xuICAgICAgICB2YWx1ZTogW3ZhbDAsIHZhbDFdXG4gICAgICB9ID0gdGhpcy5wcm9wcztcbiAgICAgIHRoaXMubW92aW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuX21vdmUodmFsMCwgdmFsMSk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgY29uc3Qge1xuICAgICAgICB2YWx1ZTogW3ZhbDAsIHZhbDFdLFxuICAgICAgICB3aWR0aFxuICAgICAgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBbcHJldlZhbDAsIHByZXZWYWwxXSA9IHByZXZQcm9wcy52YWx1ZTtcblxuICAgICAgaWYgKHByZXZQcm9wcy53aWR0aCAhPT0gd2lkdGgpIHtcbiAgICAgICAgLy8gd2lkdGggY2hhbmdlIHNob3VsZCBub3QgdHJpZ2dlciB0aGlzLl9icnVzaGVkXG4gICAgICAgIHRoaXMubW92aW5nID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMuYnJ1c2gpIHRoaXMucm9vdD8uY2FsbCh0aGlzLmJydXNoKTtcbiAgICAgICAgdGhpcy5fbW92ZSh2YWwwLCB2YWwxKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLmJydXNoaW5nICYmICF0aGlzLm1vdmluZykge1xuICAgICAgICBpZiAocHJldlZhbDAgIT09IHZhbDAgfHwgcHJldlZhbDEgIT09IHZhbDEpIHtcbiAgICAgICAgICB0aGlzLm1vdmluZyA9IHRydWU7XG4gICAgICAgICAgdGhpcy5fbW92ZSh2YWwwLCB2YWwxKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMucHJvcHMuaXNSYW5nZWQgJiYgdGhpcy5oYW5kbGUpIHtcbiAgICAgICAgdGhpcy5oYW5kbGUuYXR0cignZGlzcGxheScsICdub25lJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgX2NsaWNrKHNlbGVjdGlvbikge1xuICAgICAgLy8gZmFrZSBicnVzaFxuICAgICAgdGhpcy5icnVzaGluZyA9IHRydWU7XG4gICAgICB0aGlzLl9icnVzaGVkKHtzb3VyY2VFdmVudDoge30sIHNlbGVjdGlvbn0pO1xuICAgIH1cblxuICAgIF9tb3ZlKHZhbDAgPSAwLCB2YWwxID0gMCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICByYW5nZTogW21pbiwgbWF4XSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGlzUmFuZ2VkXG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKHdpZHRoICYmIG1heCAtIG1pbiAmJiB0aGlzLmJydXNoICYmIHRoaXMuaGFuZGxlKSB7XG4gICAgICAgIGNvbnN0IHNjYWxlID0gKHg6IG51bWJlcikgPT4gKCh4IC0gbWluKSAqIHdpZHRoKSAvIChtYXggLSBtaW4pO1xuICAgICAgICBpZiAoIWlzUmFuZ2VkKSB7XG4gICAgICAgICAgLy8gb25seSBkcmF3IGEgMSBwaXhlbCBsaW5lXG4gICAgICAgICAgaWYgKHRoaXMucm9vdCkgdGhpcy5icnVzaC5tb3ZlKHRoaXMucm9vdCwgW3NjYWxlKHZhbDApLCBzY2FsZSh2YWwwKSArIDFdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodGhpcy5yb290KSB0aGlzLmJydXNoLm1vdmUodGhpcy5yb290LCBbc2NhbGUodmFsMCksIHNjYWxlKHZhbDEpXSk7XG5cbiAgICAgICAgICB0aGlzLmhhbmRsZVxuICAgICAgICAgICAgLmF0dHIoJ2Rpc3BsYXknLCBudWxsKVxuICAgICAgICAgICAgLmF0dHIoJ3RyYW5zZm9ybScsIChkLCBpKSA9PiBgdHJhbnNsYXRlKCR7W2kgPT09IDAgPyBzY2FsZSh2YWwwKSA6IHNjYWxlKHZhbDEpLCAwXX0pYCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBfYnJ1c2hlZCA9IChldnQ6IHtzb3VyY2VFdmVudDogYW55OyBzZWxlY3Rpb246IG51bWJlcltdfSkgPT4ge1xuICAgICAgLy8gSWdub3JlIGJydXNoIGV2ZW50cyB3aGljaCBkb24ndCBoYXZlIGFuIHVuZGVybHlpbmcgc291cmNlRXZlbnRcbiAgICAgIGlmICghZXZ0LnNvdXJjZUV2ZW50KSByZXR1cm47XG4gICAgICBjb25zdCBbc2VsMCwgc2VsMV0gPSBldnQuc2VsZWN0aW9uO1xuICAgICAgY29uc3QgcmlnaHQgPSBtb3ZlUmlnaHQodGhpcy5fc3RhcnRTZWwsIGV2dC5zZWxlY3Rpb24pO1xuXG4gICAgICBjb25zdCB7XG4gICAgICAgIHJhbmdlOiBbbWluLCBtYXhdLFxuICAgICAgICBzdGVwID0gMCxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIG1hcmtzLFxuICAgICAgICBpc1JhbmdlZFxuICAgICAgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBpbnZlcnQgPSAoeDogbnVtYmVyKSA9PiAoeCAqIChtYXggLSBtaW4pKSAvIHdpZHRoICsgbWluO1xuICAgICAgbGV0IGQwID0gaW52ZXJ0KHNlbDApO1xuICAgICAgbGV0IGQxID0gaW52ZXJ0KHNlbDEpO1xuICAgICAgLy8gdGhpcyBtYWtlcyBzdXJlIGlmIHBvaW50cyBhcmUgcmlnaHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZG9tYWlucyBhcmUgZGlzcGxheWVkIGNvcnJlY3RseVxuICAgICAgLy8gdGhlIHByb2JsZW0gaGVyZSBpcyBiaXNlY3RMZWZ0eFxuICAgICAgZDAgPSBkMCA9PT0gbWluID8gZDAgOiBub3JtYWxpemVTbGlkZXJWYWx1ZShkMCwgbWluLCBzdGVwLCBtYXJrcyk7XG4gICAgICBkMSA9IG5vcm1hbGl6ZVNsaWRlclZhbHVlKGQxLCBtaW4sIHN0ZXAsIG1hcmtzKTtcblxuICAgICAgaWYgKGlzUmFuZ2VkKSB0aGlzLl9tb3ZlKGQwLCBkMSk7XG4gICAgICBlbHNlIHRoaXMuX21vdmUoLi4uKHJpZ2h0ID8gW2QxLCBkMV0gOiBbZDAsIGQwXSkpO1xuXG4gICAgICBpZiAoaXNSYW5nZWQpIHRoaXMuX29uQnJ1c2goZDAsIGQxKTtcbiAgICAgIGVsc2UgdGhpcy5fb25CcnVzaChyaWdodCA/IGQxIDogZDApO1xuICAgIH07XG5cbiAgICBfb25CcnVzaCh2YWwwID0gMCwgdmFsMSA9IDApIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaXNSYW5nZWQsXG4gICAgICAgIHZhbHVlOiBbY3VycmVudFZhbDAsIGN1cnJlbnRWYWwxXVxuICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChjdXJyZW50VmFsMCA9PT0gdmFsMCAmJiBjdXJyZW50VmFsMSA9PT0gdmFsMSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChpc1JhbmdlZCkge1xuICAgICAgICB0aGlzLnByb3BzLm9uQnJ1c2godmFsMCwgdmFsMSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnByb3BzLm9uQnJ1c2godmFsMCwgdmFsMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge2lzUmFuZ2VkfSA9IHRoaXMucHJvcHM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkRyBjbGFzc05hbWU9XCJrZy1yYW5nZS1zbGlkZXJfX2JydXNoXCIgaXNSYW5nZWQ9e2lzUmFuZ2VkfSByZWY9e3RoaXMucm9vdENvbnRhaW5lcn0gLz5cbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiB3aXRoVGhlbWUoUmFuZ2VCcnVzaCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFJhbmdlQnJ1c2hGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFGLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxZQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxRQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFKLE9BQUE7QUFBc0QsSUFBQUssZUFBQSxFQVB0RDtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFSLHdCQUFBUSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFkLENBQUEsb0JBQUFjLENBQUEsT0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFoQixDQUFBLEVBQUFjLENBQUEsU0FBQUcsQ0FBQSxHQUFBUCxDQUFBLEdBQUFD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QUFHWSxLQUFLLENBQUNYLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUFBLENBQUcsQ0FBQztVQUMxRjtRQUNGO01BQ0Y7SUFBQztNQUFBL0IsR0FBQTtNQUFBQyxLQUFBLEVBOEJELFNBQUFKLFFBQVFBLENBQUEsRUFBcUI7UUFBQSxJQUFwQmlDLElBQUksR0FBQWpFLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFVLFNBQUEsR0FBQVYsU0FBQSxNQUFHLENBQUM7UUFBQSxJQUFFa0UsSUFBSSxHQUFBbEUsU0FBQSxDQUFBQyxNQUFBLFFBQUFELFNBQUEsUUFBQVUsU0FBQSxHQUFBVixTQUFBLE1BQUcsQ0FBQztRQUN6QixJQUFBK0UsWUFBQSxHQUdJLElBQUksQ0FBQzdHLEtBQUs7VUFGWkMsUUFBUSxHQUFBNEcsWUFBQSxDQUFSNUcsUUFBUTtVQUFBNkcsa0JBQUEsT0FBQXJHLGVBQUEsYUFBQW9HLFlBQUEsQ0FDUjNDLEtBQUs7VUFBRzZDLFdBQVcsR0FBQUQsa0JBQUE7VUFBRUUsV0FBVyxHQUFBRixrQkFBQTtRQUdsQyxJQUFJQyxXQUFXLEtBQUtoQixJQUFJLElBQUlpQixXQUFXLEtBQUtoQixJQUFJLEVBQUU7VUFDaEQ7UUFDRjtRQUVBLElBQUkvRixRQUFRLEVBQUU7VUFDWixJQUFJLENBQUNELEtBQUssQ0FBQ2lILE9BQU8sQ0FBQ2xCLElBQUksRUFBRUMsSUFBSSxDQUFDO1FBQ2hDLENBQUMsTUFBTTtVQUNMLElBQUksQ0FBQ2hHLEtBQUssQ0FBQ2lILE9BQU8sQ0FBQ2xCLElBQUksRUFBRUEsSUFBSSxDQUFDO1FBQ2hDO01BQ0Y7SUFBQztNQUFBOUIsR0FBQTtNQUFBQyxLQUFBLEVBRUQsU0FBQWdELE1BQU1BLENBQUEsRUFBRztRQUNQLElBQU9qSCxRQUFRLEdBQUksSUFBSSxDQUFDRCxLQUFLLENBQXRCQyxRQUFRO1FBQ2Ysb0JBQ0U3QyxNQUFBLFlBQUErSixhQUFBLENBQUN2SCxPQUFPO1VBQUN3SCxTQUFTLEVBQUMsd0JBQXdCO1VBQUNuSCxRQUFRLEVBQUVBLFFBQVM7VUFBQ29ILEdBQUcsRUFBRSxJQUFJLENBQUNoRjtRQUFjLENBQUUsQ0FBQztNQUUvRjtJQUFDO0VBQUEsRUE5THNCaUYsZ0JBQVM7RUFBQSxJQUFBbkYsZ0JBQUEsYUFBNUJWLFVBQVUsa0JBQ1E7SUFDcEJ4QixRQUFRLEVBQUU7RUFDWixDQUFDO0VBNkxILE9BQU8sSUFBQXNILDJCQUFTLEVBQUM5RixVQUFVLENBQUM7QUFDOUI7QUFBQyxJQUFBK0YsUUFBQSxHQUFBQyxPQUFBLGNBRWNqRyxpQkFBaUIiLCJpZ25vcmVMaXN0IjpbXX0=
266
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9kM1NlbGVjdGlvbiIsIl9kM0JydXNoIiwiX3V0aWxzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2NhbGxTdXBlciIsIm8iLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJTdHlsZWRHIiwic3R5bGVkIiwiZyIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCIkaXNSYW5nZWQiLCJ0aGVtZSIsInJhbmdlQnJ1c2hCZ2QiLCJCTFVFMiIsIm1vdmVSaWdodCIsInN0YXJ0U2VsIiwic2VsZWN0aW9uIiwiX3N0YXJ0U2VsIiwiX3NsaWNlZFRvQXJyYXkyIiwic3RhcnRTZWwwIiwiX3NlbGVjdGlvbiIsInNlbDAiLCJnZXRIYW5kbGVQYXRoIiwiYnJ1c2hSZXNpemVQYXRoIiwiZCIsIk51bWJlciIsInR5cGUiLCJ4IiwiaCIsInciLCJ5IiwiaGVpZ2h0IiwiY29uY2F0IiwiUmFuZ2VCcnVzaEZhY3RvcnkiLCJSYW5nZUJydXNoIiwiX0NvbXBvbmVudCIsIl90aGlzIiwiX2NsYXNzQ2FsbENoZWNrMiIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcmdzIiwiQXJyYXkiLCJfa2V5IiwiX2RlZmluZVByb3BlcnR5MiIsImNyZWF0ZVJlZiIsInJvb3RDb250YWluZXIiLCJjdXJyZW50Iiwic2VsZWN0IiwidW5kZWZpbmVkIiwiZXZ0IiwiX3RoaXMyIiwic291cmNlRXZlbnQiLCJfZXZ0JHNlbGVjdGlvbiIsInNlbDEiLCJyaWdodCIsIl90aGlzJHByb3BzIiwiX3RoaXMkcHJvcHMkcmFuZ2UiLCJyYW5nZSIsIm1pbiIsIm1heCIsIl90aGlzJHByb3BzJHN0ZXAiLCJzdGVwIiwid2lkdGgiLCJtYXJrcyIsImlzUmFuZ2VkIiwiaW52ZXJ0IiwiZDAiLCJkMSIsIm5vcm1hbGl6ZVNsaWRlclZhbHVlIiwiX21vdmUiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiX29uQnJ1c2giLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwiY29tcG9uZW50RGlkTW91bnQiLCJfdGhpczMiLCJfdGhpcyRyb290IiwiX3RoaXMkcm9vdDIiLCJfdGhpcyRwcm9wczIiLCJvbk1vdXNlb3ZlckhhbmRsZSIsIm9uTW91c2VvdXRIYW5kbGUiLCJyb290IiwiYnJ1c2giLCJicnVzaFgiLCJoYW5kbGVTaXplIiwib24iLCJldmVudCIsIm9uQnJ1c2hTdGFydCIsIm1vdmluZyIsIl9sYXN0U2VsIiwiYnJ1c2hpbmciLCJfYnJ1c2hlZCIsIl9jbGljayIsIm9uQnJ1c2hFbmQiLCJoYW5kbGUiLCJzZWxlY3RBbGwiLCJkYXRhIiwiZW50ZXIiLCJhcHBlbmQiLCJhdHRyIiwic2xpZGVySGFuZGxlQ29sb3IiLCJfdGhpcyRwcm9wcyR2YWx1ZSIsInZhbDAiLCJ2YWwxIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwiX3RoaXMkcHJvcHMzIiwiX3RoaXMkcHJvcHMzJHZhbHVlIiwiX3ByZXZQcm9wcyR2YWx1ZSIsInByZXZWYWwwIiwicHJldlZhbDEiLCJfdGhpcyRyb290MyIsIl90aGlzJHByb3BzNCIsIl90aGlzJHByb3BzNCRyYW5nZSIsInNjYWxlIiwibW92ZSIsIl90aGlzJHByb3BzNSIsIl90aGlzJHByb3BzNSR2YWx1ZSIsImN1cnJlbnRWYWwwIiwiY3VycmVudFZhbDEiLCJvbkJydXNoIiwicmVuZGVyIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInJlZiIsIkNvbXBvbmVudCIsIndpdGhUaGVtZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vcmFuZ2UtYnJ1c2gudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7d2l0aFRoZW1lfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge3NlbGVjdCwgU2VsZWN0aW9ufSBmcm9tICdkMy1zZWxlY3Rpb24nO1xuaW1wb3J0IHtCcnVzaEJlaGF2aW9yLCBicnVzaFh9IGZyb20gJ2QzLWJydXNoJztcbmltcG9ydCB7bm9ybWFsaXplU2xpZGVyVmFsdWV9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5pbnRlcmZhY2UgU3R5bGVkR1Byb3BzIHtcbiAgJGlzUmFuZ2VkPzogYm9vbGVhbjtcbn1cblxuY29uc3QgU3R5bGVkRyA9IHN0eWxlZC5nPFN0eWxlZEdQcm9wcz5gXG4gIC5zZWxlY3Rpb24ge1xuICAgIHN0cm9rZTogbm9uZTtcbiAgICBmaWxsOiAke3Byb3BzID0+IChwcm9wcy4kaXNSYW5nZWQgPyBwcm9wcy50aGVtZS5yYW5nZUJydXNoQmdkIDogcHJvcHMudGhlbWUuQkxVRTIpfTtcbiAgICBmaWxsLW9wYWNpdHk6ICR7cHJvcHMgPT4gKHByb3BzLiRpc1JhbmdlZCA/IDAuMyA6IDEpfTtcbiAgfVxuICAuaGFuZGxlIHtcbiAgICBmaWxsOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLkJMVUUyfTtcbiAgICBmaWxsLW9wYWNpdHk6IDAuMztcbiAgfVxuYDtcblxuZnVuY3Rpb24gbW92ZVJpZ2h0KHN0YXJ0U2VsLCBzZWxlY3Rpb24pIHtcbiAgY29uc3QgW3N0YXJ0U2VsMF0gPSBzdGFydFNlbDtcbiAgY29uc3QgW3NlbDBdID0gc2VsZWN0aW9uO1xuXG4gIHJldHVybiBCb29sZWFuKHN0YXJ0U2VsMCA9PT0gc2VsMCk7XG59XG4vLyBzdHlsZSBicnVzaCByZXNpemUgaGFuZGxlXG4vLyBodHRwczovL2dpdGh1Yi5jb20vY3Jvc3NmaWx0ZXIvY3Jvc3NmaWx0ZXIvYmxvYi9naC1wYWdlcy9pbmRleC5odG1sI0w0NjZcbmNvbnN0IGdldEhhbmRsZVBhdGggPSAocHJvcHM6IFJhbmdlQnJ1c2hQcm9wcykgPT4ge1xuICByZXR1cm4gZnVuY3Rpb24gYnJ1c2hSZXNpemVQYXRoKGQpIHtcbiAgICBjb25zdCBlID0gTnVtYmVyKGQudHlwZSA9PT0gJ2UnKTtcbiAgICBjb25zdCB4ID0gZSA/IDEgOiAtMTtcbiAgICBjb25zdCBoID0gMzk7XG4gICAgY29uc3QgdyA9IDQuNTtcbiAgICBjb25zdCB5ID0gKHByb3BzLmhlaWdodCAtIGgpIC8gMjtcbiAgICByZXR1cm4gYE0kezAuNSAqIHh9LCR7eX1jJHsyLjUgKiB4fSwwLCR7dyAqIHh9LDIsJHt3ICogeH0sJHt3fXYke2ggLSB3ICogMn1jMCwyLjUsJHtcbiAgICAgIC0yICogeFxuICAgIH0sJHt3fSwkey13ICogeH0sJHt3fVYke3l9emA7XG4gIH07XG59O1xuXG5leHBvcnQgdHlwZSBPbkJydXNoID0gKHZhbDA6IG51bWJlciwgdmFsMTogbnVtYmVyKSA9PiB2b2lkO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJhbmdlQnJ1c2hQcm9wcyB7XG4gIGlzUmFuZ2VkPzogYm9vbGVhbjtcbiAgdGhlbWU/OiBhbnk7XG4gIHJhbmdlOiBudW1iZXJbXTtcbiAgdmFsdWU6IG51bWJlcltdO1xuICBvbkJydXNoU3RhcnQ6ICgpID0+IHZvaWQ7XG4gIG9uQnJ1c2hFbmQ6ICgpID0+IHZvaWQ7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICBvbkJydXNoOiBPbkJydXNoO1xuICBzdGVwPzogbnVtYmVyO1xuICBtYXJrcz86IG51bWJlcltdO1xuICBvbk1vdXNlb3ZlckhhbmRsZTogKCkgPT4gdm9pZDtcbiAgb25Nb3VzZW91dEhhbmRsZTogKCkgPT4gdm9pZDtcbn1cblxuZnVuY3Rpb24gUmFuZ2VCcnVzaEZhY3RvcnkoKTogUmVhY3QuQ29tcG9uZW50VHlwZTxSYW5nZUJydXNoUHJvcHM+IHtcbiAgY2xhc3MgUmFuZ2VCcnVzaCBleHRlbmRzIENvbXBvbmVudDxSYW5nZUJydXNoUHJvcHM+IHtcbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgaXNSYW5nZWQ6IHRydWVcbiAgICB9O1xuXG4gICAgcm9vdENvbnRhaW5lciA9IGNyZWF0ZVJlZjxTVkdHRWxlbWVudD4oKTtcblxuICAgIGJydXNoaW5nID0gZmFsc2U7XG4gICAgbW92aW5nID0gZmFsc2U7XG5cbiAgICByb290ID0gdGhpcy5yb290Q29udGFpbmVyLmN1cnJlbnQgPyBzZWxlY3QodGhpcy5yb290Q29udGFpbmVyLmN1cnJlbnQpIDogdW5kZWZpbmVkO1xuICAgIGJydXNoOiBCcnVzaEJlaGF2aW9yPGFueT4gfCB1bmRlZmluZWQ7XG4gICAgX3N0YXJ0U2VsOiBudW1iZXJbXSB8IHVuZGVmaW5lZDtcbiAgICBfbGFzdFNlbDogbnVtYmVyW10gfCB1bmRlZmluZWQ7XG5cbiAgICBoYW5kbGU6IFNlbGVjdGlvbjxTVkdQYXRoRWxlbWVudCwge3R5cGU6IHN0cmluZ30sIFNWR0dFbGVtZW50IHwgbnVsbCwgdW5rbm93bj4gfCB1bmRlZmluZWQ7XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIC8vIFdlIHdhbnQgdGhlIFJlYWN0IGFwcCB0byByZXNwb25kIHRvIGJydXNoIHN0YXRlIGFuZCB2aWNlLXZlcnNhXG4gICAgICAvLyBidXQgZDMtYnJ1c2ggZmlyZXMgdGhlIHNhbWUgZXZlbnRzIGZvciBib3RoIHVzZXItaW5pdGlhdGVkIGJydXNoaW5nXG4gICAgICAvLyBhbmQgcHJvZ3JhbW1hdGljIGJydXNoaW5nIChicnVzaC5tb3ZlKS4gV2UgbmVlZCB0aGVzZSBmbGFncyB0b1xuICAgICAgLy8gZGlzdGluZ3Vpc2ggYmV0d2VlbiB0aGUgdXNlcy5cbiAgICAgIC8vXG4gICAgICAvLyBXZSBkb24ndCB1c2Ugc3RhdGUgYmVjYXVzZSB0aGF0IHdvdWxkIHRyaWdnZXIgYW5vdGhlciBgY29tcG9uZW50RGlkVXBkYXRlYFxuICAgICAgY29uc3Qge3RoZW1lLCBpc1JhbmdlZCwgb25Nb3VzZW92ZXJIYW5kbGUsIG9uTW91c2VvdXRIYW5kbGV9ID0gdGhpcy5wcm9wcztcblxuICAgICAgdGhpcy5yb290ID0gdGhpcy5yb290Q29udGFpbmVyLmN1cnJlbnQgPyBzZWxlY3QodGhpcy5yb290Q29udGFpbmVyLmN1cnJlbnQpIDogdW5kZWZpbmVkO1xuICAgICAgdGhpcy5icnVzaCA9IGJydXNoWCgpXG4gICAgICAgIC5oYW5kbGVTaXplKDMpXG4gICAgICAgIC5vbignc3RhcnQnLCBldmVudCA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLm9uQnJ1c2hTdGFydCA9PT0gJ2Z1bmN0aW9uJykgdGhpcy5wcm9wcy5vbkJydXNoU3RhcnQoKTtcbiAgICAgICAgICB0aGlzLl9zdGFydFNlbCA9IGV2ZW50LnNlbGVjdGlvbjtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdicnVzaCcsIGV2ZW50ID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5tb3ZpbmcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGV2ZW50LnNlbGVjdGlvbikge1xuICAgICAgICAgICAgdGhpcy5fbGFzdFNlbCA9IGV2ZW50LnNlbGVjdGlvbjtcbiAgICAgICAgICAgIHRoaXMuYnJ1c2hpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5fYnJ1c2hlZChldmVudCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAub24oJ2VuZCcsIGV2ZW50ID0+IHtcbiAgICAgICAgICBpZiAoIWV2ZW50LnNlbGVjdGlvbikge1xuICAgICAgICAgICAgaWYgKHRoaXMuYnJ1c2hpbmcpIHtcbiAgICAgICAgICAgICAgLy8gaGFuZGxlIG51bGwgc2VsZWN0aW9uXG4gICAgICAgICAgICAgIHRoaXMuX2NsaWNrKHRoaXMuX2xhc3RTZWwpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9zdGFydFNlbCkge1xuICAgICAgICAgICAgICAvLyBoYW5kbGUgY2xpY2tcbiAgICAgICAgICAgICAgdGhpcy5fY2xpY2sodGhpcy5fc3RhcnRTZWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm9wcy5vbkJydXNoRW5kID09PSAnZnVuY3Rpb24nKSB0aGlzLnByb3BzLm9uQnJ1c2hFbmQoKTtcblxuICAgICAgICAgIHRoaXMuYnJ1c2hpbmcgPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLm1vdmluZyA9IGZhbHNlO1xuICAgICAgICB9KTtcblxuICAgICAgdGhpcy5yb290Py5jYWxsKHRoaXMuYnJ1c2gpO1xuICAgICAgY29uc3QgYnJ1c2hSZXNpemVQYXRoID0gZ2V0SGFuZGxlUGF0aCh0aGlzLnByb3BzKTtcbiAgICAgIHRoaXMuaGFuZGxlID0gdGhpcy5yb290XG4gICAgICAgID8uc2VsZWN0QWxsKCcuaGFuZGxlLS1jdXN0b20nKVxuICAgICAgICAuZGF0YShbe3R5cGU6ICd3J30sIHt0eXBlOiAnZSd9XSlcbiAgICAgICAgLmVudGVyKClcbiAgICAgICAgLmFwcGVuZCgncGF0aCcpXG4gICAgICAgIC5hdHRyKCdjbGFzcycsICdoYW5kbGUtLWN1c3RvbScpXG4gICAgICAgIC5hdHRyKCdkaXNwbGF5JywgaXNSYW5nZWQgPyBudWxsIDogJ25vbmUnKVxuICAgICAgICAuYXR0cignZmlsbCcsIHRoZW1lID8gdGhlbWUuc2xpZGVySGFuZGxlQ29sb3IgOiAnI0QzRDhFMCcpXG4gICAgICAgIC5hdHRyKCdjdXJzb3InLCAnZXctcmVzaXplJylcbiAgICAgICAgLmF0dHIoJ2QnLCBicnVzaFJlc2l6ZVBhdGgpXG4gICAgICAgIC5vbignbW91c2VvdmVyJywgKCkgPT4ge1xuICAgICAgICAgIGlmIChvbk1vdXNlb3ZlckhhbmRsZSkgb25Nb3VzZW92ZXJIYW5kbGUoKTtcbiAgICAgICAgfSlcbiAgICAgICAgLm9uKCdtb3VzZW91dCcsICgpID0+IHtcbiAgICAgICAgICBpZiAob25Nb3VzZW91dEhhbmRsZSkgb25Nb3VzZW91dEhhbmRsZSgpO1xuICAgICAgICB9KTtcblxuICAgICAgY29uc3Qge1xuICAgICAgICB2YWx1ZTogW3ZhbDAsIHZhbDFdXG4gICAgICB9ID0gdGhpcy5wcm9wcztcbiAgICAgIHRoaXMubW92aW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuX21vdmUodmFsMCwgdmFsMSk7XG4gICAgfVxuXG4gICAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgICAgY29uc3Qge1xuICAgICAgICB2YWx1ZTogW3ZhbDAsIHZhbDFdLFxuICAgICAgICB3aWR0aFxuICAgICAgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBbcHJldlZhbDAsIHByZXZWYWwxXSA9IHByZXZQcm9wcy52YWx1ZTtcblxuICAgICAgaWYgKFxuICAgICAgICBwcmV2UHJvcHMud2lkdGggIT09IHdpZHRoIHx8XG4gICAgICAgIHByZXZQcm9wcy5yYW5nZVswXSAhPT0gdGhpcy5wcm9wcy5yYW5nZVswXSB8fFxuICAgICAgICBwcmV2UHJvcHMucmFuZ2VbMV0gIT09IHRoaXMucHJvcHMucmFuZ2VbMV1cbiAgICAgICkge1xuICAgICAgICAvLyBkaW1lbnNpb24gY2hhbmdlIHNob3VsZCBub3QgdHJpZ2dlciB0aGlzLl9icnVzaGVkXG4gICAgICAgIHRoaXMubW92aW5nID0gdHJ1ZTtcbiAgICAgICAgaWYgKHRoaXMuYnJ1c2gpIHRoaXMucm9vdD8uY2FsbCh0aGlzLmJydXNoKTtcbiAgICAgICAgdGhpcy5fbW92ZSh2YWwwLCB2YWwxKTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLmJydXNoaW5nICYmICF0aGlzLm1vdmluZykge1xuICAgICAgICBpZiAocHJldlZhbDAgIT09IHZhbDAgfHwgcHJldlZhbDEgIT09IHZhbDEpIHtcbiAgICAgICAgICB0aGlzLm1vdmluZyA9IHRydWU7XG4gICAgICAgICAgdGhpcy5fbW92ZSh2YWwwLCB2YWwxKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMucHJvcHMuaXNSYW5nZWQgJiYgdGhpcy5oYW5kbGUpIHtcbiAgICAgICAgdGhpcy5oYW5kbGUuYXR0cignZGlzcGxheScsICdub25lJyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgX2NsaWNrKHNlbGVjdGlvbikge1xuICAgICAgLy8gZmFrZSBicnVzaFxuICAgICAgdGhpcy5icnVzaGluZyA9IHRydWU7XG4gICAgICB0aGlzLl9icnVzaGVkKHtzb3VyY2VFdmVudDoge30sIHNlbGVjdGlvbn0pO1xuICAgIH1cblxuICAgIF9tb3ZlKHZhbDAgPSAwLCB2YWwxID0gMCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICByYW5nZTogW21pbiwgbWF4XSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGlzUmFuZ2VkXG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKHdpZHRoICYmIG1heCAtIG1pbiAmJiB0aGlzLmJydXNoICYmIHRoaXMuaGFuZGxlKSB7XG4gICAgICAgIGNvbnN0IHNjYWxlID0gKHg6IG51bWJlcikgPT4gKCh4IC0gbWluKSAqIHdpZHRoKSAvIChtYXggLSBtaW4pO1xuICAgICAgICBpZiAoIWlzUmFuZ2VkKSB7XG4gICAgICAgICAgLy8gb25seSBkcmF3IGEgMSBwaXhlbCBsaW5lXG4gICAgICAgICAgaWYgKHRoaXMucm9vdCkgdGhpcy5icnVzaC5tb3ZlKHRoaXMucm9vdCwgW3NjYWxlKHZhbDApLCBzY2FsZSh2YWwwKSArIDFdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodGhpcy5yb290KSB0aGlzLmJydXNoLm1vdmUodGhpcy5yb290LCBbc2NhbGUodmFsMCksIHNjYWxlKHZhbDEpXSk7XG5cbiAgICAgICAgICB0aGlzLmhhbmRsZVxuICAgICAgICAgICAgLmF0dHIoJ2Rpc3BsYXknLCBudWxsKVxuICAgICAgICAgICAgLmF0dHIoJ3RyYW5zZm9ybScsIChkLCBpKSA9PiBgdHJhbnNsYXRlKCR7W2kgPT09IDAgPyBzY2FsZSh2YWwwKSA6IHNjYWxlKHZhbDEpLCAwXX0pYCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBfYnJ1c2hlZCA9IChldnQ6IHtzb3VyY2VFdmVudDogYW55OyBzZWxlY3Rpb246IG51bWJlcltdfSkgPT4ge1xuICAgICAgLy8gSWdub3JlIGJydXNoIGV2ZW50cyB3aGljaCBkb24ndCBoYXZlIGFuIHVuZGVybHlpbmcgc291cmNlRXZlbnRcbiAgICAgIGlmICghZXZ0LnNvdXJjZUV2ZW50KSByZXR1cm47XG4gICAgICBjb25zdCBbc2VsMCwgc2VsMV0gPSBldnQuc2VsZWN0aW9uO1xuICAgICAgY29uc3QgcmlnaHQgPSBtb3ZlUmlnaHQodGhpcy5fc3RhcnRTZWwsIGV2dC5zZWxlY3Rpb24pO1xuXG4gICAgICBjb25zdCB7XG4gICAgICAgIHJhbmdlOiBbbWluLCBtYXhdLFxuICAgICAgICBzdGVwID0gMCxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIG1hcmtzLFxuICAgICAgICBpc1JhbmdlZFxuICAgICAgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBpbnZlcnQgPSAoeDogbnVtYmVyKSA9PiAoeCAqIChtYXggLSBtaW4pKSAvIHdpZHRoICsgbWluO1xuICAgICAgbGV0IGQwID0gaW52ZXJ0KHNlbDApO1xuICAgICAgbGV0IGQxID0gaW52ZXJ0KHNlbDEpO1xuICAgICAgLy8gdGhpcyBtYWtlcyBzdXJlIGlmIHBvaW50cyBhcmUgcmlnaHQgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgZG9tYWlucyBhcmUgZGlzcGxheWVkIGNvcnJlY3RseVxuICAgICAgLy8gdGhlIHByb2JsZW0gaGVyZSBpcyBiaXNlY3RMZWZ0eFxuICAgICAgZDAgPSBkMCA9PT0gbWluID8gZDAgOiBub3JtYWxpemVTbGlkZXJWYWx1ZShkMCwgbWluLCBzdGVwLCBtYXJrcyk7XG4gICAgICBkMSA9IG5vcm1hbGl6ZVNsaWRlclZhbHVlKGQxLCBtaW4sIHN0ZXAsIG1hcmtzKTtcblxuICAgICAgaWYgKGlzUmFuZ2VkKSB0aGlzLl9tb3ZlKGQwLCBkMSk7XG4gICAgICBlbHNlIHRoaXMuX21vdmUoLi4uKHJpZ2h0ID8gW2QxLCBkMV0gOiBbZDAsIGQwXSkpO1xuXG4gICAgICBpZiAoaXNSYW5nZWQpIHRoaXMuX29uQnJ1c2goZDAsIGQxKTtcbiAgICAgIGVsc2UgdGhpcy5fb25CcnVzaChyaWdodCA/IGQxIDogZDApO1xuICAgIH07XG5cbiAgICBfb25CcnVzaCh2YWwwID0gMCwgdmFsMSA9IDApIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaXNSYW5nZWQsXG4gICAgICAgIHZhbHVlOiBbY3VycmVudFZhbDAsIGN1cnJlbnRWYWwxXVxuICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChjdXJyZW50VmFsMCA9PT0gdmFsMCAmJiBjdXJyZW50VmFsMSA9PT0gdmFsMSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChpc1JhbmdlZCkge1xuICAgICAgICB0aGlzLnByb3BzLm9uQnJ1c2godmFsMCwgdmFsMSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnByb3BzLm9uQnJ1c2godmFsMCwgdmFsMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge2lzUmFuZ2VkfSA9IHRoaXMucHJvcHM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkRyBjbGFzc05hbWU9XCJrZy1yYW5nZS1zbGlkZXJfX2JydXNoXCIgJGlzUmFuZ2VkPXtpc1JhbmdlZH0gcmVmPXt0aGlzLnJvb3RDb250YWluZXJ9IC8+XG4gICAgICApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gd2l0aFRoZW1lKFJhbmdlQnJ1c2gpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBSYW5nZUJydXNoRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBRix1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsWUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsUUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksTUFBQSxHQUFBSixPQUFBO0FBQXNELElBQUFLLGVBQUEsRUFQdEQ7QUFDQTtBQUFBLFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBUix3QkFBQVEsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FB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