kepler.gl
Version:
kepler.gl is a webgl based application to visualize large scale location data in the browser
109 lines (89 loc) • 16.2 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.uiStateReducerFactory = exports.INITIAL_UI_STATE = exports.DEFAULT_EXPORT_DATA = exports.DEFAULT_EXPORT_IMAGE = exports.DEFAULT_MAP_CONTROLS = exports.DEFAULT_MODAL = exports.DEFAULT_ACTIVE_SIDE_PANEL = undefined;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _actionHandler; // Copyright (c) 2018 Uber Technologies, Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
var _reduxActions = require('redux-actions');
var _actionTypes = require('../constants/action-types');
var _actionTypes2 = _interopRequireDefault(_actionTypes);
var _defaultSettings = require('../constants/default-settings');
var _uiStateUpdaters = require('./ui-state-updaters');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var DEFAULT_ACTIVE_SIDE_PANEL = exports.DEFAULT_ACTIVE_SIDE_PANEL = 'layer';
var DEFAULT_MODAL = exports.DEFAULT_MODAL = _defaultSettings.ADD_DATA_ID;
var DEFAULT_MAP_CONTROLS = exports.DEFAULT_MAP_CONTROLS = {
visibleLayers: {
show: true,
active: false
},
mapLegend: {
show: true,
active: false
},
toggle3d: {
show: true
},
splitMap: {
show: true
}
};
var DEFAULT_EXPORT_IMAGE = exports.DEFAULT_EXPORT_IMAGE = {
// user options
ratio: _defaultSettings.RATIOS.SCREEN,
resolution: _defaultSettings.RESOLUTIONS.ONE_X,
legend: false,
// exporting state
imageDataUri: '',
exporting: false
};
var DEFAULT_EXPORT_DATA = exports.DEFAULT_EXPORT_DATA = {
selectedDataset: '',
dataType: _defaultSettings.EXPORT_DATA_TYPE.CSV,
filtered: true,
config: false, // no longer used, since we removed the option to export config from modal data export
data: false // this is used in modal config export
};
var INITIAL_UI_STATE = exports.INITIAL_UI_STATE = {
readOnly: false,
activeSidePanel: DEFAULT_ACTIVE_SIDE_PANEL,
currentModal: DEFAULT_MODAL,
datasetKeyToRemove: null,
visibleDropdown: null,
// export image modal ui
exportImage: DEFAULT_EXPORT_IMAGE,
// export data modal ui
exportData: DEFAULT_EXPORT_DATA,
// map control panels
mapControls: DEFAULT_MAP_CONTROLS
};
var actionHandler = (_actionHandler = {}, (0, _defineProperty3.default)(_actionHandler, _actionTypes2.default.TOGGLE_SIDE_PANEL, _uiStateUpdaters.toggleSidePanelUpdater), (0, _defineProperty3.default)(_actionHandler, _actionTypes2.default.TOGGLE_MODAL, _uiStateUpdaters.toggleModalUpdater), (0, _defineProperty3.default)(_actionHandler, _actionTypes2.default.SHOW_EXPORT_DROPDOWN, _uiStateUpdaters.showExportDropdownUpdater), (0, _defineProperty3.default)(_actionHandler, _actionTypes2.default.HIDE_EXPORT_DROPDOWN, _uiStateUpdaters.hideExportDropdownUpdater), (0, _defineProperty3.default)(_actionHandler, _actionTypes2.default.OPEN_DELETE_MODAL, _uiStateUpdaters.openDeleteModalUpdater), (0, _defineProperty3.default)(_actionHandler, _actionTypes2.default.TOGGLE_MAP_CONTROL, _uiStateUpdaters.toggleMapControlUpdater), (0, _defineProperty3.default)(_actionHandler, _actionTypes2.default.SET_RATIO, _uiStateUpdaters.setRatioUpdater), (0, _defineProperty3.default)(_actionHandler, _actionTypes2.default.SET_RESOLUTION, _uiStateUpdaters.setResolutionUpdater), (0, _defineProperty3.default)(_actionHandler, _actionTypes2.default.TOGGLE_LEGEND, _uiStateUpdaters.toggleLegendUpdater), (0, _defineProperty3.default)(_actionHandler, _actionTypes2.default.START_EXPORTING_IMAGE, _uiStateUpdaters.startExportingImage), (0, _defineProperty3.default)(_actionHandler, _actionTypes2.default.SET_EXPORT_IMAGE_DATA_URI, _uiStateUpdaters.setExportImageDataUri), (0, _defineProperty3.default)(_actionHandler, _actionTypes2.default.CLEANUP_EXPORT_IMAGE, _uiStateUpdaters.cleanupExportImage), (0, _defineProperty3.default)(_actionHandler, _actionTypes2.default.SET_EXPORT_SELECTED_DATASET, _uiStateUpdaters.setExportSelectedDatasetUpdater), (0, _defineProperty3.default)(_actionHandler, _actionTypes2.default.SET_EXPORT_DATA_TYPE, _uiStateUpdaters.setExportDataTypeUpdater), (0, _defineProperty3.default)(_actionHandler, _actionTypes2.default.SET_EXPORT_FILTERED, _uiStateUpdaters.setExportFilteredUpdater), (0, _defineProperty3.default)(_actionHandler, _actionTypes2.default.SET_EXPORT_CONFIG, _uiStateUpdaters.setExportConfigUpdater), (0, _defineProperty3.default)(_actionHandler, _actionTypes2.default.SET_EXPORT_DATA, _uiStateUpdaters.setExportDataUpdater), _actionHandler);
/* Reducer */
var uiStateReducerFactory = exports.uiStateReducerFactory = function uiStateReducerFactory() {
var initialState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return (0, _reduxActions.handleActions)(actionHandler, (0, _extends3.default)({}, INITIAL_UI_STATE, initialState, { initialState: initialState }));
};
exports.default = uiStateReducerFactory();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWR1Y2Vycy91aS1zdGF0ZS5qcyJdLCJuYW1lcyI6WyJERUZBVUxUX0FDVElWRV9TSURFX1BBTkVMIiwiREVGQVVMVF9NT0RBTCIsIkFERF9EQVRBX0lEIiwiREVGQVVMVF9NQVBfQ09OVFJPTFMiLCJ2aXNpYmxlTGF5ZXJzIiwic2hvdyIsImFjdGl2ZSIsIm1hcExlZ2VuZCIsInRvZ2dsZTNkIiwic3BsaXRNYXAiLCJERUZBVUxUX0VYUE9SVF9JTUFHRSIsInJhdGlvIiwiUkFUSU9TIiwiU0NSRUVOIiwicmVzb2x1dGlvbiIsIlJFU09MVVRJT05TIiwiT05FX1giLCJsZWdlbmQiLCJpbWFnZURhdGFVcmkiLCJleHBvcnRpbmciLCJERUZBVUxUX0VYUE9SVF9EQVRBIiwic2VsZWN0ZWREYXRhc2V0IiwiZGF0YVR5cGUiLCJFWFBPUlRfREFUQV9UWVBFIiwiQ1NWIiwiZmlsdGVyZWQiLCJjb25maWciLCJkYXRhIiwiSU5JVElBTF9VSV9TVEFURSIsInJlYWRPbmx5IiwiYWN0aXZlU2lkZVBhbmVsIiwiY3VycmVudE1vZGFsIiwiZGF0YXNldEtleVRvUmVtb3ZlIiwidmlzaWJsZURyb3Bkb3duIiwiZXhwb3J0SW1hZ2UiLCJleHBvcnREYXRhIiwibWFwQ29udHJvbHMiLCJhY3Rpb25IYW5kbGVyIiwiQWN0aW9uVHlwZXMiLCJUT0dHTEVfU0lERV9QQU5FTCIsInRvZ2dsZVNpZGVQYW5lbFVwZGF0ZXIiLCJUT0dHTEVfTU9EQUwiLCJ0b2dnbGVNb2RhbFVwZGF0ZXIiLCJTSE9XX0VYUE9SVF9EUk9QRE9XTiIsInNob3dFeHBvcnREcm9wZG93blVwZGF0ZXIiLCJISURFX0VYUE9SVF9EUk9QRE9XTiIsImhpZGVFeHBvcnREcm9wZG93blVwZGF0ZXIiLCJPUEVOX0RFTEVURV9NT0RBTCIsIm9wZW5EZWxldGVNb2RhbFVwZGF0ZXIiLCJUT0dHTEVfTUFQX0NPTlRST0wiLCJ0b2dnbGVNYXBDb250cm9sVXBkYXRlciIsIlNFVF9SQVRJTyIsInNldFJhdGlvVXBkYXRlciIsIlNFVF9SRVNPTFVUSU9OIiwic2V0UmVzb2x1dGlvblVwZGF0ZXIiLCJUT0dHTEVfTEVHRU5EIiwidG9nZ2xlTGVnZW5kVXBkYXRlciIsIlNUQVJUX0VYUE9SVElOR19JTUFHRSIsInN0YXJ0RXhwb3J0aW5nSW1hZ2UiLCJTRVRfRVhQT1JUX0lNQUdFX0RBVEFfVVJJIiwic2V0RXhwb3J0SW1hZ2VEYXRhVXJpIiwiQ0xFQU5VUF9FWFBPUlRfSU1BR0UiLCJjbGVhbnVwRXhwb3J0SW1hZ2UiLCJTRVRfRVhQT1JUX1NFTEVDVEVEX0RBVEFTRVQiLCJzZXRFeHBvcnRTZWxlY3RlZERhdGFzZXRVcGRhdGVyIiwiU0VUX0VYUE9SVF9EQVRBX1RZUEUiLCJzZXRFeHBvcnREYXRhVHlwZVVwZGF0ZXIiLCJTRVRfRVhQT1JUX0ZJTFRFUkVEIiwic2V0RXhwb3J0RmlsdGVyZWRVcGRhdGVyIiwiU0VUX0VYUE9SVF9DT05GSUciLCJzZXRFeHBvcnRDb25maWdVcGRhdGVyIiwiU0VUX0VYUE9SVF9EQVRBIiwic2V0RXhwb3J0RGF0YVVwZGF0ZXIiLCJ1aVN0YXRlUmVkdWNlckZhY3RvcnkiLCJpbml0aWFsU3RhdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztvQkFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFDQTs7OztBQUNBOztBQU1BOzs7O0FBdUJPLElBQU1BLGdFQUE0QixPQUFsQztBQUNBLElBQU1DLHdDQUFnQkMsNEJBQXRCOztBQUVBLElBQU1DLHNEQUF1QjtBQUNsQ0MsaUJBQWU7QUFDYkMsVUFBTSxJQURPO0FBRWJDLFlBQVE7QUFGSyxHQURtQjtBQUtsQ0MsYUFBVztBQUNURixVQUFNLElBREc7QUFFVEMsWUFBUTtBQUZDLEdBTHVCO0FBU2xDRSxZQUFVO0FBQ1JILFVBQU07QUFERSxHQVR3QjtBQVlsQ0ksWUFBVTtBQUNSSixVQUFNO0FBREU7QUFad0IsQ0FBN0I7O0FBaUJBLElBQU1LLHNEQUF1QjtBQUNsQztBQUNBQyxTQUFPQyx3QkFBT0MsTUFGb0I7QUFHbENDLGNBQVlDLDZCQUFZQyxLQUhVO0FBSWxDQyxVQUFRLEtBSjBCO0FBS2xDO0FBQ0FDLGdCQUFjLEVBTm9CO0FBT2xDQyxhQUFXO0FBUHVCLENBQTdCOztBQVVBLElBQU1DLG9EQUFzQjtBQUNqQ0MsbUJBQWlCLEVBRGdCO0FBRWpDQyxZQUFVQyxrQ0FBaUJDLEdBRk07QUFHakNDLFlBQVUsSUFIdUI7QUFJakNDLFVBQVEsS0FKeUIsRUFJbEI7QUFDZkMsUUFBTSxLQUwyQixDQUtyQjtBQUxxQixDQUE1Qjs7QUFRQSxJQUFNQyw4Q0FBbUI7QUFDOUJDLFlBQVUsS0FEb0I7QUFFOUJDLG1CQUFpQjlCLHlCQUZhO0FBRzlCK0IsZ0JBQWM5QixhQUhnQjtBQUk5QitCLHNCQUFvQixJQUpVO0FBSzlCQyxtQkFBaUIsSUFMYTtBQU05QjtBQUNBQyxlQUFheEIsb0JBUGlCO0FBUTlCO0FBQ0F5QixjQUFZZixtQkFUa0I7QUFVOUI7QUFDQWdCLGVBQWFqQztBQVhpQixDQUF6Qjs7QUFjUCxJQUFNa0Msb0ZBQ0hDLHNCQUFZQyxpQkFEVCxFQUM2QkMsdUNBRDdCLGlEQUVIRixzQkFBWUcsWUFGVCxFQUV3QkMsbUNBRnhCLGlEQUdISixzQkFBWUssb0JBSFQsRUFHZ0NDLDBDQUhoQyxpREFJSE4sc0JBQVlPLG9CQUpULEVBSWdDQywwQ0FKaEMsaURBS0hSLHNCQUFZUyxpQkFMVCxFQUs2QkMsdUNBTDdCLGlEQU1IVixzQkFBWVcsa0JBTlQsRUFNOEJDLHdDQU45QixpREFRSFosc0JBQVlhLFNBUlQsRUFRcUJDLGdDQVJyQixpREFTSGQsc0JBQVllLGNBVFQsRUFTMEJDLHFDQVQxQixpREFVSGhCLHNCQUFZaUIsYUFWVCxFQVV5QkMsb0NBVnpCLGlEQVdIbEIsc0JBQVltQixxQkFYVCxFQVdpQ0Msb0NBWGpDLGlEQVlIcEIsc0JBQVlxQix5QkFaVCxFQVlxQ0Msc0NBWnJDLGlEQWFIdEIsc0JBQVl1QixvQkFiVCxFQWFnQ0MsbUNBYmhDLGlEQWVIeEIsc0JBQVl5QiwyQkFmVCxFQWV1Q0MsZ0RBZnZDLGlEQWdCSDFCLHNCQUFZMkIsb0JBaEJULEVBZ0JnQ0MseUNBaEJoQyxpREFpQkg1QixzQkFBWTZCLG1CQWpCVCxFQWlCK0JDLHlDQWpCL0IsaURBa0JIOUIsc0JBQVkrQixpQkFsQlQsRUFrQjZCQyx1Q0FsQjdCLGlEQW1CSGhDLHNCQUFZaUMsZUFuQlQsRUFtQjJCQyxxQ0FuQjNCLGtCQUFOOztBQXNCQTtBQUNPLElBQU1DLHdEQUF3QixTQUF4QkEscUJBQXdCO0FBQUEsTUFBQ0MsWUFBRCx1RUFBZ0IsRUFBaEI7QUFBQSxTQUNuQyxpQ0FBY3JDLGFBQWQsNkJBQWlDVCxnQkFBakMsRUFBc0Q4QyxZQUF0RCxJQUFvRUEsMEJBQXBFLElBRG1DO0FBQUEsQ0FBOUI7O2tCQUdRRCx1QiIsImZpbGUiOiJ1aS1zdGF0ZS5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAxOCBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7aGFuZGxlQWN0aW9uc30gZnJvbSAncmVkdXgtYWN0aW9ucyc7XG5pbXBvcnQgQWN0aW9uVHlwZXMgZnJvbSAnY29uc3RhbnRzL2FjdGlvbi10eXBlcyc7XG5pbXBvcnQge1xuICBBRERfREFUQV9JRCxcbiAgRVhQT1JUX0RBVEFfVFlQRSxcbiAgUkFUSU9TLFxuICBSRVNPTFVUSU9OU1xufSBmcm9tICdjb25zdGFudHMvZGVmYXVsdC1zZXR0aW5ncyc7XG5pbXBvcnQge1xuICBvcGVuRGVsZXRlTW9kYWxVcGRhdGVyLFxuICB0b2dnbGVNb2RhbFVwZGF0ZXIsXG4gIHNob3dFeHBvcnREcm9wZG93blVwZGF0ZXIsXG4gIGhpZGVFeHBvcnREcm9wZG93blVwZGF0ZXIsXG4gIHRvZ2dsZVNpZGVQYW5lbFVwZGF0ZXIsXG4gIHRvZ2dsZU1hcENvbnRyb2xVcGRhdGVyLFxuXG4gIC8vIGV4cG9ydCBpbWFnZVxuICBjbGVhbnVwRXhwb3J0SW1hZ2UsXG4gIHNldEV4cG9ydEltYWdlRGF0YVVyaSxcbiAgc2V0UmF0aW9VcGRhdGVyLFxuICBzZXRSZXNvbHV0aW9uVXBkYXRlcixcbiAgc3RhcnRFeHBvcnRpbmdJbWFnZSxcbiAgdG9nZ2xlTGVnZW5kVXBkYXRlcixcbiAgLy8gZXhwb3J0IGRhdGFcbiAgc2V0RXhwb3J0U2VsZWN0ZWREYXRhc2V0VXBkYXRlcixcbiAgc2V0RXhwb3J0RGF0YVR5cGVVcGRhdGVyLFxuICBzZXRFeHBvcnRGaWx0ZXJlZFVwZGF0ZXIsXG4gIHNldEV4cG9ydENvbmZpZ1VwZGF0ZXIsXG4gIHNldEV4cG9ydERhdGFVcGRhdGVyXG59IGZyb20gJy4vdWktc3RhdGUtdXBkYXRlcnMnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9BQ1RJVkVfU0lERV9QQU5FTCA9ICdsYXllcic7XG5leHBvcnQgY29uc3QgREVGQVVMVF9NT0RBTCA9IEFERF9EQVRBX0lEO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9NQVBfQ09OVFJPTFMgPSB7XG4gIHZpc2libGVMYXllcnM6IHtcbiAgICBzaG93OiB0cnVlLFxuICAgIGFjdGl2ZTogZmFsc2VcbiAgfSxcbiAgbWFwTGVnZW5kOiB7XG4gICAgc2hvdzogdHJ1ZSxcbiAgICBhY3RpdmU6IGZhbHNlXG4gIH0sXG4gIHRvZ2dsZTNkOiB7XG4gICAgc2hvdzogdHJ1ZVxuICB9LFxuICBzcGxpdE1hcDoge1xuICAgIHNob3c6IHRydWVcbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRVhQT1JUX0lNQUdFID0ge1xuICAvLyB1c2VyIG9wdGlvbnNcbiAgcmF0aW86IFJBVElPUy5TQ1JFRU4sXG4gIHJlc29sdXRpb246IFJFU09MVVRJT05TLk9ORV9YLFxuICBsZWdlbmQ6IGZhbHNlLFxuICAvLyBleHBvcnRpbmcgc3RhdGVcbiAgaW1hZ2VEYXRhVXJpOiAnJyxcbiAgZXhwb3J0aW5nOiBmYWxzZVxufTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRVhQT1JUX0RBVEEgPSB7XG4gIHNlbGVjdGVkRGF0YXNldDogJycsXG4gIGRhdGFUeXBlOiBFWFBPUlRfREFUQV9UWVBFLkNTVixcbiAgZmlsdGVyZWQ6IHRydWUsXG4gIGNvbmZpZzogZmFsc2UsIC8vIG5vIGxvbmdlciB1c2VkLCBzaW5jZSB3ZSByZW1vdmVkIHRoZSBvcHRpb24gdG8gZXhwb3J0IGNvbmZpZyBmcm9tIG1vZGFsIGRhdGEgZXhwb3J0XG4gIGRhdGE6IGZhbHNlIC8vIHRoaXMgaXMgdXNlZCBpbiBtb2RhbCBjb25maWcgZXhwb3J0XG59O1xuXG5leHBvcnQgY29uc3QgSU5JVElBTF9VSV9TVEFURSA9IHtcbiAgcmVhZE9ubHk6IGZhbHNlLFxuICBhY3RpdmVTaWRlUGFuZWw6IERFRkFVTFRfQUNUSVZFX1NJREVfUEFORUwsXG4gIGN1cnJlbnRNb2RhbDogREVGQVVMVF9NT0RBTCxcbiAgZGF0YXNldEtleVRvUmVtb3ZlOiBudWxsLFxuICB2aXNpYmxlRHJvcGRvd246IG51bGwsXG4gIC8vIGV4cG9ydCBpbWFnZSBtb2RhbCB1aVxuICBleHBvcnRJbWFnZTogREVGQVVMVF9FWFBPUlRfSU1BR0UsXG4gIC8vIGV4cG9ydCBkYXRhIG1vZGFsIHVpXG4gIGV4cG9ydERhdGE6IERFRkFVTFRfRVhQT1JUX0RBVEEsXG4gIC8vIG1hcCBjb250cm9sIHBhbmVsc1xuICBtYXBDb250cm9sczogREVGQVVMVF9NQVBfQ09OVFJPTFNcbn07XG5cbmNvbnN0IGFjdGlvbkhhbmRsZXIgPSB7XG4gIFtBY3Rpb25UeXBlcy5UT0dHTEVfU0lERV9QQU5FTF06IHRvZ2dsZVNpZGVQYW5lbFVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5UT0dHTEVfTU9EQUxdOiB0b2dnbGVNb2RhbFVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5TSE9XX0VYUE9SVF9EUk9QRE9XTl06IHNob3dFeHBvcnREcm9wZG93blVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5ISURFX0VYUE9SVF9EUk9QRE9XTl06IGhpZGVFeHBvcnREcm9wZG93blVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5PUEVOX0RFTEVURV9NT0RBTF06IG9wZW5EZWxldGVNb2RhbFVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5UT0dHTEVfTUFQX0NPTlRST0xdOiB0b2dnbGVNYXBDb250cm9sVXBkYXRlcixcblxuICBbQWN0aW9uVHlwZXMuU0VUX1JBVElPXTogc2V0UmF0aW9VcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuU0VUX1JFU09MVVRJT05dOiBzZXRSZXNvbHV0aW9uVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlRPR0dMRV9MRUdFTkRdOiB0b2dnbGVMZWdlbmRVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuU1RBUlRfRVhQT1JUSU5HX0lNQUdFXTogc3RhcnRFeHBvcnRpbmdJbWFnZSxcbiAgW0FjdGlvblR5cGVzLlNFVF9FWFBPUlRfSU1BR0VfREFUQV9VUkldOiBzZXRFeHBvcnRJbWFnZURhdGFVcmksXG4gIFtBY3Rpb25UeXBlcy5DTEVBTlVQX0VYUE9SVF9JTUFHRV06IGNsZWFudXBFeHBvcnRJbWFnZSxcblxuICBbQWN0aW9uVHlwZXMuU0VUX0VYUE9SVF9TRUxFQ1RFRF9EQVRBU0VUXTogc2V0RXhwb3J0U2VsZWN0ZWREYXRhc2V0VXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9FWFBPUlRfREFUQV9UWVBFXTogc2V0RXhwb3J0RGF0YVR5cGVVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuU0VUX0VYUE9SVF9GSUxURVJFRF06IHNldEV4cG9ydEZpbHRlcmVkVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9FWFBPUlRfQ09ORklHXTogc2V0RXhwb3J0Q29uZmlnVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlNFVF9FWFBPUlRfREFUQV06IHNldEV4cG9ydERhdGFVcGRhdGVyXG59O1xuXG4vKiBSZWR1Y2VyICovXG5leHBvcnQgY29uc3QgdWlTdGF0ZVJlZHVjZXJGYWN0b3J5ID0gKGluaXRpYWxTdGF0ZSA9IHt9KSA9PlxuICBoYW5kbGVBY3Rpb25zKGFjdGlvbkhhbmRsZXIsIHsuLi5JTklUSUFMX1VJX1NUQVRFLCAuLi5pbml0aWFsU3RhdGUsIGluaXRpYWxTdGF0ZX0pO1xuXG5leHBvcnQgZGVmYXVsdCB1aVN0YXRlUmVkdWNlckZhY3RvcnkoKTtcbiJdfQ==
;