@kepler.gl/components 3.3.0-alpha.3 → 3.3.0-alpha.4
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-overlay.d.ts +1 -0
- package/dist/annotations/annotation-overlay.js +7 -5
- package/dist/annotations/annotation-panel.js +16 -17
- package/dist/annotations/annotation-text.js +2 -3
- package/dist/annotations/annotation-utils.d.ts +14 -0
- package/dist/annotations/annotation-utils.js +44 -3
- package/dist/annotations/lexical-editor/floating-link-editor.js +9 -10
- package/dist/annotations/lexical-editor/lexical-rich-text-editor.js +2 -3
- package/dist/annotations/lexical-editor/lexical-toolbar.js +6 -7
- package/dist/annotations/lexical-editor/use-lexical-toolbar.js +15 -15
- package/dist/bottom-widget.js +3 -4
- package/dist/common/action-panel.js +2 -3
- package/dist/common/animation-control/animation-speed-slider.js +2 -3
- package/dist/common/animation-control/animation-window-control.js +2 -3
- package/dist/common/animation-control/floating-time-display.js +2 -3
- package/dist/common/animation-control/playback-controls.js +2 -3
- package/dist/common/animation-control/window-action-control.js +2 -3
- package/dist/common/checkbox.js +2 -3
- package/dist/common/color-legend.js +2 -3
- package/dist/common/column-stats-chart.js +2 -3
- package/dist/common/data-table/display-format.js +2 -3
- package/dist/common/data-table/grid.js +2 -3
- package/dist/common/data-table/header-cell.js +2 -3
- package/dist/common/data-table/index.js +2 -3
- package/dist/common/data-table/option-dropdown.js +2 -3
- package/dist/common/field-selector.js +2 -3
- package/dist/common/file-uploader/file-drop.js +2 -3
- package/dist/common/file-uploader/file-upload-progress.js +2 -3
- package/dist/common/file-uploader/file-upload.js +8 -9
- package/dist/common/file-uploader/upload-button.js +2 -3
- package/dist/common/histogram-plot.js +2 -3
- package/dist/common/icons/3d-models/airplane.js +2 -3
- package/dist/common/icons/3d-models/bicycle.js +2 -3
- package/dist/common/icons/3d-models/boeing.js +2 -3
- package/dist/common/icons/3d-models/car.js +2 -3
- package/dist/common/icons/3d-models/cargoship.js +2 -3
- package/dist/common/icons/3d-models/evtol.js +2 -3
- package/dist/common/icons/3d-models/glider.js +2 -3
- package/dist/common/icons/3d-models/helicopter.js +2 -3
- package/dist/common/icons/3d-models/scooter.js +2 -3
- package/dist/common/icons/3d-models/semitruck.js +2 -3
- package/dist/common/icons/3d-models/truck.js +2 -3
- package/dist/common/icons/add.js +2 -3
- package/dist/common/icons/annotation-text.js +2 -3
- package/dist/common/icons/arrow-down-alt.js +2 -3
- package/dist/common/icons/arrow-down-full.js +2 -3
- package/dist/common/icons/arrow-down-small.js +2 -3
- package/dist/common/icons/arrow-down-solid.js +2 -3
- package/dist/common/icons/arrow-down.js +2 -3
- package/dist/common/icons/arrow-left.js +2 -3
- package/dist/common/icons/arrow-right.js +2 -3
- package/dist/common/icons/arrow-up-alt.js +2 -3
- package/dist/common/icons/arrow-up-solid.js +2 -3
- package/dist/common/icons/arrow-up.js +2 -3
- package/dist/common/icons/base-map.js +2 -3
- package/dist/common/icons/base.js +2 -3
- package/dist/common/icons/bug.js +2 -3
- package/dist/common/icons/calendar.js +2 -3
- package/dist/common/icons/cancel.js +2 -3
- package/dist/common/icons/checkmark.js +2 -3
- package/dist/common/icons/clipboard.js +2 -3
- package/dist/common/icons/clock.js +2 -3
- package/dist/common/icons/close.js +2 -3
- package/dist/common/icons/cloud.js +2 -3
- package/dist/common/icons/code-alt.js +2 -3
- package/dist/common/icons/copy.js +2 -3
- package/dist/common/icons/crosshairs.js +2 -3
- package/dist/common/icons/cube-3d.js +2 -3
- package/dist/common/icons/cursor-click.js +2 -3
- package/dist/common/icons/cursor-point.js +2 -3
- package/dist/common/icons/data-table.js +2 -3
- package/dist/common/icons/db.js +2 -3
- package/dist/common/icons/delete.js +2 -3
- package/dist/common/icons/docs.js +2 -3
- package/dist/common/icons/docs2.js +2 -3
- package/dist/common/icons/drag-n-drop.js +2 -3
- package/dist/common/icons/draggable-dots.js +2 -3
- package/dist/common/icons/draw-polygon.js +2 -3
- package/dist/common/icons/edit.js +2 -3
- package/dist/common/icons/effects/brightness-contrast.js +2 -3
- package/dist/common/icons/effects/color-halftone.js +2 -3
- package/dist/common/icons/effects/distance-fog.js +2 -3
- package/dist/common/icons/effects/dot-screen.js +2 -3
- package/dist/common/icons/effects/edge-work.js +2 -3
- package/dist/common/icons/effects/hexagonal-pixelate.js +2 -3
- package/dist/common/icons/effects/hue-saturation.js +2 -3
- package/dist/common/icons/effects/ink.js +2 -3
- package/dist/common/icons/effects/light-and-shadow.js +2 -3
- package/dist/common/icons/effects/magic-wand.js +2 -3
- package/dist/common/icons/effects/magnify.js +2 -3
- package/dist/common/icons/effects/noise.js +2 -3
- package/dist/common/icons/effects/sepia.js +2 -3
- package/dist/common/icons/effects/surface-fog.js +2 -3
- package/dist/common/icons/effects/tilt-shift.js +2 -3
- package/dist/common/icons/effects/triangle-blur.js +2 -3
- package/dist/common/icons/effects/vibrance.js +2 -3
- package/dist/common/icons/effects/vignette.js +2 -3
- package/dist/common/icons/effects/zoom-blur.js +2 -3
- package/dist/common/icons/email.js +2 -3
- package/dist/common/icons/expand.js +2 -3
- package/dist/common/icons/eye-seen.js +2 -3
- package/dist/common/icons/eye-unseen.js +2 -3
- package/dist/common/icons/file.js +2 -3
- package/dist/common/icons/filter-funnel.js +2 -3
- package/dist/common/icons/folder.js +2 -3
- package/dist/common/icons/gear.js +2 -3
- package/dist/common/icons/globe.js +2 -3
- package/dist/common/icons/hash.js +2 -3
- package/dist/common/icons/help.js +2 -3
- package/dist/common/icons/horizontal-resize-handle.js +2 -3
- package/dist/common/icons/info.js +2 -3
- package/dist/common/icons/layers.js +2 -3
- package/dist/common/icons/left-arrow.js +2 -3
- package/dist/common/icons/legend.js +2 -3
- package/dist/common/icons/line-chart.js +2 -3
- package/dist/common/icons/location-marker.js +2 -3
- package/dist/common/icons/login.js +2 -3
- package/dist/common/icons/logout.js +2 -3
- package/dist/common/icons/map-icon.js +2 -3
- package/dist/common/icons/map-pin.js +2 -3
- package/dist/common/icons/messages.js +2 -3
- package/dist/common/icons/minus.js +2 -3
- package/dist/common/icons/moon.js +2 -3
- package/dist/common/icons/pause.js +2 -3
- package/dist/common/icons/pin.js +2 -3
- package/dist/common/icons/play.js +2 -3
- package/dist/common/icons/pointer-click.js +2 -3
- package/dist/common/icons/polygon.js +2 -3
- package/dist/common/icons/rectangle.js +2 -3
- package/dist/common/icons/reduce.js +2 -3
- package/dist/common/icons/reset.js +2 -3
- package/dist/common/icons/save.js +2 -3
- package/dist/common/icons/save2.js +2 -3
- package/dist/common/icons/search.js +2 -3
- package/dist/common/icons/settings.js +2 -3
- package/dist/common/icons/share.js +2 -3
- package/dist/common/icons/speed.js +2 -3
- package/dist/common/icons/split.js +2 -3
- package/dist/common/icons/square-select.js +2 -3
- package/dist/common/icons/sun.js +2 -3
- package/dist/common/icons/sunrise.js +2 -3
- package/dist/common/icons/sunset.js +2 -3
- package/dist/common/icons/timeline-marker.js +2 -3
- package/dist/common/icons/trash.js +2 -3
- package/dist/common/icons/vert-dots.js +2 -3
- package/dist/common/icons/vert-three-dots.js +2 -3
- package/dist/common/icons/warning-sign.js +2 -3
- package/dist/common/icons/warning.js +2 -3
- package/dist/common/icons/zoom-in.js +2 -3
- package/dist/common/icons/zoom-out.js +2 -3
- package/dist/common/index.js +2 -3
- package/dist/common/item-selector/chickleted-input.js +2 -3
- package/dist/common/item-selector/dropdown-list.js +2 -3
- package/dist/common/item-selector/item-selector.js +2 -3
- package/dist/common/item-selector/typeahead.js +2 -3
- package/dist/common/layout-splitter.js +2 -3
- package/dist/common/line-chart.js +2 -3
- package/dist/common/loading-spinner.js +2 -3
- package/dist/common/modal.js +6 -7
- package/dist/common/portaled.js +2 -3
- package/dist/common/radius-legend.js +2 -3
- package/dist/common/range-brush.js +2 -3
- package/dist/common/range-plot.js +2 -3
- package/dist/common/range-slider-timeline-panel.js +2 -3
- package/dist/common/range-slider-timeline.js +2 -3
- package/dist/common/range-slider.js +2 -3
- package/dist/common/slider/slider-bar-handle.js +2 -3
- package/dist/common/slider/slider-handle.js +2 -3
- package/dist/common/slider/slider.js +2 -3
- package/dist/common/styled-components.d.ts +84 -82
- package/dist/common/styled-components.js +48 -44
- package/dist/common/time-range-slider.js +2 -3
- package/dist/common/time-slider-marker.js +2 -3
- package/dist/common/timeline-slider.js +2 -3
- package/dist/common/tippy-tooltip.js +2 -3
- package/dist/connect/with-local-selector.js +2 -3
- package/dist/container.js +4 -5
- package/dist/context.js +2 -3
- package/dist/dnd-context.js +2 -3
- package/dist/editor/editor.js +3 -4
- package/dist/editor/feature-action-panel.js +2 -3
- package/dist/effects/compact-color-picker.js +2 -3
- package/dist/effects/effect-configurator.js +17 -18
- package/dist/effects/effect-list.js +2 -3
- package/dist/effects/effect-manager.js +2 -3
- package/dist/effects/effect-panel-header.js +2 -3
- package/dist/effects/effect-panel.js +2 -3
- package/dist/effects/effect-time-configurator.js +18 -7
- package/dist/effects/effect-time-selector.js +2 -3
- package/dist/effects/effect-time-slider.js +2 -3
- package/dist/effects/effect-type-dropdown-list.js +2 -3
- package/dist/effects/effect-type-list-item.js +2 -3
- package/dist/effects/effect-type-selector.js +2 -3
- package/dist/effects/surface-fog-section.js +7 -8
- package/dist/effects/timezone-selector.js +2 -3
- package/dist/filter-animation-controller.js +2 -3
- package/dist/filters/filter-panels/filter-panel-with-field-select.js +2 -3
- package/dist/filters/filter-panels/filter-synced-dataset-panel.js +4 -5
- package/dist/filters/filter-panels/multi-select-filter-panel.js +2 -3
- package/dist/filters/filter-panels/new-filter-panel.js +2 -3
- package/dist/filters/filter-panels/polygon-filter-panel.js +2 -3
- package/dist/filters/filter-panels/range-filter-panel.js +2 -3
- package/dist/filters/filter-panels/single-select-filter-panel.js +2 -3
- package/dist/filters/filter-panels/time-range-filter-panel.js +2 -3
- package/dist/filters/polygon-filter.js +3 -4
- package/dist/filters/time-widget-settings.js +9 -10
- package/dist/filters/time-widget-top.js +2 -3
- package/dist/filters/time-widget.js +2 -3
- package/dist/geocoder/geocoder.js +6 -7
- package/dist/geocoder-panel.js +2 -3
- package/dist/hooks/use-cloud-list-provider.js +2 -3
- package/dist/hooks/use-fetch-raster-tile-metadata.js +2 -2
- package/dist/hooks/use-fetch-vector-tile-metadata.js +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +23 -3
- package/dist/kepler-gl.d.ts +1 -0
- package/dist/kepler-gl.js +3 -3
- package/dist/layer-animation-controller.js +2 -3
- package/dist/loading-indicator.js +2 -3
- package/dist/map/annotations/annotation-control.js +2 -3
- package/dist/map/attribution.d.ts +52 -0
- package/dist/map/attribution.js +389 -0
- package/dist/map/effects/effect-control.js +2 -3
- package/dist/map/layer-hover-info.js +2 -3
- package/dist/map/lazy-tippy.js +2 -3
- package/dist/map/locale-panel.d.ts +1 -1
- package/dist/map/locale-panel.js +2 -3
- package/dist/map/map-control-panel.js +2 -3
- package/dist/map/map-control.d.ts +3 -0
- package/dist/map/map-control.js +1 -1
- package/dist/map/map-draw-panel.d.ts +1 -1
- package/dist/map/map-draw-panel.js +2 -3
- package/dist/map/map-legend-panel.d.ts +1 -1
- package/dist/map/map-legend-panel.js +9 -14
- package/dist/map/map-legend.js +2 -3
- package/dist/map/map-navigation-control.js +20 -4
- package/dist/map/map-popover.js +2 -3
- package/dist/map/split-map-button.d.ts +4 -2
- package/dist/map/split-map-button.js +63 -46
- package/dist/map/toggle-3d-button.d.ts +8 -2
- package/dist/map/toggle-3d-button.js +79 -17
- package/dist/map-container.d.ts +3 -14
- package/dist/map-container.js +211 -178
- package/dist/map-view-state-context.d.ts +2 -0
- package/dist/map-view-state-context.js +2 -3
- package/dist/maps-layout.js +2 -3
- package/dist/modal-container.js +2 -3
- package/dist/modals/add-map-style-modal.js +2 -3
- package/dist/modals/cloud-components/cloud-header.js +2 -3
- package/dist/modals/cloud-components/cloud-item.spec.js +8 -8
- package/dist/modals/cloud-components/cloud-maps.spec.js +7 -7
- package/dist/modals/cloud-tile.js +5 -6
- package/dist/modals/data-table-modal.js +2 -3
- package/dist/modals/error-display.js +2 -3
- package/dist/modals/export-data-modal.js +2 -3
- package/dist/modals/export-image-modal.js +2 -3
- package/dist/modals/export-map-modal/export-json-map.js +2 -3
- package/dist/modals/export-video-modal.js +52 -10
- package/dist/modals/export-video-modal.spec.js +83 -83
- package/dist/modals/globe-export-video-container.d.ts +117 -0
- package/dist/modals/globe-export-video-container.js +626 -0
- package/dist/modals/globe-export-video-preview.d.ts +41 -0
- package/dist/modals/globe-export-video-preview.js +152 -0
- package/dist/modals/hubble-utils.d.ts +13 -1
- package/dist/modals/hubble-utils.js +164 -36
- package/dist/modals/image-modal-container.js +2 -3
- package/dist/modals/load-data-modal.js +2 -3
- package/dist/modals/load-storage-map.js +2 -3
- package/dist/modals/load-storage-map.spec.js +10 -10
- package/dist/modals/modal-tabs.js +2 -3
- package/dist/modals/overwrite-map-modal.js +2 -3
- package/dist/modals/save-map-modal.js +2 -3
- package/dist/modals/save-map-modal.spec.js +16 -16
- package/dist/modals/share-map-modal.js +2 -3
- package/dist/modals/share-map-modal.spec.js +9 -9
- package/dist/modals/swipe-composite-utils.d.ts +1 -1
- package/dist/modals/swipe-composite-utils.js +11 -1
- package/dist/modals/swipe-export-settings.d.ts +1 -0
- package/dist/modals/swipe-export-settings.js +8 -6
- package/dist/modals/swipe-export-video-container.d.ts +6 -0
- package/dist/modals/swipe-export-video-container.js +27 -4
- package/dist/modals/swipe-export-video-preview.d.ts +2 -0
- package/dist/modals/swipe-export-video-preview.js +80 -18
- package/dist/modals/tilesets-modals/load-data-footer.js +2 -3
- package/dist/modals/tilesets-modals/load-tileset.js +2 -3
- package/dist/modals/tilesets-modals/tileset-bitmap-form.js +18 -19
- package/dist/modals/tilesets-modals/tileset-raster-form.js +5 -6
- package/dist/modals/tilesets-modals/tileset-tile3d-form.js +13 -14
- package/dist/modals/tilesets-modals/tileset-vector-form.js +7 -8
- package/dist/modals/tilesets-modals/tileset-wms-form.js +11 -12
- package/dist/notification-panel/notification-item.js +2 -3
- package/dist/plot-container.js +2 -3
- package/dist/side-panel/add-by-dataset-button.js +2 -3
- package/dist/side-panel/common/dataset-title.js +2 -3
- package/dist/side-panel/common/source-data-selector-content.js +2 -3
- package/dist/side-panel/common/source-selector.js +2 -3
- package/dist/side-panel/filter-manager.js +2 -3
- package/dist/side-panel/filter-panel/filter-panel-header.js +2 -3
- package/dist/side-panel/filter-panel/filter-panel.js +2 -3
- package/dist/side-panel/interaction-panel/interaction-panel.js +2 -3
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +2 -3
- package/dist/side-panel/interaction-panel/tooltip-config.js +2 -3
- package/dist/side-panel/layer-manager.d.ts +2 -1
- package/dist/side-panel/layer-manager.js +6 -4
- package/dist/side-panel/layer-panel/channel-by-value-selector.js +2 -3
- package/dist/side-panel/layer-panel/color-breaks-panel.js +2 -3
- package/dist/side-panel/layer-panel/color-palette.js +2 -3
- package/dist/side-panel/layer-panel/color-range-selector.js +2 -3
- package/dist/side-panel/layer-panel/color-scale-selector.js +2 -3
- package/dist/side-panel/layer-panel/color-selector.js +2 -3
- package/dist/side-panel/layer-panel/column-selector.js +2 -3
- package/dist/side-panel/layer-panel/custom-palette.js +41 -42
- package/dist/side-panel/layer-panel/custom-picker.js +2 -3
- package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +2 -1
- package/dist/side-panel/layer-panel/dataset-layer-group.js +6 -5
- package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +2 -1
- package/dist/side-panel/layer-panel/dataset-layer-section.js +5 -4
- package/dist/side-panel/layer-panel/dimension-scale-selector.js +2 -3
- package/dist/side-panel/layer-panel/layer-color-selector.js +2 -3
- package/dist/side-panel/layer-panel/layer-column-config.js +2 -3
- package/dist/side-panel/layer-panel/layer-column-mode-config.js +2 -3
- package/dist/side-panel/layer-panel/layer-config-group.js +2 -3
- package/dist/side-panel/layer-panel/layer-configurator.js +51 -52
- package/dist/side-panel/layer-panel/layer-group-header.js +2 -3
- package/dist/side-panel/layer-panel/layer-list.d.ts +2 -1
- package/dist/side-panel/layer-panel/layer-list.js +8 -7
- package/dist/side-panel/layer-panel/layer-panel-header.d.ts +1 -1
- package/dist/side-panel/layer-panel/layer-panel-header.js +3 -4
- package/dist/side-panel/layer-panel/layer-panel.d.ts +2 -1
- package/dist/side-panel/layer-panel/layer-panel.js +15 -6
- package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +2 -3
- package/dist/side-panel/layer-panel/layer-type-list-item.js +2 -3
- package/dist/side-panel/layer-panel/layer-type-selector.js +2 -3
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +2 -3
- package/dist/side-panel/layer-panel/scenegraph-model-selector.js +2 -3
- package/dist/side-panel/layer-panel/single-color-palette.js +2 -3
- package/dist/side-panel/layer-panel/text-label-panel.js +2 -3
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +2 -3
- package/dist/side-panel/layer-panel/vis-config-slider.js +2 -3
- package/dist/side-panel/map-manager.d.ts +9 -3
- package/dist/side-panel/map-manager.js +13 -7
- package/dist/side-panel/map-style-panel/globe-config-panel.d.ts +15 -0
- package/dist/side-panel/map-style-panel/globe-config-panel.js +269 -0
- package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +2 -3
- package/dist/side-panel/map-style-panel/map-layer-group-item.js +2 -3
- package/dist/side-panel/panel-header.js +9 -10
- package/dist/side-panel/panel-toggle.js +2 -3
- package/dist/side-panel/panel-view-list-toggle.js +2 -3
- package/dist/side-panel/side-bar.js +2 -3
- package/dist/side-panel.js +4 -3
- package/dist/types.d.ts +2 -1
- package/dist/types.js +1 -1
- package/package.json +20 -19
|
@@ -47,6 +47,6 @@ export type MapLegendPanelProps = {
|
|
|
47
47
|
type MapLegendPanelComponentType = React.FC<MapLegendPanelProps>;
|
|
48
48
|
declare function MapLegendPanelFactory(MapControlTooltip: ReturnType<typeof MapControlTooltipFactory>, MapControlPanel: ReturnType<typeof MapControlPanelFactory>, MapLegend: ReturnType<typeof MapLegendFactory>): MapLegendPanelComponentType;
|
|
49
49
|
declare namespace MapLegendPanelFactory {
|
|
50
|
-
var deps: (typeof
|
|
50
|
+
var deps: (typeof MapControlTooltipFactory | typeof MapLegendFactory | typeof MapControlPanelFactory)[];
|
|
51
51
|
}
|
|
52
52
|
export default MapLegendPanelFactory;
|
|
@@ -16,7 +16,6 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
|
16
16
|
var _core = require("@dnd-kit/core");
|
|
17
17
|
var _utilities = require("@dnd-kit/utilities");
|
|
18
18
|
var _react2 = require("@floating-ui/react");
|
|
19
|
-
var _constants = require("@kepler.gl/constants");
|
|
20
19
|
var _styles = require("@kepler.gl/styles");
|
|
21
20
|
var _utils = require("@kepler.gl/utils");
|
|
22
21
|
var _icons = require("../common/icons");
|
|
@@ -29,8 +28,7 @@ var _mapLegend = _interopRequireDefault(require("./map-legend"));
|
|
|
29
28
|
var _modifiers = require("@dnd-kit/modifiers");
|
|
30
29
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4; // SPDX-License-Identifier: MIT
|
|
31
30
|
// Copyright contributors to the kepler.gl project
|
|
32
|
-
function
|
|
33
|
-
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; }
|
|
31
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
34
32
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
35
33
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
36
34
|
var DRAG_RESIZE_ID = 'map-legend-resize';
|
|
@@ -164,7 +162,7 @@ var ImageExportLegend = (0, _styledComponents.withTheme)(function (_ref2) {
|
|
|
164
162
|
var portalRoot = (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 || (_containerRef$current = _containerRef$current.closest('.export-map-instance')) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.querySelector('#default-deckgl-overlay-wrapper');
|
|
165
163
|
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
166
164
|
ref: containerRef
|
|
167
|
-
}, portalRoot ? /*#__PURE__*/(0, _reactDom.createPortal)(
|
|
165
|
+
}, portalRoot ? /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/_react["default"].createElement("div", {
|
|
168
166
|
className: "fixed-legend",
|
|
169
167
|
ref: legendContentRef,
|
|
170
168
|
style: _objectSpread(_objectSpread({}, positionStyles), {}, {
|
|
@@ -206,11 +204,9 @@ var MapLegendPanelComponent = function MapLegendPanelComponent(_ref3) {
|
|
|
206
204
|
isSplit = _ref3.isSplit,
|
|
207
205
|
splitMaps = _ref3.splitMaps,
|
|
208
206
|
onToggleLayerForMap = _ref3.onToggleLayerForMap,
|
|
209
|
-
mapIndex = _ref3.mapIndex,
|
|
210
207
|
MapControlTooltip = _ref3.MapControlTooltip,
|
|
211
208
|
MapControlPanel = _ref3.MapControlPanel,
|
|
212
209
|
MapLegend = _ref3.MapLegend;
|
|
213
|
-
var isSwipeMode = (mapState === null || mapState === void 0 ? void 0 : mapState.mapSplitMode) === _constants.MapSplitMode.SWIPE_COMPARE;
|
|
214
210
|
var isSidePanelShown = Boolean(activeSidePanel);
|
|
215
211
|
var settings = mapControls === null || mapControls === void 0 || (_mapControls$mapLegen2 = mapControls.mapLegend) === null || _mapControls$mapLegen2 === void 0 ? void 0 : _mapControls$mapLegen2.settings;
|
|
216
212
|
var mapLegend = (mapControls === null || mapControls === void 0 ? void 0 : mapControls.mapLegend) || {};
|
|
@@ -230,12 +226,11 @@ var MapLegendPanelComponent = function MapLegendPanelComponent(_ref3) {
|
|
|
230
226
|
e.preventDefault();
|
|
231
227
|
onToggleMapControl('mapLegend');
|
|
232
228
|
}, [onToggleMapControl]);
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
}
|
|
229
|
+
|
|
230
|
+
// In split view the map controls (and therefore this legend) are only
|
|
231
|
+
// rendered once, on the right-side / primary map. That gating happens in
|
|
232
|
+
// MapContainer, so no per-index suppression is needed here anymore.
|
|
233
|
+
|
|
239
234
|
if (!mapLegend.show) {
|
|
240
235
|
return null;
|
|
241
236
|
}
|
|
@@ -266,7 +261,7 @@ var MapLegendPanelComponent = function MapLegendPanelComponent(_ref3) {
|
|
|
266
261
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, active ? (0, _utils.hasPortableWidth)(_styles.breakPointValues) ? legendPanel : isExport ? /*#__PURE__*/_react["default"].createElement(ImageExportLegend, {
|
|
267
262
|
isSidePanelShown: isSidePanelShown,
|
|
268
263
|
settings: settings
|
|
269
|
-
}, legendPanel) : (
|
|
264
|
+
}, legendPanel) : (/*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/_react["default"].createElement(DraggableLegend, {
|
|
270
265
|
isSidePanelShown: isSidePanelShown,
|
|
271
266
|
mapControls: mapControls,
|
|
272
267
|
setMapControlSettings: setMapControlSettings,
|
|
@@ -291,4 +286,4 @@ function MapLegendPanelFactory(MapControlTooltip, MapControlPanel, MapLegend) {
|
|
|
291
286
|
};
|
|
292
287
|
}
|
|
293
288
|
var _default = exports["default"] = MapLegendPanelFactory;
|
|
294
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0RG9tIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9jb3JlIiwiX3V0aWxpdGllcyIsIl9yZWFjdDIiLCJfY29uc3RhbnRzIiwiX3N0eWxlcyIsIl91dGlscyIsIl9pY29ucyIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9jb250ZXh0IiwiX3VzZUxlZ2VuZFBvc2l0aW9uMyIsIl9tYXBDb250cm9sUGFuZWwiLCJfbWFwQ29udHJvbFRvb2x0aXAiLCJfbWFwTGVnZW5kIiwiX21vZGlmaWVycyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIkRSQUdfUkVTSVpFX0lEIiwiRFJBR19NT1ZFX0lEIiwiU3R5bGVkRHJhZ2dhYmxlTGVnZW5kQ29udGVudCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsImFjdGl2ZUNvbG9yIiwiJG1heENvbnRlbnRIZWlnaHQiLCJjb25jYXQiLCIkY29udGVudEhlaWdodCIsIlN0eWxlZE1vdmVIYW5kbGUiLCJTdHlsZWRSZXNpemVIYW5kbGUiLCJTdHlsZWRGaXhlZExlZ2VuZENvbnRlbnQiLCJEcmFnZ2FibGVMZWdlbmRDb250ZW50IiwiZm9yd2FyZFJlZiIsInJlZiIsInBvc2l0aW9uU3R5bGVzIiwiY2hpbGRyZW4iLCJjb250ZW50SGVpZ2h0IiwibWF4Q29udGVudEhlaWdodCIsImRyYWdnYWJsZU1vdmUiLCJ1c2VEcmFnZ2FibGUiLCJpZCIsImRyYWdnYWJsZVJlc2l6ZSIsInJlZnMiLCJ1c2VNZXJnZVJlZnMiLCJzZXROb2RlUmVmIiwiaXNEcmFnZ2luZyIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJjbGFzc05hbWUiLCJjbGFzc25hbWVzIiwic3R5bGUiLCJ0cmFuc2Zvcm0iLCJDU1MiLCJUcmFuc2xhdGUiLCJ0b1N0cmluZyIsImF0dHJpYnV0ZXMiLCJsaXN0ZW5lcnMiLCJEcmFnZ2FibGVEb3RzIiwiaGVpZ2h0IiwiSG9yaXpvbnRhbFJlc2l6ZUhhbmRsZSIsIkRyYWdnYWJsZUxlZ2VuZCIsIndpdGhUaGVtZSIsIl9yZWYiLCJfbWFwQ29udHJvbHMkbWFwTGVnZW4iLCJpc1NpZGVQYW5lbFNob3duIiwibWFwQ29udHJvbHMiLCJzZXRNYXBDb250cm9sU2V0dGluZ3MiLCJtYXBTdGF0ZSIsInNldHRpbmdzIiwibWFwTGVnZW5kIiwibGVnZW5kQ29udGVudFJlZiIsInVzZVJlZiIsIm9uQ2hhbmdlU2V0dGluZ3MiLCJ1c2VDYWxsYmFjayIsIm5ld1NldHRpbmdzIiwiX3VzZUxlZ2VuZFBvc2l0aW9uIiwidXNlTGVnZW5kUG9zaXRpb24iLCJtYXBIZWlnaHQiLCJtYXBXaWR0aCIsIndpZHRoIiwidXBkYXRlUG9zaXRpb24iLCJzdGFydFJlc2l6ZSIsInJlc2l6ZSIsImhhbmRsZURyYWdTdGFydCIsImV2ZW50IiwiYWN0aXZlIiwiaGFuZGxlRHJhZ0VuZCIsImhhbmRsZURyYWdNb3ZlIiwiZGVsdGEiLCJ5IiwiRG5kQ29udGV4dCIsIm9uRHJhZ1N0YXJ0Iiwib25EcmFnTW92ZSIsIm9uRHJhZ0VuZCIsIm1vZGlmaWVycyIsInJlc3RyaWN0VG9XaW5kb3dFZGdlcyIsIkltYWdlRXhwb3J0TGVnZW5kIiwiX3JlZjIiLCJfY29udGFpbmVyUmVmJGN1cnJlbnQiLCJjb250YWluZXJSZWYiLCJfdXNlTGVnZW5kUG9zaXRpb24yIiwicG9ydGFsUm9vdCIsImN1cnJlbnQiLCJjbG9zZXN0IiwicXVlcnlTZWxlY3RvciIsImNyZWF0ZVBvcnRhbCIsInBvc2l0aW9uIiwiTWFwTGVnZW5kUGFuZWxGYWN0b3J5IiwiZGVwcyIsIk1hcENvbnRyb2xUb29sdGlwRmFjdG9yeSIsIk1hcENvbnRyb2xQYW5lbEZhY3RvcnkiLCJNYXBMZWdlbmRGYWN0b3J5IiwiZGVmYXVsdEFjdGlvbkljb25zIiwibGVnZW5kIiwiTGVnZW5kIiwiTWFwTGVnZW5kUGFuZWxDb21wb25lbnQiLCJfcmVmMyIsIl9tYXBDb250cm9scyRtYXBMZWdlbjIiLCJfcm9vdENvbnRleHQkY3VycmVudCIsImxheWVycyIsImxheWVyT3JkZXIiLCJzY2FsZSIsIm9uVG9nZ2xlTWFwQ29udHJvbCIsImlzRXhwb3J0IiwibG9nb0NvbXBvbmVudCIsIl9yZWYzJGFjdGlvbkljb25zIiwiYWN0aW9uSWNvbnMiLCJvbkxheWVyVmlzQ29uZmlnQ2hhbmdlIiwib25Ub2dnbGVMYXllclZpc2liaWxpdHkiLCJvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnQiLCJvbkNsaWNrQ29udHJvbEJ0biIsImFjdGl2ZVNpZGVQYW5lbCIsIl9yZWYzJGlzVmlld3BvcnRVbnN5biIsImlzVmlld3BvcnRVbnN5bmNBbGxvd2VkIiwiaXNTcGxpdCIsInNwbGl0TWFwcyIsIm9uVG9nZ2xlTGF5ZXJGb3JNYXAiLCJtYXBJbmRleCIsIk1hcENvbnRyb2xUb29sdGlwIiwiTWFwQ29udHJvbFBhbmVsIiwiTWFwTGVnZW5kIiwiaXNTd2lwZU1vZGUiLCJtYXBTcGxpdE1vZGUiLCJNYXBTcGxpdE1vZGUiLCJTV0lQRV9DT01QQVJFIiwiQm9vbGVhbiIsIl9yZWY0IiwiZGlzYWJsZUVkaXQiLCJyb290Q29udGV4dCIsInVzZUNvbnRleHQiLCJSb290Q29udGV4dCIsIm9uQ2xpY2siLCJfbWFwQ29udHJvbHMkbWFwRHJhdyIsIm1hcERyYXciLCJvbkNsb3NlQ2xpY2siLCJwcmV2ZW50RGVmYXVsdCIsInNob3ciLCJsZWdlbmRQYW5lbCIsImhlYWRlciIsInBpbm5hYmxlIiwiZGlzYWJsZUNsb3NlIiwib25NYXBUb2dnbGVMYXllciIsIkZyYWdtZW50IiwiaGFzUG9ydGFibGVXaWR0aCIsImJyZWFrUG9pbnRWYWx1ZXMiLCJkb2N1bWVudCIsImJvZHkiLCJtZXNzYWdlIiwiTWFwQ29udHJvbEJ1dHRvbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbWFwLWxlZ2VuZC1wYW5lbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQge2NyZWF0ZVBvcnRhbH0gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBSZWFjdCwge1xuICBDb21wb25lbnRUeXBlLFxuICBGQyxcbiAgZm9yd2FyZFJlZixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUNvbnRleHQsXG4gIHVzZVJlZixcbiAgUHJvcHNXaXRoQ2hpbGRyZW5cbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCwge3dpdGhUaGVtZX0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQge0RuZENvbnRleHQsIHVzZURyYWdnYWJsZX0gZnJvbSAnQGRuZC1raXQvY29yZSc7XG5pbXBvcnQge0NTU30gZnJvbSAnQGRuZC1raXQvdXRpbGl0aWVzJztcbmltcG9ydCB7dXNlTWVyZ2VSZWZzfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QnO1xuXG5pbXBvcnQge0FjdGlvbkhhbmRsZXIsIHNldE1hcENvbnRyb2xTZXR0aW5ncywgdG9nZ2xlU3BsaXRNYXBWaWV3cG9ydH0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7TWFwU3BsaXRNb2RlfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0xheWVyfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge2JyZWFrUG9pbnRWYWx1ZXN9IGZyb20gJ0BrZXBsZXIuZ2wvc3R5bGVzJztcbmltcG9ydCB7TGF5ZXJWaXNDb25maWcsIExheWVyT3JkZXIsIE1hcENvbnRyb2xNYXBMZWdlbmQsIE1hcENvbnRyb2xzLCBNYXBTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge2hhc1BvcnRhYmxlV2lkdGh9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtNYXBMZWdlbmRDb250cm9sU2V0dGluZ3N9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQge0xlZ2VuZCwgRHJhZ2dhYmxlRG90cywgSG9yaXpvbnRhbFJlc2l6ZUhhbmRsZX0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCB7TWFwQ29udHJvbEJ1dHRvbn0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Um9vdENvbnRleHR9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHVzZUxlZ2VuZFBvc2l0aW9uIGZyb20gJy4uL2hvb2tzL3VzZS1sZWdlbmQtcG9zaXRpb24nO1xuaW1wb3J0IE1hcENvbnRyb2xQYW5lbEZhY3RvcnkgZnJvbSAnLi9tYXAtY29udHJvbC1wYW5lbCc7XG5pbXBvcnQgTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRyb2wtdG9vbHRpcCc7XG5pbXBvcnQgTWFwTGVnZW5kRmFjdG9yeSBmcm9tICcuL21hcC1sZWdlbmQnO1xuaW1wb3J0IHtyZXN0cmljdFRvV2luZG93RWRnZXN9IGZyb20gJ0BkbmQta2l0L21vZGlmaWVycyc7XG5cbmNvbnN0IERSQUdfUkVTSVpFX0lEID0gJ21hcC1sZWdlbmQtcmVzaXplJztcbmNvbnN0IERSQUdfTU9WRV9JRCA9ICdtYXAtbGVnZW5kLW1vdmUnO1xuXG5jb25zdCBTdHlsZWREcmFnZ2FibGVMZWdlbmRDb250ZW50ID0gc3R5bGVkLmRpdjx7XG4gICRjb250ZW50SGVpZ2h0PzogbnVtYmVyO1xuICAkbWF4Q29udGVudEhlaWdodD86IG51bWJlcjtcbn0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzIGVhc2UtaW4tb3V0O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgLmxlZ2VuZC1pbnB1dC1ibG9jayB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAmLmlzLWRyYWdnaW5nIC5sZWdlbmQtaW5wdXQtYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgJjpob3ZlcixcbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgLmxlZ2VuZC1tb3ZlLWhhbmRsZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxuICAgIC5sZWdlbmQtcmVzaXplLWhhbmRsZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxuICAgIGJvcmRlci1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5hY3RpdmVDb2xvcn07XG4gIH1cbiAgLm1hcC1jb250cm9sX19wYW5lbC1jb250ZW50IHtcbiAgICBtYXgtaGVpZ2h0OiAke3Byb3BzID0+XG4gICAgICBwcm9wcy4kbWF4Q29udGVudEhlaWdodCA/IGAke3Byb3BzLiRtYXhDb250ZW50SGVpZ2h0fXB4YCA6ICdjYWxjKDEwMHZoIC0gMTAwcHgpJ307XG4gICAgJHtwcm9wcyA9PiAocHJvcHMuJGNvbnRlbnRIZWlnaHQgPyBgaGVpZ2h0OiAke3Byb3BzLiRjb250ZW50SGVpZ2h0fXB4O2AgOiAnJyl9O1xuICB9XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgei1pbmRleDogMjtcbiAgLm1hcC1jb250cm9sLXBhbmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZE1vdmVIYW5kbGUgPSBzdHlsZWQuZGl2YFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UtaW4tb3V0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgei1pbmRleDogMjtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogbW92ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5hY3RpdmVDb2xvcn07XG5gO1xuXG5jb25zdCBTdHlsZWRSZXNpemVIYW5kbGUgPSBzdHlsZWQuZGl2YFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UtaW4tb3V0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiAjZjdmOGZhO1xuICB6LWluZGV4OiAyO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY3Vyc29yOiBucy1yZXNpemU7XG5gO1xuXG5jb25zdCBTdHlsZWRGaXhlZExlZ2VuZENvbnRlbnQgPSBzdHlsZWQuZGl2PHskY29udGVudEhlaWdodD86IG51bWJlcn0+YFxuICAubWFwLWNvbnRyb2xfX3BhbmVsLWNvbnRlbnQge1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxMDBweCk7XG4gICAgJHtwcm9wcyA9PiAocHJvcHMuJGNvbnRlbnRIZWlnaHQgPyBgaGVpZ2h0OiAke3Byb3BzLiRjb250ZW50SGVpZ2h0fXB4O2AgOiAnJyl9O1xuICB9XG5cbiAgLyogSGlkZSBzY3JvbGxiYXJzIGluIGV4cG9ydCB0byBhdm9pZCBPUyBkZWZhdWx0IHN0eWxpbmcgZGlmZmVyZW5jZXMgKi9cbiAgLnN0eWxlZC1jb2xvci1sZWdlbmQge1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTsgLyogSUUgYW5kIG9sZCBFZGdlICovXG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOyAvKiBGaXJlZm94ICovXG4gIH1cbiAgLnN0eWxlZC1jb2xvci1sZWdlbmQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogMCAhaW1wb3J0YW50OyAvKiBDaHJvbWUsIFNhZmFyaSwgbmV3IEVkZ2UgKi9cbiAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxuYDtcblxuZXhwb3J0IHR5cGUgTWFwTGVnZW5kUGFuZWxGYWN0b3J5RGVwcyA9IFtcbiAgdHlwZW9mIE1hcENvbnRyb2xUb29sdGlwRmFjdG9yeSxcbiAgdHlwZW9mIE1hcENvbnRyb2xQYW5lbEZhY3RvcnksXG4gIHR5cGVvZiBNYXBMZWdlbmRGYWN0b3J5XG5dO1xuXG50eXBlIERyYWdnYWJsZUxlZ2VuZENvbnRlbnRQcm9wcyA9IHtcbiAgY29udGVudEhlaWdodD86IG51bWJlcjtcbiAgbWF4Q29udGVudEhlaWdodD86IG51bWJlcjtcbiAgcG9zaXRpb25TdHlsZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgRHJhZ2dhYmxlTGVnZW5kQ29udGVudCA9IGZvcndhcmRSZWYoKHByb3BzOiBEcmFnZ2FibGVMZWdlbmRDb250ZW50UHJvcHMsIHJlZikgPT4ge1xuICBjb25zdCB7cG9zaXRpb25TdHlsZXMsIGNoaWxkcmVuLCBjb250ZW50SGVpZ2h0LCBtYXhDb250ZW50SGVpZ2h0fSA9IHByb3BzO1xuICBjb25zdCBkcmFnZ2FibGVNb3ZlID0gdXNlRHJhZ2dhYmxlKHtpZDogRFJBR19NT1ZFX0lEfSk7XG4gIGNvbnN0IGRyYWdnYWJsZVJlc2l6ZSA9IHVzZURyYWdnYWJsZSh7aWQ6IERSQUdfUkVTSVpFX0lEfSk7XG4gIGNvbnN0IHJlZnMgPSB1c2VNZXJnZVJlZnMoW2RyYWdnYWJsZU1vdmUuc2V0Tm9kZVJlZiwgcmVmXSk7XG4gIGNvbnN0IGlzRHJhZ2dpbmcgPSBkcmFnZ2FibGVNb3ZlLmlzRHJhZ2dpbmcgfHwgZHJhZ2dhYmxlUmVzaXplLmlzRHJhZ2dpbmc7XG4gIHJldHVybiAoXG4gICAgPFN0eWxlZERyYWdnYWJsZUxlZ2VuZENvbnRlbnRcbiAgICAgIHJlZj17cmVmc31cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnZHJhZ2dhYmxlLWxlZ2VuZCcsIHsnaXMtZHJhZ2dpbmcnOiBpc0RyYWdnaW5nfSl9XG4gICAgICBzdHlsZT17ey4uLnBvc2l0aW9uU3R5bGVzLCB0cmFuc2Zvcm06IENTUy5UcmFuc2xhdGUudG9TdHJpbmcoZHJhZ2dhYmxlTW92ZS50cmFuc2Zvcm0pfX1cbiAgICAgICRjb250ZW50SGVpZ2h0PXtjb250ZW50SGVpZ2h0fVxuICAgICAgJG1heENvbnRlbnRIZWlnaHQ9e21heENvbnRlbnRIZWlnaHR9XG4gICAgICB7Li4uZHJhZ2dhYmxlTW92ZS5hdHRyaWJ1dGVzfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIHtpc0RyYWdnaW5nID8gPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtaW5wdXQtYmxvY2tcIiAvPiA6IG51bGx9XG4gICAgICA8U3R5bGVkTW92ZUhhbmRsZSBjbGFzc05hbWU9XCJsZWdlbmQtbW92ZS1oYW5kbGVcIiB7Li4uZHJhZ2dhYmxlTW92ZS5saXN0ZW5lcnN9PlxuICAgICAgICA8RHJhZ2dhYmxlRG90cyBoZWlnaHQ9XCIxNnB4XCIgLz5cbiAgICAgIDwvU3R5bGVkTW92ZUhhbmRsZT5cbiAgICAgIDxTdHlsZWRSZXNpemVIYW5kbGVcbiAgICAgICAgY2xhc3NOYW1lPVwibGVnZW5kLXJlc2l6ZS1oYW5kbGVcIlxuICAgICAgICByZWY9e2RyYWdnYWJsZVJlc2l6ZS5zZXROb2RlUmVmfVxuICAgICAgICB7Li4uZHJhZ2dhYmxlUmVzaXplLmxpc3RlbmVyc31cbiAgICAgID5cbiAgICAgICAgPEhvcml6b250YWxSZXNpemVIYW5kbGUgaGVpZ2h0PVwiMTZweFwiIC8+XG4gICAgICA8L1N0eWxlZFJlc2l6ZUhhbmRsZT5cbiAgICA8L1N0eWxlZERyYWdnYWJsZUxlZ2VuZENvbnRlbnQ+XG4gICk7XG59KTtcblxudHlwZSBEcmFnZ2FibGVMZWdlbmRQcm9wcyA9IFByb3BzV2l0aENoaWxkcmVuPHtcbiAgaXNTaWRlUGFuZWxTaG93bjogYm9vbGVhbjtcbiAgbWFwQ29udHJvbHM6IE1hcENvbnRyb2xzO1xuICBzZXRNYXBDb250cm9sU2V0dGluZ3M6IHR5cGVvZiBzZXRNYXBDb250cm9sU2V0dGluZ3M7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG59PjtcblxuY29uc3QgRHJhZ2dhYmxlTGVnZW5kID0gd2l0aFRoZW1lKFxuICAoe1xuICAgIGlzU2lkZVBhbmVsU2hvd24sXG4gICAgY2hpbGRyZW4sXG4gICAgbWFwQ29udHJvbHMsXG4gICAgc2V0TWFwQ29udHJvbFNldHRpbmdzLFxuICAgIG1hcFN0YXRlLFxuICAgIHRoZW1lXG4gIH06IERyYWdnYWJsZUxlZ2VuZFByb3BzICYge3RoZW1lOiBhbnl9KSA9PiB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSBtYXBDb250cm9scz8ubWFwTGVnZW5kPy5zZXR0aW5ncztcblxuICAgIGNvbnN0IGxlZ2VuZENvbnRlbnRSZWYgPSB1c2VSZWY8SFRNTEVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IG9uQ2hhbmdlU2V0dGluZ3MgPSB1c2VDYWxsYmFjayhcbiAgICAgIG5ld1NldHRpbmdzID0+IHNldE1hcENvbnRyb2xTZXR0aW5ncygnbWFwTGVnZW5kJywgbmV3U2V0dGluZ3MpLFxuICAgICAgW3NldE1hcENvbnRyb2xTZXR0aW5nc11cbiAgICApO1xuICAgIGNvbnN0IHtwb3NpdGlvblN0eWxlcywgdXBkYXRlUG9zaXRpb24sIHN0YXJ0UmVzaXplLCByZXNpemUsIGNvbnRlbnRIZWlnaHQsIG1heENvbnRlbnRIZWlnaHR9ID1cbiAgICAgIHVzZUxlZ2VuZFBvc2l0aW9uKHtcbiAgICAgICAgbGVnZW5kQ29udGVudFJlZixcbiAgICAgICAgaXNTaWRlUGFuZWxTaG93bixcbiAgICAgICAgdGhlbWUsXG4gICAgICAgIHNldHRpbmdzLFxuICAgICAgICBvbkNoYW5nZVNldHRpbmdzLFxuICAgICAgICBtYXBIZWlnaHQ6IG1hcFN0YXRlPy5oZWlnaHQsXG4gICAgICAgIG1hcFdpZHRoOiBtYXBTdGF0ZT8ud2lkdGhcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgaGFuZGxlRHJhZ1N0YXJ0ID0gdXNlQ2FsbGJhY2soXG4gICAgICBldmVudCA9PiB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQuYWN0aXZlLmlkKSB7XG4gICAgICAgICAgY2FzZSBEUkFHX1JFU0laRV9JRDpcbiAgICAgICAgICAgIHN0YXJ0UmVzaXplKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFt1cGRhdGVQb3NpdGlvbiwgc3RhcnRSZXNpemVdXG4gICAgKTtcbiAgICBjb25zdCBoYW5kbGVEcmFnRW5kID0gdXNlQ2FsbGJhY2sodXBkYXRlUG9zaXRpb24sIFt1cGRhdGVQb3NpdGlvbl0pO1xuICAgIGNvbnN0IGhhbmRsZURyYWdNb3ZlID0gdXNlQ2FsbGJhY2soXG4gICAgICBldmVudCA9PiB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQuYWN0aXZlLmlkKSB7XG4gICAgICAgICAgY2FzZSBEUkFHX1JFU0laRV9JRDpcbiAgICAgICAgICAgIHJlc2l6ZShldmVudC5kZWx0YS55KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW3Jlc2l6ZV1cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxEbmRDb250ZXh0XG4gICAgICAgIG9uRHJhZ1N0YXJ0PXtoYW5kbGVEcmFnU3RhcnR9XG4gICAgICAgIG9uRHJhZ01vdmU9e2hhbmRsZURyYWdNb3ZlfVxuICAgICAgICBvbkRyYWdFbmQ9e2hhbmRsZURyYWdFbmR9XG4gICAgICAgIG1vZGlmaWVycz17W3Jlc3RyaWN0VG9XaW5kb3dFZGdlc119XG4gICAgICA+XG4gICAgICAgIDxEcmFnZ2FibGVMZWdlbmRDb250ZW50XG4gICAgICAgICAgcmVmPXtsZWdlbmRDb250ZW50UmVmfVxuICAgICAgICAgIHBvc2l0aW9uU3R5bGVzPXtwb3NpdGlvblN0eWxlc31cbiAgICAgICAgICBjb250ZW50SGVpZ2h0PXtjb250ZW50SGVpZ2h0fVxuICAgICAgICAgIG1heENvbnRlbnRIZWlnaHQ9e21heENvbnRlbnRIZWlnaHR9XG4gICAgICAgID5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvRHJhZ2dhYmxlTGVnZW5kQ29udGVudD5cbiAgICAgIDwvRG5kQ29udGV4dD5cbiAgICApO1xuICB9XG4pIGFzIEZDPERyYWdnYWJsZUxlZ2VuZFByb3BzPjtcblxudHlwZSBJbWFnZUV4cG9ydExlZ2VuZFByb3BzID0ge1xuICBzZXR0aW5ncz86IE1hcExlZ2VuZENvbnRyb2xTZXR0aW5ncztcbiAgaXNTaWRlUGFuZWxTaG93bjogYm9vbGVhbjtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IEltYWdlRXhwb3J0TGVnZW5kID0gd2l0aFRoZW1lKCh7c2V0dGluZ3MsIGlzU2lkZVBhbmVsU2hvd24sIHRoZW1lLCBjaGlsZHJlbn0pID0+IHtcbiAgY29uc3QgY29udGFpbmVyUmVmOiBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD4gPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IGxlZ2VuZENvbnRlbnRSZWY6IFJlYWN0Lk11dGFibGVSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPiA9IHVzZVJlZihudWxsKTtcblxuICBjb25zdCB7cG9zaXRpb25TdHlsZXMsIGNvbnRlbnRIZWlnaHR9ID0gdXNlTGVnZW5kUG9zaXRpb24oe1xuICAgIGxlZ2VuZENvbnRlbnRSZWYsXG4gICAgaXNTaWRlUGFuZWxTaG93bixcbiAgICB0aGVtZSxcbiAgICBzZXR0aW5ncyxcbiAgICBvbkNoYW5nZVNldHRpbmdzOiAoKSA9PiB7XG4gICAgICAvLyBkbyBub3RoaW5nIGJ5IGRlZmF1bHRcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IHBvcnRhbFJvb3QgPSBjb250YWluZXJSZWYuY3VycmVudFxuICAgID8uY2xvc2VzdCgnLmV4cG9ydC1tYXAtaW5zdGFuY2UnKVxuICAgID8ucXVlcnlTZWxlY3RvcignI2RlZmF1bHQtZGVja2dsLW92ZXJsYXktd3JhcHBlcicpO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiByZWY9e2NvbnRhaW5lclJlZn0+XG4gICAgICB7cG9ydGFsUm9vdFxuICAgICAgICA/IGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZml4ZWQtbGVnZW5kXCJcbiAgICAgICAgICAgICAgcmVmPXtsZWdlbmRDb250ZW50UmVmfVxuICAgICAgICAgICAgICBzdHlsZT17ey4uLnBvc2l0aW9uU3R5bGVzLCBwb3NpdGlvbjogJ2Fic29sdXRlJ319XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRGaXhlZExlZ2VuZENvbnRlbnQgJGNvbnRlbnRIZWlnaHQ9e2NvbnRlbnRIZWlnaHR9PlxuICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgPC9TdHlsZWRGaXhlZExlZ2VuZENvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj4sXG4gICAgICAgICAgICBwb3J0YWxSb290XG4gICAgICAgICAgKVxuICAgICAgICA6IG51bGx9XG4gICAgPC9kaXY+XG4gICk7XG59KSBhcyBSZWFjdC5GQzxJbWFnZUV4cG9ydExlZ2VuZFByb3BzPjtcblxuTWFwTGVnZW5kUGFuZWxGYWN0b3J5LmRlcHMgPSBbTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5LCBNYXBDb250cm9sUGFuZWxGYWN0b3J5LCBNYXBMZWdlbmRGYWN0b3J5XTtcblxuaW50ZXJmYWNlIE1hcExlZ2VuZFBhbmVsSWNvbnMge1xuICBsZWdlbmQ6IENvbXBvbmVudFR5cGU8YW55Pjtcbn1cblxuZXhwb3J0IHR5cGUgTWFwTGVnZW5kUGFuZWxQcm9wcyA9IHtcbiAgdGhlbWU6IGFueTtcbiAgbGF5ZXJzOiBSZWFkb25seUFycmF5PExheWVyPjtcbiAgbGF5ZXJPcmRlcj86IExheWVyT3JkZXI7XG4gIHNjYWxlOiBudW1iZXI7XG4gIG9uVG9nZ2xlTWFwQ29udHJvbDogKGNvbnRyb2w6IHN0cmluZykgPT4gdm9pZDtcbiAgaXNFeHBvcnQ6IGJvb2xlYW47XG4gIGxvZ29Db21wb25lbnQ6IEVsZW1lbnQ7XG4gIGFjdGlvbkljb25zOiBNYXBMZWdlbmRQYW5lbEljb25zO1xuICBtYXBDb250cm9sczogTWFwQ29udHJvbHM7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U/OiAob2xkTGF5ZXI6IExheWVyLCBuZXdWaXNDb25maWc6IFBhcnRpYWw8TGF5ZXJWaXNDb25maWc+KSA9PiB2b2lkO1xuICBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eT86IChsYXllcjogTGF5ZXIpID0+IHZvaWQ7XG4gIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydD86IEFjdGlvbkhhbmRsZXI8dHlwZW9mIHRvZ2dsZVNwbGl0TWFwVmlld3BvcnQ+O1xuICBpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZD86IGJvb2xlYW47XG4gIG9uQ2xpY2tDb250cm9sQnRuPzogKGU/OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICBjbGFzc05hbWU6IHN0cmluZztcbiAgc2V0dGluZ3M6IE1hcExlZ2VuZENvbnRyb2xTZXR0aW5ncztcbiAgaXNTaWRlUGFuZWxTaG93bjogYm9vbGVhbjtcbiAgYWN0aXZlU2lkZVBhbmVsOiBzdHJpbmcgfCBudWxsO1xuICBzZXRNYXBDb250cm9sU2V0dGluZ3M6IGFueTtcbiAgaXNTcGxpdD86IGJvb2xlYW47XG4gIHNwbGl0TWFwcz86IHtsYXllcnM6IHtba2V5OiBzdHJpbmddOiBib29sZWFufX1bXTtcbiAgb25Ub2dnbGVMYXllckZvck1hcD86IChtYXBJbmRleDogbnVtYmVyLCBsYXllcklkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG1hcEluZGV4PzogbnVtYmVyO1xufTtcblxudHlwZSBNYXBMZWdlbmRQYW5lbENvbXBvbmVudHMgPSB7XG4gIE1hcENvbnRyb2xUb29sdGlwOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBDb250cm9sVG9vbHRpcEZhY3Rvcnk+O1xuICBNYXBDb250cm9sUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRyb2xQYW5lbEZhY3Rvcnk+O1xuICBNYXBMZWdlbmQ6IFJldHVyblR5cGU8dHlwZW9mIE1hcExlZ2VuZEZhY3Rvcnk+O1xufTtcblxudHlwZSBNYXBMZWdlbmRQYW5lbENvbXBvbmVudFR5cGUgPSBSZWFjdC5GQzxNYXBMZWdlbmRQYW5lbFByb3BzPjtcblxuY29uc3QgZGVmYXVsdEFjdGlvbkljb25zID0ge1xuICBsZWdlbmQ6IHByb3BzID0+IDxMZWdlbmQgey4uLnByb3BzfSBoZWlnaHQ9XCIxOHB4XCIgLz5cbn07XG5cbmNvbnN0IE1hcExlZ2VuZFBhbmVsQ29tcG9uZW50ID0gKHtcbiAgbGF5ZXJzLFxuICBsYXllck9yZGVyLFxuICBtYXBDb250cm9scyxcbiAgc2NhbGUsXG4gIG9uVG9nZ2xlTWFwQ29udHJvbCxcbiAgaXNFeHBvcnQsXG4gIGxvZ29Db21wb25lbnQsXG4gIGFjdGlvbkljb25zID0gZGVmYXVsdEFjdGlvbkljb25zLFxuICBtYXBTdGF0ZSxcbiAgb25MYXllclZpc0NvbmZpZ0NoYW5nZSxcbiAgb25Ub2dnbGVMYXllclZpc2liaWxpdHksXG4gIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydCxcbiAgb25DbGlja0NvbnRyb2xCdG4sXG4gIGFjdGl2ZVNpZGVQYW5lbCxcbiAgc2V0TWFwQ29udHJvbFNldHRpbmdzLFxuICBpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZCA9IHRydWUsXG4gIGNsYXNzTmFtZSxcbiAgaXNTcGxpdCxcbiAgc3BsaXRNYXBzLFxuICBvblRvZ2dsZUxheWVyRm9yTWFwLFxuICBtYXBJbmRleCxcbiAgTWFwQ29udHJvbFRvb2x0aXAsXG4gIE1hcENvbnRyb2xQYW5lbCxcbiAgTWFwTGVnZW5kXG59OiBNYXBMZWdlbmRQYW5lbFByb3BzICYgTWFwTGVnZW5kUGFuZWxDb21wb25lbnRzKSA9PiB7XG4gIGNvbnN0IGlzU3dpcGVNb2RlID0gbWFwU3RhdGU/Lm1hcFNwbGl0TW9kZSA9PT0gTWFwU3BsaXRNb2RlLlNXSVBFX0NPTVBBUkU7XG4gIGNvbnN0IGlzU2lkZVBhbmVsU2hvd24gPSBCb29sZWFuKGFjdGl2ZVNpZGVQYW5lbCk7XG4gIGNvbnN0IHNldHRpbmdzID0gbWFwQ29udHJvbHM/Lm1hcExlZ2VuZD8uc2V0dGluZ3M7XG5cbiAgY29uc3QgbWFwTGVnZW5kID0gbWFwQ29udHJvbHM/Lm1hcExlZ2VuZCB8fCAoe30gYXMgTWFwQ29udHJvbE1hcExlZ2VuZCk7XG4gIGNvbnN0IHthY3RpdmUsIGRpc2FibGVFZGl0fSA9IG1hcExlZ2VuZCB8fCB7fTtcbiAgY29uc3Qgcm9vdENvbnRleHQgPSB1c2VDb250ZXh0KFJvb3RDb250ZXh0KTtcblxuICBjb25zdCBvbkNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIG9uQ2xpY2tDb250cm9sQnRuPy4oKTtcbiAgICBpZiAobWFwQ29udHJvbHM/Lm1hcERyYXc/LmFjdGl2ZSkge1xuICAgICAgb25Ub2dnbGVNYXBDb250cm9sKCdtYXBEcmF3Jyk7XG4gICAgfVxuICAgIG9uVG9nZ2xlTWFwQ29udHJvbCgnbWFwTGVnZW5kJyk7XG4gIH0sIFtvbkNsaWNrQ29udHJvbEJ0biwgb25Ub2dnbGVNYXBDb250cm9sLCBtYXBDb250cm9sc10pO1xuICBjb25zdCBvbkNsb3NlQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICBlID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIG9uVG9nZ2xlTWFwQ29udHJvbCgnbWFwTGVnZW5kJyk7XG4gICAgfSxcbiAgICBbb25Ub2dnbGVNYXBDb250cm9sXVxuICApO1xuXG4gIGlmIChpc1NwbGl0ICYmICFpc1N3aXBlTW9kZSAmJiBtYXBJbmRleCAhPT0gMCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGlmIChpc1N3aXBlTW9kZSAmJiBtYXBJbmRleCAhPT0gMSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKCFtYXBMZWdlbmQuc2hvdykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgbGVnZW5kUGFuZWwgPSBhY3RpdmUgPyAoXG4gICAgPE1hcENvbnRyb2xQYW5lbFxuICAgICAgc2NhbGU9e3NjYWxlfVxuICAgICAgaGVhZGVyPVwiaGVhZGVyLmxheWVyTGVnZW5kXCJcbiAgICAgIHsuLi57b25DbGljazogb25DbG9zZUNsaWNrLCBwaW5uYWJsZTogZmFsc2UsIGRpc2FibGVDbG9zZTogZmFsc2V9fVxuICAgICAgaXNFeHBvcnQ9e2lzRXhwb3J0fVxuICAgICAgbG9nb0NvbXBvbmVudD17bG9nb0NvbXBvbmVudH1cbiAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydD17b25Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0fVxuICAgICAgaXNWaWV3cG9ydFVuc3luY0FsbG93ZWQ9e2lzVmlld3BvcnRVbnN5bmNBbGxvd2VkfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgPlxuICAgICAgPE1hcExlZ2VuZFxuICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgbGF5ZXJPcmRlcj17bGF5ZXJPcmRlcn1cbiAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICBkaXNhYmxlRWRpdD17ZGlzYWJsZUVkaXR9XG4gICAgICAgIGlzRXhwb3J0PXtpc0V4cG9ydH1cbiAgICAgICAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT17b25MYXllclZpc0NvbmZpZ0NoYW5nZX1cbiAgICAgICAgb25Ub2dnbGVMYXllclZpc2liaWxpdHk9e29uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5fVxuICAgICAgICBpc1NwbGl0PXtpc1NwbGl0fVxuICAgICAgICBzcGxpdE1hcHM9e3NwbGl0TWFwc31cbiAgICAgICAgb25NYXBUb2dnbGVMYXllcj17b25Ub2dnbGVMYXllckZvck1hcH1cbiAgICAgIC8+XG4gICAgPC9NYXBDb250cm9sUGFuZWw+XG4gICkgOiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHthY3RpdmUgPyAoXG4gICAgICAgIGhhc1BvcnRhYmxlV2lkdGgoYnJlYWtQb2ludFZhbHVlcykgPyAoXG4gICAgICAgICAgbGVnZW5kUGFuZWxcbiAgICAgICAgKSA6IGlzRXhwb3J0ID8gKFxuICAgICAgICAgIDxJbWFnZUV4cG9ydExlZ2VuZCBpc1NpZGVQYW5lbFNob3duPXtpc1NpZGVQYW5lbFNob3dufSBzZXR0aW5ncz17c2V0dGluZ3N9PlxuICAgICAgICAgICAge2xlZ2VuZFBhbmVsfVxuICAgICAgICAgIDwvSW1hZ2VFeHBvcnRMZWdlbmQ+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgY3JlYXRlUG9ydGFsKFxuICAgICAgICAgICAgPERyYWdnYWJsZUxlZ2VuZFxuICAgICAgICAgICAgICBpc1NpZGVQYW5lbFNob3duPXtpc1NpZGVQYW5lbFNob3dufVxuICAgICAgICAgICAgICBtYXBDb250cm9scz17bWFwQ29udHJvbHN9XG4gICAgICAgICAgICAgIHNldE1hcENvbnRyb2xTZXR0aW5ncz17c2V0TWFwQ29udHJvbFNldHRpbmdzfVxuICAgICAgICAgICAgICBtYXBTdGF0ZT17bWFwU3RhdGV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtsZWdlbmRQYW5lbH1cbiAgICAgICAgICAgIDwvRHJhZ2dhYmxlTGVnZW5kPixcbiAgICAgICAgICAgIHJvb3RDb250ZXh0Py5jdXJyZW50ID8/IGRvY3VtZW50LmJvZHlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICkgOiBudWxsfVxuICAgICAgeyFpc0V4cG9ydCA/IChcbiAgICAgICAgPE1hcENvbnRyb2xUb29sdGlwIGlkPVwic2hvdy1sZWdlbmRcIiBtZXNzYWdlPVwidG9vbHRpcC5zaG93TGVnZW5kXCI+XG4gICAgICAgICAgPE1hcENvbnRyb2xCdXR0b24gY2xhc3NOYW1lPVwibWFwLWNvbnRyb2wtYnV0dG9uIHNob3ctbGVnZW5kXCIgb25DbGljaz17b25DbGlja30+XG4gICAgICAgICAgICA8YWN0aW9uSWNvbnMubGVnZW5kIGhlaWdodD1cIjIycHhcIiAvPlxuICAgICAgICAgIDwvTWFwQ29udHJvbEJ1dHRvbj5cbiAgICAgICAgPC9NYXBDb250cm9sVG9vbHRpcD5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvPlxuICApO1xufTtcblxuZnVuY3Rpb24gTWFwTGVnZW5kUGFuZWxGYWN0b3J5KFxuICBNYXBDb250cm9sVG9vbHRpcDogUmV0dXJuVHlwZTx0eXBlb2YgTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5PixcbiAgTWFwQ29udHJvbFBhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBDb250cm9sUGFuZWxGYWN0b3J5PixcbiAgTWFwTGVnZW5kOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBMZWdlbmRGYWN0b3J5PlxuKTogTWFwTGVnZW5kUGFuZWxDb21wb25lbnRUeXBlIHtcbiAgcmV0dXJuIChwcm9wczogTWFwTGVnZW5kUGFuZWxQcm9wcykgPT4gKFxuICAgIDxNYXBMZWdlbmRQYW5lbENvbXBvbmVudFxuICAgICAgey4uLnByb3BzfVxuICAgICAgTWFwQ29udHJvbFRvb2x0aXA9e01hcENvbnRyb2xUb29sdGlwfVxuICAgICAgTWFwQ29udHJvbFBhbmVsPXtNYXBDb250cm9sUGFuZWx9XG4gICAgICBNYXBMZWdlbmQ9e01hcExlZ2VuZH1cbiAgICAvPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBNYXBMZWdlbmRQYW5lbEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsV0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBU0EsSUFBQUksaUJBQUEsR0FBQUQsdUJBQUEsQ0FBQUgsT0FBQTtBQUVBLElBQUFLLEtBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQU4sT0FB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bEMsUUFBUSxnQkFDVm5LLE1BQUEsWUFBQXNGLGFBQUEsQ0FBQ2tELGlCQUFpQjtJQUFDaEMsZ0JBQWdCLEVBQUVBLGdCQUFpQjtJQUFDSSxRQUFRLEVBQUVBO0VBQVMsR0FDdkV5RixXQUNnQixDQUFDLGtCQUVwQixJQUFBcEQsc0JBQVksZ0JBQ1ZqSixNQUFBLFlBQUFzRixhQUFBLENBQUNjLGVBQWU7SUFDZEksZ0JBQWdCLEVBQUVBLGdCQUFpQjtJQUNuQ0MsV0FBVyxFQUFFQSxXQUFZO0lBQ3pCQyxxQkFBcUIsRUFBRUEscUJBQXNCO0lBQzdDQyxRQUFRLEVBQUVBO0VBQVMsR0FFbEIwRixXQUNjLENBQUMsR0FBQXZDLG9CQUFBLEdBQ2xCOEIsV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUU5QyxPQUFPLGNBQUFnQixvQkFBQSxjQUFBQSxvQkFBQSxHQUFJK0MsUUFBUSxDQUFDQyxJQUNuQyxDQUFDLENBQ0YsR0FDQyxJQUFJLEVBQ1AsQ0FBQzNDLFFBQVEsZ0JBQ1JuSyxNQUFBLFlBQUFzRixhQUFBLENBQUM0RixpQkFBaUI7SUFBQ2xHLEVBQUUsRUFBQyxhQUFhO0lBQUMrSCxPQUFPLEVBQUM7RUFBb0IsZ0JBQzlEL00sTUFBQSxZQUFBc0YsYUFBQSxDQUFDNUUsa0JBQUEsQ0FBQXNNLGdCQUFnQjtJQUFDeEgsU0FBUyxFQUFDLGdDQUFnQztJQUFDdUcsT0FBTyxFQUFFQTtFQUFRLGdCQUM1RS9MLE1BQUEsWUFBQXNGLGFBQUEsQ0FBQ2dGLFdBQVcsQ0FBQ2IsTUFBTTtJQUFDdkQsTUFBTSxFQUFDO0VBQU0sQ0FBRSxDQUNuQixDQUNELENBQUMsR0FDbEIsSUFDSixDQUFDO0FBRVAsQ0FBQztBQUVELFNBQVNpRCxxQkFBcUJBLENBQzVCK0IsaUJBQThELEVBQzlEQyxlQUEwRCxFQUMxREMsU0FBOEMsRUFDakI7RUFDN0IsT0FBTyxVQUFDdEgsS0FBMEI7SUFBQSxvQkFDaEM5RCxNQUFBLFlBQUFzRixhQUFBLENBQUNxRSx1QkFBdUIsTUFBQXBFLFNBQUEsaUJBQ2xCekIsS0FBSztNQUNUb0gsaUJBQWlCLEVBQUVBLGlCQUFrQjtNQUNyQ0MsZUFBZSxFQUFFQSxlQUFnQjtNQUNqQ0MsU0FBUyxFQUFFQTtJQUFVLEVBQ3RCLENBQUM7RUFBQSxDQUNIO0FBQ0g7QUFBQyxJQUFBNkIsUUFBQSxHQUFBQyxPQUFBLGNBRWMvRCxxQkFBcUIiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
289
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0RG9tIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9jb3JlIiwiX3V0aWxpdGllcyIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX3V0aWxzIiwiX2ljb25zIiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX2NvbnRleHQiLCJfdXNlTGVnZW5kUG9zaXRpb24zIiwiX21hcENvbnRyb2xQYW5lbCIsIl9tYXBDb250cm9sVG9vbHRpcCIsIl9tYXBMZWdlbmQiLCJfbW9kaWZpZXJzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiZSIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJfX2VzTW9kdWxlIiwibyIsImkiLCJmIiwiX19wcm90b19fIiwiX3R5cGVvZiIsImhhcyIsImdldCIsInNldCIsIl90IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIkRSQUdfUkVTSVpFX0lEIiwiRFJBR19NT1ZFX0lEIiwiU3R5bGVkRHJhZ2dhYmxlTGVnZW5kQ29udGVudCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsImFjdGl2ZUNvbG9yIiwiJG1heENvbnRlbnRIZWlnaHQiLCJjb25jYXQiLCIkY29udGVudEhlaWdodCIsIlN0eWxlZE1vdmVIYW5kbGUiLCJTdHlsZWRSZXNpemVIYW5kbGUiLCJTdHlsZWRGaXhlZExlZ2VuZENvbnRlbnQiLCJEcmFnZ2FibGVMZWdlbmRDb250ZW50IiwiZm9yd2FyZFJlZiIsInJlZiIsInBvc2l0aW9uU3R5bGVzIiwiY2hpbGRyZW4iLCJjb250ZW50SGVpZ2h0IiwibWF4Q29udGVudEhlaWdodCIsImRyYWdnYWJsZU1vdmUiLCJ1c2VEcmFnZ2FibGUiLCJpZCIsImRyYWdnYWJsZVJlc2l6ZSIsInJlZnMiLCJ1c2VNZXJnZVJlZnMiLCJzZXROb2RlUmVmIiwiaXNEcmFnZ2luZyIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJjbGFzc05hbWUiLCJjbGFzc25hbWVzIiwic3R5bGUiLCJ0cmFuc2Zvcm0iLCJDU1MiLCJUcmFuc2xhdGUiLCJ0b1N0cmluZyIsImF0dHJpYnV0ZXMiLCJsaXN0ZW5lcnMiLCJEcmFnZ2FibGVEb3RzIiwiaGVpZ2h0IiwiSG9yaXpvbnRhbFJlc2l6ZUhhbmRsZSIsIkRyYWdnYWJsZUxlZ2VuZCIsIndpdGhUaGVtZSIsIl9yZWYiLCJfbWFwQ29udHJvbHMkbWFwTGVnZW4iLCJpc1NpZGVQYW5lbFNob3duIiwibWFwQ29udHJvbHMiLCJzZXRNYXBDb250cm9sU2V0dGluZ3MiLCJtYXBTdGF0ZSIsInNldHRpbmdzIiwibWFwTGVnZW5kIiwibGVnZW5kQ29udGVudFJlZiIsInVzZVJlZiIsIm9uQ2hhbmdlU2V0dGluZ3MiLCJ1c2VDYWxsYmFjayIsIm5ld1NldHRpbmdzIiwiX3VzZUxlZ2VuZFBvc2l0aW9uIiwidXNlTGVnZW5kUG9zaXRpb24iLCJtYXBIZWlnaHQiLCJtYXBXaWR0aCIsIndpZHRoIiwidXBkYXRlUG9zaXRpb24iLCJzdGFydFJlc2l6ZSIsInJlc2l6ZSIsImhhbmRsZURyYWdTdGFydCIsImV2ZW50IiwiYWN0aXZlIiwiaGFuZGxlRHJhZ0VuZCIsImhhbmRsZURyYWdNb3ZlIiwiZGVsdGEiLCJ5IiwiRG5kQ29udGV4dCIsIm9uRHJhZ1N0YXJ0Iiwib25EcmFnTW92ZSIsIm9uRHJhZ0VuZCIsIm1vZGlmaWVycyIsInJlc3RyaWN0VG9XaW5kb3dFZGdlcyIsIkltYWdlRXhwb3J0TGVnZW5kIiwiX3JlZjIiLCJfY29udGFpbmVyUmVmJGN1cnJlbnQiLCJjb250YWluZXJSZWYiLCJfdXNlTGVnZW5kUG9zaXRpb24yIiwicG9ydGFsUm9vdCIsImN1cnJlbnQiLCJjbG9zZXN0IiwicXVlcnlTZWxlY3RvciIsImNyZWF0ZVBvcnRhbCIsInBvc2l0aW9uIiwiTWFwTGVnZW5kUGFuZWxGYWN0b3J5IiwiZGVwcyIsIk1hcENvbnRyb2xUb29sdGlwRmFjdG9yeSIsIk1hcENvbnRyb2xQYW5lbEZhY3RvcnkiLCJNYXBMZWdlbmRGYWN0b3J5IiwiZGVmYXVsdEFjdGlvbkljb25zIiwibGVnZW5kIiwiTGVnZW5kIiwiTWFwTGVnZW5kUGFuZWxDb21wb25lbnQiLCJfcmVmMyIsIl9tYXBDb250cm9scyRtYXBMZWdlbjIiLCJfcm9vdENvbnRleHQkY3VycmVudCIsImxheWVycyIsImxheWVyT3JkZXIiLCJzY2FsZSIsIm9uVG9nZ2xlTWFwQ29udHJvbCIsImlzRXhwb3J0IiwibG9nb0NvbXBvbmVudCIsIl9yZWYzJGFjdGlvbkljb25zIiwiYWN0aW9uSWNvbnMiLCJvbkxheWVyVmlzQ29uZmlnQ2hhbmdlIiwib25Ub2dnbGVMYXllclZpc2liaWxpdHkiLCJvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnQiLCJvbkNsaWNrQ29udHJvbEJ0biIsImFjdGl2ZVNpZGVQYW5lbCIsIl9yZWYzJGlzVmlld3BvcnRVbnN5biIsImlzVmlld3BvcnRVbnN5bmNBbGxvd2VkIiwiaXNTcGxpdCIsInNwbGl0TWFwcyIsIm9uVG9nZ2xlTGF5ZXJGb3JNYXAiLCJNYXBDb250cm9sVG9vbHRpcCIsIk1hcENvbnRyb2xQYW5lbCIsIk1hcExlZ2VuZCIsIkJvb2xlYW4iLCJfcmVmNCIsImRpc2FibGVFZGl0Iiwicm9vdENvbnRleHQiLCJ1c2VDb250ZXh0IiwiUm9vdENvbnRleHQiLCJvbkNsaWNrIiwiX21hcENvbnRyb2xzJG1hcERyYXciLCJtYXBEcmF3Iiwib25DbG9zZUNsaWNrIiwicHJldmVudERlZmF1bHQiLCJzaG93IiwibGVnZW5kUGFuZWwiLCJoZWFkZXIiLCJwaW5uYWJsZSIsImRpc2FibGVDbG9zZSIsIm9uTWFwVG9nZ2xlTGF5ZXIiLCJGcmFnbWVudCIsImhhc1BvcnRhYmxlV2lkdGgiLCJicmVha1BvaW50VmFsdWVzIiwiZG9jdW1lbnQiLCJib2R5IiwibWVzc2FnZSIsIk1hcENvbnRyb2xCdXR0b24iLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFwL21hcC1sZWdlbmQtcGFuZWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHtjcmVhdGVQb3J0YWx9IGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgUmVhY3QsIHtcbiAgQ29tcG9uZW50VHlwZSxcbiAgRkMsXG4gIGZvcndhcmRSZWYsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VSZWYsXG4gIFByb3BzV2l0aENoaWxkcmVuXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQsIHt3aXRoVGhlbWV9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IHtEbmRDb250ZXh0LCB1c2VEcmFnZ2FibGV9IGZyb20gJ0BkbmQta2l0L2NvcmUnO1xuaW1wb3J0IHtDU1N9IGZyb20gJ0BkbmQta2l0L3V0aWxpdGllcyc7XG5pbXBvcnQge3VzZU1lcmdlUmVmc30gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcblxuaW1wb3J0IHtBY3Rpb25IYW5kbGVyLCBzZXRNYXBDb250cm9sU2V0dGluZ3MsIHRvZ2dsZVNwbGl0TWFwVmlld3BvcnR9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge0xheWVyfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge2JyZWFrUG9pbnRWYWx1ZXN9IGZyb20gJ0BrZXBsZXIuZ2wvc3R5bGVzJztcbmltcG9ydCB7TGF5ZXJWaXNDb25maWcsIExheWVyT3JkZXIsIE1hcENvbnRyb2xNYXBMZWdlbmQsIE1hcENvbnRyb2xzLCBNYXBTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge2hhc1BvcnRhYmxlV2lkdGh9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtNYXBMZWdlbmRDb250cm9sU2V0dGluZ3N9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQge0xlZ2VuZCwgRHJhZ2dhYmxlRG90cywgSG9yaXpvbnRhbFJlc2l6ZUhhbmRsZX0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCB7TWFwQ29udHJvbEJ1dHRvbn0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Um9vdENvbnRleHR9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHVzZUxlZ2VuZFBvc2l0aW9uIGZyb20gJy4uL2hvb2tzL3VzZS1sZWdlbmQtcG9zaXRpb24nO1xuaW1wb3J0IE1hcENvbnRyb2xQYW5lbEZhY3RvcnkgZnJvbSAnLi9tYXAtY29udHJvbC1wYW5lbCc7XG5pbXBvcnQgTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRyb2wtdG9vbHRpcCc7XG5pbXBvcnQgTWFwTGVnZW5kRmFjdG9yeSBmcm9tICcuL21hcC1sZWdlbmQnO1xuaW1wb3J0IHtyZXN0cmljdFRvV2luZG93RWRnZXN9IGZyb20gJ0BkbmQta2l0L21vZGlmaWVycyc7XG5cbmNvbnN0IERSQUdfUkVTSVpFX0lEID0gJ21hcC1sZWdlbmQtcmVzaXplJztcbmNvbnN0IERSQUdfTU9WRV9JRCA9ICdtYXAtbGVnZW5kLW1vdmUnO1xuXG5jb25zdCBTdHlsZWREcmFnZ2FibGVMZWdlbmRDb250ZW50ID0gc3R5bGVkLmRpdjx7XG4gICRjb250ZW50SGVpZ2h0PzogbnVtYmVyO1xuICAkbWF4Q29udGVudEhlaWdodD86IG51bWJlcjtcbn0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzIGVhc2UtaW4tb3V0O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgLmxlZ2VuZC1pbnB1dC1ibG9jayB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAmLmlzLWRyYWdnaW5nIC5sZWdlbmQtaW5wdXQtYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgJjpob3ZlcixcbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgLmxlZ2VuZC1tb3ZlLWhhbmRsZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxuICAgIC5sZWdlbmQtcmVzaXplLWhhbmRsZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxuICAgIGJvcmRlci1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5hY3RpdmVDb2xvcn07XG4gIH1cbiAgLm1hcC1jb250cm9sX19wYW5lbC1jb250ZW50IHtcbiAgICBtYXgtaGVpZ2h0OiAke3Byb3BzID0+XG4gICAgICBwcm9wcy4kbWF4Q29udGVudEhlaWdodCA/IGAke3Byb3BzLiRtYXhDb250ZW50SGVpZ2h0fXB4YCA6ICdjYWxjKDEwMHZoIC0gMTAwcHgpJ307XG4gICAgJHtwcm9wcyA9PiAocHJvcHMuJGNvbnRlbnRIZWlnaHQgPyBgaGVpZ2h0OiAke3Byb3BzLiRjb250ZW50SGVpZ2h0fXB4O2AgOiAnJyl9O1xuICB9XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgei1pbmRleDogMjtcbiAgLm1hcC1jb250cm9sLXBhbmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZE1vdmVIYW5kbGUgPSBzdHlsZWQuZGl2YFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UtaW4tb3V0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgei1pbmRleDogMjtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogbW92ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5hY3RpdmVDb2xvcn07XG5gO1xuXG5jb25zdCBTdHlsZWRSZXNpemVIYW5kbGUgPSBzdHlsZWQuZGl2YFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UtaW4tb3V0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiAjZjdmOGZhO1xuICB6LWluZGV4OiAyO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY3Vyc29yOiBucy1yZXNpemU7XG5gO1xuXG5jb25zdCBTdHlsZWRGaXhlZExlZ2VuZENvbnRlbnQgPSBzdHlsZWQuZGl2PHskY29udGVudEhlaWdodD86IG51bWJlcn0+YFxuICAubWFwLWNvbnRyb2xfX3BhbmVsLWNvbnRlbnQge1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxMDBweCk7XG4gICAgJHtwcm9wcyA9PiAocHJvcHMuJGNvbnRlbnRIZWlnaHQgPyBgaGVpZ2h0OiAke3Byb3BzLiRjb250ZW50SGVpZ2h0fXB4O2AgOiAnJyl9O1xuICB9XG5cbiAgLyogSGlkZSBzY3JvbGxiYXJzIGluIGV4cG9ydCB0byBhdm9pZCBPUyBkZWZhdWx0IHN0eWxpbmcgZGlmZmVyZW5jZXMgKi9cbiAgLnN0eWxlZC1jb2xvci1sZWdlbmQge1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTsgLyogSUUgYW5kIG9sZCBFZGdlICovXG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOyAvKiBGaXJlZm94ICovXG4gIH1cbiAgLnN0eWxlZC1jb2xvci1sZWdlbmQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogMCAhaW1wb3J0YW50OyAvKiBDaHJvbWUsIFNhZmFyaSwgbmV3IEVkZ2UgKi9cbiAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxuYDtcblxuZXhwb3J0IHR5cGUgTWFwTGVnZW5kUGFuZWxGYWN0b3J5RGVwcyA9IFtcbiAgdHlwZW9mIE1hcENvbnRyb2xUb29sdGlwRmFjdG9yeSxcbiAgdHlwZW9mIE1hcENvbnRyb2xQYW5lbEZhY3RvcnksXG4gIHR5cGVvZiBNYXBMZWdlbmRGYWN0b3J5XG5dO1xuXG50eXBlIERyYWdnYWJsZUxlZ2VuZENvbnRlbnRQcm9wcyA9IHtcbiAgY29udGVudEhlaWdodD86IG51bWJlcjtcbiAgbWF4Q29udGVudEhlaWdodD86IG51bWJlcjtcbiAgcG9zaXRpb25TdHlsZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgRHJhZ2dhYmxlTGVnZW5kQ29udGVudCA9IGZvcndhcmRSZWYoKHByb3BzOiBEcmFnZ2FibGVMZWdlbmRDb250ZW50UHJvcHMsIHJlZikgPT4ge1xuICBjb25zdCB7cG9zaXRpb25TdHlsZXMsIGNoaWxkcmVuLCBjb250ZW50SGVpZ2h0LCBtYXhDb250ZW50SGVpZ2h0fSA9IHByb3BzO1xuICBjb25zdCBkcmFnZ2FibGVNb3ZlID0gdXNlRHJhZ2dhYmxlKHtpZDogRFJBR19NT1ZFX0lEfSk7XG4gIGNvbnN0IGRyYWdnYWJsZVJlc2l6ZSA9IHVzZURyYWdnYWJsZSh7aWQ6IERSQUdfUkVTSVpFX0lEfSk7XG4gIGNvbnN0IHJlZnMgPSB1c2VNZXJnZVJlZnMoW2RyYWdnYWJsZU1vdmUuc2V0Tm9kZVJlZiwgcmVmXSk7XG4gIGNvbnN0IGlzRHJhZ2dpbmcgPSBkcmFnZ2FibGVNb3ZlLmlzRHJhZ2dpbmcgfHwgZHJhZ2dhYmxlUmVzaXplLmlzRHJhZ2dpbmc7XG4gIHJldHVybiAoXG4gICAgPFN0eWxlZERyYWdnYWJsZUxlZ2VuZENvbnRlbnRcbiAgICAgIHJlZj17cmVmc31cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnZHJhZ2dhYmxlLWxlZ2VuZCcsIHsnaXMtZHJhZ2dpbmcnOiBpc0RyYWdnaW5nfSl9XG4gICAgICBzdHlsZT17ey4uLnBvc2l0aW9uU3R5bGVzLCB0cmFuc2Zvcm06IENTUy5UcmFuc2xhdGUudG9TdHJpbmcoZHJhZ2dhYmxlTW92ZS50cmFuc2Zvcm0pfX1cbiAgICAgICRjb250ZW50SGVpZ2h0PXtjb250ZW50SGVpZ2h0fVxuICAgICAgJG1heENvbnRlbnRIZWlnaHQ9e21heENvbnRlbnRIZWlnaHR9XG4gICAgICB7Li4uZHJhZ2dhYmxlTW92ZS5hdHRyaWJ1dGVzfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIHtpc0RyYWdnaW5nID8gPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtaW5wdXQtYmxvY2tcIiAvPiA6IG51bGx9XG4gICAgICA8U3R5bGVkTW92ZUhhbmRsZSBjbGFzc05hbWU9XCJsZWdlbmQtbW92ZS1oYW5kbGVcIiB7Li4uZHJhZ2dhYmxlTW92ZS5saXN0ZW5lcnN9PlxuICAgICAgICA8RHJhZ2dhYmxlRG90cyBoZWlnaHQ9XCIxNnB4XCIgLz5cbiAgICAgIDwvU3R5bGVkTW92ZUhhbmRsZT5cbiAgICAgIDxTdHlsZWRSZXNpemVIYW5kbGVcbiAgICAgICAgY2xhc3NOYW1lPVwibGVnZW5kLXJlc2l6ZS1oYW5kbGVcIlxuICAgICAgICByZWY9e2RyYWdnYWJsZVJlc2l6ZS5zZXROb2RlUmVmfVxuICAgICAgICB7Li4uZHJhZ2dhYmxlUmVzaXplLmxpc3RlbmVyc31cbiAgICAgID5cbiAgICAgICAgPEhvcml6b250YWxSZXNpemVIYW5kbGUgaGVpZ2h0PVwiMTZweFwiIC8+XG4gICAgICA8L1N0eWxlZFJlc2l6ZUhhbmRsZT5cbiAgICA8L1N0eWxlZERyYWdnYWJsZUxlZ2VuZENvbnRlbnQ+XG4gICk7XG59KTtcblxudHlwZSBEcmFnZ2FibGVMZWdlbmRQcm9wcyA9IFByb3BzV2l0aENoaWxkcmVuPHtcbiAgaXNTaWRlUGFuZWxTaG93bjogYm9vbGVhbjtcbiAgbWFwQ29udHJvbHM6IE1hcENvbnRyb2xzO1xuICBzZXRNYXBDb250cm9sU2V0dGluZ3M6IHR5cGVvZiBzZXRNYXBDb250cm9sU2V0dGluZ3M7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG59PjtcblxuY29uc3QgRHJhZ2dhYmxlTGVnZW5kID0gd2l0aFRoZW1lKFxuICAoe1xuICAgIGlzU2lkZVBhbmVsU2hvd24sXG4gICAgY2hpbGRyZW4sXG4gICAgbWFwQ29udHJvbHMsXG4gICAgc2V0TWFwQ29udHJvbFNldHRpbmdzLFxuICAgIG1hcFN0YXRlLFxuICAgIHRoZW1lXG4gIH06IERyYWdnYWJsZUxlZ2VuZFByb3BzICYge3RoZW1lOiBhbnl9KSA9PiB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSBtYXBDb250cm9scz8ubWFwTGVnZW5kPy5zZXR0aW5ncztcblxuICAgIGNvbnN0IGxlZ2VuZENvbnRlbnRSZWYgPSB1c2VSZWY8SFRNTEVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IG9uQ2hhbmdlU2V0dGluZ3MgPSB1c2VDYWxsYmFjayhcbiAgICAgIG5ld1NldHRpbmdzID0+IHNldE1hcENvbnRyb2xTZXR0aW5ncygnbWFwTGVnZW5kJywgbmV3U2V0dGluZ3MpLFxuICAgICAgW3NldE1hcENvbnRyb2xTZXR0aW5nc11cbiAgICApO1xuICAgIGNvbnN0IHtwb3NpdGlvblN0eWxlcywgdXBkYXRlUG9zaXRpb24sIHN0YXJ0UmVzaXplLCByZXNpemUsIGNvbnRlbnRIZWlnaHQsIG1heENvbnRlbnRIZWlnaHR9ID1cbiAgICAgIHVzZUxlZ2VuZFBvc2l0aW9uKHtcbiAgICAgICAgbGVnZW5kQ29udGVudFJlZixcbiAgICAgICAgaXNTaWRlUGFuZWxTaG93bixcbiAgICAgICAgdGhlbWUsXG4gICAgICAgIHNldHRpbmdzLFxuICAgICAgICBvbkNoYW5nZVNldHRpbmdzLFxuICAgICAgICBtYXBIZWlnaHQ6IG1hcFN0YXRlPy5oZWlnaHQsXG4gICAgICAgIG1hcFdpZHRoOiBtYXBTdGF0ZT8ud2lkdGhcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgaGFuZGxlRHJhZ1N0YXJ0ID0gdXNlQ2FsbGJhY2soXG4gICAgICBldmVudCA9PiB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQuYWN0aXZlLmlkKSB7XG4gICAgICAgICAgY2FzZSBEUkFHX1JFU0laRV9JRDpcbiAgICAgICAgICAgIHN0YXJ0UmVzaXplKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFt1cGRhdGVQb3NpdGlvbiwgc3RhcnRSZXNpemVdXG4gICAgKTtcbiAgICBjb25zdCBoYW5kbGVEcmFnRW5kID0gdXNlQ2FsbGJhY2sodXBkYXRlUG9zaXRpb24sIFt1cGRhdGVQb3NpdGlvbl0pO1xuICAgIGNvbnN0IGhhbmRsZURyYWdNb3ZlID0gdXNlQ2FsbGJhY2soXG4gICAgICBldmVudCA9PiB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQuYWN0aXZlLmlkKSB7XG4gICAgICAgICAgY2FzZSBEUkFHX1JFU0laRV9JRDpcbiAgICAgICAgICAgIHJlc2l6ZShldmVudC5kZWx0YS55KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW3Jlc2l6ZV1cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxEbmRDb250ZXh0XG4gICAgICAgIG9uRHJhZ1N0YXJ0PXtoYW5kbGVEcmFnU3RhcnR9XG4gICAgICAgIG9uRHJhZ01vdmU9e2hhbmRsZURyYWdNb3ZlfVxuICAgICAgICBvbkRyYWdFbmQ9e2hhbmRsZURyYWdFbmR9XG4gICAgICAgIG1vZGlmaWVycz17W3Jlc3RyaWN0VG9XaW5kb3dFZGdlc119XG4gICAgICA+XG4gICAgICAgIDxEcmFnZ2FibGVMZWdlbmRDb250ZW50XG4gICAgICAgICAgcmVmPXtsZWdlbmRDb250ZW50UmVmfVxuICAgICAgICAgIHBvc2l0aW9uU3R5bGVzPXtwb3NpdGlvblN0eWxlc31cbiAgICAgICAgICBjb250ZW50SGVpZ2h0PXtjb250ZW50SGVpZ2h0fVxuICAgICAgICAgIG1heENvbnRlbnRIZWlnaHQ9e21heENvbnRlbnRIZWlnaHR9XG4gICAgICAgID5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvRHJhZ2dhYmxlTGVnZW5kQ29udGVudD5cbiAgICAgIDwvRG5kQ29udGV4dD5cbiAgICApO1xuICB9XG4pIGFzIEZDPERyYWdnYWJsZUxlZ2VuZFByb3BzPjtcblxudHlwZSBJbWFnZUV4cG9ydExlZ2VuZFByb3BzID0ge1xuICBzZXR0aW5ncz86IE1hcExlZ2VuZENvbnRyb2xTZXR0aW5ncztcbiAgaXNTaWRlUGFuZWxTaG93bjogYm9vbGVhbjtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IEltYWdlRXhwb3J0TGVnZW5kID0gd2l0aFRoZW1lKCh7c2V0dGluZ3MsIGlzU2lkZVBhbmVsU2hvd24sIHRoZW1lLCBjaGlsZHJlbn0pID0+IHtcbiAgY29uc3QgY29udGFpbmVyUmVmOiBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD4gPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IGxlZ2VuZENvbnRlbnRSZWY6IFJlYWN0Lk11dGFibGVSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPiA9IHVzZVJlZihudWxsKTtcblxuICBjb25zdCB7cG9zaXRpb25TdHlsZXMsIGNvbnRlbnRIZWlnaHR9ID0gdXNlTGVnZW5kUG9zaXRpb24oe1xuICAgIGxlZ2VuZENvbnRlbnRSZWYsXG4gICAgaXNTaWRlUGFuZWxTaG93bixcbiAgICB0aGVtZSxcbiAgICBzZXR0aW5ncyxcbiAgICBvbkNoYW5nZVNldHRpbmdzOiAoKSA9PiB7XG4gICAgICAvLyBkbyBub3RoaW5nIGJ5IGRlZmF1bHRcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IHBvcnRhbFJvb3QgPSBjb250YWluZXJSZWYuY3VycmVudFxuICAgID8uY2xvc2VzdCgnLmV4cG9ydC1tYXAtaW5zdGFuY2UnKVxuICAgID8ucXVlcnlTZWxlY3RvcignI2RlZmF1bHQtZGVja2dsLW92ZXJsYXktd3JhcHBlcicpO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiByZWY9e2NvbnRhaW5lclJlZn0+XG4gICAgICB7cG9ydGFsUm9vdFxuICAgICAgICA/IGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZml4ZWQtbGVnZW5kXCJcbiAgICAgICAgICAgICAgcmVmPXtsZWdlbmRDb250ZW50UmVmfVxuICAgICAgICAgICAgICBzdHlsZT17ey4uLnBvc2l0aW9uU3R5bGVzLCBwb3NpdGlvbjogJ2Fic29sdXRlJ319XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRGaXhlZExlZ2VuZENvbnRlbnQgJGNvbnRlbnRIZWlnaHQ9e2NvbnRlbnRIZWlnaHR9PlxuICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgPC9TdHlsZWRGaXhlZExlZ2VuZENvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj4sXG4gICAgICAgICAgICBwb3J0YWxSb290XG4gICAgICAgICAgKVxuICAgICAgICA6IG51bGx9XG4gICAgPC9kaXY+XG4gICk7XG59KSBhcyBSZWFjdC5GQzxJbWFnZUV4cG9ydExlZ2VuZFByb3BzPjtcblxuTWFwTGVnZW5kUGFuZWxGYWN0b3J5LmRlcHMgPSBbTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5LCBNYXBDb250cm9sUGFuZWxGYWN0b3J5LCBNYXBMZWdlbmRGYWN0b3J5XTtcblxuaW50ZXJmYWNlIE1hcExlZ2VuZFBhbmVsSWNvbnMge1xuICBsZWdlbmQ6IENvbXBvbmVudFR5cGU8YW55Pjtcbn1cblxuZXhwb3J0IHR5cGUgTWFwTGVnZW5kUGFuZWxQcm9wcyA9IHtcbiAgdGhlbWU6IGFueTtcbiAgbGF5ZXJzOiBSZWFkb25seUFycmF5PExheWVyPjtcbiAgbGF5ZXJPcmRlcj86IExheWVyT3JkZXI7XG4gIHNjYWxlOiBudW1iZXI7XG4gIG9uVG9nZ2xlTWFwQ29udHJvbDogKGNvbnRyb2w6IHN0cmluZykgPT4gdm9pZDtcbiAgaXNFeHBvcnQ6IGJvb2xlYW47XG4gIGxvZ29Db21wb25lbnQ6IEVsZW1lbnQ7XG4gIGFjdGlvbkljb25zOiBNYXBMZWdlbmRQYW5lbEljb25zO1xuICBtYXBDb250cm9sczogTWFwQ29udHJvbHM7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U/OiAob2xkTGF5ZXI6IExheWVyLCBuZXdWaXNDb25maWc6IFBhcnRpYWw8TGF5ZXJWaXNDb25maWc+KSA9PiB2b2lkO1xuICBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eT86IChsYXllcjogTGF5ZXIpID0+IHZvaWQ7XG4gIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydD86IEFjdGlvbkhhbmRsZXI8dHlwZW9mIHRvZ2dsZVNwbGl0TWFwVmlld3BvcnQ+O1xuICBpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZD86IGJvb2xlYW47XG4gIG9uQ2xpY2tDb250cm9sQnRuPzogKGU/OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICBjbGFzc05hbWU6IHN0cmluZztcbiAgc2V0dGluZ3M6IE1hcExlZ2VuZENvbnRyb2xTZXR0aW5ncztcbiAgaXNTaWRlUGFuZWxTaG93bjogYm9vbGVhbjtcbiAgYWN0aXZlU2lkZVBhbmVsOiBzdHJpbmcgfCBudWxsO1xuICBzZXRNYXBDb250cm9sU2V0dGluZ3M6IGFueTtcbiAgaXNTcGxpdD86IGJvb2xlYW47XG4gIHNwbGl0TWFwcz86IHtsYXllcnM6IHtba2V5OiBzdHJpbmddOiBib29sZWFufX1bXTtcbiAgb25Ub2dnbGVMYXllckZvck1hcD86IChtYXBJbmRleDogbnVtYmVyLCBsYXllcklkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG1hcEluZGV4PzogbnVtYmVyO1xufTtcblxudHlwZSBNYXBMZWdlbmRQYW5lbENvbXBvbmVudHMgPSB7XG4gIE1hcENvbnRyb2xUb29sdGlwOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBDb250cm9sVG9vbHRpcEZhY3Rvcnk+O1xuICBNYXBDb250cm9sUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRyb2xQYW5lbEZhY3Rvcnk+O1xuICBNYXBMZWdlbmQ6IFJldHVyblR5cGU8dHlwZW9mIE1hcExlZ2VuZEZhY3Rvcnk+O1xufTtcblxudHlwZSBNYXBMZWdlbmRQYW5lbENvbXBvbmVudFR5cGUgPSBSZWFjdC5GQzxNYXBMZWdlbmRQYW5lbFByb3BzPjtcblxuY29uc3QgZGVmYXVsdEFjdGlvbkljb25zID0ge1xuICBsZWdlbmQ6IHByb3BzID0+IDxMZWdlbmQgey4uLnByb3BzfSBoZWlnaHQ9XCIxOHB4XCIgLz5cbn07XG5cbmNvbnN0IE1hcExlZ2VuZFBhbmVsQ29tcG9uZW50ID0gKHtcbiAgbGF5ZXJzLFxuICBsYXllck9yZGVyLFxuICBtYXBDb250cm9scyxcbiAgc2NhbGUsXG4gIG9uVG9nZ2xlTWFwQ29udHJvbCxcbiAgaXNFeHBvcnQsXG4gIGxvZ29Db21wb25lbnQsXG4gIGFjdGlvbkljb25zID0gZGVmYXVsdEFjdGlvbkljb25zLFxuICBtYXBTdGF0ZSxcbiAgb25MYXllclZpc0NvbmZpZ0NoYW5nZSxcbiAgb25Ub2dnbGVMYXllclZpc2liaWxpdHksXG4gIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydCxcbiAgb25DbGlja0NvbnRyb2xCdG4sXG4gIGFjdGl2ZVNpZGVQYW5lbCxcbiAgc2V0TWFwQ29udHJvbFNldHRpbmdzLFxuICBpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZCA9IHRydWUsXG4gIGNsYXNzTmFtZSxcbiAgaXNTcGxpdCxcbiAgc3BsaXRNYXBzLFxuICBvblRvZ2dsZUxheWVyRm9yTWFwLFxuICBNYXBDb250cm9sVG9vbHRpcCxcbiAgTWFwQ29udHJvbFBhbmVsLFxuICBNYXBMZWdlbmRcbn06IE1hcExlZ2VuZFBhbmVsUHJvcHMgJiBNYXBMZWdlbmRQYW5lbENvbXBvbmVudHMpID0+IHtcbiAgY29uc3QgaXNTaWRlUGFuZWxTaG93biA9IEJvb2xlYW4oYWN0aXZlU2lkZVBhbmVsKTtcbiAgY29uc3Qgc2V0dGluZ3MgPSBtYXBDb250cm9scz8ubWFwTGVnZW5kPy5zZXR0aW5ncztcblxuICBjb25zdCBtYXBMZWdlbmQgPSBtYXBDb250cm9scz8ubWFwTGVnZW5kIHx8ICh7fSBhcyBNYXBDb250cm9sTWFwTGVnZW5kKTtcbiAgY29uc3Qge2FjdGl2ZSwgZGlzYWJsZUVkaXR9ID0gbWFwTGVnZW5kIHx8IHt9O1xuICBjb25zdCByb290Q29udGV4dCA9IHVzZUNvbnRleHQoUm9vdENvbnRleHQpO1xuXG4gIGNvbnN0IG9uQ2xpY2sgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgb25DbGlja0NvbnRyb2xCdG4/LigpO1xuICAgIGlmIChtYXBDb250cm9scz8ubWFwRHJhdz8uYWN0aXZlKSB7XG4gICAgICBvblRvZ2dsZU1hcENvbnRyb2woJ21hcERyYXcnKTtcbiAgICB9XG4gICAgb25Ub2dnbGVNYXBDb250cm9sKCdtYXBMZWdlbmQnKTtcbiAgfSwgW29uQ2xpY2tDb250cm9sQnRuLCBvblRvZ2dsZU1hcENvbnRyb2wsIG1hcENvbnRyb2xzXSk7XG4gIGNvbnN0IG9uQ2xvc2VDbGljayA9IHVzZUNhbGxiYWNrKFxuICAgIGUgPT4ge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgb25Ub2dnbGVNYXBDb250cm9sKCdtYXBMZWdlbmQnKTtcbiAgICB9LFxuICAgIFtvblRvZ2dsZU1hcENvbnRyb2xdXG4gICk7XG5cbiAgLy8gSW4gc3BsaXQgdmlldyB0aGUgbWFwIGNvbnRyb2xzIChhbmQgdGhlcmVmb3JlIHRoaXMgbGVnZW5kKSBhcmUgb25seVxuICAvLyByZW5kZXJlZCBvbmNlLCBvbiB0aGUgcmlnaHQtc2lkZSAvIHByaW1hcnkgbWFwLiBUaGF0IGdhdGluZyBoYXBwZW5zIGluXG4gIC8vIE1hcENvbnRhaW5lciwgc28gbm8gcGVyLWluZGV4IHN1cHByZXNzaW9uIGlzIG5lZWRlZCBoZXJlIGFueW1vcmUuXG5cbiAgaWYgKCFtYXBMZWdlbmQuc2hvdykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgbGVnZW5kUGFuZWwgPSBhY3RpdmUgPyAoXG4gICAgPE1hcENvbnRyb2xQYW5lbFxuICAgICAgc2NhbGU9e3NjYWxlfVxuICAgICAgaGVhZGVyPVwiaGVhZGVyLmxheWVyTGVnZW5kXCJcbiAgICAgIHsuLi57b25DbGljazogb25DbG9zZUNsaWNrLCBwaW5uYWJsZTogZmFsc2UsIGRpc2FibGVDbG9zZTogZmFsc2V9fVxuICAgICAgaXNFeHBvcnQ9e2lzRXhwb3J0fVxuICAgICAgbG9nb0NvbXBvbmVudD17bG9nb0NvbXBvbmVudH1cbiAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydD17b25Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0fVxuICAgICAgaXNWaWV3cG9ydFVuc3luY0FsbG93ZWQ9e2lzVmlld3BvcnRVbnN5bmNBbGxvd2VkfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgPlxuICAgICAgPE1hcExlZ2VuZFxuICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgbGF5ZXJPcmRlcj17bGF5ZXJPcmRlcn1cbiAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICBkaXNhYmxlRWRpdD17ZGlzYWJsZUVkaXR9XG4gICAgICAgIGlzRXhwb3J0PXtpc0V4cG9ydH1cbiAgICAgICAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT17b25MYXllclZpc0NvbmZpZ0NoYW5nZX1cbiAgICAgICAgb25Ub2dnbGVMYXllclZpc2liaWxpdHk9e29uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5fVxuICAgICAgICBpc1NwbGl0PXtpc1NwbGl0fVxuICAgICAgICBzcGxpdE1hcHM9e3NwbGl0TWFwc31cbiAgICAgICAgb25NYXBUb2dnbGVMYXllcj17b25Ub2dnbGVMYXllckZvck1hcH1cbiAgICAgIC8+XG4gICAgPC9NYXBDb250cm9sUGFuZWw+XG4gICkgOiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHthY3RpdmUgPyAoXG4gICAgICAgIGhhc1BvcnRhYmxlV2lkdGgoYnJlYWtQb2ludFZhbHVlcykgPyAoXG4gICAgICAgICAgbGVnZW5kUGFuZWxcbiAgICAgICAgKSA6IGlzRXhwb3J0ID8gKFxuICAgICAgICAgIDxJbWFnZUV4cG9ydExlZ2VuZCBpc1NpZGVQYW5lbFNob3duPXtpc1NpZGVQYW5lbFNob3dufSBzZXR0aW5ncz17c2V0dGluZ3N9PlxuICAgICAgICAgICAge2xlZ2VuZFBhbmVsfVxuICAgICAgICAgIDwvSW1hZ2VFeHBvcnRMZWdlbmQ+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgY3JlYXRlUG9ydGFsKFxuICAgICAgICAgICAgPERyYWdnYWJsZUxlZ2VuZFxuICAgICAgICAgICAgICBpc1NpZGVQYW5lbFNob3duPXtpc1NpZGVQYW5lbFNob3dufVxuICAgICAgICAgICAgICBtYXBDb250cm9scz17bWFwQ29udHJvbHN9XG4gICAgICAgICAgICAgIHNldE1hcENvbnRyb2xTZXR0aW5ncz17c2V0TWFwQ29udHJvbFNldHRpbmdzfVxuICAgICAgICAgICAgICBtYXBTdGF0ZT17bWFwU3RhdGV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtsZWdlbmRQYW5lbH1cbiAgICAgICAgICAgIDwvRHJhZ2dhYmxlTGVnZW5kPixcbiAgICAgICAgICAgIHJvb3RDb250ZXh0Py5jdXJyZW50ID8/IGRvY3VtZW50LmJvZHlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICkgOiBudWxsfVxuICAgICAgeyFpc0V4cG9ydCA/IChcbiAgICAgICAgPE1hcENvbnRyb2xUb29sdGlwIGlkPVwic2hvdy1sZWdlbmRcIiBtZXNzYWdlPVwidG9vbHRpcC5zaG93TGVnZW5kXCI+XG4gICAgICAgICAgPE1hcENvbnRyb2xCdXR0b24gY2xhc3NOYW1lPVwibWFwLWNvbnRyb2wtYnV0dG9uIHNob3ctbGVnZW5kXCIgb25DbGljaz17b25DbGlja30+XG4gICAgICAgICAgICA8YWN0aW9uSWNvbnMubGVnZW5kIGhlaWdodD1cIjIycHhcIiAvPlxuICAgICAgICAgIDwvTWFwQ29udHJvbEJ1dHRvbj5cbiAgICAgICAgPC9NYXBDb250cm9sVG9vbHRpcD5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvPlxuICApO1xufTtcblxuZnVuY3Rpb24gTWFwTGVnZW5kUGFuZWxGYWN0b3J5KFxuICBNYXBDb250cm9sVG9vbHRpcDogUmV0dXJuVHlwZTx0eXBlb2YgTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5PixcbiAgTWFwQ29udHJvbFBhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBDb250cm9sUGFuZWxGYWN0b3J5PixcbiAgTWFwTGVnZW5kOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBMZWdlbmRGYWN0b3J5PlxuKTogTWFwTGVnZW5kUGFuZWxDb21wb25lbnRUeXBlIHtcbiAgcmV0dXJuIChwcm9wczogTWFwTGVnZW5kUGFuZWxQcm9wcykgPT4gKFxuICAgIDxNYXBMZWdlbmRQYW5lbENvbXBvbmVudFxuICAgICAgey4uLnByb3BzfVxuICAgICAgTWFwQ29udHJvbFRvb2x0aXA9e01hcENvbnRyb2xUb29sdGlwfVxuICAgICAgTWFwQ29udHJvbFBhbmVsPXtNYXBDb250cm9sUGFuZWx9XG4gICAgICBNYXBMZWdlbmQ9e01hcExlZ2VuZH1cbiAgICAvPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBNYXBMZWdlbmRQYW5lbEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsV0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBU0EsSUFBQUksaUJBQUEsR0FBQUQsdUJBQUEsQ0FBQUgsT0FBQTtBQUVBLElBQUFLLEtBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLE9BQUEsR0FBQVAsT0FBQTtBQUlBLElBQUFRLE9BQUEsR0FBQVIsT0FBQTtBQUVBLElBQUFTLE1BQUEsR0FBQVQsT0FBQTtBQUdBLElBQUFVLE1BQUEsR0FBQVYsT0FBQTtBQUNBLElBQUFXLGtCQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxRQUFBLEdBQUFaLE9BQUE7QUFD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
|
package/dist/map/map-legend.js
CHANGED
|
@@ -31,8 +31,7 @@ var _panelHeaderAction = _interopRequireDefault(require("../side-panel/panel-hea
|
|
|
31
31
|
var _reducers = require("@kepler.gl/reducers");
|
|
32
32
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6; // SPDX-License-Identifier: MIT
|
|
33
33
|
// Copyright contributors to the kepler.gl project
|
|
34
|
-
function
|
|
35
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
34
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
36
35
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
37
36
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
38
37
|
var StyledMapControlLegend = exports.StyledMapControlLegend = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding: 10px ", "px 10px\n ", "px;\n font-size: 11px;\n font-family: ", ";\n border-bottom-color: ", ";\n border-bottom-style: solid;\n border-bottom-width: ", ";\n width: ", "px;\n box-sizing: border-box;\n\n .legend--layer_name {\n font-size: 12px;\n padding-right: ", "px;\n color: ", ";\n font-weight: 500;\n }\n .legend--layer_type {\n color: ", ";\n font-weight: 500;\n font-size: 11px;\n padding-right: ", "px;\n }\n\n .legend--layer_size-title-row {\n display: flex;\n margin-top: 4px;\n padding-right: ", "px;\n align-items: center;\n }\n\n .legend--layer__title {\n }\n\n .legend--layer__item {\n padding-bottom: 4px;\n }\n .legend--layer_by {\n color: ", ";\n margin-top: 4px;\n }\n\n .legend--layer_color_field {\n color: ", ";\n font-weight: 500;\n }\n\n .legend--layer_color-legend {\n margin-top: 6px;\n }\n"])), function (props) {
|
|
@@ -507,4 +506,4 @@ function MapLegendFactory(LayerLegendHeader, LayerLegendContent) {
|
|
|
507
506
|
return MapLegend;
|
|
508
507
|
}
|
|
509
508
|
var _default = exports["default"] = MapLegendFactory;
|
|
510
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZDNDb2xvciIsIl9kM0Zvcm1hdCIsIl9yZWFjdEludGwiLCJfY29sb3JMZWdlbmQiLCJfcmFkaXVzTGVnZW5kIiwiX2NvbnN0YW50cyIsIl9sb2NhbGl6YXRpb24iLCJfdmlld3BvcnRNZXJjYXRvclByb2plY3QiLCJfaWNvbnMiLCJfcGFuZWxIZWFkZXJBY3Rpb24iLCJfcmVkdWNlcnMiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl90ZW1wbGF0ZU9iamVjdDQiLCJfdGVtcGxhdGVPYmplY3Q1IiwiX3RlbXBsYXRlT2JqZWN0NiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIlN0eWxlZE1hcENvbnRyb2xMZWdlbmQiLCJleHBvcnRzIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwibWFwQ29udHJvbCIsInBhZGRpbmciLCJmb250RmFtaWx5IiwicGFuZWxCb3JkZXJDb2xvciIsIiRsYXN0Iiwid2lkdGgiLCJ0ZXh0Q29sb3IiLCJzdWJ0ZXh0Q29sb3IiLCJ0ZXh0Q29sb3JIbCIsIlN0eWxlZExlZ2VuZEhlYWRlclJvdyIsIlN0eWxlZFZpc2liaWxpdHlUb2dnbGUiLCIkaXNWaXNpYmxlIiwiU3R5bGVkU3BsaXRWaXNpYmlsaXR5Q29udHJvbHMiLCJTdHlsZWRTcGxpdFNlcGFyYXRvciIsIlN0eWxlZEV4cGFuZFRvZ2dsZSIsIlZpc3VhbENoYW5uZWxNZXRyaWMiLCJfcmVmIiwibmFtZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJGb3JtYXR0ZWRNZXNzYWdlIiwiaWQiLCJMYXllckRlZmF1bHRMZWdlbmQiLCJfcmVmMiIsImxhYmVsIiwiU2luZ2xlQ29sb3JMZWdlbmRGYWN0b3J5IiwiZGVwcyIsIkxlZ2VuZFJvd0ZhY3RvcnkiLCJMZWdlbmRSb3ciLCJTaW5nbGVDb2xvckxlZ2VuZCIsIl9yZWYzIiwiY29sb3IiLCJkaXNwbGF5TGFiZWwiLCJCb29sZWFuIiwiQXJyYXkiLCJpc0FycmF5IiwicmdiIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInRvU3RyaW5nIiwiZGlzcGxheU5hbWUiLCJSZWFjdCIsIm1lbW8iLCJMYXllckNvbG9yTGVnZW5kRmFjdG9yeSIsIkNvbG9yTGVnZW5kRmFjdG9yeSIsIlBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeSIsIkNvbG9yTGVnZW5kIiwiUGFuZWxIZWFkZXJBY3Rpb24iLCJMYXllckNvbG9yTGVnZW5kIiwiX3JlZjQiLCJkZXNjcmlwdGlvbiIsImNvbmZpZyIsImxheWVyIiwiY29sb3JDaGFubmVsIiwiZGlzYWJsZUVkaXQiLCJvbkxheWVyVmlzQ29uZmlnQ2hhbmdlIiwiaXNFeHBvcnQiLCJtYXBTdGF0ZSIsImFjdGlvbkljb25zIiwiaW50bCIsInVzZUludGwiLCJlbmFibGVDb2xvckJ5IiwibWVhc3VyZSIsInNjYWxlIiwiZmllbGQiLCJkb21haW4iLCJyYW5nZSIsInByb3BlcnR5IiwiZml4ZWQiLCJfbWFwIiwibWFwIiwiayIsIl9tYXAyIiwiX3NsaWNlZFRvQXJyYXkyIiwiY29sb3JTY2FsZSIsImNvbG9yRmllbGQiLCJjb2xvckRvbWFpbiIsImlzRml4ZWQiLCJ2aXNDb25maWciLCJjb2xvclJhbmdlIiwib25VcGRhdGVDb2xvckxlZ2VuZCIsInVzZUNhbGxiYWNrIiwiY29sb3JMZWdlbmRzIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiaXNFeHBhbmRlZCIsInNldElzRXhwYW5kZWQiLCJoYW5kbGVUb2dnbGVFeHBhbmRlZCIsIm9uQ2xpY2siLCJJY29uQ29tcG9uZW50IiwiZXhwYW5kZWQiLCJjb2xsYXBzZWQiLCJzY2FsZVR5cGUiLCJmaWVsZFR5cGUiLCJ0eXBlIiwibGFiZWxGb3JtYXQiLCJkaXNwbGF5Rm9ybWF0IiwiZDNGb3JtYXQiLCJmb3JtYXRNZXNzYWdlIiwiY29uY2F0Iiwia2V5IiwiZGVmYXVsdE1lc3NhZ2UiLCJnZXRMYXllclJhZGl1c1NjYWxlTWV0ZXJzVG9QaXhlbHNNdWx0aXBsaWVyIiwiX2dldERpc3RhbmNlU2NhbGVzIiwiZ2V0RGlzdGFuY2VTY2FsZXMiLCJtZXRlcnNQZXJQaXhlbCIsImZpeGVkUmFkaXVzIiwic2l6ZUZpZWxkIiwiZ2V0UmFkaXVzU2NhbGVCeVpvb20iLCJMYXllclJhZGl1c0xlZ2VuZCIsIl9yZWY1IiwidmlzdWFsQ2hhbm5lbCIsImdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbiIsImVuYWJsZVNpemVCeSIsIl9tYXAzIiwiX21hcDQiLCJzaXplU2NhbGUiLCJzaXplRG9tYWluIiwic2l6ZVJhbmdlIiwicmFkaXVzTXVsdGlwbGllciIsInYiLCJpc0NvbG9yQ2hhbm5lbCIsIkNIQU5ORUxfU0NBTEVTIiwiY29sb3JBZ2dyIiwiaW5jbHVkZXMiLCJjaGFubmVsU2NhbGVUeXBlIiwiaXNSYWRpdXNDaGFubmVsIiwicmFkaXVzIiwiTGF5ZXJMZWdlbmRIZWFkZXJGYWN0b3J5IiwiTGF5ZXJMZWdlbmRIZWFkZXIiLCJfcmVmNiIsIl9zcGxpdE1hcHMkIiwiX3NwbGl0TWFwcyQyIiwib3B0aW9ucyIsIm9uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5IiwiaXNTcGxpdCIsInNwbGl0TWFwcyIsIm9uTWFwVG9nZ2xlTGF5ZXIiLCJvblRvZ2dsZUV4cGFuZGVkIiwiaXNWaXNpYmxlIiwib25Ub2dnbGUiLCJvblRvZ2dsZUxlZnQiLCJvblRvZ2dsZVJpZ2h0Iiwic2hvd0xheWVyTmFtZSIsImlzTGVmdFZpc2libGUiLCJsYXllcnMiLCJpc1JpZ2h0VmlzaWJsZSIsImlzQW55VmlzaWJsZSIsInN0eWxlIiwib3BhY2l0eSIsImZsZXgiLCJBcnJvd0Rvd24iLCJoZWlnaHQiLCJBcnJvd1JpZ2h0IiwiRXllU2VlbiIsIkV5ZVVuc2VlbiIsImRlZmF1bHRBY3Rpb25JY29ucyIsIkxheWVyTGVnZW5kQ29udGVudEZhY3RvcnkiLCJMYXllckxlZ2VuZENvbnRlbnQiLCJfcmVmNyIsImNvbnRhaW5lclciLCJ2aXN1YWxDaGFubmVscyIsImdldExlZ2VuZFZpc3VhbENoYW5uZWxzIiwiY2hhbm5lbEtleXMiLCJ2YWx1ZXMiLCJjb2xvckNoYW5uZWxzIiwibm9uQ29sb3JDaGFubmVscyIsInZjIiwiRElNRU5TSU9OUyIsImNvbG9yQ2hhbm5lbFRvUmVuZGVyIiwiY2MiLCJfbGF5ZXIkZ2V0VmlzdWFsQ2hhbm4iLCJjb25kaXRpb24iLCJGcmFnbWVudCIsIm1hdGNoQ29uZGl0aW9uIiwiZW5hYmxlZCIsImRlZmF1bHRNZWFzdXJlIiwiTWFwTGVnZW5kRmFjdG9yeSIsIkxheWVyTGVnZW5kSXRlbSIsIl9yZWY4IiwiaXNMYXN0IiwiaXNMYXllclZpc2libGUiLCJfdXNlU3RhdGUzIiwiX3VzZVN0YXRlNCIsInByZXYiLCJ1bmRlZmluZWQiLCJNYXBMZWdlbmQiLCJfcmVmOSIsIl9yZWY5JGxheWVycyIsImxheWVyT3JkZXIiLCJfcmVmOSRhY3Rpb25JY29ucyIsIm9yZGVyZWRMYXllcnMiLCJnZXRGbGF0TGF5ZXJPcmRlciIsInJlZHVjZSIsImFjYyIsImZpbmQiLCJsIiwiaW5kZXgiLCJfc3BsaXRNYXBzJDMiLCJfc3BsaXRNYXBzJDQiLCJpc1ZhbGlkVG9TYXZlIiwiaGlkZGVuIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFwL21hcC1sZWdlbmQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0ZDLCB1c2VDYWxsYmFjaywgdXNlU3RhdGUsIENvbXBvbmVudFR5cGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtyZ2J9IGZyb20gJ2QzLWNvbG9yJztcbmltcG9ydCB7Zm9ybWF0IGFzIGQzRm9ybWF0fSBmcm9tICdkMy1mb3JtYXQnO1xuaW1wb3J0IHt1c2VJbnRsfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCBDb2xvckxlZ2VuZEZhY3RvcnksIHtMZWdlbmRSb3dGYWN0b3J5fSBmcm9tICcuLi9jb21tb24vY29sb3ItbGVnZW5kJztcbmltcG9ydCBSYWRpdXNMZWdlbmQgZnJvbSAnLi4vY29tbW9uL3JhZGl1cy1sZWdlbmQnO1xuaW1wb3J0IHtDSEFOTkVMX1NDQUxFUywgRElNRU5TSU9OU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge0xheWVyLCBMYXllckJhc2VDb25maWcsIFZpc3VhbENoYW5uZWwsIFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbn0gZnJvbSAnQGtlcGxlci5nbC9sYXllcnMnO1xuaW1wb3J0IHtMYXllclZpc0NvbmZpZywgTGF5ZXJPcmRlciwgTWFwU3RhdGUsIFJHQkNvbG9yfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7Z2V0RGlzdGFuY2VTY2FsZXN9IGZyb20gJ3ZpZXdwb3J0LW1lcmNhdG9yLXByb2plY3QnO1xuaW1wb3J0IHtBcnJvd0Rvd24sIEFycm93UmlnaHQsIEV5ZVNlZW4sIEV5ZVVuc2Vlbn0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCBQYW5lbEhlYWRlckFjdGlvbkZhY3RvcnkgZnJvbSAnLi4vc2lkZS1wYW5lbC9wYW5lbC1oZWFkZXItYWN0aW9uJztcbmltcG9ydCB7Z2V0RmxhdExheWVyT3JkZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvcmVkdWNlcnMnO1xuXG5pbnRlcmZhY2UgU3R5bGVkTWFwQ29udHJvbExlZ2VuZFByb3BzIHtcbiAgd2lkdGg/OiBudW1iZXI7XG4gICRsYXN0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1hcENvbnRyb2xMZWdlbmQgPSBzdHlsZWQuZGl2PFN0eWxlZE1hcENvbnRyb2xMZWdlbmRQcm9wcz5gXG4gIHBhZGRpbmc6IDEwcHggJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5tYXBDb250cm9sLnBhZGRpbmd9cHggMTBweFxuICAgICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC5wYWRkaW5nfXB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRGYW1pbHl9O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQm9yZGVyQ29sb3J9O1xuICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogJHtwcm9wcyA9PiAocHJvcHMuJGxhc3QgPyAwIDogJzFweCcpfTtcbiAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMud2lkdGh9cHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG5cbiAgLmxlZ2VuZC0tbGF5ZXJfbmFtZSB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIHBhZGRpbmctcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC5wYWRkaW5nfXB4O1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgfVxuICAubGVnZW5kLS1sYXllcl90eXBlIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3J9O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIHBhZGRpbmctcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC5wYWRkaW5nfXB4O1xuICB9XG5cbiAgLmxlZ2VuZC0tbGF5ZXJfc2l6ZS10aXRsZS1yb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICAgIHBhZGRpbmctcmlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC5wYWRkaW5nfXB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIH1cblxuICAubGVnZW5kLS1sYXllcl9fdGl0bGUge1xuICB9XG5cbiAgLmxlZ2VuZC0tbGF5ZXJfX2l0ZW0ge1xuICAgIHBhZGRpbmctYm90dG9tOiA0cHg7XG4gIH1cbiAgLmxlZ2VuZC0tbGF5ZXJfYnkge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvcn07XG4gICAgbWFyZ2luLXRvcDogNHB4O1xuICB9XG5cbiAgLmxlZ2VuZC0tbGF5ZXJfY29sb3JfZmllbGQge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckhsfTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICB9XG5cbiAgLmxlZ2VuZC0tbGF5ZXJfY29sb3ItbGVnZW5kIHtcbiAgICBtYXJnaW4tdG9wOiA2cHg7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZExlZ2VuZEhlYWRlclJvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbmNvbnN0IFN0eWxlZFZpc2liaWxpdHlUb2dnbGUgPSBzdHlsZWQuZGl2PHskaXNWaXNpYmxlOiBib29sZWFufT5gXG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6ICR7cHJvcHMgPT4gKHByb3BzLiRpc1Zpc2libGUgPyBwcm9wcy50aGVtZS50ZXh0Q29sb3IgOiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3IpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgb3BhY2l0eTogJHtwcm9wcyA9PiAocHJvcHMuJGlzVmlzaWJsZSA/IDEgOiAwLjUpfTtcblxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkU3BsaXRWaXNpYmlsaXR5Q29udHJvbHMgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tbGVmdDogOHB4O1xuICBnYXA6IDRweDtcblxuICAke1N0eWxlZFZpc2liaWxpdHlUb2dnbGV9IHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkU3BsaXRTZXBhcmF0b3IgPSBzdHlsZWQuZGl2PHskaXNWaXNpYmxlOiBib29sZWFufT5gXG4gIHdpZHRoOiAxcHg7XG4gIGhlaWdodDogMTJweDtcbiAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiAocHJvcHMuJGlzVmlzaWJsZSA/IHByb3BzLnRoZW1lLnRleHRDb2xvciA6IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvcil9O1xuICBvcGFjaXR5OiAwLjM7XG5gO1xuXG5jb25zdCBTdHlsZWRFeHBhbmRUb2dnbGUgPSBzdHlsZWQuZGl2YFxuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1sZWZ0OiA2cHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gIG9wYWNpdHk6IDAuNztcblxuICAmOmhvdmVyIHtcbiAgICBvcGFjaXR5OiAxO1xuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgVmlzdWFsQ2hhbm5lbE1ldHJpYyA9ICh7bmFtZX0pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfX3RpdGxlXCI+XG4gICAgICA8c3BhbiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX2NvbG9yX2ZpZWxkXCI+XG4gICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXtuYW1lfSAvPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJTaXplTGVnZW5kUHJvcHMgPSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZyB8IHVuZGVmaW5lZDtcbn07XG5cbmV4cG9ydCBjb25zdCBMYXllckRlZmF1bHRMZWdlbmQ6IFJlYWN0LkZDPExheWVyU2l6ZUxlZ2VuZFByb3BzPiA9ICh7bGFiZWwsIG5hbWV9KSA9PlxuICBsYWJlbCA/IChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfc2l6ZS1zY2hlbWFcIj5cbiAgICAgIDxwPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX2J5XCI+e2xhYmVsID8gPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9e2xhYmVsfSAvPiA6IG51bGx9PC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX2J5XCI+IGJ5IDwvc3Bhbj5cbiAgICAgIDwvcD5cbiAgICAgIHtuYW1lICYmIDxWaXN1YWxDaGFubmVsTWV0cmljIG5hbWU9e25hbWV9IC8+fVxuICAgIDwvZGl2PlxuICApIDogbnVsbDtcblxuZXhwb3J0IHR5cGUgU2luZ2xlQ29sb3JMZWdlbmRQcm9wcyA9IHtcbiAgY29sb3I6IFJHQkNvbG9yO1xuICBsYWJlbD86IHN0cmluZztcbn07XG5cblNpbmdsZUNvbG9yTGVnZW5kRmFjdG9yeS5kZXBzID0gW0xlZ2VuZFJvd0ZhY3RvcnldO1xuXG5leHBvcnQgZnVuY3Rpb24gU2luZ2xlQ29sb3JMZWdlbmRGYWN0b3J5KExlZ2VuZFJvdzogUmV0dXJuVHlwZTx0eXBlb2YgTGVnZW5kUm93RmFjdG9yeT4pIHtcbiAgY29uc3QgU2luZ2xlQ29sb3JMZWdlbmQ6IFJlYWN0LkZDPFNpbmdsZUNvbG9yTGVnZW5kUHJvcHM+ID0gKHtjb2xvciwgbGFiZWx9KSA9PiAoXG4gICAgPExlZ2VuZFJvd1xuICAgICAgbGFiZWw9e2xhYmVsID8/ICcnfVxuICAgICAgZGlzcGxheUxhYmVsPXtCb29sZWFuKGxhYmVsKX1cbiAgICAgIGNvbG9yPXtBcnJheS5pc0FycmF5KGNvbG9yKSA/IHJnYiguLi5jb2xvcikudG9TdHJpbmcoKSA6IGNvbG9yfVxuICAgIC8+XG4gICk7XG5cbiAgU2luZ2xlQ29sb3JMZWdlbmQuZGlzcGxheU5hbWUgPSAnU2luZ2xlQ29sb3JMZWdlbmQnO1xuXG4gIHJldHVybiBSZWFjdC5tZW1vKFNpbmdsZUNvbG9yTGVnZW5kKTtcbn1cblxuZXhwb3J0IHR5cGUgTGF5ZXJDb2xvckxlZ2VuZFByb3BzID0ge1xuICBkZXNjcmlwdGlvbjogVmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uO1xuICBjb25maWc6IExheWVyQmFzZUNvbmZpZztcbiAgY29sb3JDaGFubmVsOiBWaXN1YWxDaGFubmVsO1xuICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlPzogKG9sZExheWVyOiBMYXllciwgbmV3VmlzQ29uZmlnOiBQYXJ0aWFsPExheWVyVmlzQ29uZmlnPikgPT4gdm9pZDtcbiAgbGF5ZXI6IExheWVyO1xuICBkaXNhYmxlRWRpdD86IGJvb2xlYW47XG4gIGlzRXhwb3J0PzogYm9vbGVhbjtcbiAgbWFwU3RhdGU/OiBNYXBTdGF0ZTtcbiAgYWN0aW9uSWNvbnM6IE1hcExlZ2VuZEljb25zO1xufTtcblxuTGF5ZXJDb2xvckxlZ2VuZEZhY3RvcnkuZGVwcyA9IFtcbiAgQ29sb3JMZWdlbmRGYWN0b3J5LFxuICBTaW5nbGVDb2xvckxlZ2VuZEZhY3RvcnksXG4gIFBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeVxuXTtcbmV4cG9ydCBmdW5jdGlvbiBMYXllckNvbG9yTGVnZW5kRmFjdG9yeShcbiAgQ29sb3JMZWdlbmQ6IFJldHVyblR5cGU8dHlwZW9mIENvbG9yTGVnZW5kRmFjdG9yeT4sXG4gIFNpbmdsZUNvbG9yTGVnZW5kOiBSZXR1cm5UeXBlPHR5cGVvZiBTaW5nbGVDb2xvckxlZ2VuZEZhY3Rvcnk+LFxuICBQYW5lbEhlYWRlckFjdGlvbjogUmV0dXJuVHlwZTx0eXBlb2YgUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5PlxuKSB7XG4gIGNvbnN0IExheWVyQ29sb3JMZWdlbmQ6IFJlYWN0LkZDPExheWVyQ29sb3JMZWdlbmRQcm9wcz4gPSAoe1xuICAgIGRlc2NyaXB0aW9uLFxuICAgIGNvbmZpZyxcbiAgICBsYXllcixcbiAgICBjb2xvckNoYW5uZWwsXG4gICAgZGlzYWJsZUVkaXQsXG4gICAgb25MYXllclZpc0NvbmZpZ0NoYW5nZSxcbiAgICBpc0V4cG9ydCxcbiAgICBtYXBTdGF0ZSxcbiAgICBhY3Rpb25JY29uc1xuICB9KSA9PiB7XG4gICAgY29uc3QgaW50bCA9IHVzZUludGwoKTtcbiAgICBjb25zdCBlbmFibGVDb2xvckJ5ID0gZGVzY3JpcHRpb24ubWVhc3VyZTtcbiAgICBjb25zdCB7c2NhbGUsIGZpZWxkLCBkb21haW4sIHJhbmdlLCBwcm9wZXJ0eSwgZml4ZWR9ID0gY29sb3JDaGFubmVsO1xuICAgIGNvbnN0IFtjb2xvclNjYWxlLCBjb2xvckZpZWxkLCBjb2xvckRvbWFpbl0gPSBbc2NhbGUsIGZpZWxkLCBkb21haW5dLm1hcChrID0+IGNvbmZpZ1trXSk7XG4gICAgY29uc3QgaXNGaXhlZCA9IGZpeGVkICYmIGNvbmZpZy52aXNDb25maWdbZml4ZWRdO1xuXG4gICAgY29uc3QgY29sb3JSYW5nZSA9IGNvbmZpZy52aXNDb25maWdbcmFuZ2VdO1xuICAgIGNvbnN0IG9uVXBkYXRlQ29sb3JMZWdlbmQgPSB1c2VDYWxsYmFjayhcbiAgICAgIGNvbG9yTGVnZW5kcyA9PiB7XG4gICAgICAgIGlmIChvbkxheWVyVmlzQ29uZmlnQ2hhbmdlKSB7XG4gICAgICAgICAgb25MYXllclZpc0NvbmZpZ0NoYW5nZShsYXllciwge1xuICAgICAgICAgICAgW3JhbmdlXToge1xuICAgICAgICAgICAgICAuLi5jb2xvclJhbmdlLFxuICAgICAgICAgICAgICBjb2xvckxlZ2VuZHNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtsYXllciwgb25MYXllclZpc0NvbmZpZ0NoYW5nZSwgY29sb3JSYW5nZSwgcmFuZ2VdXG4gICAgKTtcbiAgICBjb25zdCBbaXNFeHBhbmRlZCwgc2V0SXNFeHBhbmRlZF0gPSB1c2VTdGF0ZShpc0V4cG9ydCk7XG4gICAgY29uc3QgaGFuZGxlVG9nZ2xlRXhwYW5kZWQgPSAoKSA9PiBzZXRJc0V4cGFuZGVkKCFpc0V4cGFuZGVkKTtcbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX19pdGVtXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9jb2xvci1zY2hlbWFcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAge2VuYWJsZUNvbG9yQnkgPyAoXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9zaXplLXRpdGxlLXJvd1wiPlxuICAgICAgICAgICAgICAgIDxWaXN1YWxDaGFubmVsTWV0cmljIG5hbWU9e2VuYWJsZUNvbG9yQnl9IC8+XG4gICAgICAgICAgICAgICAgeyFpc0V4cG9ydCA/IChcbiAgICAgICAgICAgICAgICAgIDxQYW5lbEhlYWRlckFjdGlvblxuICAgICAgICAgICAgICAgICAgICBpZD1cImxlZ2VuZC1jb2xsYXBzZS1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVUb2dnbGVFeHBhbmRlZH1cbiAgICAgICAgICAgICAgICAgICAgSWNvbkNvbXBvbmVudD17aXNFeHBhbmRlZCA/IGFjdGlvbkljb25zLmV4cGFuZGVkIDogYWN0aW9uSWNvbnMuY29sbGFwc2VkfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9jb2xvci1sZWdlbmRcIj5cbiAgICAgICAgICAgICAge2VuYWJsZUNvbG9yQnkgPyAoXG4gICAgICAgICAgICAgICAgPENvbG9yTGVnZW5kXG4gICAgICAgICAgICAgICAgICBsYXllcj17bGF5ZXJ9XG4gICAgICAgICAgICAgICAgICBpc0V4cGFuZGVkPXtpc0V4cGFuZGVkfVxuICAgICAgICAgICAgICAgICAgc2NhbGVUeXBlPXtjb2xvclNjYWxlfVxuICAgICAgICAgICAgICAgICAgZGlzcGxheUxhYmVsXG4gICAgICAgICAgICAgICAgICBkb21haW49e2NvbG9yRG9tYWlufVxuICAgICAgICAgICAgICAgICAgZmllbGRUeXBlPXsoY29sb3JGaWVsZCAmJiBjb2xvckZpZWxkLnR5cGUpIHx8ICdyZWFsJ31cbiAgICAgICAgICAgICAgICAgIHJhbmdlPXtjb2xvclJhbmdlfVxuICAgICAgICAgICAgICAgICAgb25VcGRhdGVDb2xvckxlZ2VuZD17b25VcGRhdGVDb2xvckxlZ2VuZH1cbiAgICAgICAgICAgICAgICAgIGRpc2FibGVFZGl0PXtkaXNhYmxlRWRpdCB8fCBCb29sZWFuKGlzRXhwb3J0KX1cbiAgICAgICAgICAgICAgICAgIGlzRml4ZWQ9e2lzRml4ZWR9XG4gICAgICAgICAgICAgICAgICBtYXBTdGF0ZT17bWFwU3RhdGV9XG4gICAgICAgICAgICAgICAgICBsYWJlbEZvcm1hdD17XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yRmllbGQ/LmRpc3BsYXlGb3JtYXQgPyBkM0Zvcm1hdChjb2xvckZpZWxkPy5kaXNwbGF5Rm9ybWF0KSA6IG51bGxcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxTaW5nbGVDb2xvckxlZ2VuZFxuICAgICAgICAgICAgICAgICAgY29sb3I9e2NvbmZpZy52aXNDb25maWdbcHJvcGVydHldIHx8IGNvbmZpZ1twcm9wZXJ0eV0gfHwgY29uZmlnLmNvbG9yfVxuICAgICAgICAgICAgICAgICAgbGFiZWw9e2ludGwuZm9ybWF0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBgbWFwTGVnZW5kLmxheWVycy4ke2xheWVyLnR5cGV9LnNpbmdsZUNvbG9yLiR7Y29sb3JDaGFubmVsLmtleX1gLFxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TWVzc2FnZTogaW50bC5mb3JtYXRNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICAgICAgICBpZDogYG1hcExlZ2VuZC5sYXllcnMuZGVmYXVsdC5zaW5nbGVDb2xvci4ke2NvbG9yQ2hhbm5lbC5rZXl9YCxcbiAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TWVzc2FnZTogJyAnIC8vIG11c3RuJ3QgYmUgZW1wdHkgc3RyaW5nIG9yIGlkIHdpbGwgYmUgdXNlZFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH07XG5cbiAgTGF5ZXJDb2xvckxlZ2VuZC5kaXNwbGF5TmFtZSA9ICdMYXllckNvbG9yTGVnZW5kJztcbiAgcmV0dXJuIFJlYWN0Lm1lbW8oTGF5ZXJDb2xvckxlZ2VuZCk7XG59XG5cbmZ1bmN0aW9uIGdldExheWVyUmFkaXVzU2NhbGVNZXRlcnNUb1BpeGVsc011bHRpcGxpZXIobGF5ZXIsIG1hcFN0YXRlKSB7XG4gIC8vIEB0cy1pZ25vcmUgdGhpcyBhY3R1YWxseSBleGlzdFxuICBjb25zdCB7bWV0ZXJzUGVyUGl4ZWx9ID0gZ2V0RGlzdGFuY2VTY2FsZXMobWFwU3RhdGUpO1xuICAvLyBpZiBubyBmaWVsZCBzaXplIGlzIGRlZmluZWQgd2UgbmVlZCB0byBwYXNzIGZpeGVkIHJhZGl1cyA9IGZhbHNlXG4gIGNvbnN0IGZpeGVkUmFkaXVzID0gbGF5ZXIuY29uZmlnLnZpc0NvbmZpZy5maXhlZFJhZGl1cyAmJiBCb29sZWFuKGxheWVyLmNvbmZpZy5zaXplRmllbGQpO1xuICByZXR1cm4gbGF5ZXIuZ2V0UmFkaXVzU2NhbGVCeVpvb20obWFwU3RhdGUsIGZpeGVkUmFkaXVzKSAvIG1ldGVyc1BlclBpeGVsWzBdO1xufVxuXG5leHBvcnQgdHlwZSBNYXBMZWdlbmRJY29ucyA9IHtcbiAgZXhwYW5kZWQ6IENvbXBvbmVudFR5cGU8YW55PjtcbiAgY29sbGFwc2VkOiBDb21wb25lbnRUeXBlPGFueT47XG59O1xuXG5leHBvcnQgdHlwZSBMYXllclJhZGl1c0xlZ2VuZFByb3BzID0ge1xuICBsYXllcjogTGF5ZXI7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGlzRXhwb3J0PzogYm9vbGVhbjtcbiAgdmlzdWFsQ2hhbm5lbDogVmlzdWFsQ2hhbm5lbDtcbn07XG5cbmV4cG9ydCBjb25zdCBMYXllclJhZGl1c0xlZ2VuZDogRkM8TGF5ZXJSYWRpdXNMZWdlbmRQcm9wcz4gPSBSZWFjdC5tZW1vKFxuICAoe2xheWVyLCB3aWR0aCwgdmlzdWFsQ2hhbm5lbCwgbWFwU3RhdGV9KSA9PiB7XG4gICAgY29uc3QgZGVzY3JpcHRpb24gPSBsYXllci5nZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24odmlzdWFsQ2hhbm5lbC5rZXkpO1xuICAgIGNvbnN0IGNvbmZpZyA9IGxheWVyLmNvbmZpZztcblxuICAgIGNvbnN0IGVuYWJsZVNpemVCeSA9IGRlc2NyaXB0aW9uLm1lYXN1cmU7XG4gICAgY29uc3Qge3NjYWxlLCBmaWVsZCwgZG9tYWluLCByYW5nZX0gPSB2aXN1YWxDaGFubmVsO1xuICAgIGNvbnN0IFtzaXplU2NhbGUsIHNpemVGaWVsZCwgc2l6ZURvbWFpbl0gPSBbc2NhbGUsIGZpZWxkLCBkb21haW5dLm1hcChrID0+IGNvbmZpZ1trXSk7XG4gICAgbGV0IHNpemVSYW5nZSA9IGNvbmZpZy52aXNDb25maWdbcmFuZ2VdO1xuXG4gICAgaWYgKG1hcFN0YXRlKSB7XG4gICAgICBjb25zdCByYWRpdXNNdWx0aXBsaWVyID0gZ2V0TGF5ZXJSYWRpdXNTY2FsZU1ldGVyc1RvUGl4ZWxzTXVsdGlwbGllcihsYXllciwgbWFwU3RhdGUpO1xuICAgICAgc2l6ZVJhbmdlID0gc2l6ZVJhbmdlLm1hcCh2ID0+IHYgKiByYWRpdXNNdWx0aXBsaWVyKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX3NpemUtc2NoZW1hXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHtlbmFibGVTaXplQnkgPyA8VmlzdWFsQ2hhbm5lbE1ldHJpYyBuYW1lPXtlbmFibGVTaXplQnl9IC8+IDogbnVsbH1cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9zaXplLWxlZ2VuZFwiPlxuICAgICAgICAgICAgICB7ZW5hYmxlU2l6ZUJ5ID8gKFxuICAgICAgICAgICAgICAgIDxSYWRpdXNMZWdlbmRcbiAgICAgICAgICAgICAgICAgIHNjYWxlVHlwZT17c2l6ZVNjYWxlfVxuICAgICAgICAgICAgICAgICAgZG9tYWluPXtzaXplRG9tYWlufVxuICAgICAgICAgICAgICAgICAgZmllbGRUeXBlPXsoc2l6ZUZpZWxkICYmIHNpemVGaWVsZC50eXBlKSB8fCAncmVhbCd9XG4gICAgICAgICAgICAgICAgICByYW5nZT17c2l6ZVJhbmdlfVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxuKTtcblxuY29uc3QgaXNDb2xvckNoYW5uZWwgPSB2aXN1YWxDaGFubmVsID0+XG4gIFtDSEFOTkVMX1NDQUxFUy5jb2xvciwgQ0hBTk5FTF9TQ0FMRVMuY29sb3JBZ2dyXS5pbmNsdWRlcyh2aXN1YWxDaGFubmVsLmNoYW5uZWxTY2FsZVR5cGUpO1xuXG5leHBvcnQgdHlwZSBMYXllckxlZ2VuZEhlYWRlclByb3BzID0ge1xuICBsYXllcjogTGF5ZXI7XG4gIG9wdGlvbnM/OiB7XG4gICAgc2hvd0xheWVyTmFtZT86IGJvb2xlYW47XG4gIH07XG4gIGlzRXhwb3J0PzogYm9vbGVhbjtcbiAgb25Ub2dnbGVMYXllclZpc2liaWxpdHk/OiAobGF5ZXI6IExheWVyKSA9PiB2b2lkO1xuICBpc1NwbGl0PzogYm9vbGVhbjtcbiAgc3BsaXRNYXBzPzoge2xheWVyczoge1trZXk6IHN0cmluZ106IGJvb2xlYW59fVtdO1xuICBvbk1hcFRvZ2dsZUxheWVyPzogKG1hcEluZGV4OiBudW1iZXIsIGxheWVySWQ6IHN0cmluZykgPT4gdm9pZDtcbiAgaXNFeHBhbmRlZD86IGJvb2xlYW47XG4gIG9uVG9nZ2xlRXhwYW5kZWQ/OiAoKSA9PiB2b2lkO1xufTtcblxuY29uc3QgaXNSYWRpdXNDaGFubmVsID0gdmlzdWFsQ2hhbm5lbCA9PlxuICBbQ0hBTk5FTF9TQ0FMRVMucmFkaXVzXS5pbmNsdWRlcyh2aXN1YWxDaGFubmVsLmNoYW5uZWxTY2FsZVR5cGUpO1xuXG5leHBvcnQgZnVuY3Rpb24gTGF5ZXJMZWdlbmRIZWFkZXJGYWN0b3J5KCkge1xuICBjb25zdCBMYXllckxlZ2VuZEhlYWRlcjogUmVhY3QuRkM8TGF5ZXJMZWdlbmRIZWFkZXJQcm9wcz4gPSAoe1xuICAgIG9wdGlvbnMsXG4gICAgbGF5ZXIsXG4gICAgaXNFeHBvcnQsXG4gICAgb25Ub2dnbGVMYXllclZpc2liaWxpdHksXG4gICAgaXNTcGxpdCxcbiAgICBzcGxpdE1hcHMsXG4gICAgb25NYXBUb2dnbGVMYXllcixcbiAgICBpc0V4cGFuZGVkLFxuICAgIG9uVG9nZ2xlRXhwYW5kZWRcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGlzVmlzaWJsZSA9IGxheWVyLmNvbmZpZy5pc1Zpc2libGU7XG5cbiAgICBjb25zdCBvblRvZ2dsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChvblRvZ2dsZUxheWVyVmlzaWJpbGl0eSkge1xuICAgICAgICBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eShsYXllcik7XG4gICAgICB9XG4gICAgfSwgW2xheWVyLCBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eV0pO1xuXG4gICAgY29uc3Qgb25Ub2dnbGVMZWZ0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKG9uTWFwVG9nZ2xlTGF5ZXIpIHtcbiAgICAgICAgb25NYXBUb2dnbGVMYXllcigwLCBsYXllci5pZCk7XG4gICAgICB9XG4gICAgfSwgW2xheWVyLCBvbk1hcFRvZ2dsZUxheWVyXSk7XG5cbiAgICBjb25zdCBvblRvZ2dsZVJpZ2h0ID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgaWYgKG9uTWFwVG9nZ2xlTGF5ZXIpIHtcbiAgICAgICAgb25NYXBUb2dnbGVMYXllcigxLCBsYXllci5pZCk7XG4gICAgICB9XG4gICAgfSwgW2xheWVyLCBvbk1hcFRvZ2dsZUxheWVyXSk7XG5cbiAgICBpZiAob3B0aW9ucz8uc2hvd0xheWVyTmFtZSA9PT0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IGlzTGVmdFZpc2libGUgPVxuICAgICAgaXNTcGxpdCAmJiBzcGxpdE1hcHMgJiYgc3BsaXRNYXBzLmxlbmd0aCA+IDFcbiAgICAgICAgPyBpc1Zpc2libGUgJiYgQm9vbGVhbihzcGxpdE1hcHNbMF0/LmxheWVycz8uW2xheWVyLmlkXSlcbiAgICAgICAgOiBpc1Zpc2libGU7XG4gICAgY29uc3QgaXNSaWdodFZpc2libGUgPVxuICAgICAgaXNTcGxpdCAmJiBzcGxpdE1hcHMgJiYgc3BsaXRNYXBzLmxlbmd0aCA+IDFcbiAgICAgICAgPyBpc1Zpc2libGUgJiYgQm9vbGVhbihzcGxpdE1hcHNbMV0/LmxheWVycz8uW2xheWVyLmlkXSlcbiAgICAgICAgOiBpc1Zpc2libGU7XG4gICAgY29uc3QgaXNBbnlWaXNpYmxlID0gaXNMZWZ0VmlzaWJsZSB8fCBpc1JpZ2h0VmlzaWJsZTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTGVnZW5kSGVhZGVyUm93PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfbmFtZVwiIHN0eWxlPXt7b3BhY2l0eTogaXNBbnlWaXNpYmxlID8gMSA6IDAuNSwgZmxleDogMX19PlxuICAgICAgICAgIHtsYXllci5jb25maWcubGFiZWx9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB7b25Ub2dnbGVFeHBhbmRlZCA/IChcbiAgICAgICAgICA8U3R5bGVkRXhwYW5kVG9nZ2xlIG9uQ2xpY2s9e29uVG9nZ2xlRXhwYW5kZWR9PlxuICAgICAgICAgICAge2lzRXhwYW5kZWQgPyA8QXJyb3dEb3duIGhlaWdodD1cIjEycHhcIiAvPiA6IDxBcnJvd1JpZ2h0IGhlaWdodD1cIjEycHhcIiAvPn1cbiAgICAgICAgICA8L1N0eWxlZEV4cGFuZFRvZ2dsZT5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIHshaXNFeHBvcnQgJiYgb25NYXBUb2dnbGVMYXllciAmJiBpc1NwbGl0ICYmIHNwbGl0TWFwcyAmJiBzcGxpdE1hcHMubGVuZ3RoID4gMSA/IChcbiAgICAgICAgICA8U3R5bGVkU3BsaXRWaXNpYmlsaXR5Q29udHJvbHM+XG4gICAgICAgICAgICA8U3R5bGVkVmlzaWJpbGl0eVRvZ2dsZSAkaXNWaXNpYmxlPXtpc0xlZnRWaXNpYmxlfSBvbkNsaWNrPXtvblRvZ2dsZUxlZnR9PlxuICAgICAgICAgICAgICB7aXNMZWZ0VmlzaWJsZSA/IDxFeWVTZWVuIGhlaWdodD1cIjEycHhcIiAvPiA6IDxFeWVVbnNlZW4gaGVpZ2h0PVwiMTJweFwiIC8+fVxuICAgICAgICAgICAgPC9TdHlsZWRWaXNpYmlsaXR5VG9nZ2xlPlxuICAgICAgICAgICAgPFN0eWxlZFNwbGl0U2VwYXJhdG9yICRpc1Zpc2libGU9e2lzQW55VmlzaWJsZX0gLz5cbiAgICAgICAgICAgIDxTdHlsZWRWaXNpYmlsaXR5VG9nZ2xlICRpc1Zpc2libGU9e2lzUmlnaHRWaXNpYmxlfSBvbkNsaWNrPXtvblRvZ2dsZVJpZ2h0fT5cbiAgICAgICAgICAgICAge2lzUmlnaHRWaXNpYmxlID8gPEV5ZVNlZW4gaGVpZ2h0PVwiMTJweFwiIC8+IDogPEV5ZVVuc2VlbiBoZWlnaHQ9XCIxMnB4XCIgLz59XG4gICAgICAgICAgICA8L1N0eWxlZFZpc2liaWxpdHlUb2dnbGU+XG4gICAgICAgICAgPC9TdHlsZWRTcGxpdFZpc2liaWxpdHlDb250cm9scz5cbiAgICAgICAgKSA6ICFpc0V4cG9ydCAmJiBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eSA/IChcbiAgICAgICAgICA8U3R5bGVkVmlzaWJpbGl0eVRvZ2dsZSAkaXNWaXNpYmxlPXtpc1Zpc2libGV9IG9uQ2xpY2s9e29uVG9nZ2xlfT5cbiAgICAgICAgICAgIHtpc1Zpc2libGUgPyA8RXllU2VlbiBoZWlnaHQ9XCIxMnB4XCIgLz4gOiA8RXllVW5zZWVuIGhlaWdodD1cIjEycHhcIiAvPn1cbiAgICAgICAgICA8L1N0eWxlZFZpc2liaWxpdHlUb2dnbGU+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgPC9TdHlsZWRMZWdlbmRIZWFkZXJSb3c+XG4gICAgKTtcbiAgfTtcbiAgcmV0dXJuIExheWVyTGVnZW5kSGVhZGVyO1xufVxuXG5jb25zdCBkZWZhdWx0QWN0aW9uSWNvbnMgPSB7XG4gIGV4cGFuZGVkOiBBcnJvd0Rvd24sXG4gIGNvbGxhcHNlZDogQXJyb3dSaWdodFxufTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJMZWdlbmRDb250ZW50UHJvcHMgPSB7XG4gIGxheWVyOiBMYXllcjtcbiAgY29udGFpbmVyVzogbnVtYmVyO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICBkaXNhYmxlRWRpdD86IGJvb2xlYW47XG4gIGlzRXhwb3J0PzogYm9vbGVhbjtcbiAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT86IChvbGRMYXllcjogTGF5ZXIsIG5ld1Zpc0NvbmZpZzogUGFydGlhbDxMYXllclZpc0NvbmZpZz4pID0+IHZvaWQ7XG4gIGFjdGlvbkljb25zOiBNYXBMZWdlbmRJY29ucztcbn07XG5cbkxheWVyTGVnZW5kQ29udGVudEZhY3RvcnkuZGVwcyA9IFtMYXllckNvbG9yTGVnZW5kRmFjdG9yeV07XG5cbmV4cG9ydCBmdW5jdGlvbiBMYXllckxlZ2VuZENvbnRlbnRGYWN0b3J5KFxuICBMYXllckNvbG9yTGVnZW5kOiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllckNvbG9yTGVnZW5kRmFjdG9yeT5cbikge1xuICBjb25zdCBMYXllckxlZ2VuZENvbnRlbnQ6IFJlYWN0LkZDPExheWVyTGVnZW5kQ29udGVudFByb3BzPiA9ICh7XG4gICAgbGF5ZXIsXG4gICAgY29udGFpbmVyVyxcbiAgICBtYXBTdGF0ZSxcbiAgICBkaXNhYmxlRWRpdCxcbiAgICBpc0V4cG9ydCxcbiAgICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlLFxuICAgIGFjdGlvbkljb25zXG4gIH0pID0+IHtcbiAgICBjb25zdCB2aXN1YWxDaGFubmVscyA9IGxheWVyLmdldExlZ2VuZFZpc3VhbENoYW5uZWxzKCk7XG4gICAgY29uc3QgY2hhbm5lbEtleXMgPSBPYmplY3QudmFsdWVzKHZpc3VhbENoYW5uZWxzKTtcbiAgICBjb25zdCBjb2xvckNoYW5uZWxzID0gY2hhbm5lbEtleXMuZmlsdGVyKGlzQ29sb3JDaGFubmVsKSBhcyBWaXN1YWxDaGFubmVsW107XG4gICAgY29uc3Qgbm9uQ29sb3JDaGFubmVscyA9IGNoYW5uZWxLZXlzLmZpbHRlcih2YyA9PiAhaXNDb2xvckNoYW5uZWwodmMpKTtcbiAgICBjb25zdCB3aWR0aCA9IGNvbnRhaW5lclcgLSAyICogRElNRU5TSU9OUy5tYXBDb250cm9sLnBhZGRpbmc7XG5cbiAgICAvLyByZW5kZXIgY29sb3IgYnkgY2hhbmVsIG9ubHlcbiAgICBsZXQgY29sb3JDaGFubmVsVG9SZW5kZXIgPSBjb2xvckNoYW5uZWxzLmZpbHRlcihcbiAgICAgIGNjID0+XG4gICAgICAgICghY2MuY29uZGl0aW9uIHx8IGNjLmNvbmRpdGlvbihsYXllci5jb25maWcpKSAmJlxuICAgICAgICBsYXllci5nZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24oY2Mua2V5KT8ubWVhc3VyZVxuICAgICk7XG4gICAgLy8gaWYgbm8gY29sb3IgYnkgY2hhbmVsLCByZW5kZXIgcmVzdFxuICAgIGlmICghY29sb3JDaGFubmVsVG9SZW5kZXIubGVuZ3RoKSB7XG4gICAgICBjb2xvckNoYW5uZWxUb1JlbmRlciA9IGNvbG9yQ2hhbm5lbHMuZmlsdGVyKFxuICAgICAgICBjYyA9PiAhY2MuY29uZGl0aW9uIHx8IGNjLmNvbmRpdGlvbihsYXllci5jb25maWcpXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge2NvbG9yQ2hhbm5lbFRvUmVuZGVyLm1hcChjb2xvckNoYW5uZWwgPT4gKFxuICAgICAgICAgIDxMYXllckNvbG9yTGVnZW5kXG4gICAgICAgICAgICBrZXk9e2NvbG9yQ2hhbm5lbC5rZXl9XG4gICAgICAgICAgICBjb2xvckNoYW5uZWw9e2NvbG9yQ2hhbm5lbH1cbiAgICAgICAgICAgIGNvbmZpZz17bGF5ZXIuY29uZmlnfVxuICAgICAgICAgICAgZGVzY3JpcHRpb249e2xheWVyLmdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbihjb2xvckNoYW5uZWwua2V5KX1cbiAgICAgICAgICAgIGxheWVyPXtsYXllcn1cbiAgICAgICAgICAgIGlzRXhwb3J0PXtpc0V4cG9ydH1cbiAgICAgICAgICAgIGRpc2FibGVFZGl0PXtkaXNhYmxlRWRpdH1cbiAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U9e29uTGF5ZXJWaXNDb25maWdDaGFuZ2V9XG4gICAgICAgICAgICBhY3Rpb25JY29ucz17YWN0aW9uSWNvbnN9XG4gICAgICAgICAgLz5cbiAgICAgICAgKSl9XG4gICAgICAgIHtub25Db2xvckNoYW5uZWxzLm1hcCgodmlzdWFsQ2hhbm5lbDogVmlzdWFsQ2hhbm5lbCkgPT4ge1xuICAgICAgICAgIGNvbnN0IG1hdGNoQ29uZGl0aW9uID0gIXZpc3VhbENoYW5uZWwuY29uZGl0aW9uIHx8IHZpc3VhbENoYW5uZWwuY29uZGl0aW9uKGxheWVyLmNvbmZpZyk7XG4gICAgICAgICAgY29uc3QgZW5hYmxlZCA9IGxheWVyLmNvbmZpZ1t2aXN1YWxDaGFubmVsLmZpZWxkXSB8fCB2aXN1YWxDaGFubmVsLmRlZmF1bHRNZWFzdXJlO1xuXG4gICAgICAgICAgaWYgKG1hdGNoQ29uZGl0aW9uICYmIGVuYWJsZWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gbGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKHZpc3VhbENoYW5uZWwua2V5KTtcbiAgICAgICAgICAgIGlmIChpc1JhZGl1c0NoYW5uZWwodmlzdWFsQ2hhbm5lbCkpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8TGF5ZXJSYWRpdXNMZWdlbmRcbiAgICAgICAgICAgICAgICAgIGtleT17dmlzdWFsQ2hhbm5lbC5rZXl9XG4gICAgICAgICAgICAgICAgICBsYXllcj17bGF5ZXJ9XG4gICAgICAgICAgICAgICAgICBtYXBTdGF0ZT17bWFwU3RhdGV9XG4gICAgICAgICAgICAgICAgICB3aWR0aD17d2lkdGh9XG4gICAgICAgICAgICAgICAgICB2aXN1YWxDaGFubmVsPXt2aXN1YWxDaGFubmVsfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICA8TGF5ZXJEZWZhdWx0TGVnZW5kXG4gICAgICAgICAgICAgICAga2V5PXt2aXN1YWxDaGFubmVsLmtleX1cbiAgICAgICAgICAgICAgICBsYWJlbD17ZGVzY3JpcHRpb24ubGFiZWx9XG4gICAgICAgICAgICAgICAgbmFtZT17ZGVzY3JpcHRpb24ubWVhc3VyZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9KX1cbiAgICAgIDwvPlxuICAgICk7XG4gIH07XG5cbiAgcmV0dXJuIExheWVyTGVnZW5kQ29udGVudDtcbn1cblxuZXhwb3J0IHR5cGUgTWFwTGVnZW5kUHJvcHMgPSB7XG4gIGxheWVycz86IFJlYWRvbmx5QXJyYXk8TGF5ZXI+O1xuICBsYXllck9yZGVyPzogTGF5ZXJPcmRlcjtcbiAgd2lkdGg/OiBudW1iZXI7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIG9wdGlvbnM/OiB7XG4gICAgc2hvd0xheWVyTmFtZT86IGJvb2xlYW47XG4gIH07XG4gIGRpc2FibGVFZGl0PzogYm9vbGVhbjtcbiAgaXNFeHBvcnQ/OiBib29sZWFuO1xuICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlPzogKG9sZExheWVyOiBMYXllciwgbmV3VmlzQ29uZmlnOiBQYXJ0aWFsPExheWVyVmlzQ29uZmlnPikgPT4gdm9pZDtcbiAgb25Ub2dnbGVMYXllclZpc2liaWxpdHk/OiAobGF5ZXI6IExheWVyKSA9PiB2b2lkO1xuICBvbk1hcFRvZ2dsZUxheWVyPzogKG1hcEluZGV4OiBudW1iZXIsIGxheWVySWQ6IHN0cmluZykgPT4gdm9pZDtcbiAgaXNTcGxpdD86IGJvb2xlYW47XG4gIHNwbGl0TWFwcz86IHtsYXllcnM6IHtba2V5OiBzdHJpbmddOiBib29sZWFufX1bXTtcbiAgYWN0aW9uSWNvbnM/OiBNYXBMZWdlbmRJY29ucztcbn07XG5cbk1hcExlZ2VuZEZhY3RvcnkuZGVwcyA9IFtMYXllckxlZ2VuZEhlYWRlckZhY3RvcnksIExheWVyTGVnZW5kQ29udGVudEZhY3RvcnldO1xuXG5mdW5jdGlvbiBNYXBMZWdlbmRGYWN0b3J5KFxuICBMYXllckxlZ2VuZEhlYWRlcjogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJMZWdlbmRIZWFkZXJGYWN0b3J5PixcbiAgTGF5ZXJMZWdlbmRDb250ZW50OiBSZXR1cm5UeXBlPHR5cGVvZiBMYXllckxlZ2VuZENvbnRlbnRGYWN0b3J5PlxuKSB7XG4gIGNvbnN0IExheWVyTGVnZW5kSXRlbTogUmVhY3QuRkM8e1xuICAgIGxheWVyOiBMYXllcjtcbiAgICBjb250YWluZXJXOiBudW1iZXI7XG4gICAgaXNMYXN0OiBib29sZWFuO1xuICAgIGlzTGF5ZXJWaXNpYmxlOiBib29sZWFuO1xuICAgIGlzRXhwb3J0PzogYm9vbGVhbjtcbiAgICBvcHRpb25zPzoge3Nob3dMYXllck5hbWU/OiBib29sZWFufTtcbiAgICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICAgIGRpc2FibGVFZGl0PzogYm9vbGVhbjtcbiAgICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlPzogKG9sZExheWVyOiBMYXllciwgbmV3VmlzQ29uZmlnOiBQYXJ0aWFsPExheWVyVmlzQ29uZmlnPikgPT4gdm9pZDtcbiAgICBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eT86IChsYXllcjogTGF5ZXIpID0+IHZvaWQ7XG4gICAgb25NYXBUb2dnbGVMYXllcj86IChtYXBJbmRleDogbnVtYmVyLCBsYXllcklkOiBzdHJpbmcpID0+IHZvaWQ7XG4gICAgaXNTcGxpdD86IGJvb2xlYW47XG4gICAgc3BsaXRNYXBzPzoge2xheWVyczoge1trZXk6IHN0cmluZ106IGJvb2xlYW59fVtdO1xuICAgIGFjdGlvbkljb25zOiBNYXBMZWdlbmRJY29ucztcbiAgfT4gPSAoe1xuICAgIGxheWVyLFxuICAgIGNvbnRhaW5lclcsXG4gICAgaXNMYXN0LFxuICAgIGlzTGF5ZXJWaXNpYmxlLFxuICAgIGlzRXhwb3J0LFxuICAgIG9wdGlvbnMsXG4gICAgbWFwU3RhdGUsXG4gICAgZGlzYWJsZUVkaXQsXG4gICAgb25MYXllclZpc0NvbmZpZ0NoYW5nZSxcbiAgICBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eSxcbiAgICBvbk1hcFRvZ2dsZUxheWVyLFxuICAgIGlzU3BsaXQsXG4gICAgc3BsaXRNYXBzLFxuICAgIGFjdGlvbkljb25zXG4gIH0pID0+IHtcbiAgICBjb25zdCBbaXNFeHBhbmRlZCwgc2V0SXNFeHBhbmRlZF0gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCBoYW5kbGVUb2dnbGVFeHBhbmRlZCA9IHVzZUNhbGxiYWNrKCgpID0+IHNldElzRXhwYW5kZWQocHJldiA9PiAhcHJldiksIFtdKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTWFwQ29udHJvbExlZ2VuZCBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyXCIgJGxhc3Q9e2lzTGFzdH0gd2lkdGg9e2NvbnRhaW5lcld9PlxuICAgICAgICA8TGF5ZXJMZWdlbmRIZWFkZXJcbiAgICAgICAgICBpc0V4cG9ydD17aXNFeHBvcnR9XG4gICAgICAgICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICAgICAgICBsYXllcj17bGF5ZXJ9XG4gICAgICAgICAgb25Ub2dnbGVMYXllclZpc2liaWxpdHk9e29uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5fVxuICAgICAgICAgIGlzU3BsaXQ9e2lzU3BsaXR9XG4gICAgICAgICAgc3BsaXRNYXBzPXtzcGxpdE1hcHN9XG4gICAgICAgICAgb25NYXBUb2dnbGVMYXllcj17b25NYXBUb2dnbGVMYXllcn1cbiAgICAgICAgICBpc0V4cGFuZGVkPXtpc0V4cGFuZGVkfVxuICAgICAgICAgIG9uVG9nZ2xlRXhwYW5kZWQ9e2lzRXhwb3J0ID8gdW5kZWZpbmVkIDogaGFuZGxlVG9nZ2xlRXhwYW5kZWR9XG4gICAgICAgIC8+XG4gICAgICAgIHtpc0V4cGFuZGVkID8gKFxuICAgICAgICAgIDxkaXYgc3R5bGU9e3tvcGFjaXR5OiBpc0xheWVyVmlzaWJsZSA/IDEgOiAwLjV9fT5cbiAgICAgICAgICAgIDxMYXllckxlZ2VuZENvbnRlbnRcbiAgICAgICAgICAgICAgY29udGFpbmVyVz17Y29udGFpbmVyV31cbiAgICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgICBtYXBTdGF0ZT17bWFwU3RhdGV9XG4gICAgICAgICAgICAgIGRpc2FibGVFZGl0PXtkaXNhYmxlRWRpdH1cbiAgICAgICAgICAgICAgaXNFeHBvcnQ9e2lzRXhwb3J0fVxuICAgICAgICAgICAgICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlPXtvbkxheWVyVmlzQ29uZmlnQ2hhbmdlfVxuICAgICAgICAgICAgICBhY3Rpb25JY29ucz17YWN0aW9uSWNvbnN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvU3R5bGVkTWFwQ29udHJvbExlZ2VuZD5cbiAgICApO1xuICB9O1xuXG4gIGNvbnN0IE1hcExlZ2VuZDogUmVhY3QuRkM8TWFwTGVnZW5kUHJvcHM+ID0gKHtcbiAgICBsYXllcnMgPSBbXSxcbiAgICBsYXllck9yZGVyLFxuICAgIHdpZHRoLFxuICAgIG1hcFN0YXRlLFxuICAgIG9wdGlvbnMsXG4gICAgZGlzYWJsZUVkaXQsXG4gICAgaXNFeHBvcnQsXG4gICAgb25MYXllclZpc0NvbmZpZ0NoYW5nZSxcbiAgICBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eSxcbiAgICBvbk1hcFRvZ2dsZUxheWVyLFxuICAgIGlzU3BsaXQsXG4gICAgc3BsaXRNYXBzLFxuICAgIGFjdGlvbkljb25zID0gZGVmYXVsdEFjdGlvbkljb25zXG4gIH0pID0+IHtcbiAgICBjb25zdCBvcmRlcmVkTGF5ZXJzID0gbGF5ZXJPcmRlclxuICAgICAgPyBnZXRGbGF0TGF5ZXJPcmRlcihsYXllck9yZGVyKS5yZWR1Y2U8TGF5ZXJbXT4oKGFjYywgaWQpID0+IHtcbiAgICAgICAgICBjb25zdCBsYXllciA9IGxheWVycy5maW5kKGwgPT4gbC5pZCA9PT0gaWQpO1xuICAgICAgICAgIGlmIChsYXllcikgYWNjLnB1c2gobGF5ZXIpO1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIFtdKVxuICAgICAgOiBsYXllcnM7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYXAtbGVnZW5kXCI+XG4gICAgICAgIHtvcmRlcmVkTGF5ZXJzLm1hcCgobGF5ZXIsIGluZGV4KSA9PiB7XG4gICAgICAgICAgaWYgKCFsYXllci5pc1ZhbGlkVG9TYXZlKCkgfHwgbGF5ZXIuY29uZmlnLmhpZGRlbikge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGNvbnRhaW5lclcgPSB3aWR0aCB8fCBESU1FTlNJT05TLm1hcENvbnRyb2wud2lkdGg7XG5cbiAgICAgICAgICBjb25zdCBpc0xheWVyVmlzaWJsZSA9XG4gICAgICAgICAgICBpc1NwbGl0ICYmIHNwbGl0TWFwcyAmJiBzcGxpdE1hcHMubGVuZ3RoID4gMVxuICAgICAgICAgICAgICA/IGxheWVyLmNvbmZpZy5pc1Zpc2libGUgJiZcbiAgICAgICAgICAgICAgICAoQm9vbGVhbihzcGxpdE1hcHNbMF0/LmxheWVycz8uW2xheWVyLmlkXSkgfHxcbiAgICAgICAgICAgICAgICAgIEJvb2xlYW4oc3BsaXRNYXBzWzFdPy5sYXllcnM/LltsYXllci5pZF0pKVxuICAgICAgICAgICAgICA6IGxheWVyLmNvbmZpZy5pc1Zpc2libGU7XG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPExheWVyTGVnZW5kSXRlbVxuICAgICAgICAgICAgICBrZXk9e2xheWVyLmlkfVxuICAgICAgICAgICAgICBsYXllcj17bGF5ZXJ9XG4gICAgICAgICAgICAgIGNvbnRhaW5lclc9e2NvbnRhaW5lcld9XG4gICAgICAgICAgICAgIGlzTGFzdD17aW5kZXggPT09IG9yZGVyZWRMYXllcnMubGVuZ3RoIC0gMX1cbiAgICAgICAgICAgICAgaXNMYXllclZpc2libGU9e2lzTGF5ZXJWaXNpYmxlfVxuICAgICAgICAgICAgICBpc0V4cG9ydD17aXNFeHBvcnR9XG4gICAgICAgICAgICAgIG9wdGlvbnM9e29wdGlvbnN9XG4gICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgICAgZGlzYWJsZUVkaXQ9e2Rpc2FibGVFZGl0fVxuICAgICAgICAgICAgICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlPXtvbkxheWVyVmlzQ29uZmlnQ2hhbmdlfVxuICAgICAgICAgICAgICBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eT17b25Ub2dnbGVMYXllclZpc2liaWxpdHl9XG4gICAgICAgICAgICAgIG9uTWFwVG9nZ2xlTGF5ZXI9e29uTWFwVG9nZ2xlTGF5ZXJ9XG4gICAgICAgICAgICAgIGlzU3BsaXQ9e2lzU3BsaXR9XG4gICAgICAgICAgICAgIHNwbGl0TWFwcz17c3BsaXRNYXBzfVxuICAgICAgICAgICAgICBhY3Rpb25JY29ucz17YWN0aW9uSWNvbnN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICk7XG4gICAgICAgIH0pfVxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfTtcblxuICBNYXBMZWdlbmQuZGlzcGxheU5hbWUgPSAnTWFwTGVnZW5kJztcblxuICByZXR1cm4gTWFwTGVnZW5kO1xufVxuXG5leHBvcnQgZGVmYXVsdCBNYXBMZWdlbmRGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsUUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksU0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssVUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sWUFBQSxHQUFBUCx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sYUFBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVEsVUFBQSxHQUFBUixPQUFBO0FBQ0EsSUFBQVMsYUFBQSxHQUFBVCxPQUFBO0FBR0EsSUFBQVUsd0JBQUEsR0FBQVYsT0FBQTtBQUNBLElBQUFXLE1BQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLGtCQUFBLEdBQUFWLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBYSxTQUFBLEdBQUFiLE9BQUE7QUFBc0QsSUFBQWMsZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQWpCdEQ7QUFDQTtBQUFBLFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBdEIsd0JBQUFzQixDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFB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
|
|
509
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZDNDb2xvciIsIl9kM0Zvcm1hdCIsIl9yZWFjdEludGwiLCJfY29sb3JMZWdlbmQiLCJfcmFkaXVzTGVnZW5kIiwiX2NvbnN0YW50cyIsIl9sb2NhbGl6YXRpb24iLCJfdmlld3BvcnRNZXJjYXRvclByb2plY3QiLCJfaWNvbnMiLCJfcGFuZWxIZWFkZXJBY3Rpb24iLCJfcmVkdWNlcnMiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX3RlbXBsYXRlT2JqZWN0MyIsIl90ZW1wbGF0ZU9iamVjdDQiLCJfdGVtcGxhdGVPYmplY3Q1IiwiX3RlbXBsYXRlT2JqZWN0NiIsImUiLCJ0IiwiV2Vha01hcCIsInIiLCJuIiwiX19lc01vZHVsZSIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJzZXQiLCJfdCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJTdHlsZWRNYXBDb250cm9sTGVnZW5kIiwiZXhwb3J0cyIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsIm1hcENvbnRyb2wiLCJwYWRkaW5nIiwiZm9udEZhbWlseSIsInBhbmVsQm9yZGVyQ29sb3IiLCIkbGFzdCIsIndpZHRoIiwidGV4dENvbG9yIiwic3VidGV4dENvbG9yIiwidGV4dENvbG9ySGwiLCJTdHlsZWRMZWdlbmRIZWFkZXJSb3ciLCJTdHlsZWRWaXNpYmlsaXR5VG9nZ2xlIiwiJGlzVmlzaWJsZSIsIlN0eWxlZFNwbGl0VmlzaWJpbGl0eUNvbnRyb2xzIiwiU3R5bGVkU3BsaXRTZXBhcmF0b3IiLCJTdHlsZWRFeHBhbmRUb2dnbGUiLCJWaXN1YWxDaGFubmVsTWV0cmljIiwiX3JlZiIsIm5hbWUiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiRm9ybWF0dGVkTWVzc2FnZSIsImlkIiwiTGF5ZXJEZWZhdWx0TGVnZW5kIiwiX3JlZjIiLCJsYWJlbCIsIlNpbmdsZUNvbG9yTGVnZW5kRmFjdG9yeSIsImRlcHMiLCJMZWdlbmRSb3dGYWN0b3J5IiwiTGVnZW5kUm93IiwiU2luZ2xlQ29sb3JMZWdlbmQiLCJfcmVmMyIsImNvbG9yIiwiZGlzcGxheUxhYmVsIiwiQm9vbGVhbiIsIkFycmF5IiwiaXNBcnJheSIsInJnYiIsIl90b0NvbnN1bWFibGVBcnJheTIiLCJ0b1N0cmluZyIsImRpc3BsYXlOYW1lIiwiUmVhY3QiLCJtZW1vIiwiTGF5ZXJDb2xvckxlZ2VuZEZhY3RvcnkiLCJDb2xvckxlZ2VuZEZhY3RvcnkiLCJQYW5lbEhlYWRlckFjdGlvbkZhY3RvcnkiLCJDb2xvckxlZ2VuZCIsIlBhbmVsSGVhZGVyQWN0aW9uIiwiTGF5ZXJDb2xvckxlZ2VuZCIsIl9yZWY0IiwiZGVzY3JpcHRpb24iLCJjb25maWciLCJsYXllciIsImNvbG9yQ2hhbm5lbCIsImRpc2FibGVFZGl0Iiwib25MYXllclZpc0NvbmZpZ0NoYW5nZSIsImlzRXhwb3J0IiwibWFwU3RhdGUiLCJhY3Rpb25JY29ucyIsImludGwiLCJ1c2VJbnRsIiwiZW5hYmxlQ29sb3JCeSIsIm1lYXN1cmUiLCJzY2FsZSIsImZpZWxkIiwiZG9tYWluIiwicmFuZ2UiLCJwcm9wZXJ0eSIsImZpeGVkIiwiX21hcCIsIm1hcCIsImsiLCJfbWFwMiIsIl9zbGljZWRUb0FycmF5MiIsImNvbG9yU2NhbGUiLCJjb2xvckZpZWxkIiwiY29sb3JEb21haW4iLCJpc0ZpeGVkIiwidmlzQ29uZmlnIiwiY29sb3JSYW5nZSIsIm9uVXBkYXRlQ29sb3JMZWdlbmQiLCJ1c2VDYWxsYmFjayIsImNvbG9yTGVnZW5kcyIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsImlzRXhwYW5kZWQiLCJzZXRJc0V4cGFuZGVkIiwiaGFuZGxlVG9nZ2xlRXhwYW5kZWQiLCJvbkNsaWNrIiwiSWNvbkNvbXBvbmVudCIsImV4cGFuZGVkIiwiY29sbGFwc2VkIiwic2NhbGVUeXBlIiwiZmllbGRUeXBlIiwidHlwZSIsImxhYmVsRm9ybWF0IiwiZGlzcGxheUZvcm1hdCIsImQzRm9ybWF0IiwiZm9ybWF0TWVzc2FnZSIsImNvbmNhdCIsImtleSIsImRlZmF1bHRNZXNzYWdlIiwiZ2V0TGF5ZXJSYWRpdXNTY2FsZU1ldGVyc1RvUGl4ZWxzTXVsdGlwbGllciIsIl9nZXREaXN0YW5jZVNjYWxlcyIsImdldERpc3RhbmNlU2NhbGVzIiwibWV0ZXJzUGVyUGl4ZWwiLCJmaXhlZFJhZGl1cyIsInNpemVGaWVsZCIsImdldFJhZGl1c1NjYWxlQnlab29tIiwiTGF5ZXJSYWRpdXNMZWdlbmQiLCJfcmVmNSIsInZpc3VhbENoYW5uZWwiLCJnZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24iLCJlbmFibGVTaXplQnkiLCJfbWFwMyIsIl9tYXA0Iiwic2l6ZVNjYWxlIiwic2l6ZURvbWFpbiIsInNpemVSYW5nZSIsInJhZGl1c011bHRpcGxpZXIiLCJ2IiwiaXNDb2xvckNoYW5uZWwiLCJDSEFOTkVMX1NDQUxFUyIsImNvbG9yQWdnciIsImluY2x1ZGVzIiwiY2hhbm5lbFNjYWxlVHlwZSIsImlzUmFkaXVzQ2hhbm5lbCIsInJhZGl1cyIsIkxheWVyTGVnZW5kSGVhZGVyRmFjdG9yeSIsIkxheWVyTGVnZW5kSGVhZGVyIiwiX3JlZjYiLCJfc3BsaXRNYXBzJCIsIl9zcGxpdE1hcHMkMiIsIm9wdGlvbnMiLCJvblRvZ2dsZUxheWVyVmlzaWJpbGl0eSIsImlzU3BsaXQiLCJzcGxpdE1hcHMiLCJvbk1hcFRvZ2dsZUxheWVyIiwib25Ub2dnbGVFeHBhbmRlZCIsImlzVmlzaWJsZSIsIm9uVG9nZ2xlIiwib25Ub2dnbGVMZWZ0Iiwib25Ub2dnbGVSaWdodCIsInNob3dMYXllck5hbWUiLCJpc0xlZnRWaXNpYmxlIiwibGF5ZXJzIiwiaXNSaWdodFZpc2libGUiLCJpc0FueVZpc2libGUiLCJzdHlsZSIsIm9wYWNpdHkiLCJmbGV4IiwiQXJyb3dEb3duIiwiaGVpZ2h0IiwiQXJyb3dSaWdodCIsIkV5ZVNlZW4iLCJFeWVVbnNlZW4iLCJkZWZhdWx0QWN0aW9uSWNvbnMiLCJMYXllckxlZ2VuZENvbnRlbnRGYWN0b3J5IiwiTGF5ZXJMZWdlbmRDb250ZW50IiwiX3JlZjciLCJjb250YWluZXJXIiwidmlzdWFsQ2hhbm5lbHMiLCJnZXRMZWdlbmRWaXN1YWxDaGFubmVscyIsImNoYW5uZWxLZXlzIiwidmFsdWVzIiwiY29sb3JDaGFubmVscyIsIm5vbkNvbG9yQ2hhbm5lbHMiLCJ2YyIsIkRJTUVOU0lPTlMiLCJjb2xvckNoYW5uZWxUb1JlbmRlciIsImNjIiwiX2xheWVyJGdldFZpc3VhbENoYW5uIiwiY29uZGl0aW9uIiwiRnJhZ21lbnQiLCJtYXRjaENvbmRpdGlvbiIsImVuYWJsZWQiLCJkZWZhdWx0TWVhc3VyZSIsIk1hcExlZ2VuZEZhY3RvcnkiLCJMYXllckxlZ2VuZEl0ZW0iLCJfcmVmOCIsImlzTGFzdCIsImlzTGF5ZXJWaXNpYmxlIiwiX3VzZVN0YXRlMyIsIl91c2VTdGF0ZTQiLCJwcmV2IiwidW5kZWZpbmVkIiwiTWFwTGVnZW5kIiwiX3JlZjkiLCJfcmVmOSRsYXllcnMiLCJsYXllck9yZGVyIiwiX3JlZjkkYWN0aW9uSWNvbnMiLCJvcmRlcmVkTGF5ZXJzIiwiZ2V0RmxhdExheWVyT3JkZXIiLCJyZWR1Y2UiLCJhY2MiLCJmaW5kIiwibCIsImluZGV4IiwiX3NwbGl0TWFwcyQzIiwiX3NwbGl0TWFwcyQ0IiwiaXNWYWxpZFRvU2F2ZSIsImhpZGRlbiIsIl9kZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21hcC9tYXAtbGVnZW5kLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHtGQywgdXNlQ2FsbGJhY2ssIHVzZVN0YXRlLCBDb21wb25lbnRUeXBlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7cmdifSBmcm9tICdkMy1jb2xvcic7XG5pbXBvcnQge2Zvcm1hdCBhcyBkM0Zvcm1hdH0gZnJvbSAnZDMtZm9ybWF0JztcbmltcG9ydCB7dXNlSW50bH0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQgQ29sb3JMZWdlbmRGYWN0b3J5LCB7TGVnZW5kUm93RmFjdG9yeX0gZnJvbSAnLi4vY29tbW9uL2NvbG9yLWxlZ2VuZCc7XG5pbXBvcnQgUmFkaXVzTGVnZW5kIGZyb20gJy4uL2NvbW1vbi9yYWRpdXMtbGVnZW5kJztcbmltcG9ydCB7Q0hBTk5FTF9TQ0FMRVMsIERJTUVOU0lPTlN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtMYXllciwgTGF5ZXJCYXNlQ29uZmlnLCBWaXN1YWxDaGFubmVsLCBWaXN1YWxDaGFubmVsRGVzY3JpcHRpb259IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7TGF5ZXJWaXNDb25maWcsIExheWVyT3JkZXIsIE1hcFN0YXRlLCBSR0JDb2xvcn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge2dldERpc3RhbmNlU2NhbGVzfSBmcm9tICd2aWV3cG9ydC1tZXJjYXRvci1wcm9qZWN0JztcbmltcG9ydCB7QXJyb3dEb3duLCBBcnJvd1JpZ2h0LCBFeWVTZWVuLCBFeWVVbnNlZW59IGZyb20gJy4uL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQgUGFuZWxIZWFkZXJBY3Rpb25GYWN0b3J5IGZyb20gJy4uL3NpZGUtcGFuZWwvcGFuZWwtaGVhZGVyLWFjdGlvbic7XG5pbXBvcnQge2dldEZsYXRMYXllck9yZGVyfSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcblxuaW50ZXJmYWNlIFN0eWxlZE1hcENvbnRyb2xMZWdlbmRQcm9wcyB7XG4gIHdpZHRoPzogbnVtYmVyO1xuICAkbGFzdD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRNYXBDb250cm9sTGVnZW5kID0gc3R5bGVkLmRpdjxTdHlsZWRNYXBDb250cm9sTGVnZW5kUHJvcHM+YFxuICBwYWRkaW5nOiAxMHB4ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC5wYWRkaW5nfXB4IDEwcHhcbiAgICAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1hcENvbnRyb2wucGFkZGluZ31weDtcbiAgZm9udC1zaXplOiAxMXB4O1xuICBmb250LWZhbWlseTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5mb250RmFtaWx5fTtcbiAgYm9yZGVyLWJvdHRvbS1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJvcmRlckNvbG9yfTtcbiAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XG4gIGJvcmRlci1ib3R0b20td2lkdGg6ICR7cHJvcHMgPT4gKHByb3BzLiRsYXN0ID8gMCA6ICcxcHgnKX07XG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLndpZHRofXB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuXG4gIC5sZWdlbmQtLWxheWVyX25hbWUge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1hcENvbnRyb2wucGFkZGluZ31weDtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH1cbiAgLmxlZ2VuZC0tbGF5ZXJfdHlwZSB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yfTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1hcENvbnRyb2wucGFkZGluZ31weDtcbiAgfVxuXG4gIC5sZWdlbmQtLWxheWVyX3NpemUtdGl0bGUtcm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1hcENvbnRyb2wucGFkZGluZ31weDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICB9XG5cbiAgLmxlZ2VuZC0tbGF5ZXJfX3RpdGxlIHtcbiAgfVxuXG4gIC5sZWdlbmQtLWxheWVyX19pdGVtIHtcbiAgICBwYWRkaW5nLWJvdHRvbTogNHB4O1xuICB9XG4gIC5sZWdlbmQtLWxheWVyX2J5IHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3J9O1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgfVxuXG4gIC5sZWdlbmQtLWxheWVyX2NvbG9yX2ZpZWxkIHtcbiAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JIbH07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgfVxuXG4gIC5sZWdlbmQtLWxheWVyX2NvbG9yLWxlZ2VuZCB7XG4gICAgbWFyZ2luLXRvcDogNnB4O1xuICB9XG5gO1xuXG5jb25zdCBTdHlsZWRMZWdlbmRIZWFkZXJSb3cgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5gO1xuXG5jb25zdCBTdHlsZWRWaXNpYmlsaXR5VG9nZ2xlID0gc3R5bGVkLmRpdjx7JGlzVmlzaWJsZTogYm9vbGVhbn0+YFxuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGNvbG9yOiAke3Byb3BzID0+IChwcm9wcy4kaXNWaXNpYmxlID8gcHJvcHMudGhlbWUudGV4dENvbG9yIDogcHJvcHMudGhlbWUuc3VidGV4dENvbG9yKX07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIG1hcmdpbi1sZWZ0OiA4cHg7XG4gIG9wYWNpdHk6ICR7cHJvcHMgPT4gKHByb3BzLiRpc1Zpc2libGUgPyAxIDogMC41KX07XG5cbiAgJjpob3ZlciB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICAgIG9wYWNpdHk6IDE7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZFNwbGl0VmlzaWJpbGl0eUNvbnRyb2xzID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWxlZnQ6IDhweDtcbiAgZ2FwOiA0cHg7XG5cbiAgJHtTdHlsZWRWaXNpYmlsaXR5VG9nZ2xlfSB7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZFNwbGl0U2VwYXJhdG9yID0gc3R5bGVkLmRpdjx7JGlzVmlzaWJsZTogYm9vbGVhbn0+YFxuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDEycHg7XG4gIGJhY2tncm91bmQ6ICR7cHJvcHMgPT4gKHByb3BzLiRpc1Zpc2libGUgPyBwcm9wcy50aGVtZS50ZXh0Q29sb3IgOiBwcm9wcy50aGVtZS5zdWJ0ZXh0Q29sb3IpfTtcbiAgb3BhY2l0eTogMC4zO1xuYDtcblxuY29uc3QgU3R5bGVkRXhwYW5kVG9nZ2xlID0gc3R5bGVkLmRpdmBcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBtYXJnaW4tbGVmdDogNnB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICBvcGFjaXR5OiAwLjc7XG5cbiAgJjpob3ZlciB7XG4gICAgb3BhY2l0eTogMTtcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IFZpc3VhbENoYW5uZWxNZXRyaWMgPSAoe25hbWV9KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX190aXRsZVwiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9jb2xvcl9maWVsZFwiPlxuICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17bmFtZX0gLz5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCB0eXBlIExheWVyU2l6ZUxlZ2VuZFByb3BzID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgTGF5ZXJEZWZhdWx0TGVnZW5kOiBSZWFjdC5GQzxMYXllclNpemVMZWdlbmRQcm9wcz4gPSAoe2xhYmVsLCBuYW1lfSkgPT5cbiAgbGFiZWwgPyAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX3NpemUtc2NoZW1hXCI+XG4gICAgICA8cD5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9ieVwiPntsYWJlbCA/IDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXtsYWJlbH0gLz4gOiBudWxsfTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9ieVwiPiBieSA8L3NwYW4+XG4gICAgICA8L3A+XG4gICAgICB7bmFtZSAmJiA8VmlzdWFsQ2hhbm5lbE1ldHJpYyBuYW1lPXtuYW1lfSAvPn1cbiAgICA8L2Rpdj5cbiAgKSA6IG51bGw7XG5cbmV4cG9ydCB0eXBlIFNpbmdsZUNvbG9yTGVnZW5kUHJvcHMgPSB7XG4gIGNvbG9yOiBSR0JDb2xvcjtcbiAgbGFiZWw/OiBzdHJpbmc7XG59O1xuXG5TaW5nbGVDb2xvckxlZ2VuZEZhY3RvcnkuZGVwcyA9IFtMZWdlbmRSb3dGYWN0b3J5XTtcblxuZXhwb3J0IGZ1bmN0aW9uIFNpbmdsZUNvbG9yTGVnZW5kRmFjdG9yeShMZWdlbmRSb3c6IFJldHVyblR5cGU8dHlwZW9mIExlZ2VuZFJvd0ZhY3Rvcnk+KSB7XG4gIGNvbnN0IFNpbmdsZUNvbG9yTGVnZW5kOiBSZWFjdC5GQzxTaW5nbGVDb2xvckxlZ2VuZFByb3BzPiA9ICh7Y29sb3IsIGxhYmVsfSkgPT4gKFxuICAgIDxMZWdlbmRSb3dcbiAgICAgIGxhYmVsPXtsYWJlbCA/PyAnJ31cbiAgICAgIGRpc3BsYXlMYWJlbD17Qm9vbGVhbihsYWJlbCl9XG4gICAgICBjb2xvcj17QXJyYXkuaXNBcnJheShjb2xvcikgPyByZ2IoLi4uY29sb3IpLnRvU3RyaW5nKCkgOiBjb2xvcn1cbiAgICAvPlxuICApO1xuXG4gIFNpbmdsZUNvbG9yTGVnZW5kLmRpc3BsYXlOYW1lID0gJ1NpbmdsZUNvbG9yTGVnZW5kJztcblxuICByZXR1cm4gUmVhY3QubWVtbyhTaW5nbGVDb2xvckxlZ2VuZCk7XG59XG5cbmV4cG9ydCB0eXBlIExheWVyQ29sb3JMZWdlbmRQcm9wcyA9IHtcbiAgZGVzY3JpcHRpb246IFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbjtcbiAgY29uZmlnOiBMYXllckJhc2VDb25maWc7XG4gIGNvbG9yQ2hhbm5lbDogVmlzdWFsQ2hhbm5lbDtcbiAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT86IChvbGRMYXllcjogTGF5ZXIsIG5ld1Zpc0NvbmZpZzogUGFydGlhbDxMYXllclZpc0NvbmZpZz4pID0+IHZvaWQ7XG4gIGxheWVyOiBMYXllcjtcbiAgZGlzYWJsZUVkaXQ/OiBib29sZWFuO1xuICBpc0V4cG9ydD86IGJvb2xlYW47XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIGFjdGlvbkljb25zOiBNYXBMZWdlbmRJY29ucztcbn07XG5cbkxheWVyQ29sb3JMZWdlbmRGYWN0b3J5LmRlcHMgPSBbXG4gIENvbG9yTGVnZW5kRmFjdG9yeSxcbiAgU2luZ2xlQ29sb3JMZWdlbmRGYWN0b3J5LFxuICBQYW5lbEhlYWRlckFjdGlvbkZhY3Rvcnlcbl07XG5leHBvcnQgZnVuY3Rpb24gTGF5ZXJDb2xvckxlZ2VuZEZhY3RvcnkoXG4gIENvbG9yTGVnZW5kOiBSZXR1cm5UeXBlPHR5cGVvZiBDb2xvckxlZ2VuZEZhY3Rvcnk+LFxuICBTaW5nbGVDb2xvckxlZ2VuZDogUmV0dXJuVHlwZTx0eXBlb2YgU2luZ2xlQ29sb3JMZWdlbmRGYWN0b3J5PixcbiAgUGFuZWxIZWFkZXJBY3Rpb246IFJldHVyblR5cGU8dHlwZW9mIFBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeT5cbikge1xuICBjb25zdCBMYXllckNvbG9yTGVnZW5kOiBSZWFjdC5GQzxMYXllckNvbG9yTGVnZW5kUHJvcHM+ID0gKHtcbiAgICBkZXNjcmlwdGlvbixcbiAgICBjb25maWcsXG4gICAgbGF5ZXIsXG4gICAgY29sb3JDaGFubmVsLFxuICAgIGRpc2FibGVFZGl0LFxuICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsXG4gICAgaXNFeHBvcnQsXG4gICAgbWFwU3RhdGUsXG4gICAgYWN0aW9uSWNvbnNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGludGwgPSB1c2VJbnRsKCk7XG4gICAgY29uc3QgZW5hYmxlQ29sb3JCeSA9IGRlc2NyaXB0aW9uLm1lYXN1cmU7XG4gICAgY29uc3Qge3NjYWxlLCBmaWVsZCwgZG9tYWluLCByYW5nZSwgcHJvcGVydHksIGZpeGVkfSA9IGNvbG9yQ2hhbm5lbDtcbiAgICBjb25zdCBbY29sb3JTY2FsZSwgY29sb3JGaWVsZCwgY29sb3JEb21haW5dID0gW3NjYWxlLCBmaWVsZCwgZG9tYWluXS5tYXAoayA9PiBjb25maWdba10pO1xuICAgIGNvbnN0IGlzRml4ZWQgPSBmaXhlZCAmJiBjb25maWcudmlzQ29uZmlnW2ZpeGVkXTtcblxuICAgIGNvbnN0IGNvbG9yUmFuZ2UgPSBjb25maWcudmlzQ29uZmlnW3JhbmdlXTtcbiAgICBjb25zdCBvblVwZGF0ZUNvbG9yTGVnZW5kID0gdXNlQ2FsbGJhY2soXG4gICAgICBjb2xvckxlZ2VuZHMgPT4ge1xuICAgICAgICBpZiAob25MYXllclZpc0NvbmZpZ0NoYW5nZSkge1xuICAgICAgICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UobGF5ZXIsIHtcbiAgICAgICAgICAgIFtyYW5nZV06IHtcbiAgICAgICAgICAgICAgLi4uY29sb3JSYW5nZSxcbiAgICAgICAgICAgICAgY29sb3JMZWdlbmRzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbbGF5ZXIsIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsIGNvbG9yUmFuZ2UsIHJhbmdlXVxuICAgICk7XG4gICAgY29uc3QgW2lzRXhwYW5kZWQsIHNldElzRXhwYW5kZWRdID0gdXNlU3RhdGUoaXNFeHBvcnQpO1xuICAgIGNvbnN0IGhhbmRsZVRvZ2dsZUV4cGFuZGVkID0gKCkgPT4gc2V0SXNFeHBhbmRlZCghaXNFeHBhbmRlZCk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9faXRlbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfY29sb3Itc2NoZW1hXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHtlbmFibGVDb2xvckJ5ID8gKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfc2l6ZS10aXRsZS1yb3dcIj5cbiAgICAgICAgICAgICAgICA8VmlzdWFsQ2hhbm5lbE1ldHJpYyBuYW1lPXtlbmFibGVDb2xvckJ5fSAvPlxuICAgICAgICAgICAgICAgIHshaXNFeHBvcnQgPyAoXG4gICAgICAgICAgICAgICAgICA8UGFuZWxIZWFkZXJBY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJsZWdlbmQtY29sbGFwc2UtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlVG9nZ2xlRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIEljb25Db21wb25lbnQ9e2lzRXhwYW5kZWQgPyBhY3Rpb25JY29ucy5leHBhbmRlZCA6IGFjdGlvbkljb25zLmNvbGxhcHNlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfY29sb3ItbGVnZW5kXCI+XG4gICAgICAgICAgICAgIHtlbmFibGVDb2xvckJ5ID8gKFxuICAgICAgICAgICAgICAgIDxDb2xvckxlZ2VuZFxuICAgICAgICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgICAgICAgaXNFeHBhbmRlZD17aXNFeHBhbmRlZH1cbiAgICAgICAgICAgICAgICAgIHNjYWxlVHlwZT17Y29sb3JTY2FsZX1cbiAgICAgICAgICAgICAgICAgIGRpc3BsYXlMYWJlbFxuICAgICAgICAgICAgICAgICAgZG9tYWluPXtjb2xvckRvbWFpbn1cbiAgICAgICAgICAgICAgICAgIGZpZWxkVHlwZT17KGNvbG9yRmllbGQgJiYgY29sb3JGaWVsZC50eXBlKSB8fCAncmVhbCd9XG4gICAgICAgICAgICAgICAgICByYW5nZT17Y29sb3JSYW5nZX1cbiAgICAgICAgICAgICAgICAgIG9uVXBkYXRlQ29sb3JMZWdlbmQ9e29uVXBkYXRlQ29sb3JMZWdlbmR9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlRWRpdD17ZGlzYWJsZUVkaXQgfHwgQm9vbGVhbihpc0V4cG9ydCl9XG4gICAgICAgICAgICAgICAgICBpc0ZpeGVkPXtpc0ZpeGVkfVxuICAgICAgICAgICAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICAgICAgICAgICAgbGFiZWxGb3JtYXQ9e1xuICAgICAgICAgICAgICAgICAgICBjb2xvckZpZWxkPy5kaXNwbGF5Rm9ybWF0ID8gZDNGb3JtYXQoY29sb3JGaWVsZD8uZGlzcGxheUZvcm1hdCkgOiBudWxsXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8U2luZ2xlQ29sb3JMZWdlbmRcbiAgICAgICAgICAgICAgICAgIGNvbG9yPXtjb25maWcudmlzQ29uZmlnW3Byb3BlcnR5XSB8fCBjb25maWdbcHJvcGVydHldIHx8IGNvbmZpZy5jb2xvcn1cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgICAgICBpZDogYG1hcExlZ2VuZC5sYXllcnMuJHtsYXllci50eXBlfS5zaW5nbGVDb2xvci4ke2NvbG9yQ2hhbm5lbC5rZXl9YCxcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE1lc3NhZ2U6IGludGwuZm9ybWF0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6IGBtYXBMZWdlbmQubGF5ZXJzLmRlZmF1bHQuc2luZ2xlQ29sb3IuJHtjb2xvckNoYW5uZWwua2V5fWAsXG4gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE1lc3NhZ2U6ICcgJyAvLyBtdXN0bid0IGJlIGVtcHR5IHN0cmluZyBvciBpZCB3aWxsIGJlIHVzZWRcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIExheWVyQ29sb3JMZWdlbmQuZGlzcGxheU5hbWUgPSAnTGF5ZXJDb2xvckxlZ2VuZCc7XG4gIHJldHVybiBSZWFjdC5tZW1vKExheWVyQ29sb3JMZWdlbmQpO1xufVxuXG5mdW5jdGlvbiBnZXRMYXllclJhZGl1c1NjYWxlTWV0ZXJzVG9QaXhlbHNNdWx0aXBsaWVyKGxheWVyLCBtYXBTdGF0ZSkge1xuICAvLyBAdHMtaWdub3JlIHRoaXMgYWN0dWFsbHkgZXhpc3RcbiAgY29uc3Qge21ldGVyc1BlclBpeGVsfSA9IGdldERpc3RhbmNlU2NhbGVzKG1hcFN0YXRlKTtcbiAgLy8gaWYgbm8gZmllbGQgc2l6ZSBpcyBkZWZpbmVkIHdlIG5lZWQgdG8gcGFzcyBmaXhlZCByYWRpdXMgPSBmYWxzZVxuICBjb25zdCBmaXhlZFJhZGl1cyA9IGxheWVyLmNvbmZpZy52aXNDb25maWcuZml4ZWRSYWRpdXMgJiYgQm9vbGVhbihsYXllci5jb25maWcuc2l6ZUZpZWxkKTtcbiAgcmV0dXJuIGxheWVyLmdldFJhZGl1c1NjYWxlQnlab29tKG1hcFN0YXRlLCBmaXhlZFJhZGl1cykgLyBtZXRlcnNQZXJQaXhlbFswXTtcbn1cblxuZXhwb3J0IHR5cGUgTWFwTGVnZW5kSWNvbnMgPSB7XG4gIGV4cGFuZGVkOiBDb21wb25lbnRUeXBlPGFueT47XG4gIGNvbGxhcHNlZDogQ29tcG9uZW50VHlwZTxhbnk+O1xufTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJSYWRpdXNMZWdlbmRQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICB3aWR0aDogbnVtYmVyO1xuICBpc0V4cG9ydD86IGJvb2xlYW47XG4gIHZpc3VhbENoYW5uZWw6IFZpc3VhbENoYW5uZWw7XG59O1xuXG5leHBvcnQgY29uc3QgTGF5ZXJSYWRpdXNMZWdlbmQ6IEZDPExheWVyUmFkaXVzTGVnZW5kUHJvcHM+ID0gUmVhY3QubWVtbyhcbiAgKHtsYXllciwgd2lkdGgsIHZpc3VhbENoYW5uZWwsIG1hcFN0YXRlfSkgPT4ge1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gbGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKHZpc3VhbENoYW5uZWwua2V5KTtcbiAgICBjb25zdCBjb25maWcgPSBsYXllci5jb25maWc7XG5cbiAgICBjb25zdCBlbmFibGVTaXplQnkgPSBkZXNjcmlwdGlvbi5tZWFzdXJlO1xuICAgIGNvbnN0IHtzY2FsZSwgZmllbGQsIGRvbWFpbiwgcmFuZ2V9ID0gdmlzdWFsQ2hhbm5lbDtcbiAgICBjb25zdCBbc2l6ZVNjYWxlLCBzaXplRmllbGQsIHNpemVEb21haW5dID0gW3NjYWxlLCBmaWVsZCwgZG9tYWluXS5tYXAoayA9PiBjb25maWdba10pO1xuICAgIGxldCBzaXplUmFuZ2UgPSBjb25maWcudmlzQ29uZmlnW3JhbmdlXTtcblxuICAgIGlmIChtYXBTdGF0ZSkge1xuICAgICAgY29uc3QgcmFkaXVzTXVsdGlwbGllciA9IGdldExheWVyUmFkaXVzU2NhbGVNZXRlcnNUb1BpeGVsc011bHRpcGxpZXIobGF5ZXIsIG1hcFN0YXRlKTtcbiAgICAgIHNpemVSYW5nZSA9IHNpemVSYW5nZS5tYXAodiA9PiB2ICogcmFkaXVzTXVsdGlwbGllcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9zaXplLXNjaGVtYVwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7ZW5hYmxlU2l6ZUJ5ID8gPFZpc3VhbENoYW5uZWxNZXRyaWMgbmFtZT17ZW5hYmxlU2l6ZUJ5fSAvPiA6IG51bGx9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfc2l6ZS1sZWdlbmRcIj5cbiAgICAgICAgICAgICAge2VuYWJsZVNpemVCeSA/IChcbiAgICAgICAgICAgICAgICA8UmFkaXVzTGVnZW5kXG4gICAgICAgICAgICAgICAgICBzY2FsZVR5cGU9e3NpemVTY2FsZX1cbiAgICAgICAgICAgICAgICAgIGRvbWFpbj17c2l6ZURvbWFpbn1cbiAgICAgICAgICAgICAgICAgIGZpZWxkVHlwZT17KHNpemVGaWVsZCAmJiBzaXplRmllbGQudHlwZSkgfHwgJ3JlYWwnfVxuICAgICAgICAgICAgICAgICAgcmFuZ2U9e3NpemVSYW5nZX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbik7XG5cbmNvbnN0IGlzQ29sb3JDaGFubmVsID0gdmlzdWFsQ2hhbm5lbCA9PlxuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3IsIENIQU5ORUxfU0NBTEVTLmNvbG9yQWdncl0uaW5jbHVkZXModmlzdWFsQ2hhbm5lbC5jaGFubmVsU2NhbGVUeXBlKTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJMZWdlbmRIZWFkZXJQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBvcHRpb25zPzoge1xuICAgIHNob3dMYXllck5hbWU/OiBib29sZWFuO1xuICB9O1xuICBpc0V4cG9ydD86IGJvb2xlYW47XG4gIG9uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5PzogKGxheWVyOiBMYXllcikgPT4gdm9pZDtcbiAgaXNTcGxpdD86IGJvb2xlYW47XG4gIHNwbGl0TWFwcz86IHtsYXllcnM6IHtba2V5OiBzdHJpbmddOiBib29sZWFufX1bXTtcbiAgb25NYXBUb2dnbGVMYXllcj86IChtYXBJbmRleDogbnVtYmVyLCBsYXllcklkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIGlzRXhwYW5kZWQ/OiBib29sZWFuO1xuICBvblRvZ2dsZUV4cGFuZGVkPzogKCkgPT4gdm9pZDtcbn07XG5cbmNvbnN0IGlzUmFkaXVzQ2hhbm5lbCA9IHZpc3VhbENoYW5uZWwgPT5cbiAgW0NIQU5ORUxfU0NBTEVTLnJhZGl1c10uaW5jbHVkZXModmlzdWFsQ2hhbm5lbC5jaGFubmVsU2NhbGVUeXBlKTtcblxuZXhwb3J0IGZ1bmN0aW9uIExheWVyTGVnZW5kSGVhZGVyRmFjdG9yeSgpIHtcbiAgY29uc3QgTGF5ZXJMZWdlbmRIZWFkZXI6IFJlYWN0LkZDPExheWVyTGVnZW5kSGVhZGVyUHJvcHM+ID0gKHtcbiAgICBvcHRpb25zLFxuICAgIGxheWVyLFxuICAgIGlzRXhwb3J0LFxuICAgIG9uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5LFxuICAgIGlzU3BsaXQsXG4gICAgc3BsaXRNYXBzLFxuICAgIG9uTWFwVG9nZ2xlTGF5ZXIsXG4gICAgaXNFeHBhbmRlZCxcbiAgICBvblRvZ2dsZUV4cGFuZGVkXG4gIH0pID0+IHtcbiAgICBjb25zdCBpc1Zpc2libGUgPSBsYXllci5jb25maWcuaXNWaXNpYmxlO1xuXG4gICAgY29uc3Qgb25Ub2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAob25Ub2dnbGVMYXllclZpc2liaWxpdHkpIHtcbiAgICAgICAgb25Ub2dnbGVMYXllclZpc2liaWxpdHkobGF5ZXIpO1xuICAgICAgfVxuICAgIH0sIFtsYXllciwgb25Ub2dnbGVMYXllclZpc2liaWxpdHldKTtcblxuICAgIGNvbnN0IG9uVG9nZ2xlTGVmdCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChvbk1hcFRvZ2dsZUxheWVyKSB7XG4gICAgICAgIG9uTWFwVG9nZ2xlTGF5ZXIoMCwgbGF5ZXIuaWQpO1xuICAgICAgfVxuICAgIH0sIFtsYXllciwgb25NYXBUb2dnbGVMYXllcl0pO1xuXG4gICAgY29uc3Qgb25Ub2dnbGVSaWdodCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChvbk1hcFRvZ2dsZUxheWVyKSB7XG4gICAgICAgIG9uTWFwVG9nZ2xlTGF5ZXIoMSwgbGF5ZXIuaWQpO1xuICAgICAgfVxuICAgIH0sIFtsYXllciwgb25NYXBUb2dnbGVMYXllcl0pO1xuXG4gICAgaWYgKG9wdGlvbnM/LnNob3dMYXllck5hbWUgPT09IGZhbHNlKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBpc0xlZnRWaXNpYmxlID1cbiAgICAgIGlzU3BsaXQgJiYgc3BsaXRNYXBzICYmIHNwbGl0TWFwcy5sZW5ndGggPiAxXG4gICAgICAgID8gaXNWaXNpYmxlICYmIEJvb2xlYW4oc3BsaXRNYXBzWzBdPy5sYXllcnM/LltsYXllci5pZF0pXG4gICAgICAgIDogaXNWaXNpYmxlO1xuICAgIGNvbnN0IGlzUmlnaHRWaXNpYmxlID1cbiAgICAgIGlzU3BsaXQgJiYgc3BsaXRNYXBzICYmIHNwbGl0TWFwcy5sZW5ndGggPiAxXG4gICAgICAgID8gaXNWaXNpYmxlICYmIEJvb2xlYW4oc3BsaXRNYXBzWzFdPy5sYXllcnM/LltsYXllci5pZF0pXG4gICAgICAgIDogaXNWaXNpYmxlO1xuICAgIGNvbnN0IGlzQW55VmlzaWJsZSA9IGlzTGVmdFZpc2libGUgfHwgaXNSaWdodFZpc2libGU7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZExlZ2VuZEhlYWRlclJvdz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX25hbWVcIiBzdHlsZT17e29wYWNpdHk6IGlzQW55VmlzaWJsZSA/IDEgOiAwLjUsIGZsZXg6IDF9fT5cbiAgICAgICAgICB7bGF5ZXIuY29uZmlnLmxhYmVsfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge29uVG9nZ2xlRXhwYW5kZWQgPyAoXG4gICAgICAgICAgPFN0eWxlZEV4cGFuZFRvZ2dsZSBvbkNsaWNrPXtvblRvZ2dsZUV4cGFuZGVkfT5cbiAgICAgICAgICAgIHtpc0V4cGFuZGVkID8gPEFycm93RG93biBoZWlnaHQ9XCIxMnB4XCIgLz4gOiA8QXJyb3dSaWdodCBoZWlnaHQ9XCIxMnB4XCIgLz59XG4gICAgICAgICAgPC9TdHlsZWRFeHBhbmRUb2dnbGU+XG4gICAgICAgICkgOiBudWxsfVxuICAgICAgICB7IWlzRXhwb3J0ICYmIG9uTWFwVG9nZ2xlTGF5ZXIgJiYgaXNTcGxpdCAmJiBzcGxpdE1hcHMgJiYgc3BsaXRNYXBzLmxlbmd0aCA+IDEgPyAoXG4gICAgICAgICAgPFN0eWxlZFNwbGl0VmlzaWJpbGl0eUNvbnRyb2xzPlxuICAgICAgICAgICAgPFN0eWxlZFZpc2liaWxpdHlUb2dnbGUgJGlzVmlzaWJsZT17aXNMZWZ0VmlzaWJsZX0gb25DbGljaz17b25Ub2dnbGVMZWZ0fT5cbiAgICAgICAgICAgICAge2lzTGVmdFZpc2libGUgPyA8RXllU2VlbiBoZWlnaHQ9XCIxMnB4XCIgLz4gOiA8RXllVW5zZWVuIGhlaWdodD1cIjEycHhcIiAvPn1cbiAgICAgICAgICAgIDwvU3R5bGVkVmlzaWJpbGl0eVRvZ2dsZT5cbiAgICAgICAgICAgIDxTdHlsZWRTcGxpdFNlcGFyYXRvciAkaXNWaXNpYmxlPXtpc0FueVZpc2libGV9IC8+XG4gICAgICAgICAgICA8U3R5bGVkVmlzaWJpbGl0eVRvZ2dsZSAkaXNWaXNpYmxlPXtpc1JpZ2h0VmlzaWJsZX0gb25DbGljaz17b25Ub2dnbGVSaWdodH0+XG4gICAgICAgICAgICAgIHtpc1JpZ2h0VmlzaWJsZSA/IDxFeWVTZWVuIGhlaWdodD1cIjEycHhcIiAvPiA6IDxFeWVVbnNlZW4gaGVpZ2h0PVwiMTJweFwiIC8+fVxuICAgICAgICAgICAgPC9TdHlsZWRWaXNpYmlsaXR5VG9nZ2xlPlxuICAgICAgICAgIDwvU3R5bGVkU3BsaXRWaXNpYmlsaXR5Q29udHJvbHM+XG4gICAgICAgICkgOiAhaXNFeHBvcnQgJiYgb25Ub2dnbGVMYXllclZpc2liaWxpdHkgPyAoXG4gICAgICAgICAgPFN0eWxlZFZpc2liaWxpdHlUb2dnbGUgJGlzVmlzaWJsZT17aXNWaXNpYmxlfSBvbkNsaWNrPXtvblRvZ2dsZX0+XG4gICAgICAgICAgICB7aXNWaXNpYmxlID8gPEV5ZVNlZW4gaGVpZ2h0PVwiMTJweFwiIC8+IDogPEV5ZVVuc2VlbiBoZWlnaHQ9XCIxMnB4XCIgLz59XG4gICAgICAgICAgPC9TdHlsZWRWaXNpYmlsaXR5VG9nZ2xlPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvU3R5bGVkTGVnZW5kSGVhZGVyUm93PlxuICAgICk7XG4gIH07XG4gIHJldHVybiBMYXllckxlZ2VuZEhlYWRlcjtcbn1cblxuY29uc3QgZGVmYXVsdEFjdGlvbkljb25zID0ge1xuICBleHBhbmRlZDogQXJyb3dEb3duLFxuICBjb2xsYXBzZWQ6IEFycm93UmlnaHRcbn07XG5cbmV4cG9ydCB0eXBlIExheWVyTGVnZW5kQ29udGVudFByb3BzID0ge1xuICBsYXllcjogTGF5ZXI7XG4gIGNvbnRhaW5lclc6IG51bWJlcjtcbiAgbWFwU3RhdGU/OiBNYXBTdGF0ZTtcbiAgZGlzYWJsZUVkaXQ/OiBib29sZWFuO1xuICBpc0V4cG9ydD86IGJvb2xlYW47XG4gIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U/OiAob2xkTGF5ZXI6IExheWVyLCBuZXdWaXNDb25maWc6IFBhcnRpYWw8TGF5ZXJWaXNDb25maWc+KSA9PiB2b2lkO1xuICBhY3Rpb25JY29uczogTWFwTGVnZW5kSWNvbnM7XG59O1xuXG5MYXllckxlZ2VuZENvbnRlbnRGYWN0b3J5LmRlcHMgPSBbTGF5ZXJDb2xvckxlZ2VuZEZhY3RvcnldO1xuXG5leHBvcnQgZnVuY3Rpb24gTGF5ZXJMZWdlbmRDb250ZW50RmFjdG9yeShcbiAgTGF5ZXJDb2xvckxlZ2VuZDogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJDb2xvckxlZ2VuZEZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgTGF5ZXJMZWdlbmRDb250ZW50OiBSZWFjdC5GQzxMYXllckxlZ2VuZENvbnRlbnRQcm9wcz4gPSAoe1xuICAgIGxheWVyLFxuICAgIGNvbnRhaW5lclcsXG4gICAgbWFwU3RhdGUsXG4gICAgZGlzYWJsZUVkaXQsXG4gICAgaXNFeHBvcnQsXG4gICAgb25MYXllclZpc0NvbmZpZ0NoYW5nZSxcbiAgICBhY3Rpb25JY29uc1xuICB9KSA9PiB7XG4gICAgY29uc3QgdmlzdWFsQ2hhbm5lbHMgPSBsYXllci5nZXRMZWdlbmRWaXN1YWxDaGFubmVscygpO1xuICAgIGNvbnN0IGNoYW5uZWxLZXlzID0gT2JqZWN0LnZhbHVlcyh2aXN1YWxDaGFubmVscyk7XG4gICAgY29uc3QgY29sb3JDaGFubmVscyA9IGNoYW5uZWxLZXlzLmZpbHRlcihpc0NvbG9yQ2hhbm5lbCkgYXMgVmlzdWFsQ2hhbm5lbFtdO1xuICAgIGNvbnN0IG5vbkNvbG9yQ2hhbm5lbHMgPSBjaGFubmVsS2V5cy5maWx0ZXIodmMgPT4gIWlzQ29sb3JDaGFubmVsKHZjKSk7XG4gICAgY29uc3Qgd2lkdGggPSBjb250YWluZXJXIC0gMiAqIERJTUVOU0lPTlMubWFwQ29udHJvbC5wYWRkaW5nO1xuXG4gICAgLy8gcmVuZGVyIGNvbG9yIGJ5IGNoYW5lbCBvbmx5XG4gICAgbGV0IGNvbG9yQ2hhbm5lbFRvUmVuZGVyID0gY29sb3JDaGFubmVscy5maWx0ZXIoXG4gICAgICBjYyA9PlxuICAgICAgICAoIWNjLmNvbmRpdGlvbiB8fCBjYy5jb25kaXRpb24obGF5ZXIuY29uZmlnKSkgJiZcbiAgICAgICAgbGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKGNjLmtleSk/Lm1lYXN1cmVcbiAgICApO1xuICAgIC8vIGlmIG5vIGNvbG9yIGJ5IGNoYW5lbCwgcmVuZGVyIHJlc3RcbiAgICBpZiAoIWNvbG9yQ2hhbm5lbFRvUmVuZGVyLmxlbmd0aCkge1xuICAgICAgY29sb3JDaGFubmVsVG9SZW5kZXIgPSBjb2xvckNoYW5uZWxzLmZpbHRlcihcbiAgICAgICAgY2MgPT4gIWNjLmNvbmRpdGlvbiB8fCBjYy5jb25kaXRpb24obGF5ZXIuY29uZmlnKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIDw+XG4gICAgICAgIHtjb2xvckNoYW5uZWxUb1JlbmRlci5tYXAoY29sb3JDaGFubmVsID0+IChcbiAgICAgICAgICA8TGF5ZXJDb2xvckxlZ2VuZFxuICAgICAgICAgICAga2V5PXtjb2xvckNoYW5uZWwua2V5fVxuICAgICAgICAgICAgY29sb3JDaGFubmVsPXtjb2xvckNoYW5uZWx9XG4gICAgICAgICAgICBjb25maWc9e2xheWVyLmNvbmZpZ31cbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtsYXllci5nZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24oY29sb3JDaGFubmVsLmtleSl9XG4gICAgICAgICAgICBsYXllcj17bGF5ZXJ9XG4gICAgICAgICAgICBpc0V4cG9ydD17aXNFeHBvcnR9XG4gICAgICAgICAgICBkaXNhYmxlRWRpdD17ZGlzYWJsZUVkaXR9XG4gICAgICAgICAgICBtYXBTdGF0ZT17bWFwU3RhdGV9XG4gICAgICAgICAgICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlPXtvbkxheWVyVmlzQ29uZmlnQ2hhbmdlfVxuICAgICAgICAgICAgYWN0aW9uSWNvbnM9e2FjdGlvbkljb25zfVxuICAgICAgICAgIC8+XG4gICAgICAgICkpfVxuICAgICAgICB7bm9uQ29sb3JDaGFubmVscy5tYXAoKHZpc3VhbENoYW5uZWw6IFZpc3VhbENoYW5uZWwpID0+IHtcbiAgICAgICAgICBjb25zdCBtYXRjaENvbmRpdGlvbiA9ICF2aXN1YWxDaGFubmVsLmNvbmRpdGlvbiB8fCB2aXN1YWxDaGFubmVsLmNvbmRpdGlvbihsYXllci5jb25maWcpO1xuICAgICAgICAgIGNvbnN0IGVuYWJsZWQgPSBsYXllci5jb25maWdbdmlzdWFsQ2hhbm5lbC5maWVsZF0gfHwgdmlzdWFsQ2hhbm5lbC5kZWZhdWx0TWVhc3VyZTtcblxuICAgICAgICAgIGlmIChtYXRjaENvbmRpdGlvbiAmJiBlbmFibGVkKSB7XG4gICAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGxheWVyLmdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbih2aXN1YWxDaGFubmVsLmtleSk7XG4gICAgICAgICAgICBpZiAoaXNSYWRpdXNDaGFubmVsKHZpc3VhbENoYW5uZWwpKSB7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgPExheWVyUmFkaXVzTGVnZW5kXG4gICAgICAgICAgICAgICAgICBrZXk9e3Zpc3VhbENoYW5uZWwua2V5fVxuICAgICAgICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3dpZHRofVxuICAgICAgICAgICAgICAgICAgdmlzdWFsQ2hhbm5lbD17dmlzdWFsQ2hhbm5lbH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgPExheWVyRGVmYXVsdExlZ2VuZFxuICAgICAgICAgICAgICAgIGtleT17dmlzdWFsQ2hhbm5lbC5rZXl9XG4gICAgICAgICAgICAgICAgbGFiZWw9e2Rlc2NyaXB0aW9uLmxhYmVsfVxuICAgICAgICAgICAgICAgIG5hbWU9e2Rlc2NyaXB0aW9uLm1lYXN1cmV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfSl9XG4gICAgICA8Lz5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBMYXllckxlZ2VuZENvbnRlbnQ7XG59XG5cbmV4cG9ydCB0eXBlIE1hcExlZ2VuZFByb3BzID0ge1xuICBsYXllcnM/OiBSZWFkb25seUFycmF5PExheWVyPjtcbiAgbGF5ZXJPcmRlcj86IExheWVyT3JkZXI7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICBvcHRpb25zPzoge1xuICAgIHNob3dMYXllck5hbWU/OiBib29sZWFuO1xuICB9O1xuICBkaXNhYmxlRWRpdD86IGJvb2xlYW47XG4gIGlzRXhwb3J0PzogYm9vbGVhbjtcbiAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT86IChvbGRMYXllcjogTGF5ZXIsIG5ld1Zpc0NvbmZpZzogUGFydGlhbDxMYXllclZpc0NvbmZpZz4pID0+IHZvaWQ7XG4gIG9uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5PzogKGxheWVyOiBMYXllcikgPT4gdm9pZDtcbiAgb25NYXBUb2dnbGVMYXllcj86IChtYXBJbmRleDogbnVtYmVyLCBsYXllcklkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIGlzU3BsaXQ/OiBib29sZWFuO1xuICBzcGxpdE1hcHM/OiB7bGF5ZXJzOiB7W2tleTogc3RyaW5nXTogYm9vbGVhbn19W107XG4gIGFjdGlvbkljb25zPzogTWFwTGVnZW5kSWNvbnM7XG59O1xuXG5NYXBMZWdlbmRGYWN0b3J5LmRlcHMgPSBbTGF5ZXJMZWdlbmRIZWFkZXJGYWN0b3J5LCBMYXllckxlZ2VuZENvbnRlbnRGYWN0b3J5XTtcblxuZnVuY3Rpb24gTWFwTGVnZW5kRmFjdG9yeShcbiAgTGF5ZXJMZWdlbmRIZWFkZXI6IFJldHVyblR5cGU8dHlwZW9mIExheWVyTGVnZW5kSGVhZGVyRmFjdG9yeT4sXG4gIExheWVyTGVnZW5kQ29udGVudDogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJMZWdlbmRDb250ZW50RmFjdG9yeT5cbikge1xuICBjb25zdCBMYXllckxlZ2VuZEl0ZW06IFJlYWN0LkZDPHtcbiAgICBsYXllcjogTGF5ZXI7XG4gICAgY29udGFpbmVyVzogbnVtYmVyO1xuICAgIGlzTGFzdDogYm9vbGVhbjtcbiAgICBpc0xheWVyVmlzaWJsZTogYm9vbGVhbjtcbiAgICBpc0V4cG9ydD86IGJvb2xlYW47XG4gICAgb3B0aW9ucz86IHtzaG93TGF5ZXJOYW1lPzogYm9vbGVhbn07XG4gICAgbWFwU3RhdGU/OiBNYXBTdGF0ZTtcbiAgICBkaXNhYmxlRWRpdD86IGJvb2xlYW47XG4gICAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT86IChvbGRMYXllcjogTGF5ZXIsIG5ld1Zpc0NvbmZpZzogUGFydGlhbDxMYXllclZpc0NvbmZpZz4pID0+IHZvaWQ7XG4gICAgb25Ub2dnbGVMYXllclZpc2liaWxpdHk/OiAobGF5ZXI6IExheWVyKSA9PiB2b2lkO1xuICAgIG9uTWFwVG9nZ2xlTGF5ZXI/OiAobWFwSW5kZXg6IG51bWJlciwgbGF5ZXJJZDogc3RyaW5nKSA9PiB2b2lkO1xuICAgIGlzU3BsaXQ/OiBib29sZWFuO1xuICAgIHNwbGl0TWFwcz86IHtsYXllcnM6IHtba2V5OiBzdHJpbmddOiBib29sZWFufX1bXTtcbiAgICBhY3Rpb25JY29uczogTWFwTGVnZW5kSWNvbnM7XG4gIH0+ID0gKHtcbiAgICBsYXllcixcbiAgICBjb250YWluZXJXLFxuICAgIGlzTGFzdCxcbiAgICBpc0xheWVyVmlzaWJsZSxcbiAgICBpc0V4cG9ydCxcbiAgICBvcHRpb25zLFxuICAgIG1hcFN0YXRlLFxuICAgIGRpc2FibGVFZGl0LFxuICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsXG4gICAgb25Ub2dnbGVMYXllclZpc2liaWxpdHksXG4gICAgb25NYXBUb2dnbGVMYXllcixcbiAgICBpc1NwbGl0LFxuICAgIHNwbGl0TWFwcyxcbiAgICBhY3Rpb25JY29uc1xuICB9KSA9PiB7XG4gICAgY29uc3QgW2lzRXhwYW5kZWQsIHNldElzRXhwYW5kZWRdID0gdXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgaGFuZGxlVG9nZ2xlRXhwYW5kZWQgPSB1c2VDYWxsYmFjaygoKSA9PiBzZXRJc0V4cGFuZGVkKHByZXYgPT4gIXByZXYpLCBbXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZE1hcENvbnRyb2xMZWdlbmQgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllclwiICRsYXN0PXtpc0xhc3R9IHdpZHRoPXtjb250YWluZXJXfT5cbiAgICAgICAgPExheWVyTGVnZW5kSGVhZGVyXG4gICAgICAgICAgaXNFeHBvcnQ9e2lzRXhwb3J0fVxuICAgICAgICAgIG9wdGlvbnM9e29wdGlvbnN9XG4gICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgIG9uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5PXtvblRvZ2dsZUxheWVyVmlzaWJpbGl0eX1cbiAgICAgICAgICBpc1NwbGl0PXtpc1NwbGl0fVxuICAgICAgICAgIHNwbGl0TWFwcz17c3BsaXRNYXBzfVxuICAgICAgICAgIG9uTWFwVG9nZ2xlTGF5ZXI9e29uTWFwVG9nZ2xlTGF5ZXJ9XG4gICAgICAgICAgaXNFeHBhbmRlZD17aXNFeHBhbmRlZH1cbiAgICAgICAgICBvblRvZ2dsZUV4cGFuZGVkPXtpc0V4cG9ydCA/IHVuZGVmaW5lZCA6IGhhbmRsZVRvZ2dsZUV4cGFuZGVkfVxuICAgICAgICAvPlxuICAgICAgICB7aXNFeHBhbmRlZCA/IChcbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7b3BhY2l0eTogaXNMYXllclZpc2libGUgPyAxIDogMC41fX0+XG4gICAgICAgICAgICA8TGF5ZXJMZWdlbmRDb250ZW50XG4gICAgICAgICAgICAgIGNvbnRhaW5lclc9e2NvbnRhaW5lcld9XG4gICAgICAgICAgICAgIGxheWVyPXtsYXllcn1cbiAgICAgICAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICAgICAgICBkaXNhYmxlRWRpdD17ZGlzYWJsZUVkaXR9XG4gICAgICAgICAgICAgIGlzRXhwb3J0PXtpc0V4cG9ydH1cbiAgICAgICAgICAgICAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT17b25MYXllclZpc0NvbmZpZ0NoYW5nZX1cbiAgICAgICAgICAgICAgYWN0aW9uSWNvbnM9e2FjdGlvbkljb25zfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSA6IG51bGx9XG4gICAgICA8L1N0eWxlZE1hcENvbnRyb2xMZWdlbmQ+XG4gICAgKTtcbiAgfTtcblxuICBjb25zdCBNYXBMZWdlbmQ6IFJlYWN0LkZDPE1hcExlZ2VuZFByb3BzPiA9ICh7XG4gICAgbGF5ZXJzID0gW10sXG4gICAgbGF5ZXJPcmRlcixcbiAgICB3aWR0aCxcbiAgICBtYXBTdGF0ZSxcbiAgICBvcHRpb25zLFxuICAgIGRpc2FibGVFZGl0LFxuICAgIGlzRXhwb3J0LFxuICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsXG4gICAgb25Ub2dnbGVMYXllclZpc2liaWxpdHksXG4gICAgb25NYXBUb2dnbGVMYXllcixcbiAgICBpc1NwbGl0LFxuICAgIHNwbGl0TWFwcyxcbiAgICBhY3Rpb25JY29ucyA9IGRlZmF1bHRBY3Rpb25JY29uc1xuICB9KSA9PiB7XG4gICAgY29uc3Qgb3JkZXJlZExheWVycyA9IGxheWVyT3JkZXJcbiAgICAgID8gZ2V0RmxhdExheWVyT3JkZXIobGF5ZXJPcmRlcikucmVkdWNlPExheWVyW10+KChhY2MsIGlkKSA9PiB7XG4gICAgICAgICAgY29uc3QgbGF5ZXIgPSBsYXllcnMuZmluZChsID0+IGwuaWQgPT09IGlkKTtcbiAgICAgICAgICBpZiAobGF5ZXIpIGFjYy5wdXNoKGxheWVyKTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCBbXSlcbiAgICAgIDogbGF5ZXJzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWFwLWxlZ2VuZFwiPlxuICAgICAgICB7b3JkZXJlZExheWVycy5tYXAoKGxheWVyLCBpbmRleCkgPT4ge1xuICAgICAgICAgIGlmICghbGF5ZXIuaXNWYWxpZFRvU2F2ZSgpIHx8IGxheWVyLmNvbmZpZy5oaWRkZW4pIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBjb250YWluZXJXID0gd2lkdGggfHwgRElNRU5TSU9OUy5tYXBDb250cm9sLndpZHRoO1xuXG4gICAgICAgICAgY29uc3QgaXNMYXllclZpc2libGUgPVxuICAgICAgICAgICAgaXNTcGxpdCAmJiBzcGxpdE1hcHMgJiYgc3BsaXRNYXBzLmxlbmd0aCA+IDFcbiAgICAgICAgICAgICAgPyBsYXllci5jb25maWcuaXNWaXNpYmxlICYmXG4gICAgICAgICAgICAgICAgKEJvb2xlYW4oc3BsaXRNYXBzWzBdPy5sYXllcnM/LltsYXllci5pZF0pIHx8XG4gICAgICAgICAgICAgICAgICBCb29sZWFuKHNwbGl0TWFwc1sxXT8ubGF5ZXJzPy5bbGF5ZXIuaWRdKSlcbiAgICAgICAgICAgICAgOiBsYXllci5jb25maWcuaXNWaXNpYmxlO1xuXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxMYXllckxlZ2VuZEl0ZW1cbiAgICAgICAgICAgICAga2V5PXtsYXllci5pZH1cbiAgICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgICBjb250YWluZXJXPXtjb250YWluZXJXfVxuICAgICAgICAgICAgICBpc0xhc3Q9e2luZGV4ID09PSBvcmRlcmVkTGF5ZXJzLmxlbmd0aCAtIDF9XG4gICAgICAgICAgICAgIGlzTGF5ZXJWaXNpYmxlPXtpc0xheWVyVmlzaWJsZX1cbiAgICAgICAgICAgICAgaXNFeHBvcnQ9e2lzRXhwb3J0fVxuICAgICAgICAgICAgICBvcHRpb25zPXtvcHRpb25zfVxuICAgICAgICAgICAgICBtYXBTdGF0ZT17bWFwU3RhdGV9XG4gICAgICAgICAgICAgIGRpc2FibGVFZGl0PXtkaXNhYmxlRWRpdH1cbiAgICAgICAgICAgICAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT17b25MYXllclZpc0NvbmZpZ0NoYW5nZX1cbiAgICAgICAgICAgICAgb25Ub2dnbGVMYXllclZpc2liaWxpdHk9e29uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5fVxuICAgICAgICAgICAgICBvbk1hcFRvZ2dsZUxheWVyPXtvbk1hcFRvZ2dsZUxheWVyfVxuICAgICAgICAgICAgICBpc1NwbGl0PXtpc1NwbGl0fVxuICAgICAgICAgICAgICBzcGxpdE1hcHM9e3NwbGl0TWFwc31cbiAgICAgICAgICAgICAgYWN0aW9uSWNvbnM9e2FjdGlvbkljb25zfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApO1xuICAgICAgICB9KX1cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH07XG5cbiAgTWFwTGVnZW5kLmRpc3BsYXlOYW1lID0gJ01hcExlZ2VuZCc7XG5cbiAgcmV0dXJuIE1hcExlZ2VuZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWFwTGVnZW5kRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFlBQUEsR0FBQVAsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLGFBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLFVBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLGFBQUEsR0FBQVQsT0FBQTtBQUdBLElBQUFVLHdCQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxNQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxrQkFBQSxHQUFBVixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQWEsU0FBQSxHQUFBYixPQUFBO0FBQXNELElBQUFjLGVBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFBQUMsZ0JBQUEsRUFqQnREO0FBQ0E7QUFBQSxTQUFBcEIsd0JBQUFxQixDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBdkIsdUJBQUEsWUFBQUEsd0JBQUFxQixDQUFBLEVBQUFDLENBQUEsU0FBQUEsQ0FBQSxJQUFBRCxDQUFBLElBQUFBLENBQUEsQ0FBQUssVUFBQSxTQUFBTCxDQUFBLE1BQUFNLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsbUJB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QUltSyxxQkFBVSxDQUFDeEssVUFBVSxDQUFDSyxLQUFLO01BRXZELElBQU1nTCxjQUFjLEdBQ2xCOUMsT0FBTyxJQUFJQyxTQUFTLElBQUlBLFNBQVMsQ0FBQ3BKLE1BQU0sR0FBRyxDQUFDLEdBQ3hDK0QsS0FBSyxDQUFDRCxNQUFNLENBQUN5RixTQUFTLEtBQ3JCMUcsT0FBTyxFQUFBcUssWUFBQSxHQUFDOUQsU0FBUyxDQUFDLENBQUMsQ0FBQyxjQUFBOEQsWUFBQSxnQkFBQUEsWUFBQSxHQUFaQSxZQUFBLENBQWNyRCxNQUFNLGNBQUFxRCxZQUFBLHVCQUFwQkEsWUFBQSxDQUF1Qm5KLEtBQUssQ0FBQzlCLEVBQUUsQ0FBQyxDQUFDLElBQ3hDWSxPQUFPLEVBQUFzSyxZQUFBLEdBQUMvRCxTQUFTLENBQUMsQ0FBQyxDQUFDLGNBQUErRCxZQUFBLGdCQUFBQSxZQUFBLEdBQVpBLFlBQUEsQ0FBY3RELE1BQU0sY0FBQXNELFlBQUEsdUJBQXBCQSxZQUFBLENBQXVCcEosS0FBSyxDQUFDOUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUM1QzhCLEtBQUssQ0FBQ0QsTUFBTSxDQUFDeUYsU0FBUztNQUU1QixvQkFDRTFNLE1BQUEsWUFBQWlGLGFBQUEsQ0FBQ2dLLGVBQWU7UUFDZDlFLEdBQUcsRUFBRWpELEtBQUssQ0FBQzlCLEVBQUc7UUFDZDhCLEtBQUssRUFBRUEsS0FBTTtRQUNiNkcsVUFBVSxFQUFFQSxVQUFXO1FBQ3ZCb0IsTUFBTSxFQUFFaUIsS0FBSyxLQUFLTixhQUFhLENBQUMzTSxNQUFNLEdBQUcsQ0FBRTtRQUMzQ2lNLGNBQWMsRUFBRUEsY0FBZTtRQUMvQjlILFFBQVEsRUFBRUEsUUFBUztRQUNuQjhFLE9BQU8sRUFBRUEsT0FBUTtRQUNqQjdFLFFBQVEsRUFBRUEsUUFBUztRQUNuQkgsV0FBVyxFQUFFQSxXQUFZO1FBQ3pCQyxzQkFBc0IsRUFBRUEsc0JBQXVCO1FBQy9DZ0YsdUJBQXVCLEVBQUVBLHVCQUF3QjtRQUNqREcsZ0JBQWdCLEVBQUVBLGdCQUFpQjtRQUNuQ0YsT0FBTyxFQUFFQSxPQUFRO1FBQ2pCQyxTQUFTLEVBQUVBLFNBQVU7UUFDckIvRSxXQUFXLEVBQUVBO01BQVksQ0FDMUIsQ0FBQztJQUVOLENBQUMsQ0FDRSxDQUFDO0VBRVYsQ0FBQztFQUVEaUksU0FBUyxDQUFDbkosV0FBVyxHQUFHLFdBQVc7RUFFbkMsT0FBT21KLFNBQVM7QUFDbEI7QUFBQyxJQUFBZ0IsUUFBQSxHQUFBaE4sT0FBQSxjQUVjdUwsZ0JBQWdCIiwiaWdub3JlTGlzdCI6W119
|