@kepler.gl/reducers 3.3.0-alpha.13 → 3.3.0-alpha.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,7 +19,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
19
19
  * Important: Do not rename `actionHandler` or the assignment pattern of property value.
20
20
  * It is used to generate documentation
21
21
  */
22
- var actionHandler = (_actionHandler = {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.ADD_FILTER, visStateUpdaters.addFilterUpdater), _actions.ActionTypes.CREATE_OR_UPDATE_FILTER, visStateUpdaters.createOrUpdateFilterUpdater), _actions.ActionTypes.ADD_LAYER, visStateUpdaters.addLayerUpdater), _actions.ActionTypes.APPLY_FILTER_CONFIG, visStateUpdaters.applyFilterConfigUpdater), _actions.ActionTypes.APPLY_LAYER_CONFIG, visStateUpdaters.applyLayerConfigUpdater), _actions.ActionTypes.DUPLICATE_LAYER, visStateUpdaters.duplicateLayerUpdater), _actions.ActionTypes.SET_FILTER_VIEW, visStateUpdaters.setFilterViewUpdater), _actions.ActionTypes.INTERACTION_CONFIG_CHANGE, visStateUpdaters.interactionConfigChangeUpdater), _actions.ActionTypes.LAYER_CLICK, visStateUpdaters.layerClickUpdater), _actions.ActionTypes.LAYER_CONFIG_CHANGE, visStateUpdaters.layerConfigChangeUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.LAYER_SET_IS_VALID, visStateUpdaters.layerSetIsValidUpdater), _actions.ActionTypes.LAYER_HOVER, visStateUpdaters.layerHoverUpdater), _actions.ActionTypes.LAYER_TYPE_CHANGE, visStateUpdaters.layerTypeChangeUpdater), _actions.ActionTypes.LAYER_VIS_CONFIG_CHANGE, visStateUpdaters.layerVisConfigChangeUpdater), _actions.ActionTypes.LAYER_TOGGLE_VISIBILITY, visStateUpdaters.layerToggleVisibilityUpdater), _actions.ActionTypes.LAYER_TEXT_LABEL_CHANGE, visStateUpdaters.layerTextLabelChangeUpdater), _actions.ActionTypes.LAYER_VISUAL_CHANNEL_CHANGE, visStateUpdaters.layerVisualChannelChangeUpdater), _actions.ActionTypes.LAYER_COLOR_UI_CHANGE, visStateUpdaters.layerColorUIChangeUpdater), _actions.ActionTypes.TOGGLE_LAYER_ANIMATION, visStateUpdaters.toggleLayerAnimationUpdater), _actions.ActionTypes.TOGGLE_LAYER_ANIMATION_CONTROL, visStateUpdaters.toggleLayerAnimationControlUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.LOAD_FILES, visStateUpdaters.loadFilesUpdater), _actions.ActionTypes.LOAD_FILES_ERR, visStateUpdaters.loadFilesErrUpdater), _actions.ActionTypes.LOAD_NEXT_FILE, visStateUpdaters.loadNextFileUpdater), _actions.ActionTypes.LOAD_FILE_STEP_SUCCESS, visStateUpdaters.loadFileStepSuccessUpdater), _actions.ActionTypes.MAP_CLICK, visStateUpdaters.mapClickUpdater), _actions.ActionTypes.MOUSE_MOVE, visStateUpdaters.mouseMoveUpdater), _actions.ActionTypes.RECEIVE_MAP_CONFIG, visStateUpdaters.receiveMapConfigUpdater), _actions.ActionTypes.REMOVE_DATASET, visStateUpdaters.removeDatasetUpdater), _actions.ActionTypes.REMOVE_FILTER, visStateUpdaters.removeFilterUpdater), _actions.ActionTypes.REMOVE_LAYER, visStateUpdaters.removeLayerUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.REORDER_LAYER, visStateUpdaters.reorderLayerUpdater), _actions.ActionTypes.ADD_LAYER_GROUP, visStateUpdaters.addLayerGroupUpdater), _actions.ActionTypes.REMOVE_LAYER_GROUP, visStateUpdaters.removeLayerGroupUpdater), _actions.ActionTypes.UPDATE_LAYER_GROUP, visStateUpdaters.updateLayerGroupUpdater), _actions.ActionTypes.ADD_LAYER_TO_LAYER_GROUP, visStateUpdaters.addLayerToLayerGroupUpdater), _actions.ActionTypes.REMOVE_LAYER_FROM_LAYER_GROUP, visStateUpdaters.removeLayerFromLayerGroupUpdater), _actions.ActionTypes.SWAP_LAYER_ORDER_ENTRIES, visStateUpdaters.swapLayerOrderEntriesUpdater), _actions.ActionTypes.RESET_MAP_CONFIG, visStateUpdaters.resetMapConfigUpdater), _actions.ActionTypes.SET_FILTER, visStateUpdaters.setFilterUpdater), _actions.ActionTypes.SET_FILTER_ANIMATION_TIME, visStateUpdaters.setFilterAnimationTimeUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.SET_FILTER_ANIMATION_TIME_CONFIG, visStateUpdaters.setFilterAnimationTimeConfigUpdater), _actions.ActionTypes.SET_FILTER_ANIMATION_WINDOW, visStateUpdaters.setFilterAnimationWindowUpdater), _actions.ActionTypes.SET_FILTER_PLOT, visStateUpdaters.setFilterPlotUpdater), _actions.ActionTypes.SET_MAP_INFO, visStateUpdaters.setMapInfoUpdater), _actions.ActionTypes.SHOW_DATASET_TABLE, visStateUpdaters.showDatasetTableUpdater), _actions.ActionTypes.UPDATE_TABLE_COLOR, visStateUpdaters.updateTableColorUpdater), _actions.ActionTypes.REFRESH_DATASET, visStateUpdaters.refreshDatasetUpdater), _actions.ActionTypes.REFRESH_DATASET_SUCCESS, visStateUpdaters.refreshDatasetSuccessUpdater), _actions.ActionTypes.REFRESH_DATASET_ERROR, visStateUpdaters.refreshDatasetErrorUpdater), _actions.ActionTypes.REFRESH_DATASET_PROGRESS, visStateUpdaters.refreshDatasetProgressUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.ADD_TO_DATASET, visStateUpdaters.addToDatasetUpdater), _actions.ActionTypes.REMOVE_FROM_DATASET, visStateUpdaters.removeFromDatasetUpdater), _actions.ActionTypes.TOGGLE_FILTER_ANIMATION, visStateUpdaters.toggleFilterAnimationUpdater), _actions.ActionTypes.UPDATE_FILTER_ANIMATION_SPEED, visStateUpdaters.updateFilterAnimationSpeedUpdater), _actions.ActionTypes.SET_ANIMATION_CONFIG, visStateUpdaters.setAnimationConfigUpdater), _actions.ActionTypes.SET_LAYER_ANIMATION_TIME, visStateUpdaters.setLayerAnimationTimeUpdater), _actions.ActionTypes.UPDATE_LAYER_ANIMATION_SPEED, visStateUpdaters.updateLayerAnimationSpeedUpdater), _actions.ActionTypes.TOGGLE_LAYER_FOR_MAP, visStateUpdaters.toggleLayerForMapUpdater), _actions.ActionTypes.TOGGLE_SPLIT_MAP, visStateUpdaters.toggleSplitMapUpdater), _actions.ActionTypes.UPDATE_LAYER_BLENDING, visStateUpdaters.updateLayerBlendingUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.UPDATE_OVERLAY_BLENDING, visStateUpdaters.updateOverlayBlendingUpdater), _actions.ActionTypes.UPDATE_VIS_DATA, visStateUpdaters.updateVisDataUpdater), _actions.ActionTypes.RENAME_DATASET, visStateUpdaters.renameDatasetUpdater), _actions.ActionTypes.UPDATE_DATASET_PROPS, visStateUpdaters.updateDatasetPropsUpdater), _actions.ActionTypes.UPDATE_DATASET, visStateUpdaters.updateDatasetUpdater), _actions.ActionTypes.SET_FEATURES, visStateUpdaters.setFeaturesUpdater), _actions.ActionTypes.SET_EDITOR_FEATURE_PROPERTIES, visStateUpdaters.setEditorFeaturePropertiesUpdater), _actions.ActionTypes.DELETE_FEATURE, visStateUpdaters.deleteFeatureUpdater), _actions.ActionTypes.SET_POLYGON_FILTER_LAYER, visStateUpdaters.setPolygonFilterLayerUpdater), _actions.ActionTypes.SET_POLYGON_FILTER_ALL_LAYERS, visStateUpdaters.setPolygonFilterAllLayersUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.SET_SELECTED_FEATURE, visStateUpdaters.setSelectedFeatureUpdater), _actions.ActionTypes.SET_EDITOR_MODE, visStateUpdaters.setEditorModeUpdater), _actions.ActionTypes.TOGGLE_EDITOR_VISIBILITY, visStateUpdaters.toggleEditorVisibilityUpdater), _actions.ActionTypes.CONVERT_EDITOR_FEATURES_TO_LAYER, visStateUpdaters.convertEditorFeaturesToLayerUpdater), _actions.ActionTypes.EXTRACT_DATA_FROM_FEATURE, visStateUpdaters.extractDataFromFeatureUpdater), _actions.ActionTypes.TOGGLE_FILTER_FEATURE, visStateUpdaters.toggleFilterFeatureUpdater), _actions.ActionTypes.APPLY_CPU_FILTER, visStateUpdaters.applyCPUFilterUpdater), _actions.ActionTypes.SORT_TABLE_COLUMN, visStateUpdaters.sortTableColumnUpdater), _actions.ActionTypes.PIN_TABLE_COLUMN, visStateUpdaters.pinTableColumnUpdater), _actions.ActionTypes.COPY_TABLE_COLUMN, visStateUpdaters.copyTableColumnUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.SET_COLUMN_DISPLAY_FORMAT, visStateUpdaters.setColumnDisplayFormatUpdater), _actions.ActionTypes.LOAD_COLUMN_STATS, visStateUpdaters.loadColumnStatsUpdater), _actions.ActionTypes.LOAD_COLUMN_STATS_SUCCESS, visStateUpdaters.loadColumnStatsSuccessUpdater), _actions.ActionTypes.LOAD_COLUMN_STATS_ERROR, visStateUpdaters.loadColumnStatsErrorUpdater), _actions.ActionTypes.NEXT_FILE_BATCH, visStateUpdaters.nextFileBatchUpdater), _actions.ActionTypes.PROCESS_FILE_CONTENT, visStateUpdaters.processFileContentUpdater), _actions.ActionTypes.SET_LAYER_ANIMATION_TIME_CONFIG, visStateUpdaters.setLayerAnimationTimeConfigUpdater), _actions.ActionTypes.LAYER_FILTERED_ITEMS_CHANGE, visStateUpdaters.layerFilteredItemsChangeUpdater), _actions.ActionTypes.WMS_FEATURE_INFO, visStateUpdaters.wmsFeatureInfoUpdater), _actions.ActionTypes.SYNC_TIME_FILTER_WITH_LAYER_TIMELINE, visStateUpdaters.syncTimeFilterWithLayerTimelineUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.SYNC_TIME_FILTER_TIMELINE_MODE, visStateUpdaters.setTimeFilterTimelineModeUpdater), _actions.ActionTypes.ADD_EFFECT, visStateUpdaters.addEffectUpdater), _actions.ActionTypes.REORDER_EFFECT, visStateUpdaters.reorderEffectUpdater), _actions.ActionTypes.REMOVE_EFFECT, visStateUpdaters.removeEffectUpdater), _actions.ActionTypes.UPDATE_EFFECT, visStateUpdaters.updateEffectUpdater), _actions.ActionTypes.ADD_ANNOTATION, visStateUpdaters.addAnnotationUpdater), _actions.ActionTypes.REMOVE_ANNOTATION, visStateUpdaters.removeAnnotationUpdater), _actions.ActionTypes.UPDATE_ANNOTATION, visStateUpdaters.updateAnnotationUpdater), _actions.ActionTypes.DUPLICATE_ANNOTATION, visStateUpdaters.duplicateAnnotationUpdater), _actions.ActionTypes.SET_SELECTED_ANNOTATION, visStateUpdaters.setSelectedAnnotationUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.CREATE_NEW_DATASET_SUCCESS, visStateUpdaters.createNewDatasetSuccessUpdater), _actions.ActionTypes.SET_LOADING_INDICATOR, visStateUpdaters.setLoadingIndicatorUpdater));
22
+ var actionHandler = (_actionHandler = {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.ADD_FILTER, visStateUpdaters.addFilterUpdater), _actions.ActionTypes.CREATE_OR_UPDATE_FILTER, visStateUpdaters.createOrUpdateFilterUpdater), _actions.ActionTypes.ADD_LAYER, visStateUpdaters.addLayerUpdater), _actions.ActionTypes.APPLY_FILTER_CONFIG, visStateUpdaters.applyFilterConfigUpdater), _actions.ActionTypes.APPLY_LAYER_CONFIG, visStateUpdaters.applyLayerConfigUpdater), _actions.ActionTypes.DUPLICATE_LAYER, visStateUpdaters.duplicateLayerUpdater), _actions.ActionTypes.SET_FILTER_VIEW, visStateUpdaters.setFilterViewUpdater), _actions.ActionTypes.INTERACTION_CONFIG_CHANGE, visStateUpdaters.interactionConfigChangeUpdater), _actions.ActionTypes.LAYER_CLICK, visStateUpdaters.layerClickUpdater), _actions.ActionTypes.LAYER_CONFIG_CHANGE, visStateUpdaters.layerConfigChangeUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.LAYER_SET_IS_VALID, visStateUpdaters.layerSetIsValidUpdater), _actions.ActionTypes.LAYER_HOVER, visStateUpdaters.layerHoverUpdater), _actions.ActionTypes.LAYER_TYPE_CHANGE, visStateUpdaters.layerTypeChangeUpdater), _actions.ActionTypes.LAYER_VIS_CONFIG_CHANGE, visStateUpdaters.layerVisConfigChangeUpdater), _actions.ActionTypes.LAYER_TOGGLE_VISIBILITY, visStateUpdaters.layerToggleVisibilityUpdater), _actions.ActionTypes.LAYER_TEXT_LABEL_CHANGE, visStateUpdaters.layerTextLabelChangeUpdater), _actions.ActionTypes.LAYER_VISUAL_CHANNEL_CHANGE, visStateUpdaters.layerVisualChannelChangeUpdater), _actions.ActionTypes.LAYER_COLOR_UI_CHANGE, visStateUpdaters.layerColorUIChangeUpdater), _actions.ActionTypes.TOGGLE_LAYER_ANIMATION, visStateUpdaters.toggleLayerAnimationUpdater), _actions.ActionTypes.TOGGLE_LAYER_ANIMATION_CONTROL, visStateUpdaters.toggleLayerAnimationControlUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.LOAD_FILES, visStateUpdaters.loadFilesUpdater), _actions.ActionTypes.LOAD_FILES_ERR, visStateUpdaters.loadFilesErrUpdater), _actions.ActionTypes.LOAD_NEXT_FILE, visStateUpdaters.loadNextFileUpdater), _actions.ActionTypes.LOAD_FILE_STEP_SUCCESS, visStateUpdaters.loadFileStepSuccessUpdater), _actions.ActionTypes.MAP_CLICK, visStateUpdaters.mapClickUpdater), _actions.ActionTypes.MOUSE_MOVE, visStateUpdaters.mouseMoveUpdater), _actions.ActionTypes.RECEIVE_MAP_CONFIG, visStateUpdaters.receiveMapConfigUpdater), _actions.ActionTypes.REMOVE_DATASET, visStateUpdaters.removeDatasetUpdater), _actions.ActionTypes.REMOVE_FILTER, visStateUpdaters.removeFilterUpdater), _actions.ActionTypes.REMOVE_LAYER, visStateUpdaters.removeLayerUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.REORDER_LAYER, visStateUpdaters.reorderLayerUpdater), _actions.ActionTypes.ADD_LAYER_GROUP, visStateUpdaters.addLayerGroupUpdater), _actions.ActionTypes.REMOVE_LAYER_GROUP, visStateUpdaters.removeLayerGroupUpdater), _actions.ActionTypes.UPDATE_LAYER_GROUP, visStateUpdaters.updateLayerGroupUpdater), _actions.ActionTypes.ADD_LAYER_TO_LAYER_GROUP, visStateUpdaters.addLayerToLayerGroupUpdater), _actions.ActionTypes.REMOVE_LAYER_FROM_LAYER_GROUP, visStateUpdaters.removeLayerFromLayerGroupUpdater), _actions.ActionTypes.SWAP_LAYER_ORDER_ENTRIES, visStateUpdaters.swapLayerOrderEntriesUpdater), _actions.ActionTypes.RESET_MAP_CONFIG, visStateUpdaters.resetMapConfigUpdater), _actions.ActionTypes.SET_FILTER, visStateUpdaters.setFilterUpdater), _actions.ActionTypes.SET_FILTER_ANIMATION_TIME, visStateUpdaters.setFilterAnimationTimeUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.SET_FILTER_ANIMATION_TIME_CONFIG, visStateUpdaters.setFilterAnimationTimeConfigUpdater), _actions.ActionTypes.SET_FILTER_ANIMATION_WINDOW, visStateUpdaters.setFilterAnimationWindowUpdater), _actions.ActionTypes.SET_FILTER_PLOT, visStateUpdaters.setFilterPlotUpdater), _actions.ActionTypes.SET_MAP_INFO, visStateUpdaters.setMapInfoUpdater), _actions.ActionTypes.SHOW_DATASET_TABLE, visStateUpdaters.showDatasetTableUpdater), _actions.ActionTypes.UPDATE_TABLE_COLOR, visStateUpdaters.updateTableColorUpdater), _actions.ActionTypes.REFRESH_DATASET, visStateUpdaters.refreshDatasetUpdater), _actions.ActionTypes.REFRESH_DATASET_SUCCESS, visStateUpdaters.refreshDatasetSuccessUpdater), _actions.ActionTypes.REFRESH_DATASET_ERROR, visStateUpdaters.refreshDatasetErrorUpdater), _actions.ActionTypes.REFRESH_DATASET_PROGRESS, visStateUpdaters.refreshDatasetProgressUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.ADD_TO_DATASET, visStateUpdaters.addToDatasetUpdater), _actions.ActionTypes.REMOVE_FROM_DATASET, visStateUpdaters.removeFromDatasetUpdater), _actions.ActionTypes.TOGGLE_FILTER_ANIMATION, visStateUpdaters.toggleFilterAnimationUpdater), _actions.ActionTypes.UPDATE_FILTER_ANIMATION_SPEED, visStateUpdaters.updateFilterAnimationSpeedUpdater), _actions.ActionTypes.SET_ANIMATION_CONFIG, visStateUpdaters.setAnimationConfigUpdater), _actions.ActionTypes.SET_LAYER_ANIMATION_TIME, visStateUpdaters.setLayerAnimationTimeUpdater), _actions.ActionTypes.UPDATE_LAYER_ANIMATION_SPEED, visStateUpdaters.updateLayerAnimationSpeedUpdater), _actions.ActionTypes.TOGGLE_LAYER_FOR_MAP, visStateUpdaters.toggleLayerForMapUpdater), _actions.ActionTypes.TOGGLE_SPLIT_MAP, visStateUpdaters.toggleSplitMapUpdater), _actions.ActionTypes.UPDATE_LAYER_BLENDING, visStateUpdaters.updateLayerBlendingUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.UPDATE_OVERLAY_BLENDING, visStateUpdaters.updateOverlayBlendingUpdater), _actions.ActionTypes.UPDATE_VIS_DATA, visStateUpdaters.updateVisDataUpdater), _actions.ActionTypes.RENAME_DATASET, visStateUpdaters.renameDatasetUpdater), _actions.ActionTypes.UPDATE_DATASET_PROPS, visStateUpdaters.updateDatasetPropsUpdater), _actions.ActionTypes.UPDATE_DATASET, visStateUpdaters.updateDatasetUpdater), _actions.ActionTypes.SET_FEATURES, visStateUpdaters.setFeaturesUpdater), _actions.ActionTypes.SET_EDITOR_FEATURE_PROPERTIES, visStateUpdaters.setEditorFeaturePropertiesUpdater), _actions.ActionTypes.DELETE_FEATURE, visStateUpdaters.deleteFeatureUpdater), _actions.ActionTypes.SET_POLYGON_FILTER_LAYER, visStateUpdaters.setPolygonFilterLayerUpdater), _actions.ActionTypes.SET_POLYGON_FILTER_ALL_LAYERS, visStateUpdaters.setPolygonFilterAllLayersUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.SET_SELECTED_FEATURE, visStateUpdaters.setSelectedFeatureUpdater), _actions.ActionTypes.SET_EDITOR_MODE, visStateUpdaters.setEditorModeUpdater), _actions.ActionTypes.TOGGLE_EDITOR_VISIBILITY, visStateUpdaters.toggleEditorVisibilityUpdater), _actions.ActionTypes.CONVERT_EDITOR_FEATURES_TO_LAYER, visStateUpdaters.convertEditorFeaturesToLayerUpdater), _actions.ActionTypes.EXTRACT_DATA_FROM_FEATURE, visStateUpdaters.extractDataFromFeatureUpdater), _actions.ActionTypes.TOGGLE_FILTER_FEATURE, visStateUpdaters.toggleFilterFeatureUpdater), _actions.ActionTypes.APPLY_CPU_FILTER, visStateUpdaters.applyCPUFilterUpdater), _actions.ActionTypes.SORT_TABLE_COLUMN, visStateUpdaters.sortTableColumnUpdater), _actions.ActionTypes.PIN_TABLE_COLUMN, visStateUpdaters.pinTableColumnUpdater), _actions.ActionTypes.COPY_TABLE_COLUMN, visStateUpdaters.copyTableColumnUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.SET_COLUMN_DISPLAY_FORMAT, visStateUpdaters.setColumnDisplayFormatUpdater), _actions.ActionTypes.LOAD_COLUMN_STATS, visStateUpdaters.loadColumnStatsUpdater), _actions.ActionTypes.LOAD_COLUMN_STATS_SUCCESS, visStateUpdaters.loadColumnStatsSuccessUpdater), _actions.ActionTypes.LOAD_COLUMN_STATS_ERROR, visStateUpdaters.loadColumnStatsErrorUpdater), _actions.ActionTypes.NEXT_FILE_BATCH, visStateUpdaters.nextFileBatchUpdater), _actions.ActionTypes.PROCESS_FILE_CONTENT, visStateUpdaters.processFileContentUpdater), _actions.ActionTypes.SET_LAYER_ANIMATION_TIME_CONFIG, visStateUpdaters.setLayerAnimationTimeConfigUpdater), _actions.ActionTypes.LAYER_FILTERED_ITEMS_CHANGE, visStateUpdaters.layerFilteredItemsChangeUpdater), _actions.ActionTypes.WMS_FEATURE_INFO, visStateUpdaters.wmsFeatureInfoUpdater), _actions.ActionTypes.SYNC_TIME_FILTER_WITH_LAYER_TIMELINE, visStateUpdaters.syncTimeFilterWithLayerTimelineUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.SYNC_TIME_FILTER_TIMELINE_MODE, visStateUpdaters.setTimeFilterTimelineModeUpdater), _actions.ActionTypes.ADD_EFFECT, visStateUpdaters.addEffectUpdater), _actions.ActionTypes.REORDER_EFFECT, visStateUpdaters.reorderEffectUpdater), _actions.ActionTypes.REMOVE_EFFECT, visStateUpdaters.removeEffectUpdater), _actions.ActionTypes.UPDATE_EFFECT, visStateUpdaters.updateEffectUpdater), _actions.ActionTypes.ADD_CHART, visStateUpdaters.addChartUpdater), _actions.ActionTypes.UPDATE_CHART, visStateUpdaters.updateChartUpdater), _actions.ActionTypes.REMOVE_CHART, visStateUpdaters.removeChartUpdater), _actions.ActionTypes.ADD_ANNOTATION, visStateUpdaters.addAnnotationUpdater), _actions.ActionTypes.REMOVE_ANNOTATION, visStateUpdaters.removeAnnotationUpdater), (0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])((0, _defineProperty2["default"])(_actionHandler, _actions.ActionTypes.UPDATE_ANNOTATION, visStateUpdaters.updateAnnotationUpdater), _actions.ActionTypes.DUPLICATE_ANNOTATION, visStateUpdaters.duplicateAnnotationUpdater), _actions.ActionTypes.SET_SELECTED_ANNOTATION, visStateUpdaters.setSelectedAnnotationUpdater), _actions.ActionTypes.CREATE_NEW_DATASET_SUCCESS, visStateUpdaters.createNewDatasetSuccessUpdater), _actions.ActionTypes.SET_LOADING_INDICATOR, visStateUpdaters.setLoadingIndicatorUpdater), _actions.ActionTypes.SET_LOADING_PROGRESS, visStateUpdaters.setLoadingProgressUpdater));
23
23
 
24
24
  // construct vis-state reducer
25
25
  var visStateReducerFactory = exports.visStateReducerFactory = function visStateReducerFactory() {
@@ -32,4 +32,4 @@ var visStateReducerFactory = exports.visStateReducerFactory = function visStateR
32
32
  );
33
33
  };
34
34
  var _default = exports["default"] = visStateReducerFactory();
35
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYWN0aW9ucyIsInJlcXVpcmUiLCJfcmVkdXhBY3Rpb25zIiwidmlzU3RhdGVVcGRhdGVycyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2FjdGlvbkhhbmRsZXIiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiYWN0aW9uSGFuZGxlciIsIkFjdGlvblR5cGVzIiwiQUREX0ZJTFRFUiIsImFkZEZpbHRlclVwZGF0ZXIiLCJDUkVBVEVfT1JfVVBEQVRFX0ZJTFRFUiIsImNyZWF0ZU9yVXBkYXRlRmlsdGVyVXBkYXRlciIsIkFERF9MQVlFUiIsImFkZExheWVyVXBkYXRlciIsIkFQUExZX0ZJTFRFUl9DT05GSUciLCJhcHBseUZpbHRlckNvbmZpZ1VwZGF0ZXIiLCJBUFBMWV9MQVlFUl9DT05GSUciLCJhcHBseUxheWVyQ29uZmlnVXBkYXRlciIsIkRVUExJQ0FURV9MQVlFUiIsImR1cGxpY2F0ZUxheWVyVXBkYXRlciIsIlNFVF9GSUxURVJfVklFVyIsInNldEZpbHRlclZpZXdVcGRhdGVyIiwiSU5URVJBQ1RJT05fQ09ORklHX0NIQU5HRSIsImludGVyYWN0aW9uQ29uZmlnQ2hhbmdlVXBkYXRlciIsIkxBWUVSX0NMSUNLIiwibGF5ZXJDbGlja1VwZGF0ZXIiLCJMQVlFUl9DT05GSUdfQ0hBTkdFIiwibGF5ZXJDb25maWdDaGFuZ2VVcGRhdGVyIiwiTEFZRVJfU0VUX0lTX1ZBTElEIiwibGF5ZXJTZXRJc1ZhbGlkVXBkYXRlciIsIkxBWUVSX0hPVkVSIiwibGF5ZXJIb3ZlclVwZGF0ZXIiLCJMQVlFUl9UWVBFX0NIQU5HRSIsImxheWVyVHlwZUNoYW5nZVVwZGF0ZXIiLCJMQVlFUl9WSVNfQ09ORklHX0NIQU5HRSIsImxheWVyVmlzQ29uZmlnQ2hhbmdlVXBkYXRlciIsIkxBWUVSX1RPR0dMRV9WSVNJQklMSVRZIiwibGF5ZXJUb2dnbGVWaXNpYmlsaXR5VXBkYXRlciIsIkxBWUVSX1RFWFRfTEFCRUxfQ0hBTkdFIiwibGF5ZXJUZXh0TGFiZWxDaGFuZ2VVcGRhdGVyIiwiTEFZRVJfVklTVUFMX0NIQU5ORUxfQ0hBTkdFIiwibGF5ZXJWaXN1YWxDaGFubmVsQ2hhbmdlVXBkYXRlciIsIkxBWUVSX0NPTE9SX1VJX0NIQU5HRSIsImxheWVyQ29sb3JVSUNoYW5nZVVwZGF0ZXIiLCJUT0dHTEVfTEFZRVJfQU5JTUFUSU9OIiwidG9nZ2xlTGF5ZXJBbmltYXRpb25VcGRhdGVyIiwiVE9HR0xFX0xBWUVSX0FOSU1BVElPTl9DT05UUk9MIiwidG9nZ2xlTGF5ZXJBbmltYXRpb25Db250cm9sVXBkYXRlciIsIkxPQURfRklMRVMiLCJsb2FkRmlsZXNVcGRhdGVyIiwiTE9BRF9GSUxFU19FUlIiLCJsb2FkRmlsZXNFcnJVcGRhdGVyIiwiTE9BRF9ORVhUX0ZJTEUiLCJsb2FkTmV4dEZpbGVVcGRhdGVyIiwiTE9BRF9GSUxFX1NURVBfU1VDQ0VTUyIsImxvYWRGaWxlU3RlcFN1Y2Nlc3NVcGRhdGVyIiwiTUFQX0NMSUNLIiwibWFwQ2xpY2tVcGRhdGVyIiwiTU9VU0VfTU9WRSIsIm1vdXNlTW92ZVVwZGF0ZXIiLCJSRUNFSVZFX01BUF9DT05GSUciLCJyZWNlaXZlTWFwQ29uZmlnVXBkYXRlciIsIlJFTU9WRV9EQVRBU0VUIiwicmVtb3ZlRGF0YXNldFVwZGF0ZXIiLCJSRU1PVkVfRklMVEVSIiwicmVtb3ZlRmlsdGVyVXBkYXRlciIsIlJFTU9WRV9MQVlFUiIsInJlbW92ZUxheWVyVXBkYXRlciIsIlJFT1JERVJfTEFZRVIiLCJyZW9yZGVyTGF5ZXJVcGRhdGVyIiwiQUREX0xBWUVSX0dST1VQIiwiYWRkTGF5ZXJHcm91cFVwZGF0ZXIiLCJSRU1PVkVfTEFZRVJfR1JPVVAiLCJyZW1vdmVMYXllckdyb3VwVXBkYXRlciIsIlVQREFURV9MQVlFUl9HUk9VUCIsInVwZGF0ZUxheWVyR3JvdXBVcGRhdGVyIiwiQUREX0xBWUVSX1RPX0xBWUVSX0dST1VQIiwiYWRkTGF5ZXJUb0xheWVyR3JvdXBVcGRhdGVyIiwiUkVNT1ZFX0xBWUVSX0ZST01fTEFZRVJfR1JPVVAiLCJyZW1vdmVMYXllckZyb21MYXllckdyb3VwVXBkYXRlciIsIlNXQVBfTEFZRVJfT1JERVJfRU5UUklFUyIsInN3YXBMYXllck9yZGVyRW50cmllc1VwZGF0ZXIiLCJSRVNFVF9NQVBfQ09ORklHIiwicmVzZXRNYXBDb25maWdVcGRhdGVyIiwiU0VUX0ZJTFRFUiIsInNldEZpbHRlclVwZGF0ZXIiLCJTRVRfRklMVEVSX0FOSU1BVElPTl9USU1FIiwic2V0RmlsdGVyQW5pbWF0aW9uVGltZVVwZGF0ZXIiLCJTRVRfRklMVEVSX0FOSU1BVElPTl9USU1FX0NPTkZJRyIsInNldEZpbHRlckFuaW1hdGlvblRpbWVDb25maWdVcGRhdGVyIiwiU0VUX0ZJTFRFUl9BTklNQVRJT05fV0lORE9XIiwic2V0RmlsdGVyQW5pbWF0aW9uV2luZG93VXBkYXRlciIsIlNFVF9GSUxURVJfUExPVCIsInNldEZpbHRlclBsb3RVcGRhdGVyIiwiU0VUX01BUF9JTkZPIiwic2V0TWFwSW5mb1VwZGF0ZXIiLCJTSE9XX0RBVEFTRVRfVEFCTEUiLCJzaG93RGF0YXNldFRhYmxlVXBkYXRlciIsIlVQREFURV9UQUJMRV9DT0xPUiIsInVwZGF0ZVRhYmxlQ29sb3JVcGRhdGVyIiwiUkVGUkVTSF9EQVRBU0VUIiwicmVmcmVzaERhdGFzZXRVcGRhdGVyIiwiUkVGUkVTSF9EQVRBU0VUX1NVQ0NFU1MiLCJyZWZyZXNoRGF0YXNldFN1Y2Nlc3NVcGRhdGVyIiwiUkVGUkVTSF9EQVRBU0VUX0VSUk9SIiwicmVmcmVzaERhdGFzZXRFcnJvclVwZGF0ZXIiLCJSRUZSRVNIX0RBVEFTRVRfUFJPR1JFU1MiLCJyZWZyZXNoRGF0YXNldFByb2dyZXNzVXBkYXRlciIsIkFERF9UT19EQVRBU0VUIiwiYWRkVG9EYXRhc2V0VXBkYXRlciIsIlJFTU9WRV9GUk9NX0RBVEFTRVQiLCJyZW1vdmVGcm9tRGF0YXNldFVwZGF0ZXIiLCJUT0dHTEVfRklMVEVSX0FOSU1BVElPTiIsInRvZ2dsZUZpbHRlckFuaW1hdGlvblVwZGF0ZXIiLCJVUERBVEVfRklMVEVSX0FOSU1BVElPTl9TUEVFRCIsInVwZGF0ZUZpbHRlckFuaW1hdGlvblNwZWVkVXBkYXRlciIsIlNFVF9BTklNQVRJT05fQ09ORklHIiwic2V0QW5pbWF0aW9uQ29uZmlnVXBkYXRlciIsIlNFVF9MQVlFUl9BTklNQVRJT05fVElNRSIsInNldExheWVyQW5pbWF0aW9uVGltZVVwZGF0ZXIiLCJVUERBVEVfTEFZRVJfQU5JTUFUSU9OX1NQRUVEIiwidXBkYXRlTGF5ZXJBbmltYXRpb25TcGVlZFVwZGF0ZXIiLCJUT0dHTEVfTEFZRVJfRk9SX01BUCIsInRvZ2dsZUxheWVyRm9yTWFwVXBkYXRlciIsIlRPR0dMRV9TUExJVF9NQVAiLCJ0b2dnbGVTcGxpdE1hcFVwZGF0ZXIiLCJVUERBVEVfTEFZRVJfQkxFTkRJTkciLCJ1cGRhdGVMYXllckJsZW5kaW5nVXBkYXRlciIsIlVQREFURV9PVkVSTEFZX0JMRU5ESU5HIiwidXBkYXRlT3ZlcmxheUJsZW5kaW5nVXBkYXRlciIsIlVQREFURV9WSVNfREFUQSIsInVwZGF0ZVZpc0RhdGFVcGRhdGVyIiwiUkVOQU1FX0RBVEFTRVQiLCJyZW5hbWVEYXRhc2V0VXBkYXRlciIsIlVQREFURV9EQVRBU0VUX1BST1BTIiwidXBkYXRlRGF0YXNldFByb3BzVXBkYXRlciIsIlVQREFURV9EQVRBU0VUIiwidXBkYXRlRGF0YXNldFVwZGF0ZXIiLCJTRVRfRkVBVFVSRVMiLCJzZXRGZWF0dXJlc1VwZGF0ZXIiLCJTRVRfRURJVE9SX0ZFQVRVUkVfUFJPUEVSVElFUyIsInNldEVkaXRvckZlYXR1cmVQcm9wZXJ0aWVzVXBkYXRlciIsIkRFTEVURV9GRUFUVVJFIiwiZGVsZXRlRmVhdHVyZVVwZGF0ZXIiLCJTRVRfUE9MWUdPTl9GSUxURVJfTEFZRVIiLCJzZXRQb2x5Z29uRmlsdGVyTGF5ZXJVcGRhdGVyIiwiU0VUX1BPTFlHT05fRklMVEVSX0FMTF9MQVlFUlMiLCJzZXRQb2x5Z29uRmlsdGVyQWxsTGF5ZXJzVXBkYXRlciIsIlNFVF9TRUxFQ1RFRF9GRUFUVVJFIiwic2V0U2VsZWN0ZWRGZWF0dXJlVXBkYXRlciIsIlNFVF9FRElUT1JfTU9ERSIsInNldEVkaXRvck1vZGVVcGRhdGVyIiwiVE9HR0xFX0VESVRPUl9WSVNJQklMSVRZIiwidG9nZ2xlRWRpdG9yVmlzaWJpbGl0eVVwZGF0ZXIiLCJDT05WRVJUX0VESVRPUl9GRUFUVVJFU19UT19MQVlFUiIsImNvbnZlcnRFZGl0b3JGZWF0dXJlc1RvTGF5ZXJVcGRhdGVyIiwiRVhUUkFDVF9EQVRBX0ZST01fRkVBVFVSRSIsImV4dHJhY3REYXRhRnJvbUZlYXR1cmVVcGRhdGVyIiwiVE9HR0xFX0ZJTFRFUl9GRUFUVVJFIiwidG9nZ2xlRmlsdGVyRmVhdHVyZVVwZGF0ZXIiLCJBUFBMWV9DUFVfRklMVEVSIiwiYXBwbHlDUFVGaWx0ZXJVcGRhdGVyIiwiU09SVF9UQUJMRV9DT0xVTU4iLCJzb3J0VGFibGVDb2x1bW5VcGRhdGVyIiwiUElOX1RBQkxFX0NPTFVNTiIsInBpblRhYmxlQ29sdW1uVXBkYXRlciIsIkNPUFlfVEFCTEVfQ09MVU1OIiwiY29weVRhYmxlQ29sdW1uVXBkYXRlciIsIlNFVF9DT0xVTU5fRElTUExBWV9GT1JNQVQiLCJzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0VXBkYXRlciIsIkxPQURfQ09MVU1OX1NUQVRTIiwibG9hZENvbHVtblN0YXRzVXBkYXRlciIsIkxPQURfQ09MVU1OX1NUQVRTX1NVQ0NFU1MiLCJsb2FkQ29sdW1uU3RhdHNTdWNjZXNzVXBkYXRlciIsIkxPQURfQ09MVU1OX1NUQVRTX0VSUk9SIiwibG9hZENvbHVtblN0YXRzRXJyb3JVcGRhdGVyIiwiTkVYVF9GSUxFX0JBVENIIiwibmV4dEZpbGVCYXRjaFVwZGF0ZXIiLCJQUk9DRVNTX0ZJTEVfQ09OVEVOVCIsInByb2Nlc3NGaWxlQ29udGVudFVwZGF0ZXIiLCJTRVRfTEFZRVJfQU5JTUFUSU9OX1RJTUVfQ09ORklHIiwic2V0TGF5ZXJBbmltYXRpb25UaW1lQ29uZmlnVXBkYXRlciIsIkxBWUVSX0ZJTFRFUkVEX0lURU1TX0NIQU5HRSIsImxheWVyRmlsdGVyZWRJdGVtc0NoYW5nZVVwZGF0ZXIiLCJXTVNfRkVBVFVSRV9JTkZPIiwid21zRmVhdHVyZUluZm9VcGRhdGVyIiwiU1lOQ19USU1FX0ZJTFRFUl9XSVRIX0xBWUVSX1RJTUVMSU5FIiwic3luY1RpbWVGaWx0ZXJXaXRoTGF5ZXJUaW1lbGluZVVwZGF0ZXIiLCJTWU5DX1RJTUVfRklMVEVSX1RJTUVMSU5FX01PREUiLCJzZXRUaW1lRmlsdGVyVGltZWxpbmVNb2RlVXBkYXRlciIsIkFERF9FRkZFQ1QiLCJhZGRFZmZlY3RVcGRhdGVyIiwiUkVPUkRFUl9FRkZFQ1QiLCJyZW9yZGVyRWZmZWN0VXBkYXRlciIsIlJFTU9WRV9FRkZFQ1QiLCJyZW1vdmVFZmZlY3RVcGRhdGVyIiwiVVBEQVRFX0VGRkVDVCIsInVwZGF0ZUVmZmVjdFVwZGF0ZXIiLCJBRERfQU5OT1RBVElPTiIsImFkZEFubm90YXRpb25VcGRhdGVyIiwiUkVNT1ZFX0FOTk9UQVRJT04iLCJyZW1vdmVBbm5vdGF0aW9uVXBkYXRlciIsIlVQREFURV9BTk5PVEFUSU9OIiwidXBkYXRlQW5ub3RhdGlvblVwZGF0ZXIiLCJEVVBMSUNBVEVfQU5OT1RBVElPTiIsImR1cGxpY2F0ZUFubm90YXRpb25VcGRhdGVyIiwiU0VUX1NFTEVDVEVEX0FOTk9UQVRJT04iLCJzZXRTZWxlY3RlZEFubm90YXRpb25VcGRhdGVyIiwiQ1JFQVRFX05FV19EQVRBU0VUX1NVQ0NFU1MiLCJjcmVhdGVOZXdEYXRhc2V0U3VjY2Vzc1VwZGF0ZXIiLCJTRVRfTE9BRElOR19JTkRJQ0FUT1IiLCJzZXRMb2FkaW5nSW5kaWNhdG9yVXBkYXRlciIsInZpc1N0YXRlUmVkdWNlckZhY3RvcnkiLCJleHBvcnRzIiwiaW5pdGlhbFN0YXRlIiwidW5kZWZpbmVkIiwiaGFuZGxlQWN0aW9ucyIsIklOSVRJQUxfVklTX1NUQVRFIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdmlzLXN0YXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7QWN0aW9uVHlwZXN9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge2hhbmRsZUFjdGlvbnN9IGZyb20gJ3JlZHV4LWFjdGlvbnMnO1xuaW1wb3J0ICogYXMgdmlzU3RhdGVVcGRhdGVycyBmcm9tICcuL3Zpcy1zdGF0ZS11cGRhdGVycyc7XG5cbi8qKlxuICogSW1wb3J0YW50OiBEbyBub3QgcmVuYW1lIGBhY3Rpb25IYW5kbGVyYCBvciB0aGUgYXNzaWdubWVudCBwYXR0ZXJuIG9mIHByb3BlcnR5IHZhbHVlLlxuICogSXQgaXMgdXNlZCB0byBnZW5lcmF0ZSBkb2N1bWVudGF0aW9uXG4gKi9cbmNvbnN0IGFjdGlvbkhhbmRsZXIgPSB7XG4gIFtBY3Rpb25UeXBlcy5BRERfRklMVEVSXTogdmlzU3RhdGVVcGRhdGVycy5hZGRGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5DUkVBVEVfT1JfVVBEQVRFX0ZJTFRFUl06IHZpc1N0YXRlVXBkYXRlcnMuY3JlYXRlT3JVcGRhdGVGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BRERfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLmFkZExheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQVBQTFlfRklMVEVSX0NPTkZJR106IHZpc1N0YXRlVXBkYXRlcnMuYXBwbHlGaWx0ZXJDb25maWdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BUFBMWV9MQVlFUl9DT05GSUddOiB2aXNTdGF0ZVVwZGF0ZXJzLmFwcGx5TGF5ZXJDb25maWdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5EVVBMSUNBVEVfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLmR1cGxpY2F0ZUxheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0ZJTFRFUl9WSUVXXTogdmlzU3RhdGVVcGRhdGVycy5zZXRGaWx0ZXJWaWV3VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuSU5URVJBQ1RJT05fQ09ORklHX0NIQU5HRV06IHZpc1N0YXRlVXBkYXRlcnMuaW50ZXJhY3Rpb25Db25maWdDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9DTElDS106IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJDbGlja1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX0NPTkZJR19DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyQ29uZmlnQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfU0VUX0lTX1ZBTElEXTogdmlzU3RhdGVVcGRhdGVycy5sYXllclNldElzVmFsaWRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9IT1ZFUl06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJIb3ZlclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX1RZUEVfQ0hBTkdFXTogdmlzU3RhdGVVcGRhdGVycy5sYXllclR5cGVDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9WSVNfQ09ORklHX0NIQU5HRV06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJWaXNDb25maWdDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9UT0dHTEVfVklTSUJJTElUWV06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJUb2dnbGVWaXNpYmlsaXR5VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfVEVYVF9MQUJFTF9DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyVGV4dExhYmVsQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfVklTVUFMX0NIQU5ORUxfQ0hBTkdFXTogdmlzU3RhdGVVcGRhdGVycy5sYXllclZpc3VhbENoYW5uZWxDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9DT0xPUl9VSV9DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyQ29sb3JVSUNoYW5nZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9MQVlFUl9BTklNQVRJT05dOiB2aXNTdGF0ZVVwZGF0ZXJzLnRvZ2dsZUxheWVyQW5pbWF0aW9uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX0xBWUVSX0FOSU1BVElPTl9DT05UUk9MXTogdmlzU3RhdGVVcGRhdGVycy50b2dnbGVMYXllckFuaW1hdGlvbkNvbnRyb2xVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0ZJTEVTXTogdmlzU3RhdGVVcGRhdGVycy5sb2FkRmlsZXNVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0ZJTEVTX0VSUl06IHZpc1N0YXRlVXBkYXRlcnMubG9hZEZpbGVzRXJyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTE9BRF9ORVhUX0ZJTEVdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxvYWROZXh0RmlsZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxPQURfRklMRV9TVEVQX1NVQ0NFU1NdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxvYWRGaWxlU3RlcFN1Y2Nlc3NVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5NQVBfQ0xJQ0tdOiB2aXNTdGF0ZVVwZGF0ZXJzLm1hcENsaWNrVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTU9VU0VfTU9WRV06IHZpc1N0YXRlVXBkYXRlcnMubW91c2VNb3ZlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVDRUlWRV9NQVBfQ09ORklHXTogdmlzU3RhdGVVcGRhdGVycy5yZWNlaXZlTWFwQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVNT1ZFX0RBVEFTRVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbW92ZURhdGFzZXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfRklMVEVSXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbW92ZUxheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVPUkRFUl9MQVlFUl06IHZpc1N0YXRlVXBkYXRlcnMucmVvcmRlckxheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQUREX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy5hZGRMYXllckdyb3VwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVNT1ZFX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVMYXllckdyb3VwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVMYXllckdyb3VwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQUREX0xBWUVSX1RPX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy5hZGRMYXllclRvTGF5ZXJHcm91cFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFTU9WRV9MQVlFUl9GUk9NX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVMYXllckZyb21MYXllckdyb3VwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU1dBUF9MQVlFUl9PUkRFUl9FTlRSSUVTXTogdmlzU3RhdGVVcGRhdGVycy5zd2FwTGF5ZXJPcmRlckVudHJpZXNVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRVNFVF9NQVBfQ09ORklHXTogdmlzU3RhdGVVcGRhdGVycy5yZXNldE1hcENvbmZpZ1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9GSUxURVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9GSUxURVJfQU5JTUFUSU9OX1RJTUVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlckFuaW1hdGlvblRpbWVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRklMVEVSX0FOSU1BVElPTl9USU1FX0NPTkZJR106XG4gICAgdmlzU3RhdGVVcGRhdGVycy5zZXRGaWx0ZXJBbmltYXRpb25UaW1lQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0ZJTFRFUl9BTklNQVRJT05fV0lORE9XXTogdmlzU3RhdGVVcGRhdGVycy5zZXRGaWx0ZXJBbmltYXRpb25XaW5kb3dVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRklMVEVSX1BMT1RdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlclBsb3RVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfTUFQX0lORk9dOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldE1hcEluZm9VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TSE9XX0RBVEFTRVRfVEFCTEVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNob3dEYXRhc2V0VGFibGVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfVEFCTEVfQ09MT1JdOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZVRhYmxlQ29sb3JVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRUZSRVNIX0RBVEFTRVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlZnJlc2hEYXRhc2V0VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVGUkVTSF9EQVRBU0VUX1NVQ0NFU1NdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlZnJlc2hEYXRhc2V0U3VjY2Vzc1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFRlJFU0hfREFUQVNFVF9FUlJPUl06IHZpc1N0YXRlVXBkYXRlcnMucmVmcmVzaERhdGFzZXRFcnJvclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFRlJFU0hfREFUQVNFVF9QUk9HUkVTU106IHZpc1N0YXRlVXBkYXRlcnMucmVmcmVzaERhdGFzZXRQcm9ncmVzc1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkFERF9UT19EQVRBU0VUXTogdmlzU3RhdGVVcGRhdGVycy5hZGRUb0RhdGFzZXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfRlJPTV9EQVRBU0VUXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVGcm9tRGF0YXNldFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9GSUxURVJfQU5JTUFUSU9OXTogdmlzU3RhdGVVcGRhdGVycy50b2dnbGVGaWx0ZXJBbmltYXRpb25VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfRklMVEVSX0FOSU1BVElPTl9TUEVFRF06IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlRmlsdGVyQW5pbWF0aW9uU3BlZWRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfQU5JTUFUSU9OX0NPTkZJR106IHZpc1N0YXRlVXBkYXRlcnMuc2V0QW5pbWF0aW9uQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0xBWUVSX0FOSU1BVElPTl9USU1FXTogdmlzU3RhdGVVcGRhdGVycy5zZXRMYXllckFuaW1hdGlvblRpbWVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfTEFZRVJfQU5JTUFUSU9OX1NQRUVEXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVMYXllckFuaW1hdGlvblNwZWVkVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX0xBWUVSX0ZPUl9NQVBdOiB2aXNTdGF0ZVVwZGF0ZXJzLnRvZ2dsZUxheWVyRm9yTWFwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX1NQTElUX01BUF06IHZpc1N0YXRlVXBkYXRlcnMudG9nZ2xlU3BsaXRNYXBVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfTEFZRVJfQkxFTkRJTkddOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZUxheWVyQmxlbmRpbmdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfT1ZFUkxBWV9CTEVORElOR106IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlT3ZlcmxheUJsZW5kaW5nVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX1ZJU19EQVRBXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVWaXNEYXRhVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVOQU1FX0RBVEFTRVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbmFtZURhdGFzZXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfREFUQVNFVF9QUk9QU106IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlRGF0YXNldFByb3BzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0RBVEFTRVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZURhdGFzZXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRkVBVFVSRVNdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZlYXR1cmVzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0VESVRPUl9GRUFUVVJFX1BST1BFUlRJRVNdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEVkaXRvckZlYXR1cmVQcm9wZXJ0aWVzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuREVMRVRFX0ZFQVRVUkVdOiB2aXNTdGF0ZVVwZGF0ZXJzLmRlbGV0ZUZlYXR1cmVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfUE9MWUdPTl9GSUxURVJfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldFBvbHlnb25GaWx0ZXJMYXllclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9QT0xZR09OX0ZJTFRFUl9BTExfTEFZRVJTXTogdmlzU3RhdGVVcGRhdGVycy5zZXRQb2x5Z29uRmlsdGVyQWxsTGF5ZXJzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX1NFTEVDVEVEX0ZFQVRVUkVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldFNlbGVjdGVkRmVhdHVyZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9FRElUT1JfTU9ERV06IHZpc1N0YXRlVXBkYXRlcnMuc2V0RWRpdG9yTW9kZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9FRElUT1JfVklTSUJJTElUWV06IHZpc1N0YXRlVXBkYXRlcnMudG9nZ2xlRWRpdG9yVmlzaWJpbGl0eVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkNPTlZFUlRfRURJVE9SX0ZFQVRVUkVTX1RPX0xBWUVSXTpcbiAgICB2aXNTdGF0ZVVwZGF0ZXJzLmNvbnZlcnRFZGl0b3JGZWF0dXJlc1RvTGF5ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5FWFRSQUNUX0RBVEFfRlJPTV9GRUFUVVJFXTogdmlzU3RhdGVVcGRhdGVycy5leHRyYWN0RGF0YUZyb21GZWF0dXJlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX0ZJTFRFUl9GRUFUVVJFXTogdmlzU3RhdGVVcGRhdGVycy50b2dnbGVGaWx0ZXJGZWF0dXJlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQVBQTFlfQ1BVX0ZJTFRFUl06IHZpc1N0YXRlVXBkYXRlcnMuYXBwbHlDUFVGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TT1JUX1RBQkxFX0NPTFVNTl06IHZpc1N0YXRlVXBkYXRlcnMuc29ydFRhYmxlQ29sdW1uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUElOX1RBQkxFX0NPTFVNTl06IHZpc1N0YXRlVXBkYXRlcnMucGluVGFibGVDb2x1bW5VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5DT1BZX1RBQkxFX0NPTFVNTl06IHZpc1N0YXRlVXBkYXRlcnMuY29weVRhYmxlQ29sdW1uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0NPTFVNTl9ESVNQTEFZX0ZPUk1BVF06IHZpc1N0YXRlVXBkYXRlcnMuc2V0Q29sdW1uRGlzcGxheUZvcm1hdFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxPQURfQ09MVU1OX1NUQVRTXTogdmlzU3RhdGVVcGRhdGVycy5sb2FkQ29sdW1uU3RhdHNVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0NPTFVNTl9TVEFUU19TVUNDRVNTXTogdmlzU3RhdGVVcGRhdGVycy5sb2FkQ29sdW1uU3RhdHNTdWNjZXNzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTE9BRF9DT0xVTU5fU1RBVFNfRVJST1JdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxvYWRDb2x1bW5TdGF0c0Vycm9yVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTkVYVF9GSUxFX0JBVENIXTogdmlzU3RhdGVVcGRhdGVycy5uZXh0RmlsZUJhdGNoVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUFJPQ0VTU19GSUxFX0NPTlRFTlRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnByb2Nlc3NGaWxlQ29udGVudFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9MQVlFUl9BTklNQVRJT05fVElNRV9DT05GSUddOlxuICAgIHZpc1N0YXRlVXBkYXRlcnMuc2V0TGF5ZXJBbmltYXRpb25UaW1lQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfRklMVEVSRURfSVRFTVNfQ0hBTkdFXTogdmlzU3RhdGVVcGRhdGVycy5sYXllckZpbHRlcmVkSXRlbXNDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5XTVNfRkVBVFVSRV9JTkZPXTogdmlzU3RhdGVVcGRhdGVycy53bXNGZWF0dXJlSW5mb1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNZTkNfVElNRV9GSUxURVJfV0lUSF9MQVlFUl9USU1FTElORV06XG4gICAgdmlzU3RhdGVVcGRhdGVycy5zeW5jVGltZUZpbHRlcldpdGhMYXllclRpbWVsaW5lVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU1lOQ19USU1FX0ZJTFRFUl9USU1FTElORV9NT0RFXTogdmlzU3RhdGVVcGRhdGVycy5zZXRUaW1lRmlsdGVyVGltZWxpbmVNb2RlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQUREX0VGRkVDVF06IHZpc1N0YXRlVXBkYXRlcnMuYWRkRWZmZWN0VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVPUkRFUl9FRkZFQ1RdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlb3JkZXJFZmZlY3RVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfRUZGRUNUXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVFZmZlY3RVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfRUZGRUNUXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVFZmZlY3RVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BRERfQU5OT1RBVElPTl06IHZpc1N0YXRlVXBkYXRlcnMuYWRkQW5ub3RhdGlvblVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFTU9WRV9BTk5PVEFUSU9OXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVBbm5vdGF0aW9uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0FOTk9UQVRJT05dOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZUFubm90YXRpb25VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5EVVBMSUNBVEVfQU5OT1RBVElPTl06IHZpc1N0YXRlVXBkYXRlcnMuZHVwbGljYXRlQW5ub3RhdGlvblVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9TRUxFQ1RFRF9BTk5PVEFUSU9OXTogdmlzU3RhdGVVcGRhdGVycy5zZXRTZWxlY3RlZEFubm90YXRpb25VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5DUkVBVEVfTkVXX0RBVEFTRVRfU1VDQ0VTU106IHZpc1N0YXRlVXBkYXRlcnMuY3JlYXRlTmV3RGF0YXNldFN1Y2Nlc3NVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfTE9BRElOR19JTkRJQ0FUT1JdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldExvYWRpbmdJbmRpY2F0b3JVcGRhdGVyXG59O1xuXG4vLyBjb25zdHJ1Y3QgdmlzLXN0YXRlIHJlZHVjZXJcbmV4cG9ydCBjb25zdCB2aXNTdGF0ZVJlZHVjZXJGYWN0b3J5ID0gKGluaXRpYWxTdGF0ZSA9IHt9KSA9PlxuICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gIGhhbmRsZUFjdGlvbnMoYWN0aW9uSGFuZGxlciwge1xuICAgIC4uLnZpc1N0YXRlVXBkYXRlcnMuSU5JVElBTF9WSVNfU1RBVEUsXG4gICAgLi4uaW5pdGlhbFN0YXRlLFxuICAgIGluaXRpYWxTdGF0ZVxuICB9KTtcblxuZXhwb3J0IGRlZmF1bHQgdmlzU3RhdGVSZWR1Y2VyRmFjdG9yeSgpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFHQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxhQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxnQkFBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBQXlELElBQUFJLGNBQUEsRUFMekQ7QUFDQTtBQUFBLFNBQUFELHdCQUFBRSxDQUFBLEVBQUFDLENBQUEsNkJBQUFDLE9BQUEsTUFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBSix1QkFBQSxZQUFBQSx3QkFBQUUsQ0FBQSxFQUFBQyxDQUFBLFNBQUFBLENBQUEsSUFBQUQsQ0FBQSxJQUFBQSxDQUFBLENBQUFL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
35
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYWN0aW9ucyIsInJlcXVpcmUiLCJfcmVkdXhBY3Rpb25zIiwidmlzU3RhdGVVcGRhdGVycyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2FjdGlvbkhhbmRsZXIiLCJlIiwidCIsIldlYWtNYXAiLCJyIiwibiIsIl9fZXNNb2R1bGUiLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJfdHlwZW9mIiwiaGFzIiwiZ2V0Iiwic2V0IiwiX3QiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiYWN0aW9uSGFuZGxlciIsIkFjdGlvblR5cGVzIiwiQUREX0ZJTFRFUiIsImFkZEZpbHRlclVwZGF0ZXIiLCJDUkVBVEVfT1JfVVBEQVRFX0ZJTFRFUiIsImNyZWF0ZU9yVXBkYXRlRmlsdGVyVXBkYXRlciIsIkFERF9MQVlFUiIsImFkZExheWVyVXBkYXRlciIsIkFQUExZX0ZJTFRFUl9DT05GSUciLCJhcHBseUZpbHRlckNvbmZpZ1VwZGF0ZXIiLCJBUFBMWV9MQVlFUl9DT05GSUciLCJhcHBseUxheWVyQ29uZmlnVXBkYXRlciIsIkRVUExJQ0FURV9MQVlFUiIsImR1cGxpY2F0ZUxheWVyVXBkYXRlciIsIlNFVF9GSUxURVJfVklFVyIsInNldEZpbHRlclZpZXdVcGRhdGVyIiwiSU5URVJBQ1RJT05fQ09ORklHX0NIQU5HRSIsImludGVyYWN0aW9uQ29uZmlnQ2hhbmdlVXBkYXRlciIsIkxBWUVSX0NMSUNLIiwibGF5ZXJDbGlja1VwZGF0ZXIiLCJMQVlFUl9DT05GSUdfQ0hBTkdFIiwibGF5ZXJDb25maWdDaGFuZ2VVcGRhdGVyIiwiTEFZRVJfU0VUX0lTX1ZBTElEIiwibGF5ZXJTZXRJc1ZhbGlkVXBkYXRlciIsIkxBWUVSX0hPVkVSIiwibGF5ZXJIb3ZlclVwZGF0ZXIiLCJMQVlFUl9UWVBFX0NIQU5HRSIsImxheWVyVHlwZUNoYW5nZVVwZGF0ZXIiLCJMQVlFUl9WSVNfQ09ORklHX0NIQU5HRSIsImxheWVyVmlzQ29uZmlnQ2hhbmdlVXBkYXRlciIsIkxBWUVSX1RPR0dMRV9WSVNJQklMSVRZIiwibGF5ZXJUb2dnbGVWaXNpYmlsaXR5VXBkYXRlciIsIkxBWUVSX1RFWFRfTEFCRUxfQ0hBTkdFIiwibGF5ZXJUZXh0TGFiZWxDaGFuZ2VVcGRhdGVyIiwiTEFZRVJfVklTVUFMX0NIQU5ORUxfQ0hBTkdFIiwibGF5ZXJWaXN1YWxDaGFubmVsQ2hhbmdlVXBkYXRlciIsIkxBWUVSX0NPTE9SX1VJX0NIQU5HRSIsImxheWVyQ29sb3JVSUNoYW5nZVVwZGF0ZXIiLCJUT0dHTEVfTEFZRVJfQU5JTUFUSU9OIiwidG9nZ2xlTGF5ZXJBbmltYXRpb25VcGRhdGVyIiwiVE9HR0xFX0xBWUVSX0FOSU1BVElPTl9DT05UUk9MIiwidG9nZ2xlTGF5ZXJBbmltYXRpb25Db250cm9sVXBkYXRlciIsIkxPQURfRklMRVMiLCJsb2FkRmlsZXNVcGRhdGVyIiwiTE9BRF9GSUxFU19FUlIiLCJsb2FkRmlsZXNFcnJVcGRhdGVyIiwiTE9BRF9ORVhUX0ZJTEUiLCJsb2FkTmV4dEZpbGVVcGRhdGVyIiwiTE9BRF9GSUxFX1NURVBfU1VDQ0VTUyIsImxvYWRGaWxlU3RlcFN1Y2Nlc3NVcGRhdGVyIiwiTUFQX0NMSUNLIiwibWFwQ2xpY2tVcGRhdGVyIiwiTU9VU0VfTU9WRSIsIm1vdXNlTW92ZVVwZGF0ZXIiLCJSRUNFSVZFX01BUF9DT05GSUciLCJyZWNlaXZlTWFwQ29uZmlnVXBkYXRlciIsIlJFTU9WRV9EQVRBU0VUIiwicmVtb3ZlRGF0YXNldFVwZGF0ZXIiLCJSRU1PVkVfRklMVEVSIiwicmVtb3ZlRmlsdGVyVXBkYXRlciIsIlJFTU9WRV9MQVlFUiIsInJlbW92ZUxheWVyVXBkYXRlciIsIlJFT1JERVJfTEFZRVIiLCJyZW9yZGVyTGF5ZXJVcGRhdGVyIiwiQUREX0xBWUVSX0dST1VQIiwiYWRkTGF5ZXJHcm91cFVwZGF0ZXIiLCJSRU1PVkVfTEFZRVJfR1JPVVAiLCJyZW1vdmVMYXllckdyb3VwVXBkYXRlciIsIlVQREFURV9MQVlFUl9HUk9VUCIsInVwZGF0ZUxheWVyR3JvdXBVcGRhdGVyIiwiQUREX0xBWUVSX1RPX0xBWUVSX0dST1VQIiwiYWRkTGF5ZXJUb0xheWVyR3JvdXBVcGRhdGVyIiwiUkVNT1ZFX0xBWUVSX0ZST01fTEFZRVJfR1JPVVAiLCJyZW1vdmVMYXllckZyb21MYXllckdyb3VwVXBkYXRlciIsIlNXQVBfTEFZRVJfT1JERVJfRU5UUklFUyIsInN3YXBMYXllck9yZGVyRW50cmllc1VwZGF0ZXIiLCJSRVNFVF9NQVBfQ09ORklHIiwicmVzZXRNYXBDb25maWdVcGRhdGVyIiwiU0VUX0ZJTFRFUiIsInNldEZpbHRlclVwZGF0ZXIiLCJTRVRfRklMVEVSX0FOSU1BVElPTl9USU1FIiwic2V0RmlsdGVyQW5pbWF0aW9uVGltZVVwZGF0ZXIiLCJTRVRfRklMVEVSX0FOSU1BVElPTl9USU1FX0NPTkZJRyIsInNldEZpbHRlckFuaW1hdGlvblRpbWVDb25maWdVcGRhdGVyIiwiU0VUX0ZJTFRFUl9BTklNQVRJT05fV0lORE9XIiwic2V0RmlsdGVyQW5pbWF0aW9uV2luZG93VXBkYXRlciIsIlNFVF9GSUxURVJfUExPVCIsInNldEZpbHRlclBsb3RVcGRhdGVyIiwiU0VUX01BUF9JTkZPIiwic2V0TWFwSW5mb1VwZGF0ZXIiLCJTSE9XX0RBVEFTRVRfVEFCTEUiLCJzaG93RGF0YXNldFRhYmxlVXBkYXRlciIsIlVQREFURV9UQUJMRV9DT0xPUiIsInVwZGF0ZVRhYmxlQ29sb3JVcGRhdGVyIiwiUkVGUkVTSF9EQVRBU0VUIiwicmVmcmVzaERhdGFzZXRVcGRhdGVyIiwiUkVGUkVTSF9EQVRBU0VUX1NVQ0NFU1MiLCJyZWZyZXNoRGF0YXNldFN1Y2Nlc3NVcGRhdGVyIiwiUkVGUkVTSF9EQVRBU0VUX0VSUk9SIiwicmVmcmVzaERhdGFzZXRFcnJvclVwZGF0ZXIiLCJSRUZSRVNIX0RBVEFTRVRfUFJPR1JFU1MiLCJyZWZyZXNoRGF0YXNldFByb2dyZXNzVXBkYXRlciIsIkFERF9UT19EQVRBU0VUIiwiYWRkVG9EYXRhc2V0VXBkYXRlciIsIlJFTU9WRV9GUk9NX0RBVEFTRVQiLCJyZW1vdmVGcm9tRGF0YXNldFVwZGF0ZXIiLCJUT0dHTEVfRklMVEVSX0FOSU1BVElPTiIsInRvZ2dsZUZpbHRlckFuaW1hdGlvblVwZGF0ZXIiLCJVUERBVEVfRklMVEVSX0FOSU1BVElPTl9TUEVFRCIsInVwZGF0ZUZpbHRlckFuaW1hdGlvblNwZWVkVXBkYXRlciIsIlNFVF9BTklNQVRJT05fQ09ORklHIiwic2V0QW5pbWF0aW9uQ29uZmlnVXBkYXRlciIsIlNFVF9MQVlFUl9BTklNQVRJT05fVElNRSIsInNldExheWVyQW5pbWF0aW9uVGltZVVwZGF0ZXIiLCJVUERBVEVfTEFZRVJfQU5JTUFUSU9OX1NQRUVEIiwidXBkYXRlTGF5ZXJBbmltYXRpb25TcGVlZFVwZGF0ZXIiLCJUT0dHTEVfTEFZRVJfRk9SX01BUCIsInRvZ2dsZUxheWVyRm9yTWFwVXBkYXRlciIsIlRPR0dMRV9TUExJVF9NQVAiLCJ0b2dnbGVTcGxpdE1hcFVwZGF0ZXIiLCJVUERBVEVfTEFZRVJfQkxFTkRJTkciLCJ1cGRhdGVMYXllckJsZW5kaW5nVXBkYXRlciIsIlVQREFURV9PVkVSTEFZX0JMRU5ESU5HIiwidXBkYXRlT3ZlcmxheUJsZW5kaW5nVXBkYXRlciIsIlVQREFURV9WSVNfREFUQSIsInVwZGF0ZVZpc0RhdGFVcGRhdGVyIiwiUkVOQU1FX0RBVEFTRVQiLCJyZW5hbWVEYXRhc2V0VXBkYXRlciIsIlVQREFURV9EQVRBU0VUX1BST1BTIiwidXBkYXRlRGF0YXNldFByb3BzVXBkYXRlciIsIlVQREFURV9EQVRBU0VUIiwidXBkYXRlRGF0YXNldFVwZGF0ZXIiLCJTRVRfRkVBVFVSRVMiLCJzZXRGZWF0dXJlc1VwZGF0ZXIiLCJTRVRfRURJVE9SX0ZFQVRVUkVfUFJPUEVSVElFUyIsInNldEVkaXRvckZlYXR1cmVQcm9wZXJ0aWVzVXBkYXRlciIsIkRFTEVURV9GRUFUVVJFIiwiZGVsZXRlRmVhdHVyZVVwZGF0ZXIiLCJTRVRfUE9MWUdPTl9GSUxURVJfTEFZRVIiLCJzZXRQb2x5Z29uRmlsdGVyTGF5ZXJVcGRhdGVyIiwiU0VUX1BPTFlHT05fRklMVEVSX0FMTF9MQVlFUlMiLCJzZXRQb2x5Z29uRmlsdGVyQWxsTGF5ZXJzVXBkYXRlciIsIlNFVF9TRUxFQ1RFRF9GRUFUVVJFIiwic2V0U2VsZWN0ZWRGZWF0dXJlVXBkYXRlciIsIlNFVF9FRElUT1JfTU9ERSIsInNldEVkaXRvck1vZGVVcGRhdGVyIiwiVE9HR0xFX0VESVRPUl9WSVNJQklMSVRZIiwidG9nZ2xlRWRpdG9yVmlzaWJpbGl0eVVwZGF0ZXIiLCJDT05WRVJUX0VESVRPUl9GRUFUVVJFU19UT19MQVlFUiIsImNvbnZlcnRFZGl0b3JGZWF0dXJlc1RvTGF5ZXJVcGRhdGVyIiwiRVhUUkFDVF9EQVRBX0ZST01fRkVBVFVSRSIsImV4dHJhY3REYXRhRnJvbUZlYXR1cmVVcGRhdGVyIiwiVE9HR0xFX0ZJTFRFUl9GRUFUVVJFIiwidG9nZ2xlRmlsdGVyRmVhdHVyZVVwZGF0ZXIiLCJBUFBMWV9DUFVfRklMVEVSIiwiYXBwbHlDUFVGaWx0ZXJVcGRhdGVyIiwiU09SVF9UQUJMRV9DT0xVTU4iLCJzb3J0VGFibGVDb2x1bW5VcGRhdGVyIiwiUElOX1RBQkxFX0NPTFVNTiIsInBpblRhYmxlQ29sdW1uVXBkYXRlciIsIkNPUFlfVEFCTEVfQ09MVU1OIiwiY29weVRhYmxlQ29sdW1uVXBkYXRlciIsIlNFVF9DT0xVTU5fRElTUExBWV9GT1JNQVQiLCJzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0VXBkYXRlciIsIkxPQURfQ09MVU1OX1NUQVRTIiwibG9hZENvbHVtblN0YXRzVXBkYXRlciIsIkxPQURfQ09MVU1OX1NUQVRTX1NVQ0NFU1MiLCJsb2FkQ29sdW1uU3RhdHNTdWNjZXNzVXBkYXRlciIsIkxPQURfQ09MVU1OX1NUQVRTX0VSUk9SIiwibG9hZENvbHVtblN0YXRzRXJyb3JVcGRhdGVyIiwiTkVYVF9GSUxFX0JBVENIIiwibmV4dEZpbGVCYXRjaFVwZGF0ZXIiLCJQUk9DRVNTX0ZJTEVfQ09OVEVOVCIsInByb2Nlc3NGaWxlQ29udGVudFVwZGF0ZXIiLCJTRVRfTEFZRVJfQU5JTUFUSU9OX1RJTUVfQ09ORklHIiwic2V0TGF5ZXJBbmltYXRpb25UaW1lQ29uZmlnVXBkYXRlciIsIkxBWUVSX0ZJTFRFUkVEX0lURU1TX0NIQU5HRSIsImxheWVyRmlsdGVyZWRJdGVtc0NoYW5nZVVwZGF0ZXIiLCJXTVNfRkVBVFVSRV9JTkZPIiwid21zRmVhdHVyZUluZm9VcGRhdGVyIiwiU1lOQ19USU1FX0ZJTFRFUl9XSVRIX0xBWUVSX1RJTUVMSU5FIiwic3luY1RpbWVGaWx0ZXJXaXRoTGF5ZXJUaW1lbGluZVVwZGF0ZXIiLCJTWU5DX1RJTUVfRklMVEVSX1RJTUVMSU5FX01PREUiLCJzZXRUaW1lRmlsdGVyVGltZWxpbmVNb2RlVXBkYXRlciIsIkFERF9FRkZFQ1QiLCJhZGRFZmZlY3RVcGRhdGVyIiwiUkVPUkRFUl9FRkZFQ1QiLCJyZW9yZGVyRWZmZWN0VXBkYXRlciIsIlJFTU9WRV9FRkZFQ1QiLCJyZW1vdmVFZmZlY3RVcGRhdGVyIiwiVVBEQVRFX0VGRkVDVCIsInVwZGF0ZUVmZmVjdFVwZGF0ZXIiLCJBRERfQ0hBUlQiLCJhZGRDaGFydFVwZGF0ZXIiLCJVUERBVEVfQ0hBUlQiLCJ1cGRhdGVDaGFydFVwZGF0ZXIiLCJSRU1PVkVfQ0hBUlQiLCJyZW1vdmVDaGFydFVwZGF0ZXIiLCJBRERfQU5OT1RBVElPTiIsImFkZEFubm90YXRpb25VcGRhdGVyIiwiUkVNT1ZFX0FOTk9UQVRJT04iLCJyZW1vdmVBbm5vdGF0aW9uVXBkYXRlciIsIlVQREFURV9BTk5PVEFUSU9OIiwidXBkYXRlQW5ub3RhdGlvblVwZGF0ZXIiLCJEVVBMSUNBVEVfQU5OT1RBVElPTiIsImR1cGxpY2F0ZUFubm90YXRpb25VcGRhdGVyIiwiU0VUX1NFTEVDVEVEX0FOTk9UQVRJT04iLCJzZXRTZWxlY3RlZEFubm90YXRpb25VcGRhdGVyIiwiQ1JFQVRFX05FV19EQVRBU0VUX1NVQ0NFU1MiLCJjcmVhdGVOZXdEYXRhc2V0U3VjY2Vzc1VwZGF0ZXIiLCJTRVRfTE9BRElOR19JTkRJQ0FUT1IiLCJzZXRMb2FkaW5nSW5kaWNhdG9yVXBkYXRlciIsIlNFVF9MT0FESU5HX1BST0dSRVNTIiwic2V0TG9hZGluZ1Byb2dyZXNzVXBkYXRlciIsInZpc1N0YXRlUmVkdWNlckZhY3RvcnkiLCJleHBvcnRzIiwiaW5pdGlhbFN0YXRlIiwidW5kZWZpbmVkIiwiaGFuZGxlQWN0aW9ucyIsIklOSVRJQUxfVklTX1NUQVRFIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdmlzLXN0YXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7QWN0aW9uVHlwZXN9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge2hhbmRsZUFjdGlvbnN9IGZyb20gJ3JlZHV4LWFjdGlvbnMnO1xuaW1wb3J0ICogYXMgdmlzU3RhdGVVcGRhdGVycyBmcm9tICcuL3Zpcy1zdGF0ZS11cGRhdGVycyc7XG5cbi8qKlxuICogSW1wb3J0YW50OiBEbyBub3QgcmVuYW1lIGBhY3Rpb25IYW5kbGVyYCBvciB0aGUgYXNzaWdubWVudCBwYXR0ZXJuIG9mIHByb3BlcnR5IHZhbHVlLlxuICogSXQgaXMgdXNlZCB0byBnZW5lcmF0ZSBkb2N1bWVudGF0aW9uXG4gKi9cbmNvbnN0IGFjdGlvbkhhbmRsZXIgPSB7XG4gIFtBY3Rpb25UeXBlcy5BRERfRklMVEVSXTogdmlzU3RhdGVVcGRhdGVycy5hZGRGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5DUkVBVEVfT1JfVVBEQVRFX0ZJTFRFUl06IHZpc1N0YXRlVXBkYXRlcnMuY3JlYXRlT3JVcGRhdGVGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BRERfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLmFkZExheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQVBQTFlfRklMVEVSX0NPTkZJR106IHZpc1N0YXRlVXBkYXRlcnMuYXBwbHlGaWx0ZXJDb25maWdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BUFBMWV9MQVlFUl9DT05GSUddOiB2aXNTdGF0ZVVwZGF0ZXJzLmFwcGx5TGF5ZXJDb25maWdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5EVVBMSUNBVEVfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLmR1cGxpY2F0ZUxheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0ZJTFRFUl9WSUVXXTogdmlzU3RhdGVVcGRhdGVycy5zZXRGaWx0ZXJWaWV3VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuSU5URVJBQ1RJT05fQ09ORklHX0NIQU5HRV06IHZpc1N0YXRlVXBkYXRlcnMuaW50ZXJhY3Rpb25Db25maWdDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9DTElDS106IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJDbGlja1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX0NPTkZJR19DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyQ29uZmlnQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfU0VUX0lTX1ZBTElEXTogdmlzU3RhdGVVcGRhdGVycy5sYXllclNldElzVmFsaWRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9IT1ZFUl06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJIb3ZlclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX1RZUEVfQ0hBTkdFXTogdmlzU3RhdGVVcGRhdGVycy5sYXllclR5cGVDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9WSVNfQ09ORklHX0NIQU5HRV06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJWaXNDb25maWdDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9UT0dHTEVfVklTSUJJTElUWV06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJUb2dnbGVWaXNpYmlsaXR5VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfVEVYVF9MQUJFTF9DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyVGV4dExhYmVsQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfVklTVUFMX0NIQU5ORUxfQ0hBTkdFXTogdmlzU3RhdGVVcGRhdGVycy5sYXllclZpc3VhbENoYW5uZWxDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9DT0xPUl9VSV9DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyQ29sb3JVSUNoYW5nZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9MQVlFUl9BTklNQVRJT05dOiB2aXNTdGF0ZVVwZGF0ZXJzLnRvZ2dsZUxheWVyQW5pbWF0aW9uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX0xBWUVSX0FOSU1BVElPTl9DT05UUk9MXTogdmlzU3RhdGVVcGRhdGVycy50b2dnbGVMYXllckFuaW1hdGlvbkNvbnRyb2xVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0ZJTEVTXTogdmlzU3RhdGVVcGRhdGVycy5sb2FkRmlsZXNVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0ZJTEVTX0VSUl06IHZpc1N0YXRlVXBkYXRlcnMubG9hZEZpbGVzRXJyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTE9BRF9ORVhUX0ZJTEVdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxvYWROZXh0RmlsZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxPQURfRklMRV9TVEVQX1NVQ0NFU1NdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxvYWRGaWxlU3RlcFN1Y2Nlc3NVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5NQVBfQ0xJQ0tdOiB2aXNTdGF0ZVVwZGF0ZXJzLm1hcENsaWNrVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTU9VU0VfTU9WRV06IHZpc1N0YXRlVXBkYXRlcnMubW91c2VNb3ZlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVDRUlWRV9NQVBfQ09ORklHXTogdmlzU3RhdGVVcGRhdGVycy5yZWNlaXZlTWFwQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVNT1ZFX0RBVEFTRVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbW92ZURhdGFzZXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfRklMVEVSXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbW92ZUxheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVPUkRFUl9MQVlFUl06IHZpc1N0YXRlVXBkYXRlcnMucmVvcmRlckxheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQUREX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy5hZGRMYXllckdyb3VwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVNT1ZFX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVMYXllckdyb3VwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVMYXllckdyb3VwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQUREX0xBWUVSX1RPX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy5hZGRMYXllclRvTGF5ZXJHcm91cFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFTU9WRV9MQVlFUl9GUk9NX0xBWUVSX0dST1VQXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVMYXllckZyb21MYXllckdyb3VwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU1dBUF9MQVlFUl9PUkRFUl9FTlRSSUVTXTogdmlzU3RhdGVVcGRhdGVycy5zd2FwTGF5ZXJPcmRlckVudHJpZXNVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRVNFVF9NQVBfQ09ORklHXTogdmlzU3RhdGVVcGRhdGVycy5yZXNldE1hcENvbmZpZ1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9GSUxURVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9GSUxURVJfQU5JTUFUSU9OX1RJTUVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlckFuaW1hdGlvblRpbWVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRklMVEVSX0FOSU1BVElPTl9USU1FX0NPTkZJR106XG4gICAgdmlzU3RhdGVVcGRhdGVycy5zZXRGaWx0ZXJBbmltYXRpb25UaW1lQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0ZJTFRFUl9BTklNQVRJT05fV0lORE9XXTogdmlzU3RhdGVVcGRhdGVycy5zZXRGaWx0ZXJBbmltYXRpb25XaW5kb3dVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRklMVEVSX1BMT1RdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlclBsb3RVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfTUFQX0lORk9dOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldE1hcEluZm9VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TSE9XX0RBVEFTRVRfVEFCTEVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNob3dEYXRhc2V0VGFibGVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfVEFCTEVfQ09MT1JdOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZVRhYmxlQ29sb3JVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRUZSRVNIX0RBVEFTRVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlZnJlc2hEYXRhc2V0VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVGUkVTSF9EQVRBU0VUX1NVQ0NFU1NdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlZnJlc2hEYXRhc2V0U3VjY2Vzc1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFRlJFU0hfREFUQVNFVF9FUlJPUl06IHZpc1N0YXRlVXBkYXRlcnMucmVmcmVzaERhdGFzZXRFcnJvclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFRlJFU0hfREFUQVNFVF9QUk9HUkVTU106IHZpc1N0YXRlVXBkYXRlcnMucmVmcmVzaERhdGFzZXRQcm9ncmVzc1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkFERF9UT19EQVRBU0VUXTogdmlzU3RhdGVVcGRhdGVycy5hZGRUb0RhdGFzZXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfRlJPTV9EQVRBU0VUXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVGcm9tRGF0YXNldFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9GSUxURVJfQU5JTUFUSU9OXTogdmlzU3RhdGVVcGRhdGVycy50b2dnbGVGaWx0ZXJBbmltYXRpb25VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfRklMVEVSX0FOSU1BVElPTl9TUEVFRF06IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlRmlsdGVyQW5pbWF0aW9uU3BlZWRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfQU5JTUFUSU9OX0NPTkZJR106IHZpc1N0YXRlVXBkYXRlcnMuc2V0QW5pbWF0aW9uQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0xBWUVSX0FOSU1BVElPTl9USU1FXTogdmlzU3RhdGVVcGRhdGVycy5zZXRMYXllckFuaW1hdGlvblRpbWVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfTEFZRVJfQU5JTUFUSU9OX1NQRUVEXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVMYXllckFuaW1hdGlvblNwZWVkVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX0xBWUVSX0ZPUl9NQVBdOiB2aXNTdGF0ZVVwZGF0ZXJzLnRvZ2dsZUxheWVyRm9yTWFwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX1NQTElUX01BUF06IHZpc1N0YXRlVXBkYXRlcnMudG9nZ2xlU3BsaXRNYXBVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfTEFZRVJfQkxFTkRJTkddOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZUxheWVyQmxlbmRpbmdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfT1ZFUkxBWV9CTEVORElOR106IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlT3ZlcmxheUJsZW5kaW5nVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX1ZJU19EQVRBXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVWaXNEYXRhVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVOQU1FX0RBVEFTRVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbmFtZURhdGFzZXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfREFUQVNFVF9QUk9QU106IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlRGF0YXNldFByb3BzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0RBVEFTRVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZURhdGFzZXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRkVBVFVSRVNdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZlYXR1cmVzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0VESVRPUl9GRUFUVVJFX1BST1BFUlRJRVNdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEVkaXRvckZlYXR1cmVQcm9wZXJ0aWVzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuREVMRVRFX0ZFQVRVUkVdOiB2aXNTdGF0ZVVwZGF0ZXJzLmRlbGV0ZUZlYXR1cmVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfUE9MWUdPTl9GSUxURVJfTEFZRVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldFBvbHlnb25GaWx0ZXJMYXllclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9QT0xZR09OX0ZJTFRFUl9BTExfTEFZRVJTXTogdmlzU3RhdGVVcGRhdGVycy5zZXRQb2x5Z29uRmlsdGVyQWxsTGF5ZXJzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX1NFTEVDVEVEX0ZFQVRVUkVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldFNlbGVjdGVkRmVhdHVyZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9FRElUT1JfTU9ERV06IHZpc1N0YXRlVXBkYXRlcnMuc2V0RWRpdG9yTW9kZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9FRElUT1JfVklTSUJJTElUWV06IHZpc1N0YXRlVXBkYXRlcnMudG9nZ2xlRWRpdG9yVmlzaWJpbGl0eVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkNPTlZFUlRfRURJVE9SX0ZFQVRVUkVTX1RPX0xBWUVSXTpcbiAgICB2aXNTdGF0ZVVwZGF0ZXJzLmNvbnZlcnRFZGl0b3JGZWF0dXJlc1RvTGF5ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5FWFRSQUNUX0RBVEFfRlJPTV9GRUFUVVJFXTogdmlzU3RhdGVVcGRhdGVycy5leHRyYWN0RGF0YUZyb21GZWF0dXJlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX0ZJTFRFUl9GRUFUVVJFXTogdmlzU3RhdGVVcGRhdGVycy50b2dnbGVGaWx0ZXJGZWF0dXJlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQVBQTFlfQ1BVX0ZJTFRFUl06IHZpc1N0YXRlVXBkYXRlcnMuYXBwbHlDUFVGaWx0ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TT1JUX1RBQkxFX0NPTFVNTl06IHZpc1N0YXRlVXBkYXRlcnMuc29ydFRhYmxlQ29sdW1uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUElOX1RBQkxFX0NPTFVNTl06IHZpc1N0YXRlVXBkYXRlcnMucGluVGFibGVDb2x1bW5VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5DT1BZX1RBQkxFX0NPTFVNTl06IHZpc1N0YXRlVXBkYXRlcnMuY29weVRhYmxlQ29sdW1uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0NPTFVNTl9ESVNQTEFZX0ZPUk1BVF06IHZpc1N0YXRlVXBkYXRlcnMuc2V0Q29sdW1uRGlzcGxheUZvcm1hdFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxPQURfQ09MVU1OX1NUQVRTXTogdmlzU3RhdGVVcGRhdGVycy5sb2FkQ29sdW1uU3RhdHNVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0NPTFVNTl9TVEFUU19TVUNDRVNTXTogdmlzU3RhdGVVcGRhdGVycy5sb2FkQ29sdW1uU3RhdHNTdWNjZXNzVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTE9BRF9DT0xVTU5fU1RBVFNfRVJST1JdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxvYWRDb2x1bW5TdGF0c0Vycm9yVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTkVYVF9GSUxFX0JBVENIXTogdmlzU3RhdGVVcGRhdGVycy5uZXh0RmlsZUJhdGNoVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUFJPQ0VTU19GSUxFX0NPTlRFTlRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnByb2Nlc3NGaWxlQ29udGVudFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9MQVlFUl9BTklNQVRJT05fVElNRV9DT05GSUddOlxuICAgIHZpc1N0YXRlVXBkYXRlcnMuc2V0TGF5ZXJBbmltYXRpb25UaW1lQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfRklMVEVSRURfSVRFTVNfQ0hBTkdFXTogdmlzU3RhdGVVcGRhdGVycy5sYXllckZpbHRlcmVkSXRlbXNDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5XTVNfRkVBVFVSRV9JTkZPXTogdmlzU3RhdGVVcGRhdGVycy53bXNGZWF0dXJlSW5mb1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNZTkNfVElNRV9GSUxURVJfV0lUSF9MQVlFUl9USU1FTElORV06XG4gICAgdmlzU3RhdGVVcGRhdGVycy5zeW5jVGltZUZpbHRlcldpdGhMYXllclRpbWVsaW5lVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU1lOQ19USU1FX0ZJTFRFUl9USU1FTElORV9NT0RFXTogdmlzU3RhdGVVcGRhdGVycy5zZXRUaW1lRmlsdGVyVGltZWxpbmVNb2RlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQUREX0VGRkVDVF06IHZpc1N0YXRlVXBkYXRlcnMuYWRkRWZmZWN0VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuUkVPUkRFUl9FRkZFQ1RdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlb3JkZXJFZmZlY3RVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfRUZGRUNUXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVFZmZlY3RVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfRUZGRUNUXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVFZmZlY3RVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BRERfQ0hBUlRdOiB2aXNTdGF0ZVVwZGF0ZXJzLmFkZENoYXJ0VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0NIQVJUXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVDaGFydFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFTU9WRV9DSEFSVF06IHZpc1N0YXRlVXBkYXRlcnMucmVtb3ZlQ2hhcnRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BRERfQU5OT1RBVElPTl06IHZpc1N0YXRlVXBkYXRlcnMuYWRkQW5ub3RhdGlvblVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFTU9WRV9BTk5PVEFUSU9OXTogdmlzU3RhdGVVcGRhdGVycy5yZW1vdmVBbm5vdGF0aW9uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0FOTk9UQVRJT05dOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZUFubm90YXRpb25VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5EVVBMSUNBVEVfQU5OT1RBVElPTl06IHZpc1N0YXRlVXBkYXRlcnMuZHVwbGljYXRlQW5ub3RhdGlvblVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9TRUxFQ1RFRF9BTk5PVEFUSU9OXTogdmlzU3RhdGVVcGRhdGVycy5zZXRTZWxlY3RlZEFubm90YXRpb25VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5DUkVBVEVfTkVXX0RBVEFTRVRfU1VDQ0VTU106IHZpc1N0YXRlVXBkYXRlcnMuY3JlYXRlTmV3RGF0YXNldFN1Y2Nlc3NVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfTE9BRElOR19JTkRJQ0FUT1JdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldExvYWRpbmdJbmRpY2F0b3JVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfTE9BRElOR19QUk9HUkVTU106IHZpc1N0YXRlVXBkYXRlcnMuc2V0TG9hZGluZ1Byb2dyZXNzVXBkYXRlclxufTtcblxuLy8gY29uc3RydWN0IHZpcy1zdGF0ZSByZWR1Y2VyXG5leHBvcnQgY29uc3QgdmlzU3RhdGVSZWR1Y2VyRmFjdG9yeSA9IChpbml0aWFsU3RhdGUgPSB7fSkgPT5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICBoYW5kbGVBY3Rpb25zKGFjdGlvbkhhbmRsZXIsIHtcbiAgICAuLi52aXNTdGF0ZVVwZGF0ZXJzLklOSVRJQUxfVklTX1NUQVRFLFxuICAgIC4uLmluaXRpYWxTdGF0ZSxcbiAgICBpbml0aWFsU3RhdGVcbiAgfSk7XG5cbmV4cG9ydCBkZWZhdWx0IHZpc1N0YXRlUmVkdWNlckZhY3RvcnkoKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0EsSUFBQUEsUUFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsYUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsZ0JBQUEsR0FBQUMsdUJBQUEsQ0FBQUgsT0FBQTtBQUF5RCxJQUFBSSxjQUFBLEVBTHpEO0FBQ0E7QUFBQSxTQUFBRCx3QkFBQUUsQ0FBQSxFQUFBQyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUosdUJBQUEsWUFBQUEsd0JBQUFFLENBQUEsRUFBQUMsQ0FBQSxTQUFBQSxDQUFBLElBQUFELENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsTUFBQU0sQ0FBQSxFQUFBQyxDQUFBLEVBQUFDLENBQUEsS0FBQUMsU0FBQSxtQkFBQVQsQ0FBQSxpQkFBQUEsQ0FBQSxnQkFBQVUsT0FBQSxDQUFBVixDQUFBLDBCQUFBQSxDQUFBLFNBQUFRLENBQUEsTUFBQUYsQ0FBQSxHQUFBTCxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRyxDQUFBLENBQUFLLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTSxDQUFBLENBQUFNLEdBQUEsQ0FBQVosQ0FBQSxHQUFBTSxDQUFBLENBQUFPLEdBQUEsQ0FBQWIsQ0FBQSxFQUFBUSxDQUFBLGNBQUFNLEVBQUEsSUFBQWQsQ0FBQSxnQkFBQWMsRUFBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsRUFBQSxPQUFBUCxDQUFBLElBQUFELENBQUEsR0FBQVcsTUFBQSxDQUFBQyxjQUFBLEtBQUFELE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQW5CLENBQUEsRUFBQWMsRUFBQSxPQUFB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
@@ -152,17 +152,67 @@ export var updateMapUpdater = function updateMapUpdater(state, action) {
152
152
  });
153
153
  };
154
154
 
155
+ /**
156
+ * Apply a partial map state from the viewport JSON editor.
157
+ * Preserves current width/height so saved JSON cannot resize the map container,
158
+ * including nested split-map viewports. When viewports are unsynced, camera
159
+ * fields are applied to the opened map pane (`mapIndex`), matching `updateMap`.
160
+ * @memberof mapStateUpdaters
161
+ * @public
162
+ */
163
+ var APPLY_MAP_STATE_VIEWPORT_KEYS = ['latitude', 'longitude', 'zoom', 'pitch', 'bearing', 'dragRotate', 'minZoom', 'maxZoom', 'maxPitch'];
164
+ export var applyMapStateUpdater = function applyMapStateUpdater(state, action) {
165
+ var _action$meta$mapIndex, _action$meta;
166
+ var next = action.payload || {};
167
+ var mapIndex = (_action$meta$mapIndex = (_action$meta = action.meta) === null || _action$meta === void 0 ? void 0 : _action$meta.mapIndex) !== null && _action$meta$mapIndex !== void 0 ? _action$meta$mapIndex : 0;
168
+ var width = state.width,
169
+ height = state.height;
170
+ var nextConfig = _objectSpread({}, next);
171
+ delete nextConfig.width;
172
+ delete nextConfig.height;
173
+ if (Array.isArray(next.splitMapViewports)) {
174
+ nextConfig.splitMapViewports = next.splitMapViewports.map(function (viewport, i) {
175
+ var _state$splitMapViewpo, _state$splitMapViewpo2, _state$splitMapViewpo3, _state$splitMapViewpo4;
176
+ return _objectSpread(_objectSpread({}, viewport), {}, {
177
+ width: (_state$splitMapViewpo = (_state$splitMapViewpo2 = state.splitMapViewports[i]) === null || _state$splitMapViewpo2 === void 0 ? void 0 : _state$splitMapViewpo2.width) !== null && _state$splitMapViewpo !== void 0 ? _state$splitMapViewpo : width,
178
+ height: (_state$splitMapViewpo3 = (_state$splitMapViewpo4 = state.splitMapViewports[i]) === null || _state$splitMapViewpo4 === void 0 ? void 0 : _state$splitMapViewpo4.height) !== null && _state$splitMapViewpo3 !== void 0 ? _state$splitMapViewpo3 : height
179
+ });
180
+ });
181
+ }
182
+ var mergedState = deepmerge(state, nextConfig, {
183
+ arrayMerge: function arrayMerge(_destinationArray, sourceArray) {
184
+ return sourceArray;
185
+ }
186
+ });
187
+ var applied = validateViewPort(_objectSpread(_objectSpread({}, mergedState), {}, {
188
+ width: width,
189
+ height: height
190
+ }));
191
+ if (!state.isViewportSynced && state.splitMapViewports.length) {
192
+ var viewport = pick(next, APPLY_MAP_STATE_VIEWPORT_KEYS);
193
+ if (Object.keys(viewport).length) {
194
+ return updateMapUpdater(applied, {
195
+ payload: {
196
+ viewport: viewport,
197
+ mapIndex: mapIndex
198
+ }
199
+ });
200
+ }
201
+ }
202
+ return applied;
203
+ };
204
+
155
205
  /**
156
206
  * Fit map viewport to bounds
157
207
  * @memberof mapStateUpdaters
158
208
  * @public
159
209
  */
160
210
  export var fitBoundsUpdater = function fitBoundsUpdater(state, action) {
161
- var _action$meta, _state$globe;
211
+ var _action$meta2, _state$globe;
162
212
  var centerAndZoom = getCenterAndZoomFromBounds(action.payload, {
163
213
  width: state.width,
164
214
  height: state.height,
165
- padding: (_action$meta = action.meta) === null || _action$meta === void 0 ? void 0 : _action$meta.padding
215
+ padding: (_action$meta2 = action.meta) === null || _action$meta2 === void 0 ? void 0 : _action$meta2.padding
166
216
  });
167
217
  if (!centerAndZoom) {
168
218
  // bounds is invalid
@@ -647,4 +697,4 @@ function updateViewport(originalViewport, viewportUpdates) {
647
697
  }
648
698
  return newViewport;
649
699
  }
650
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZW9WaWV3cG9ydCIsImJvb2xlYW5XaXRoaW4iLCJiYm94UG9seWdvbiIsImZpdEJvdW5kcyIsImRlZXBtZXJnZSIsInBpY2siLCJnZXRDZW50ZXJBbmRab29tRnJvbUJvdW5kcyIsInZhbGlkYXRlQm91bmRzIiwiTUFQQk9YX1RJTEVfU0laRSIsInZhbGlkYXRlVmlld1BvcnQiLCJNYXBTcGxpdE1vZGUiLCJNYXBWaWV3TW9kZSIsIkRFRkFVTFRfR0xPQkVfQ09ORklHIiwiR0xPQkVfTUlOX1pPT00iLCJHTE9CRV9NQVhfWk9PTSIsIkdMT0JFX01BWF9MQVRJVFVERSIsIm1hcFN0YXRlVXBkYXRlcnMiLCJJTklUSUFMX01BUF9TVEFURSIsInBpdGNoIiwiYmVhcmluZyIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiem9vbSIsImRyYWdSb3RhdGUiLCJ3aWR0aCIsImhlaWdodCIsIm1pblpvb20iLCJ1bmRlZmluZWQiLCJtYXhab29tIiwibWF4UGl0Y2giLCJtYXhCb3VuZHMiLCJpc1NwbGl0IiwiaXNWaWV3cG9ydFN5bmNlZCIsImlzWm9vbUxvY2tlZCIsInNwbGl0TWFwVmlld3BvcnRzIiwibWFwVmlld01vZGUiLCJNT0RFXzJEIiwiZ2xvYmUiLCJlbmFibGVkIiwiY29uZmlnIiwibWFwU3BsaXRNb2RlIiwiU0lOR0xFX01BUCIsInN3aXBlQ29tcGFyZVBlcmNlbnRhZ2UiLCJ1cGRhdGVNYXBVcGRhdGVyIiwic3RhdGUiLCJhY3Rpb24iLCJfYWN0aW9uJHBheWxvYWQiLCJwYXlsb2FkIiwiaW5wdXRWaWV3cG9ydCIsInZpZXdwb3J0IiwiX2FjdGlvbiRwYXlsb2FkJG1hcEluIiwibWFwSW5kZXgiLCJ1cGRhdGVWaWV3cG9ydCIsIm90aGVyVmlld3BvcnRNYXBJbmRleCIsIm1hcCIsImN1cnJlbnRWaWV3cG9ydCIsImkiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsIl9vYmplY3RTcHJlYWQiLCJmaXRCb3VuZHNVcGRhdGVyIiwiX2FjdGlvbiRtZXRhIiwiX3N0YXRlJGdsb2JlIiwiY2VudGVyQW5kWm9vbSIsInBhZGRpbmciLCJtZXRhIiwiaXNHbG9iZU1vZGUiLCJCb29sZWFuIiwiTWF0aCIsIm1pbiIsIm1heCIsIm5ld1N0YXRlIiwiY2VudGVyIiwibGVuZ3RoIiwidG9nZ2xlUGVyc3BlY3RpdmVVcGRhdGVyIiwiX3N0YXRlJGdsb2JlMiIsIndhc0dsb2JlRW5hYmxlZCIsIk1PREVfM0QiLCJzZXRNYXBWaWV3TW9kZVVwZGF0ZXIiLCJfc3RhdGUkZ2xvYmUzIiwibmV4dFN0YXRlIiwiTU9ERV9HTE9CRSIsImdsb2JlQ29uZmlnQ2hhbmdlVXBkYXRlciIsInJlc2V0TWFwQ29uZmlnVXBkYXRlciIsImluaXRpYWxTdGF0ZSIsInJlY2VpdmVNYXBDb25maWdVcGRhdGVyIiwiX3JlZiIsIl9yZWYkcGF5bG9hZCIsIl9yZWYkcGF5bG9hZCRjb25maWciLCJfcmVmJHBheWxvYWQkb3B0aW9ucyIsIm9wdGlvbnMiLCJfcmVmJHBheWxvYWQkYm91bmRzIiwiYm91bmRzIiwibWFwU3RhdGUiLCJtZXJnZWRTdGF0ZSIsImFycmF5TWVyZ2UiLCJfZGVzdGluYXRpb25BcnJheSIsInNvdXJjZUFycmF5IiwiY2VudGVyTWFwIiwiZ2V0TWFwRGltRm9yU3BsaXRNYXAiLCJ0b2dnbGVTcGxpdE1hcFVwZGF0ZXIiLCJEVUFMX01BUCIsInNldE1hcFNwbGl0TW9kZVVwZGF0ZXIiLCJwcmV2TW9kZSIsIlNXSVBFX0NPTVBBUkUiLCJzZXRTd2lwZUNvbXBhcmVQZXJjZW50YWdlVXBkYXRlciIsInBlcmNlbnRhZ2UiLCJjbGFtcGVkIiwidG9nZ2xlU3BsaXRNYXBWaWV3cG9ydFVwZGF0ZXIiLCJuZXdNYXBTdGF0ZSIsImxhc3RVcGRhdGVkVmlld3BvcnRJbmRleCIsImZpbmRJbmRleCIsInYiLCJsZWZ0Vmlld3BvcnQiLCJwaWNrVmlld3BvcnRQcm9wc0Zyb21NYXBTdGF0ZSIsInJpZ2h0Vmlld3BvcnQiLCJ1cGRhdGVWaWV3cG9ydEJhc2VkT25Cb3VuZHMiLCJ2aWV3cG9ydEJvdW5kcyIsInZpZXdwb3J0Qm91bmRzUG9seWdvbiIsIm5ld1N0YXRlTWF4Qm91bmRzIiwibWF4Qm91bmRzUG9seWdvbiIsImhhc01heEJvdW5kc0NoYW5nZWQiLCJldmVyeSIsInZhbCIsImlkeCIsIl9maXRCb3VuZHMiLCJkZWZpbmVkUHJvcHMiLCJvYmoiLCJPYmplY3QiLCJlbnRyaWVzIiwicmVkdWNlIiwiYWNjdSIsIl9yZWYyIiwiX3JlZjMiLCJfc2xpY2VkVG9BcnJheSIsImsiLCJfZGVmaW5lUHJvcGVydHkiLCJvcmlnaW5hbFZpZXdwb3J0Iiwidmlld3BvcnRVcGRhdGVzIiwiX2dsb2JlIiwibmV3Vmlld3BvcnQiLCJpc0dsb2JlIiwiX25ld1ZpZXdwb3J0JGxhdGl0dWRlIiwiem9vbUFkanVzdG1lbnQiLCJsb2cyIiwiY29zIiwiUEkiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFwLXN0YXRlLXVwZGF0ZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBnZW9WaWV3cG9ydCBmcm9tICdAbWFwYm94L2dlby12aWV3cG9ydCc7XG5pbXBvcnQge2Jvb2xlYW5XaXRoaW59IGZyb20gJ0B0dXJmL2Jvb2xlYW4td2l0aGluJztcbmltcG9ydCB7YmJveFBvbHlnb259IGZyb20gJ0B0dXJmL2Jib3gtcG9seWdvbic7XG5pbXBvcnQge2ZpdEJvdW5kc30gZnJvbSAnQG1hdGguZ2wvd2ViLW1lcmNhdG9yJztcbmltcG9ydCBkZWVwbWVyZ2UgZnJvbSAnZGVlcG1lcmdlJztcbmltcG9ydCBwaWNrIGZyb20gJ2VzLXRvb2xraXQvY29tcGF0L3BpY2snO1xuXG5pbXBvcnQge1xuICBnZXRDZW50ZXJBbmRab29tRnJvbUJvdW5kcyxcbiAgdmFsaWRhdGVCb3VuZHMsXG4gIE1BUEJPWF9USUxFX1NJWkUsXG4gIHZhbGlkYXRlVmlld1BvcnRcbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge01hcFN0YXRlQWN0aW9ucywgUmVjZWl2ZU1hcENvbmZpZ1BheWxvYWQsIEFjdGlvblR5cGVzfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtNYXBTdGF0ZSwgQm91bmRzLCBWaWV3cG9ydH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1xuICBNYXBTcGxpdE1vZGUsXG4gIE1hcFZpZXdNb2RlLFxuICBERUZBVUxUX0dMT0JFX0NPTkZJRyxcbiAgR0xPQkVfTUlOX1pPT00sXG4gIEdMT0JFX01BWF9aT09NLFxuICBHTE9CRV9NQVhfTEFUSVRVREVcbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG4vKipcbiAqIFVwZGF0ZXJzIGZvciBgbWFwU3RhdGVgIHJlZHVjZXIuIENhbiBiZSB1c2VkIGluIHlvdXIgcm9vdCByZWR1Y2VyIHRvIGRpcmVjdGx5IG1vZGlmeSBrZXBsZXIuZ2wncyBzdGF0ZS5cbiAqIFJlYWQgbW9yZSBhYm91dCBbVXNpbmcgdXBkYXRlcnNdKC4uL2FkdmFuY2VkLXVzYWdlL3VzaW5nLXVwZGF0ZXJzLm1kKVxuICogQHB1YmxpY1xuICogQGV4YW1wbGVcbiAqXG4gKiBpbXBvcnQga2VwbGVyR2xSZWR1Y2VyLCB7bWFwU3RhdGVVcGRhdGVyc30gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG4gKiAvLyBSb290IFJlZHVjZXJcbiAqIGNvbnN0IHJlZHVjZXJzID0gY29tYmluZVJlZHVjZXJzKHtcbiAqICBrZXBsZXJHbDoga2VwbGVyR2xSZWR1Y2VyLFxuICogIGFwcDogYXBwUmVkdWNlclxuICogfSk7XG4gKlxuICogY29uc3QgY29tcG9zZWRSZWR1Y2VyID0gKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAqICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gKiAgICAvLyBjbGljayBidXR0b24gdG8gY2xvc2Ugc2lkZSBwYW5lbFxuICogICAgY2FzZSAnQ0xJQ0tfQlVUVE9OJzpcbiAqICAgICAgcmV0dXJuIHtcbiAqICAgICAgICAuLi5zdGF0ZSxcbiAqICAgICAgICBrZXBsZXJHbDoge1xuICogICAgICAgICAgLi4uc3RhdGUua2VwbGVyR2wsXG4gKiAgICAgICAgICBmb286IHtcbiAqICAgICAgICAgICAgIC4uLnN0YXRlLmtlcGxlckdsLmZvbyxcbiAqICAgICAgICAgICAgIG1hcFN0YXRlOiBtYXBTdGF0ZVVwZGF0ZXJzLmZpdEJvdW5kc1VwZGF0ZXIoXG4gKiAgICAgICAgICAgICAgIG1hcFN0YXRlLCB7cGF5bG9hZDogWzEyNy4zNCwgMzEuMDksIDEyNy41NiwgMzEuNTldXX1cbiAqICAgICAgICAgICAgIClcbiAqICAgICAgICAgIH1cbiAqICAgICAgICB9XG4gKiAgICAgIH07XG4gKiAgfVxuICogIHJldHVybiByZWR1Y2VycyhzdGF0ZSwgYWN0aW9uKTtcbiAqIH07XG4gKlxuICogZXhwb3J0IGRlZmF1bHQgY29tcG9zZWRSZWR1Y2VyO1xuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuLy8gQHRzLWlnbm9yZVxuY29uc3QgbWFwU3RhdGVVcGRhdGVycyA9IG51bGw7XG4vKiBlc2xpbnQtZW5hYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuLyoqXG4gKiBEZWZhdWx0IGluaXRpYWwgYG1hcFN0YXRlYFxuICogQG1lbWJlcm9mIG1hcFN0YXRlVXBkYXRlcnNcbiAqIEBjb25zdGFudFxuICogQHByb3BlcnR5IHBpdGNoIERlZmF1bHQ6IGAwYFxuICogQHByb3BlcnR5IGJlYXJpbmcgRGVmYXVsdDogYDBgXG4gKiBAcHJvcGVydHkgbGF0aXR1ZGUgRGVmYXVsdDogYDM3Ljc1MDQzYFxuICogQHByb3BlcnR5IGxvbmdpdHVkZSBEZWZhdWx0OiBgLTEyMi4zNDY3OWBcbiAqIEBwcm9wZXJ0eSB6b29tIERlZmF1bHQ6IGA5YFxuICogQHByb3BlcnR5IGRyYWdSb3RhdGUgRGVmYXVsdDogYGZhbHNlYFxuICogQHByb3BlcnR5IHdpZHRoIERlZmF1bHQ6IGA4MDBgXG4gKiBAcHJvcGVydHkgaGVpZ2h0IERlZmF1bHQ6IGA4MDBgXG4gKiBAcHJvcGVydHkgbWluWm9vbTogYHVuZGVmaW5lZGAsXG4gKiBAcHJvcGVydHkgbWF4Wm9vbTogYHVuZGVmaW5lZGAsXG4gKiBAcHJvcGVydHkgbWF4UGl0Y2g6IGB1bmRlZmluZWRgIChkZWZhdWx0cyB0byBhcHBsaWNhdGlvbiBjb25maWcgdmFsdWUsIGRlY2suZ2wgZGVmYXVsdCBpcyA2MClcbiAqIEBwcm9wZXJ0eSBtYXhCb3VuZHM6IGB1bmRlZmluZWRgLFxuICogQHByb3BlcnR5IGlzU3BsaXQ6IGBmYWxzZWAsXG4gKiBAcHJvcGVydHkgaXNWaWV3cG9ydFN5bmNlZDogYHRydWVgLFxuICogQHByb3BlcnR5IGlzWm9vbUxvY2tlZDogYGZhbHNlYCxcbiAqIEBwcm9wZXJ0eSBzcGxpdE1hcFZpZXdwb3J0czogYFtdYFxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgSU5JVElBTF9NQVBfU1RBVEU6IE1hcFN0YXRlID0ge1xuICBwaXRjaDogMCxcbiAgYmVhcmluZzogMCxcbiAgbGF0aXR1ZGU6IDM3Ljc1MDQzLFxuICBsb25naXR1ZGU6IC0xMjIuMzQ2NzksXG4gIHpvb206IDksXG4gIGRyYWdSb3RhdGU6IGZhbHNlLFxuICB3aWR0aDogODAwLFxuICBoZWlnaHQ6IDgwMCxcbiAgbWluWm9vbTogdW5kZWZpbmVkLFxuICBtYXhab29tOiB1bmRlZmluZWQsXG4gIG1heFBpdGNoOiB1bmRlZmluZWQsXG4gIG1heEJvdW5kczogdW5kZWZpbmVkLFxuICBpc1NwbGl0OiBmYWxzZSxcbiAgaXNWaWV3cG9ydFN5bmNlZDogdHJ1ZSxcbiAgaXNab29tTG9ja2VkOiBmYWxzZSxcbiAgc3BsaXRNYXBWaWV3cG9ydHM6IFtdLFxuICBtYXBWaWV3TW9kZTogTWFwVmlld01vZGUuTU9ERV8yRCxcbiAgZ2xvYmU6IHtcbiAgICBlbmFibGVkOiBmYWxzZSxcbiAgICBjb25maWc6IERFRkFVTFRfR0xPQkVfQ09ORklHXG4gIH0sXG4gIG1hcFNwbGl0TW9kZTogTWFwU3BsaXRNb2RlLlNJTkdMRV9NQVAsXG4gIHN3aXBlQ29tcGFyZVBlcmNlbnRhZ2U6IDUwXG59O1xuXG4vKiBVcGRhdGVycyAqL1xuLyoqXG4gKiBVcGRhdGUgbWFwIHZpZXdwb3J0XG4gKiBAbWVtYmVyb2YgbWFwU3RhdGVVcGRhdGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgdXBkYXRlTWFwVXBkYXRlciA9IChcbiAgc3RhdGU6IE1hcFN0YXRlLFxuICBhY3Rpb246IE1hcFN0YXRlQWN0aW9ucy5VcGRhdGVNYXBVcGRhdGVyQWN0aW9uXG4pOiBNYXBTdGF0ZSA9PiB7XG4gIGNvbnN0IHt2aWV3cG9ydDogaW5wdXRWaWV3cG9ydCwgbWFwSW5kZXggPSAwfSA9IGFjdGlvbi5wYXlsb2FkO1xuICBjb25zdCB2aWV3cG9ydCA9IHZhbGlkYXRlVmlld1BvcnQoaW5wdXRWaWV3cG9ydCk7XG5cbiAgaWYgKHN0YXRlLmlzVmlld3BvcnRTeW5jZWQpIHtcbiAgICAvLyBUaGUgYHVwZGF0ZVZpZXdwb3J0YCBmdW5jdGlvbiBpcyB0eXBlZCBhcyAoVmlld3BvcnQsIFZpZXdwb3J0KSAtPiBWaWV3cG9ydCBidXQgaGVyZSB0aGVcbiAgICAvLyBleHBlY3RlZCB0eXBpbmcgaXMgKE1hcFN0YXRlLCBWaWV3cG9ydCkgLT4gTWFwU3RhdGUuXG4gICAgLy8gdGhpcyBjb3VsZCBiZSBhIHBvdGVudGlhbCBidWcgYXMgd2UgdHJlYXQgVmlld3BvcnQgYW5kIE1hcFN0YXRlIGFzIGVxdWFsIHNlZW1pbmdseVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVHlwZSAnVmlld3BvcnQnIGlzIG1pc3NpbmcgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGZyb20gdHlwZSAnTWFwU3RhdGUnOiBpc1NwbGl0LCBpc1ZpZXdwb3J0U3luY2VkLCBpc1pvb21Mb2NrZWQsIHNwbGl0TWFwVmlld3BvcnRzXG4gICAgcmV0dXJuIHVwZGF0ZVZpZXdwb3J0KHN0YXRlLCB2aWV3cG9ydCk7XG4gIH1cblxuICBsZXQgb3RoZXJWaWV3cG9ydE1hcEluZGV4ID0gLTE7XG4gIGNvbnN0IHNwbGl0TWFwVmlld3BvcnRzID0gc3RhdGUuc3BsaXRNYXBWaWV3cG9ydHMubWFwKChjdXJyZW50Vmlld3BvcnQsIGkpID0+IHtcbiAgICBpZiAoaSA9PT0gbWFwSW5kZXgpIHtcbiAgICAgIC8vIHVwZGF0ZSB0aGUgbWF0Y2hpbmcgdmlld3BvcnQgd2l0aCB0aGUgbmV3Vmlld3BvcnQgaW5mbyBpbiB0aGUgYWN0aW9uIHBheWxvYWRcbiAgICAgIHJldHVybiB1cGRhdGVWaWV3cG9ydChjdXJyZW50Vmlld3BvcnQsIHZpZXdwb3J0KTtcbiAgICB9XG5cbiAgICBvdGhlclZpZXdwb3J0TWFwSW5kZXggPSBpO1xuICAgIC8vIG1ha2Ugbm8gY2hhbmdlcyB0byB0aGUgb3RoZXIgdmlld3BvcnQgKHlldClcbiAgICByZXR1cm4gY3VycmVudFZpZXdwb3J0O1xuICB9KTtcblxuICAvLyBtYWtlIGNvbmRpdGlvbmFsIHVwZGF0ZXMgdG8gdGhlIG90aGVyIHZpZXdwb3J0IG5vdCBtYXRjaGluZyB0aGlzIHBheWxvYWQncyBgbWFwSW5kZXhgXG4gIGlmIChOdW1iZXIuaXNGaW5pdGUob3RoZXJWaWV3cG9ydE1hcEluZGV4KSAmJiBvdGhlclZpZXdwb3J0TWFwSW5kZXggPiAtMSkge1xuICAgIC8vIHdpZHRoIGFuZCBoZWlnaHQgYXJlIGEgc3BlY2lhbCBjYXNlIGFuZCBhcmUgYWx3YXlzIHVwZGF0ZWRcbiAgICBzcGxpdE1hcFZpZXdwb3J0c1tvdGhlclZpZXdwb3J0TWFwSW5kZXhdID0ge1xuICAgICAgLi4uc3BsaXRNYXBWaWV3cG9ydHNbb3RoZXJWaWV3cG9ydE1hcEluZGV4XSxcbiAgICAgIHdpZHRoOiBzcGxpdE1hcFZpZXdwb3J0c1ttYXBJbmRleF0ud2lkdGgsXG4gICAgICBoZWlnaHQ6IHNwbGl0TWFwVmlld3BvcnRzW21hcEluZGV4XS5oZWlnaHRcbiAgICB9O1xuXG4gICAgaWYgKHN0YXRlLmlzWm9vbUxvY2tlZCkge1xuICAgICAgLy8gdXBkYXRlIHRoZSBvdGhlciB2aWV3cG9ydCB3aXRoIHRoZSBuZXcgem9vbSBmcm9tIHRoZSBzcGxpdCB2aWV3cG9ydCB0aGF0IHdhcyB1cGRhdGVkIHdpdGggdGhpcyBwYXlsb2FkJ3MgYG1hcEluZGV4YFxuICAgICAgc3BsaXRNYXBWaWV3cG9ydHNbb3RoZXJWaWV3cG9ydE1hcEluZGV4XSA9IHtcbiAgICAgICAgLi4uc3BsaXRNYXBWaWV3cG9ydHNbb3RoZXJWaWV3cG9ydE1hcEluZGV4XSxcbiAgICAgICAgem9vbTogc3BsaXRNYXBWaWV3cG9ydHNbbWFwSW5kZXhdLnpvb21cbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAvLyB1cGRhdGUgdGhlIHRvcC1sZXZlbCBtYXBTdGF0ZSB2aWV3cG9ydCB3aXRoIHRoZSBtb3N0IHJlY2VudGx5IGludGVyYWN0ZWQtd2l0aCBzcGxpdCB2aWV3cG9ydFxuICAgIC8vIFdIWT8gdGhpcyBhdm9pZHMgem9vbSBhbmQgYm91bmRzIFwianVtcGluZ1wiIGR1ZSB0byBhIFwic3RhbGVcIiB0b3AtbGV2ZWwgbWFwU3RhdGUgdmlld3BvcnQgd2hlbjpcbiAgICAvLyAgMS4gdG9nZ2xpbmcgb2ZmIHRoZSB1bnN5bmNlZCB2aWV3cG9ydHMgbW9kZSB0byBzd2l0Y2ggdG8gdGhlIHN5bmNlZCB2aWV3cG9ydHMgbW9kZVxuICAgIC8vICAyLiB0b2dnbGluZyBvbiB0aGUgem9vbSBsb2NrIGR1cmluZyBhbiB1bnN5bmNlZCB2aWV3cG9ydHMgbW9kZVxuICAgIC4uLnN0YXRlLFxuICAgIC4uLnNwbGl0TWFwVmlld3BvcnRzW21hcEluZGV4XSxcbiAgICAvLyB1cGRhdGUgdGhlIG1hcFN0YXRlIHdpdGggdGhlIG5ldyBhcnJheSBvZiBzcGxpdCB2aWV3cG9ydHNcbiAgICBzcGxpdE1hcFZpZXdwb3J0c1xuICB9O1xufTtcblxuLyoqXG4gKiBGaXQgbWFwIHZpZXdwb3J0IHRvIGJvdW5kc1xuICogQG1lbWJlcm9mIG1hcFN0YXRlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGZpdEJvdW5kc1VwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdGF0ZSxcbiAgYWN0aW9uOiBNYXBTdGF0ZUFjdGlvbnMuRml0Qm91bmRzVXBkYXRlckFjdGlvblxuKTogTWFwU3RhdGUgPT4ge1xuICBjb25zdCBjZW50ZXJBbmRab29tID0gZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMoYWN0aW9uLnBheWxvYWQsIHtcbiAgICB3aWR0aDogc3RhdGUud2lkdGgsXG4gICAgaGVpZ2h0OiBzdGF0ZS5oZWlnaHQsXG4gICAgcGFkZGluZzogYWN0aW9uLm1ldGE/LnBhZGRpbmdcbiAgfSk7XG4gIGlmICghY2VudGVyQW5kWm9vbSkge1xuICAgIC8vIGJvdW5kcyBpcyBpbnZhbGlkXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgLy8gSW4gZ2xvYmUgbW9kZSwgY2xhbXAgem9vbSB0byBnbG9iZSdzIGFsbG93ZWQgcmFuZ2VcbiAgY29uc3QgaXNHbG9iZU1vZGUgPSBCb29sZWFuKHN0YXRlLmdsb2JlPy5lbmFibGVkKTtcbiAgY29uc3Qgem9vbSA9IE51bWJlci5pc0Zpbml0ZShjZW50ZXJBbmRab29tLnpvb20pXG4gICAgPyBpc0dsb2JlTW9kZVxuICAgICAgPyBNYXRoLm1pbihNYXRoLm1heChjZW50ZXJBbmRab29tLnpvb20sIEdMT0JFX01JTl9aT09NKSwgR0xPQkVfTUFYX1pPT00pXG4gICAgICA6IGNlbnRlckFuZFpvb20uem9vbVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIGxhdGl0dWRlOiBjZW50ZXJBbmRab29tLmNlbnRlclsxXSxcbiAgICBsb25naXR1ZGU6IGNlbnRlckFuZFpvb20uY2VudGVyWzBdLFxuICAgIC8vIEZvciBtYXJnaW5hbCBvciBpbnZhbGlkIGJvdW5kcywgem9vbSBtYXkgYmUgTmFOLiBNYWtlIHN1cmUgdG8gcHJvdmlkZSBhIHZhbGlkIHZhbHVlIGluIG9yZGVyXG4gICAgLy8gdG8gYXZvaWQgY29ycnVwdCBzdGF0ZSBhbmQgcG90ZW50aWFsIGNyYXNoZXMgYXMgem9vbSBpcyBleHBlY3RlZCB0byBiZSBhIG51bWJlclxuICAgIC4uLih6b29tICE9PSB1bmRlZmluZWQgPyB7em9vbX0gOiB7fSlcbiAgfTtcblxuICAvLyBpZiBmaXR0aW5nIHRvIGJvdW5kcyB3aGlsZSBzcGxpdCBhbmQgdW5zeW5jZWRcbiAgLy8gY29weSB0aGUgbmV3IGxhdGl0dWRlLCBsb25naXR1ZGUsIGFuZCB6b29tIHZhbHVlcyB0byBlYWNoIHNwbGl0IHZpZXdwb3J0XG4gIGlmIChuZXdTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cy5sZW5ndGgpIHtcbiAgICBuZXdTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cyA9IG5ld1N0YXRlLnNwbGl0TWFwVmlld3BvcnRzLm1hcChjdXJyZW50Vmlld3BvcnQgPT4gKHtcbiAgICAgIC4uLmN1cnJlbnRWaWV3cG9ydCxcbiAgICAgIGxhdGl0dWRlOiBuZXdTdGF0ZS5sYXRpdHVkZSxcbiAgICAgIGxvbmdpdHVkZTogbmV3U3RhdGUubG9uZ2l0dWRlLFxuICAgICAgem9vbTogbmV3U3RhdGUuem9vbVxuICAgIH0pKTtcbiAgfVxuXG4gIHJldHVybiBuZXdTdGF0ZTtcbn07XG5cbi8qKlxuICogVG9nZ2xlIGJldHdlZW4gM2QgYW5kIDJkIG1hcC5cbiAqIEBtZW1iZXJvZiBtYXBTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCB0b2dnbGVQZXJzcGVjdGl2ZVVwZGF0ZXIgPSAoc3RhdGU6IE1hcFN0YXRlKTogTWFwU3RhdGUgPT4ge1xuICAvLyBPbmx5IGRyb3AgbWluL21heFpvb20gd2hlbiB3ZSdyZSBhY3R1YWxseSBsZWF2aW5nIGdsb2JlIG1vZGUsIHdoZXJlIHRob3NlXG4gIC8vIGJvdW5kcyBhcmUgc2V0IHRvIGdsb2JlLW9ubHkgdmFsdWVzLiBJZiBnbG9iZSB3YXMgbmV2ZXIgZW5hYmxlZCB0aGVzZSBhcmVcbiAgLy8gdGhlIGFwcCdzIG93biBjdXN0b20gYm91bmRzIGFuZCBtdXN0IGJlIHByZXNlcnZlZC5cbiAgY29uc3Qgd2FzR2xvYmVFbmFibGVkID0gQm9vbGVhbihzdGF0ZS5nbG9iZT8uZW5hYmxlZCk7XG5cbiAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgLi4uc3RhdGUsXG4gICAgLi4ue1xuICAgICAgcGl0Y2g6IHN0YXRlLmRyYWdSb3RhdGUgPyAwIDogNTAsXG4gICAgICBiZWFyaW5nOiBzdGF0ZS5kcmFnUm90YXRlID8gMCA6IDI0XG4gICAgfSxcbiAgICBkcmFnUm90YXRlOiAhc3RhdGUuZHJhZ1JvdGF0ZSxcbiAgICBtYXBWaWV3TW9kZTogc3RhdGUuZHJhZ1JvdGF0ZSA/IE1hcFZpZXdNb2RlLk1PREVfMkQgOiBNYXBWaWV3TW9kZS5NT0RFXzNELFxuICAgIGdsb2JlOiB7Li4uc3RhdGUuZ2xvYmUhLCBlbmFibGVkOiBmYWxzZX0sXG4gICAgLy8gTGVhdmluZyBnbG9iZSBtb2RlOiBkcm9wIGdsb2JlLW9ubHkgem9vbSBib3VuZHMgc28gdGhlIGZsYXQgbWFwIChhbmRcbiAgICAvLyBjb25zdW1lcnMgb2YgbWFwU3RhdGUgc3VjaCBhcyB2aWRlbyBleHBvcnQpIGFyZW4ndCBsZWZ0IGNsYW1wZWQuIFdoZW5cbiAgICAvLyBnbG9iZSB3YXMgbmV2ZXIgb24sIGtlZXAgd2hhdGV2ZXIgbWluL21heFpvb20gdGhlIGFwcCBjb25maWd1cmVkLlxuICAgIC4uLih3YXNHbG9iZUVuYWJsZWQgPyB7bWluWm9vbTogdW5kZWZpbmVkLCBtYXhab29tOiB1bmRlZmluZWR9IDoge30pXG4gIH07XG5cbiAgLy8gaWYgdG9nZ2xpbmcgM2QgYW5kIDJkIHdoaWxlIHNwbGl0IGFuZCB1bnN5bmNlZFxuICAvLyBjb3B5IHRoZSBuZXcgcGl0Y2gsIGJlYXJpbmcsIGFuZCBkcmFnUm90YXRlIHZhbHVlcyB0byBlYWNoIHNwbGl0IHZpZXdwb3J0XG4gIGlmIChuZXdTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cy5sZW5ndGgpIHtcbiAgICBuZXdTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cyA9IG5ld1N0YXRlLnNwbGl0TWFwVmlld3BvcnRzLm1hcChjdXJyZW50Vmlld3BvcnQgPT4gKHtcbiAgICAgIC4uLmN1cnJlbnRWaWV3cG9ydCxcbiAgICAgIHBpdGNoOiBuZXdTdGF0ZS5waXRjaCxcbiAgICAgIGJlYXJpbmc6IG5ld1N0YXRlLmJlYXJpbmcsXG4gICAgICBkcmFnUm90YXRlOiBuZXdTdGF0ZS5kcmFnUm90YXRlXG4gICAgfSkpO1xuICB9XG5cbiAgcmV0dXJuIG5ld1N0YXRlO1xufTtcblxuLyoqXG4gKiBTZXQgbWFwIHZpZXcgbW9kZSAoMkQsIDNELCBHbG9iZSlcbiAqIEBtZW1iZXJvZiBtYXBTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRNYXBWaWV3TW9kZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdGF0ZSxcbiAgYWN0aW9uOiBNYXBTdGF0ZUFjdGlvbnMuU2V0TWFwVmlld01vZGVVcGRhdGVyQWN0aW9uXG4pOiBNYXBTdGF0ZSA9PiB7XG4gIGNvbnN0IHttYXBWaWV3TW9kZX0gPSBhY3Rpb24ucGF5bG9hZDtcbiAgbGV0IG5leHRTdGF0ZTogTWFwU3RhdGU7XG5cbiAgLy8gT25seSBjbGVhciBtaW4vbWF4Wm9vbSB3aGVuIGxlYXZpbmcgZ2xvYmUgbW9kZSAod2hlcmUgdGhleSBob2xkIGdsb2JlLW9ubHlcbiAgLy8gYm91bmRzKS4gT3RoZXJ3aXNlIHByZXNlcnZlIHRoZSBhcHAncyBjdXN0b20gYm91bmRzLlxuICBjb25zdCB3YXNHbG9iZUVuYWJsZWQgPSBCb29sZWFuKHN0YXRlLmdsb2JlPy5lbmFibGVkKTtcblxuICBzd2l0Y2ggKG1hcFZpZXdNb2RlKSB7XG4gICAgY2FzZSBNYXBWaWV3TW9kZS5NT0RFXzJEOlxuICAgICAgbmV4dFN0YXRlID0ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgZ2xvYmU6IHsuLi5zdGF0ZS5nbG9iZSEsIGVuYWJsZWQ6IGZhbHNlfSxcbiAgICAgICAgcGl0Y2g6IDAsXG4gICAgICAgIGJlYXJpbmc6IDAsXG4gICAgICAgIGRyYWdSb3RhdGU6IGZhbHNlLFxuICAgICAgICAvLyBDbGVhciB0aGUgZ2xvYmUtb25seSB6b29tIGJvdW5kcyBzbyB0aGUgZmxhdCBtYXAgKGFuZCBhbnl0aGluZyB0aGF0XG4gICAgICAgIC8vIHJlYWRzIG1hcFN0YXRlLCBlLmcuIHZpZGVvIGV4cG9ydCkgaXMgbm90IGxlZnQgd2l0aCBnbG9iZSdzXG4gICAgICAgIC8vIG1pbi9tYXhab29tIGFmdGVyIGxlYXZpbmcgZ2xvYmUgbW9kZS4gT25seSB3aGVuIGdsb2JlIHdhcyBhY3R1YWxseSBvbi5cbiAgICAgICAgLi4uKHdhc0dsb2JlRW5hYmxlZCA/IHttaW5ab29tOiB1bmRlZmluZWQsIG1heFpvb206IHVuZGVmaW5lZH0gOiB7fSksXG4gICAgICAgIG1hcFZpZXdNb2RlXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBNYXBWaWV3TW9kZS5NT0RFXzNEOlxuICAgICAgbmV4dFN0YXRlID0ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgZ2xvYmU6IHsuLi5zdGF0ZS5nbG9iZSEsIGVuYWJsZWQ6IGZhbHNlfSxcbiAgICAgICAgcGl0Y2g6IDUwLFxuICAgICAgICBiZWFyaW5nOiAyNCxcbiAgICAgICAgZHJhZ1JvdGF0ZTogdHJ1ZSxcbiAgICAgICAgLi4uKHdhc0dsb2JlRW5hYmxlZCA/IHttaW5ab29tOiB1bmRlZmluZWQsIG1heFpvb206IHVuZGVmaW5lZH0gOiB7fSksXG4gICAgICAgIG1hcFZpZXdNb2RlXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBNYXBWaWV3TW9kZS5NT0RFX0dMT0JFOlxuICAgICAgbmV4dFN0YXRlID0ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgZ2xvYmU6IHsuLi5zdGF0ZS5nbG9iZSEsIGVuYWJsZWQ6IHRydWV9LFxuICAgICAgICBkcmFnUm90YXRlOiB0cnVlLFxuICAgICAgICBwaXRjaDogMCxcbiAgICAgICAgYmVhcmluZzogMCxcbiAgICAgICAgLy8gQWxsb3cgem9vbWluZyBvdXQgZnVydGhlciB0aGFuIHRoZSBkZWZhdWx0IHNvIHRoZSB3aG9sZSBnbG9iZSBjYW4gYmVcbiAgICAgICAgLy8gcHVsbGVkIGJhY2sgb24gc2NyZWVuLiBDYXAgdGhlIG1heCB6b29tIHNvIHRoZSBiYXNlbWFwIHRpbGVzIHN0YXlcbiAgICAgICAgLy8gY29oZXJlbnQgKHRoZXkgYnJlYWsgZG93biBhdCBoaWdoIGdsb2JlIHpvb20gaW4gZGVjay5nbCA5LngpLlxuICAgICAgICBtaW5ab29tOiBHTE9CRV9NSU5fWk9PTSxcbiAgICAgICAgbWF4Wm9vbTogR0xPQkVfTUFYX1pPT00sXG4gICAgICAgIHpvb206IE1hdGgubWluKE1hdGgubWF4KHN0YXRlLnpvb20sIEdMT0JFX01JTl9aT09NKSwgR0xPQkVfTUFYX1pPT00pLFxuICAgICAgICBtYXBWaWV3TW9kZVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cblxuICBpZiAobmV4dFN0YXRlLnNwbGl0TWFwVmlld3BvcnRzLmxlbmd0aCkge1xuICAgIG5leHRTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cyA9IG5leHRTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cy5tYXAoY3VycmVudFZpZXdwb3J0ID0+ICh7XG4gICAgICAuLi5jdXJyZW50Vmlld3BvcnQsXG4gICAgICBwaXRjaDogbmV4dFN0YXRlLnBpdGNoLFxuICAgICAgYmVhcmluZzogbmV4dFN0YXRlLmJlYXJpbmcsXG4gICAgICBkcmFnUm90YXRlOiBuZXh0U3RhdGUuZHJhZ1JvdGF0ZVxuICAgIH0pKTtcbiAgfVxuXG4gIHJldHVybiBuZXh0U3RhdGU7XG59O1xuXG4vKipcbiAqIFVwZGF0ZSBnbG9iZSBjb25maWdcbiAqIEBtZW1iZXJvZiBtYXBTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBnbG9iZUNvbmZpZ0NoYW5nZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdGF0ZSxcbiAgYWN0aW9uOiBNYXBTdGF0ZUFjdGlvbnMuR2xvYmVDb25maWdDaGFuZ2VVcGRhdGVyQWN0aW9uXG4pOiBNYXBTdGF0ZSA9PiB7XG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgZ2xvYmU6IHtcbiAgICAgIC4uLnN0YXRlLmdsb2JlISxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICAuLi5zdGF0ZS5nbG9iZSEuY29uZmlnLFxuICAgICAgICAuLi5hY3Rpb24ucGF5bG9hZFxuICAgICAgfVxuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogcmVzZXQgbWFwU3RhdGUgdG8gaW5pdGlhbCBTdGF0ZVxuICogQG1lbWJlcm9mIG1hcFN0YXRlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHJlc2V0TWFwQ29uZmlnVXBkYXRlciA9IChzdGF0ZTogTWFwU3RhdGUpOiBNYXBTdGF0ZSA9PiAoe1xuICAuLi5JTklUSUFMX01BUF9TVEFURSxcbiAgLi4uc3RhdGUuaW5pdGlhbFN0YXRlLFxuICBpbml0aWFsU3RhdGU6IHN0YXRlLmluaXRpYWxTdGF0ZVxufSk7XG5cbi8vIGNvbnNpZGVyIGNhc2Ugd2hlcmUgeW91IGhhdmUgYSBzcGxpdCBtYXAgYW5kIHVzZXIgd2FudHMgdG8gcmVzZXRcbi8qKlxuICogVXBkYXRlIGBtYXBTdGF0ZWAgdG8gcHJvcGFnYXRlIGEgbmV3IGNvbmZpZ1xuICogQG1lbWJlcm9mIG1hcFN0YXRlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHJlY2VpdmVNYXBDb25maWdVcGRhdGVyID0gKFxuICBzdGF0ZTogTWFwU3RhdGUsXG4gIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgcGF5bG9hZDoge2NvbmZpZyA9IHt9LCBvcHRpb25zID0ge30sIGJvdW5kcyA9IG51bGx9XG4gIH06IHtcbiAgICB0eXBlPzogdHlwZW9mIEFjdGlvblR5cGVzLlJFQ0VJVkVfTUFQX0NPTkZJRztcbiAgICBwYXlsb2FkOiBSZWNlaXZlTWFwQ29uZmlnUGF5bG9hZDtcbiAgfVxuKTogTWFwU3RhdGUgPT4ge1xuICAvKipcbiAgICogQHR5cGUge1BhcnRpYWw8TWFwU3RhdGU+fVxuICAgKi9cbiAgY29uc3QgbWFwU3RhdGUgPSAoY29uZmlnIHx8IHt9KS5tYXBTdGF0ZSB8fCB7fTtcbiAgLy8gbWVyZ2VkIHJlY2VpdmVkIG1hcFN0YXRlIHdpdGggcHJldmlvdXMgc3RhdGVcbiAgLy8gc3RhdGUgYWxzbyBtYXkgaW5jbHVkZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIG5ldyB0byBhbiBleGlzdGluZywgc2F2ZWQgcHJvamVjdCdzIG1hcFN0YXRlXG5cbiAgbGV0IG1lcmdlZFN0YXRlID0gZGVlcG1lcmdlPE1hcFN0YXRlPihzdGF0ZSwgbWFwU3RhdGUsIHtcbiAgICAvLyBub3RlOiBkZWVwbWVyZ2UgYnkgZGVmYXVsdCB3aWxsIG1lcmdlIGFycmF5cyBieSBjb25jYXRlbmF0aW5nIHRoZW1cbiAgICAvLyBidXQgd2UgbmVlZCB0byBvdmVyd3JpdGUgZGVzdGluYXRpb24gYXJyYXlzIHdpdGggc291cmNlIGFycmF5cywgaWYgcHJlc2VudFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9UZWhTaHJpa2UvZGVlcG1lcmdlI2FycmF5bWVyZ2UtZXhhbXBsZS1vdmVyd3JpdGUtdGFyZ2V0LWFycmF5XG4gICAgYXJyYXlNZXJnZTogKF9kZXN0aW5hdGlvbkFycmF5LCBzb3VyY2VBcnJheSkgPT4gc291cmNlQXJyYXlcbiAgfSk7XG5cbiAgLy8gaWYgY2VudGVyIG1hcFxuICAvLyBjZW50ZXIgbWFwIHdpbGwgb3ZlcnJpZGUgbWFwU3RhdGUgY29uZmlnXG4gIGlmIChvcHRpb25zLmNlbnRlck1hcCAmJiBib3VuZHMpIHtcbiAgICBtZXJnZWRTdGF0ZSA9IGZpdEJvdW5kc1VwZGF0ZXIobWVyZ2VkU3RhdGUsIHtcbiAgICAgIHBheWxvYWQ6IGJvdW5kcyxcbiAgICAgIG1ldGE6IHtwYWRkaW5nOiBvcHRpb25zLnBhZGRpbmd9XG4gICAgfSk7XG4gIH1cblxuICAvLyBtYWtlIHN1cmUgd2UgdmFsaWRhdGUgbWFwIHN0YXRlIGJlZm9yZSB3ZSBtZXJnZVxuICBtZXJnZWRTdGF0ZSA9IHZhbGlkYXRlVmlld1BvcnQobWVyZ2VkU3RhdGUpO1xuXG4gIHJldHVybiB7XG4gICAgLi4ubWVyZ2VkU3RhdGUsXG4gICAgLy8gdXBkYXRlIHdpZHRoIGlmIGBpc1NwbGl0YCBoYXMgY2hhbmdlZFxuICAgIC4uLmdldE1hcERpbUZvclNwbGl0TWFwKG1lcmdlZFN0YXRlLmlzU3BsaXQsIHN0YXRlKVxuICB9O1xufTtcblxuLyoqXG4gKiBUb2dnbGUgYmV0d2VlbiBvbmUgb3Igc3BsaXQgbWFwc1xuICogQG1lbWJlcm9mIG1hcFN0YXRlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHRvZ2dsZVNwbGl0TWFwVXBkYXRlciA9IChzdGF0ZTogTWFwU3RhdGUpOiBNYXBTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgLi4uZ2V0TWFwRGltRm9yU3BsaXRNYXAoIXN0YXRlLmlzU3BsaXQsIHN0YXRlKSxcbiAgaXNTcGxpdDogIXN0YXRlLmlzU3BsaXQsXG4gIG1hcFNwbGl0TW9kZTogIXN0YXRlLmlzU3BsaXQgPyBNYXBTcGxpdE1vZGUuRFVBTF9NQVAgOiBNYXBTcGxpdE1vZGUuU0lOR0xFX01BUCxcbiAgLi4uKCFzdGF0ZS5pc1NwbGl0ID09PSBmYWxzZVxuICAgID8ge1xuICAgICAgICAvLyBpZiB0b2dnbGluZyB0byBubyBsb25nZXIgc3BsaXQgKHNpbmdsZSBtb2RlKSB0aGVuIHJlc2V0IGEgZmV3IHByb3BlcnRpZXNcbiAgICAgICAgaXNWaWV3cG9ydFN5bmNlZDogdHJ1ZSxcbiAgICAgICAgaXNab29tTG9ja2VkOiBmYWxzZSxcbiAgICAgICAgc3BsaXRNYXBWaWV3cG9ydHM6IFtdXG4gICAgICB9XG4gICAgOiB7fSlcbn0pO1xuXG4vKipcbiAqIFNldCB0aGUgbWFwIHNwbGl0IG1vZGUgKHNpbmdsZSwgZHVhbCwgb3Igc3dpcGUpXG4gKiBAbWVtYmVyb2YgbWFwU3RhdGVVcGRhdGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0TWFwU3BsaXRNb2RlVXBkYXRlciA9IChcbiAgc3RhdGU6IE1hcFN0YXRlLFxuICBhY3Rpb246IE1hcFN0YXRlQWN0aW9ucy5TZXRNYXBTcGxpdE1vZGVVcGRhdGVyQWN0aW9uXG4pOiBNYXBTdGF0ZSA9PiB7XG4gIGNvbnN0IHttYXBTcGxpdE1vZGV9ID0gYWN0aW9uLnBheWxvYWQ7XG4gIGNvbnN0IHByZXZNb2RlID0gc3RhdGUubWFwU3BsaXRNb2RlO1xuXG4gIGlmIChtYXBTcGxpdE1vZGUgPT09IHByZXZNb2RlKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgc3dpdGNoIChtYXBTcGxpdE1vZGUpIHtcbiAgICBjYXNlIE1hcFNwbGl0TW9kZS5TSU5HTEVfTUFQOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIG1hcFNwbGl0TW9kZSxcbiAgICAgICAgaXNTcGxpdDogZmFsc2UsXG4gICAgICAgIC4uLihwcmV2TW9kZSA9PT0gTWFwU3BsaXRNb2RlLkRVQUxfTUFQICYmIHtcbiAgICAgICAgICB3aWR0aDogc3RhdGUud2lkdGggKiAyXG4gICAgICAgIH0pLFxuICAgICAgICBpc1ZpZXdwb3J0U3luY2VkOiB0cnVlLFxuICAgICAgICBpc1pvb21Mb2NrZWQ6IGZhbHNlLFxuICAgICAgICBzcGxpdE1hcFZpZXdwb3J0czogW11cbiAgICAgIH07XG4gICAgY2FzZSBNYXBTcGxpdE1vZGUuRFVBTF9NQVA6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgbWFwU3BsaXRNb2RlLFxuICAgICAgICBpc1NwbGl0OiB0cnVlLFxuICAgICAgICAuLi4ocHJldk1vZGUgPT09IE1hcFNwbGl0TW9kZS5TSU5HTEVfTUFQICYmIHtcbiAgICAgICAgICB3aWR0aDogc3RhdGUud2lkdGggLyAyXG4gICAgICAgIH0pLFxuICAgICAgICAuLi4ocHJldk1vZGUgPT09IE1hcFNwbGl0TW9kZS5TV0lQRV9DT01QQVJFICYmIHtcbiAgICAgICAgICB3aWR0aDogc3RhdGUud2lkdGggLyAyXG4gICAgICAgIH0pXG4gICAgICB9O1xuICAgIGNhc2UgTWFwU3BsaXRNb2RlLlNXSVBFX0NPTVBBUkU6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgbWFwU3BsaXRNb2RlLFxuICAgICAgICBpc1NwbGl0OiB0cnVlLFxuICAgICAgICAuLi4ocHJldk1vZGUgPT09IE1hcFNwbGl0TW9kZS5EVUFMX01BUCAmJiB7XG4gICAgICAgICAgd2lkdGg6IHN0YXRlLndpZHRoICogMlxuICAgICAgICB9KSxcbiAgICAgICAgaXNWaWV3cG9ydFN5bmNlZDogdHJ1ZSxcbiAgICAgICAgaXNab29tTG9ja2VkOiBmYWxzZSxcbiAgICAgICAgc3BsaXRNYXBWaWV3cG9ydHM6IFtdXG4gICAgICB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn07XG5cbi8qKlxuICogU2V0IHRoZSBzd2lwZSBjb21wYXJlIHBlcmNlbnRhZ2VcbiAqIEBtZW1iZXJvZiBtYXBTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRTd2lwZUNvbXBhcmVQZXJjZW50YWdlVXBkYXRlciA9IChcbiAgc3RhdGU6IE1hcFN0YXRlLFxuICBhY3Rpb246IE1hcFN0YXRlQWN0aW9ucy5TZXRTd2lwZUNvbXBhcmVQZXJjZW50YWdlVXBkYXRlckFjdGlvblxuKTogTWFwU3RhdGUgPT4ge1xuICBjb25zdCB7cGVyY2VudGFnZX0gPSBhY3Rpb24ucGF5bG9hZDtcbiAgY29uc3QgY2xhbXBlZCA9IE1hdGgubWluKDEwMCwgTWF0aC5tYXgoMCwgcGVyY2VudGFnZSkpO1xuICBpZiAoY2xhbXBlZCA9PT0gc3RhdGUuc3dpcGVDb21wYXJlUGVyY2VudGFnZSkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIHN3aXBlQ29tcGFyZVBlcmNlbnRhZ2U6IGNsYW1wZWRcbiAgfTtcbn07XG5cbi8qKlxuICogVG9nZ2xlIGJldHdlZW4gbG9ja2VkIGFuZCB1bmxvY2tlZCBzcGxpdCB2aWV3cG9ydHNcbiAqIEBtZW1iZXJvZiBtYXBTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCB0b2dnbGVTcGxpdE1hcFZpZXdwb3J0VXBkYXRlciA9IChcbiAgc3RhdGU6IE1hcFN0YXRlLFxuICBhY3Rpb246IE1hcFN0YXRlQWN0aW9ucy5Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0VXBkYXRlckFjdGlvblxuKSA9PiB7XG4gIC8vIFN3aXBlIG1vZGUgYWx3YXlzIHVzZXMgc3luY2VkIHZpZXdwb3J0c1xuICBpZiAoc3RhdGUubWFwU3BsaXRNb2RlID09PSBNYXBTcGxpdE1vZGUuU1dJUEVfQ09NUEFSRSkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIC8vIG5ldyBtYXAgc3RhdGUgaW1tZWRpYXRlbHkgZ2V0cyB0aGUgbmV3LCBvcHRpb25hbCBwYXlsb2FkIHZhbHVlcyBmb3IgaXNWaWV3cG9ydFN5bmNlZCBhbmQvb3IgaXNab29tTG9ja2VkXG4gIGNvbnN0IG5ld01hcFN0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIC4uLihhY3Rpb24ucGF5bG9hZCB8fCB7fSlcbiAgfTtcblxuICBpZiAobmV3TWFwU3RhdGUuaXNWaWV3cG9ydFN5bmNlZCkge1xuICAgIC8vIHN3aXRjaGluZyBmcm9tIHVuc3luY2VkIHRvIHN5bmNlZCB2aWV3cG9ydHNcbiAgICBuZXdNYXBTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cyA9IFtdO1xuICB9IGVsc2Uge1xuICAgIC8vIHN3aXRjaGluZyBmcm9tIHN5bmNlZCB0byB1bnN5bmNlZCB2aWV3cG9ydHNcbiAgICAvLyBvciBhbHJlYWR5IGluIHVuc3luY2VkIG1vZGUgYW5kIHRvZ2dsaW5nIGxvY2tlZCB6b29tXG5cbiAgICBpZiAoc3RhdGUuaXNab29tTG9ja2VkICYmICFuZXdNYXBTdGF0ZS5pc1pvb21Mb2NrZWQpIHtcbiAgICAgIC8vIHN3aXRjaGluZyBvZmYgbG9ja2VkIHpvb20gd2hpbGUgdW5zeW5jZWRcbiAgICAgIC8vIGRvbid0IGNvcHkgdGhlIG1hcFN0YXRlcyB0byBsZWZ0IGFuZCByaWdodCB2aWV3cG9ydHMgYmVjYXVzZSB0aGVyZSB3aWxsIGJlIHpvb20gXCJqdW1waW5nXCJcbiAgICAgIHJldHVybiBuZXdNYXBTdGF0ZTtcbiAgICB9XG5cbiAgICBpZiAoIXN0YXRlLmlzWm9vbUxvY2tlZCAmJiBuZXdNYXBTdGF0ZS5pc1pvb21Mb2NrZWQpIHtcbiAgICAgIC8vIHN3aXRjaGluZyBvbiBsb2NrZWQgem9vbSB3aGlsZSB1bnN5bmNlZFxuICAgICAgLy8gb25seSBjb3B5IHpvb20gdmlld3BvcnQgcHJvcGVydHkgZnJvbSB0aGUgbW9zdCByZWNlbnRseSBpbnRlcmFjdGVkLXdpdGggdmlld3BvcnQgdG8gdGhlIG90aGVyXG4gICAgICAvLyBUT0RPOiBkbyB3ZSB3YW50IHRvIGNoZWNrIGZvciBhIG1hdGNoIGEgZGlmZmVyZW50IHdheSwgc3VjaCBhcyBhIGNvbWJvIG9mIGBsYXRpdHVkZWAgYW5kIGBsb25naXR1ZGVgP1xuICAgICAgY29uc3QgbGFzdFVwZGF0ZWRWaWV3cG9ydEluZGV4ID0gbmV3TWFwU3RhdGUuc3BsaXRNYXBWaWV3cG9ydHMuZmluZEluZGV4KFxuICAgICAgICB2ID0+IG5ld01hcFN0YXRlLnpvb20gPT09IHYuem9vbVxuICAgICAgKTtcblxuICAgICAgY29uc3Qgc3BsaXRNYXBWaWV3cG9ydHMgPSBuZXdNYXBTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cy5tYXAoKGN1cnJlbnRWaWV3cG9ydCwgaSkgPT4ge1xuICAgICAgICBpZiAoaSA9PT0gbGFzdFVwZGF0ZWRWaWV3cG9ydEluZGV4KSB7XG4gICAgICAgICAgLy8gbm8gem9vbSB0byBtb2RpZnkgaGVyZVxuICAgICAgICAgIHJldHVybiBjdXJyZW50Vmlld3BvcnQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdGhlIG90aGVyIHZpZXdwb3J0IGdldHMgdGhlIG1vc3QgcmVjZW50bHkgaW50ZXJhY3RlZC13aXRoIHZpZXdwb3J0J3Mgem9vbVxuICAgICAgICAvLyBXSFk/IHRoZSB2aWV3cG9ydCB0aGUgdXNlciB3YXMgbGFzdCBpbnRlcmFjdGluZyB3aXRoIHdpbGwgc2V0IHpvb20gYWNyb3NzIHRoZSBib2FyZCBmb3Igc21vb3RoIFVYXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uY3VycmVudFZpZXdwb3J0LFxuICAgICAgICAgIHpvb206IG5ld01hcFN0YXRlLnNwbGl0TWFwVmlld3BvcnRzW2xhc3RVcGRhdGVkVmlld3BvcnRJbmRleF0uem9vbVxuICAgICAgICB9O1xuICAgICAgfSk7XG5cbiAgICAgIG5ld01hcFN0YXRlLnNwbGl0TWFwVmlld3BvcnRzID0gc3BsaXRNYXBWaWV3cG9ydHM7XG5cbiAgICAgIHJldHVybiBuZXdNYXBTdGF0ZTtcbiAgICB9XG5cbiAgICAvLyBpZiBjdXJyZW50IHZpZXdwb3J0IGlzIHN5bmNlZCwgYW5kIHdlIGFyZSB1bnN5bmNpbmcgaXRcbiAgICAvLyBvciBhbHJlYWR5IGluIHVuc3luY2VkIG1vZGUgYW5kIE5PVCB0b2dnbGluZyBsb2NrZWQgem9vbVxuICAgIC8vIG1ha2UgYSBmcmVzaCBjb3B5IG9mIHRoZSBjdXJyZW50IHZpZXdwb3J0IG9iamVjdCwgYXNzaWduIGl0IHRvIHNwbGl0TWFwVmlld3BvcnRzW11cbiAgICAvLyBwaWNrVmlld3BvcnRQcm9wc0Zyb21NYXBTdGF0ZSBpcyBjYWxsZWQgdHdpY2UgdG8gYXZvaWQgbWVtb3J5IGFsbG9jYXRpb24gY29uZmxpY3RzXG4gICAgY29uc3QgbGVmdFZpZXdwb3J0ID0gcGlja1ZpZXdwb3J0UHJvcHNGcm9tTWFwU3RhdGUobmV3TWFwU3RhdGUpO1xuICAgIGNvbnN0IHJpZ2h0Vmlld3BvcnQgPSBwaWNrVmlld3BvcnRQcm9wc0Zyb21NYXBTdGF0ZShuZXdNYXBTdGF0ZSk7XG4gICAgbmV3TWFwU3RhdGUuc3BsaXRNYXBWaWV3cG9ydHMgPSBbbGVmdFZpZXdwb3J0LCByaWdodFZpZXdwb3J0XTtcbiAgfVxuXG4gIC8vIHJldHVybiBuZXcgc3RhdGVcbiAgcmV0dXJuIG5ld01hcFN0YXRlO1xufTtcblxuLy8gSGVscGVyc1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1hcERpbUZvclNwbGl0TWFwKGlzU3BsaXQsIHN0YXRlKSB7XG4gIC8vIGNhc2VzOlxuICAvLyAxLiBzdGF0ZSBzcGxpdDogdHJ1ZSAtIGlzU3BsaXQ6IHRydWVcbiAgLy8gZG8gbm90aGluZ1xuICAvLyAyLiBzdGF0ZSBzcGxpdDogZmFsc2UgLSBpc1NwbGl0OiBmYWxzZVxuICAvLyBkbyBub3RoaW5nXG4gIGlmIChzdGF0ZS5pc1NwbGl0ID09PSBpc1NwbGl0KSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLy8gSW4gc3dpcGUgbW9kZSwgYm90aCBtYXBzIHVzZSBmdWxsIHdpZHRoIChvdmVybGFwcGluZyB3aXRoIGNsaXApXG4gIGlmIChzdGF0ZS5tYXBTcGxpdE1vZGUgPT09IE1hcFNwbGl0TW9kZS5TV0lQRV9DT01QQVJFKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgY29uc3Qgd2lkdGggPVxuICAgIHN0YXRlLmlzU3BsaXQgJiYgIWlzU3BsaXRcbiAgICAgID8gLy8gMy4gc3RhdGUgc3BsaXQ6IHRydWUgLSBpc1NwbGl0OiBmYWxzZVxuICAgICAgICAvLyBkb3VibGUgd2lkdGhcbiAgICAgICAgc3RhdGUud2lkdGggKiAyXG4gICAgICA6IC8vIDQuIHN0YXRlIHNwbGl0OiBmYWxzZSAtIGlzU3BsaXQ6IHRydWVcbiAgICAgICAgLy8gc3BsaXQgd2lkdGhcbiAgICAgICAgc3RhdGUud2lkdGggLyAyO1xuXG4gIHJldHVybiB7XG4gICAgd2lkdGhcbiAgfTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlVmlld3BvcnRCYXNlZE9uQm91bmRzKHN0YXRlOiBNYXBTdGF0ZSwgbmV3TWFwU3RhdGU6IE1hcFN0YXRlKSB7XG4gIC8vIEdldCB0aGUgbmV3IHZpZXdwb3J0IGJvdW5kc1xuICBjb25zdCB2aWV3cG9ydEJvdW5kcyA9IGdlb1ZpZXdwb3J0LmJvdW5kcyhcbiAgICBbbmV3TWFwU3RhdGUubG9uZ2l0dWRlLCBuZXdNYXBTdGF0ZS5sYXRpdHVkZV0sXG4gICAgbmV3TWFwU3RhdGUuem9vbSxcbiAgICBbbmV3TWFwU3RhdGUud2lkdGgsIG5ld01hcFN0YXRlLmhlaWdodF0sXG4gICAgTUFQQk9YX1RJTEVfU0laRVxuICApO1xuICAvLyBHZW5lcmF0ZSB0dXJmIFBvbHlnb24gZnJvbSBib3VuZHMgZm9yIGNvbXBhcmlzb25cbiAgY29uc3Qgdmlld3BvcnRCb3VuZHNQb2x5Z29uID0gYmJveFBvbHlnb24odmlld3BvcnRCb3VuZHMpO1xuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IG5ld1N0YXRlTWF4Qm91bmRzOiBCb3VuZHMgPSBuZXdNYXBTdGF0ZS5tYXhCb3VuZHM7XG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgbWF4Qm91bmRzUG9seWdvbiA9IGJib3hQb2x5Z29uKG5ld1N0YXRlTWF4Qm91bmRzKTtcblxuICAvLyBJZiBtYXhCb3VuZHMgaGFzIGNoYW5nZWQgcmVzZXQgdGhlIHZpZXdwb3J0IHRvIHNuYXAgdG8gYm91bmRzXG4gIGNvbnN0IGhhc01heEJvdW5kc0NoYW5nZWQgPVxuICAgICFzdGF0ZS5tYXhCb3VuZHMgfHwgIXN0YXRlLm1heEJvdW5kcy5ldmVyeSgodmFsLCBpZHgpID0+IHZhbCA9PT0gbmV3U3RhdGVNYXhCb3VuZHNbaWR4XSk7XG4gIGlmIChoYXNNYXhCb3VuZHNDaGFuZ2VkKSB7XG4gICAgLy8gQ2hlY2sgaWYgdGhlIG5ld01hcFN0YXRlIHZpZXdwb3J0IGlzIHdpdGhpbiBtYXhCb3VuZHNcbiAgICBpZiAoIWJvb2xlYW5XaXRoaW4odmlld3BvcnRCb3VuZHNQb2x5Z29uLCBtYXhCb3VuZHNQb2x5Z29uKSkge1xuICAgICAgY29uc3Qge2xhdGl0dWRlLCBsb25naXR1ZGUsIHpvb219ID0gZml0Qm91bmRzKHtcbiAgICAgICAgd2lkdGg6IG5ld01hcFN0YXRlLndpZHRoLFxuICAgICAgICBoZWlnaHQ6IG5ld01hcFN0YXRlLmhlaWdodCxcbiAgICAgICAgYm91bmRzOiBbXG4gICAgICAgICAgW25ld1N0YXRlTWF4Qm91bmRzWzBdLCBuZXdTdGF0ZU1heEJvdW5kc1sxXV0sXG4gICAgICAgICAgW25ld1N0YXRlTWF4Qm91bmRzWzJdLCBuZXdTdGF0ZU1heEJvdW5kc1szXV1cbiAgICAgICAgXVxuICAgICAgfSk7XG5cbiAgICAgIG5ld01hcFN0YXRlID0ge1xuICAgICAgICAuLi5uZXdNYXBTdGF0ZSxcbiAgICAgICAgbGF0aXR1ZGUsXG4gICAgICAgIGxvbmdpdHVkZSxcbiAgICAgICAgLy8gRm9yIG1hcmdpbmFsIG9yIGludmFsaWQgYm91bmRzLCB6b29tIG1heSBiZSBOYU4uIE1ha2Ugc3VyZSB0byBwcm92aWRlIGEgdmFsaWQgdmFsdWUgaW4gb3JkZXJcbiAgICAgICAgLy8gdG8gYXZvaWQgY29ycnVwdCBzdGF0ZSBhbmQgcG90ZW50aWFsIGNyYXNoZXMgYXMgem9vbSBpcyBleHBlY3RlZCB0byBiZSBhIG51bWJlclxuICAgICAgICAuLi4oTnVtYmVyLmlzRmluaXRlKHpvb20pID8ge3pvb219IDoge30pXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbmV3TWFwU3RhdGU7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgbmV3TWFwU3RhdGUgdmlld3BvcnQgaXMgd2l0aGluIG1heEJvdW5kc1xuICBpZiAoIWJvb2xlYW5XaXRoaW4odmlld3BvcnRCb3VuZHNQb2x5Z29uLCBtYXhCb3VuZHNQb2x5Z29uKSkge1xuICAgIG5ld01hcFN0YXRlID0ge1xuICAgICAgLi4ubmV3TWFwU3RhdGUsXG4gICAgICBsb25naXR1ZGU6IHN0YXRlLmxvbmdpdHVkZSxcbiAgICAgIGxhdGl0dWRlOiBzdGF0ZS5sYXRpdHVkZSxcbiAgICAgIHpvb206IHN0YXRlLnpvb21cbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIG5ld01hcFN0YXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGlja1ZpZXdwb3J0UHJvcHNGcm9tTWFwU3RhdGUoc3RhdGU6IE1hcFN0YXRlKTogVmlld3BvcnQge1xuICByZXR1cm4gcGljayhzdGF0ZSwgW1xuICAgICd3aWR0aCcsXG4gICAgJ2hlaWdodCcsXG4gICAgJ3pvb20nLFxuICAgICdwaXRjaCcsXG4gICAgJ2JlYXJpbmcnLFxuICAgICdsYXRpdHVkZScsXG4gICAgJ2xvbmdpdHVkZScsXG4gICAgJ2RyYWdSb3RhdGUnLFxuICAgICdtaW5ab29tJyxcbiAgICAnbWF4Wm9vbScsXG4gICAgJ21heFBpdGNoJyxcbiAgICAnbWF4Qm91bmRzJ1xuICBdKTtcbn1cblxuLyoqIFNlbGVjdCBpdGVtcyBmcm9tIG9iamVjdCB3aG9zZSB2YWx1ZSBpcyBub3QgdW5kZWZpbmVkICovXG5jb25zdCBkZWZpbmVkUHJvcHMgPSBvYmogPT5cbiAgT2JqZWN0LmVudHJpZXMob2JqKS5yZWR1Y2UoXG4gICAgKGFjY3UsIFtrLCB2XSkgPT4gKHsuLi5hY2N1LCAuLi4odiAhPT0gdW5kZWZpbmVkID8ge1trXTogdn0gOiB7fSl9KSxcbiAgICB7fVxuICApO1xuXG5mdW5jdGlvbiB1cGRhdGVWaWV3cG9ydChvcmlnaW5hbFZpZXdwb3J0OiBWaWV3cG9ydCwgdmlld3BvcnRVcGRhdGVzOiBWaWV3cG9ydCk6IFZpZXdwb3J0IHtcbiAgbGV0IG5ld1ZpZXdwb3J0ID0ge1xuICAgIC4uLm9yaWdpbmFsVmlld3BvcnQsXG4gICAgLi4uKGRlZmluZWRQcm9wcyh2aWV3cG9ydFVwZGF0ZXMpIHx8IHt9KVxuICB9O1xuXG4gIC8vIGRlY2suZ2wncyBnbG9iZSBjb250cm9sbGVyIGFwcGxpZXMgYSBsYXRpdHVkZS1kZXBlbmRlbnQgYWRqdXN0bWVudCB0byB0aGVcbiAgLy8gem9vbSByYW5nZSAoc2VlIEtlcGxlckdsb2JlVmlldy5fY29uc3RyYWluWm9vbSkuIElmIHdlIGNsYW1wIHRoZSBwcm9wYWdhdGVkXG4gIC8vIHpvb20gaGVyZSBhZ2FpbnN0IHRoZSByYXcgbWluWm9vbS9tYXhab29tICh3aXRob3V0IHRoYXQgYWRqdXN0bWVudCksIFJlZHV4XG4gIC8vIGVuZHMgdXAgZGlzYWdyZWVpbmcgd2l0aCB0aGUgY29udHJvbGxlcjogdGhlIGNvbnRyb2xsZXIgbGV0cyB0aGUgdXNlciBwdWxsXG4gIC8vIHRoZSBnbG9iZSBmdXJ0aGVyIG91dCwgYnV0IHRoaXMgY2xhbXAgc25hcHMgem9vbSBiYWNrIHRvIGBtaW5ab29tYCB3aGVuIHRoZVxuICAvLyBpbnRlcmFjdGlvbidzIGluZXJ0aWEgdHJhbnNpdGlvbiBlbmRzLiBBcHBseSB0aGUgc2FtZSBhZGp1c3RtZW50IGluIGdsb2JlXG4gIC8vIG1vZGUgc28gUmVkdXggc3RheXMgY29uc2lzdGVudCB3aXRoIHRoZSBjb250cm9sbGVyIGFuZCB0aGVyZSdzIG5vIHNuYXAtYmFjay5cbiAgY29uc3QgaXNHbG9iZSA9IChuZXdWaWV3cG9ydCBhcyBhbnkpLmdsb2JlPy5lbmFibGVkO1xuXG4gIGlmIChpc0dsb2JlKSB7XG4gICAgLy8gS2VlcCB0aGUgY2FtZXJhIHRhcmdldCB3aXRoaW4gYSBsYXRpdHVkZSBiYW5kIGFyb3VuZCB0aGUgZXF1YXRvciBzbyB0aGVcbiAgICAvLyBzdG9yZWQgdmlld3BvcnQgY2FuJ3QgYmUgY2VudGVyZWQgb24gdGhlIHBvbGVzIChtYXRjaGVzIHRoZSBnbG9iZVxuICAgIC8vIGNvbnRyb2xsZXIncyBhcHBseUNvbnN0cmFpbnRzIHNvIGdlb2NvZGVyL3Byb2dyYW1tYXRpYyB1cGRhdGVzIGFncmVlKS5cbiAgICBpZiAodHlwZW9mIG5ld1ZpZXdwb3J0LmxhdGl0dWRlID09PSAnbnVtYmVyJykge1xuICAgICAgbmV3Vmlld3BvcnQubGF0aXR1ZGUgPSBNYXRoLm1pbihcbiAgICAgICAgR0xPQkVfTUFYX0xBVElUVURFLFxuICAgICAgICBNYXRoLm1heCgtR0xPQkVfTUFYX0xBVElUVURFLCBuZXdWaWV3cG9ydC5sYXRpdHVkZSlcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHpvb21BZGp1c3RtZW50ID0gTWF0aC5sb2cyKE1hdGguY29zKCgobmV3Vmlld3BvcnQubGF0aXR1ZGUgPz8gMCkgKiBNYXRoLlBJKSAvIDE4MCkpO1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiBuZXdWaWV3cG9ydC5taW5ab29tID09PSAnbnVtYmVyJyAmJlxuICAgICAgdHlwZW9mIG5ld1ZpZXdwb3J0Lnpvb20gPT09ICdudW1iZXInICYmXG4gICAgICBuZXdWaWV3cG9ydC56b29tIDwgbmV3Vmlld3BvcnQubWluWm9vbSArIHpvb21BZGp1c3RtZW50XG4gICAgKSB7XG4gICAgICBuZXdWaWV3cG9ydC56b29tID0gbmV3Vmlld3BvcnQubWluWm9vbSArIHpvb21BZGp1c3RtZW50O1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgbmV3Vmlld3BvcnQubWF4Wm9vbSA9PT0gJ251bWJlcicgJiZcbiAgICAgIHR5cGVvZiBuZXdWaWV3cG9ydC56b29tID09PSAnbnVtYmVyJyAmJlxuICAgICAgbmV3Vmlld3BvcnQuem9vbSA+IG5ld1ZpZXdwb3J0Lm1heFpvb20gKyB6b29tQWRqdXN0bWVudFxuICAgICkge1xuICAgICAgbmV3Vmlld3BvcnQuem9vbSA9IG5ld1ZpZXdwb3J0Lm1heFpvb20gKyB6b29tQWRqdXN0bWVudDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gTWFrZSBzdXJlIHpvb20gbGV2ZWwgZG9lc24ndCBnbyBiZWxsb3cgbWluWm9vbSBpZiBkZWZpbmVkXG4gICAgaWYgKG5ld1ZpZXdwb3J0Lm1pblpvb20gJiYgbmV3Vmlld3BvcnQuem9vbSAmJiBuZXdWaWV3cG9ydC56b29tIDwgbmV3Vmlld3BvcnQubWluWm9vbSkge1xuICAgICAgbmV3Vmlld3BvcnQuem9vbSA9IG5ld1ZpZXdwb3J0Lm1pblpvb207XG4gICAgfVxuICAgIC8vIE1ha2Ugc3VyZSB6b29tIGxldmVsIGRvZXNuJ3QgZ28gYWJvdmUgbWF4Wm9vbSBpZiBkZWZpbmVkXG4gICAgaWYgKG5ld1ZpZXdwb3J0Lm1heFpvb20gJiYgbmV3Vmlld3BvcnQuem9vbSAmJiBuZXdWaWV3cG9ydC56b29tID4gbmV3Vmlld3BvcnQubWF4Wm9vbSkge1xuICAgICAgbmV3Vmlld3BvcnQuem9vbSA9IG5ld1ZpZXdwb3J0Lm1heFpvb207XG4gICAgfVxuICB9XG4gIC8vIExpbWl0IHZpZXdwb3J0IHVwZGF0ZSBiYXNlZCBvbiBtYXhCb3VuZHNcbiAgaWYgKG5ld1ZpZXdwb3J0Lm1heEJvdW5kcyAmJiB2YWxpZGF0ZUJvdW5kcyhuZXdWaWV3cG9ydC5tYXhCb3VuZHMpKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUeXBlICdWaWV3cG9ydCcgaXMgbWlzc2luZyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgZnJvbSB0eXBlICdNYXBTdGF0ZSc6IGlzU3BsaXQsIGlzVmlld3BvcnRTeW5jZWQsIGlzWm9vbUxvY2tlZCwgc3BsaXRNYXBWaWV3cG9ydHNcbiAgICBuZXdWaWV3cG9ydCA9IHVwZGF0ZVZpZXdwb3J0QmFzZWRPbkJvdW5kcyhvcmlnaW5hbFZpZXdwb3J0LCBuZXdWaWV3cG9ydCk7XG4gIH1cblxuICByZXR1cm4gbmV3Vmlld3BvcnQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBOztBQUVBLE9BQU9BLFdBQVcsTUFBTSxzQkFBc0I7QUFDOUMsU0FBUUMsYUFBYSxRQUFPLHNCQUFzQjtBQUNsRCxTQUFRQyxXQUFXLFFBQU8sb0JBQW9CO0FBQzlDLFNBQVFDLFNBQVMsUUFBTyx1QkFBdUI7QUFDL0MsT0FBT0MsU0FBUyxNQUFNLFdBQVc7QUFDakMsT0FBT0MsSUFBSSxNQUFNLHdCQUF3QjtB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QWMsR0FBRzNFLElBQUksQ0FBQzRFLElBQUksQ0FBQzVFLElBQUksQ0FBQzZFLEdBQUcsQ0FBRSxFQUFBSCxxQkFBQSxHQUFDRixXQUFXLENBQUN4SCxRQUFRLGNBQUEwSCxxQkFBQSxjQUFBQSxxQkFBQSxHQUFJLENBQUMsSUFBSTFFLElBQUksQ0FBQzhFLEVBQUUsR0FBSSxHQUFHLENBQUMsQ0FBQztJQUN6RixJQUNFLE9BQU9OLFdBQVcsQ0FBQ2xILE9BQU8sS0FBSyxRQUFRLElBQ3ZDLE9BQU9rSCxXQUFXLENBQUN0SCxJQUFJLEtBQUssUUFBUSxJQUNwQ3NILFdBQVcsQ0FBQ3RILElBQUksR0FBR3NILFdBQVcsQ0FBQ2xILE9BQU8sR0FBR3FILGNBQWMsRUFDdkQ7TUFDQUgsV0FBVyxDQUFDdEgsSUFBSSxHQUFHc0gsV0FBVyxDQUFDbEgsT0FBTyxHQUFHcUgsY0FBYztJQUN6RDtJQUNBLElBQ0UsT0FBT0gsV0FBVyxDQUFDaEgsT0FBTyxLQUFLLFFBQVEsSUFDdkMsT0FBT2dILFdBQVcsQ0FBQ3RILElBQUksS0FBSyxRQUFRLElBQ3BDc0gsV0FBVyxDQUFDdEgsSUFBSSxHQUFHc0gsV0FBVyxDQUFDaEgsT0FBTyxHQUFHbUgsY0FBYyxFQUN2RDtNQUNBSCxXQUFXLENBQUN0SCxJQUFJLEdBQUdzSCxXQUFXLENBQUNoSCxPQUFPLEdBQUdtSCxjQUFjO0lBQ3pEO0VBQ0YsQ0FBQyxNQUFNO0lBQ0w7SUFDQSxJQUFJSCxXQUFXLENBQUNsSCxPQUFPLElBQUlrSCxXQUFXLENBQUN0SCxJQUFJLElBQUlzSCxXQUFXLENBQUN0SCxJQUFJLEdBQUdzSCxXQUFXLENBQUNsSCxPQUFPLEVBQUU7TUFDckZrSCxXQUFXLENBQUN0SCxJQUFJLEdBQUdzSCxXQUFXLENBQUNsSCxPQUFPO0lBQ3hDO0lBQ0E7SUFDQSxJQUFJa0gsV0FBVyxDQUFDaEgsT0FBTyxJQUFJZ0gsV0FBVyxDQUFDdEgsSUFBSSxJQUFJc0gsV0FBVyxDQUFDdEgsSUFBSSxHQUFHc0gsV0FBVyxDQUFDaEgsT0FBTyxFQUFFO01BQ3JGZ0gsV0FBVyxDQUFDdEgsSUFBSSxHQUFHc0gsV0FBVyxDQUFDaEgsT0FBTztJQUN4QztFQUNGO0VBQ0E7RUFDQSxJQUFJZ0gsV0FBVyxDQUFDOUcsU0FBUyxJQUFJdkIsY0FBYyxDQUFDcUksV0FBVyxDQUFDOUcsU0FBUyxDQUFDLEVBQUU7SUFDbEU7SUFDQThHLFdBQVcsR0FBR3hCLDJCQUEyQixDQUFDcUIsZ0JBQWdCLEVBQUVHLFdBQVcsQ0FBQztFQUMxRTtFQUVBLE9BQU9BLFdBQVc7QUFDcEIiLCJpZ25vcmVMaXN0IjpbXX0=
700
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJnZW9WaWV3cG9ydCIsImJvb2xlYW5XaXRoaW4iLCJiYm94UG9seWdvbiIsImZpdEJvdW5kcyIsImRlZXBtZXJnZSIsInBpY2siLCJnZXRDZW50ZXJBbmRab29tRnJvbUJvdW5kcyIsInZhbGlkYXRlQm91bmRzIiwiTUFQQk9YX1RJTEVfU0laRSIsInZhbGlkYXRlVmlld1BvcnQiLCJNYXBTcGxpdE1vZGUiLCJNYXBWaWV3TW9kZSIsIkRFRkFVTFRfR0xPQkVfQ09ORklHIiwiR0xPQkVfTUlOX1pPT00iLCJHTE9CRV9NQVhfWk9PTSIsIkdMT0JFX01BWF9MQVRJVFVERSIsIm1hcFN0YXRlVXBkYXRlcnMiLCJJTklUSUFMX01BUF9TVEFURSIsInBpdGNoIiwiYmVhcmluZyIsImxhdGl0dWRlIiwibG9uZ2l0dWRlIiwiem9vbSIsImRyYWdSb3RhdGUiLCJ3aWR0aCIsImhlaWdodCIsIm1pblpvb20iLCJ1bmRlZmluZWQiLCJtYXhab29tIiwibWF4UGl0Y2giLCJtYXhCb3VuZHMiLCJpc1NwbGl0IiwiaXNWaWV3cG9ydFN5bmNlZCIsImlzWm9vbUxvY2tlZCIsInNwbGl0TWFwVmlld3BvcnRzIiwibWFwVmlld01vZGUiLCJNT0RFXzJEIiwiZ2xvYmUiLCJlbmFibGVkIiwiY29uZmlnIiwibWFwU3BsaXRNb2RlIiwiU0lOR0xFX01BUCIsInN3aXBlQ29tcGFyZVBlcmNlbnRhZ2UiLCJ1cGRhdGVNYXBVcGRhdGVyIiwic3RhdGUiLCJhY3Rpb24iLCJfYWN0aW9uJHBheWxvYWQiLCJwYXlsb2FkIiwiaW5wdXRWaWV3cG9ydCIsInZpZXdwb3J0IiwiX2FjdGlvbiRwYXlsb2FkJG1hcEluIiwibWFwSW5kZXgiLCJ1cGRhdGVWaWV3cG9ydCIsIm90aGVyVmlld3BvcnRNYXBJbmRleCIsIm1hcCIsImN1cnJlbnRWaWV3cG9ydCIsImkiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsIl9vYmplY3RTcHJlYWQiLCJBUFBMWV9NQVBfU1RBVEVfVklFV1BPUlRfS0VZUyIsImFwcGx5TWFwU3RhdGVVcGRhdGVyIiwiX2FjdGlvbiRtZXRhJG1hcEluZGV4IiwiX2FjdGlvbiRtZXRhIiwibmV4dCIsIm1ldGEiLCJuZXh0Q29uZmlnIiwiQXJyYXkiLCJpc0FycmF5IiwiX3N0YXRlJHNwbGl0TWFwVmlld3BvIiwiX3N0YXRlJHNwbGl0TWFwVmlld3BvMiIsIl9zdGF0ZSRzcGxpdE1hcFZpZXdwbzMiLCJfc3RhdGUkc3BsaXRNYXBWaWV3cG80IiwibWVyZ2VkU3RhdGUiLCJhcnJheU1lcmdlIiwiX2Rlc3RpbmF0aW9uQXJyYXkiLCJzb3VyY2VBcnJheSIsImFwcGxpZWQiLCJsZW5ndGgiLCJPYmplY3QiLCJrZXlzIiwiZml0Qm91bmRzVXBkYXRlciIsIl9hY3Rpb24kbWV0YTIiLCJfc3RhdGUkZ2xvYmUiLCJjZW50ZXJBbmRab29tIiwicGFkZGluZyIsImlzR2xvYmVNb2RlIiwiQm9vbGVhbiIsIk1hdGgiLCJtaW4iLCJtYXgiLCJuZXdTdGF0ZSIsImNlbnRlciIsInRvZ2dsZVBlcnNwZWN0aXZlVXBkYXRlciIsIl9zdGF0ZSRnbG9iZTIiLCJ3YXNHbG9iZUVuYWJsZWQiLCJNT0RFXzNEIiwic2V0TWFwVmlld01vZGVVcGRhdGVyIiwiX3N0YXRlJGdsb2JlMyIsIm5leHRTdGF0ZSIsIk1PREVfR0xPQkUiLCJnbG9iZUNvbmZpZ0NoYW5nZVVwZGF0ZXIiLCJyZXNldE1hcENvbmZpZ1VwZGF0ZXIiLCJpbml0aWFsU3RhdGUiLCJyZWNlaXZlTWFwQ29uZmlnVXBkYXRlciIsIl9yZWYiLCJfcmVmJHBheWxvYWQiLCJfcmVmJHBheWxvYWQkY29uZmlnIiwiX3JlZiRwYXlsb2FkJG9wdGlvbnMiLCJvcHRpb25zIiwiX3JlZiRwYXlsb2FkJGJvdW5kcyIsImJvdW5kcyIsIm1hcFN0YXRlIiwiY2VudGVyTWFwIiwiZ2V0TWFwRGltRm9yU3BsaXRNYXAiLCJ0b2dnbGVTcGxpdE1hcFVwZGF0ZXIiLCJEVUFMX01BUCIsInNldE1hcFNwbGl0TW9kZVVwZGF0ZXIiLCJwcmV2TW9kZSIsIlNXSVBFX0NPTVBBUkUiLCJzZXRTd2lwZUNvbXBhcmVQZXJjZW50YWdlVXBkYXRlciIsInBlcmNlbnRhZ2UiLCJjbGFtcGVkIiwidG9nZ2xlU3BsaXRNYXBWaWV3cG9ydFVwZGF0ZXIiLCJuZXdNYXBTdGF0ZSIsImxhc3RVcGRhdGVkVmlld3BvcnRJbmRleCIsImZpbmRJbmRleCIsInYiLCJsZWZ0Vmlld3BvcnQiLCJwaWNrVmlld3BvcnRQcm9wc0Zyb21NYXBTdGF0ZSIsInJpZ2h0Vmlld3BvcnQiLCJ1cGRhdGVWaWV3cG9ydEJhc2VkT25Cb3VuZHMiLCJ2aWV3cG9ydEJvdW5kcyIsInZpZXdwb3J0Qm91bmRzUG9seWdvbiIsIm5ld1N0YXRlTWF4Qm91bmRzIiwibWF4Qm91bmRzUG9seWdvbiIsImhhc01heEJvdW5kc0NoYW5nZWQiLCJldmVyeSIsInZhbCIsImlkeCIsIl9maXRCb3VuZHMiLCJkZWZpbmVkUHJvcHMiLCJvYmoiLCJlbnRyaWVzIiwicmVkdWNlIiwiYWNjdSIsIl9yZWYyIiwiX3JlZjMiLCJfc2xpY2VkVG9BcnJheSIsImsiLCJfZGVmaW5lUHJvcGVydHkiLCJvcmlnaW5hbFZpZXdwb3J0Iiwidmlld3BvcnRVcGRhdGVzIiwiX2dsb2JlIiwibmV3Vmlld3BvcnQiLCJpc0dsb2JlIiwiX25ld1ZpZXdwb3J0JGxhdGl0dWRlIiwiem9vbUFkanVzdG1lbnQiLCJsb2cyIiwiY29zIiwiUEkiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFwLXN0YXRlLXVwZGF0ZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBnZW9WaWV3cG9ydCBmcm9tICdAbWFwYm94L2dlby12aWV3cG9ydCc7XG5pbXBvcnQge2Jvb2xlYW5XaXRoaW59IGZyb20gJ0B0dXJmL2Jvb2xlYW4td2l0aGluJztcbmltcG9ydCB7YmJveFBvbHlnb259IGZyb20gJ0B0dXJmL2Jib3gtcG9seWdvbic7XG5pbXBvcnQge2ZpdEJvdW5kc30gZnJvbSAnQG1hdGguZ2wvd2ViLW1lcmNhdG9yJztcbmltcG9ydCBkZWVwbWVyZ2UgZnJvbSAnZGVlcG1lcmdlJztcbmltcG9ydCBwaWNrIGZyb20gJ2VzLXRvb2xraXQvY29tcGF0L3BpY2snO1xuXG5pbXBvcnQge1xuICBnZXRDZW50ZXJBbmRab29tRnJvbUJvdW5kcyxcbiAgdmFsaWRhdGVCb3VuZHMsXG4gIE1BUEJPWF9USUxFX1NJWkUsXG4gIHZhbGlkYXRlVmlld1BvcnRcbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge01hcFN0YXRlQWN0aW9ucywgUmVjZWl2ZU1hcENvbmZpZ1BheWxvYWQsIEFjdGlvblR5cGVzfSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtNYXBTdGF0ZSwgQm91bmRzLCBWaWV3cG9ydH0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1xuICBNYXBTcGxpdE1vZGUsXG4gIE1hcFZpZXdNb2RlLFxuICBERUZBVUxUX0dMT0JFX0NPTkZJRyxcbiAgR0xPQkVfTUlOX1pPT00sXG4gIEdMT0JFX01BWF9aT09NLFxuICBHTE9CRV9NQVhfTEFUSVRVREVcbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG4vKipcbiAqIFVwZGF0ZXJzIGZvciBgbWFwU3RhdGVgIHJlZHVjZXIuIENhbiBiZSB1c2VkIGluIHlvdXIgcm9vdCByZWR1Y2VyIHRvIGRpcmVjdGx5IG1vZGlmeSBrZXBsZXIuZ2wncyBzdGF0ZS5cbiAqIFJlYWQgbW9yZSBhYm91dCBbVXNpbmcgdXBkYXRlcnNdKC4uL2FkdmFuY2VkLXVzYWdlL3VzaW5nLXVwZGF0ZXJzLm1kKVxuICogQHB1YmxpY1xuICogQGV4YW1wbGVcbiAqXG4gKiBpbXBvcnQga2VwbGVyR2xSZWR1Y2VyLCB7bWFwU3RhdGVVcGRhdGVyc30gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG4gKiAvLyBSb290IFJlZHVjZXJcbiAqIGNvbnN0IHJlZHVjZXJzID0gY29tYmluZVJlZHVjZXJzKHtcbiAqICBrZXBsZXJHbDoga2VwbGVyR2xSZWR1Y2VyLFxuICogIGFwcDogYXBwUmVkdWNlclxuICogfSk7XG4gKlxuICogY29uc3QgY29tcG9zZWRSZWR1Y2VyID0gKHN0YXRlLCBhY3Rpb24pID0+IHtcbiAqICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gKiAgICAvLyBjbGljayBidXR0b24gdG8gY2xvc2Ugc2lkZSBwYW5lbFxuICogICAgY2FzZSAnQ0xJQ0tfQlVUVE9OJzpcbiAqICAgICAgcmV0dXJuIHtcbiAqICAgICAgICAuLi5zdGF0ZSxcbiAqICAgICAgICBrZXBsZXJHbDoge1xuICogICAgICAgICAgLi4uc3RhdGUua2VwbGVyR2wsXG4gKiAgICAgICAgICBmb286IHtcbiAqICAgICAgICAgICAgIC4uLnN0YXRlLmtlcGxlckdsLmZvbyxcbiAqICAgICAgICAgICAgIG1hcFN0YXRlOiBtYXBTdGF0ZVVwZGF0ZXJzLmZpdEJvdW5kc1VwZGF0ZXIoXG4gKiAgICAgICAgICAgICAgIG1hcFN0YXRlLCB7cGF5bG9hZDogWzEyNy4zNCwgMzEuMDksIDEyNy41NiwgMzEuNTldXX1cbiAqICAgICAgICAgICAgIClcbiAqICAgICAgICAgIH1cbiAqICAgICAgICB9XG4gKiAgICAgIH07XG4gKiAgfVxuICogIHJldHVybiByZWR1Y2VycyhzdGF0ZSwgYWN0aW9uKTtcbiAqIH07XG4gKlxuICogZXhwb3J0IGRlZmF1bHQgY29tcG9zZWRSZWR1Y2VyO1xuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuLy8gQHRzLWlnbm9yZVxuY29uc3QgbWFwU3RhdGVVcGRhdGVycyA9IG51bGw7XG4vKiBlc2xpbnQtZW5hYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFycyAqL1xuLyoqXG4gKiBEZWZhdWx0IGluaXRpYWwgYG1hcFN0YXRlYFxuICogQG1lbWJlcm9mIG1hcFN0YXRlVXBkYXRlcnNcbiAqIEBjb25zdGFudFxuICogQHByb3BlcnR5IHBpdGNoIERlZmF1bHQ6IGAwYFxuICogQHByb3BlcnR5IGJlYXJpbmcgRGVmYXVsdDogYDBgXG4gKiBAcHJvcGVydHkgbGF0aXR1ZGUgRGVmYXVsdDogYDM3Ljc1MDQzYFxuICogQHByb3BlcnR5IGxvbmdpdHVkZSBEZWZhdWx0OiBgLTEyMi4zNDY3OWBcbiAqIEBwcm9wZXJ0eSB6b29tIERlZmF1bHQ6IGA5YFxuICogQHByb3BlcnR5IGRyYWdSb3RhdGUgRGVmYXVsdDogYGZhbHNlYFxuICogQHByb3BlcnR5IHdpZHRoIERlZmF1bHQ6IGA4MDBgXG4gKiBAcHJvcGVydHkgaGVpZ2h0IERlZmF1bHQ6IGA4MDBgXG4gKiBAcHJvcGVydHkgbWluWm9vbTogYHVuZGVmaW5lZGAsXG4gKiBAcHJvcGVydHkgbWF4Wm9vbTogYHVuZGVmaW5lZGAsXG4gKiBAcHJvcGVydHkgbWF4UGl0Y2g6IGB1bmRlZmluZWRgIChkZWZhdWx0cyB0byBhcHBsaWNhdGlvbiBjb25maWcgdmFsdWUsIGRlY2suZ2wgZGVmYXVsdCBpcyA2MClcbiAqIEBwcm9wZXJ0eSBtYXhCb3VuZHM6IGB1bmRlZmluZWRgLFxuICogQHByb3BlcnR5IGlzU3BsaXQ6IGBmYWxzZWAsXG4gKiBAcHJvcGVydHkgaXNWaWV3cG9ydFN5bmNlZDogYHRydWVgLFxuICogQHByb3BlcnR5IGlzWm9vbUxvY2tlZDogYGZhbHNlYCxcbiAqIEBwcm9wZXJ0eSBzcGxpdE1hcFZpZXdwb3J0czogYFtdYFxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgSU5JVElBTF9NQVBfU1RBVEU6IE1hcFN0YXRlID0ge1xuICBwaXRjaDogMCxcbiAgYmVhcmluZzogMCxcbiAgbGF0aXR1ZGU6IDM3Ljc1MDQzLFxuICBsb25naXR1ZGU6IC0xMjIuMzQ2NzksXG4gIHpvb206IDksXG4gIGRyYWdSb3RhdGU6IGZhbHNlLFxuICB3aWR0aDogODAwLFxuICBoZWlnaHQ6IDgwMCxcbiAgbWluWm9vbTogdW5kZWZpbmVkLFxuICBtYXhab29tOiB1bmRlZmluZWQsXG4gIG1heFBpdGNoOiB1bmRlZmluZWQsXG4gIG1heEJvdW5kczogdW5kZWZpbmVkLFxuICBpc1NwbGl0OiBmYWxzZSxcbiAgaXNWaWV3cG9ydFN5bmNlZDogdHJ1ZSxcbiAgaXNab29tTG9ja2VkOiBmYWxzZSxcbiAgc3BsaXRNYXBWaWV3cG9ydHM6IFtdLFxuICBtYXBWaWV3TW9kZTogTWFwVmlld01vZGUuTU9ERV8yRCxcbiAgZ2xvYmU6IHtcbiAgICBlbmFibGVkOiBmYWxzZSxcbiAgICBjb25maWc6IERFRkFVTFRfR0xPQkVfQ09ORklHXG4gIH0sXG4gIG1hcFNwbGl0TW9kZTogTWFwU3BsaXRNb2RlLlNJTkdMRV9NQVAsXG4gIHN3aXBlQ29tcGFyZVBlcmNlbnRhZ2U6IDUwXG59O1xuXG4vKiBVcGRhdGVycyAqL1xuLyoqXG4gKiBVcGRhdGUgbWFwIHZpZXdwb3J0XG4gKiBAbWVtYmVyb2YgbWFwU3RhdGVVcGRhdGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgdXBkYXRlTWFwVXBkYXRlciA9IChcbiAgc3RhdGU6IE1hcFN0YXRlLFxuICBhY3Rpb246IE1hcFN0YXRlQWN0aW9ucy5VcGRhdGVNYXBVcGRhdGVyQWN0aW9uXG4pOiBNYXBTdGF0ZSA9PiB7XG4gIGNvbnN0IHt2aWV3cG9ydDogaW5wdXRWaWV3cG9ydCwgbWFwSW5kZXggPSAwfSA9IGFjdGlvbi5wYXlsb2FkO1xuICBjb25zdCB2aWV3cG9ydCA9IHZhbGlkYXRlVmlld1BvcnQoaW5wdXRWaWV3cG9ydCk7XG5cbiAgaWYgKHN0YXRlLmlzVmlld3BvcnRTeW5jZWQpIHtcbiAgICAvLyBUaGUgYHVwZGF0ZVZpZXdwb3J0YCBmdW5jdGlvbiBpcyB0eXBlZCBhcyAoVmlld3BvcnQsIFZpZXdwb3J0KSAtPiBWaWV3cG9ydCBidXQgaGVyZSB0aGVcbiAgICAvLyBleHBlY3RlZCB0eXBpbmcgaXMgKE1hcFN0YXRlLCBWaWV3cG9ydCkgLT4gTWFwU3RhdGUuXG4gICAgLy8gdGhpcyBjb3VsZCBiZSBhIHBvdGVudGlhbCBidWcgYXMgd2UgdHJlYXQgVmlld3BvcnQgYW5kIE1hcFN0YXRlIGFzIGVxdWFsIHNlZW1pbmdseVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVHlwZSAnVmlld3BvcnQnIGlzIG1pc3NpbmcgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzIGZyb20gdHlwZSAnTWFwU3RhdGUnOiBpc1NwbGl0LCBpc1ZpZXdwb3J0U3luY2VkLCBpc1pvb21Mb2NrZWQsIHNwbGl0TWFwVmlld3BvcnRzXG4gICAgcmV0dXJuIHVwZGF0ZVZpZXdwb3J0KHN0YXRlLCB2aWV3cG9ydCk7XG4gIH1cblxuICBsZXQgb3RoZXJWaWV3cG9ydE1hcEluZGV4ID0gLTE7XG4gIGNvbnN0IHNwbGl0TWFwVmlld3BvcnRzID0gc3RhdGUuc3BsaXRNYXBWaWV3cG9ydHMubWFwKChjdXJyZW50Vmlld3BvcnQsIGkpID0+IHtcbiAgICBpZiAoaSA9PT0gbWFwSW5kZXgpIHtcbiAgICAgIC8vIHVwZGF0ZSB0aGUgbWF0Y2hpbmcgdmlld3BvcnQgd2l0aCB0aGUgbmV3Vmlld3BvcnQgaW5mbyBpbiB0aGUgYWN0aW9uIHBheWxvYWRcbiAgICAgIHJldHVybiB1cGRhdGVWaWV3cG9ydChjdXJyZW50Vmlld3BvcnQsIHZpZXdwb3J0KTtcbiAgICB9XG5cbiAgICBvdGhlclZpZXdwb3J0TWFwSW5kZXggPSBpO1xuICAgIC8vIG1ha2Ugbm8gY2hhbmdlcyB0byB0aGUgb3RoZXIgdmlld3BvcnQgKHlldClcbiAgICByZXR1cm4gY3VycmVudFZpZXdwb3J0O1xuICB9KTtcblxuICAvLyBtYWtlIGNvbmRpdGlvbmFsIHVwZGF0ZXMgdG8gdGhlIG90aGVyIHZpZXdwb3J0IG5vdCBtYXRjaGluZyB0aGlzIHBheWxvYWQncyBgbWFwSW5kZXhgXG4gIGlmIChOdW1iZXIuaXNGaW5pdGUob3RoZXJWaWV3cG9ydE1hcEluZGV4KSAmJiBvdGhlclZpZXdwb3J0TWFwSW5kZXggPiAtMSkge1xuICAgIC8vIHdpZHRoIGFuZCBoZWlnaHQgYXJlIGEgc3BlY2lhbCBjYXNlIGFuZCBhcmUgYWx3YXlzIHVwZGF0ZWRcbiAgICBzcGxpdE1hcFZpZXdwb3J0c1tvdGhlclZpZXdwb3J0TWFwSW5kZXhdID0ge1xuICAgICAgLi4uc3BsaXRNYXBWaWV3cG9ydHNbb3RoZXJWaWV3cG9ydE1hcEluZGV4XSxcbiAgICAgIHdpZHRoOiBzcGxpdE1hcFZpZXdwb3J0c1ttYXBJbmRleF0ud2lkdGgsXG4gICAgICBoZWlnaHQ6IHNwbGl0TWFwVmlld3BvcnRzW21hcEluZGV4XS5oZWlnaHRcbiAgICB9O1xuXG4gICAgaWYgKHN0YXRlLmlzWm9vbUxvY2tlZCkge1xuICAgICAgLy8gdXBkYXRlIHRoZSBvdGhlciB2aWV3cG9ydCB3aXRoIHRoZSBuZXcgem9vbSBmcm9tIHRoZSBzcGxpdCB2aWV3cG9ydCB0aGF0IHdhcyB1cGRhdGVkIHdpdGggdGhpcyBwYXlsb2FkJ3MgYG1hcEluZGV4YFxuICAgICAgc3BsaXRNYXBWaWV3cG9ydHNbb3RoZXJWaWV3cG9ydE1hcEluZGV4XSA9IHtcbiAgICAgICAgLi4uc3BsaXRNYXBWaWV3cG9ydHNbb3RoZXJWaWV3cG9ydE1hcEluZGV4XSxcbiAgICAgICAgem9vbTogc3BsaXRNYXBWaWV3cG9ydHNbbWFwSW5kZXhdLnpvb21cbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAvLyB1cGRhdGUgdGhlIHRvcC1sZXZlbCBtYXBTdGF0ZSB2aWV3cG9ydCB3aXRoIHRoZSBtb3N0IHJlY2VudGx5IGludGVyYWN0ZWQtd2l0aCBzcGxpdCB2aWV3cG9ydFxuICAgIC8vIFdIWT8gdGhpcyBhdm9pZHMgem9vbSBhbmQgYm91bmRzIFwianVtcGluZ1wiIGR1ZSB0byBhIFwic3RhbGVcIiB0b3AtbGV2ZWwgbWFwU3RhdGUgdmlld3BvcnQgd2hlbjpcbiAgICAvLyAgMS4gdG9nZ2xpbmcgb2ZmIHRoZSB1bnN5bmNlZCB2aWV3cG9ydHMgbW9kZSB0byBzd2l0Y2ggdG8gdGhlIHN5bmNlZCB2aWV3cG9ydHMgbW9kZVxuICAgIC8vICAyLiB0b2dnbGluZyBvbiB0aGUgem9vbSBsb2NrIGR1cmluZyBhbiB1bnN5bmNlZCB2aWV3cG9ydHMgbW9kZVxuICAgIC4uLnN0YXRlLFxuICAgIC4uLnNwbGl0TWFwVmlld3BvcnRzW21hcEluZGV4XSxcbiAgICAvLyB1cGRhdGUgdGhlIG1hcFN0YXRlIHdpdGggdGhlIG5ldyBhcnJheSBvZiBzcGxpdCB2aWV3cG9ydHNcbiAgICBzcGxpdE1hcFZpZXdwb3J0c1xuICB9O1xufTtcblxuLyoqXG4gKiBBcHBseSBhIHBhcnRpYWwgbWFwIHN0YXRlIGZyb20gdGhlIHZpZXdwb3J0IEpTT04gZWRpdG9yLlxuICogUHJlc2VydmVzIGN1cnJlbnQgd2lkdGgvaGVpZ2h0IHNvIHNhdmVkIEpTT04gY2Fubm90IHJlc2l6ZSB0aGUgbWFwIGNvbnRhaW5lcixcbiAqIGluY2x1ZGluZyBuZXN0ZWQgc3BsaXQtbWFwIHZpZXdwb3J0cy4gV2hlbiB2aWV3cG9ydHMgYXJlIHVuc3luY2VkLCBjYW1lcmFcbiAqIGZpZWxkcyBhcmUgYXBwbGllZCB0byB0aGUgb3BlbmVkIG1hcCBwYW5lIChgbWFwSW5kZXhgKSwgbWF0Y2hpbmcgYHVwZGF0ZU1hcGAuXG4gKiBAbWVtYmVyb2YgbWFwU3RhdGVVcGRhdGVyc1xuICogQHB1YmxpY1xuICovXG5jb25zdCBBUFBMWV9NQVBfU1RBVEVfVklFV1BPUlRfS0VZUzogKGtleW9mIFZpZXdwb3J0KVtdID0gW1xuICAnbGF0aXR1ZGUnLFxuICAnbG9uZ2l0dWRlJyxcbiAgJ3pvb20nLFxuICAncGl0Y2gnLFxuICAnYmVhcmluZycsXG4gICdkcmFnUm90YXRlJyxcbiAgJ21pblpvb20nLFxuICAnbWF4Wm9vbScsXG4gICdtYXhQaXRjaCdcbl07XG5cbmV4cG9ydCBjb25zdCBhcHBseU1hcFN0YXRlVXBkYXRlciA9IChcbiAgc3RhdGU6IE1hcFN0YXRlLFxuICBhY3Rpb246IE1hcFN0YXRlQWN0aW9ucy5BcHBseU1hcFN0YXRlVXBkYXRlckFjdGlvblxuKTogTWFwU3RhdGUgPT4ge1xuICBjb25zdCBuZXh0ID0gYWN0aW9uLnBheWxvYWQgfHwge307XG4gIGNvbnN0IG1hcEluZGV4ID0gYWN0aW9uLm1ldGE/Lm1hcEluZGV4ID8/IDA7XG4gIGNvbnN0IHt3aWR0aCwgaGVpZ2h0fSA9IHN0YXRlO1xuXG4gIGNvbnN0IG5leHRDb25maWc6IFBhcnRpYWw8TWFwU3RhdGU+ID0gey4uLm5leHR9O1xuICBkZWxldGUgbmV4dENvbmZpZy53aWR0aDtcbiAgZGVsZXRlIG5leHRDb25maWcuaGVpZ2h0O1xuICBpZiAoQXJyYXkuaXNBcnJheShuZXh0LnNwbGl0TWFwVmlld3BvcnRzKSkge1xuICAgIG5leHRDb25maWcuc3BsaXRNYXBWaWV3cG9ydHMgPSBuZXh0LnNwbGl0TWFwVmlld3BvcnRzLm1hcCgodmlld3BvcnQsIGkpID0+ICh7XG4gICAgICAuLi52aWV3cG9ydCxcbiAgICAgIHdpZHRoOiBzdGF0ZS5zcGxpdE1hcFZpZXdwb3J0c1tpXT8ud2lkdGggPz8gd2lkdGgsXG4gICAgICBoZWlnaHQ6IHN0YXRlLnNwbGl0TWFwVmlld3BvcnRzW2ldPy5oZWlnaHQgPz8gaGVpZ2h0XG4gICAgfSkpO1xuICB9XG5cbiAgY29uc3QgbWVyZ2VkU3RhdGUgPSBkZWVwbWVyZ2U8TWFwU3RhdGU+KHN0YXRlLCBuZXh0Q29uZmlnLCB7XG4gICAgYXJyYXlNZXJnZTogKF9kZXN0aW5hdGlvbkFycmF5LCBzb3VyY2VBcnJheSkgPT4gc291cmNlQXJyYXlcbiAgfSk7XG4gIGNvbnN0IGFwcGxpZWQgPSB2YWxpZGF0ZVZpZXdQb3J0KHtcbiAgICAuLi5tZXJnZWRTdGF0ZSxcbiAgICB3aWR0aCxcbiAgICBoZWlnaHRcbiAgfSk7XG5cbiAgaWYgKCFzdGF0ZS5pc1ZpZXdwb3J0U3luY2VkICYmIHN0YXRlLnNwbGl0TWFwVmlld3BvcnRzLmxlbmd0aCkge1xuICAgIGNvbnN0IHZpZXdwb3J0ID0gcGljayhuZXh0LCBBUFBMWV9NQVBfU1RBVEVfVklFV1BPUlRfS0VZUyk7XG4gICAgaWYgKE9iamVjdC5rZXlzKHZpZXdwb3J0KS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiB1cGRhdGVNYXBVcGRhdGVyKGFwcGxpZWQsIHtcbiAgICAgICAgcGF5bG9hZDoge3ZpZXdwb3J0LCBtYXBJbmRleH1cbiAgICAgIH0gYXMgTWFwU3RhdGVBY3Rpb25zLlVwZGF0ZU1hcFVwZGF0ZXJBY3Rpb24pO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBhcHBsaWVkO1xufTtcblxuLyoqXG4gKiBGaXQgbWFwIHZpZXdwb3J0IHRvIGJvdW5kc1xuICogQG1lbWJlcm9mIG1hcFN0YXRlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGZpdEJvdW5kc1VwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdGF0ZSxcbiAgYWN0aW9uOiBNYXBTdGF0ZUFjdGlvbnMuRml0Qm91bmRzVXBkYXRlckFjdGlvblxuKTogTWFwU3RhdGUgPT4ge1xuICBjb25zdCBjZW50ZXJBbmRab29tID0gZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMoYWN0aW9uLnBheWxvYWQsIHtcbiAgICB3aWR0aDogc3RhdGUud2lkdGgsXG4gICAgaGVpZ2h0OiBzdGF0ZS5oZWlnaHQsXG4gICAgcGFkZGluZzogYWN0aW9uLm1ldGE/LnBhZGRpbmdcbiAgfSk7XG4gIGlmICghY2VudGVyQW5kWm9vbSkge1xuICAgIC8vIGJvdW5kcyBpcyBpbnZhbGlkXG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgLy8gSW4gZ2xvYmUgbW9kZSwgY2xhbXAgem9vbSB0byBnbG9iZSdzIGFsbG93ZWQgcmFuZ2VcbiAgY29uc3QgaXNHbG9iZU1vZGUgPSBCb29sZWFuKHN0YXRlLmdsb2JlPy5lbmFibGVkKTtcbiAgY29uc3Qgem9vbSA9IE51bWJlci5pc0Zpbml0ZShjZW50ZXJBbmRab29tLnpvb20pXG4gICAgPyBpc0dsb2JlTW9kZVxuICAgICAgPyBNYXRoLm1pbihNYXRoLm1heChjZW50ZXJBbmRab29tLnpvb20sIEdMT0JFX01JTl9aT09NKSwgR0xPQkVfTUFYX1pPT00pXG4gICAgICA6IGNlbnRlckFuZFpvb20uem9vbVxuICAgIDogdW5kZWZpbmVkO1xuXG4gIGNvbnN0IG5ld1N0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIGxhdGl0dWRlOiBjZW50ZXJBbmRab29tLmNlbnRlclsxXSxcbiAgICBsb25naXR1ZGU6IGNlbnRlckFuZFpvb20uY2VudGVyWzBdLFxuICAgIC8vIEZvciBtYXJnaW5hbCBvciBpbnZhbGlkIGJvdW5kcywgem9vbSBtYXkgYmUgTmFOLiBNYWtlIHN1cmUgdG8gcHJvdmlkZSBhIHZhbGlkIHZhbHVlIGluIG9yZGVyXG4gICAgLy8gdG8gYXZvaWQgY29ycnVwdCBzdGF0ZSBhbmQgcG90ZW50aWFsIGNyYXNoZXMgYXMgem9vbSBpcyBleHBlY3RlZCB0byBiZSBhIG51bWJlclxuICAgIC4uLih6b29tICE9PSB1bmRlZmluZWQgPyB7em9vbX0gOiB7fSlcbiAgfTtcblxuICAvLyBpZiBmaXR0aW5nIHRvIGJvdW5kcyB3aGlsZSBzcGxpdCBhbmQgdW5zeW5jZWRcbiAgLy8gY29weSB0aGUgbmV3IGxhdGl0dWRlLCBsb25naXR1ZGUsIGFuZCB6b29tIHZhbHVlcyB0byBlYWNoIHNwbGl0IHZpZXdwb3J0XG4gIGlmIChuZXdTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cy5sZW5ndGgpIHtcbiAgICBuZXdTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cyA9IG5ld1N0YXRlLnNwbGl0TWFwVmlld3BvcnRzLm1hcChjdXJyZW50Vmlld3BvcnQgPT4gKHtcbiAgICAgIC4uLmN1cnJlbnRWaWV3cG9ydCxcbiAgICAgIGxhdGl0dWRlOiBuZXdTdGF0ZS5sYXRpdHVkZSxcbiAgICAgIGxvbmdpdHVkZTogbmV3U3RhdGUubG9uZ2l0dWRlLFxuICAgICAgem9vbTogbmV3U3RhdGUuem9vbVxuICAgIH0pKTtcbiAgfVxuXG4gIHJldHVybiBuZXdTdGF0ZTtcbn07XG5cbi8qKlxuICogVG9nZ2xlIGJldHdlZW4gM2QgYW5kIDJkIG1hcC5cbiAqIEBtZW1iZXJvZiBtYXBTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCB0b2dnbGVQZXJzcGVjdGl2ZVVwZGF0ZXIgPSAoc3RhdGU6IE1hcFN0YXRlKTogTWFwU3RhdGUgPT4ge1xuICAvLyBPbmx5IGRyb3AgbWluL21heFpvb20gd2hlbiB3ZSdyZSBhY3R1YWxseSBsZWF2aW5nIGdsb2JlIG1vZGUsIHdoZXJlIHRob3NlXG4gIC8vIGJvdW5kcyBhcmUgc2V0IHRvIGdsb2JlLW9ubHkgdmFsdWVzLiBJZiBnbG9iZSB3YXMgbmV2ZXIgZW5hYmxlZCB0aGVzZSBhcmVcbiAgLy8gdGhlIGFwcCdzIG93biBjdXN0b20gYm91bmRzIGFuZCBtdXN0IGJlIHByZXNlcnZlZC5cbiAgY29uc3Qgd2FzR2xvYmVFbmFibGVkID0gQm9vbGVhbihzdGF0ZS5nbG9iZT8uZW5hYmxlZCk7XG5cbiAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgLi4uc3RhdGUsXG4gICAgLi4ue1xuICAgICAgcGl0Y2g6IHN0YXRlLmRyYWdSb3RhdGUgPyAwIDogNTAsXG4gICAgICBiZWFyaW5nOiBzdGF0ZS5kcmFnUm90YXRlID8gMCA6IDI0XG4gICAgfSxcbiAgICBkcmFnUm90YXRlOiAhc3RhdGUuZHJhZ1JvdGF0ZSxcbiAgICBtYXBWaWV3TW9kZTogc3RhdGUuZHJhZ1JvdGF0ZSA/IE1hcFZpZXdNb2RlLk1PREVfMkQgOiBNYXBWaWV3TW9kZS5NT0RFXzNELFxuICAgIGdsb2JlOiB7Li4uc3RhdGUuZ2xvYmUhLCBlbmFibGVkOiBmYWxzZX0sXG4gICAgLy8gTGVhdmluZyBnbG9iZSBtb2RlOiBkcm9wIGdsb2JlLW9ubHkgem9vbSBib3VuZHMgc28gdGhlIGZsYXQgbWFwIChhbmRcbiAgICAvLyBjb25zdW1lcnMgb2YgbWFwU3RhdGUgc3VjaCBhcyB2aWRlbyBleHBvcnQpIGFyZW4ndCBsZWZ0IGNsYW1wZWQuIFdoZW5cbiAgICAvLyBnbG9iZSB3YXMgbmV2ZXIgb24sIGtlZXAgd2hhdGV2ZXIgbWluL21heFpvb20gdGhlIGFwcCBjb25maWd1cmVkLlxuICAgIC4uLih3YXNHbG9iZUVuYWJsZWQgPyB7bWluWm9vbTogdW5kZWZpbmVkLCBtYXhab29tOiB1bmRlZmluZWR9IDoge30pXG4gIH07XG5cbiAgLy8gaWYgdG9nZ2xpbmcgM2QgYW5kIDJkIHdoaWxlIHNwbGl0IGFuZCB1bnN5bmNlZFxuICAvLyBjb3B5IHRoZSBuZXcgcGl0Y2gsIGJlYXJpbmcsIGFuZCBkcmFnUm90YXRlIHZhbHVlcyB0byBlYWNoIHNwbGl0IHZpZXdwb3J0XG4gIGlmIChuZXdTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cy5sZW5ndGgpIHtcbiAgICBuZXdTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cyA9IG5ld1N0YXRlLnNwbGl0TWFwVmlld3BvcnRzLm1hcChjdXJyZW50Vmlld3BvcnQgPT4gKHtcbiAgICAgIC4uLmN1cnJlbnRWaWV3cG9ydCxcbiAgICAgIHBpdGNoOiBuZXdTdGF0ZS5waXRjaCxcbiAgICAgIGJlYXJpbmc6IG5ld1N0YXRlLmJlYXJpbmcsXG4gICAgICBkcmFnUm90YXRlOiBuZXdTdGF0ZS5kcmFnUm90YXRlXG4gICAgfSkpO1xuICB9XG5cbiAgcmV0dXJuIG5ld1N0YXRlO1xufTtcblxuLyoqXG4gKiBTZXQgbWFwIHZpZXcgbW9kZSAoMkQsIDNELCBHbG9iZSlcbiAqIEBtZW1iZXJvZiBtYXBTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRNYXBWaWV3TW9kZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdGF0ZSxcbiAgYWN0aW9uOiBNYXBTdGF0ZUFjdGlvbnMuU2V0TWFwVmlld01vZGVVcGRhdGVyQWN0aW9uXG4pOiBNYXBTdGF0ZSA9PiB7XG4gIGNvbnN0IHttYXBWaWV3TW9kZX0gPSBhY3Rpb24ucGF5bG9hZDtcbiAgbGV0IG5leHRTdGF0ZTogTWFwU3RhdGU7XG5cbiAgLy8gT25seSBjbGVhciBtaW4vbWF4Wm9vbSB3aGVuIGxlYXZpbmcgZ2xvYmUgbW9kZSAod2hlcmUgdGhleSBob2xkIGdsb2JlLW9ubHlcbiAgLy8gYm91bmRzKS4gT3RoZXJ3aXNlIHByZXNlcnZlIHRoZSBhcHAncyBjdXN0b20gYm91bmRzLlxuICBjb25zdCB3YXNHbG9iZUVuYWJsZWQgPSBCb29sZWFuKHN0YXRlLmdsb2JlPy5lbmFibGVkKTtcblxuICBzd2l0Y2ggKG1hcFZpZXdNb2RlKSB7XG4gICAgY2FzZSBNYXBWaWV3TW9kZS5NT0RFXzJEOlxuICAgICAgbmV4dFN0YXRlID0ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgZ2xvYmU6IHsuLi5zdGF0ZS5nbG9iZSEsIGVuYWJsZWQ6IGZhbHNlfSxcbiAgICAgICAgcGl0Y2g6IDAsXG4gICAgICAgIGJlYXJpbmc6IDAsXG4gICAgICAgIGRyYWdSb3RhdGU6IGZhbHNlLFxuICAgICAgICAvLyBDbGVhciB0aGUgZ2xvYmUtb25seSB6b29tIGJvdW5kcyBzbyB0aGUgZmxhdCBtYXAgKGFuZCBhbnl0aGluZyB0aGF0XG4gICAgICAgIC8vIHJlYWRzIG1hcFN0YXRlLCBlLmcuIHZpZGVvIGV4cG9ydCkgaXMgbm90IGxlZnQgd2l0aCBnbG9iZSdzXG4gICAgICAgIC8vIG1pbi9tYXhab29tIGFmdGVyIGxlYXZpbmcgZ2xvYmUgbW9kZS4gT25seSB3aGVuIGdsb2JlIHdhcyBhY3R1YWxseSBvbi5cbiAgICAgICAgLi4uKHdhc0dsb2JlRW5hYmxlZCA/IHttaW5ab29tOiB1bmRlZmluZWQsIG1heFpvb206IHVuZGVmaW5lZH0gOiB7fSksXG4gICAgICAgIG1hcFZpZXdNb2RlXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBNYXBWaWV3TW9kZS5NT0RFXzNEOlxuICAgICAgbmV4dFN0YXRlID0ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgZ2xvYmU6IHsuLi5zdGF0ZS5nbG9iZSEsIGVuYWJsZWQ6IGZhbHNlfSxcbiAgICAgICAgcGl0Y2g6IDUwLFxuICAgICAgICBiZWFyaW5nOiAyNCxcbiAgICAgICAgZHJhZ1JvdGF0ZTogdHJ1ZSxcbiAgICAgICAgLi4uKHdhc0dsb2JlRW5hYmxlZCA/IHttaW5ab29tOiB1bmRlZmluZWQsIG1heFpvb206IHVuZGVmaW5lZH0gOiB7fSksXG4gICAgICAgIG1hcFZpZXdNb2RlXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBNYXBWaWV3TW9kZS5NT0RFX0dMT0JFOlxuICAgICAgbmV4dFN0YXRlID0ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgZ2xvYmU6IHsuLi5zdGF0ZS5nbG9iZSEsIGVuYWJsZWQ6IHRydWV9LFxuICAgICAgICBkcmFnUm90YXRlOiB0cnVlLFxuICAgICAgICBwaXRjaDogMCxcbiAgICAgICAgYmVhcmluZzogMCxcbiAgICAgICAgLy8gQWxsb3cgem9vbWluZyBvdXQgZnVydGhlciB0aGFuIHRoZSBkZWZhdWx0IHNvIHRoZSB3aG9sZSBnbG9iZSBjYW4gYmVcbiAgICAgICAgLy8gcHVsbGVkIGJhY2sgb24gc2NyZWVuLiBDYXAgdGhlIG1heCB6b29tIHNvIHRoZSBiYXNlbWFwIHRpbGVzIHN0YXlcbiAgICAgICAgLy8gY29oZXJlbnQgKHRoZXkgYnJlYWsgZG93biBhdCBoaWdoIGdsb2JlIHpvb20gaW4gZGVjay5nbCA5LngpLlxuICAgICAgICBtaW5ab29tOiBHTE9CRV9NSU5fWk9PTSxcbiAgICAgICAgbWF4Wm9vbTogR0xPQkVfTUFYX1pPT00sXG4gICAgICAgIHpvb206IE1hdGgubWluKE1hdGgubWF4KHN0YXRlLnpvb20sIEdMT0JFX01JTl9aT09NKSwgR0xPQkVfTUFYX1pPT00pLFxuICAgICAgICBtYXBWaWV3TW9kZVxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cblxuICBpZiAobmV4dFN0YXRlLnNwbGl0TWFwVmlld3BvcnRzLmxlbmd0aCkge1xuICAgIG5leHRTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cyA9IG5leHRTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cy5tYXAoY3VycmVudFZpZXdwb3J0ID0+ICh7XG4gICAgICAuLi5jdXJyZW50Vmlld3BvcnQsXG4gICAgICBwaXRjaDogbmV4dFN0YXRlLnBpdGNoLFxuICAgICAgYmVhcmluZzogbmV4dFN0YXRlLmJlYXJpbmcsXG4gICAgICBkcmFnUm90YXRlOiBuZXh0U3RhdGUuZHJhZ1JvdGF0ZVxuICAgIH0pKTtcbiAgfVxuXG4gIHJldHVybiBuZXh0U3RhdGU7XG59O1xuXG4vKipcbiAqIFVwZGF0ZSBnbG9iZSBjb25maWdcbiAqIEBtZW1iZXJvZiBtYXBTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBnbG9iZUNvbmZpZ0NoYW5nZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdGF0ZSxcbiAgYWN0aW9uOiBNYXBTdGF0ZUFjdGlvbnMuR2xvYmVDb25maWdDaGFuZ2VVcGRhdGVyQWN0aW9uXG4pOiBNYXBTdGF0ZSA9PiB7XG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgZ2xvYmU6IHtcbiAgICAgIC4uLnN0YXRlLmdsb2JlISxcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICAuLi5zdGF0ZS5nbG9iZSEuY29uZmlnLFxuICAgICAgICAuLi5hY3Rpb24ucGF5bG9hZFxuICAgICAgfVxuICAgIH1cbiAgfTtcbn07XG5cbi8qKlxuICogcmVzZXQgbWFwU3RhdGUgdG8gaW5pdGlhbCBTdGF0ZVxuICogQG1lbWJlcm9mIG1hcFN0YXRlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHJlc2V0TWFwQ29uZmlnVXBkYXRlciA9IChzdGF0ZTogTWFwU3RhdGUpOiBNYXBTdGF0ZSA9PiAoe1xuICAuLi5JTklUSUFMX01BUF9TVEFURSxcbiAgLi4uc3RhdGUuaW5pdGlhbFN0YXRlLFxuICBpbml0aWFsU3RhdGU6IHN0YXRlLmluaXRpYWxTdGF0ZVxufSk7XG5cbi8vIGNvbnNpZGVyIGNhc2Ugd2hlcmUgeW91IGhhdmUgYSBzcGxpdCBtYXAgYW5kIHVzZXIgd2FudHMgdG8gcmVzZXRcbi8qKlxuICogVXBkYXRlIGBtYXBTdGF0ZWAgdG8gcHJvcGFnYXRlIGEgbmV3IGNvbmZpZ1xuICogQG1lbWJlcm9mIG1hcFN0YXRlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHJlY2VpdmVNYXBDb25maWdVcGRhdGVyID0gKFxuICBzdGF0ZTogTWFwU3RhdGUsXG4gIHtcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgcGF5bG9hZDoge2NvbmZpZyA9IHt9LCBvcHRpb25zID0ge30sIGJvdW5kcyA9IG51bGx9XG4gIH06IHtcbiAgICB0eXBlPzogdHlwZW9mIEFjdGlvblR5cGVzLlJFQ0VJVkVfTUFQX0NPTkZJRztcbiAgICBwYXlsb2FkOiBSZWNlaXZlTWFwQ29uZmlnUGF5bG9hZDtcbiAgfVxuKTogTWFwU3RhdGUgPT4ge1xuICAvKipcbiAgICogQHR5cGUge1BhcnRpYWw8TWFwU3RhdGU+fVxuICAgKi9cbiAgY29uc3QgbWFwU3RhdGUgPSAoY29uZmlnIHx8IHt9KS5tYXBTdGF0ZSB8fCB7fTtcbiAgLy8gbWVyZ2VkIHJlY2VpdmVkIG1hcFN0YXRlIHdpdGggcHJldmlvdXMgc3RhdGVcbiAgLy8gc3RhdGUgYWxzbyBtYXkgaW5jbHVkZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIG5ldyB0byBhbiBleGlzdGluZywgc2F2ZWQgcHJvamVjdCdzIG1hcFN0YXRlXG5cbiAgbGV0IG1lcmdlZFN0YXRlID0gZGVlcG1lcmdlPE1hcFN0YXRlPihzdGF0ZSwgbWFwU3RhdGUsIHtcbiAgICAvLyBub3RlOiBkZWVwbWVyZ2UgYnkgZGVmYXVsdCB3aWxsIG1lcmdlIGFycmF5cyBieSBjb25jYXRlbmF0aW5nIHRoZW1cbiAgICAvLyBidXQgd2UgbmVlZCB0byBvdmVyd3JpdGUgZGVzdGluYXRpb24gYXJyYXlzIHdpdGggc291cmNlIGFycmF5cywgaWYgcHJlc2VudFxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9UZWhTaHJpa2UvZGVlcG1lcmdlI2FycmF5bWVyZ2UtZXhhbXBsZS1vdmVyd3JpdGUtdGFyZ2V0LWFycmF5XG4gICAgYXJyYXlNZXJnZTogKF9kZXN0aW5hdGlvbkFycmF5LCBzb3VyY2VBcnJheSkgPT4gc291cmNlQXJyYXlcbiAgfSk7XG5cbiAgLy8gaWYgY2VudGVyIG1hcFxuICAvLyBjZW50ZXIgbWFwIHdpbGwgb3ZlcnJpZGUgbWFwU3RhdGUgY29uZmlnXG4gIGlmIChvcHRpb25zLmNlbnRlck1hcCAmJiBib3VuZHMpIHtcbiAgICBtZXJnZWRTdGF0ZSA9IGZpdEJvdW5kc1VwZGF0ZXIobWVyZ2VkU3RhdGUsIHtcbiAgICAgIHBheWxvYWQ6IGJvdW5kcyxcbiAgICAgIG1ldGE6IHtwYWRkaW5nOiBvcHRpb25zLnBhZGRpbmd9XG4gICAgfSk7XG4gIH1cblxuICAvLyBtYWtlIHN1cmUgd2UgdmFsaWRhdGUgbWFwIHN0YXRlIGJlZm9yZSB3ZSBtZXJnZVxuICBtZXJnZWRTdGF0ZSA9IHZhbGlkYXRlVmlld1BvcnQobWVyZ2VkU3RhdGUpO1xuXG4gIHJldHVybiB7XG4gICAgLi4ubWVyZ2VkU3RhdGUsXG4gICAgLy8gdXBkYXRlIHdpZHRoIGlmIGBpc1NwbGl0YCBoYXMgY2hhbmdlZFxuICAgIC4uLmdldE1hcERpbUZvclNwbGl0TWFwKG1lcmdlZFN0YXRlLmlzU3BsaXQsIHN0YXRlKVxuICB9O1xufTtcblxuLyoqXG4gKiBUb2dnbGUgYmV0d2VlbiBvbmUgb3Igc3BsaXQgbWFwc1xuICogQG1lbWJlcm9mIG1hcFN0YXRlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IHRvZ2dsZVNwbGl0TWFwVXBkYXRlciA9IChzdGF0ZTogTWFwU3RhdGUpOiBNYXBTdGF0ZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgLi4uZ2V0TWFwRGltRm9yU3BsaXRNYXAoIXN0YXRlLmlzU3BsaXQsIHN0YXRlKSxcbiAgaXNTcGxpdDogIXN0YXRlLmlzU3BsaXQsXG4gIG1hcFNwbGl0TW9kZTogIXN0YXRlLmlzU3BsaXQgPyBNYXBTcGxpdE1vZGUuRFVBTF9NQVAgOiBNYXBTcGxpdE1vZGUuU0lOR0xFX01BUCxcbiAgLi4uKCFzdGF0ZS5pc1NwbGl0ID09PSBmYWxzZVxuICAgID8ge1xuICAgICAgICAvLyBpZiB0b2dnbGluZyB0byBubyBsb25nZXIgc3BsaXQgKHNpbmdsZSBtb2RlKSB0aGVuIHJlc2V0IGEgZmV3IHByb3BlcnRpZXNcbiAgICAgICAgaXNWaWV3cG9ydFN5bmNlZDogdHJ1ZSxcbiAgICAgICAgaXNab29tTG9ja2VkOiBmYWxzZSxcbiAgICAgICAgc3BsaXRNYXBWaWV3cG9ydHM6IFtdXG4gICAgICB9XG4gICAgOiB7fSlcbn0pO1xuXG4vKipcbiAqIFNldCB0aGUgbWFwIHNwbGl0IG1vZGUgKHNpbmdsZSwgZHVhbCwgb3Igc3dpcGUpXG4gKiBAbWVtYmVyb2YgbWFwU3RhdGVVcGRhdGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3Qgc2V0TWFwU3BsaXRNb2RlVXBkYXRlciA9IChcbiAgc3RhdGU6IE1hcFN0YXRlLFxuICBhY3Rpb246IE1hcFN0YXRlQWN0aW9ucy5TZXRNYXBTcGxpdE1vZGVVcGRhdGVyQWN0aW9uXG4pOiBNYXBTdGF0ZSA9PiB7XG4gIGNvbnN0IHttYXBTcGxpdE1vZGV9ID0gYWN0aW9uLnBheWxvYWQ7XG4gIGNvbnN0IHByZXZNb2RlID0gc3RhdGUubWFwU3BsaXRNb2RlO1xuXG4gIGlmIChtYXBTcGxpdE1vZGUgPT09IHByZXZNb2RlKSB7XG4gICAgcmV0dXJuIHN0YXRlO1xuICB9XG5cbiAgc3dpdGNoIChtYXBTcGxpdE1vZGUpIHtcbiAgICBjYXNlIE1hcFNwbGl0TW9kZS5TSU5HTEVfTUFQOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIG1hcFNwbGl0TW9kZSxcbiAgICAgICAgaXNTcGxpdDogZmFsc2UsXG4gICAgICAgIC4uLihwcmV2TW9kZSA9PT0gTWFwU3BsaXRNb2RlLkRVQUxfTUFQICYmIHtcbiAgICAgICAgICB3aWR0aDogc3RhdGUud2lkdGggKiAyXG4gICAgICAgIH0pLFxuICAgICAgICBpc1ZpZXdwb3J0U3luY2VkOiB0cnVlLFxuICAgICAgICBpc1pvb21Mb2NrZWQ6IGZhbHNlLFxuICAgICAgICBzcGxpdE1hcFZpZXdwb3J0czogW11cbiAgICAgIH07XG4gICAgY2FzZSBNYXBTcGxpdE1vZGUuRFVBTF9NQVA6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgbWFwU3BsaXRNb2RlLFxuICAgICAgICBpc1NwbGl0OiB0cnVlLFxuICAgICAgICAuLi4ocHJldk1vZGUgPT09IE1hcFNwbGl0TW9kZS5TSU5HTEVfTUFQICYmIHtcbiAgICAgICAgICB3aWR0aDogc3RhdGUud2lkdGggLyAyXG4gICAgICAgIH0pLFxuICAgICAgICAuLi4ocHJldk1vZGUgPT09IE1hcFNwbGl0TW9kZS5TV0lQRV9DT01QQVJFICYmIHtcbiAgICAgICAgICB3aWR0aDogc3RhdGUud2lkdGggLyAyXG4gICAgICAgIH0pXG4gICAgICB9O1xuICAgIGNhc2UgTWFwU3BsaXRNb2RlLlNXSVBFX0NPTVBBUkU6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgbWFwU3BsaXRNb2RlLFxuICAgICAgICBpc1NwbGl0OiB0cnVlLFxuICAgICAgICAuLi4ocHJldk1vZGUgPT09IE1hcFNwbGl0TW9kZS5EVUFMX01BUCAmJiB7XG4gICAgICAgICAgd2lkdGg6IHN0YXRlLndpZHRoICogMlxuICAgICAgICB9KSxcbiAgICAgICAgaXNWaWV3cG9ydFN5bmNlZDogdHJ1ZSxcbiAgICAgICAgaXNab29tTG9ja2VkOiBmYWxzZSxcbiAgICAgICAgc3BsaXRNYXBWaWV3cG9ydHM6IFtdXG4gICAgICB9O1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn07XG5cbi8qKlxuICogU2V0IHRoZSBzd2lwZSBjb21wYXJlIHBlcmNlbnRhZ2VcbiAqIEBtZW1iZXJvZiBtYXBTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBzZXRTd2lwZUNvbXBhcmVQZXJjZW50YWdlVXBkYXRlciA9IChcbiAgc3RhdGU6IE1hcFN0YXRlLFxuICBhY3Rpb246IE1hcFN0YXRlQWN0aW9ucy5TZXRTd2lwZUNvbXBhcmVQZXJjZW50YWdlVXBkYXRlckFjdGlvblxuKTogTWFwU3RhdGUgPT4ge1xuICBjb25zdCB7cGVyY2VudGFnZX0gPSBhY3Rpb24ucGF5bG9hZDtcbiAgY29uc3QgY2xhbXBlZCA9IE1hdGgubWluKDEwMCwgTWF0aC5tYXgoMCwgcGVyY2VudGFnZSkpO1xuICBpZiAoY2xhbXBlZCA9PT0gc3RhdGUuc3dpcGVDb21wYXJlUGVyY2VudGFnZSkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIHN3aXBlQ29tcGFyZVBlcmNlbnRhZ2U6IGNsYW1wZWRcbiAgfTtcbn07XG5cbi8qKlxuICogVG9nZ2xlIGJldHdlZW4gbG9ja2VkIGFuZCB1bmxvY2tlZCBzcGxpdCB2aWV3cG9ydHNcbiAqIEBtZW1iZXJvZiBtYXBTdGF0ZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCB0b2dnbGVTcGxpdE1hcFZpZXdwb3J0VXBkYXRlciA9IChcbiAgc3RhdGU6IE1hcFN0YXRlLFxuICBhY3Rpb246IE1hcFN0YXRlQWN0aW9ucy5Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0VXBkYXRlckFjdGlvblxuKSA9PiB7XG4gIC8vIFN3aXBlIG1vZGUgYWx3YXlzIHVzZXMgc3luY2VkIHZpZXdwb3J0c1xuICBpZiAoc3RhdGUubWFwU3BsaXRNb2RlID09PSBNYXBTcGxpdE1vZGUuU1dJUEVfQ09NUEFSRSkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIC8vIG5ldyBtYXAgc3RhdGUgaW1tZWRpYXRlbHkgZ2V0cyB0aGUgbmV3LCBvcHRpb25hbCBwYXlsb2FkIHZhbHVlcyBmb3IgaXNWaWV3cG9ydFN5bmNlZCBhbmQvb3IgaXNab29tTG9ja2VkXG4gIGNvbnN0IG5ld01hcFN0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIC4uLihhY3Rpb24ucGF5bG9hZCB8fCB7fSlcbiAgfTtcblxuICBpZiAobmV3TWFwU3RhdGUuaXNWaWV3cG9ydFN5bmNlZCkge1xuICAgIC8vIHN3aXRjaGluZyBmcm9tIHVuc3luY2VkIHRvIHN5bmNlZCB2aWV3cG9ydHNcbiAgICBuZXdNYXBTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cyA9IFtdO1xuICB9IGVsc2Uge1xuICAgIC8vIHN3aXRjaGluZyBmcm9tIHN5bmNlZCB0byB1bnN5bmNlZCB2aWV3cG9ydHNcbiAgICAvLyBvciBhbHJlYWR5IGluIHVuc3luY2VkIG1vZGUgYW5kIHRvZ2dsaW5nIGxvY2tlZCB6b29tXG5cbiAgICBpZiAoc3RhdGUuaXNab29tTG9ja2VkICYmICFuZXdNYXBTdGF0ZS5pc1pvb21Mb2NrZWQpIHtcbiAgICAgIC8vIHN3aXRjaGluZyBvZmYgbG9ja2VkIHpvb20gd2hpbGUgdW5zeW5jZWRcbiAgICAgIC8vIGRvbid0IGNvcHkgdGhlIG1hcFN0YXRlcyB0byBsZWZ0IGFuZCByaWdodCB2aWV3cG9ydHMgYmVjYXVzZSB0aGVyZSB3aWxsIGJlIHpvb20gXCJqdW1waW5nXCJcbiAgICAgIHJldHVybiBuZXdNYXBTdGF0ZTtcbiAgICB9XG5cbiAgICBpZiAoIXN0YXRlLmlzWm9vbUxvY2tlZCAmJiBuZXdNYXBTdGF0ZS5pc1pvb21Mb2NrZWQpIHtcbiAgICAgIC8vIHN3aXRjaGluZyBvbiBsb2NrZWQgem9vbSB3aGlsZSB1bnN5bmNlZFxuICAgICAgLy8gb25seSBjb3B5IHpvb20gdmlld3BvcnQgcHJvcGVydHkgZnJvbSB0aGUgbW9zdCByZWNlbnRseSBpbnRlcmFjdGVkLXdpdGggdmlld3BvcnQgdG8gdGhlIG90aGVyXG4gICAgICAvLyBUT0RPOiBkbyB3ZSB3YW50IHRvIGNoZWNrIGZvciBhIG1hdGNoIGEgZGlmZmVyZW50IHdheSwgc3VjaCBhcyBhIGNvbWJvIG9mIGBsYXRpdHVkZWAgYW5kIGBsb25naXR1ZGVgP1xuICAgICAgY29uc3QgbGFzdFVwZGF0ZWRWaWV3cG9ydEluZGV4ID0gbmV3TWFwU3RhdGUuc3BsaXRNYXBWaWV3cG9ydHMuZmluZEluZGV4KFxuICAgICAgICB2ID0+IG5ld01hcFN0YXRlLnpvb20gPT09IHYuem9vbVxuICAgICAgKTtcblxuICAgICAgY29uc3Qgc3BsaXRNYXBWaWV3cG9ydHMgPSBuZXdNYXBTdGF0ZS5zcGxpdE1hcFZpZXdwb3J0cy5tYXAoKGN1cnJlbnRWaWV3cG9ydCwgaSkgPT4ge1xuICAgICAgICBpZiAoaSA9PT0gbGFzdFVwZGF0ZWRWaWV3cG9ydEluZGV4KSB7XG4gICAgICAgICAgLy8gbm8gem9vbSB0byBtb2RpZnkgaGVyZVxuICAgICAgICAgIHJldHVybiBjdXJyZW50Vmlld3BvcnQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gdGhlIG90aGVyIHZpZXdwb3J0IGdldHMgdGhlIG1vc3QgcmVjZW50bHkgaW50ZXJhY3RlZC13aXRoIHZpZXdwb3J0J3Mgem9vbVxuICAgICAgICAvLyBXSFk/IHRoZSB2aWV3cG9ydCB0aGUgdXNlciB3YXMgbGFzdCBpbnRlcmFjdGluZyB3aXRoIHdpbGwgc2V0IHpvb20gYWNyb3NzIHRoZSBib2FyZCBmb3Igc21vb3RoIFVYXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uY3VycmVudFZpZXdwb3J0LFxuICAgICAgICAgIHpvb206IG5ld01hcFN0YXRlLnNwbGl0TWFwVmlld3BvcnRzW2xhc3RVcGRhdGVkVmlld3BvcnRJbmRleF0uem9vbVxuICAgICAgICB9O1xuICAgICAgfSk7XG5cbiAgICAgIG5ld01hcFN0YXRlLnNwbGl0TWFwVmlld3BvcnRzID0gc3BsaXRNYXBWaWV3cG9ydHM7XG5cbiAgICAgIHJldHVybiBuZXdNYXBTdGF0ZTtcbiAgICB9XG5cbiAgICAvLyBpZiBjdXJyZW50IHZpZXdwb3J0IGlzIHN5bmNlZCwgYW5kIHdlIGFyZSB1bnN5bmNpbmcgaXRcbiAgICAvLyBvciBhbHJlYWR5IGluIHVuc3luY2VkIG1vZGUgYW5kIE5PVCB0b2dnbGluZyBsb2NrZWQgem9vbVxuICAgIC8vIG1ha2UgYSBmcmVzaCBjb3B5IG9mIHRoZSBjdXJyZW50IHZpZXdwb3J0IG9iamVjdCwgYXNzaWduIGl0IHRvIHNwbGl0TWFwVmlld3BvcnRzW11cbiAgICAvLyBwaWNrVmlld3BvcnRQcm9wc0Zyb21NYXBTdGF0ZSBpcyBjYWxsZWQgdHdpY2UgdG8gYXZvaWQgbWVtb3J5IGFsbG9jYXRpb24gY29uZmxpY3RzXG4gICAgY29uc3QgbGVmdFZpZXdwb3J0ID0gcGlja1ZpZXdwb3J0UHJvcHNGcm9tTWFwU3RhdGUobmV3TWFwU3RhdGUpO1xuICAgIGNvbnN0IHJpZ2h0Vmlld3BvcnQgPSBwaWNrVmlld3BvcnRQcm9wc0Zyb21NYXBTdGF0ZShuZXdNYXBTdGF0ZSk7XG4gICAgbmV3TWFwU3RhdGUuc3BsaXRNYXBWaWV3cG9ydHMgPSBbbGVmdFZpZXdwb3J0LCByaWdodFZpZXdwb3J0XTtcbiAgfVxuXG4gIC8vIHJldHVybiBuZXcgc3RhdGVcbiAgcmV0dXJuIG5ld01hcFN0YXRlO1xufTtcblxuLy8gSGVscGVyc1xuZXhwb3J0IGZ1bmN0aW9uIGdldE1hcERpbUZvclNwbGl0TWFwKGlzU3BsaXQsIHN0YXRlKSB7XG4gIC8vIGNhc2VzOlxuICAvLyAxLiBzdGF0ZSBzcGxpdDogdHJ1ZSAtIGlzU3BsaXQ6IHRydWVcbiAgLy8gZG8gbm90aGluZ1xuICAvLyAyLiBzdGF0ZSBzcGxpdDogZmFsc2UgLSBpc1NwbGl0OiBmYWxzZVxuICAvLyBkbyBub3RoaW5nXG4gIGlmIChzdGF0ZS5pc1NwbGl0ID09PSBpc1NwbGl0KSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLy8gSW4gc3dpcGUgbW9kZSwgYm90aCBtYXBzIHVzZSBmdWxsIHdpZHRoIChvdmVybGFwcGluZyB3aXRoIGNsaXApXG4gIGlmIChzdGF0ZS5tYXBTcGxpdE1vZGUgPT09IE1hcFNwbGl0TW9kZS5TV0lQRV9DT01QQVJFKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgY29uc3Qgd2lkdGggPVxuICAgIHN0YXRlLmlzU3BsaXQgJiYgIWlzU3BsaXRcbiAgICAgID8gLy8gMy4gc3RhdGUgc3BsaXQ6IHRydWUgLSBpc1NwbGl0OiBmYWxzZVxuICAgICAgICAvLyBkb3VibGUgd2lkdGhcbiAgICAgICAgc3RhdGUud2lkdGggKiAyXG4gICAgICA6IC8vIDQuIHN0YXRlIHNwbGl0OiBmYWxzZSAtIGlzU3BsaXQ6IHRydWVcbiAgICAgICAgLy8gc3BsaXQgd2lkdGhcbiAgICAgICAgc3RhdGUud2lkdGggLyAyO1xuXG4gIHJldHVybiB7XG4gICAgd2lkdGhcbiAgfTtcbn1cblxuZnVuY3Rpb24gdXBkYXRlVmlld3BvcnRCYXNlZE9uQm91bmRzKHN0YXRlOiBNYXBTdGF0ZSwgbmV3TWFwU3RhdGU6IE1hcFN0YXRlKSB7XG4gIC8vIEdldCB0aGUgbmV3IHZpZXdwb3J0IGJvdW5kc1xuICBjb25zdCB2aWV3cG9ydEJvdW5kcyA9IGdlb1ZpZXdwb3J0LmJvdW5kcyhcbiAgICBbbmV3TWFwU3RhdGUubG9uZ2l0dWRlLCBuZXdNYXBTdGF0ZS5sYXRpdHVkZV0sXG4gICAgbmV3TWFwU3RhdGUuem9vbSxcbiAgICBbbmV3TWFwU3RhdGUud2lkdGgsIG5ld01hcFN0YXRlLmhlaWdodF0sXG4gICAgTUFQQk9YX1RJTEVfU0laRVxuICApO1xuICAvLyBHZW5lcmF0ZSB0dXJmIFBvbHlnb24gZnJvbSBib3VuZHMgZm9yIGNvbXBhcmlzb25cbiAgY29uc3Qgdmlld3BvcnRCb3VuZHNQb2x5Z29uID0gYmJveFBvbHlnb24odmlld3BvcnRCb3VuZHMpO1xuICAvLyBAdHMtaWdub3JlXG4gIGNvbnN0IG5ld1N0YXRlTWF4Qm91bmRzOiBCb3VuZHMgPSBuZXdNYXBTdGF0ZS5tYXhCb3VuZHM7XG4gIC8vIEB0cy1pZ25vcmVcbiAgY29uc3QgbWF4Qm91bmRzUG9seWdvbiA9IGJib3hQb2x5Z29uKG5ld1N0YXRlTWF4Qm91bmRzKTtcblxuICAvLyBJZiBtYXhCb3VuZHMgaGFzIGNoYW5nZWQgcmVzZXQgdGhlIHZpZXdwb3J0IHRvIHNuYXAgdG8gYm91bmRzXG4gIGNvbnN0IGhhc01heEJvdW5kc0NoYW5nZWQgPVxuICAgICFzdGF0ZS5tYXhCb3VuZHMgfHwgIXN0YXRlLm1heEJvdW5kcy5ldmVyeSgodmFsLCBpZHgpID0+IHZhbCA9PT0gbmV3U3RhdGVNYXhCb3VuZHNbaWR4XSk7XG4gIGlmIChoYXNNYXhCb3VuZHNDaGFuZ2VkKSB7XG4gICAgLy8gQ2hlY2sgaWYgdGhlIG5ld01hcFN0YXRlIHZpZXdwb3J0IGlzIHdpdGhpbiBtYXhCb3VuZHNcbiAgICBpZiAoIWJvb2xlYW5XaXRoaW4odmlld3BvcnRCb3VuZHNQb2x5Z29uLCBtYXhCb3VuZHNQb2x5Z29uKSkge1xuICAgICAgY29uc3Qge2xhdGl0dWRlLCBsb25naXR1ZGUsIHpvb219ID0gZml0Qm91bmRzKHtcbiAgICAgICAgd2lkdGg6IG5ld01hcFN0YXRlLndpZHRoLFxuICAgICAgICBoZWlnaHQ6IG5ld01hcFN0YXRlLmhlaWdodCxcbiAgICAgICAgYm91bmRzOiBbXG4gICAgICAgICAgW25ld1N0YXRlTWF4Qm91bmRzWzBdLCBuZXdTdGF0ZU1heEJvdW5kc1sxXV0sXG4gICAgICAgICAgW25ld1N0YXRlTWF4Qm91bmRzWzJdLCBuZXdTdGF0ZU1heEJvdW5kc1szXV1cbiAgICAgICAgXVxuICAgICAgfSk7XG5cbiAgICAgIG5ld01hcFN0YXRlID0ge1xuICAgICAgICAuLi5uZXdNYXBTdGF0ZSxcbiAgICAgICAgbGF0aXR1ZGUsXG4gICAgICAgIGxvbmdpdHVkZSxcbiAgICAgICAgLy8gRm9yIG1hcmdpbmFsIG9yIGludmFsaWQgYm91bmRzLCB6b29tIG1heSBiZSBOYU4uIE1ha2Ugc3VyZSB0byBwcm92aWRlIGEgdmFsaWQgdmFsdWUgaW4gb3JkZXJcbiAgICAgICAgLy8gdG8gYXZvaWQgY29ycnVwdCBzdGF0ZSBhbmQgcG90ZW50aWFsIGNyYXNoZXMgYXMgem9vbSBpcyBleHBlY3RlZCB0byBiZSBhIG51bWJlclxuICAgICAgICAuLi4oTnVtYmVyLmlzRmluaXRlKHpvb20pID8ge3pvb219IDoge30pXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbmV3TWFwU3RhdGU7XG4gIH1cblxuICAvLyBDaGVjayBpZiB0aGUgbmV3TWFwU3RhdGUgdmlld3BvcnQgaXMgd2l0aGluIG1heEJvdW5kc1xuICBpZiAoIWJvb2xlYW5XaXRoaW4odmlld3BvcnRCb3VuZHNQb2x5Z29uLCBtYXhCb3VuZHNQb2x5Z29uKSkge1xuICAgIG5ld01hcFN0YXRlID0ge1xuICAgICAgLi4ubmV3TWFwU3RhdGUsXG4gICAgICBsb25naXR1ZGU6IHN0YXRlLmxvbmdpdHVkZSxcbiAgICAgIGxhdGl0dWRlOiBzdGF0ZS5sYXRpdHVkZSxcbiAgICAgIHpvb206IHN0YXRlLnpvb21cbiAgICB9O1xuICB9XG5cbiAgcmV0dXJuIG5ld01hcFN0YXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGlja1ZpZXdwb3J0UHJvcHNGcm9tTWFwU3RhdGUoc3RhdGU6IE1hcFN0YXRlKTogVmlld3BvcnQge1xuICByZXR1cm4gcGljayhzdGF0ZSwgW1xuICAgICd3aWR0aCcsXG4gICAgJ2hlaWdodCcsXG4gICAgJ3pvb20nLFxuICAgICdwaXRjaCcsXG4gICAgJ2JlYXJpbmcnLFxuICAgICdsYXRpdHVkZScsXG4gICAgJ2xvbmdpdHVkZScsXG4gICAgJ2RyYWdSb3RhdGUnLFxuICAgICdtaW5ab29tJyxcbiAgICAnbWF4Wm9vbScsXG4gICAgJ21heFBpdGNoJyxcbiAgICAnbWF4Qm91bmRzJ1xuICBdKTtcbn1cblxuLyoqIFNlbGVjdCBpdGVtcyBmcm9tIG9iamVjdCB3aG9zZSB2YWx1ZSBpcyBub3QgdW5kZWZpbmVkICovXG5jb25zdCBkZWZpbmVkUHJvcHMgPSBvYmogPT5cbiAgT2JqZWN0LmVudHJpZXMob2JqKS5yZWR1Y2UoXG4gICAgKGFjY3UsIFtrLCB2XSkgPT4gKHsuLi5hY2N1LCAuLi4odiAhPT0gdW5kZWZpbmVkID8ge1trXTogdn0gOiB7fSl9KSxcbiAgICB7fVxuICApO1xuXG5mdW5jdGlvbiB1cGRhdGVWaWV3cG9ydChvcmlnaW5hbFZpZXdwb3J0OiBWaWV3cG9ydCwgdmlld3BvcnRVcGRhdGVzOiBWaWV3cG9ydCk6IFZpZXdwb3J0IHtcbiAgbGV0IG5ld1ZpZXdwb3J0ID0ge1xuICAgIC4uLm9yaWdpbmFsVmlld3BvcnQsXG4gICAgLi4uKGRlZmluZWRQcm9wcyh2aWV3cG9ydFVwZGF0ZXMpIHx8IHt9KVxuICB9O1xuXG4gIC8vIGRlY2suZ2wncyBnbG9iZSBjb250cm9sbGVyIGFwcGxpZXMgYSBsYXRpdHVkZS1kZXBlbmRlbnQgYWRqdXN0bWVudCB0byB0aGVcbiAgLy8gem9vbSByYW5nZSAoc2VlIEtlcGxlckdsb2JlVmlldy5fY29uc3RyYWluWm9vbSkuIElmIHdlIGNsYW1wIHRoZSBwcm9wYWdhdGVkXG4gIC8vIHpvb20gaGVyZSBhZ2FpbnN0IHRoZSByYXcgbWluWm9vbS9tYXhab29tICh3aXRob3V0IHRoYXQgYWRqdXN0bWVudCksIFJlZHV4XG4gIC8vIGVuZHMgdXAgZGlzYWdyZWVpbmcgd2l0aCB0aGUgY29udHJvbGxlcjogdGhlIGNvbnRyb2xsZXIgbGV0cyB0aGUgdXNlciBwdWxsXG4gIC8vIHRoZSBnbG9iZSBmdXJ0aGVyIG91dCwgYnV0IHRoaXMgY2xhbXAgc25hcHMgem9vbSBiYWNrIHRvIGBtaW5ab29tYCB3aGVuIHRoZVxuICAvLyBpbnRlcmFjdGlvbidzIGluZXJ0aWEgdHJhbnNpdGlvbiBlbmRzLiBBcHBseSB0aGUgc2FtZSBhZGp1c3RtZW50IGluIGdsb2JlXG4gIC8vIG1vZGUgc28gUmVkdXggc3RheXMgY29uc2lzdGVudCB3aXRoIHRoZSBjb250cm9sbGVyIGFuZCB0aGVyZSdzIG5vIHNuYXAtYmFjay5cbiAgY29uc3QgaXNHbG9iZSA9IChuZXdWaWV3cG9ydCBhcyBhbnkpLmdsb2JlPy5lbmFibGVkO1xuXG4gIGlmIChpc0dsb2JlKSB7XG4gICAgLy8gS2VlcCB0aGUgY2FtZXJhIHRhcmdldCB3aXRoaW4gYSBsYXRpdHVkZSBiYW5kIGFyb3VuZCB0aGUgZXF1YXRvciBzbyB0aGVcbiAgICAvLyBzdG9yZWQgdmlld3BvcnQgY2FuJ3QgYmUgY2VudGVyZWQgb24gdGhlIHBvbGVzIChtYXRjaGVzIHRoZSBnbG9iZVxuICAgIC8vIGNvbnRyb2xsZXIncyBhcHBseUNvbnN0cmFpbnRzIHNvIGdlb2NvZGVyL3Byb2dyYW1tYXRpYyB1cGRhdGVzIGFncmVlKS5cbiAgICBpZiAodHlwZW9mIG5ld1ZpZXdwb3J0LmxhdGl0dWRlID09PSAnbnVtYmVyJykge1xuICAgICAgbmV3Vmlld3BvcnQubGF0aXR1ZGUgPSBNYXRoLm1pbihcbiAgICAgICAgR0xPQkVfTUFYX0xBVElUVURFLFxuICAgICAgICBNYXRoLm1heCgtR0xPQkVfTUFYX0xBVElUVURFLCBuZXdWaWV3cG9ydC5sYXRpdHVkZSlcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHpvb21BZGp1c3RtZW50ID0gTWF0aC5sb2cyKE1hdGguY29zKCgobmV3Vmlld3BvcnQubGF0aXR1ZGUgPz8gMCkgKiBNYXRoLlBJKSAvIDE4MCkpO1xuICAgIGlmIChcbiAgICAgIHR5cGVvZiBuZXdWaWV3cG9ydC5taW5ab29tID09PSAnbnVtYmVyJyAmJlxuICAgICAgdHlwZW9mIG5ld1ZpZXdwb3J0Lnpvb20gPT09ICdudW1iZXInICYmXG4gICAgICBuZXdWaWV3cG9ydC56b29tIDwgbmV3Vmlld3BvcnQubWluWm9vbSArIHpvb21BZGp1c3RtZW50XG4gICAgKSB7XG4gICAgICBuZXdWaWV3cG9ydC56b29tID0gbmV3Vmlld3BvcnQubWluWm9vbSArIHpvb21BZGp1c3RtZW50O1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0eXBlb2YgbmV3Vmlld3BvcnQubWF4Wm9vbSA9PT0gJ251bWJlcicgJiZcbiAgICAgIHR5cGVvZiBuZXdWaWV3cG9ydC56b29tID09PSAnbnVtYmVyJyAmJlxuICAgICAgbmV3Vmlld3BvcnQuem9vbSA+IG5ld1ZpZXdwb3J0Lm1heFpvb20gKyB6b29tQWRqdXN0bWVudFxuICAgICkge1xuICAgICAgbmV3Vmlld3BvcnQuem9vbSA9IG5ld1ZpZXdwb3J0Lm1heFpvb20gKyB6b29tQWRqdXN0bWVudDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gTWFrZSBzdXJlIHpvb20gbGV2ZWwgZG9lc24ndCBnbyBiZWxsb3cgbWluWm9vbSBpZiBkZWZpbmVkXG4gICAgaWYgKG5ld1ZpZXdwb3J0Lm1pblpvb20gJiYgbmV3Vmlld3BvcnQuem9vbSAmJiBuZXdWaWV3cG9ydC56b29tIDwgbmV3Vmlld3BvcnQubWluWm9vbSkge1xuICAgICAgbmV3Vmlld3BvcnQuem9vbSA9IG5ld1ZpZXdwb3J0Lm1pblpvb207XG4gICAgfVxuICAgIC8vIE1ha2Ugc3VyZSB6b29tIGxldmVsIGRvZXNuJ3QgZ28gYWJvdmUgbWF4Wm9vbSBpZiBkZWZpbmVkXG4gICAgaWYgKG5ld1ZpZXdwb3J0Lm1heFpvb20gJiYgbmV3Vmlld3BvcnQuem9vbSAmJiBuZXdWaWV3cG9ydC56b29tID4gbmV3Vmlld3BvcnQubWF4Wm9vbSkge1xuICAgICAgbmV3Vmlld3BvcnQuem9vbSA9IG5ld1ZpZXdwb3J0Lm1heFpvb207XG4gICAgfVxuICB9XG4gIC8vIExpbWl0IHZpZXdwb3J0IHVwZGF0ZSBiYXNlZCBvbiBtYXhCb3VuZHNcbiAgaWYgKG5ld1ZpZXdwb3J0Lm1heEJvdW5kcyAmJiB2YWxpZGF0ZUJvdW5kcyhuZXdWaWV3cG9ydC5tYXhCb3VuZHMpKSB7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUeXBlICdWaWV3cG9ydCcgaXMgbWlzc2luZyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgZnJvbSB0eXBlICdNYXBTdGF0ZSc6IGlzU3BsaXQsIGlzVmlld3BvcnRTeW5jZWQsIGlzWm9vbUxvY2tlZCwgc3BsaXRNYXBWaWV3cG9ydHNcbiAgICBuZXdWaWV3cG9ydCA9IHVwZGF0ZVZpZXdwb3J0QmFzZWRPbkJvdW5kcyhvcmlnaW5hbFZpZXdwb3J0LCBuZXdWaWV3cG9ydCk7XG4gIH1cblxuICByZXR1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