kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
36 lines (34 loc) • 37.7 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.visStateReducerFactory = exports["default"] = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _actions = require("@kepler.gl/actions");
var _reduxActions = require("redux-actions");
var visStateUpdaters = _interopRequireWildcard(require("./vis-state-updaters"));
var _actionHandler; // SPDX-License-Identifier: MIT
// Copyright contributors to the kepler.gl project
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
/**
* Important: Do not rename `actionHandler` or the assignment pattern of property value.
* It is used to generate documentation
*/
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.RESET_MAP_CONFIG, visStateUpdaters.resetMapConfigUpdater), _actions.ActionTypes.SET_FILTER, visStateUpdaters.setFilterUpdater), _actions.ActionTypes.SET_FILTER_ANIMATION_TIME, visStateUpdaters.setFilterAnimationTimeUpdater), _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), (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.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), _actions.ActionTypes.UPDATE_OVERLAY_BLENDING, visStateUpdaters.updateOverlayBlendingUpdater), _actions.ActionTypes.UPDATE_VIS_DATA, visStateUpdaters.updateVisDataUpdater), (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.RENAME_DATASET, visStateUpdaters.renameDatasetUpdater), _actions.ActionTypes.UPDATE_DATASET_PROPS, visStateUpdaters.updateDatasetPropsUpdater), _actions.ActionTypes.SET_FEATURES, visStateUpdaters.setFeaturesUpdater), _actions.ActionTypes.DELETE_FEATURE, visStateUpdaters.deleteFeatureUpdater), _actions.ActionTypes.SET_POLYGON_FILTER_LAYER, visStateUpdaters.setPolygonFilterLayerUpdater), _actions.ActionTypes.SET_SELECTED_FEATURE, visStateUpdaters.setSelectedFeatureUpdater), _actions.ActionTypes.SET_EDITOR_MODE, visStateUpdaters.setEditorModeUpdater), _actions.ActionTypes.TOGGLE_EDITOR_VISIBILITY, visStateUpdaters.toggleEditorVisibilityUpdater), _actions.ActionTypes.TOGGLE_FILTER_FEATURE, visStateUpdaters.toggleFilterFeatureUpdater), _actions.ActionTypes.APPLY_CPU_FILTER, visStateUpdaters.applyCPUFilterUpdater), (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.SORT_TABLE_COLUMN, visStateUpdaters.sortTableColumnUpdater), _actions.ActionTypes.PIN_TABLE_COLUMN, visStateUpdaters.pinTableColumnUpdater), _actions.ActionTypes.COPY_TABLE_COLUMN, visStateUpdaters.copyTableColumnUpdater), _actions.ActionTypes.SET_COLUMN_DISPLAY_FORMAT, visStateUpdaters.setColumnDisplayFormatUpdater), _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"])(_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.CREATE_NEW_DATASET_SUCCESS, visStateUpdaters.createNewDatasetSuccessUpdater), _actions.ActionTypes.SET_LOADING_INDICATOR, visStateUpdaters.setLoadingIndicatorUpdater));
// construct vis-state reducer
var visStateReducerFactory = exports.visStateReducerFactory = function visStateReducerFactory() {
var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return (
// @ts-expect-error
(0, _reduxActions.handleActions)(actionHandler, _objectSpread(_objectSpread(_objectSpread({}, visStateUpdaters.INITIAL_VIS_STATE), initialState), {}, {
initialState: initialState
}))
);
};
var _default = exports["default"] = visStateReducerFactory();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYWN0aW9ucyIsInJlcXVpcmUiLCJfcmVkdXhBY3Rpb25zIiwidmlzU3RhdGVVcGRhdGVycyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX2FjdGlvbkhhbmRsZXIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJhY3Rpb25IYW5kbGVyIiwiQWN0aW9uVHlwZXMiLCJBRERfRklMVEVSIiwiYWRkRmlsdGVyVXBkYXRlciIsIkNSRUFURV9PUl9VUERBVEVfRklMVEVSIiwiY3JlYXRlT3JVcGRhdGVGaWx0ZXJVcGRhdGVyIiwiQUREX0xBWUVSIiwiYWRkTGF5ZXJVcGRhdGVyIiwiQVBQTFlfRklMVEVSX0NPTkZJRyIsImFwcGx5RmlsdGVyQ29uZmlnVXBkYXRlciIsIkFQUExZX0xBWUVSX0NPTkZJRyIsImFwcGx5TGF5ZXJDb25maWdVcGRhdGVyIiwiRFVQTElDQVRFX0xBWUVSIiwiZHVwbGljYXRlTGF5ZXJVcGRhdGVyIiwiU0VUX0ZJTFRFUl9WSUVXIiwic2V0RmlsdGVyVmlld1VwZGF0ZXIiLCJJTlRFUkFDVElPTl9DT05GSUdfQ0hBTkdFIiwiaW50ZXJhY3Rpb25Db25maWdDaGFuZ2VVcGRhdGVyIiwiTEFZRVJfQ0xJQ0siLCJsYXllckNsaWNrVXBkYXRlciIsIkxBWUVSX0NPTkZJR19DSEFOR0UiLCJsYXllckNvbmZpZ0NoYW5nZVVwZGF0ZXIiLCJMQVlFUl9TRVRfSVNfVkFMSUQiLCJsYXllclNldElzVmFsaWRVcGRhdGVyIiwiTEFZRVJfSE9WRVIiLCJsYXllckhvdmVyVXBkYXRlciIsIkxBWUVSX1RZUEVfQ0hBTkdFIiwibGF5ZXJUeXBlQ2hhbmdlVXBkYXRlciIsIkxBWUVSX1ZJU19DT05GSUdfQ0hBTkdFIiwibGF5ZXJWaXNDb25maWdDaGFuZ2VVcGRhdGVyIiwiTEFZRVJfVE9HR0xFX1ZJU0lCSUxJVFkiLCJsYXllclRvZ2dsZVZpc2liaWxpdHlVcGRhdGVyIiwiTEFZRVJfVEVYVF9MQUJFTF9DSEFOR0UiLCJsYXllclRleHRMYWJlbENoYW5nZVVwZGF0ZXIiLCJMQVlFUl9WSVNVQUxfQ0hBTk5FTF9DSEFOR0UiLCJsYXllclZpc3VhbENoYW5uZWxDaGFuZ2VVcGRhdGVyIiwiTEFZRVJfQ09MT1JfVUlfQ0hBTkdFIiwibGF5ZXJDb2xvclVJQ2hhbmdlVXBkYXRlciIsIlRPR0dMRV9MQVlFUl9BTklNQVRJT04iLCJ0b2dnbGVMYXllckFuaW1hdGlvblVwZGF0ZXIiLCJUT0dHTEVfTEFZRVJfQU5JTUFUSU9OX0NPTlRST0wiLCJ0b2dnbGVMYXllckFuaW1hdGlvbkNvbnRyb2xVcGRhdGVyIiwiTE9BRF9GSUxFUyIsImxvYWRGaWxlc1VwZGF0ZXIiLCJMT0FEX0ZJTEVTX0VSUiIsImxvYWRGaWxlc0VyclVwZGF0ZXIiLCJMT0FEX05FWFRfRklMRSIsImxvYWROZXh0RmlsZVVwZGF0ZXIiLCJMT0FEX0ZJTEVfU1RFUF9TVUNDRVNTIiwibG9hZEZpbGVTdGVwU3VjY2Vzc1VwZGF0ZXIiLCJNQVBfQ0xJQ0siLCJtYXBDbGlja1VwZGF0ZXIiLCJNT1VTRV9NT1ZFIiwibW91c2VNb3ZlVXBkYXRlciIsIlJFQ0VJVkVfTUFQX0NPTkZJRyIsInJlY2VpdmVNYXBDb25maWdVcGRhdGVyIiwiUkVNT1ZFX0RBVEFTRVQiLCJyZW1vdmVEYXRhc2V0VXBkYXRlciIsIlJFTU9WRV9GSUxURVIiLCJyZW1vdmVGaWx0ZXJVcGRhdGVyIiwiUkVNT1ZFX0xBWUVSIiwicmVtb3ZlTGF5ZXJVcGRhdGVyIiwiUkVPUkRFUl9MQVlFUiIsInJlb3JkZXJMYXllclVwZGF0ZXIiLCJSRVNFVF9NQVBfQ09ORklHIiwicmVzZXRNYXBDb25maWdVcGRhdGVyIiwiU0VUX0ZJTFRFUiIsInNldEZpbHRlclVwZGF0ZXIiLCJTRVRfRklMVEVSX0FOSU1BVElPTl9USU1FIiwic2V0RmlsdGVyQW5pbWF0aW9uVGltZVVwZGF0ZXIiLCJTRVRfRklMVEVSX0FOSU1BVElPTl9USU1FX0NPTkZJRyIsInNldEZpbHRlckFuaW1hdGlvblRpbWVDb25maWdVcGRhdGVyIiwiU0VUX0ZJTFRFUl9BTklNQVRJT05fV0lORE9XIiwic2V0RmlsdGVyQW5pbWF0aW9uV2luZG93VXBkYXRlciIsIlNFVF9GSUxURVJfUExPVCIsInNldEZpbHRlclBsb3RVcGRhdGVyIiwiU0VUX01BUF9JTkZPIiwic2V0TWFwSW5mb1VwZGF0ZXIiLCJTSE9XX0RBVEFTRVRfVEFCTEUiLCJzaG93RGF0YXNldFRhYmxlVXBkYXRlciIsIlVQREFURV9UQUJMRV9DT0xPUiIsInVwZGF0ZVRhYmxlQ29sb3JVcGRhdGVyIiwiVE9HR0xFX0ZJTFRFUl9BTklNQVRJT04iLCJ0b2dnbGVGaWx0ZXJBbmltYXRpb25VcGRhdGVyIiwiVVBEQVRFX0ZJTFRFUl9BTklNQVRJT05fU1BFRUQiLCJ1cGRhdGVGaWx0ZXJBbmltYXRpb25TcGVlZFVwZGF0ZXIiLCJTRVRfQU5JTUFUSU9OX0NPTkZJRyIsInNldEFuaW1hdGlvbkNvbmZpZ1VwZGF0ZXIiLCJTRVRfTEFZRVJfQU5JTUFUSU9OX1RJTUUiLCJzZXRMYXllckFuaW1hdGlvblRpbWVVcGRhdGVyIiwiVVBEQVRFX0xBWUVSX0FOSU1BVElPTl9TUEVFRCIsInVwZGF0ZUxheWVyQW5pbWF0aW9uU3BlZWRVcGRhdGVyIiwiVE9HR0xFX0xBWUVSX0ZPUl9NQVAiLCJ0b2dnbGVMYXllckZvck1hcFVwZGF0ZXIiLCJUT0dHTEVfU1BMSVRfTUFQIiwidG9nZ2xlU3BsaXRNYXBVcGRhdGVyIiwiVVBEQVRFX0xBWUVSX0JMRU5ESU5HIiwidXBkYXRlTGF5ZXJCbGVuZGluZ1VwZGF0ZXIiLCJVUERBVEVfT1ZFUkxBWV9CTEVORElORyIsInVwZGF0ZU92ZXJsYXlCbGVuZGluZ1VwZGF0ZXIiLCJVUERBVEVfVklTX0RBVEEiLCJ1cGRhdGVWaXNEYXRhVXBkYXRlciIsIlJFTkFNRV9EQVRBU0VUIiwicmVuYW1lRGF0YXNldFVwZGF0ZXIiLCJVUERBVEVfREFUQVNFVF9QUk9QUyIsInVwZGF0ZURhdGFzZXRQcm9wc1VwZGF0ZXIiLCJTRVRfRkVBVFVSRVMiLCJzZXRGZWF0dXJlc1VwZGF0ZXIiLCJERUxFVEVfRkVBVFVSRSIsImRlbGV0ZUZlYXR1cmVVcGRhdGVyIiwiU0VUX1BPTFlHT05fRklMVEVSX0xBWUVSIiwic2V0UG9seWdvbkZpbHRlckxheWVyVXBkYXRlciIsIlNFVF9TRUxFQ1RFRF9GRUFUVVJFIiwic2V0U2VsZWN0ZWRGZWF0dXJlVXBkYXRlciIsIlNFVF9FRElUT1JfTU9ERSIsInNldEVkaXRvck1vZGVVcGRhdGVyIiwiVE9HR0xFX0VESVRPUl9WSVNJQklMSVRZIiwidG9nZ2xlRWRpdG9yVmlzaWJpbGl0eVVwZGF0ZXIiLCJUT0dHTEVfRklMVEVSX0ZFQVRVUkUiLCJ0b2dnbGVGaWx0ZXJGZWF0dXJlVXBkYXRlciIsIkFQUExZX0NQVV9GSUxURVIiLCJhcHBseUNQVUZpbHRlclVwZGF0ZXIiLCJTT1JUX1RBQkxFX0NPTFVNTiIsInNvcnRUYWJsZUNvbHVtblVwZGF0ZXIiLCJQSU5fVEFCTEVfQ09MVU1OIiwicGluVGFibGVDb2x1bW5VcGRhdGVyIiwiQ09QWV9UQUJMRV9DT0xVTU4iLCJjb3B5VGFibGVDb2x1bW5VcGRhdGVyIiwiU0VUX0NPTFVNTl9ESVNQTEFZX0ZPUk1BVCIsInNldENvbHVtbkRpc3BsYXlGb3JtYXRVcGRhdGVyIiwiTkVYVF9GSUxFX0JBVENIIiwibmV4dEZpbGVCYXRjaFVwZGF0ZXIiLCJQUk9DRVNTX0ZJTEVfQ09OVEVOVCIsInByb2Nlc3NGaWxlQ29udGVudFVwZGF0ZXIiLCJTRVRfTEFZRVJfQU5JTUFUSU9OX1RJTUVfQ09ORklHIiwic2V0TGF5ZXJBbmltYXRpb25UaW1lQ29uZmlnVXBkYXRlciIsIkxBWUVSX0ZJTFRFUkVEX0lURU1TX0NIQU5HRSIsImxheWVyRmlsdGVyZWRJdGVtc0NoYW5nZVVwZGF0ZXIiLCJXTVNfRkVBVFVSRV9JTkZPIiwid21zRmVhdHVyZUluZm9VcGRhdGVyIiwiU1lOQ19USU1FX0ZJTFRFUl9XSVRIX0xBWUVSX1RJTUVMSU5FIiwic3luY1RpbWVGaWx0ZXJXaXRoTGF5ZXJUaW1lbGluZVVwZGF0ZXIiLCJTWU5DX1RJTUVfRklMVEVSX1RJTUVMSU5FX01PREUiLCJzZXRUaW1lRmlsdGVyVGltZWxpbmVNb2RlVXBkYXRlciIsIkFERF9FRkZFQ1QiLCJhZGRFZmZlY3RVcGRhdGVyIiwiUkVPUkRFUl9FRkZFQ1QiLCJyZW9yZGVyRWZmZWN0VXBkYXRlciIsIlJFTU9WRV9FRkZFQ1QiLCJyZW1vdmVFZmZlY3RVcGRhdGVyIiwiVVBEQVRFX0VGRkVDVCIsInVwZGF0ZUVmZmVjdFVwZGF0ZXIiLCJDUkVBVEVfTkVXX0RBVEFTRVRfU1VDQ0VTUyIsImNyZWF0ZU5ld0RhdGFzZXRTdWNjZXNzVXBkYXRlciIsIlNFVF9MT0FESU5HX0lORElDQVRPUiIsInNldExvYWRpbmdJbmRpY2F0b3JVcGRhdGVyIiwidmlzU3RhdGVSZWR1Y2VyRmFjdG9yeSIsImV4cG9ydHMiLCJpbml0aWFsU3RhdGUiLCJ1bmRlZmluZWQiLCJoYW5kbGVBY3Rpb25zIiwiSU5JVElBTF9WSVNfU1RBVEUiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uL3NyYy92aXMtc3RhdGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtBY3Rpb25UeXBlc30gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7aGFuZGxlQWN0aW9uc30gZnJvbSAncmVkdXgtYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyB2aXNTdGF0ZVVwZGF0ZXJzIGZyb20gJy4vdmlzLXN0YXRlLXVwZGF0ZXJzJztcblxuLyoqXG4gKiBJbXBvcnRhbnQ6IERvIG5vdCByZW5hbWUgYGFjdGlvbkhhbmRsZXJgIG9yIHRoZSBhc3NpZ25tZW50IHBhdHRlcm4gb2YgcHJvcGVydHkgdmFsdWUuXG4gKiBJdCBpcyB1c2VkIHRvIGdlbmVyYXRlIGRvY3VtZW50YXRpb25cbiAqL1xuY29uc3QgYWN0aW9uSGFuZGxlciA9IHtcbiAgW0FjdGlvblR5cGVzLkFERF9GSUxURVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLmFkZEZpbHRlclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkNSRUFURV9PUl9VUERBVEVfRklMVEVSXTogdmlzU3RhdGVVcGRhdGVycy5jcmVhdGVPclVwZGF0ZUZpbHRlclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkFERF9MQVlFUl06IHZpc1N0YXRlVXBkYXRlcnMuYWRkTGF5ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BUFBMWV9GSUxURVJfQ09ORklHXTogdmlzU3RhdGVVcGRhdGVycy5hcHBseUZpbHRlckNvbmZpZ1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkFQUExZX0xBWUVSX0NPTkZJR106IHZpc1N0YXRlVXBkYXRlcnMuYXBwbHlMYXllckNvbmZpZ1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkRVUExJQ0FURV9MQVlFUl06IHZpc1N0YXRlVXBkYXRlcnMuZHVwbGljYXRlTGF5ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRklMVEVSX1ZJRVddOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlclZpZXdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5JTlRFUkFDVElPTl9DT05GSUdfQ0hBTkdFXTogdmlzU3RhdGVVcGRhdGVycy5pbnRlcmFjdGlvbkNvbmZpZ0NoYW5nZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX0NMSUNLXTogdmlzU3RhdGVVcGRhdGVycy5sYXllckNsaWNrVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfQ09ORklHX0NIQU5HRV06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJDb25maWdDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9TRVRfSVNfVkFMSURdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyU2V0SXNWYWxpZFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX0hPVkVSXTogdmlzU3RhdGVVcGRhdGVycy5sYXllckhvdmVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTEFZRVJfVFlQRV9DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyVHlwZUNoYW5nZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX1ZJU19DT05GSUdfQ0hBTkdFXTogdmlzU3RhdGVVcGRhdGVycy5sYXllclZpc0NvbmZpZ0NoYW5nZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX1RPR0dMRV9WSVNJQklMSVRZXTogdmlzU3RhdGVVcGRhdGVycy5sYXllclRvZ2dsZVZpc2liaWxpdHlVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9URVhUX0xBQkVMX0NIQU5HRV06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJUZXh0TGFiZWxDaGFuZ2VVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9WSVNVQUxfQ0hBTk5FTF9DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyVmlzdWFsQ2hhbm5lbENoYW5nZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxBWUVSX0NPTE9SX1VJX0NIQU5HRV06IHZpc1N0YXRlVXBkYXRlcnMubGF5ZXJDb2xvclVJQ2hhbmdlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVE9HR0xFX0xBWUVSX0FOSU1BVElPTl06IHZpc1N0YXRlVXBkYXRlcnMudG9nZ2xlTGF5ZXJBbmltYXRpb25VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5UT0dHTEVfTEFZRVJfQU5JTUFUSU9OX0NPTlRST0xdOiB2aXNTdGF0ZVVwZGF0ZXJzLnRvZ2dsZUxheWVyQW5pbWF0aW9uQ29udHJvbFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxPQURfRklMRVNdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxvYWRGaWxlc1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkxPQURfRklMRVNfRVJSXTogdmlzU3RhdGVVcGRhdGVycy5sb2FkRmlsZXNFcnJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MT0FEX05FWFRfRklMRV06IHZpc1N0YXRlVXBkYXRlcnMubG9hZE5leHRGaWxlVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuTE9BRF9GSUxFX1NURVBfU1VDQ0VTU106IHZpc1N0YXRlVXBkYXRlcnMubG9hZEZpbGVTdGVwU3VjY2Vzc1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLk1BUF9DTElDS106IHZpc1N0YXRlVXBkYXRlcnMubWFwQ2xpY2tVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5NT1VTRV9NT1ZFXTogdmlzU3RhdGVVcGRhdGVycy5tb3VzZU1vdmVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRUNFSVZFX01BUF9DT05GSUddOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlY2VpdmVNYXBDb25maWdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfREFUQVNFVF06IHZpc1N0YXRlVXBkYXRlcnMucmVtb3ZlRGF0YXNldFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFTU9WRV9GSUxURVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbW92ZUZpbHRlclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFTU9WRV9MQVlFUl06IHZpc1N0YXRlVXBkYXRlcnMucmVtb3ZlTGF5ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU9SREVSX0xBWUVSXTogdmlzU3RhdGVVcGRhdGVycy5yZW9yZGVyTGF5ZXJVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRVNFVF9NQVBfQ09ORklHXTogdmlzU3RhdGVVcGRhdGVycy5yZXNldE1hcENvbmZpZ1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9GSUxURVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlclVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9GSUxURVJfQU5JTUFUSU9OX1RJTUVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlckFuaW1hdGlvblRpbWVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRklMVEVSX0FOSU1BVElPTl9USU1FX0NPTkZJR106XG4gICAgdmlzU3RhdGVVcGRhdGVycy5zZXRGaWx0ZXJBbmltYXRpb25UaW1lQ29uZmlnVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0ZJTFRFUl9BTklNQVRJT05fV0lORE9XXTogdmlzU3RhdGVVcGRhdGVycy5zZXRGaWx0ZXJBbmltYXRpb25XaW5kb3dVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfRklMVEVSX1BMT1RdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEZpbHRlclBsb3RVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TRVRfTUFQX0lORk9dOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldE1hcEluZm9VcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TSE9XX0RBVEFTRVRfVEFCTEVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNob3dEYXRhc2V0VGFibGVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5VUERBVEVfVEFCTEVfQ09MT1JdOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZVRhYmxlQ29sb3JVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5UT0dHTEVfRklMVEVSX0FOSU1BVElPTl06IHZpc1N0YXRlVXBkYXRlcnMudG9nZ2xlRmlsdGVyQW5pbWF0aW9uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0ZJTFRFUl9BTklNQVRJT05fU1BFRURdOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZUZpbHRlckFuaW1hdGlvblNwZWVkVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0FOSU1BVElPTl9DT05GSUddOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldEFuaW1hdGlvbkNvbmZpZ1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9MQVlFUl9BTklNQVRJT05fVElNRV06IHZpc1N0YXRlVXBkYXRlcnMuc2V0TGF5ZXJBbmltYXRpb25UaW1lVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0xBWUVSX0FOSU1BVElPTl9TUEVFRF06IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlTGF5ZXJBbmltYXRpb25TcGVlZFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9MQVlFUl9GT1JfTUFQXTogdmlzU3RhdGVVcGRhdGVycy50b2dnbGVMYXllckZvck1hcFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9TUExJVF9NQVBdOiB2aXNTdGF0ZVVwZGF0ZXJzLnRvZ2dsZVNwbGl0TWFwVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0xBWUVSX0JMRU5ESU5HXTogdmlzU3RhdGVVcGRhdGVycy51cGRhdGVMYXllckJsZW5kaW5nVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX09WRVJMQVlfQkxFTkRJTkddOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZU92ZXJsYXlCbGVuZGluZ1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlVQREFURV9WSVNfREFUQV06IHZpc1N0YXRlVXBkYXRlcnMudXBkYXRlVmlzRGF0YVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFTkFNRV9EQVRBU0VUXTogdmlzU3RhdGVVcGRhdGVycy5yZW5hbWVEYXRhc2V0VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuVVBEQVRFX0RBVEFTRVRfUFJPUFNdOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZURhdGFzZXRQcm9wc1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9GRUFUVVJFU106IHZpc1N0YXRlVXBkYXRlcnMuc2V0RmVhdHVyZXNVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5ERUxFVEVfRkVBVFVSRV06IHZpc1N0YXRlVXBkYXRlcnMuZGVsZXRlRmVhdHVyZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9QT0xZR09OX0ZJTFRFUl9MQVlFUl06IHZpc1N0YXRlVXBkYXRlcnMuc2V0UG9seWdvbkZpbHRlckxheWVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX1NFTEVDVEVEX0ZFQVRVUkVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldFNlbGVjdGVkRmVhdHVyZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9FRElUT1JfTU9ERV06IHZpc1N0YXRlVXBkYXRlcnMuc2V0RWRpdG9yTW9kZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9FRElUT1JfVklTSUJJTElUWV06IHZpc1N0YXRlVXBkYXRlcnMudG9nZ2xlRWRpdG9yVmlzaWJpbGl0eVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9GSUxURVJfRkVBVFVSRV06IHZpc1N0YXRlVXBkYXRlcnMudG9nZ2xlRmlsdGVyRmVhdHVyZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkFQUExZX0NQVV9GSUxURVJdOiB2aXNTdGF0ZVVwZGF0ZXJzLmFwcGx5Q1BVRmlsdGVyVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU09SVF9UQUJMRV9DT0xVTU5dOiB2aXNTdGF0ZVVwZGF0ZXJzLnNvcnRUYWJsZUNvbHVtblVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlBJTl9UQUJMRV9DT0xVTU5dOiB2aXNTdGF0ZVVwZGF0ZXJzLnBpblRhYmxlQ29sdW1uVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuQ09QWV9UQUJMRV9DT0xVTU5dOiB2aXNTdGF0ZVVwZGF0ZXJzLmNvcHlUYWJsZUNvbHVtblVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9DT0xVTU5fRElTUExBWV9GT1JNQVRdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldENvbHVtbkRpc3BsYXlGb3JtYXRVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5ORVhUX0ZJTEVfQkFUQ0hdOiB2aXNTdGF0ZVVwZGF0ZXJzLm5leHRGaWxlQmF0Y2hVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5QUk9DRVNTX0ZJTEVfQ09OVEVOVF06IHZpc1N0YXRlVXBkYXRlcnMucHJvY2Vzc0ZpbGVDb250ZW50VXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX0xBWUVSX0FOSU1BVElPTl9USU1FX0NPTkZJR106XG4gICAgdmlzU3RhdGVVcGRhdGVycy5zZXRMYXllckFuaW1hdGlvblRpbWVDb25maWdVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5MQVlFUl9GSUxURVJFRF9JVEVNU19DSEFOR0VdOiB2aXNTdGF0ZVVwZGF0ZXJzLmxheWVyRmlsdGVyZWRJdGVtc0NoYW5nZVVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLldNU19GRUFUVVJFX0lORk9dOiB2aXNTdGF0ZVVwZGF0ZXJzLndtc0ZlYXR1cmVJbmZvVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU1lOQ19USU1FX0ZJTFRFUl9XSVRIX0xBWUVSX1RJTUVMSU5FXTpcbiAgICB2aXNTdGF0ZVVwZGF0ZXJzLnN5bmNUaW1lRmlsdGVyV2l0aExheWVyVGltZWxpbmVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5TWU5DX1RJTUVfRklMVEVSX1RJTUVMSU5FX01PREVdOiB2aXNTdGF0ZVVwZGF0ZXJzLnNldFRpbWVGaWx0ZXJUaW1lbGluZU1vZGVVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5BRERfRUZGRUNUXTogdmlzU3RhdGVVcGRhdGVycy5hZGRFZmZlY3RVcGRhdGVyLFxuXG4gIFtBY3Rpb25UeXBlcy5SRU9SREVSX0VGRkVDVF06IHZpc1N0YXRlVXBkYXRlcnMucmVvcmRlckVmZmVjdFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlJFTU9WRV9FRkZFQ1RdOiB2aXNTdGF0ZVVwZGF0ZXJzLnJlbW92ZUVmZmVjdFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlVQREFURV9FRkZFQ1RdOiB2aXNTdGF0ZVVwZGF0ZXJzLnVwZGF0ZUVmZmVjdFVwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLkNSRUFURV9ORVdfREFUQVNFVF9TVUNDRVNTXTogdmlzU3RhdGVVcGRhdGVycy5jcmVhdGVOZXdEYXRhc2V0U3VjY2Vzc1VwZGF0ZXIsXG5cbiAgW0FjdGlvblR5cGVzLlNFVF9MT0FESU5HX0lORElDQVRPUl06IHZpc1N0YXRlVXBkYXRlcnMuc2V0TG9hZGluZ0luZGljYXRvclVwZGF0ZXJcbn07XG5cbi8vIGNvbnN0cnVjdCB2aXMtc3RhdGUgcmVkdWNlclxuZXhwb3J0IGNvbnN0IHZpc1N0YXRlUmVkdWNlckZhY3RvcnkgPSAoaW5pdGlhbFN0YXRlID0ge30pID0+XG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgaGFuZGxlQWN0aW9ucyhhY3Rpb25IYW5kbGVyLCB7XG4gICAgLi4udmlzU3RhdGVVcGRhdGVycy5JTklUSUFMX1ZJU19TVEFURSxcbiAgICAuLi5pbml0aWFsU3RhdGUsXG4gICAgaW5pdGlhbFN0YXRlXG4gIH0pO1xuXG5leHBvcnQgZGVmYXVsdCB2aXNTdGF0ZVJlZHVjZXJGYWN0b3J5KCk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUdBLElBQUFBLFFBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGFBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGdCQUFBLEdBQUFDLHVCQUFBLENBQUFILE9BQUE7QUFBeUQsSUFBQUksY0FBQSxFQUx6RDtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQs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
;