@kepler.gl/components 3.3.0-alpha.0 → 3.3.0-alpha.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.
- package/dist/annotations/annotation-node.d.ts +11 -0
- package/dist/annotations/annotation-node.js +145 -0
- package/dist/annotations/annotation-overlay.d.ts +16 -0
- package/dist/annotations/annotation-overlay.js +166 -0
- package/dist/annotations/annotation-panel.d.ts +24 -0
- package/dist/annotations/annotation-panel.js +362 -0
- package/dist/annotations/annotation-text.d.ts +16 -0
- package/dist/annotations/annotation-text.js +150 -0
- package/dist/annotations/annotation-utils.d.ts +39 -0
- package/dist/annotations/annotation-utils.js +156 -0
- package/dist/annotations/index.d.ts +7 -0
- package/dist/annotations/index.js +53 -0
- package/dist/annotations/lexical-editor/clickable-link-plugin.d.ts +3 -0
- package/dist/annotations/lexical-editor/clickable-link-plugin.js +71 -0
- package/dist/annotations/lexical-editor/floating-link-editor.d.ts +1 -0
- package/dist/annotations/lexical-editor/floating-link-editor.js +194 -0
- package/dist/annotations/lexical-editor/index.d.ts +7 -0
- package/dist/annotations/lexical-editor/index.js +78 -0
- package/dist/annotations/lexical-editor/lexical-constants.d.ts +12 -0
- package/dist/annotations/lexical-editor/lexical-constants.js +22 -0
- package/dist/annotations/lexical-editor/lexical-nodes.d.ts +3 -0
- package/dist/annotations/lexical-editor/lexical-nodes.js +13 -0
- package/dist/annotations/lexical-editor/lexical-rich-text-editor.d.ts +15 -0
- package/dist/annotations/lexical-editor/lexical-rich-text-editor.js +122 -0
- package/dist/annotations/lexical-editor/lexical-theme.d.ts +15 -0
- package/dist/annotations/lexical-editor/lexical-theme.js +25 -0
- package/dist/annotations/lexical-editor/lexical-toolbar.d.ts +7 -0
- package/dist/annotations/lexical-editor/lexical-toolbar.js +293 -0
- package/dist/annotations/lexical-editor/lexical-utils.d.ts +4 -0
- package/dist/annotations/lexical-editor/lexical-utils.js +45 -0
- package/dist/annotations/lexical-editor/use-lexical-toolbar.d.ts +36 -0
- package/dist/annotations/lexical-editor/use-lexical-toolbar.js +253 -0
- package/dist/bottom-widget.d.ts +1 -1
- package/dist/bottom-widget.js +12 -6
- package/dist/common/action-panel.js +1 -1
- package/dist/common/animation-control/animation-control.d.ts +1 -0
- package/dist/common/animation-control/animation-control.js +3 -1
- package/dist/common/animation-control/animation-controller.js +8 -6
- package/dist/common/animation-control/export-video-control.d.ts +9 -0
- package/dist/common/animation-control/export-video-control.js +43 -0
- package/dist/common/animation-control/playback-controls.d.ts +4 -2
- package/dist/common/animation-control/playback-controls.js +7 -4
- package/dist/common/checkbox.d.ts +5 -21
- package/dist/common/checkbox.js +58 -70
- package/dist/common/color-legend.d.ts +1 -1
- package/dist/common/color-legend.js +3 -3
- package/dist/common/data-table/canvas.d.ts +1 -1
- package/dist/common/data-table/index.d.ts +2 -2
- package/dist/common/data-table/index.js +3 -3
- package/dist/common/dnd-layer-items.d.ts +4 -0
- package/dist/common/dnd-layer-items.js +6 -2
- package/dist/common/error-boundary.d.ts +1 -1
- package/dist/common/file-uploader/file-upload.d.ts +1 -1
- package/dist/common/file-uploader/file-upload.js +4 -4
- package/dist/common/flex-container.d.ts +15 -7
- package/dist/common/histogram-plot.js +102 -53
- package/dist/common/icon-button.d.ts +53 -6
- package/dist/common/icons/3d-models/airplane.d.ts +14 -0
- package/dist/common/icons/3d-models/airplane.js +104 -0
- package/dist/common/icons/3d-models/bicycle.d.ts +14 -0
- package/dist/common/icons/3d-models/bicycle.js +426 -0
- package/dist/common/icons/3d-models/boeing.d.ts +14 -0
- package/dist/common/icons/3d-models/boeing.js +119 -0
- package/dist/common/icons/3d-models/car.d.ts +14 -0
- package/dist/common/icons/3d-models/car.js +110 -0
- package/dist/common/icons/3d-models/cargoship.d.ts +14 -0
- package/dist/common/icons/3d-models/cargoship.js +246 -0
- package/dist/common/icons/3d-models/evtol.d.ts +14 -0
- package/dist/common/icons/3d-models/evtol.js +134 -0
- package/dist/common/icons/3d-models/glider.d.ts +14 -0
- package/dist/common/icons/3d-models/glider.js +62 -0
- package/dist/common/icons/3d-models/helicopter.d.ts +14 -0
- package/dist/common/icons/3d-models/helicopter.js +110 -0
- package/dist/common/icons/3d-models/scooter.d.ts +14 -0
- package/dist/common/icons/3d-models/scooter.js +159 -0
- package/dist/common/icons/3d-models/semitruck.d.ts +14 -0
- package/dist/common/icons/3d-models/semitruck.js +177 -0
- package/dist/common/icons/3d-models/truck.d.ts +14 -0
- package/dist/common/icons/3d-models/truck.js +122 -0
- package/dist/common/icons/anchor_window.d.ts +1 -8
- package/dist/common/icons/anchor_window.js +17 -10
- package/dist/common/icons/annotation-text.d.ts +9 -0
- package/dist/common/icons/annotation-text.js +56 -0
- package/dist/common/icons/arrow-down-full.d.ts +2 -1
- package/dist/common/icons/arrow-down-full.js +1 -1
- package/dist/common/icons/folder.d.ts +10 -0
- package/dist/common/icons/folder.js +51 -0
- package/dist/common/icons/index.d.ts +2 -0
- package/dist/common/icons/index.js +15 -1
- package/dist/common/icons/timeline-marker.d.ts +2 -1
- package/dist/common/icons/timeline-marker.js +1 -1
- package/dist/common/item-selector/chickleted-input.d.ts +1 -1
- package/dist/common/item-selector/chickleted-input.js +5 -5
- package/dist/common/item-selector/dropdown-list.d.ts +1 -1
- package/dist/common/item-selector/dropdown-list.js +1 -1
- package/dist/common/item-selector/dropdown-select.d.ts +13 -7
- package/dist/common/item-selector/item-selector.d.ts +1 -1
- package/dist/common/item-selector/item-selector.js +1 -1
- package/dist/common/item-selector/typeahead.d.ts +4 -4
- package/dist/common/item-selector/typeahead.js +1 -3
- package/dist/common/layout-splitter.d.ts +45 -0
- package/dist/common/layout-splitter.js +231 -0
- package/dist/common/line-chart.d.ts +10 -3
- package/dist/common/line-chart.js +219 -52
- package/dist/common/modal.d.ts +11 -5
- package/dist/common/modal.js +1 -1
- package/dist/common/portaled.d.ts +17 -17
- package/dist/common/range-plot.js +4 -2
- package/dist/common/range-slider.d.ts +2 -0
- package/dist/common/range-slider.js +108 -45
- package/dist/common/slider/mouse-event.d.ts +1 -1
- package/dist/common/slider/mouse-event.js +1 -2
- package/dist/common/slider/slider-bar-handle.d.ts +1 -1
- package/dist/common/slider/slider-bar-handle.js +1 -1
- package/dist/common/slider/slider-handle.d.ts +3 -3
- package/dist/common/slider/slider-handle.js +1 -1
- package/dist/common/slider/slider.d.ts +8 -4
- package/dist/common/slider/slider.js +78 -35
- package/dist/common/styled-components.d.ts +628 -178
- package/dist/common/styled-components.js +2 -2
- package/dist/common/time-range-slider-time-title.d.ts +1 -1
- package/dist/common/time-range-slider-time-title.js +5 -5
- package/dist/common/time-range-slider.d.ts +2 -1
- package/dist/common/time-range-slider.js +19 -7
- package/dist/common/timeline-helpers.d.ts +3 -0
- package/dist/common/timeline-helpers.js +57 -0
- package/dist/common/timeline-slider.js +21 -12
- package/dist/common/toolbar-item.js +5 -5
- package/dist/common/toolbar.d.ts +1 -1
- package/dist/common/toolbar.js +4 -4
- package/dist/common/vertical-toolbar.d.ts +13 -3
- package/dist/container.d.ts +3 -2
- package/dist/container.js +2 -2
- package/dist/context.d.ts +1 -1
- package/dist/context.js +1 -1
- package/dist/dnd-context.d.ts +4 -3
- package/dist/dnd-context.js +64 -9
- package/dist/effects/compact-color-picker.d.ts +1 -1
- package/dist/effects/effect-configurator.d.ts +5 -6
- package/dist/effects/effect-configurator.js +213 -52
- package/dist/effects/effect-manager.js +3 -3
- package/dist/effects/effect-panel-header.js +34 -17
- package/dist/effects/effect-panel.d.ts +4 -4
- package/dist/effects/effect-panel.js +61 -86
- package/dist/effects/effect-time-configurator.js +10 -10
- package/dist/effects/effect-type-dropdown-list.d.ts +1 -0
- package/dist/effects/effect-type-dropdown-list.js +1 -1
- package/dist/effects/effect-type-list-item.d.ts +2 -1
- package/dist/effects/effect-type-list-item.js +23 -7
- package/dist/effects/effect-type-selector.d.ts +1 -0
- package/dist/effects/effect-type-selector.js +2 -2
- package/dist/effects/surface-fog-section.d.ts +14 -0
- package/dist/effects/surface-fog-section.js +263 -0
- package/dist/filters/components.d.ts +7 -5
- package/dist/filters/filter-panels/filter-synced-dataset-panel.d.ts +6 -2
- package/dist/filters/index.d.ts +1 -0
- package/dist/filters/index.js +8 -1
- package/dist/filters/polygon-filter.js +2 -2
- package/dist/filters/time-range-filter.js +3 -1
- package/dist/filters/time-widget-settings.d.ts +14 -0
- package/dist/filters/time-widget-settings.js +312 -0
- package/dist/filters/time-widget-top.d.ts +2 -3
- package/dist/filters/time-widget-top.js +32 -39
- package/dist/filters/time-widget.d.ts +3 -2
- package/dist/filters/time-widget.js +285 -9
- package/dist/filters/types.d.ts +3 -3
- package/dist/filters/types.js +1 -1
- package/dist/geocoder/geocoder.d.ts +4 -1
- package/dist/geocoder/geocoder.js +61 -14
- package/dist/geocoder-panel.d.ts +3 -2
- package/dist/geocoder-panel.js +11 -8
- package/dist/hooks/use-dnd-layers.d.ts +4 -3
- package/dist/hooks/use-dnd-layers.js +103 -42
- package/dist/index.d.ts +17 -2
- package/dist/index.js +161 -9
- package/dist/injector.d.ts +1 -1
- package/dist/kepler-gl.d.ts +179 -27
- package/dist/kepler-gl.js +91 -12
- package/dist/loading-indicator.d.ts +3 -1
- package/dist/loading-indicator.js +6 -3
- package/dist/map/annotations/annotation-control.d.ts +16 -0
- package/dist/map/annotations/annotation-control.js +56 -0
- package/dist/map/layer-hover-info.d.ts +7 -3
- package/dist/map/layer-hover-info.js +124 -55
- package/dist/map/locale-panel.d.ts +1 -1
- package/dist/map/locale-panel.js +2 -2
- package/dist/map/map-control-panel.js +3 -2
- package/dist/map/map-control-toolbar.d.ts +33 -8
- package/dist/map/map-control.d.ts +14 -4
- package/dist/map/map-control.js +18 -8
- package/dist/map/map-draw-panel.d.ts +1 -1
- package/dist/map/map-draw-panel.js +7 -4
- package/dist/map/map-legend-panel.d.ts +11 -2
- package/dist/map/map-legend-panel.js +25 -8
- package/dist/map/map-legend.d.ts +20 -3
- package/dist/map/map-legend.js +145 -31
- package/dist/map/map-navigation-control.d.ts +13 -0
- package/dist/map/map-navigation-control.js +143 -0
- package/dist/map/map-popover.js +2 -2
- package/dist/map/split-map-button.d.ts +6 -1
- package/dist/map/split-map-button.js +113 -19
- package/dist/map-container.d.ts +13 -3
- package/dist/map-container.js +269 -59
- package/dist/map-view-state-context.d.ts +1 -0
- package/dist/map-view-state-context.js +1 -1
- package/dist/maps-layout.d.ts +3 -0
- package/dist/maps-layout.js +86 -26
- package/dist/modal-container.d.ts +3 -2
- package/dist/modal-container.js +28 -6
- package/dist/modals/add-map-style-modal.js +173 -200
- package/dist/modals/cloud-tile.d.ts +1 -2
- package/dist/modals/data-table-modal.d.ts +1 -1
- package/dist/modals/data-table-modal.js +146 -194
- package/dist/modals/export-data-modal.js +117 -139
- package/dist/modals/export-map-modal/components.d.ts +9 -5
- package/dist/modals/export-video-modal.d.ts +28 -0
- package/dist/modals/export-video-modal.js +371 -0
- package/dist/modals/export-video-modal.spec.d.ts +1 -0
- package/dist/modals/export-video-modal.spec.js +686 -0
- package/dist/modals/fog-height-animation.d.ts +8 -0
- package/dist/modals/fog-height-animation.js +97 -0
- package/dist/modals/hubble-utils.d.ts +41 -0
- package/dist/modals/hubble-utils.js +294 -0
- package/dist/modals/hubble-utils.spec.d.ts +1 -0
- package/dist/modals/hubble-utils.spec.js +397 -0
- package/dist/modals/modal-dialog.d.ts +1 -1
- package/dist/modals/share-map-modal.d.ts +2 -4
- package/dist/modals/swipe-composite-utils.d.ts +10 -0
- package/dist/modals/swipe-composite-utils.js +108 -0
- package/dist/modals/swipe-export-settings.d.ts +24 -0
- package/dist/modals/swipe-export-settings.js +370 -0
- package/dist/modals/swipe-export-video-container.d.ts +122 -0
- package/dist/modals/swipe-export-video-container.js +630 -0
- package/dist/modals/swipe-export-video-preview.d.ts +68 -0
- package/dist/modals/swipe-export-video-preview.js +339 -0
- package/dist/modals/tilesets-modals/load-data-footer.js +2 -2
- package/dist/modals/tilesets-modals/load-tileset.js +21 -10
- package/dist/modals/tilesets-modals/tileset-bitmap-form.d.ts +14 -0
- package/dist/modals/tilesets-modals/tileset-bitmap-form.js +284 -0
- package/dist/modals/tilesets-modals/tileset-raster-form.js +90 -11
- package/dist/modals/tilesets-modals/tileset-tile3d-form.js +3 -2
- package/dist/modals/tilesets-modals/tileset-vector-form.js +58 -4
- package/dist/modals/tilesets-modals/tileset-wms-form.js +4 -3
- package/dist/notification-panel/notification-item.d.ts +1 -53
- package/dist/notification-panel/notification-item.js +47 -75
- package/dist/notification-panel.d.ts +1 -1
- package/dist/notification-panel.js +20 -42
- package/dist/plot-container.js +7 -6
- package/dist/side-panel/add-by-dataset-button.js +3 -3
- package/dist/side-panel/common/dataset-info.js +2 -2
- package/dist/side-panel/filter-panel/filter-panel-header.d.ts +7 -3
- package/dist/side-panel/interaction-panel/geocoder-config.d.ts +11 -0
- package/dist/side-panel/interaction-panel/geocoder-config.js +45 -0
- package/dist/side-panel/interaction-panel/interaction-panel.d.ts +3 -2
- package/dist/side-panel/interaction-panel/interaction-panel.js +10 -3
- package/dist/side-panel/layer-manager.d.ts +5 -4
- package/dist/side-panel/layer-manager.js +26 -6
- package/dist/side-panel/layer-panel/color-scale-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/color-scale-selector.js +1 -1
- package/dist/side-panel/layer-panel/color-selector.d.ts +6 -4
- package/dist/side-panel/layer-panel/custom-palette.d.ts +3 -5
- package/dist/side-panel/layer-panel/custom-palette.js +5 -5
- package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +2 -1
- package/dist/side-panel/layer-panel/dataset-layer-group.js +1 -1
- package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +2 -1
- package/dist/side-panel/layer-panel/dataset-layer-section.js +19 -3
- package/dist/side-panel/layer-panel/layer-config-group.d.ts +5 -11
- package/dist/side-panel/layer-panel/layer-configurator.d.ts +4 -2
- package/dist/side-panel/layer-panel/layer-configurator.js +450 -76
- package/dist/side-panel/layer-panel/layer-group-header.d.ts +15 -0
- package/dist/side-panel/layer-panel/layer-group-header.js +179 -0
- package/dist/side-panel/layer-panel/layer-list.d.ts +9 -4
- package/dist/side-panel/layer-panel/layer-list.js +197 -40
- package/dist/side-panel/layer-panel/layer-panel-header.js +2 -2
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.d.ts +1 -1
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +127 -27
- package/dist/side-panel/layer-panel/scenegraph-model-selector.d.ts +24 -0
- package/dist/side-panel/layer-panel/scenegraph-model-selector.js +123 -0
- package/dist/side-panel/layer-panel/text-label-panel.d.ts +1 -1
- package/dist/side-panel/layer-panel/text-label-panel.js +11 -2
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +1 -1
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +2 -10
- package/dist/side-panel/layer-panel/vis-config-slider.d.ts +2 -0
- package/dist/side-panel/layer-panel/vis-config-slider.js +7 -3
- package/dist/side-panel/panel-header.d.ts +1 -0
- package/dist/side-panel/panel-header.js +9 -2
- package/dist/side-panel/panel-tab.d.ts +2 -4
- package/dist/side-panel/panel-tab.js +4 -4
- package/dist/side-panel/panel-view-list-toggle.d.ts +4 -4
- package/dist/side-panel/side-bar.d.ts +1 -6
- package/dist/side-panel.d.ts +1 -1
- package/dist/side-panel.js +5 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.js +1 -1
- package/package.json +53 -48
- package/dist/map/layer-selector-panel.d.ts +0 -21
- package/dist/map/layer-selector-panel.js +0 -85
- package/dist/side-panel/layer-panel/radius-by-zoom-input.d.ts +0 -11
- package/dist/side-panel/layer-panel/radius-by-zoom-input.js +0 -220
|
@@ -6,28 +6,36 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = void 0;
|
|
9
|
-
var
|
|
9
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
12
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
13
|
var _react = _interopRequireWildcard(require("react"));
|
|
14
14
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
15
15
|
var _classnames3 = _interopRequireDefault(require("classnames"));
|
|
16
|
+
var _core = require("@dnd-kit/core");
|
|
16
17
|
var _sortable = require("@dnd-kit/sortable");
|
|
17
18
|
var _utilities = require("@dnd-kit/utilities");
|
|
18
19
|
var _layerPanel = _interopRequireDefault(require("./layer-panel"));
|
|
19
|
-
var
|
|
20
|
+
var _layerGroupHeader = _interopRequireDefault(require("./layer-group-header"));
|
|
21
|
+
var _reducers = require("@kepler.gl/reducers");
|
|
20
22
|
var _constants = require("@kepler.gl/constants");
|
|
21
23
|
var _dndLayerItems = require("../../common/dnd-layer-items");
|
|
22
|
-
var _templateObject, _templateObject2; // SPDX-License-Identifier: MIT
|
|
24
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10; // SPDX-License-Identifier: MIT
|
|
23
25
|
// Copyright contributors to the kepler.gl project
|
|
24
26
|
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); }
|
|
25
27
|
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; }
|
|
26
|
-
// make sure the element is always visible while is being dragged
|
|
27
|
-
// item being dragged is appended in body, here to reset its global style
|
|
28
|
-
|
|
29
28
|
var Container = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n gap: 8px;\n"])));
|
|
30
|
-
var
|
|
29
|
+
var animateLayoutChanges = function animateLayoutChanges(args) {
|
|
30
|
+
var isSorting = args.isSorting,
|
|
31
|
+
wasDragging = args.wasDragging;
|
|
32
|
+
if (isSorting || wasDragging) {
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
return (0, _sortable.defaultAnimateLayoutChanges)(args);
|
|
36
|
+
};
|
|
37
|
+
var EndPlaceholder = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n height: 4px;\n"])));
|
|
38
|
+
var SortableStyledItem = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n transition: ", ";\n transform: ", ";\n &.sorting {\n opacity: 0.3;\n pointer-events: none;\n }\n &.sorting-layers .layer-panel__header {\n background-color: ", ";\n font-family: ", ";\n font-weight: ", ";\n font-size: ", ";\n line-height: ", ";\n *,\n *:before,\n *:after {\n box-sizing: border-box;\n }\n .layer__drag-handle {\n opacity: 1;\n color: ", ";\n }\n }\n"])), function (props) {
|
|
31
39
|
return props.$transition;
|
|
32
40
|
}, function (props) {
|
|
33
41
|
return props.$transform;
|
|
@@ -44,24 +52,63 @@ var SortableStyledItem = _styledComponents["default"].div(_templateObject2 || (_
|
|
|
44
52
|
}, function (props) {
|
|
45
53
|
return props.theme.textColorHl;
|
|
46
54
|
});
|
|
47
|
-
var
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
var CollapsibleGroupContent = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n gap: 0;\n padding: 4px 0;\n min-height: 32px;\n background-color: ", ";\n transition: background-color 0.15s ease;\n"])), function (props) {
|
|
56
|
+
return props.$isOver ? props.theme.panelBackgroundHover : 'transparent';
|
|
57
|
+
});
|
|
58
|
+
var CollapsedDropZone = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 4px;\n background-color: ", ";\n transition: background-color 0.15s ease, min-height 0.15s ease;\n ", "\n"])), function (props) {
|
|
59
|
+
return props.$isOver ? props.theme.activeColor : 'transparent';
|
|
60
|
+
}, function (props) {
|
|
61
|
+
return props.$isOver && 'min-height: 24px;';
|
|
62
|
+
});
|
|
63
|
+
var EmptyLayerGroup = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n font-size: 11px;\n align-items: center;\n justify-content: center;\n min-height: 28px;\n border: 1px dashed ", ";\n border-radius: 4px;\n margin-top: 4px;\n color: ", ";\n"])), function (props) {
|
|
64
|
+
return props.theme.labelColor;
|
|
65
|
+
}, function (props) {
|
|
66
|
+
return props.theme.subtextColor;
|
|
67
|
+
});
|
|
68
|
+
var TREE_TILE_WIDTH = 10;
|
|
69
|
+
var TREE_TILE_BORDER_WIDTH = 1;
|
|
70
|
+
var StyledColumn = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n border-left: ", "px dashed ", ";\n"])), function (props) {
|
|
71
|
+
return props.$isLast ? 0 : 1;
|
|
72
|
+
}, function (props) {
|
|
73
|
+
return props.theme.labelColor;
|
|
74
|
+
});
|
|
75
|
+
var TreeTile = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", "px;\n border-bottom: 1px dashed ", ";\n height: ", "px;\n margin-top: 2px;\n border-left: ", "px dashed ", ";\n"])), TREE_TILE_WIDTH, function (props) {
|
|
76
|
+
return props.theme.labelColor;
|
|
77
|
+
}, function (props) {
|
|
78
|
+
return (props.theme.layerPanelHeaderHeight || 32) / 2;
|
|
79
|
+
}, function (props) {
|
|
80
|
+
return props.$isLast ? 1 : 0;
|
|
81
|
+
}, function (props) {
|
|
82
|
+
return props.theme.labelColor;
|
|
83
|
+
});
|
|
84
|
+
var NestedLayerContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n"])));
|
|
85
|
+
var NestedLayerContent = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n width: calc(100% - ", "px);\n padding-top: 8px;\n"])), TREE_TILE_WIDTH + TREE_TILE_BORDER_WIDTH);
|
|
86
|
+
LayerListFactory.deps = [_layerPanel["default"], _layerGroupHeader["default"]];
|
|
87
|
+
function LayerListFactory(LayerPanel, LayerGroupHeader) {
|
|
88
|
+
var NestedLayer = function NestedLayer(_ref) {
|
|
89
|
+
var children = _ref.children,
|
|
90
|
+
isLast = _ref.isLast;
|
|
91
|
+
return /*#__PURE__*/_react["default"].createElement(NestedLayerContainer, null, /*#__PURE__*/_react["default"].createElement(StyledColumn, {
|
|
92
|
+
$isLast: isLast
|
|
93
|
+
}, /*#__PURE__*/_react["default"].createElement(TreeTile, {
|
|
94
|
+
$isLast: isLast
|
|
95
|
+
})), /*#__PURE__*/_react["default"].createElement(NestedLayerContent, null, children));
|
|
96
|
+
};
|
|
97
|
+
var SortableLayerItem = function SortableLayerItem(_ref2) {
|
|
98
|
+
var layer = _ref2.layer,
|
|
99
|
+
idx = _ref2.idx,
|
|
100
|
+
panelProps = _ref2.panelProps,
|
|
101
|
+
layerActions = _ref2.layerActions,
|
|
102
|
+
disabled = _ref2.disabled,
|
|
103
|
+
parent = _ref2.parent;
|
|
58
104
|
var _useSortable = (0, _sortable.useSortable)({
|
|
59
105
|
id: layer.id,
|
|
60
106
|
data: {
|
|
61
107
|
type: _dndLayerItems.SORTABLE_LAYER_TYPE,
|
|
62
|
-
parent:
|
|
108
|
+
parent: parent
|
|
63
109
|
},
|
|
64
|
-
disabled: disabled
|
|
110
|
+
disabled: disabled,
|
|
111
|
+
animateLayoutChanges: animateLayoutChanges
|
|
65
112
|
}),
|
|
66
113
|
attributes = _useSortable.attributes,
|
|
67
114
|
listeners = _useSortable.listeners,
|
|
@@ -85,6 +132,110 @@ function LayerListFactory(LayerPanel) {
|
|
|
85
132
|
isDraggable: !disabled
|
|
86
133
|
})));
|
|
87
134
|
};
|
|
135
|
+
var SortableGroupItem = function SortableGroupItem(_ref3) {
|
|
136
|
+
var layerGroup = _ref3.layerGroup,
|
|
137
|
+
layers = _ref3.layers,
|
|
138
|
+
panelProps = _ref3.panelProps,
|
|
139
|
+
layerActions = _ref3.layerActions,
|
|
140
|
+
disabled = _ref3.disabled;
|
|
141
|
+
var _useSortable2 = (0, _sortable.useSortable)({
|
|
142
|
+
id: layerGroup.id,
|
|
143
|
+
data: {
|
|
144
|
+
type: _dndLayerItems.SORTABLE_LAYER_GROUP_TYPE
|
|
145
|
+
},
|
|
146
|
+
disabled: disabled,
|
|
147
|
+
animateLayoutChanges: animateLayoutChanges
|
|
148
|
+
}),
|
|
149
|
+
attributes = _useSortable2.attributes,
|
|
150
|
+
isDragging = _useSortable2.isDragging,
|
|
151
|
+
listeners = _useSortable2.listeners,
|
|
152
|
+
setNodeRef = _useSortable2.setNodeRef,
|
|
153
|
+
transform = _useSortable2.transform,
|
|
154
|
+
transition = _useSortable2.transition;
|
|
155
|
+
var layerEntriesToShow = (0, _reducers.buildLayerOrderHierarchy)(layerGroup.layerOrder, layers);
|
|
156
|
+
var dndItems = layerEntriesToShow.map(function (entry) {
|
|
157
|
+
var _entry$1$id;
|
|
158
|
+
return (_entry$1$id = entry[1].id) !== null && _entry$1$id !== void 0 ? _entry$1$id : entry[1];
|
|
159
|
+
});
|
|
160
|
+
var _useState = (0, _react.useState)(true),
|
|
161
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
162
|
+
isSectionOpen = _useState2[0],
|
|
163
|
+
setIsSectionOpen = _useState2[1];
|
|
164
|
+
var onToggle = (0, _react.useCallback)(function () {
|
|
165
|
+
return setIsSectionOpen(function (prev) {
|
|
166
|
+
return !prev;
|
|
167
|
+
});
|
|
168
|
+
}, []);
|
|
169
|
+
var style = (0, _react.useMemo)(function () {
|
|
170
|
+
return {
|
|
171
|
+
transform: _utilities.CSS.Transform.toString(transform),
|
|
172
|
+
transition: transition,
|
|
173
|
+
opacity: isDragging ? 0.5 : 1
|
|
174
|
+
};
|
|
175
|
+
}, [isDragging, transform, transition]);
|
|
176
|
+
var _useDroppable = (0, _core.useDroppable)({
|
|
177
|
+
id: "droppable-layer-group-content-".concat(layerGroup.id),
|
|
178
|
+
data: {
|
|
179
|
+
type: _dndLayerItems.SORTABLE_LAYER_GROUP_DROPPABLE_TYPE,
|
|
180
|
+
parent: layerGroup
|
|
181
|
+
}
|
|
182
|
+
}),
|
|
183
|
+
isOver = _useDroppable.isOver,
|
|
184
|
+
droppableSetNodeRef = _useDroppable.setNodeRef;
|
|
185
|
+
var isOpen = (0, _react.useMemo)(function () {
|
|
186
|
+
return isSectionOpen && !isDragging;
|
|
187
|
+
}, [isSectionOpen, isDragging]);
|
|
188
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
189
|
+
style: style
|
|
190
|
+
}, /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
|
|
191
|
+
ref: setNodeRef
|
|
192
|
+
}, attributes), /*#__PURE__*/_react["default"].createElement(LayerGroupHeader, {
|
|
193
|
+
layerGroup: layerGroup,
|
|
194
|
+
onToggleLayerGroupContent: onToggle,
|
|
195
|
+
isLayerGroupContentOpen: isSectionOpen,
|
|
196
|
+
listeners: listeners
|
|
197
|
+
})), isOpen ? /*#__PURE__*/_react["default"].createElement(CollapsibleGroupContent, {
|
|
198
|
+
ref: droppableSetNodeRef,
|
|
199
|
+
$isOver: isOver
|
|
200
|
+
}, layerEntriesToShow.length ? /*#__PURE__*/_react["default"].createElement(_sortable.SortableContext, {
|
|
201
|
+
id: "sortable-group-".concat(layerGroup.id),
|
|
202
|
+
items: dndItems,
|
|
203
|
+
strategy: _sortable.verticalListSortingStrategy
|
|
204
|
+
}, layerEntriesToShow.map(function (_ref4, index) {
|
|
205
|
+
var _ref5 = (0, _slicedToArray2["default"])(_ref4, 2),
|
|
206
|
+
type = _ref5[0],
|
|
207
|
+
nestedEntry = _ref5[1];
|
|
208
|
+
return type === 'layer' ? /*#__PURE__*/_react["default"].createElement(NestedLayer, {
|
|
209
|
+
key: nestedEntry.id,
|
|
210
|
+
isLast: index === layerEntriesToShow.length - 1
|
|
211
|
+
}, /*#__PURE__*/_react["default"].createElement(SortableLayerItem, {
|
|
212
|
+
layer: nestedEntry,
|
|
213
|
+
idx: layers.findIndex(function (l) {
|
|
214
|
+
return (l === null || l === void 0 ? void 0 : l.id) === nestedEntry.id;
|
|
215
|
+
}),
|
|
216
|
+
panelProps: panelProps,
|
|
217
|
+
layerActions: layerActions,
|
|
218
|
+
disabled: disabled,
|
|
219
|
+
parent: layerGroup
|
|
220
|
+
})) : null;
|
|
221
|
+
})) : /*#__PURE__*/_react["default"].createElement(EmptyLayerGroup, null, "Drag layer here")) : /*#__PURE__*/_react["default"].createElement(CollapsedDropZone, {
|
|
222
|
+
ref: droppableSetNodeRef,
|
|
223
|
+
$isOver: isOver
|
|
224
|
+
}));
|
|
225
|
+
};
|
|
226
|
+
var SortableEndPlaceholder = function SortableEndPlaceholder() {
|
|
227
|
+
var _useSortable3 = (0, _sortable.useSortable)({
|
|
228
|
+
id: _dndLayerItems.SORTABLE_LAYER_END_PLACEHOLDER,
|
|
229
|
+
data: {
|
|
230
|
+
type: _dndLayerItems.SORTABLE_LAYER_END_TYPE
|
|
231
|
+
},
|
|
232
|
+
animateLayoutChanges: animateLayoutChanges
|
|
233
|
+
}),
|
|
234
|
+
setNodeRef = _useSortable3.setNodeRef;
|
|
235
|
+
return /*#__PURE__*/_react["default"].createElement(EndPlaceholder, {
|
|
236
|
+
ref: setNodeRef
|
|
237
|
+
});
|
|
238
|
+
};
|
|
88
239
|
var LayerList = function LayerList(props) {
|
|
89
240
|
var layers = props.layers,
|
|
90
241
|
datasets = props.datasets,
|
|
@@ -97,21 +248,17 @@ function LayerListFactory(LayerPanel) {
|
|
|
97
248
|
isSortable = _props$isSortable === void 0 ? true : _props$isSortable,
|
|
98
249
|
splitMap = props.splitMap;
|
|
99
250
|
var openModal = uiStateActions.toggleModal;
|
|
100
|
-
var
|
|
101
|
-
return
|
|
102
|
-
|
|
103
|
-
if (!layer) {
|
|
104
|
-
return acc;
|
|
105
|
-
}
|
|
106
|
-
return !layer.config.hidden ? [].concat((0, _toConsumableArray2["default"])(acc), [layer]) : acc;
|
|
107
|
-
}, INITIAL_LAYERS_TO_SHOW);
|
|
108
|
-
}, [layers, layerOrder]);
|
|
251
|
+
var layerEntriesToShow = (0, _react.useMemo)(function () {
|
|
252
|
+
return (0, _reducers.buildLayerOrderHierarchy)(layerOrder, layers);
|
|
253
|
+
}, [layerOrder, layers]);
|
|
109
254
|
var sidePanelDndItems = (0, _react.useMemo)(function () {
|
|
110
|
-
|
|
111
|
-
var
|
|
112
|
-
return id;
|
|
255
|
+
var items = layerEntriesToShow.map(function (entry) {
|
|
256
|
+
var _entry$1$id2;
|
|
257
|
+
return (_entry$1$id2 = entry[1].id) !== null && _entry$1$id2 !== void 0 ? _entry$1$id2 : entry[1];
|
|
113
258
|
});
|
|
114
|
-
|
|
259
|
+
items.push(_dndLayerItems.SORTABLE_LAYER_END_PLACEHOLDER);
|
|
260
|
+
return items;
|
|
261
|
+
}, [layerEntriesToShow]);
|
|
115
262
|
var layerTypeOptions = (0, _react.useMemo)(function () {
|
|
116
263
|
return Object.keys(layerClasses).map(function (key) {
|
|
117
264
|
var layer = new layerClasses[key]({
|
|
@@ -153,20 +300,30 @@ function LayerListFactory(LayerPanel) {
|
|
|
153
300
|
items: sidePanelDndItems,
|
|
154
301
|
strategy: _sortable.verticalListSortingStrategy,
|
|
155
302
|
disabled: !isSortable
|
|
156
|
-
},
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
303
|
+
}, layerEntriesToShow.map(function (_ref6) {
|
|
304
|
+
var _ref7 = (0, _slicedToArray2["default"])(_ref6, 2),
|
|
305
|
+
type = _ref7[0],
|
|
306
|
+
item = _ref7[1];
|
|
307
|
+
return type === 'layer' ? /*#__PURE__*/_react["default"].createElement(SortableLayerItem, {
|
|
308
|
+
key: item.id,
|
|
309
|
+
layer: item,
|
|
160
310
|
idx: layers.findIndex(function (l) {
|
|
161
|
-
return (l === null || l === void 0 ? void 0 : l.id) ===
|
|
311
|
+
return (l === null || l === void 0 ? void 0 : l.id) === item.id;
|
|
162
312
|
}),
|
|
163
313
|
panelProps: panelProps,
|
|
164
314
|
layerActions: layerActions,
|
|
165
315
|
disabled: !isSortable
|
|
316
|
+
}) : /*#__PURE__*/_react["default"].createElement(SortableGroupItem, {
|
|
317
|
+
key: item.id,
|
|
318
|
+
layerGroup: item,
|
|
319
|
+
layers: layers,
|
|
320
|
+
panelProps: panelProps,
|
|
321
|
+
layerActions: layerActions,
|
|
322
|
+
disabled: !isSortable
|
|
166
323
|
});
|
|
167
|
-
})));
|
|
324
|
+
}), /*#__PURE__*/_react["default"].createElement(SortableEndPlaceholder, null)));
|
|
168
325
|
};
|
|
169
326
|
return LayerList;
|
|
170
327
|
}
|
|
171
328
|
var _default = exports["default"] = LayerListFactory;
|
|
172
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lczMiLCJfc29ydGFibGUiLCJfdXRpbGl0aWVzIiwiX2xheWVyUGFuZWwiLCJfdXRpbHMiLCJfY29uc3RhbnRzIiwiX2RuZExheWVySXRlbXMiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiQ29udGFpbmVyIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJTb3J0YWJsZVN0eWxlZEl0ZW0iLCJwcm9wcyIsIiR0cmFuc2l0aW9uIiwiJHRyYW5zZm9ybSIsInRoZW1lIiwicGFuZWxCYWNrZ3JvdW5kSG92ZXIiLCJmb250RmFtaWx5IiwiZm9udFdlaWdodCIsImZvbnRTaXplIiwibGluZUhlaWdodCIsInRleHRDb2xvckhsIiwiSU5JVElBTF9MQVlFUlNfVE9fU0hPVyIsIkxheWVyTGlzdEZhY3RvcnkiLCJkZXBzIiwiTGF5ZXJQYW5lbEZhY3RvcnkiLCJMYXllclBhbmVsIiwiU29ydGFibGVJdGVtIiwiX3JlZiIsImxheWVyIiwiaWR4IiwicGFuZWxQcm9wcyIsImxheWVyQWN0aW9ucyIsImRpc2FibGVkIiwiX3VzZVNvcnRhYmxlIiwidXNlU29ydGFibGUiLCJpZCIsImRhdGEiLCJ0eXBlIiwiU09SVEFCTEVfTEFZRVJfVFlQRSIsInBhcmVudCIsIlNPUlRBQkxFX1NJREVfUEFORUxfVFlQRSIsImF0dHJpYnV0ZXMiLCJsaXN0ZW5lcnMiLCJzZXROb2RlUmVmIiwiaXNEcmFnZ2luZyIsInRyYW5zZm9ybSIsInRyYW5zaXRpb24iLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwicmVmIiwiY2xhc3NOYW1lIiwiY2xhc3NuYW1lcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkYXRhVGVzdElkcyIsInNvcnRhYmxlTGF5ZXJJdGVtIiwic3RhdGljTGF5ZXJJdGVtIiwic29ydGluZyIsIkNTUyIsIlRyYW5zZm9ybSIsInRvU3RyaW5nIiwia2V5IiwiaXNEcmFnZ2FibGUiLCJMYXllckxpc3QiLCJsYXllcnMiLCJkYXRhc2V0cyIsImxheWVyT3JkZXIiLCJ1aVN0YXRlQWN0aW9ucyIsInZpc1N0YXRlQWN0aW9ucyIsIm1hcFN0YXRlQWN0aW9ucyIsImxheWVyQ2xhc3NlcyIsIl9wcm9wcyRpc1NvcnRhYmxlIiwiaXNTb3J0YWJsZSIsInNwbGl0TWFwIiwib3Blbk1vZGFsIiwidG9nZ2xlTW9kYWwiLCJsYXllcnNUb1Nob3ciLCJ1c2VNZW1vIiwicmVkdWNlIiwiYWNjIiwibGF5ZXJJZCIsImZpbmRCeUlkIiwiZmlsdGVyIiwiQm9vbGVhbiIsImNvbmZpZyIsImhpZGRlbiIsImNvbmNhdCIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJzaWRlUGFuZWxEbmRJdGVtcyIsIm1hcCIsIl9yZWYyIiwibGF5ZXJUeXBlT3B0aW9ucyIsImtleXMiLCJkYXRhSWQiLCJsYWJlbCIsIm5hbWUiLCJpY29uIiwibGF5ZXJJY29uIiwicmVxdWlyZURhdGEiLCJsYXllckNvbG9yVUlDaGFuZ2UiLCJsYXllckNvbmZpZ0NoYW5nZSIsImxheWVyVmlzdWFsQ2hhbm5lbENvbmZpZ0NoYW5nZSIsImxheWVyVG9nZ2xlVmlzaWJpbGl0eSIsImxheWVyVHlwZUNoYW5nZSIsImxheWVyVmlzQ29uZmlnQ2hhbmdlIiwibGF5ZXJUZXh0TGFiZWxDaGFuZ2UiLCJyZW1vdmVMYXllciIsInpvb21Ub0xheWVyIiwiZml0Qm91bmRzIiwiZHVwbGljYXRlTGF5ZXIiLCJsYXllclNldElzVmFsaWQiLCJTb3J0YWJsZUNvbnRleHQiLCJpdGVtcyIsInN0cmF0ZWd5IiwidmVydGljYWxMaXN0U29ydGluZ1N0cmF0ZWd5IiwiZmluZEluZGV4IiwibCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL2xheWVyLWxpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZU1lbW99IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5cbmltcG9ydCB7TGF5ZXIsIExheWVyQ2xhc3Nlc1R5cGV9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7RGF0YXNldHN9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuaW1wb3J0IHtVSVN0YXRlQWN0aW9ucywgVmlzU3RhdGVBY3Rpb25zLCBNYXBTdGF0ZUFjdGlvbnN9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5cbmltcG9ydCB7dXNlU29ydGFibGUsIFNvcnRhYmxlQ29udGV4dCwgdmVydGljYWxMaXN0U29ydGluZ1N0cmF0ZWd5fSBmcm9tICdAZG5kLWtpdC9zb3J0YWJsZSc7XG5pbXBvcnQge0NTU30gZnJvbSAnQGRuZC1raXQvdXRpbGl0aWVzJztcbmltcG9ydCBMYXllclBhbmVsRmFjdG9yeSBmcm9tICcuL2xheWVyLXBhbmVsJztcbmltcG9ydCB7ZmluZEJ5SWR9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtkYXRhVGVzdElkc30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtTcGxpdE1hcH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1NPUlRBQkxFX0xBWUVSX1RZUEUsIFNPUlRBQkxFX1NJREVfUEFORUxfVFlQRX0gZnJvbSAnLi4vLi4vY29tbW9uL2RuZC1sYXllci1pdGVtcyc7XG5cbmV4cG9ydCB0eXBlIExheWVyTGlzdFByb3BzID0ge1xuICBkYXRhc2V0czogRGF0YXNldHM7XG4gIGxheWVyczogTGF5ZXJbXTtcbiAgbGF5ZXJPcmRlcjogc3RyaW5nW107XG4gIGxheWVyQ2xhc3NlczogTGF5ZXJDbGFzc2VzVHlwZTtcbiAgaXNTb3J0YWJsZT86IGJvb2xlYW47XG4gIHNwbGl0TWFwPzogU3BsaXRNYXA7XG4gIHVpU3RhdGVBY3Rpb25zOiB0eXBlb2YgVUlTdGF0ZUFjdGlvbnM7XG4gIHZpc1N0YXRlQWN0aW9uczogdHlwZW9mIFZpc1N0YXRlQWN0aW9ucztcbiAgbWFwU3RhdGVBY3Rpb25zOiB0eXBlb2YgTWFwU3RhdGVBY3Rpb25zO1xufTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJMaXN0RmFjdG9yeURlcHMgPSBbdHlwZW9mIExheWVyUGFuZWxGYWN0b3J5XTtcblxuLy8gbWFrZSBzdXJlIHRoZSBlbGVtZW50IGlzIGFsd2F5cyB2aXNpYmxlIHdoaWxlIGlzIGJlaW5nIGRyYWdnZWRcbi8vIGl0ZW0gYmVpbmcgZHJhZ2dlZCBpcyBhcHBlbmRlZCBpbiBib2R5LCBoZXJlIHRvIHJlc2V0IGl0cyBnbG9iYWwgc3R5bGVcblxuY29uc3QgQ29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZ2FwOiA4cHg7XG5gO1xuXG5pbnRlcmZhY2UgU29ydGFibGVTdHlsZWRJdGVtUHJvcHMge1xuICAkdHJhbnNpdGlvbj86IHN0cmluZztcbiAgJHRyYW5zZm9ybT86IHN0cmluZztcbn1cblxuY29uc3QgU29ydGFibGVTdHlsZWRJdGVtID0gc3R5bGVkLmRpdjxTb3J0YWJsZVN0eWxlZEl0ZW1Qcm9wcz5gXG4gIHRyYW5zaXRpb246ICR7cHJvcHMgPT4gcHJvcHMuJHRyYW5zaXRpb259O1xuICB0cmFuc2Zvcm06ICR7cHJvcHMgPT4gcHJvcHMuJHRyYW5zZm9ybX07XG4gICYuc29ydGluZyB7XG4gICAgb3BhY2l0eTogMC4zO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG4gICYuc29ydGluZy1sYXllcnMgLmxheWVyLXBhbmVsX19oZWFkZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIGZvbnQtZmFtaWx5OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRGYW1pbHl9O1xuICAgIGZvbnQtd2VpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRXZWlnaHR9O1xuICAgIGZvbnQtc2l6ZTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250U2l6ZX07XG4gICAgbGluZS1oZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGluZUhlaWdodH07XG4gICAgKixcbiAgICAqOmJlZm9yZSxcbiAgICAqOmFmdGVyIHtcbiAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgfVxuICAgIC5sYXllcl9fZHJhZy1oYW5kbGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IElOSVRJQUxfTEFZRVJTX1RPX1NIT1c6IExheWVyW10gPSBbXTtcblxuTGF5ZXJMaXN0RmFjdG9yeS5kZXBzID0gW0xheWVyUGFuZWxGYWN0b3J5XTtcblxuZnVuY3Rpb24gTGF5ZXJMaXN0RmFjdG9yeShMYXllclBhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllclBhbmVsRmFjdG9yeT4pIHtcbiAgLy8gQnkgd3JhcHBpbmcgbGF5ZXIgcGFuZWwgdXNpbmcgYSBzb3J0YWJsZSBlbGVtZW50IHdlIGRvbid0IGhhdmUgdG8gaW1wbGVtZW50IHRoZSBkcmFnIGFuZCBkcm9wIGxvZ2ljIGludG8gdGhlIHBhbmVsIGl0c2VsZjtcbiAgLy8gRGV2ZWxvcGVycyBjYW4gcHJvdmlkZSBhbnkgbGF5ZXIgcGFuZWwgaW1wbGVtZW50YXRpb24gYW5kIGl0IHdpbGwgc3RpbGwgYmUgc29ydGFibGVcbiAgY29uc3QgU29ydGFibGVJdGVtID0gKHtsYXllciwgaWR4LCBwYW5lbFByb3BzLCBsYXllckFjdGlvbnMsIGRpc2FibGVkfSkgPT4ge1xuICAgIGNvbnN0IHthdHRyaWJ1dGVzLCBsaXN0ZW5lcnMsIHNldE5vZGVSZWYsIGlzRHJhZ2dpbmcsIHRyYW5zZm9ybSwgdHJhbnNpdGlvbn0gPSB1c2VTb3J0YWJsZSh7XG4gICAgICBpZDogbGF5ZXIuaWQsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHR5cGU6IFNPUlRBQkxFX0xBWUVSX1RZUEUsXG4gICAgICAgIHBhcmVudDogU09SVEFCTEVfU0lERV9QQU5FTF9UWVBFXG4gICAgICB9LFxuICAgICAgZGlzYWJsZWRcbiAgICB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U29ydGFibGVTdHlsZWRJdGVtXG4gICAgICAgIHJlZj17c2V0Tm9kZVJlZn1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKFxuICAgICAgICAgIHtbZGF0YVRlc3RJZHMuc29ydGFibGVMYXllckl0ZW1dOiAhZGlzYWJsZWR9LFxuICAgICAgICAgIHtbZGF0YVRlc3RJZHMuc3RhdGljTGF5ZXJJdGVtXTogZGlzYWJsZWR9LFxuICAgICAgICAgIHtzb3J0aW5nOiBpc0RyYWdnaW5nfVxuICAgICAgICApfVxuICAgICAgICBkYXRhLXRlc3RpZD17ZGlzYWJsZWQgPyBkYXRhVGVzdElkcy5zdGF0aWNMYXllckl0ZW0gOiBkYXRhVGVzdElkcy5zb3J0YWJsZUxheWVySXRlbX1cbiAgICAgICAgJHRyYW5zZm9ybT17Q1NTLlRyYW5zZm9ybS50b1N0cmluZyh0cmFuc2Zvcm0pfVxuICAgICAgICAkdHJhbnNpdGlvbj17dHJhbnNpdGlvbn1cbiAgICAgICAgey4uLmF0dHJpYnV0ZXN9XG4gICAgICA+XG4gICAgICAgIDxMYXllclBhbmVsXG4gICAgICAgICAgey4uLnBhbmVsUHJvcHN9XG4gICAgICAgICAgey4uLmxheWVyQWN0aW9uc31cbiAgICAgICAgICBrZXk9e2xheWVyLmlkfVxuICAgICAgICAgIGlkeD17aWR4fVxuICAgICAgICAgIGxheWVyPXtsYXllcn1cbiAgICAgICAgICBsaXN0ZW5lcnM9e2xpc3RlbmVyc31cbiAgICAgICAgICBpc0RyYWdnYWJsZT17IWRpc2FibGVkfVxuICAgICAgICAvPlxuICAgICAgPC9Tb3J0YWJsZVN0eWxlZEl0ZW0+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBMYXllckxpc3Q6IFJlYWN0LkZDPExheWVyTGlzdFByb3BzPiA9IHByb3BzID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBsYXllcnMsXG4gICAgICBkYXRhc2V0cyxcbiAgICAgIGxheWVyT3JkZXIsXG4gICAgICB1aVN0YXRlQWN0aW9ucyxcbiAgICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0YXRlQWN0aW9ucyxcbiAgICAgIGxheWVyQ2xhc3NlcyxcbiAgICAgIGlzU29ydGFibGUgPSB0cnVlLFxuICAgICAgc3BsaXRNYXBcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3Qge3RvZ2dsZU1vZGFsOiBvcGVuTW9kYWx9ID0gdWlTdGF0ZUFjdGlvbnM7XG5cbiAgICBjb25zdCBsYXllcnNUb1Nob3cgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIHJldHVybiBsYXllck9yZGVyLnJlZHVjZSgoYWNjLCBsYXllcklkKSA9PiB7XG4gICAgICAgIGNvbnN0IGxheWVyID0gZmluZEJ5SWQobGF5ZXJJZCkobGF5ZXJzLmZpbHRlcihCb29sZWFuKSk7XG4gICAgICAgIGlmICghbGF5ZXIpIHtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhbGF5ZXIuY29uZmlnLmhpZGRlbiA/IFsuLi5hY2MsIGxheWVyXSA6IGFjYztcbiAgICAgIH0sIElOSVRJQUxfTEFZRVJTX1RPX1NIT1cpO1xuICAgIH0sIFtsYXllcnMsIGxheWVyT3JkZXJdKTtcblxuICAgIGNvbnN0IHNpZGVQYW5lbERuZEl0ZW1zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICByZXR1cm4gbGF5ZXJzVG9TaG93Lm1hcCgoe2lkfSkgPT4gaWQpO1xuICAgIH0sIFtsYXllcnNUb1Nob3ddKTtcblxuICAgIGNvbnN0IGxheWVyVHlwZU9wdGlvbnMgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAgT2JqZWN0LmtleXMobGF5ZXJDbGFzc2VzKS5tYXAoa2V5ID0+IHtcbiAgICAgICAgICBjb25zdCBsYXllciA9IG5ldyBsYXllckNsYXNzZXNba2V5XSh7ZGF0YUlkOiAnJ30pO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBpZDoga2V5LFxuICAgICAgICAgICAgbGFiZWw6IGxheWVyLm5hbWUsXG4gICAgICAgICAgICBpY29uOiBsYXllci5sYXllckljb24sXG4gICAgICAgICAgICByZXF1aXJlRGF0YTogbGF5ZXIucmVxdWlyZURhdGFcbiAgICAgICAgICB9O1xuICAgICAgICB9KSxcbiAgICAgIFtsYXllckNsYXNzZXNdXG4gICAgKTtcblxuICAgIGNvbnN0IGxheWVyQWN0aW9ucyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoe1xuICAgICAgICBsYXllckNvbG9yVUlDaGFuZ2U6IHZpc1N0YXRlQWN0aW9ucy5sYXllckNvbG9yVUlDaGFuZ2UsXG4gICAgICAgIGxheWVyQ29uZmlnQ2hhbmdlOiB2aXNTdGF0ZUFjdGlvbnMubGF5ZXJDb25maWdDaGFuZ2UsXG4gICAgICAgIGxheWVyVmlzdWFsQ2hhbm5lbENvbmZpZ0NoYW5nZTogdmlzU3RhdGVBY3Rpb25zLmxheWVyVmlzdWFsQ2hhbm5lbENvbmZpZ0NoYW5nZSxcbiAgICAgICAgbGF5ZXJUb2dnbGVWaXNpYmlsaXR5OiB2aXNTdGF0ZUFjdGlvbnMubGF5ZXJUb2dnbGVWaXNpYmlsaXR5LFxuICAgICAgICBsYXllclR5cGVDaGFuZ2U6IHZpc1N0YXRlQWN0aW9ucy5sYXllclR5cGVDaGFuZ2UsXG4gICAgICAgIGxheWVyVmlzQ29uZmlnQ2hhbmdlOiB2aXNTdGF0ZUFjdGlvbnMubGF5ZXJWaXNDb25maWdDaGFuZ2UsXG4gICAgICAgIGxheWVyVGV4dExhYmVsQ2hhbmdlOiB2aXNTdGF0ZUFjdGlvbnMubGF5ZXJUZXh0TGFiZWxDaGFuZ2UsXG4gICAgICAgIHJlbW92ZUxheWVyOiB2aXNTdGF0ZUFjdGlvbnMucmVtb3ZlTGF5ZXIsXG4gICAgICAgIHpvb21Ub0xheWVyOiBtYXBTdGF0ZUFjdGlvbnMuZml0Qm91bmRzLFxuICAgICAgICBkdXBsaWNhdGVMYXllcjogdmlzU3RhdGVBY3Rpb25zLmR1cGxpY2F0ZUxheWVyLFxuICAgICAgICBsYXllclNldElzVmFsaWQ6IHZpc1N0YXRlQWN0aW9ucy5sYXllclNldElzVmFsaWRcbiAgICAgIH0pLFxuICAgICAgW3Zpc1N0YXRlQWN0aW9ucywgbWFwU3RhdGVBY3Rpb25zXVxuICAgICk7XG5cbiAgICBjb25zdCBwYW5lbFByb3BzID0gdXNlTWVtbyhcbiAgICAgICgpID0+ICh7XG4gICAgICAgIGRhdGFzZXRzLFxuICAgICAgICBvcGVuTW9kYWwsXG4gICAgICAgIGxheWVyVHlwZU9wdGlvbnMsXG4gICAgICAgIHNwbGl0TWFwXG4gICAgICB9KSxcbiAgICAgIFtkYXRhc2V0cywgb3Blbk1vZGFsLCBsYXllclR5cGVPcHRpb25zLCBzcGxpdE1hcF1cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxDb250YWluZXI+XG4gICAgICAgIDxTb3J0YWJsZUNvbnRleHRcbiAgICAgICAgICBpZD17U09SVEFCTEVfU0lERV9QQU5FTF9UWVBFfVxuICAgICAgICAgIGl0ZW1zPXtzaWRlUGFuZWxEbmRJdGVtc31cbiAgICAgICAgICBzdHJhdGVneT17dmVydGljYWxMaXN0U29ydGluZ1N0cmF0ZWd5fVxuICAgICAgICAgIGRpc2FibGVkPXshaXNTb3J0YWJsZX1cbiAgICAgICAgPlxuICAgICAgICAgIHsvKiB3YXJuaW5nOiBjb250YWluZXJJZCBzaG91bGQgYmUgc2ltaWxhciB0byB0aGUgZmlyc3Qga2V5IGluIGRuZEl0ZW1zIGRlZmluZWQgaW4ga2VwbGVyLWdsLmpzKi99XG4gICAgICAgICAge2xheWVyc1RvU2hvdy5tYXAobGF5ZXIgPT4gKFxuICAgICAgICAgICAgPFNvcnRhYmxlSXRlbVxuICAgICAgICAgICAgICBrZXk9e2xheWVyLmlkfVxuICAgICAgICAgICAgICBsYXllcj17bGF5ZXJ9XG4gICAgICAgICAgICAgIGlkeD17bGF5ZXJzLmZpbmRJbmRleChsID0+IGw/LmlkID09PSBsYXllci5pZCl9XG4gICAgICAgICAgICAgIHBhbmVsUHJvcHM9e3BhbmVsUHJvcHN9XG4gICAgICAgICAgICAgIGxheWVyQWN0aW9ucz17bGF5ZXJBY3Rpb25zfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17IWlzU29ydGFibGV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L1NvcnRhYmxlQ29udGV4dD5cbiAgICAgIDwvQ29udGFpbmVyPlxuICAgICk7XG4gIH07XG4gIHJldHVybiBMYXllckxpc3Q7XG59XG5leHBvcnQgZGVmYXVsdCBMYXllckxpc3RGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsWUFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBTUEsSUFBQUksU0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssVUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sV0FBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FB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
|
|
329
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfY2xhc3NuYW1lczMiLCJfY29yZSIsIl9zb3J0YWJsZSIsIl91dGlsaXRpZXMiLCJfbGF5ZXJQYW5lbCIsIl9sYXllckdyb3VwSGVhZGVyIiwiX3JlZHVjZXJzIiwiX2NvbnN0YW50cyIsIl9kbmRMYXllckl0ZW1zIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX3RlbXBsYXRlT2JqZWN0NSIsIl90ZW1wbGF0ZU9iamVjdDYiLCJfdGVtcGxhdGVPYmplY3Q3IiwiX3RlbXBsYXRlT2JqZWN0OCIsIl90ZW1wbGF0ZU9iamVjdDkiLCJfdGVtcGxhdGVPYmplY3QxMCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIkNvbnRhaW5lciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiYW5pbWF0ZUxheW91dENoYW5nZXMiLCJhcmdzIiwiaXNTb3J0aW5nIiwid2FzRHJhZ2dpbmciLCJkZWZhdWx0QW5pbWF0ZUxheW91dENoYW5nZXMiLCJFbmRQbGFjZWhvbGRlciIsIlNvcnRhYmxlU3R5bGVkSXRlbSIsInByb3BzIiwiJHRyYW5zaXRpb24iLCIkdHJhbnNmb3JtIiwidGhlbWUiLCJwYW5lbEJhY2tncm91bmRIb3ZlciIsImZvbnRGYW1pbHkiLCJmb250V2VpZ2h0IiwiZm9udFNpemUiLCJsaW5lSGVpZ2h0IiwidGV4dENvbG9ySGwiLCJDb2xsYXBzaWJsZUdyb3VwQ29udGVudCIsIiRpc092ZXIiLCJDb2xsYXBzZWREcm9wWm9uZSIsImFjdGl2ZUNvbG9yIiwiRW1wdHlMYXllckdyb3VwIiwibGFiZWxDb2xvciIsInN1YnRleHRDb2xvciIsIlRSRUVfVElMRV9XSURUSCIsIlRSRUVfVElMRV9CT1JERVJfV0lEVEgiLCJTdHlsZWRDb2x1bW4iLCIkaXNMYXN0IiwiVHJlZVRpbGUiLCJsYXllclBhbmVsSGVhZGVySGVpZ2h0IiwiTmVzdGVkTGF5ZXJDb250YWluZXIiLCJOZXN0ZWRMYXllckNvbnRlbnQiLCJMYXllckxpc3RGYWN0b3J5IiwiZGVwcyIsIkxheWVyUGFuZWxGYWN0b3J5IiwiTGF5ZXJHcm91cEhlYWRlckZhY3RvcnkiLCJMYXllclBhbmVsIiwiTGF5ZXJHcm91cEhlYWRlciIsIk5lc3RlZExheWVyIiwiX3JlZiIsImNoaWxkcmVuIiwiaXNMYXN0IiwiY3JlYXRlRWxlbWVudCIsIlNvcnRhYmxlTGF5ZXJJdGVtIiwiX3JlZjIiLCJsYXllciIsImlkeCIsInBhbmVsUHJvcHMiLCJsYXllckFjdGlvbnMiLCJkaXNhYmxlZCIsInBhcmVudCIsIl91c2VTb3J0YWJsZSIsInVzZVNvcnRhYmxlIiwiaWQiLCJkYXRhIiwidHlwZSIsIlNPUlRBQkxFX0xBWUVSX1RZUEUiLCJhdHRyaWJ1dGVzIiwibGlzdGVuZXJzIiwic2V0Tm9kZVJlZiIsImlzRHJhZ2dpbmciLCJ0cmFuc2Zvcm0iLCJ0cmFuc2l0aW9uIiwiX2V4dGVuZHMyIiwicmVmIiwiY2xhc3NOYW1lIiwiY2xhc3NuYW1lcyIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkYXRhVGVzdElkcyIsInNvcnRhYmxlTGF5ZXJJdGVtIiwic3RhdGljTGF5ZXJJdGVtIiwic29ydGluZyIsIkNTUyIsIlRyYW5zZm9ybSIsInRvU3RyaW5nIiwia2V5IiwiaXNEcmFnZ2FibGUiLCJTb3J0YWJsZUdyb3VwSXRlbSIsIl9yZWYzIiwibGF5ZXJHcm91cCIsImxheWVycyIsIl91c2VTb3J0YWJsZTIiLCJTT1JUQUJMRV9MQVlFUl9HUk9VUF9UWVBFIiwibGF5ZXJFbnRyaWVzVG9TaG93IiwiYnVpbGRMYXllck9yZGVySGllcmFyY2h5IiwibGF5ZXJPcmRlciIsImRuZEl0ZW1zIiwibWFwIiwiZW50cnkiLCJfZW50cnkkMSRpZCIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImlzU2VjdGlvbk9wZW4iLCJzZXRJc1NlY3Rpb25PcGVuIiwib25Ub2dnbGUiLCJ1c2VDYWxsYmFjayIsInByZXYiLCJzdHlsZSIsInVzZU1lbW8iLCJvcGFjaXR5IiwiX3VzZURyb3BwYWJsZSIsInVzZURyb3BwYWJsZSIsImNvbmNhdCIsIlNPUlRBQkxFX0xBWUVSX0dST1VQX0RST1BQQUJMRV9UWVBFIiwiaXNPdmVyIiwiZHJvcHBhYmxlU2V0Tm9kZVJlZiIsImlzT3BlbiIsIm9uVG9nZ2xlTGF5ZXJHcm91cENvbnRlbnQiLCJpc0xheWVyR3JvdXBDb250ZW50T3BlbiIsImxlbmd0aCIsIlNvcnRhYmxlQ29udGV4dCIsIml0ZW1zIiwic3RyYXRlZ3kiLCJ2ZXJ0aWNhbExpc3RTb3J0aW5nU3RyYXRlZ3kiLCJfcmVmNCIsImluZGV4IiwiX3JlZjUiLCJuZXN0ZWRFbnRyeSIsImZpbmRJbmRleCIsImwiLCJTb3J0YWJsZUVuZFBsYWNlaG9sZGVyIiwiX3VzZVNvcnRhYmxlMyIsIlNPUlRBQkxFX0xBWUVSX0VORF9QTEFDRUhPTERFUiIsIlNPUlRBQkxFX0xBWUVSX0VORF9UWVBFIiwiTGF5ZXJMaXN0IiwiZGF0YXNldHMiLCJ1aVN0YXRlQWN0aW9ucyIsInZpc1N0YXRlQWN0aW9ucyIsIm1hcFN0YXRlQWN0aW9ucyIsImxheWVyQ2xhc3NlcyIsIl9wcm9wcyRpc1NvcnRhYmxlIiwiaXNTb3J0YWJsZSIsInNwbGl0TWFwIiwib3Blbk1vZGFsIiwidG9nZ2xlTW9kYWwiLCJzaWRlUGFuZWxEbmRJdGVtcyIsIl9lbnRyeSQxJGlkMiIsInB1c2giLCJsYXllclR5cGVPcHRpb25zIiwia2V5cyIsImRhdGFJZCIsImxhYmVsIiwibmFtZSIsImljb24iLCJsYXllckljb24iLCJyZXF1aXJlRGF0YSIsImxheWVyQ29sb3JVSUNoYW5nZSIsImxheWVyQ29uZmlnQ2hhbmdlIiwibGF5ZXJWaXN1YWxDaGFubmVsQ29uZmlnQ2hhbmdlIiwibGF5ZXJUb2dnbGVWaXNpYmlsaXR5IiwibGF5ZXJUeXBlQ2hhbmdlIiwibGF5ZXJWaXNDb25maWdDaGFuZ2UiLCJsYXllclRleHRMYWJlbENoYW5nZSIsInJlbW92ZUxheWVyIiwiem9vbVRvTGF5ZXIiLCJmaXRCb3VuZHMiLCJkdXBsaWNhdGVMYXllciIsImxheWVyU2V0SXNWYWxpZCIsIlNPUlRBQkxFX1NJREVfUEFORUxfVFlQRSIsIl9yZWY2IiwiX3JlZjciLCJpdGVtIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItbGlzdC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlTWVtbywgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuXG5pbXBvcnQge0xheWVyLCBMYXllckNsYXNzZXNUeXBlfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge0RhdGFzZXRzfSBmcm9tICdAa2VwbGVyLmdsL3RhYmxlJztcbmltcG9ydCB7VUlTdGF0ZUFjdGlvbnMsIFZpc1N0YXRlQWN0aW9ucywgTWFwU3RhdGVBY3Rpb25zfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtMYXllck9yZGVyR3JvdXAsIExheWVyT3JkZXIsIExheWVyT3JkZXJIaWVyYXJjaHl9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQge3VzZURyb3BwYWJsZX0gZnJvbSAnQGRuZC1raXQvY29yZSc7XG5pbXBvcnQge1xuICB1c2VTb3J0YWJsZSxcbiAgU29ydGFibGVDb250ZXh0LFxuICB2ZXJ0aWNhbExpc3RTb3J0aW5nU3RyYXRlZ3ksXG4gIGRlZmF1bHRBbmltYXRlTGF5b3V0Q2hhbmdlc1xufSBmcm9tICdAZG5kLWtpdC9zb3J0YWJsZSc7XG5pbXBvcnQge0NTU30gZnJvbSAnQGRuZC1raXQvdXRpbGl0aWVzJztcbmltcG9ydCBMYXllclBhbmVsRmFjdG9yeSBmcm9tICcuL2xheWVyLXBhbmVsJztcbmltcG9ydCBMYXllckdyb3VwSGVhZGVyRmFjdG9yeSBmcm9tICcuL2xheWVyLWdyb3VwLWhlYWRlcic7XG5pbXBvcnQge2J1aWxkTGF5ZXJPcmRlckhpZXJhcmNoeX0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5pbXBvcnQge2RhdGFUZXN0SWRzfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge1NwbGl0TWFwfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7XG4gIFNPUlRBQkxFX0xBWUVSX1RZUEUsXG4gIFNPUlRBQkxFX1NJREVfUEFORUxfVFlQRSxcbiAgU09SVEFCTEVfTEFZRVJfR1JPVVBfVFlQRSxcbiAgU09SVEFCTEVfTEFZRVJfR1JPVVBfRFJPUFBBQkxFX1RZUEUsXG4gIFNPUlRBQkxFX0xBWUVSX0VORF9QTEFDRUhPTERFUixcbiAgU09SVEFCTEVfTEFZRVJfRU5EX1RZUEVcbn0gZnJvbSAnLi4vLi4vY29tbW9uL2RuZC1sYXllci1pdGVtcyc7XG5cbmV4cG9ydCB0eXBlIExheWVyTGlzdFByb3BzID0ge1xuICBkYXRhc2V0czogRGF0YXNldHM7XG4gIGxheWVyczogTGF5ZXJbXTtcbiAgbGF5ZXJPcmRlcjogTGF5ZXJPcmRlcjtcbiAgbGF5ZXJDbGFzc2VzOiBMYXllckNsYXNzZXNUeXBlO1xuICBpc1NvcnRhYmxlPzogYm9vbGVhbjtcbiAgc3BsaXRNYXA/OiBTcGxpdE1hcDtcbiAgdWlTdGF0ZUFjdGlvbnM6IHR5cGVvZiBVSVN0YXRlQWN0aW9ucztcbiAgdmlzU3RhdGVBY3Rpb25zOiB0eXBlb2YgVmlzU3RhdGVBY3Rpb25zO1xuICBtYXBTdGF0ZUFjdGlvbnM6IHR5cGVvZiBNYXBTdGF0ZUFjdGlvbnM7XG59O1xuXG5leHBvcnQgdHlwZSBMYXllckxpc3RGYWN0b3J5RGVwcyA9IFtcbiAgdHlwZW9mIExheWVyUGFuZWxGYWN0b3J5LFxuICB0eXBlb2YgTGF5ZXJHcm91cEhlYWRlckZhY3Rvcnlcbl07XG5cbmNvbnN0IENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGdhcDogOHB4O1xuYDtcblxuY29uc3QgYW5pbWF0ZUxheW91dENoYW5nZXMgPSBhcmdzID0+IHtcbiAgY29uc3Qge2lzU29ydGluZywgd2FzRHJhZ2dpbmd9ID0gYXJncztcbiAgaWYgKGlzU29ydGluZyB8fCB3YXNEcmFnZ2luZykge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICByZXR1cm4gZGVmYXVsdEFuaW1hdGVMYXlvdXRDaGFuZ2VzKGFyZ3MpO1xufTtcblxuY29uc3QgRW5kUGxhY2Vob2xkZXIgPSBzdHlsZWQuZGl2YFxuICBoZWlnaHQ6IDRweDtcbmA7XG5cbmludGVyZmFjZSBTb3J0YWJsZVN0eWxlZEl0ZW1Qcm9wcyB7XG4gICR0cmFuc2l0aW9uPzogc3RyaW5nO1xuICAkdHJhbnNmb3JtPzogc3RyaW5nO1xufVxuXG5jb25zdCBTb3J0YWJsZVN0eWxlZEl0ZW0gPSBzdHlsZWQuZGl2PFNvcnRhYmxlU3R5bGVkSXRlbVByb3BzPmBcbiAgdHJhbnNpdGlvbjogJHtwcm9wcyA9PiBwcm9wcy4kdHJhbnNpdGlvbn07XG4gIHRyYW5zZm9ybTogJHtwcm9wcyA9PiBwcm9wcy4kdHJhbnNmb3JtfTtcbiAgJi5zb3J0aW5nIHtcbiAgICBvcGFjaXR5OiAwLjM7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIH1cbiAgJi5zb3J0aW5nLWxheWVycyAubGF5ZXItcGFuZWxfX2hlYWRlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmRIb3Zlcn07XG4gICAgZm9udC1mYW1pbHk6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZm9udEZhbWlseX07XG4gICAgZm9udC13ZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZm9udFdlaWdodH07XG4gICAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRTaXplfTtcbiAgICBsaW5lLWhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5saW5lSGVpZ2h0fTtcbiAgICAqLFxuICAgICo6YmVmb3JlLFxuICAgICo6YWZ0ZXIge1xuICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICB9XG4gICAgLmxheWVyX19kcmFnLWhhbmRsZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgQ29sbGFwc2libGVHcm91cENvbnRlbnQgPSBzdHlsZWQuZGl2PHskaXNPdmVyPzogYm9vbGVhbn0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDA7XG4gIHBhZGRpbmc6IDRweCAwO1xuICBtaW4taGVpZ2h0OiAzMnB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IChwcm9wcy4kaXNPdmVyID8gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kSG92ZXIgOiAndHJhbnNwYXJlbnQnKX07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZTtcbmA7XG5cbmNvbnN0IENvbGxhcHNlZERyb3Bab25lID0gc3R5bGVkLmRpdjx7JGlzT3Zlcj86IGJvb2xlYW59PmBcbiAgbWluLWhlaWdodDogNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IChwcm9wcy4kaXNPdmVyID8gcHJvcHMudGhlbWUuYWN0aXZlQ29sb3IgOiAndHJhbnNwYXJlbnQnKX07XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4xNXMgZWFzZSwgbWluLWhlaWdodCAwLjE1cyBlYXNlO1xuICAke3Byb3BzID0+IHByb3BzLiRpc092ZXIgJiYgJ21pbi1oZWlnaHQ6IDI0cHg7J31cbmA7XG5cbmNvbnN0IEVtcHR5TGF5ZXJHcm91cCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDI4cHg7XG4gIGJvcmRlcjogMXB4IGRhc2hlZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxhYmVsQ29sb3J9O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIG1hcmdpbi10b3A6IDRweDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yfTtcbmA7XG5cbmNvbnN0IFRSRUVfVElMRV9XSURUSCA9IDEwO1xuY29uc3QgVFJFRV9USUxFX0JPUkRFUl9XSURUSCA9IDE7XG5cbmNvbnN0IFN0eWxlZENvbHVtbiA9IHN0eWxlZC5kaXY8eyRpc0xhc3Q/OiBib29sZWFufT5gXG4gIGJvcmRlci1sZWZ0OiAke3Byb3BzID0+IChwcm9wcy4kaXNMYXN0ID8gMCA6IDEpfXB4IGRhc2hlZCAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxhYmVsQ29sb3J9O1xuYDtcblxuY29uc3QgVHJlZVRpbGUgPSBzdHlsZWQuZGl2PHskaXNMYXN0PzogYm9vbGVhbn0+YFxuICB3aWR0aDogJHtUUkVFX1RJTEVfV0lEVEh9cHg7XG4gIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5sYWJlbENvbG9yfTtcbiAgaGVpZ2h0OiAke3Byb3BzID0+IChwcm9wcy50aGVtZS5sYXllclBhbmVsSGVhZGVySGVpZ2h0IHx8IDMyKSAvIDJ9cHg7XG4gIG1hcmdpbi10b3A6IDJweDtcbiAgYm9yZGVyLWxlZnQ6ICR7cHJvcHMgPT4gKHByb3BzLiRpc0xhc3QgPyAxIDogMCl9cHggZGFzaGVkICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGFiZWxDb2xvcn07XG5gO1xuXG5jb25zdCBOZXN0ZWRMYXllckNvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG5gO1xuXG5jb25zdCBOZXN0ZWRMYXllckNvbnRlbnQgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogY2FsYygxMDAlIC0gJHtUUkVFX1RJTEVfV0lEVEggKyBUUkVFX1RJTEVfQk9SREVSX1dJRFRIfXB4KTtcbiAgcGFkZGluZy10b3A6IDhweDtcbmA7XG5cbkxheWVyTGlzdEZhY3RvcnkuZGVwcyA9IFtMYXllclBhbmVsRmFjdG9yeSwgTGF5ZXJHcm91cEhlYWRlckZhY3RvcnldO1xuXG5mdW5jdGlvbiBMYXllckxpc3RGYWN0b3J5KFxuICBMYXllclBhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllclBhbmVsRmFjdG9yeT4sXG4gIExheWVyR3JvdXBIZWFkZXI6IFJldHVyblR5cGU8dHlwZW9mIExheWVyR3JvdXBIZWFkZXJGYWN0b3J5PlxuKSB7XG4gIGNvbnN0IE5lc3RlZExheWVyOiBSZWFjdC5GQzx7Y2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTsgaXNMYXN0PzogYm9vbGVhbn0+ID0gKHtcbiAgICBjaGlsZHJlbixcbiAgICBpc0xhc3RcbiAgfSkgPT4gKFxuICAgIDxOZXN0ZWRMYXllckNvbnRhaW5lcj5cbiAgICAgIDxTdHlsZWRDb2x1bW4gJGlzTGFzdD17aXNMYXN0fT5cbiAgICAgICAgPFRyZWVUaWxlICRpc0xhc3Q9e2lzTGFzdH0gLz5cbiAgICAgIDwvU3R5bGVkQ29sdW1uPlxuICAgICAgPE5lc3RlZExheWVyQ29udGVudD57Y2hpbGRyZW59PC9OZXN0ZWRMYXllckNvbnRlbnQ+XG4gICAgPC9OZXN0ZWRMYXllckNvbnRhaW5lcj5cbiAgKTtcblxuICBjb25zdCBTb3J0YWJsZUxheWVySXRlbSA9ICh7bGF5ZXIsIGlkeCwgcGFuZWxQcm9wcywgbGF5ZXJBY3Rpb25zLCBkaXNhYmxlZCwgcGFyZW50fToge1xuICAgIGxheWVyOiBMYXllcjtcbiAgICBpZHg6IG51bWJlcjtcbiAgICBwYW5lbFByb3BzOiBhbnk7XG4gICAgbGF5ZXJBY3Rpb25zOiBhbnk7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIHBhcmVudD86IExheWVyT3JkZXJHcm91cDtcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHthdHRyaWJ1dGVzLCBsaXN0ZW5lcnMsIHNldE5vZGVSZWYsIGlzRHJhZ2dpbmcsIHRyYW5zZm9ybSwgdHJhbnNpdGlvbn0gPSB1c2VTb3J0YWJsZSh7XG4gICAgICBpZDogbGF5ZXIuaWQsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIHR5cGU6IFNPUlRBQkxFX0xBWUVSX1RZUEUsXG4gICAgICAgIHBhcmVudFxuICAgICAgfSxcbiAgICAgIGRpc2FibGVkLFxuICAgICAgYW5pbWF0ZUxheW91dENoYW5nZXNcbiAgICB9KTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U29ydGFibGVTdHlsZWRJdGVtXG4gICAgICAgIHJlZj17c2V0Tm9kZVJlZn1cbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKFxuICAgICAgICAgIHtbZGF0YVRlc3RJZHMuc29ydGFibGVMYXllckl0ZW1dOiAhZGlzYWJsZWR9LFxuICAgICAgICAgIHtbZGF0YVRlc3RJZHMuc3RhdGljTGF5ZXJJdGVtXTogZGlzYWJsZWR9LFxuICAgICAgICAgIHtzb3J0aW5nOiBpc0RyYWdnaW5nfVxuICAgICAgICApfVxuICAgICAgICBkYXRhLXRlc3RpZD17ZGlzYWJsZWQgPyBkYXRhVGVzdElkcy5zdGF0aWNMYXllckl0ZW0gOiBkYXRhVGVzdElkcy5zb3J0YWJsZUxheWVySXRlbX1cbiAgICAgICAgJHRyYW5zZm9ybT17Q1NTLlRyYW5zZm9ybS50b1N0cmluZyh0cmFuc2Zvcm0pfVxuICAgICAgICAkdHJhbnNpdGlvbj17dHJhbnNpdGlvbn1cbiAgICAgICAgey4uLmF0dHJpYnV0ZXN9XG4gICAgICA+XG4gICAgICAgIDxMYXllclBhbmVsXG4gICAgICAgICAgey4uLnBhbmVsUHJvcHN9XG4gICAgICAgICAgey4uLmxheWVyQWN0aW9uc31cbiAgICAgICAgICBrZXk9e2xheWVyLmlkfVxuICAgICAgICAgIGlkeD17aWR4fVxuICAgICAgICAgIGxheWVyPXtsYXllcn1cbiAgICAgICAgICBsaXN0ZW5lcnM9e2xpc3RlbmVyc31cbiAgICAgICAgICBpc0RyYWdnYWJsZT17IWRpc2FibGVkfVxuICAgICAgICAvPlxuICAgICAgPC9Tb3J0YWJsZVN0eWxlZEl0ZW0+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBTb3J0YWJsZUdyb3VwSXRlbTogUmVhY3QuRkM8e1xuICAgIGxheWVyR3JvdXA6IExheWVyT3JkZXJHcm91cDtcbiAgICBsYXllcnM6IExheWVyW107XG4gICAgcGFuZWxQcm9wczogYW55O1xuICAgIGxheWVyQWN0aW9uczogYW55O1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgfT4gPSAoe2xheWVyR3JvdXAsIGxheWVycywgcGFuZWxQcm9wcywgbGF5ZXJBY3Rpb25zLCBkaXNhYmxlZH0pID0+IHtcbiAgICBjb25zdCB7YXR0cmlidXRlcywgaXNEcmFnZ2luZywgbGlzdGVuZXJzLCBzZXROb2RlUmVmLCB0cmFuc2Zvcm0sIHRyYW5zaXRpb259ID0gdXNlU29ydGFibGUoe1xuICAgICAgaWQ6IGxheWVyR3JvdXAuaWQsXG4gICAgICBkYXRhOiB7dHlwZTogU09SVEFCTEVfTEFZRVJfR1JPVVBfVFlQRX0sXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGFuaW1hdGVMYXlvdXRDaGFuZ2VzXG4gICAgfSk7XG5cbiAgICBjb25zdCBsYXllckVudHJpZXNUb1Nob3cgPSBidWlsZExheWVyT3JkZXJIaWVyYXJjaHkobGF5ZXJHcm91cC5sYXllck9yZGVyLCBsYXllcnMpO1xuICAgIGNvbnN0IGRuZEl0ZW1zID0gbGF5ZXJFbnRyaWVzVG9TaG93Lm1hcChlbnRyeSA9PiBlbnRyeVsxXS5pZCA/PyBlbnRyeVsxXSk7XG5cbiAgICBjb25zdCBbaXNTZWN0aW9uT3Blbiwgc2V0SXNTZWN0aW9uT3Blbl0gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCBvblRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHNldElzU2VjdGlvbk9wZW4ocHJldiA9PiAhcHJldiksIFtdKTtcblxuICAgIGNvbnN0IHN0eWxlID0gdXNlTWVtbyhcbiAgICAgICgpID0+ICh7XG4gICAgICAgIHRyYW5zZm9ybTogQ1NTLlRyYW5zZm9ybS50b1N0cmluZyh0cmFuc2Zvcm0pLFxuICAgICAgICB0cmFuc2l0aW9uLFxuICAgICAgICBvcGFjaXR5OiBpc0RyYWdnaW5nID8gMC41IDogMVxuICAgICAgfSksXG4gICAgICBbaXNEcmFnZ2luZywgdHJhbnNmb3JtLCB0cmFuc2l0aW9uXVxuICAgICk7XG5cbiAgICBjb25zdCB7aXNPdmVyLCBzZXROb2RlUmVmOiBkcm9wcGFibGVTZXROb2RlUmVmfSA9IHVzZURyb3BwYWJsZSh7XG4gICAgICBpZDogYGRyb3BwYWJsZS1sYXllci1ncm91cC1jb250ZW50LSR7bGF5ZXJHcm91cC5pZH1gLFxuICAgICAgZGF0YToge1xuICAgICAgICB0eXBlOiBTT1JUQUJMRV9MQVlFUl9HUk9VUF9EUk9QUEFCTEVfVFlQRSxcbiAgICAgICAgcGFyZW50OiBsYXllckdyb3VwXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBpc09wZW4gPSB1c2VNZW1vKCgpID0+IGlzU2VjdGlvbk9wZW4gJiYgIWlzRHJhZ2dpbmcsIFtpc1NlY3Rpb25PcGVuLCBpc0RyYWdnaW5nXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBzdHlsZT17c3R5bGV9PlxuICAgICAgICA8ZGl2IHJlZj17c2V0Tm9kZVJlZn0gey4uLmF0dHJpYnV0ZXN9PlxuICAgICAgICAgIDxMYXllckdyb3VwSGVhZGVyXG4gICAgICAgICAgICBsYXllckdyb3VwPXtsYXllckdyb3VwfVxuICAgICAgICAgICAgb25Ub2dnbGVMYXllckdyb3VwQ29udGVudD17b25Ub2dnbGV9XG4gICAgICAgICAgICBpc0xheWVyR3JvdXBDb250ZW50T3Blbj17aXNTZWN0aW9uT3Blbn1cbiAgICAgICAgICAgIGxpc3RlbmVycz17bGlzdGVuZXJzfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7aXNPcGVuID8gKFxuICAgICAgICAgIDxDb2xsYXBzaWJsZUdyb3VwQ29udGVudCByZWY9e2Ryb3BwYWJsZVNldE5vZGVSZWZ9ICRpc092ZXI9e2lzT3Zlcn0+XG4gICAgICAgICAgICB7bGF5ZXJFbnRyaWVzVG9TaG93Lmxlbmd0aCA/IChcbiAgICAgICAgICAgICAgPFNvcnRhYmxlQ29udGV4dFxuICAgICAgICAgICAgICAgIGlkPXtgc29ydGFibGUtZ3JvdXAtJHtsYXllckdyb3VwLmlkfWB9XG4gICAgICAgICAgICAgICAgaXRlbXM9e2RuZEl0ZW1zfVxuICAgICAgICAgICAgICAgIHN0cmF0ZWd5PXt2ZXJ0aWNhbExpc3RTb3J0aW5nU3RyYXRlZ3l9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7bGF5ZXJFbnRyaWVzVG9TaG93Lm1hcCgoW3R5cGUsIG5lc3RlZEVudHJ5XSwgaW5kZXgpID0+XG4gICAgICAgICAgICAgICAgICB0eXBlID09PSAnbGF5ZXInID8gKFxuICAgICAgICAgICAgICAgICAgICA8TmVzdGVkTGF5ZXJcbiAgICAgICAgICAgICAgICAgICAgICBrZXk9e25lc3RlZEVudHJ5LmlkfVxuICAgICAgICAgICAgICAgICAgICAgIGlzTGFzdD17aW5kZXggPT09IGxheWVyRW50cmllc1RvU2hvdy5sZW5ndGggLSAxfVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPFNvcnRhYmxlTGF5ZXJJdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICBsYXllcj17bmVzdGVkRW50cnkgYXMgTGF5ZXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZHg9e2xheWVycy5maW5kSW5kZXgobCA9PiBsPy5pZCA9PT0gbmVzdGVkRW50cnkuaWQpfVxuICAgICAgICAgICAgICAgICAgICAgICAgcGFuZWxQcm9wcz17cGFuZWxQcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgIGxheWVyQWN0aW9ucz17bGF5ZXJBY3Rpb25zfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50PXtsYXllckdyb3VwfVxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvTmVzdGVkTGF5ZXI+XG4gICAgICAgICAgICAgICAgICApIDogbnVsbFxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU29ydGFibGVDb250ZXh0PlxuICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgPEVtcHR5TGF5ZXJHcm91cD5EcmFnIGxheWVyIGhlcmU8L0VtcHR5TGF5ZXJHcm91cD5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9Db2xsYXBzaWJsZUdyb3VwQ29udGVudD5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8Q29sbGFwc2VkRHJvcFpvbmUgcmVmPXtkcm9wcGFibGVTZXROb2RlUmVmfSAkaXNPdmVyPXtpc092ZXJ9IC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IFNvcnRhYmxlRW5kUGxhY2Vob2xkZXIgPSAoKSA9PiB7XG4gICAgY29uc3Qge3NldE5vZGVSZWZ9ID0gdXNlU29ydGFibGUoe1xuICAgICAgaWQ6IFNPUlRBQkxFX0xBWUVSX0VORF9QTEFDRUhPTERFUixcbiAgICAgIGRhdGE6IHt0eXBlOiBTT1JUQUJMRV9MQVlFUl9FTkRfVFlQRX0sXG4gICAgICBhbmltYXRlTGF5b3V0Q2hhbmdlc1xuICAgIH0pO1xuICAgIHJldHVybiA8RW5kUGxhY2Vob2xkZXIgcmVmPXtzZXROb2RlUmVmfSAvPjtcbiAgfTtcblxuICBjb25zdCBMYXllckxpc3Q6IFJlYWN0LkZDPExheWVyTGlzdFByb3BzPiA9IHByb3BzID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBsYXllcnMsXG4gICAgICBkYXRhc2V0cyxcbiAgICAgIGxheWVyT3JkZXIsXG4gICAgICB1aVN0YXRlQWN0aW9ucyxcbiAgICAgIHZpc1N0YXRlQWN0aW9ucyxcbiAgICAgIG1hcFN0YXRlQWN0aW9ucyxcbiAgICAgIGxheWVyQ2xhc3NlcyxcbiAgICAgIGlzU29ydGFibGUgPSB0cnVlLFxuICAgICAgc3BsaXRNYXBcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3Qge3RvZ2dsZU1vZGFsOiBvcGVuTW9kYWx9ID0gdWlTdGF0ZUFjdGlvbnM7XG5cbiAgICBjb25zdCBsYXllckVudHJpZXNUb1Nob3c6IExheWVyT3JkZXJIaWVyYXJjaHkgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gYnVpbGRMYXllck9yZGVySGllcmFyY2h5KGxheWVyT3JkZXIsIGxheWVycyksXG4gICAgICBbbGF5ZXJPcmRlciwgbGF5ZXJzXVxuICAgICk7XG5cbiAgICBjb25zdCBzaWRlUGFuZWxEbmRJdGVtcyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgaXRlbXMgPSBsYXllckVudHJpZXNUb1Nob3cubWFwKGVudHJ5ID0+IGVudHJ5WzFdLmlkID8/IGVudHJ5WzFdKTtcbiAgICAgIGl0ZW1zLnB1c2goU09SVEFCTEVfTEFZRVJfRU5EX1BMQUNFSE9MREVSKTtcbiAgICAgIHJldHVybiBpdGVtcztcbiAgICB9LCBbbGF5ZXJFbnRyaWVzVG9TaG93XSk7XG5cbiAgICBjb25zdCBsYXllclR5cGVPcHRpb25zID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIE9iamVjdC5rZXlzKGxheWVyQ2xhc3NlcykubWFwKGtleSA9PiB7XG4gICAgICAgICAgY29uc3QgbGF5ZXIgPSBuZXcgbGF5ZXJDbGFzc2VzW2tleV0oe2RhdGFJZDogJyd9KTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaWQ6IGtleSxcbiAgICAgICAgICAgIGxhYmVsOiBsYXllci5uYW1lLFxuICAgICAgICAgICAgaWNvbjogbGF5ZXIubGF5ZXJJY29uLFxuICAgICAgICAgICAgcmVxdWlyZURhdGE6IGxheWVyLnJlcXVpcmVEYXRhXG4gICAgICAgICAgfTtcbiAgICAgICAgfSksXG4gICAgICBbbGF5ZXJDbGFzc2VzXVxuICAgICk7XG5cbiAgICBjb25zdCBsYXllckFjdGlvbnMgPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKHtcbiAgICAgICAgbGF5ZXJDb2xvclVJQ2hhbmdlOiB2aXNTdGF0ZUFjdGlvbnMubGF5ZXJDb2xvclVJQ2hhbmdlLFxuICAgICAgICBsYXllckNvbmZpZ0NoYW5nZTogdmlzU3RhdGVBY3Rpb25zLmxheWVyQ29uZmlnQ2hhbmdlLFxuICAgICAgICBsYXllclZpc3VhbENoYW5uZWxDb25maWdDaGFuZ2U6IHZpc1N0YXRlQWN0aW9ucy5sYXllclZpc3VhbENoYW5uZWxDb25maWdDaGFuZ2UsXG4gICAgICAgIGxheWVyVG9nZ2xlVmlzaWJpbGl0eTogdmlzU3RhdGVBY3Rpb25zLmxheWVyVG9nZ2xlVmlzaWJpbGl0eSxcbiAgICAgICAgbGF5ZXJUeXBlQ2hhbmdlOiB2aXNTdGF0ZUFjdGlvbnMubGF5ZXJUeXBlQ2hhbmdlLFxuICAgICAgICBsYXllclZpc0NvbmZpZ0NoYW5nZTogdmlzU3RhdGVBY3Rpb25zLmxheWVyVmlzQ29uZmlnQ2hhbmdlLFxuICAgICAgICBsYXllclRleHRMYWJlbENoYW5nZTogdmlzU3RhdGVBY3Rpb25zLmxheWVyVGV4dExhYmVsQ2hhbmdlLFxuICAgICAgICByZW1vdmVMYXllcjogdmlzU3RhdGVBY3Rpb25zLnJlbW92ZUxheWVyLFxuICAgICAgICB6b29tVG9MYXllcjogbWFwU3RhdGVBY3Rpb25zLmZpdEJvdW5kcyxcbiAgICAgICAgZHVwbGljYXRlTGF5ZXI6IHZpc1N0YXRlQWN0aW9ucy5kdXBsaWNhdGVMYXllcixcbiAgICAgICAgbGF5ZXJTZXRJc1ZhbGlkOiB2aXNTdGF0ZUFjdGlvbnMubGF5ZXJTZXRJc1ZhbGlkXG4gICAgICB9KSxcbiAgICAgIFt2aXNTdGF0ZUFjdGlvbnMsIG1hcFN0YXRlQWN0aW9uc11cbiAgICApO1xuXG4gICAgY29uc3QgcGFuZWxQcm9wcyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoe1xuICAgICAgICBkYXRhc2V0cyxcbiAgICAgICAgb3Blbk1vZGFsLFxuICAgICAgICBsYXllclR5cGVPcHRpb25zLFxuICAgICAgICBzcGxpdE1hcFxuICAgICAgfSksXG4gICAgICBbZGF0YXNldHMsIG9wZW5Nb2RhbCwgbGF5ZXJUeXBlT3B0aW9ucywgc3BsaXRNYXBdXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8Q29udGFpbmVyPlxuICAgICAgICA8U29ydGFibGVDb250ZXh0XG4gICAgICAgICAgaWQ9e1NPUlRBQkxFX1NJREVfUEFORUxfVFlQRX1cbiAgICAgICAgICBpdGVtcz17c2lkZVBhbmVsRG5kSXRlbXN9XG4gICAgICAgICAgc3RyYXRlZ3k9e3ZlcnRpY2FsTGlzdFNvcnRpbmdTdHJhdGVneX1cbiAgICAgICAgICBkaXNhYmxlZD17IWlzU29ydGFibGV9XG4gICAgICAgID5cbiAgICAgICAgICB7bGF5ZXJFbnRyaWVzVG9TaG93Lm1hcCgoW3R5cGUsIGl0ZW1dKSA9PlxuICAgICAgICAgICAgdHlwZSA9PT0gJ2xheWVyJyA/IChcbiAgICAgICAgICAgICAgPFNvcnRhYmxlTGF5ZXJJdGVtXG4gICAgICAgICAgICAgICAga2V5PXtpdGVtLmlkfVxuICAgICAgICAgICAgICAgIGxheWVyPXtpdGVtIGFzIExheWVyfVxuICAgICAgICAgICAgICAgIGlkeD17bGF5ZXJzLmZpbmRJbmRleChsID0+IGw/LmlkID09PSBpdGVtLmlkKX1cbiAgICAgICAgICAgICAgICBwYW5lbFByb3BzPXtwYW5lbFByb3BzfVxuICAgICAgICAgICAgICAgIGxheWVyQWN0aW9ucz17bGF5ZXJBY3Rpb25zfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshaXNTb3J0YWJsZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxTb3J0YWJsZUdyb3VwSXRlbVxuICAgICAgICAgICAgICAgIGtleT17KGl0ZW0gYXMgTGF5ZXJPcmRlckdyb3VwKS5pZH1cbiAgICAgICAgICAgICAgICBsYXllckdyb3VwPXtpdGVtIGFzIExheWVyT3JkZXJHcm91cH1cbiAgICAgICAgICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgICAgICAgICBwYW5lbFByb3BzPXtwYW5lbFByb3BzfVxuICAgICAgICAgICAgICAgIGxheWVyQWN0aW9ucz17bGF5ZXJBY3Rpb25zfVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXshaXNTb3J0YWJsZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIClcbiAgICAgICAgICApfVxuICAgICAgICAgIDxTb3J0YWJsZUVuZFBsYWNlaG9sZGVyIC8+XG4gICAgICAgIDwvU29ydGFibGVDb250ZXh0PlxuICAgICAgPC9Db250YWluZXI+XG4gICAgKTtcbiAgfTtcbiAgcmV0dXJuIExheWVyTGlzdDtcbn1cbmV4cG9ydCBkZWZhdWx0IExheWVyTGlzdEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElB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
|
|
@@ -276,7 +276,7 @@ function LayerPanelHeaderFactory(LayerTitleSection, LayerPanelHeaderActionSectio
|
|
|
276
276
|
}),
|
|
277
277
|
isValid: isValid,
|
|
278
278
|
warning: warning,
|
|
279
|
-
active: isConfigActive,
|
|
279
|
+
$active: isConfigActive,
|
|
280
280
|
labelRCGColorValues: labelRCGColorValues,
|
|
281
281
|
onClick: onToggleEnableConfig
|
|
282
282
|
}, warning ? /*#__PURE__*/_react["default"].createElement(HeaderWarning, {
|
|
@@ -309,4 +309,4 @@ function LayerPanelHeaderFactory(LayerTitleSection, LayerPanelHeaderActionSectio
|
|
|
309
309
|
return LayerPanelHeader;
|
|
310
310
|
}
|
|
311
311
|
var _default = exports["default"] = LayerPanelHeaderFactory;
|
|
312
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9wYW5lbEhlYWRlckFjdGlvbiIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9pY29ucyIsIl9sb2NhbGl6YXRpb24iLCJfY29uc3RhbnRzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX3RlbXBsYXRlT2JqZWN0NSIsIl90ZW1wbGF0ZU9iamVjdDYiLCJfdGVtcGxhdGVPYmplY3Q3IiwiX3RlbXBsYXRlT2JqZWN0OCIsIl90ZW1wbGF0ZU9iamVjdDkiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJnZXRCb3JkZXJDc3MiLCJzdGF0dXMiLCJjc3MiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsIl9yZWYiLCJ0aGVtZSIsIm5vdGlmaWNhdGlvbkNvbG9ycyIsIl9yZWYyIiwiX3JlZjMiLCJTdHlsZWRMYXllclBhbmVsSGVhZGVyIiwic3R5bGVkIiwiU3R5bGVkUGFuZWxIZWFkZXIiLCJwcm9wcyIsImxheWVyUGFuZWxIZWFkZXJIZWlnaHQiLCJ3YXJuaW5nIiwiaXNWYWxpZCIsInBhbmVsQmFja2dyb3VuZEhvdmVyIiwiSGVhZGVyTGFiZWxTZWN0aW9uIiwiZGl2IiwidGV4dENvbG9yIiwiSGVhZGVyQWN0aW9uU2VjdGlvbiIsIndpdGhDb25maWciLCJzaG91bGRGb3J3YXJkUHJvcCIsImlzRWRpdGluZ0xhYmVsIiwiU3R5bGVkUGFuZWxIZWFkZXJIaWRkZW5BY3Rpb25zIiwiYXR0cnMiLCJjbGFzc05hbWUiLCJpc0NvbmZpZ0FjdGl2ZSIsInBhbmVsQmFja2dyb3VuZCIsIlN0eWxlZERyYWdIYW5kbGUiLCJ0ZXh0Q29sb3JIbCIsIkRyYWdIYW5kbGUiLCJleHBvcnRzIiwiX3JlZjQiLCJsaXN0ZW5lcnMiLCJjaGlsZHJlbiIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJub09wIiwiZXZlbnQiLCJzdG9wUHJvcGFnYXRpb24iLCJwcmV2ZW50RGVmYXVsdCIsIkxheWVyTGFiZWxFZGl0b3IiLCJfcmVmNSIsImxheWVySWQiLCJsYWJlbCIsIm9uRWRpdCIsIm9uRm9jdXMiLCJvbkJsdXIiLCJJbmxpbmVJbnB1dCIsInR5cGUiLCJkYXRhVGVzdElkcyIsImxheWVyVGl0bGVFZGl0b3IiLCJ2YWx1ZSIsIm9uQ2xpY2siLCJvbkNoYW5nZSIsImlkIiwiY29uY2F0IiwiTGF5ZXJUaXRsZVNlY3Rpb25GYWN0b3J5IiwiU3R5bGVkTGF5ZXJUaXRsZVNlY3Rpb24iLCJzdWJ0ZXh0Q29sb3IiLCJMYXllclRpdGxlU2VjdGlvbiIsIl9yZWY2IiwibGF5ZXJUeXBlIiwib25VcGRhdGVMYXllckxhYmVsIiwiRm9ybWF0dGVkTWVzc2FnZSIsInRvTG93ZXJDYXNlIiwiTGF5ZXJQYW5lbEhlYWRlckFjdGlvblNlY3Rpb25GYWN0b3J5IiwiZGVwcyIsIlBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeSIsIlBhbmVsSGVhZGVyQWN0aW9uIiwiTGF5ZXJQYW5lbEhlYWRlckFjdGlvblNlY3Rpb24iLCJhbGxvd0R1cGxpY2F0ZSIsImlzVmlzaWJsZSIsIm9uVG9nZ2xlVmlzaWJpbGl0eSIsIm9uUmVzZXRJc1ZhbGlkIiwib25Ub2dnbGVFbmFibGVDb25maWciLCJvbkR1cGxpY2F0ZUxheWVyIiwib25SZW1vdmVMYXllciIsIm9uWm9vbVRvTGF5ZXIiLCJfcHJvcHMkc2hvd1JlbW92ZUxheWUiLCJzaG93UmVtb3ZlTGF5ZXIiLCJjdXN0b21BY3Rpb25JY29ucyIsImFjdGlvbkljb25zIiwiZGVmYXVsdEFjdGlvbkljb25zIiwidGVzdElkIiwidG9vbHRpcCIsInRvb2x0aXBUeXBlIiwiSWNvbkNvbXBvbmVudCIsInJlbW92ZSIsImR1cGxpY2F0ZSIsImRpc2FibGVkIiwiY3Jvc3NoYWlycyIsInZpc2libGUiLCJoaWRkZW4iLCJyZXNldElzVmFsaWQiLCJjbGFzc25hbWVzIiwiZGlzYWJsZUNvbmZpZyIsImVuYWJsZUNvbmZpZyIsIlN0eWxlZEhlYWRlcldhcmluZyIsIl9yZWY3IiwiSGVhZGVyV2FybmluZyIsIl9yZWY4IiwiV2FybmluZ1NpZ24iLCJoZWlnaHQiLCJUb29sdGlwIiwiZWZmZWN0IiwiUm90YXRlZEljb24iLCJUcmFzaCIsIkV5ZVNlZW4iLCJFeWVVbnNlZW4iLCJBcnJvd0Rvd24iLCJDb3B5IiwiUmVzZXQiLCJab29tSW4iLCJMYXllclBhbmVsSGVhZGVyRmFjdG9yeSIsIkxheWVyUGFuZWxIZWFkZXIiLCJfcHJvcHMkaXNEcmFnTkRyb3BFbmEiLCJpc0RyYWdORHJvcEVuYWJsZWQiLCJsYWJlbFJDR0NvbG9yVmFsdWVzIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwic2V0SXNFZGl0aW5nTGFiZWwiLCJhY3RpdmUiLCJWZXJ0RG90cyIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvbGF5ZXItcGFuZWwtaGVhZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtcbiAgdXNlU3RhdGUsXG4gIENvbXBvbmVudFR5cGUsXG4gIE1vdXNlRXZlbnRIYW5kbGVyLFxuICBNb3VzZUV2ZW50LFxuICBDaGFuZ2VFdmVudEhhbmRsZXJcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgc3R5bGVkLCB7Y3NzfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5IGZyb20gJy4uL3BhbmVsLWhlYWRlci1hY3Rpb24nO1xuaW1wb3J0IHtUb29sdGlwLCBzaG91bGRGb3J3YXJkUHJvcH0gZnJvbSAnLi4vLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIENvcHksXG4gIEFycm93RG93bixcbiAgRXllU2VlbixcbiAgRXllVW5zZWVuLFxuICBUcmFzaCxcbiAgVmVydERvdHMsXG4gIFdhcm5pbmdTaWduLFxuICBSZXNldCxcbiAgWm9vbUluXG59IGZyb20gJy4uLy4uL2NvbW1vbi9pY29ucyc7XG5cbmltcG9ydCB7SW5saW5lSW5wdXQsIFN0eWxlZFBhbmVsSGVhZGVyfSBmcm9tICcuLi8uLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge2RhdGFUZXN0SWRzfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge1JHQkNvbG9yfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7QmFzZVByb3BzfSBmcm9tICcuLi8uLi9jb21tb24vaWNvbnMnO1xuXG5leHBvcnQgdHlwZSBMYXllckxhYmVsRWRpdG9yUHJvcHMgPSB7XG4gIGxheWVySWQ6IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG9uRWRpdDogQ2hhbmdlRXZlbnRIYW5kbGVyO1xuICBvbkZvY3VzOiBDaGFuZ2VFdmVudEhhbmRsZXI7XG4gIG9uQmx1cjogQ2hhbmdlRXZlbnRIYW5kbGVyO1xufTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJUaXRsZVNlY3Rpb25Qcm9wcyA9IHtcbiAgbGF5ZXJUeXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgbGF5ZXJJZDogc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbiAgb25VcGRhdGVMYXllckxhYmVsOiBDaGFuZ2VFdmVudEhhbmRsZXI7XG4gIG9uRm9jdXM6IENoYW5nZUV2ZW50SGFuZGxlcjtcbiAgb25CbHVyOiBDaGFuZ2VFdmVudEhhbmRsZXI7XG59O1xuXG5leHBvcnQgdHlwZSBMYXllclBhbmVsSGVhZGVyUHJvcHMgPSB7XG4gIGxheWVySWQ6IHN0cmluZztcbiAgaXNWaXNpYmxlOiBib29sZWFuO1xuICBpc1ZhbGlkOiBib29sZWFuO1xuICBvblRvZ2dsZVZpc2liaWxpdHk6IE1vdXNlRXZlbnRIYW5kbGVyO1xuICBvblVwZGF0ZUxheWVyTGFiZWw6IENoYW5nZUV2ZW50SGFuZGxlcjtcbiAgb25Ub2dnbGVFbmFibGVDb25maWc6IE1vdXNlRXZlbnRIYW5kbGVyO1xuICBvblJlbW92ZUxheWVyOiBNb3VzZUV2ZW50SGFuZGxlcjtcbiAgb25ab29tVG9MYXllcjogTW91c2VFdmVudEhhbmRsZXI7XG4gIG9uRHVwbGljYXRlTGF5ZXI6IE1vdXNlRXZlbnRIYW5kbGVyO1xuICBvblJlc2V0SXNWYWxpZDogTW91c2VFdmVudEhhbmRsZXI7XG4gIGlzQ29uZmlnQWN0aXZlOiBib29sZWFuO1xuICBzaG93UmVtb3ZlTGF5ZXI/OiBib29sZWFuO1xuICBsYWJlbD86IHN0cmluZztcbiAgbGF5ZXJUeXBlPzogc3RyaW5nIHwgbnVsbDtcbiAgYWxsb3dEdXBsaWNhdGU/OiBib29sZWFuO1xuICBpc0RyYWdORHJvcEVuYWJsZWQ/OiBib29sZWFuO1xuICB3YXJuaW5nPzogYm9vbGVhbjtcbiAgbGFiZWxSQ0dDb2xvclZhbHVlcz86IFJHQkNvbG9yIHwgbnVsbDtcbiAgYWN0aW9uSWNvbnM/OiB7XG4gICAgcmVtb3ZlOiBDb21wb25lbnRUeXBlPFBhcnRpYWw8QmFzZVByb3BzPj47XG4gICAgdmlzaWJsZTogQ29tcG9uZW50VHlwZTxQYXJ0aWFsPEJhc2VQcm9wcz4+O1xuICAgIGhpZGRlbjogQ29tcG9uZW50VHlwZTxQYXJ0aWFsPEJhc2VQcm9wcz4+O1xuICAgIGVuYWJsZUNvbmZpZzogQ29tcG9uZW50VHlwZTxQYXJ0aWFsPEJhc2VQcm9wcz4+O1xuICAgIGRpc2FibGVDb25maWc/OiBDb21wb25lbnRUeXBlPFBhcnRpYWw8QmFzZVByb3BzPj47XG4gICAgcmVzZXRJc1ZhbGlkOiBDb21wb25lbnRUeXBlPFBhcnRpYWw8QmFzZVByb3BzPj47XG4gICAgZHVwbGljYXRlOiBDb21wb25lbnRUeXBlPFBhcnRpYWw8QmFzZVByb3BzPj47XG4gICAgY3Jvc3NoYWlyczogQ29tcG9uZW50VHlwZTxQYXJ0aWFsPEJhc2VQcm9wcz4+O1xuICB9O1xuICBsaXN0ZW5lcnM/OiBSZWFjdC5FbGVtZW50VHlwZTtcbn07XG5cbnR5cGUgSGVhZGVyQWN0aW9uU2VjdGlvblByb3BzID0ge1xuICBpc0VkaXRpbmdMYWJlbDogYm9vbGVhbjtcbn07XG5cbmV4cG9ydCB0eXBlIExheWVyUGFuZWxIZWFkZXJBY3Rpb25TZWN0aW9uUHJvcHMgPSBMYXllclBhbmVsSGVhZGVyUHJvcHMgJiBIZWFkZXJBY3Rpb25TZWN0aW9uUHJvcHM7XG5cbmNvbnN0IGdldEJvcmRlckNzcyA9IHN0YXR1cyA9PiBjc3NgXG4gIGJvcmRlci10b3A6IDJweCBzb2xpZCAkeyh7dGhlbWV9KSA9PiB0aGVtZS5ub3RpZmljYXRpb25Db2xvcnNbc3RhdHVzXX07XG4gIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAkeyh7dGhlbWV9KSA9PiB0aGVtZS5ub3RpZmljYXRpb25Db2xvcnNbc3RhdHVzXX07XG4gIGJvcmRlci1yaWdodDogMnB4IHNvbGlkICR7KHt0aGVtZX0pID0+IHRoZW1lLm5vdGlmaWNhdGlvbkNvbG9yc1tzdGF0dXNdfTtcbmA7XG5cbmNvbnN0IFN0eWxlZExheWVyUGFuZWxIZWFkZXIgPSBzdHlsZWQoU3R5bGVkUGFuZWxIZWFkZXIpYFxuICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGF5ZXJQYW5lbEhlYWRlckhlaWdodH1weDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcblxuICAubGF5ZXJfX3JlbW92ZS1sYXllciB7XG4gICAgb3BhY2l0eTogMDtcbiAgfVxuXG4gIC5sYXllcl9fZHJhZy1oYW5kbGVfX3BsYWNlaG9sZGVyIHtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgcGFkZGluZzogMTBweDtcbiAgfVxuXG4gICR7cHJvcHMgPT4gKHByb3BzLndhcm5pbmcgPyBnZXRCb3JkZXJDc3MoJ3dhcm5pbmcnKSA6IHByb3BzLmlzVmFsaWQgPyAnJyA6IGdldEJvcmRlckNzcygnZXJyb3InKSl9XG5cbiAgJjpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kSG92ZXJ9O1xuXG4gICAgLmxheWVyX19kcmFnLWhhbmRsZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cblxuICAgIC5sYXllcl9fcmVtb3ZlLWxheWVyIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5gO1xuXG5jb25zdCBIZWFkZXJMYWJlbFNlY3Rpb24gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICBmbGV4LWdyb3c6IDE7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAvLyBsZWF2ZSBzcGFjZSBmb3IgZXllIGFuZCBjb2xsYXBzZSBpY29uXG4gIHBhZGRpbmctcmlnaHQ6IDUwcHg7XG5gO1xuXG5jb25zdCBIZWFkZXJBY3Rpb25TZWN0aW9uID0gc3R5bGVkLmRpdi53aXRoQ29uZmlnKHtzaG91bGRGb3J3YXJkUHJvcH0pPEhlYWRlckFjdGlvblNlY3Rpb25Qcm9wcz5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgaGVpZ2h0OiAxMDAlO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgcmlnaHQ6IDEwcHg7XG4gIHBvaW50ZXItZXZlbnRzOiAke3Byb3BzID0+IChwcm9wcy5pc0VkaXRpbmdMYWJlbCA/ICdub25lJyA6ICdhbGwnKX07XG4gICY6aG92ZXIge1xuICAgIC5sYXllci1wYW5lbF9faGVhZGVyX19hY3Rpb25zX19oaWRkZW4ge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIH1cbiAgfVxuYDtcblxudHlwZSBTdHlsZWRQYW5lbEhlYWRlckhpZGRlbkFjdGlvbnNQcm9wcyA9IHtcbiAgaXNDb25maWdBY3RpdmU6IExheWVyUGFuZWxIZWFkZXJQcm9wc1snaXNDb25maWdBY3RpdmUnXTtcbn07XG5cbi8vIEhpZGVuIGFjdGlvbnMgb25seSBzaG93IHVwIG9uIGhvdmVyXG5jb25zdCBTdHlsZWRQYW5lbEhlYWRlckhpZGRlbkFjdGlvbnMgPSBzdHlsZWQuZGl2LndpdGhDb25maWcoe3Nob3VsZEZvcndhcmRQcm9wfSkuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdsYXllci1wYW5lbF9faGVhZGVyX19hY3Rpb25zX19oaWRkZW4nXG59KTxTdHlsZWRQYW5lbEhlYWRlckhpZGRlbkFjdGlvbnNQcm9wcz5gXG4gIG9wYWNpdHk6IDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT5cbiAgICBwcm9wcy5pc0NvbmZpZ0FjdGl2ZSA/IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZEhvdmVyIDogcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kfTtcbiAgdHJhbnNpdGlvbjpcbiAgICBvcGFjaXR5IDAuNHMgZWFzZSxcbiAgICBiYWNrZ3JvdW5kLWNvbG9yIDAuNHMgZWFzZTtcblxuICAmOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWREcmFnSGFuZGxlID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgb3BhY2l0eTogMDtcbiAgei1pbmRleDogMTAwMDtcblxuICAmOmhvdmVyIHtcbiAgICBjdXJzb3I6IG1vdmU7XG4gICAgb3BhY2l0eTogMTtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBEcmFnSGFuZGxlOiBSZWFjdC5GQzx7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgbGlzdGVuZXJzPzogYW55O1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZTtcbn0+ID0gKHtjbGFzc05hbWUsIGxpc3RlbmVycywgY2hpbGRyZW59KSA9PiAoXG4gIDxTdHlsZWREcmFnSGFuZGxlIGNsYXNzTmFtZT17Y2xhc3NOYW1lfSB7Li4uKGxpc3RlbmVycyA/IGxpc3RlbmVycyA6IHt9KX0+XG4gICAge2NoaWxkcmVufVxuICA8L1N0eWxlZERyYWdIYW5kbGU+XG4pO1xuXG5jb25zdCBub09wID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xufTtcblxuZXhwb3J0IGNvbnN0IExheWVyTGFiZWxFZGl0b3I6IFJlYWN0LkZDPExheWVyTGFiZWxFZGl0b3JQcm9wcz4gPSAoe1xuICBsYXllcklkLFxuICBsYWJlbCxcbiAgb25FZGl0LFxuICBvbkZvY3VzLFxuICBvbkJsdXJcbn0pID0+IChcbiAgPElubGluZUlucHV0XG4gICAgdHlwZT1cInRleHRcIlxuICAgIGNsYXNzTmFtZT1cImxheWVyX190aXRsZV9fZWRpdG9yXCJcbiAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZHMubGF5ZXJUaXRsZUVkaXRvcn1cbiAgICB2YWx1ZT17bGFiZWx9XG4gICAgb25DbGljaz17bm9PcH1cbiAgICBvbkNoYW5nZT17b25FZGl0fVxuICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgaWQ9e2Ake2xheWVySWR9OmlucHV0LWxheWVyLWxhYmVsYH1cbiAgLz5cbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBMYXllclRpdGxlU2VjdGlvbkZhY3RvcnkoKSB7XG4gIGNvbnN0IFN0eWxlZExheWVyVGl0bGVTZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgICBtYXJnaW4tbGVmdDogNHB4O1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgLmxheWVyX190aXRsZV9faW5uZXIge1xuICAgICAgZmxleC1ncm93OiAxO1xuICAgIH1cblxuICAgIC5sYXllcl9fdGl0bGVfX3R5cGUge1xuICAgICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yfTtcbiAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxMnB4O1xuICAgICAgbGV0dGVyLXNwYWNpbmc6IDAuMzdweDtcbiAgICAgIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuICAgIH1cbiAgYDtcbiAgY29uc3QgTGF5ZXJUaXRsZVNlY3Rpb246IFJlYWN0LkZDPExheWVyVGl0bGVTZWN0aW9uUHJvcHM+ID0gKHtcbiAgICBsYXllclR5cGUsXG4gICAgbGF5ZXJJZCxcbiAgICBsYWJlbCxcbiAgICBvblVwZGF0ZUxheWVyTGFiZWwsXG4gICAgb25Gb2N1cyxcbiAgICBvbkJsdXJcbiAgfSkgPT4gKFxuICAgIDxTdHlsZWRMYXllclRpdGxlU2VjdGlvbiBjbGFzc05hbWU9XCJsYXllcl9fdGl0bGVcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxMYXllckxhYmVsRWRpdG9yXG4gICAgICAgICAgbGF5ZXJJZD17bGF5ZXJJZH1cbiAgICAgICAgICBsYWJlbD17bGFiZWx9XG4gICAgICAgICAgb25FZGl0PXtvblVwZGF0ZUxheWVyTGFiZWx9XG4gICAgICAgICAgb25Gb2N1cz17b25Gb2N1c31cbiAgICAgICAgICBvbkJsdXI9e29uQmx1cn1cbiAgICAgICAgLz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYXllcl9fdGl0bGVfX3R5cGVcIj5cbiAgICAgICAgICB7bGF5ZXJUeXBlICYmIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXtgbGF5ZXIudHlwZS4ke2xheWVyVHlwZS50b0xvd2VyQ2FzZSgpfWB9IC8+fVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvU3R5bGVkTGF5ZXJUaXRsZVNlY3Rpb24+XG4gICk7XG4gIHJldHVybiBMYXllclRpdGxlU2VjdGlvbjtcbn1cblxuTGF5ZXJQYW5lbEhlYWRlckFjdGlvblNlY3Rpb25GYWN0b3J5LmRlcHMgPSBbUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5XTtcblxuZXhwb3J0IGZ1bmN0aW9uIExheWVyUGFuZWxIZWFkZXJBY3Rpb25TZWN0aW9uRmFjdG9yeShcbiAgUGFuZWxIZWFkZXJBY3Rpb246IFJldHVyblR5cGU8dHlwZW9mIFBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeT5cbikge1xuICBjb25zdCBMYXllclBhbmVsSGVhZGVyQWN0aW9uU2VjdGlvbjogUmVhY3QuRkM8TGF5ZXJQYW5lbEhlYWRlckFjdGlvblNlY3Rpb25Qcm9wcz4gPSAoXG4gICAgcHJvcHM6IExheWVyUGFuZWxIZWFkZXJBY3Rpb25TZWN0aW9uUHJvcHNcbiAgKSA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgaXNDb25maWdBY3RpdmUsXG4gICAgICBhbGxvd0R1cGxpY2F0ZSxcbiAgICAgIGlzVmlzaWJsZSxcbiAgICAgIGlzVmFsaWQsXG4gICAgICBsYXllcklkLFxuICAgICAgb25Ub2dnbGVWaXNpYmlsaXR5LFxuICAgICAgb25SZXNldElzVmFsaWQsXG4gICAgICBvblRvZ2dsZUVuYWJsZUNvbmZpZyxcbiAgICAgIG9uRHVwbGljYXRlTGF5ZXIsXG4gICAgICBvblJlbW92ZUxheWVyLFxuICAgICAgb25ab29tVG9MYXllcixcbiAgICAgIHNob3dSZW1vdmVMYXllciA9IHRydWUsXG4gICAgICBpc0VkaXRpbmdMYWJlbCxcbiAgICAgIGFjdGlvbkljb25zOiBjdXN0b21BY3Rpb25JY29uc1xuICAgIH0gPSBwcm9wcztcbiAgICAvLyBNZXJnZSBjdXN0b20gYWN0aW9uSWNvbnMgd2l0aCBkZWZhdWx0cyB0byBhdm9pZCBicmVha2luZyBjaGFuZ2VzXG4gICAgY29uc3QgYWN0aW9uSWNvbnMgPSB7Li4uZGVmYXVsdEFjdGlvbkljb25zLCAuLi5jdXN0b21BY3Rpb25JY29uc307XG4gICAgcmV0dXJuIChcbiAgICAgIDxIZWFkZXJBY3Rpb25TZWN0aW9uIGNsYXNzTmFtZT1cImxheWVyLXBhbmVsX19oZWFkZXJfX2FjdGlvbnNcIiBpc0VkaXRpbmdMYWJlbD17aXNFZGl0aW5nTGFiZWx9PlxuICAgICAgICA8U3R5bGVkUGFuZWxIZWFkZXJIaWRkZW5BY3Rpb25zIGlzQ29uZmlnQWN0aXZlPXtpc0NvbmZpZ0FjdGl2ZX0+XG4gICAgICAgICAge3Nob3dSZW1vdmVMYXllciA/IChcbiAgICAgICAgICAgIDxQYW5lbEhlYWRlckFjdGlvblxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJsYXllcl9fcmVtb3ZlLWxheWVyXCJcbiAgICAgICAgICAgICAgdGVzdElkPVwicmVtb3ZlLWxheWVyLWFjdGlvblwiXG4gICAgICAgICAgICAgIGlkPXtsYXllcklkfVxuICAgICAgICAgICAgICB0b29sdGlwPXsndG9vbHRpcC5yZW1vdmVMYXllcid9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uUmVtb3ZlTGF5ZXJ9XG4gICAgICAgICAgICAgIHRvb2x0aXBUeXBlPVwiZXJyb3JcIlxuICAgICAgICAgICAgICBJY29uQ29tcG9uZW50PXthY3Rpb25JY29ucy5yZW1vdmV9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDxQYW5lbEhlYWRlckFjdGlvblxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibGF5ZXJfX2R1cGxpY2F0ZVwiXG4gICAgICAgICAgICBpZD17bGF5ZXJJZH1cbiAgICAgICAgICAgIHRvb2x0aXA9eyd0b29sdGlwLmR1cGxpY2F0ZUxheWVyJ31cbiAgICAgICAgICAgIG9uQ2xpY2s9e29uRHVwbGljYXRlTGF5ZXJ9XG4gICAgICAgICAgICBJY29uQ29tcG9uZW50PXthY3Rpb25JY29ucy5kdXBsaWNhdGV9XG4gICAgICAgICAgICBkaXNhYmxlZD17IWFsbG93RHVwbGljYXRlfVxuICAgICAgICAgIC8+XG4gICAgICAgICAgPFBhbmVsSGVhZGVyQWN0aW9uXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJsYXllcl9fem9vbS10by1sYXllclwiXG4gICAgICAgICAgICBpZD17bGF5ZXJJZH1cbiAgICAgICAgICAgIHRvb2x0aXA9eyd0b29sdGlwLnpvb21Ub0xheWVyJ31cbiAgICAgICAgICAgIG9uQ2xpY2s9e29uWm9vbVRvTGF5ZXJ9XG4gICAgICAgICAgICBJY29uQ29tcG9uZW50PXthY3Rpb25JY29ucy5jcm9zc2hhaXJzfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU3R5bGVkUGFuZWxIZWFkZXJIaWRkZW5BY3Rpb25zPlxuICAgICAgICB7aXNWYWxpZCA/IChcbiAgICAgICAgICA8UGFuZWxIZWFkZXJBY3Rpb25cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImxheWVyX192aXNpYmlsaXR5LXRvZ2dsZVwiXG4gICAgICAgICAgICBpZD17bGF5ZXJJZH1cbiAgICAgICAgICAgIHRvb2x0aXA9e2lzVmlzaWJsZSA/ICd0b29sdGlwLmhpZGVMYXllcicgOiAndG9vbHRpcC5zaG93TGF5ZXInfVxuICAgICAgICAgICAgb25DbGljaz17b25Ub2dnbGVWaXNpYmlsaXR5fVxuICAgICAgICAgICAgSWNvbkNvbXBvbmVudD17aXNWaXNpYmxlID8gYWN0aW9uSWNvbnMudmlzaWJsZSA6IGFjdGlvbkljb25zLmhpZGRlbn1cbiAgICAgICAgICAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxQYW5lbEhlYWRlckFjdGlvblxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibGF5ZXJfX2lzLXZhbGlkLXJlZnJlc2hcIlxuICAgICAgICAgICAgaWQ9e2xheWVySWR9XG4gICAgICAgICAgICB0b29sdGlwPXsndG9vbHRpcC5yZXNldEFmdGVyRXJyb3InfVxuICAgICAgICAgICAgb25DbGljaz17b25SZXNldElzVmFsaWR9XG4gICAgICAgICAgICBJY29uQ29tcG9uZW50PXthY3Rpb25JY29ucy5yZXNldElzVmFsaWR9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cblxuICAgICAgICA8UGFuZWxIZWFkZXJBY3Rpb25cbiAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzbmFtZXMoJ2xheWVyX19lbmFibGUtY29uZmlnICcsIHtcbiAgICAgICAgICAgICdpcy1vcGVuJzogaXNDb25maWdBY3RpdmVcbiAgICAgICAgICB9KX1cbiAgICAgICAgICBpZD17bGF5ZXJJZH1cbiAgICAgICAgICB0b29sdGlwPXsndG9vbHRpcC5sYXllclNldHRpbmdzJ31cbiAgICAgICAgICBvbkNsaWNrPXtvblRvZ2dsZUVuYWJsZUNvbmZpZ31cbiAgICAgICAgICBJY29uQ29tcG9uZW50PXtcbiAgICAgICAgICAgIGlzQ29uZmlnQWN0aXZlXG4gICAgICAgICAgICAgID8gYWN0aW9uSWNvbnMuZGlzYWJsZUNvbmZpZyB8fCBhY3Rpb25JY29ucy5lbmFibGVDb25maWdcbiAgICAgICAgICAgICAgOiBhY3Rpb25JY29ucy5lbmFibGVDb25maWdcbiAgICAgICAgICB9XG4gICAgICAgIC8+XG4gICAgICA8L0hlYWRlckFjdGlvblNlY3Rpb24+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gTGF5ZXJQYW5lbEhlYWRlckFjdGlvblNlY3Rpb247XG59XG5cbmNvbnN0IFN0eWxlZEhlYWRlcldhcmluZyA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IC05cHg7XG4gIHRvcDogY2FsYyg1MCUgLSA5cHgpO1xuICBjb2xvcjogJHsoe3RoZW1lfSkgPT4gdGhlbWUubm90aWZpY2F0aW9uQ29sb3JzLndhcm5pbmd9O1xuYDtcblxuZXhwb3J0IGNvbnN0IEhlYWRlcldhcm5pbmcgPSAoe3dhcm5pbmcsIGlkfSkgPT4gKFxuICA8U3R5bGVkSGVhZGVyV2FyaW5nPlxuICAgIDxXYXJuaW5nU2lnbiBkYXRhLXRpcCBkYXRhLWZvcj17YGxheWVyLSR7aWR9LXdhcm5pbmdgfSBoZWlnaHQ9XCIxNnB4XCIgLz5cbiAgICA8VG9vbHRpcCBpZD17YGxheWVyLSR7aWR9LXdhcm5pbmdgfSB0eXBlPVwid2FybmluZ1wiIGVmZmVjdD1cInNvbGlkXCIgdGV4dENvbG9yPVwiYmxhY2tcIj5cbiAgICAgIHt3YXJuaW5nfVxuICAgIDwvVG9vbHRpcD5cbiAgPC9TdHlsZWRIZWFkZXJXYXJpbmc+XG4pO1xuXG5jb25zdCBSb3RhdGVkSWNvbiA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB0cmFuc2Zvcm06IHJvdGF0ZSgxODBkZWcpO1xuYDtcblxuY29uc3QgZGVmYXVsdEFjdGlvbkljb25zID0ge1xuICByZW1vdmU6IHByb3BzID0+IDxUcmFzaCB7Li4ucHJvcHN9IGhlaWdodD1cIjE2cHhcIiAvPixcbiAgdmlzaWJsZTogcHJvcHMgPT4gPEV5ZVNlZW4gey4uLnByb3BzfSBoZWlnaHQ9XCIxNnB4XCIgLz4sXG4gIGhpZGRlbjogcHJvcHMgPT4gPEV5ZVVuc2VlbiB7Li4ucHJvcHN9IGhlaWdodD1cIjE2cHhcIiAvPixcbiAgZW5hYmxlQ29uZmlnOiBwcm9wcyA9PiA8QXJyb3dEb3duIHsuLi5wcm9wc30gaGVpZ2h0PVwiMThweFwiIC8+LFxuICBkaXNhYmxlQ29uZmlnOiBwcm9wcyA9PiAoXG4gICAgPFJvdGF0ZWRJY29uPlxuICAgICAgPEFycm93RG93biB7Li4ucHJvcHN9IGhlaWdodD1cIjE4cHhcIiAvPlxuICAgIDwvUm90YXRlZEljb24+XG4gICksXG4gIGR1cGxpY2F0ZTogcHJvcHMgPT4gPENvcHkgey4uLnByb3BzfSBoZWlnaHQ9XCIxNHB4XCIgLz4sXG4gIHJlc2V0SXNWYWxpZDogUmVzZXQsXG4gIGNyb3NzaGFpcnM6IHByb3BzID0+IDxab29tSW4gey4uLnByb3BzfSBoZWlnaHQ9XCIxNHB4XCIgLz5cbn07XG5cbkxheWVyUGFuZWxIZWFkZXJGYWN0b3J5LmRlcHMgPSBbTGF5ZXJUaXRsZVNlY3Rpb25GYWN0b3J5LCBMYXllclBhbmVsSGVhZGVyQWN0aW9uU2VjdGlvbkZhY3RvcnldO1xuXG5mdW5jdGlvbiBMYXllclBhbmVsSGVhZGVyRmFjdG9yeShcbiAgTGF5ZXJUaXRsZVNlY3Rpb246IFJldHVyblR5cGU8dHlwZW9mIExheWVyVGl0bGVTZWN0aW9uRmFjdG9yeT4sXG4gIExheWVyUGFuZWxIZWFkZXJBY3Rpb25TZWN0aW9uOiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllclBhbmVsSGVhZGVyQWN0aW9uU2VjdGlvbkZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgTGF5ZXJQYW5lbEhlYWRlcjogUmVhY3QuRkM8TGF5ZXJQYW5lbEhlYWRlclByb3BzPiA9IHByb3BzID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBpc0NvbmZpZ0FjdGl2ZSxcbiAgICAgIGlzRHJhZ05Ecm9wRW5hYmxlZCA9IHRydWUsXG4gICAgICBpc1ZhbGlkLFxuICAgICAgd2FybmluZyxcbiAgICAgIGxhYmVsLFxuICAgICAgbGF5ZXJJZCxcbiAgICAgIGxheWVyVHlwZSxcbiAgICAgIGxhYmVsUkNHQ29sb3JWYWx1ZXMsXG4gICAgICBvblVwZGF0ZUxheWVyTGFiZWwsXG4gICAgICBvblRvZ2dsZUVuYWJsZUNvbmZpZyxcbiAgICAgIGxpc3RlbmVyc1xuICAgIH0gPSBwcm9wcztcbiAgICBjb25zdCBbaXNFZGl0aW5nTGFiZWwsIHNldElzRWRpdGluZ0xhYmVsXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZExheWVyUGFuZWxIZWFkZXJcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdsYXllci1wYW5lbF9faGVhZGVyJywge1xuICAgICAgICAgICdzb3J0LS1oYW5kbGUnOiAhaXNDb25maWdBY3RpdmVcbiAgICAgICAgfSl9XG4gICAgICAgIGlzVmFsaWQ9e2lzVmFsaWR9XG4gICAgICAgIHdhcm5pbmc9e3dhcm5pbmd9XG4gICAgICAgIGFjdGl2ZT17aXNDb25maWdBY3RpdmV9XG4gICAgICAgIGxhYmVsUkNHQ29sb3JWYWx1ZXM9e2xhYmVsUkNHQ29sb3JWYWx1ZXN9XG4gICAgICAgIG9uQ2xpY2s9e29uVG9nZ2xlRW5hYmxlQ29uZmlnfVxuICAgICAgPlxuICAgICAgICB7d2FybmluZyA/IDxIZWFkZXJXYXJuaW5nIHdhcm5pbmc9e3dhcm5pbmd9IGlkPXtsYXllcklkfSAvPiA6IG51bGx9XG4gICAgICAgIDxIZWFkZXJMYWJlbFNlY3Rpb24gY2xhc3NOYW1lPVwibGF5ZXItcGFuZWxfX2hlYWRlcl9fY29udGVudFwiPlxuICAgICAgICAgIHtpc0RyYWdORHJvcEVuYWJsZWQgPyAoXG4gICAgICAgICAgICA8RHJhZ0hhbmRsZSBjbGFzc05hbWU9XCJsYXllcl9fZHJhZy1oYW5kbGVcIiBsaXN0ZW5lcnM9e2xpc3RlbmVyc30+XG4gICAgICAgICAgICAgIDxWZXJ0RG90cyBoZWlnaHQ9XCIyMHB4XCIgLz5cbiAgICAgICAgICAgIDwvRHJhZ0hhbmRsZT5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsYXllcl9fZHJhZy1oYW5kbGVfX3BsYWNlaG9sZGVyXCIgLz5cbiAgICAgICAgICApfVxuICAgICAgICAgIDxMYXllclRpdGxlU2VjdGlvblxuICAgICAgICAgICAgbGF5ZXJJZD17bGF5ZXJJZH1cbiAgICAgICAgICAgIGxhYmVsPXtsYWJlbH1cbiAgICAgICAgICAgIG9uVXBkYXRlTGF5ZXJMYWJlbD17b25VcGRhdGVMYXllckxhYmVsfVxuICAgICAgICAgICAgbGF5ZXJUeXBlPXtsYXllclR5cGV9XG4gICAgICAgICAgICBvbkZvY3VzPXsoKSA9PiB7XG4gICAgICAgICAgICAgIHNldElzRWRpdGluZ0xhYmVsKHRydWUpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIG9uQmx1cj17KCkgPT4ge1xuICAgICAgICAgICAgICBzZXRJc0VkaXRpbmdMYWJlbChmYWxzZSk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvSGVhZGVyTGFiZWxTZWN0aW9uPlxuICAgICAgICA8TGF5ZXJQYW5lbEhlYWRlckFjdGlvblNlY3Rpb24gey4uLnByb3BzfSBpc0VkaXRpbmdMYWJlbD17aXNFZGl0aW5nTGFiZWx9IC8+XG4gICAgICA8L1N0eWxlZExheWVyUGFuZWxIZWFkZXI+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gTGF5ZXJQYW5lbEhlYWRlcjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJQYW5lbEhlYWRlckZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQUdBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQU9BLElBQUFDLFdBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLGlCQUFBLEdBQUFKLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxrQkFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FB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
|
|
312
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9wYW5lbEhlYWRlckFjdGlvbiIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9pY29ucyIsIl9sb2NhbGl6YXRpb24iLCJfY29uc3RhbnRzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX3RlbXBsYXRlT2JqZWN0NSIsIl90ZW1wbGF0ZU9iamVjdDYiLCJfdGVtcGxhdGVPYmplY3Q3IiwiX3RlbXBsYXRlT2JqZWN0OCIsIl90ZW1wbGF0ZU9iamVjdDkiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJnZXRCb3JkZXJDc3MiLCJzdGF0dXMiLCJjc3MiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsIl9yZWYiLCJ0aGVtZSIsIm5vdGlmaWNhdGlvbkNvbG9ycyIsIl9yZWYyIiwiX3JlZjMiLCJTdHlsZWRMYXllclBhbmVsSGVhZGVyIiwic3R5bGVkIiwiU3R5bGVkUGFuZWxIZWFkZXIiLCJwcm9wcyIsImxheWVyUGFuZWxIZWFkZXJIZWlnaHQiLCJ3YXJuaW5nIiwiaXNWYWxpZCIsInBhbmVsQmFja2dyb3VuZEhvdmVyIiwiSGVhZGVyTGFiZWxTZWN0aW9uIiwiZGl2IiwidGV4dENvbG9yIiwiSGVhZGVyQWN0aW9uU2VjdGlvbiIsIndpdGhDb25maWciLCJzaG91bGRGb3J3YXJkUHJvcCIsImlzRWRpdGluZ0xhYmVsIiwiU3R5bGVkUGFuZWxIZWFkZXJIaWRkZW5BY3Rpb25zIiwiYXR0cnMiLCJjbGFzc05hbWUiLCJpc0NvbmZpZ0FjdGl2ZSIsInBhbmVsQmFja2dyb3VuZCIsIlN0eWxlZERyYWdIYW5kbGUiLCJ0ZXh0Q29sb3JIbCIsIkRyYWdIYW5kbGUiLCJleHBvcnRzIiwiX3JlZjQiLCJsaXN0ZW5lcnMiLCJjaGlsZHJlbiIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJub09wIiwiZXZlbnQiLCJzdG9wUHJvcGFnYXRpb24iLCJwcmV2ZW50RGVmYXVsdCIsIkxheWVyTGFiZWxFZGl0b3IiLCJfcmVmNSIsImxheWVySWQiLCJsYWJlbCIsIm9uRWRpdCIsIm9uRm9jdXMiLCJvbkJsdXIiLCJJbmxpbmVJbnB1dCIsInR5cGUiLCJkYXRhVGVzdElkcyIsImxheWVyVGl0bGVFZGl0b3IiLCJ2YWx1ZSIsIm9uQ2xpY2siLCJvbkNoYW5nZSIsImlkIiwiY29uY2F0IiwiTGF5ZXJUaXRsZVNlY3Rpb25GYWN0b3J5IiwiU3R5bGVkTGF5ZXJUaXRsZVNlY3Rpb24iLCJzdWJ0ZXh0Q29sb3IiLCJMYXllclRpdGxlU2VjdGlvbiIsIl9yZWY2IiwibGF5ZXJUeXBlIiwib25VcGRhdGVMYXllckxhYmVsIiwiRm9ybWF0dGVkTWVzc2FnZSIsInRvTG93ZXJDYXNlIiwiTGF5ZXJQYW5lbEhlYWRlckFjdGlvblNlY3Rpb25GYWN0b3J5IiwiZGVwcyIsIlBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeSIsIlBhbmVsSGVhZGVyQWN0aW9uIiwiTGF5ZXJQYW5lbEhlYWRlckFjdGlvblNlY3Rpb24iLCJhbGxvd0R1cGxpY2F0ZSIsImlzVmlzaWJsZSIsIm9uVG9nZ2xlVmlzaWJpbGl0eSIsIm9uUmVzZXRJc1ZhbGlkIiwib25Ub2dnbGVFbmFibGVDb25maWciLCJvbkR1cGxpY2F0ZUxheWVyIiwib25SZW1vdmVMYXllciIsIm9uWm9vbVRvTGF5ZXIiLCJfcHJvcHMkc2hvd1JlbW92ZUxheWUiLCJzaG93UmVtb3ZlTGF5ZXIiLCJjdXN0b21BY3Rpb25JY29ucyIsImFjdGlvbkljb25zIiwiZGVmYXVsdEFjdGlvbkljb25zIiwidGVzdElkIiwidG9vbHRpcCIsInRvb2x0aXBUeXBlIiwiSWNvbkNvbXBvbmVudCIsInJlbW92ZSIsImR1cGxpY2F0ZSIsImRpc2FibGVkIiwiY3Jvc3NoYWlycyIsInZpc2libGUiLCJoaWRkZW4iLCJyZXNldElzVmFsaWQiLCJjbGFzc25hbWVzIiwiZGlzYWJsZUNvbmZpZyIsImVuYWJsZUNvbmZpZyIsIlN0eWxlZEhlYWRlcldhcmluZyIsIl9yZWY3IiwiSGVhZGVyV2FybmluZyIsIl9yZWY4IiwiV2FybmluZ1NpZ24iLCJoZWlnaHQiLCJUb29sdGlwIiwiZWZmZWN0IiwiUm90YXRlZEljb24iLCJUcmFzaCIsIkV5ZVNlZW4iLCJFeWVVbnNlZW4iLCJBcnJvd0Rvd24iLCJDb3B5IiwiUmVzZXQiLCJab29tSW4iLCJMYXllclBhbmVsSGVhZGVyRmFjdG9yeSIsIkxheWVyUGFuZWxIZWFkZXIiLCJfcHJvcHMkaXNEcmFnTkRyb3BFbmEiLCJpc0RyYWdORHJvcEVuYWJsZWQiLCJsYWJlbFJDR0NvbG9yVmFsdWVzIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwic2V0SXNFZGl0aW5nTGFiZWwiLCIkYWN0aXZlIiwiVmVydERvdHMiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zaWRlLXBhbmVsL2xheWVyLXBhbmVsL2xheWVyLXBhbmVsLWhlYWRlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7XG4gIHVzZVN0YXRlLFxuICBDb21wb25lbnRUeXBlLFxuICBNb3VzZUV2ZW50SGFuZGxlcixcbiAgTW91c2VFdmVudCxcbiAgQ2hhbmdlRXZlbnRIYW5kbGVyXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHN0eWxlZCwge2Nzc30gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IFBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeSBmcm9tICcuLi9wYW5lbC1oZWFkZXItYWN0aW9uJztcbmltcG9ydCB7VG9vbHRpcCwgc2hvdWxkRm9yd2FyZFByb3B9IGZyb20gJy4uLy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge1xuICBDb3B5LFxuICBBcnJvd0Rvd24sXG4gIEV5ZVNlZW4sXG4gIEV5ZVVuc2VlbixcbiAgVHJhc2gsXG4gIFZlcnREb3RzLFxuICBXYXJuaW5nU2lnbixcbiAgUmVzZXQsXG4gIFpvb21JblxufSBmcm9tICcuLi8uLi9jb21tb24vaWNvbnMnO1xuXG5pbXBvcnQge0lubGluZUlucHV0LCBTdHlsZWRQYW5lbEhlYWRlcn0gZnJvbSAnLi4vLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtkYXRhVGVzdElkc30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtSR0JDb2xvcn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge0Jhc2VQcm9wc30gZnJvbSAnLi4vLi4vY29tbW9uL2ljb25zJztcblxuZXhwb3J0IHR5cGUgTGF5ZXJMYWJlbEVkaXRvclByb3BzID0ge1xuICBsYXllcklkOiBzdHJpbmc7XG4gIGxhYmVsPzogc3RyaW5nO1xuICBvbkVkaXQ6IENoYW5nZUV2ZW50SGFuZGxlcjtcbiAgb25Gb2N1czogQ2hhbmdlRXZlbnRIYW5kbGVyO1xuICBvbkJsdXI6IENoYW5nZUV2ZW50SGFuZGxlcjtcbn07XG5cbmV4cG9ydCB0eXBlIExheWVyVGl0bGVTZWN0aW9uUHJvcHMgPSB7XG4gIGxheWVyVHlwZT86IHN0cmluZyB8IG51bGw7XG4gIGxheWVySWQ6IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIG9uVXBkYXRlTGF5ZXJMYWJlbDogQ2hhbmdlRXZlbnRIYW5kbGVyO1xuICBvbkZvY3VzOiBDaGFuZ2VFdmVudEhhbmRsZXI7XG4gIG9uQmx1cjogQ2hhbmdlRXZlbnRIYW5kbGVyO1xufTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJQYW5lbEhlYWRlclByb3BzID0ge1xuICBsYXllcklkOiBzdHJpbmc7XG4gIGlzVmlzaWJsZTogYm9vbGVhbjtcbiAgaXNWYWxpZDogYm9vbGVhbjtcbiAgb25Ub2dnbGVWaXNpYmlsaXR5OiBNb3VzZUV2ZW50SGFuZGxlcjtcbiAgb25VcGRhdGVMYXllckxhYmVsOiBDaGFuZ2VFdmVudEhhbmRsZXI7XG4gIG9uVG9nZ2xlRW5hYmxlQ29uZmlnOiBNb3VzZUV2ZW50SGFuZGxlcjtcbiAgb25SZW1vdmVMYXllcjogTW91c2VFdmVudEhhbmRsZXI7XG4gIG9uWm9vbVRvTGF5ZXI6IE1vdXNlRXZlbnRIYW5kbGVyO1xuICBvbkR1cGxpY2F0ZUxheWVyOiBNb3VzZUV2ZW50SGFuZGxlcjtcbiAgb25SZXNldElzVmFsaWQ6IE1vdXNlRXZlbnRIYW5kbGVyO1xuICBpc0NvbmZpZ0FjdGl2ZTogYm9vbGVhbjtcbiAgc2hvd1JlbW92ZUxheWVyPzogYm9vbGVhbjtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGxheWVyVHlwZT86IHN0cmluZyB8IG51bGw7XG4gIGFsbG93RHVwbGljYXRlPzogYm9vbGVhbjtcbiAgaXNEcmFnTkRyb3BFbmFibGVkPzogYm9vbGVhbjtcbiAgd2FybmluZz86IGJvb2xlYW47XG4gIGxhYmVsUkNHQ29sb3JWYWx1ZXM/OiBSR0JDb2xvciB8IG51bGw7XG4gIGFjdGlvbkljb25zPzoge1xuICAgIHJlbW92ZTogQ29tcG9uZW50VHlwZTxQYXJ0aWFsPEJhc2VQcm9wcz4+O1xuICAgIHZpc2libGU6IENvbXBvbmVudFR5cGU8UGFydGlhbDxCYXNlUHJvcHM+PjtcbiAgICBoaWRkZW46IENvbXBvbmVudFR5cGU8UGFydGlhbDxCYXNlUHJvcHM+PjtcbiAgICBlbmFibGVDb25maWc6IENvbXBvbmVudFR5cGU8UGFydGlhbDxCYXNlUHJvcHM+PjtcbiAgICBkaXNhYmxlQ29uZmlnPzogQ29tcG9uZW50VHlwZTxQYXJ0aWFsPEJhc2VQcm9wcz4+O1xuICAgIHJlc2V0SXNWYWxpZDogQ29tcG9uZW50VHlwZTxQYXJ0aWFsPEJhc2VQcm9wcz4+O1xuICAgIGR1cGxpY2F0ZTogQ29tcG9uZW50VHlwZTxQYXJ0aWFsPEJhc2VQcm9wcz4+O1xuICAgIGNyb3NzaGFpcnM6IENvbXBvbmVudFR5cGU8UGFydGlhbDxCYXNlUHJvcHM+PjtcbiAgfTtcbiAgbGlzdGVuZXJzPzogUmVhY3QuRWxlbWVudFR5cGU7XG59O1xuXG50eXBlIEhlYWRlckFjdGlvblNlY3Rpb25Qcm9wcyA9IHtcbiAgaXNFZGl0aW5nTGFiZWw6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBMYXllclBhbmVsSGVhZGVyQWN0aW9uU2VjdGlvblByb3BzID0gTGF5ZXJQYW5lbEhlYWRlclByb3BzICYgSGVhZGVyQWN0aW9uU2VjdGlvblByb3BzO1xuXG5jb25zdCBnZXRCb3JkZXJDc3MgPSBzdGF0dXMgPT4gY3NzYFxuICBib3JkZXItdG9wOiAycHggc29saWQgJHsoe3RoZW1lfSkgPT4gdGhlbWUubm90aWZpY2F0aW9uQ29sb3JzW3N0YXR1c119O1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgJHsoe3RoZW1lfSkgPT4gdGhlbWUubm90aWZpY2F0aW9uQ29sb3JzW3N0YXR1c119O1xuICBib3JkZXItcmlnaHQ6IDJweCBzb2xpZCAkeyh7dGhlbWV9KSA9PiB0aGVtZS5ub3RpZmljYXRpb25Db2xvcnNbc3RhdHVzXX07XG5gO1xuXG5jb25zdCBTdHlsZWRMYXllclBhbmVsSGVhZGVyID0gc3R5bGVkKFN0eWxlZFBhbmVsSGVhZGVyKWBcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxheWVyUGFuZWxIZWFkZXJIZWlnaHR9cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cbiAgLmxheWVyX19yZW1vdmUtbGF5ZXIge1xuICAgIG9wYWNpdHk6IDA7XG4gIH1cblxuICAubGF5ZXJfX2RyYWctaGFuZGxlX19wbGFjZWhvbGRlciB7XG4gICAgaGVpZ2h0OiAyMHB4O1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gIH1cblxuICAke3Byb3BzID0+IChwcm9wcy53YXJuaW5nID8gZ2V0Qm9yZGVyQ3NzKCd3YXJuaW5nJykgOiBwcm9wcy5pc1ZhbGlkID8gJycgOiBnZXRCb3JkZXJDc3MoJ2Vycm9yJykpfVxuXG4gICY6aG92ZXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZEhvdmVyfTtcblxuICAgIC5sYXllcl9fZHJhZy1oYW5kbGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG5cbiAgICAubGF5ZXJfX3JlbW92ZS1sYXllciB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgSGVhZGVyTGFiZWxTZWN0aW9uID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgZmxleC1ncm93OiAxO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgLy8gbGVhdmUgc3BhY2UgZm9yIGV5ZSBhbmQgY29sbGFwc2UgaWNvblxuICBwYWRkaW5nLXJpZ2h0OiA1MHB4O1xuYDtcblxuY29uc3QgSGVhZGVyQWN0aW9uU2VjdGlvbiA9IHN0eWxlZC5kaXYud2l0aENvbmZpZyh7c2hvdWxkRm9yd2FyZFByb3B9KTxIZWFkZXJBY3Rpb25TZWN0aW9uUHJvcHM+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGhlaWdodDogMTAwJTtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIHJpZ2h0OiAxMHB4O1xuICBwb2ludGVyLWV2ZW50czogJHtwcm9wcyA9PiAocHJvcHMuaXNFZGl0aW5nTGFiZWwgPyAnbm9uZScgOiAnYWxsJyl9O1xuICAmOmhvdmVyIHtcbiAgICAubGF5ZXItcGFuZWxfX2hlYWRlcl9fYWN0aW9uc19faGlkZGVuIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZEhvdmVyfTtcbiAgICB9XG4gIH1cbmA7XG5cbnR5cGUgU3R5bGVkUGFuZWxIZWFkZXJIaWRkZW5BY3Rpb25zUHJvcHMgPSB7XG4gIGlzQ29uZmlnQWN0aXZlOiBMYXllclBhbmVsSGVhZGVyUHJvcHNbJ2lzQ29uZmlnQWN0aXZlJ107XG59O1xuXG4vLyBIaWRlbiBhY3Rpb25zIG9ubHkgc2hvdyB1cCBvbiBob3ZlclxuY29uc3QgU3R5bGVkUGFuZWxIZWFkZXJIaWRkZW5BY3Rpb25zID0gc3R5bGVkLmRpdi53aXRoQ29uZmlnKHtzaG91bGRGb3J3YXJkUHJvcH0pLmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnbGF5ZXItcGFuZWxfX2hlYWRlcl9fYWN0aW9uc19faGlkZGVuJ1xufSk8U3R5bGVkUGFuZWxIZWFkZXJIaWRkZW5BY3Rpb25zUHJvcHM+YFxuICBvcGFjaXR5OiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+XG4gICAgcHJvcHMuaXNDb25maWdBY3RpdmUgPyBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmRIb3ZlciA6IHByb3BzLnRoZW1lLnBhbmVsQmFja2dyb3VuZH07XG4gIHRyYW5zaXRpb246XG4gICAgb3BhY2l0eSAwLjRzIGVhc2UsXG4gICAgYmFja2dyb3VuZC1jb2xvciAwLjRzIGVhc2U7XG5cbiAgJjpob3ZlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkRHJhZ0hhbmRsZSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG9wYWNpdHk6IDA7XG4gIHotaW5kZXg6IDEwMDA7XG5cbiAgJjpob3ZlciB7XG4gICAgY3Vyc29yOiBtb3ZlO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgRHJhZ0hhbmRsZTogUmVhY3QuRkM8e1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIGxpc3RlbmVycz86IGFueTtcbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGU7XG59PiA9ICh7Y2xhc3NOYW1lLCBsaXN0ZW5lcnMsIGNoaWxkcmVufSkgPT4gKFxuICA8U3R5bGVkRHJhZ0hhbmRsZSBjbGFzc05hbWU9e2NsYXNzTmFtZX0gey4uLihsaXN0ZW5lcnMgPyBsaXN0ZW5lcnMgOiB7fSl9PlxuICAgIHtjaGlsZHJlbn1cbiAgPC9TdHlsZWREcmFnSGFuZGxlPlxuKTtcblxuY29uc3Qgbm9PcCA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbn07XG5cbmV4cG9ydCBjb25zdCBMYXllckxhYmVsRWRpdG9yOiBSZWFjdC5GQzxMYXllckxhYmVsRWRpdG9yUHJvcHM+ID0gKHtcbiAgbGF5ZXJJZCxcbiAgbGFiZWwsXG4gIG9uRWRpdCxcbiAgb25Gb2N1cyxcbiAgb25CbHVyXG59KSA9PiAoXG4gIDxJbmxpbmVJbnB1dFxuICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICBjbGFzc05hbWU9XCJsYXllcl9fdGl0bGVfX2VkaXRvclwiXG4gICAgZGF0YS10ZXN0aWQ9e2RhdGFUZXN0SWRzLmxheWVyVGl0bGVFZGl0b3J9XG4gICAgdmFsdWU9e2xhYmVsfVxuICAgIG9uQ2xpY2s9e25vT3B9XG4gICAgb25DaGFuZ2U9e29uRWRpdH1cbiAgICBvbkZvY3VzPXtvbkZvY3VzfVxuICAgIG9uQmx1cj17b25CbHVyfVxuICAgIGlkPXtgJHtsYXllcklkfTppbnB1dC1sYXllci1sYWJlbGB9XG4gIC8+XG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gTGF5ZXJUaXRsZVNlY3Rpb25GYWN0b3J5KCkge1xuICBjb25zdCBTdHlsZWRMYXllclRpdGxlU2VjdGlvbiA9IHN0eWxlZC5kaXZgXG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcbiAgICBmbGV4LWdyb3c6IDE7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIC5sYXllcl9fdGl0bGVfX2lubmVyIHtcbiAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICB9XG5cbiAgICAubGF5ZXJfX3RpdGxlX190eXBlIHtcbiAgICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvcn07XG4gICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICBsaW5lLWhlaWdodDogMTJweDtcbiAgICAgIGxldHRlci1zcGFjaW5nOiAwLjM3cHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICB9XG4gIGA7XG4gIGNvbnN0IExheWVyVGl0bGVTZWN0aW9uOiBSZWFjdC5GQzxMYXllclRpdGxlU2VjdGlvblByb3BzPiA9ICh7XG4gICAgbGF5ZXJUeXBlLFxuICAgIGxheWVySWQsXG4gICAgbGFiZWwsXG4gICAgb25VcGRhdGVMYXllckxhYmVsLFxuICAgIG9uRm9jdXMsXG4gICAgb25CbHVyXG4gIH0pID0+IChcbiAgICA8U3R5bGVkTGF5ZXJUaXRsZVNlY3Rpb24gY2xhc3NOYW1lPVwibGF5ZXJfX3RpdGxlXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8TGF5ZXJMYWJlbEVkaXRvclxuICAgICAgICAgIGxheWVySWQ9e2xheWVySWR9XG4gICAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICAgIG9uRWRpdD17b25VcGRhdGVMYXllckxhYmVsfVxuICAgICAgICAgIG9uRm9jdXM9e29uRm9jdXN9XG4gICAgICAgICAgb25CbHVyPXtvbkJsdXJ9XG4gICAgICAgIC8+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGF5ZXJfX3RpdGxlX190eXBlXCI+XG4gICAgICAgICAge2xheWVyVHlwZSAmJiA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17YGxheWVyLnR5cGUuJHtsYXllclR5cGUudG9Mb3dlckNhc2UoKX1gfSAvPn1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L1N0eWxlZExheWVyVGl0bGVTZWN0aW9uPlxuICApO1xuICByZXR1cm4gTGF5ZXJUaXRsZVNlY3Rpb247XG59XG5cbkxheWVyUGFuZWxIZWFkZXJBY3Rpb25TZWN0aW9uRmFjdG9yeS5kZXBzID0gW1BhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeV07XG5cbmV4cG9ydCBmdW5jdGlvbiBMYXllclBhbmVsSGVhZGVyQWN0aW9uU2VjdGlvbkZhY3RvcnkoXG4gIFBhbmVsSGVhZGVyQWN0aW9uOiBSZXR1cm5UeXBlPHR5cGVvZiBQYW5lbEhlYWRlckFjdGlvbkZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgTGF5ZXJQYW5lbEhlYWRlckFjdGlvblNlY3Rpb246IFJlYWN0LkZDPExheWVyUGFuZWxIZWFkZXJBY3Rpb25TZWN0aW9uUHJvcHM+ID0gKFxuICAgIHByb3BzOiBMYXllclBhbmVsSGVhZGVyQWN0aW9uU2VjdGlvblByb3BzXG4gICkgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGlzQ29uZmlnQWN0aXZlLFxuICAgICAgYWxsb3dEdXBsaWNhdGUsXG4gICAgICBpc1Zpc2libGUsXG4gICAgICBpc1ZhbGlkLFxuICAgICAgbGF5ZXJJZCxcbiAgICAgIG9uVG9nZ2xlVmlzaWJpbGl0eSxcbiAgICAgIG9uUmVzZXRJc1ZhbGlkLFxuICAgICAgb25Ub2dnbGVFbmFibGVDb25maWcsXG4gICAgICBvbkR1cGxpY2F0ZUxheWVyLFxuICAgICAgb25SZW1vdmVMYXllcixcbiAgICAgIG9uWm9vbVRvTGF5ZXIsXG4gICAgICBzaG93UmVtb3ZlTGF5ZXIgPSB0cnVlLFxuICAgICAgaXNFZGl0aW5nTGFiZWwsXG4gICAgICBhY3Rpb25JY29uczogY3VzdG9tQWN0aW9uSWNvbnNcbiAgICB9ID0gcHJvcHM7XG4gICAgLy8gTWVyZ2UgY3VzdG9tIGFjdGlvbkljb25zIHdpdGggZGVmYXVsdHMgdG8gYXZvaWQgYnJlYWtpbmcgY2hhbmdlc1xuICAgIGNvbnN0IGFjdGlvbkljb25zID0gey4uLmRlZmF1bHRBY3Rpb25JY29ucywgLi4uY3VzdG9tQWN0aW9uSWNvbnN9O1xuICAgIHJldHVybiAoXG4gICAgICA8SGVhZGVyQWN0aW9uU2VjdGlvbiBjbGFzc05hbWU9XCJsYXllci1wYW5lbF9faGVhZGVyX19hY3Rpb25zXCIgaXNFZGl0aW5nTGFiZWw9e2lzRWRpdGluZ0xhYmVsfT5cbiAgICAgICAgPFN0eWxlZFBhbmVsSGVhZGVySGlkZGVuQWN0aW9ucyBpc0NvbmZpZ0FjdGl2ZT17aXNDb25maWdBY3RpdmV9PlxuICAgICAgICAgIHtzaG93UmVtb3ZlTGF5ZXIgPyAoXG4gICAgICAgICAgICA8UGFuZWxIZWFkZXJBY3Rpb25cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibGF5ZXJfX3JlbW92ZS1sYXllclwiXG4gICAgICAgICAgICAgIHRlc3RJZD1cInJlbW92ZS1sYXllci1hY3Rpb25cIlxuICAgICAgICAgICAgICBpZD17bGF5ZXJJZH1cbiAgICAgICAgICAgICAgdG9vbHRpcD17J3Rvb2x0aXAucmVtb3ZlTGF5ZXInfVxuICAgICAgICAgICAgICBvbkNsaWNrPXtvblJlbW92ZUxheWVyfVxuICAgICAgICAgICAgICB0b29sdGlwVHlwZT1cImVycm9yXCJcbiAgICAgICAgICAgICAgSWNvbkNvbXBvbmVudD17YWN0aW9uSWNvbnMucmVtb3ZlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8UGFuZWxIZWFkZXJBY3Rpb25cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImxheWVyX19kdXBsaWNhdGVcIlxuICAgICAgICAgICAgaWQ9e2xheWVySWR9XG4gICAgICAgICAgICB0b29sdGlwPXsndG9vbHRpcC5kdXBsaWNhdGVMYXllcid9XG4gICAgICAgICAgICBvbkNsaWNrPXtvbkR1cGxpY2F0ZUxheWVyfVxuICAgICAgICAgICAgSWNvbkNvbXBvbmVudD17YWN0aW9uSWNvbnMuZHVwbGljYXRlfVxuICAgICAgICAgICAgZGlzYWJsZWQ9eyFhbGxvd0R1cGxpY2F0ZX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxQYW5lbEhlYWRlckFjdGlvblxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibGF5ZXJfX3pvb20tdG8tbGF5ZXJcIlxuICAgICAgICAgICAgaWQ9e2xheWVySWR9XG4gICAgICAgICAgICB0b29sdGlwPXsndG9vbHRpcC56b29tVG9MYXllcid9XG4gICAgICAgICAgICBvbkNsaWNrPXtvblpvb21Ub0xheWVyfVxuICAgICAgICAgICAgSWNvbkNvbXBvbmVudD17YWN0aW9uSWNvbnMuY3Jvc3NoYWlyc31cbiAgICAgICAgICAvPlxuICAgICAgICA8L1N0eWxlZFBhbmVsSGVhZGVySGlkZGVuQWN0aW9ucz5cbiAgICAgICAge2lzVmFsaWQgPyAoXG4gICAgICAgICAgPFBhbmVsSGVhZGVyQWN0aW9uXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJsYXllcl9fdmlzaWJpbGl0eS10b2dnbGVcIlxuICAgICAgICAgICAgaWQ9e2xheWVySWR9XG4gICAgICAgICAgICB0b29sdGlwPXtpc1Zpc2libGUgPyAndG9vbHRpcC5oaWRlTGF5ZXInIDogJ3Rvb2x0aXAuc2hvd0xheWVyJ31cbiAgICAgICAgICAgIG9uQ2xpY2s9e29uVG9nZ2xlVmlzaWJpbGl0eX1cbiAgICAgICAgICAgIEljb25Db21wb25lbnQ9e2lzVmlzaWJsZSA/IGFjdGlvbkljb25zLnZpc2libGUgOiBhY3Rpb25JY29ucy5oaWRkZW59XG4gICAgICAgICAgLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8UGFuZWxIZWFkZXJBY3Rpb25cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImxheWVyX19pcy12YWxpZC1yZWZyZXNoXCJcbiAgICAgICAgICAgIGlkPXtsYXllcklkfVxuICAgICAgICAgICAgdG9vbHRpcD17J3Rvb2x0aXAucmVzZXRBZnRlckVycm9yJ31cbiAgICAgICAgICAgIG9uQ2xpY2s9e29uUmVzZXRJc1ZhbGlkfVxuICAgICAgICAgICAgSWNvbkNvbXBvbmVudD17YWN0aW9uSWNvbnMucmVzZXRJc1ZhbGlkfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG5cbiAgICAgICAgPFBhbmVsSGVhZGVyQWN0aW9uXG4gICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc25hbWVzKCdsYXllcl9fZW5hYmxlLWNvbmZpZyAnLCB7XG4gICAgICAgICAgICAnaXMtb3Blbic6IGlzQ29uZmlnQWN0aXZlXG4gICAgICAgICAgfSl9XG4gICAgICAgICAgaWQ9e2xheWVySWR9XG4gICAgICAgICAgdG9vbHRpcD17J3Rvb2x0aXAubGF5ZXJTZXR0aW5ncyd9XG4gICAgICAgICAgb25DbGljaz17b25Ub2dnbGVFbmFibGVDb25maWd9XG4gICAgICAgICAgSWNvbkNvbXBvbmVudD17XG4gICAgICAgICAgICBpc0NvbmZpZ0FjdGl2ZVxuICAgICAgICAgICAgICA/IGFjdGlvbkljb25zLmRpc2FibGVDb25maWcgfHwgYWN0aW9uSWNvbnMuZW5hYmxlQ29uZmlnXG4gICAgICAgICAgICAgIDogYWN0aW9uSWNvbnMuZW5hYmxlQ29uZmlnXG4gICAgICAgICAgfVxuICAgICAgICAvPlxuICAgICAgPC9IZWFkZXJBY3Rpb25TZWN0aW9uPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIExheWVyUGFuZWxIZWFkZXJBY3Rpb25TZWN0aW9uO1xufVxuXG5jb25zdCBTdHlsZWRIZWFkZXJXYXJpbmcgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAtOXB4O1xuICB0b3A6IGNhbGMoNTAlIC0gOXB4KTtcbiAgY29sb3I6ICR7KHt0aGVtZX0pID0+IHRoZW1lLm5vdGlmaWNhdGlvbkNvbG9ycy53YXJuaW5nfTtcbmA7XG5cbmV4cG9ydCBjb25zdCBIZWFkZXJXYXJuaW5nID0gKHt3YXJuaW5nLCBpZH0pID0+IChcbiAgPFN0eWxlZEhlYWRlcldhcmluZz5cbiAgICA8V2FybmluZ1NpZ24gZGF0YS10aXAgZGF0YS1mb3I9e2BsYXllci0ke2lkfS13YXJuaW5nYH0gaGVpZ2h0PVwiMTZweFwiIC8+XG4gICAgPFRvb2x0aXAgaWQ9e2BsYXllci0ke2lkfS13YXJuaW5nYH0gdHlwZT1cIndhcm5pbmdcIiBlZmZlY3Q9XCJzb2xpZFwiIHRleHRDb2xvcj1cImJsYWNrXCI+XG4gICAgICB7d2FybmluZ31cbiAgICA8L1Rvb2x0aXA+XG4gIDwvU3R5bGVkSGVhZGVyV2FyaW5nPlxuKTtcblxuY29uc3QgUm90YXRlZEljb24gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgdHJhbnNmb3JtOiByb3RhdGUoMTgwZGVnKTtcbmA7XG5cbmNvbnN0IGRlZmF1bHRBY3Rpb25JY29ucyA9IHtcbiAgcmVtb3ZlOiBwcm9wcyA9PiA8VHJhc2ggey4uLnByb3BzfSBoZWlnaHQ9XCIxNnB4XCIgLz4sXG4gIHZpc2libGU6IHByb3BzID0+IDxFeWVTZWVuIHsuLi5wcm9wc30gaGVpZ2h0PVwiMTZweFwiIC8+LFxuICBoaWRkZW46IHByb3BzID0+IDxFeWVVbnNlZW4gey4uLnByb3BzfSBoZWlnaHQ9XCIxNnB4XCIgLz4sXG4gIGVuYWJsZUNvbmZpZzogcHJvcHMgPT4gPEFycm93RG93biB7Li4ucHJvcHN9IGhlaWdodD1cIjE4cHhcIiAvPixcbiAgZGlzYWJsZUNvbmZpZzogcHJvcHMgPT4gKFxuICAgIDxSb3RhdGVkSWNvbj5cbiAgICAgIDxBcnJvd0Rvd24gey4uLnByb3BzfSBoZWlnaHQ9XCIxOHB4XCIgLz5cbiAgICA8L1JvdGF0ZWRJY29uPlxuICApLFxuICBkdXBsaWNhdGU6IHByb3BzID0+IDxDb3B5IHsuLi5wcm9wc30gaGVpZ2h0PVwiMTRweFwiIC8+LFxuICByZXNldElzVmFsaWQ6IFJlc2V0LFxuICBjcm9zc2hhaXJzOiBwcm9wcyA9PiA8Wm9vbUluIHsuLi5wcm9wc30gaGVpZ2h0PVwiMTRweFwiIC8+XG59O1xuXG5MYXllclBhbmVsSGVhZGVyRmFjdG9yeS5kZXBzID0gW0xheWVyVGl0bGVTZWN0aW9uRmFjdG9yeSwgTGF5ZXJQYW5lbEhlYWRlckFjdGlvblNlY3Rpb25GYWN0b3J5XTtcblxuZnVuY3Rpb24gTGF5ZXJQYW5lbEhlYWRlckZhY3RvcnkoXG4gIExheWVyVGl0bGVTZWN0aW9uOiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllclRpdGxlU2VjdGlvbkZhY3Rvcnk+LFxuICBMYXllclBhbmVsSGVhZGVyQWN0aW9uU2VjdGlvbjogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJQYW5lbEhlYWRlckFjdGlvblNlY3Rpb25GYWN0b3J5PlxuKSB7XG4gIGNvbnN0IExheWVyUGFuZWxIZWFkZXI6IFJlYWN0LkZDPExheWVyUGFuZWxIZWFkZXJQcm9wcz4gPSBwcm9wcyA9PiB7XG4gICAgY29uc3Qge1xuICAgICAgaXNDb25maWdBY3RpdmUsXG4gICAgICBpc0RyYWdORHJvcEVuYWJsZWQgPSB0cnVlLFxuICAgICAgaXNWYWxpZCxcbiAgICAgIHdhcm5pbmcsXG4gICAgICBsYWJlbCxcbiAgICAgIGxheWVySWQsXG4gICAgICBsYXllclR5cGUsXG4gICAgICBsYWJlbFJDR0NvbG9yVmFsdWVzLFxuICAgICAgb25VcGRhdGVMYXllckxhYmVsLFxuICAgICAgb25Ub2dnbGVFbmFibGVDb25maWcsXG4gICAgICBsaXN0ZW5lcnNcbiAgICB9ID0gcHJvcHM7XG4gICAgY29uc3QgW2lzRWRpdGluZ0xhYmVsLCBzZXRJc0VkaXRpbmdMYWJlbF0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRMYXllclBhbmVsSGVhZGVyXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnbGF5ZXItcGFuZWxfX2hlYWRlcicsIHtcbiAgICAgICAgICAnc29ydC0taGFuZGxlJzogIWlzQ29uZmlnQWN0aXZlXG4gICAgICAgIH0pfVxuICAgICAgICBpc1ZhbGlkPXtpc1ZhbGlkfVxuICAgICAgICB3YXJuaW5nPXt3YXJuaW5nfVxuICAgICAgICAkYWN0aXZlPXtpc0NvbmZpZ0FjdGl2ZX1cbiAgICAgICAgbGFiZWxSQ0dDb2xvclZhbHVlcz17bGFiZWxSQ0dDb2xvclZhbHVlc31cbiAgICAgICAgb25DbGljaz17b25Ub2dnbGVFbmFibGVDb25maWd9XG4gICAgICA+XG4gICAgICAgIHt3YXJuaW5nID8gPEhlYWRlcldhcm5pbmcgd2FybmluZz17d2FybmluZ30gaWQ9e2xheWVySWR9IC8+IDogbnVsbH1cbiAgICAgICAgPEhlYWRlckxhYmVsU2VjdGlvbiBjbGFzc05hbWU9XCJsYXllci1wYW5lbF9faGVhZGVyX19jb250ZW50XCI+XG4gICAgICAgICAge2lzRHJhZ05Ecm9wRW5hYmxlZCA/IChcbiAgICAgICAgICAgIDxEcmFnSGFuZGxlIGNsYXNzTmFtZT1cImxheWVyX19kcmFnLWhhbmRsZVwiIGxpc3RlbmVycz17bGlzdGVuZXJzfT5cbiAgICAgICAgICAgICAgPFZlcnREb3RzIGhlaWdodD1cIjIwcHhcIiAvPlxuICAgICAgICAgICAgPC9EcmFnSGFuZGxlPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxheWVyX19kcmFnLWhhbmRsZV9fcGxhY2Vob2xkZXJcIiAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAgPExheWVyVGl0bGVTZWN0aW9uXG4gICAgICAgICAgICBsYXllcklkPXtsYXllcklkfVxuICAgICAgICAgICAgbGFiZWw9e2xhYmVsfVxuICAgICAgICAgICAgb25VcGRhdGVMYXllckxhYmVsPXtvblVwZGF0ZUxheWVyTGFiZWx9XG4gICAgICAgICAgICBsYXllclR5cGU9e2xheWVyVHlwZX1cbiAgICAgICAgICAgIG9uRm9jdXM9eygpID0+IHtcbiAgICAgICAgICAgICAgc2V0SXNFZGl0aW5nTGFiZWwodHJ1ZSk7XG4gICAgICAgICAgICB9fVxuICAgICAgICAgICAgb25CbHVyPXsoKSA9PiB7XG4gICAgICAgICAgICAgIHNldElzRWRpdGluZ0xhYmVsKGZhbHNlKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9IZWFkZXJMYWJlbFNlY3Rpb24+XG4gICAgICAgIDxMYXllclBhbmVsSGVhZGVyQWN0aW9uU2VjdGlvbiB7Li4ucHJvcHN9IGlzRWRpdGluZ0xhYmVsPXtpc0VkaXRpbmdMYWJlbH0gLz5cbiAgICAgIDwvU3R5bGVkTGF5ZXJQYW5lbEhlYWRlcj5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBMYXllclBhbmVsSGVhZGVyO1xufVxuXG5leHBvcnQgZGVmYXVsdCBMYXllclBhbmVsSGVhZGVyRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBT0EsSUFBQUMsV0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsaUJBQUEsR0FBQUosdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLGtCQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7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
|