UNPKG

kepler.gl

Version:

kepler.gl is a webgl based application to visualize large scale location data in the browser

180 lines (178 loc) 31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = exports.ACTION_PREFIX = void 0; // Copyright (c) 2021 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 ACTION_PREFIX = '@@kepler.gl/'; /** * Kepler.gl action types, can be listened by reducers to perform additional tasks whenever an action is called in kepler.gl * @constant * @type {Object} * @public * * @example * // store.js * import {handleActions} from 'redux-actions'; * import {createStore, combineReducers, applyMiddleware} from 'redux'; * import {taskMiddleware} from 'react-palm/tasks'; * * import keplerGlReducer from 'kepler.gl/reducers'; * import {ActionTypes} from 'kepler.gl/actions'; * * const appReducer = handleActions({ * // listen on kepler.gl map update action to store a copy of viewport in app state * [ActionTypes.UPDATE_MAP]: (state, action) => ({ * ...state, * viewport: action.payload * }), * }, {}); * * const reducers = combineReducers({ * app: appReducer, * keplerGl: keplerGlReducer * }); * * export default createStore(reducers, {}, applyMiddleware(taskMiddleware)) */ exports.ACTION_PREFIX = ACTION_PREFIX; var ActionTypes = { // identity action REGISTER_ENTRY: "".concat(ACTION_PREFIX, "REGISTER_ENTRY"), DELETE_ENTRY: "".concat(ACTION_PREFIX, "DELETE_ENTRY"), RENAME_ENTRY: "".concat(ACTION_PREFIX, "RENAME_ENTRY"), // visState ADD_DATA: "".concat(ACTION_PREFIX, "ADD_DATA"), ADD_FILTER: "".concat(ACTION_PREFIX, "ADD_FILTER"), ADD_LAYER: "".concat(ACTION_PREFIX, "ADD_LAYER"), DUPLICATE_LAYER: "".concat(ACTION_PREFIX, "DUPLICATE_LAYER"), INTERACTION_CONFIG_CHANGE: "".concat(ACTION_PREFIX, "INTERACTION_CONFIG_CHANGE"), LAYER_CONFIG_CHANGE: "".concat(ACTION_PREFIX, "LAYER_CONFIG_CHANGE"), LAYER_VISUAL_CHANNEL_CHANGE: "".concat(ACTION_PREFIX, "LAYER_VISUAL_CHANNEL_CHANGE"), LAYER_TYPE_CHANGE: "".concat(ACTION_PREFIX, "LAYER_TYPE_CHANGE"), LAYER_VIS_CONFIG_CHANGE: "".concat(ACTION_PREFIX, "LAYER_VIS_CONFIG_CHANGE"), LAYER_TEXT_LABEL_CHANGE: "".concat(ACTION_PREFIX, "LAYER_TEXT_LABEL_CHANGE"), LAYER_HOVER: "".concat(ACTION_PREFIX, "LAYER_HOVER"), LAYER_CLICK: "".concat(ACTION_PREFIX, "LAYER_CLICK"), MAP_CLICK: "".concat(ACTION_PREFIX, "MAP_CLICK"), MOUSE_MOVE: "".concat(ACTION_PREFIX, "MOUSE_MOVE"), REMOVE_FILTER: "".concat(ACTION_PREFIX, "REMOVE_FILTER"), REMOVE_LAYER: "".concat(ACTION_PREFIX, "REMOVE_LAYER"), REMOVE_DATASET: "".concat(ACTION_PREFIX, "REMOVE_DATASET"), REORDER_LAYER: "".concat(ACTION_PREFIX, "REORDER_LAYER"), SET_FILTER: "".concat(ACTION_PREFIX, "SET_FILTER"), SET_FILTER_ANIMATION_TIME: "".concat(ACTION_PREFIX, "SET_FILTER_ANIMATION_TIME"), SET_FILTER_ANIMATION_TIME_CONFIG: "".concat(ACTION_PREFIX, "SET_FILTER_ANIMATION_TIME_CONFIG"), SET_FILTER_ANIMATION_WINDOW: "".concat(ACTION_PREFIX, "SET_FILTER_ANIMATION_WINDOW"), SHOW_DATASET_TABLE: "".concat(ACTION_PREFIX, "SHOW_DATASET_TABLE"), UPDATE_LAYER_BLENDING: "".concat(ACTION_PREFIX, "UPDATE_LAYER_BLENDING"), UPDATE_VIS_DATA: "".concat(ACTION_PREFIX, "UPDATE_VIS_DATA"), RENAME_DATASET: "".concat(ACTION_PREFIX, "RENAME_DATASET"), TOGGLE_FILTER_ANIMATION: "".concat(ACTION_PREFIX, "TOGGLE_FILTER_ANIMATION"), UPDATE_FILTER_ANIMATION_SPEED: "".concat(ACTION_PREFIX, "UPDATE_FILTER_ANIMATION_SPEED"), PLAY_ANIMATION: "".concat(ACTION_PREFIX, "PLAY_ANIMATION"), SET_LAYER_ANIMATION_TIME: "".concat(ACTION_PREFIX, "SET_LAYER_ANIMATION_TIME"), SET_LAYER_ANIMATION_TIME_CONFIG: "".concat(ACTION_PREFIX, "SET_LAYER_ANIMATION_TIME_CONFIG"), UPDATE_ANIMATION_SPEED: "".concat(ACTION_PREFIX, "UPDATE_ANIMATION_SPEED"), UPDATE_LAYER_ANIMATION_SPEED: "".concat(ACTION_PREFIX, "UPDATE_LAYER_ANIMATION_SPEED"), TOGGLE_LAYER_ANIMATION: "".concat(ACTION_PREFIX, "TOGGLE_LAYER_ANIMATION"), TOGGLE_LAYER_ANIMATION_CONTROL: "".concat(ACTION_PREFIX, "TOGGLE_LAYER_ANIMATION_CONTROL"), TOGGLE_LAYER_CONFIG_ACTIVE: "".concat(ACTION_PREFIX, "TOGGLE_LAYER_CONFIG_ACTIVE"), ENLARGE_FILTER: "".concat(ACTION_PREFIX, "ENLARGE_FILTER"), TOGGLE_FILTER_FEATURE: "".concat(ACTION_PREFIX, "TOGGLE_FILTER_FEATURE"), TOGGLE_LAYER_FOR_MAP: "".concat(ACTION_PREFIX, "TOGGLE_LAYER_FOR_MAP"), SET_FILTER_PLOT: "".concat(ACTION_PREFIX, "SET_FILTER_PLOT"), LOAD_FILES: "".concat(ACTION_PREFIX, "LOAD_FILES"), LOAD_NEXT_FILE: "".concat(ACTION_PREFIX, "LOAD_NEXT_FILE"), LOAD_FILE_STEP_SUCCESS: "".concat(ACTION_PREFIX, "LOAD_FILE_STEP_SUCCESS"), LOAD_FILES_ERR: "".concat(ACTION_PREFIX, "LOAD_FILES_ERR"), LOAD_FILES_SUCCESS: "".concat(ACTION_PREFIX, "LOAD_FILES_SUCCESS"), LAYER_COLOR_UI_CHANGE: "".concat(ACTION_PREFIX, "LAYER_COLOR_UI_CHANGE"), TOGGLE_FEATURE_LAYER: "".concat(ACTION_PREFIX, "TOGGLE_FEATURE_LAYER"), APPLY_CPU_FILTER: "".concat(ACTION_PREFIX, "APPLY_CPU_FILTER"), SET_MAP_INFO: "".concat(ACTION_PREFIX, "SET_MAP_INFO"), SORT_TABLE_COLUMN: "".concat(ACTION_PREFIX, "SORT_TABLE_COLUMN"), PIN_TABLE_COLUMN: "".concat(ACTION_PREFIX, "PIN_TABLE_COLUMN"), COPY_TABLE_COLUMN: "".concat(ACTION_PREFIX, "COPY_TABLE_COLUMN"), NEXT_FILE_BATCH: "".concat(ACTION_PREFIX, "NEXT_FILE_BATCH"), PROCESS_FILE_CONTENT: "".concat(ACTION_PREFIX, "PROCESS_FILE_CONTENT"), // mapState UPDATE_MAP: "".concat(ACTION_PREFIX, "UPDATE_MAP"), FIT_BOUNDS: "".concat(ACTION_PREFIX, "FIT_BOUNDS"), TOGGLE_PERSPECTIVE: "".concat(ACTION_PREFIX, "TOGGLE_PERSPECTIVE"), TOGGLE_SPLIT_MAP: "".concat(ACTION_PREFIX, "TOGGLE_SPLIT_MAP"), TOGGLE_FULLSCREEN: "".concat(ACTION_PREFIX, "TOGGLE_FULLSCREEN"), // mapStyle MAP_CONFIG_CHANGE: "".concat(ACTION_PREFIX, "MAP_CONFIG_CHANGE"), SET_DEFAULT_MAP_STYLE: "".concat(ACTION_PREFIX, "SET_DEFAULT_MAP_STYLE"), MAP_STYLE_CHANGE: "".concat(ACTION_PREFIX, "MAP_STYLE_CHANGE"), LOAD_MAP_STYLES: "".concat(ACTION_PREFIX, "LOAD_MAP_STYLES"), LOAD_MAP_STYLE_ERR: "".concat(ACTION_PREFIX, "LOAD_MAP_STYLE_ERR"), INPUT_MAP_STYLE: "".concat(ACTION_PREFIX, "INPUT_MAP_STYLE"), LOAD_CUSTOM_MAP_STYLE: "".concat(ACTION_PREFIX, "LOAD_CUSTOM_MAP_STYLE"), ADD_CUSTOM_MAP_STYLE: "".concat(ACTION_PREFIX, "ADD_CUSTOM_MAP_STYLE"), REQUEST_MAP_STYLES: "".concat(ACTION_PREFIX, "REQUEST_MAP_STYLES"), SET_3D_BUILDING_COLOR: "".concat(ACTION_PREFIX, "SET_3D_BUILDING_COLOR"), // uiState TOGGLE_SIDE_PANEL: "".concat(ACTION_PREFIX, "TOGGLE_SIDE_PANEL"), TOGGLE_MODAL: "".concat(ACTION_PREFIX, "TOGGLE_MODAL"), SHOW_EXPORT_DROPDOWN: "".concat(ACTION_PREFIX, "SHOW_EXPORT_DROPDOWN"), HIDE_EXPORT_DROPDOWN: "".concat(ACTION_PREFIX, "HIDE_EXPORT_DROPDOWN"), OPEN_DELETE_MODAL: "".concat(ACTION_PREFIX, "OPEN_DELETE_MODAL"), TOGGLE_MAP_CONTROL: "".concat(ACTION_PREFIX, "TOGGLE_MAP_CONTROL"), SET_MAP_CONTROL_VISIBILITY: "".concat(ACTION_PREFIX, "SET_MAP_CONTROL_VISIBILITY"), ADD_NOTIFICATION: "".concat(ACTION_PREFIX, "ADD_NOTIFICATION"), REMOVE_NOTIFICATION: "".concat(ACTION_PREFIX, "REMOVE_NOTIFICATION"), SET_LOCALE: "".concat(ACTION_PREFIX, "SET_LOCALE"), // uiState > export image SET_EXPORT_IMAGE_SETTING: "".concat(ACTION_PREFIX, "SET_EXPORT_IMAGE_SETTING"), START_EXPORTING_IMAGE: "".concat(ACTION_PREFIX, "START_EXPORTING_IMAGE"), SET_EXPORT_IMAGE_DATA_URI: "".concat(ACTION_PREFIX, "SET_EXPORT_IMAGE_DATA_URI"), SET_EXPORT_IMAGE_ERROR: "".concat(ACTION_PREFIX, "SET_EXPORT_IMAGE_ERROR"), CLEANUP_EXPORT_IMAGE: "".concat(ACTION_PREFIX, "CLEANUP_EXPORT_IMAGE"), // uiState > export data SET_EXPORT_SELECTED_DATASET: "".concat(ACTION_PREFIX, "SET_EXPORT_SELECTED_DATASET"), SET_EXPORT_DATA_TYPE: "".concat(ACTION_PREFIX, "SET_EXPORT_DATA_TYPE"), SET_EXPORT_FILTERED: "".concat(ACTION_PREFIX, "SET_EXPORT_FILTERED"), SET_EXPORT_DATA: "".concat(ACTION_PREFIX, "SET_EXPORT_DATA"), // uiState > export map SET_EXPORT_MAP_FORMAT: "".concat(ACTION_PREFIX, "SET_EXPORT_MAP_FORMAT"), SET_USER_MAPBOX_ACCESS_TOKEN: "".concat(ACTION_PREFIX, "SET_USER_MAPBOX_ACCESS_TOKEN"), SET_EXPORT_MAP_HTML_MODE: "".concat(ACTION_PREFIX, "SET_EXPORT_MAP_HTML_MODE"), // uiState > editor SET_EDITOR_MODE: "".concat(ACTION_PREFIX, "SET_EDITOR_MODE"), SET_SELECTED_FEATURE: "".concat(ACTION_PREFIX, "SET_SELECTED_FEATURE"), // all INIT: "".concat(ACTION_PREFIX, "INIT"), ADD_DATA_TO_MAP: "".concat(ACTION_PREFIX, "ADD_DATA_TO_MAP"), RECEIVE_MAP_CONFIG: "".concat(ACTION_PREFIX, "RECEIVE_MAP_CONFIG"), RESET_MAP_CONFIG: "".concat(ACTION_PREFIX, "RESET_MAP_CONFIG"), // geo-operations SET_FEATURES: "".concat(ACTION_PREFIX, "SET_FEATURES"), SET_POLYGON_FILTER_LAYER: "".concat(ACTION_PREFIX, "SET_POLYGON_FILTER_LAYER"), DELETE_FEATURE: "".concat(ACTION_PREFIX, "DELETE_FEATURE"), TOGGLE_EDITOR_VISIBILITY: "".concat(ACTION_PREFIX, "TOGGLE_EDITOR_VISIBILITY"), // storage START_SAVE_STORAGE: "".concat(ACTION_PREFIX, "START_SAVE_STORAGE") }; var _default = ActionTypes; exports["default"] = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25zdGFudHMvYWN0aW9uLXR5cGVzLmpzIl0sIm5hbWVzIjpbIkFDVElPTl9QUkVGSVgiLCJBY3Rpb25UeXBlcyIsIlJFR0lTVEVSX0VOVFJZIiwiREVMRVRFX0VOVFJZIiwiUkVOQU1FX0VOVFJZIiwiQUREX0RBVEEiLCJBRERfRklMVEVSIiwiQUREX0xBWUVSIiwiRFVQTElDQVRFX0xBWUVSIiwiSU5URVJBQ1RJT05fQ09ORklHX0NIQU5HRSIsIkxBWUVSX0NPTkZJR19DSEFOR0UiLCJMQVlFUl9WSVNVQUxfQ0hBTk5FTF9DSEFOR0UiLCJMQVlFUl9UWVBFX0NIQU5HRSIsIkxBWUVSX1ZJU19DT05GSUdfQ0hBTkdFIiwiTEFZRVJfVEVYVF9MQUJFTF9DSEFOR0UiLCJMQVlFUl9IT1ZFUiIsIkxBWUVSX0NMSUNLIiwiTUFQX0NMSUNLIiwiTU9VU0VfTU9WRSIsIlJFTU9WRV9GSUxURVIiLCJSRU1PVkVfTEFZRVIiLCJSRU1PVkVfREFUQVNFVCIsIlJFT1JERVJfTEFZRVIiLCJTRVRfRklMVEVSIiwiU0VUX0ZJTFRFUl9BTklNQVRJT05fVElNRSIsIlNFVF9GSUxURVJfQU5JTUFUSU9OX1RJTUVfQ09ORklHIiwiU0VUX0ZJTFRFUl9BTklNQVRJT05fV0lORE9XIiwiU0hPV19EQVRBU0VUX1RBQkxFIiwiVVBEQVRFX0xBWUVSX0JMRU5ESU5HIiwiVVBEQVRFX1ZJU19EQVRBIiwiUkVOQU1FX0RBVEFTRVQiLCJUT0dHTEVfRklMVEVSX0FOSU1BVElPTiIsIlVQREFURV9GSUxURVJfQU5JTUFUSU9OX1NQRUVEIiwiUExBWV9BTklNQVRJT04iLCJTRVRfTEFZRVJfQU5JTUFUSU9OX1RJTUUiLCJTRVRfTEFZRVJfQU5JTUFUSU9OX1RJTUVfQ09ORklHIiwiVVBEQVRFX0FOSU1BVElPTl9TUEVFRCIsIlVQREFURV9MQVlFUl9BTklNQVRJT05fU1BFRUQiLCJUT0dHTEVfTEFZRVJfQU5JTUFUSU9OIiwiVE9HR0xFX0xBWUVSX0FOSU1BVElPTl9DT05UUk9MIiwiVE9HR0xFX0xBWUVSX0NPTkZJR19BQ1RJVkUiLCJFTkxBUkdFX0ZJTFRFUiIsIlRPR0dMRV9GSUxURVJfRkVBVFVSRSIsIlRPR0dMRV9MQVlFUl9GT1JfTUFQIiwiU0VUX0ZJTFRFUl9QTE9UIiwiTE9BRF9GSUxFUyIsIkxPQURfTkVYVF9GSUxFIiwiTE9BRF9GSUxFX1NURVBfU1VDQ0VTUyIsIkxPQURfRklMRVNfRVJSIiwiTE9BRF9GSUxFU19TVUNDRVNTIiwiTEFZRVJfQ09MT1JfVUlfQ0hBTkdFIiwiVE9HR0xFX0ZFQVRVUkVfTEFZRVIiLCJBUFBMWV9DUFVfRklMVEVSIiwiU0VUX01BUF9JTkZPIiwiU09SVF9UQUJMRV9DT0xVTU4iLCJQSU5fVEFCTEVfQ09MVU1OIiwiQ09QWV9UQUJMRV9DT0xVTU4iLCJORVhUX0ZJTEVfQkFUQ0giLCJQUk9DRVNTX0ZJTEVfQ09OVEVOVCIsIlVQREFURV9NQVAiLCJGSVRfQk9VTkRTIiwiVE9HR0xFX1BFUlNQRUNUSVZFIiwiVE9HR0xFX1NQTElUX01BUCIsIlRPR0dMRV9GVUxMU0NSRUVOIiwiTUFQX0NPTkZJR19DSEFOR0UiLCJTRVRfREVGQVVMVF9NQVBfU1RZTEUiLCJNQVBfU1RZTEVfQ0hBTkdFIiwiTE9BRF9NQVBfU1RZTEVTIiwiTE9BRF9NQVBfU1RZTEVfRVJSIiwiSU5QVVRfTUFQX1NUWUxFIiwiTE9BRF9DVVNUT01fTUFQX1NUWUxFIiwiQUREX0NVU1RPTV9NQVBfU1RZTEUiLCJSRVFVRVNUX01BUF9TVFlMRVMiLCJTRVRfM0RfQlVJTERJTkdfQ09MT1IiLCJUT0dHTEVfU0lERV9QQU5FTCIsIlRPR0dMRV9NT0RBTCIsIlNIT1dfRVhQT1JUX0RST1BET1dOIiwiSElERV9FWFBPUlRfRFJPUERPV04iLCJPUEVOX0RFTEVURV9NT0RBTCIsIlRPR0dMRV9NQVBfQ09OVFJPTCIsIlNFVF9NQVBfQ09OVFJPTF9WSVNJQklMSVRZIiwiQUREX05PVElGSUNBVElPTiIsIlJFTU9WRV9OT1RJRklDQVRJT04iLCJTRVRfTE9DQUxFIiwiU0VUX0VYUE9SVF9JTUFHRV9TRVRUSU5HIiwiU1RBUlRfRVhQT1JUSU5HX0lNQUdFIiwiU0VUX0VYUE9SVF9JTUFHRV9EQVRBX1VSSSIsIlNFVF9FWFBPUlRfSU1BR0VfRVJST1IiLCJDTEVBTlVQX0VYUE9SVF9JTUFHRSIsIlNFVF9FWFBPUlRfU0VMRUNURURfREFUQVNFVCIsIlNFVF9FWFBPUlRfREFUQV9UWVBFIiwiU0VUX0VYUE9SVF9GSUxURVJFRCIsIlNFVF9FWFBPUlRfREFUQSIsIlNFVF9FWFBPUlRfTUFQX0ZPUk1BVCIsIlNFVF9VU0VSX01BUEJPWF9BQ0NFU1NfVE9LRU4iLCJTRVRfRVhQT1JUX01BUF9IVE1MX01PREUiLCJTRVRfRURJVE9SX01PREUiLCJTRVRfU0VMRUNURURfRkVBVFVSRSIsIklOSVQiLCJBRERfREFUQV9UT19NQVAiLCJSRUNFSVZFX01BUF9DT05GSUciLCJSRVNFVF9NQVBfQ09ORklHIiwiU0VUX0ZFQVRVUkVTIiwiU0VUX1BPTFlHT05fRklMVEVSX0xBWUVSIiwiREVMRVRFX0ZFQVRVUkUiLCJUT0dHTEVfRURJVE9SX1ZJU0lCSUxJVFkiLCJTVEFSVF9TQVZFX1NUT1JBR0UiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRU8sSUFBTUEsYUFBYSxHQUFHLGNBQXRCO0FBRVA7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOzs7QUFDQSxJQUFNQyxXQUFXLEdBQUc7QUFDbEI7QUFDQUMsRUFBQUEsY0FBYyxZQUFLRixhQUFMLG1CQUZJO0FBR2xCRyxFQUFBQSxZQUFZLFlBQUtILGFBQUwsaUJBSE07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TCwwQkEzR0g7QUE0R2xCOEYsRUFBQUEsNEJBQTRCLFlBQUs5RixhQUFMLGlDQTVHVjtBQTZHbEIrRixFQUFBQSx3QkFBd0IsWUFBSy9GLGFBQUwsNkJBN0dOO0FBK0dsQjtBQUNBZ0csRUFBQUEsZUFBZSxZQUFLaEcsYUFBTCxvQkFoSEc7QUFpSGxCaUcsRUFBQUEsb0JBQW9CLFlBQUtqRyxhQUFMLHlCQWpIRjtBQW1IbEI7QUFDQWtHLEVBQUFBLElBQUksWUFBS2xHLGFBQUwsU0FwSGM7QUFxSGxCbUcsRUFBQUEsZUFBZSxZQUFLbkcsYUFBTCxvQkFySEc7QUFzSGxCb0csRUFBQUEsa0JBQWtCLFlBQUtwRyxhQUFMLHVCQXRIQTtBQXVIbEJxRyxFQUFBQSxnQkFBZ0IsWUFBS3JHLGFBQUwscUJBdkhFO0FBeUhsQjtBQUNBc0csRUFBQUEsWUFBWSxZQUFLdEcsYUFBTCxpQkExSE07QUEySGxCdUcsRUFBQUEsd0JBQXdCLFlBQUt2RyxhQUFMLDZCQTNITjtBQTRIbEJ3RyxFQUFBQSxjQUFjLFlBQUt4RyxhQUFMLG1CQTVISTtBQTZIbEJ5RyxFQUFBQSx3QkFBd0IsWUFBS3pHLGFBQUwsNkJBN0hOO0FBK0hsQjtBQUNBMEcsRUFBQUEsa0JBQWtCLFlBQUsxRyxhQUFMO0FBaElBLENBQXBCO2VBbUllQyxXIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIxIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuZXhwb3J0IGNvbnN0IEFDVElPTl9QUkVGSVggPSAnQEBrZXBsZXIuZ2wvJztcblxuLyoqXG4gKiBLZXBsZXIuZ2wgYWN0aW9uIHR5cGVzLCBjYW4gYmUgbGlzdGVuZWQgYnkgcmVkdWNlcnMgdG8gcGVyZm9ybSBhZGRpdGlvbmFsIHRhc2tzIHdoZW5ldmVyIGFuIGFjdGlvbiBpcyBjYWxsZWQgaW4ga2VwbGVyLmdsXG4gKiBAY29uc3RhbnRcbiAqIEB0eXBlIHtPYmplY3R9XG4gKiBAcHVibGljXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIHN0b3JlLmpzXG4gKiBpbXBvcnQge2hhbmRsZUFjdGlvbnN9IGZyb20gJ3JlZHV4LWFjdGlvbnMnO1xuICogaW1wb3J0IHtjcmVhdGVTdG9yZSwgY29tYmluZVJlZHVjZXJzLCBhcHBseU1pZGRsZXdhcmV9IGZyb20gJ3JlZHV4JztcbiAqIGltcG9ydCB7dGFza01pZGRsZXdhcmV9IGZyb20gJ3JlYWN0LXBhbG0vdGFza3MnO1xuICpcbiAqIGltcG9ydCBrZXBsZXJHbFJlZHVjZXIgZnJvbSAna2VwbGVyLmdsL3JlZHVjZXJzJztcbiAqIGltcG9ydCB7QWN0aW9uVHlwZXN9IGZyb20gJ2tlcGxlci5nbC9hY3Rpb25zJztcbiAqXG4gKiBjb25zdCBhcHBSZWR1Y2VyID0gaGFuZGxlQWN0aW9ucyh7XG4gKiAgIC8vIGxpc3RlbiBvbiBrZXBsZXIuZ2wgbWFwIHVwZGF0ZSBhY3Rpb24gdG8gc3RvcmUgYSBjb3B5IG9mIHZpZXdwb3J0IGluIGFwcCBzdGF0ZVxuICogICBbQWN0aW9uVHlwZXMuVVBEQVRFX01BUF06IChzdGF0ZSwgYWN0aW9uKSA9PiAoe1xuICogICAgIC4uLnN0YXRlLFxuICogICAgIHZpZXdwb3J0OiBhY3Rpb24ucGF5bG9hZFxuICogICB9KSxcbiAqIH0sIHt9KTtcbiAqXG4gKiBjb25zdCByZWR1Y2VycyA9IGNvbWJpbmVSZWR1Y2Vycyh7XG4gKiAgIGFwcDogYXBwUmVkdWNlcixcbiAqICAga2VwbGVyR2w6IGtlcGxlckdsUmVkdWNlclxuICogfSk7XG4gKlxuICogZXhwb3J0IGRlZmF1bHQgY3JlYXRlU3RvcmUocmVkdWNlcnMsIHt9LCBhcHBseU1pZGRsZXdhcmUodGFza01pZGRsZXdhcmUpKVxuICovXG5jb25zdCBBY3Rpb25UeXBlcyA9IHtcbiAgLy8gaWRlbnRpdHkgYWN0aW9uXG4gIFJFR0lTVEVSX0VOVFJZOiBgJHtBQ1RJT05fUFJFRklYfVJFR0lTVEVSX0VOVFJZYCxcbiAgREVMRVRFX0VOVFJZOiBgJHtBQ1RJT05fUFJFRklYfURFTEVURV9FTlRSWWAsXG4gIFJFTkFNRV9FTlRSWTogYCR7QUNUSU9OX1BSRUZJWH1SRU5BTUVfRU5UUllgLFxuXG4gIC8vIHZpc1N0YXRlXG4gIEFERF9EQVRBOiBgJHtBQ1RJT05fUFJFRklYfUFERF9EQVRBYCxcbiAgQUREX0ZJTFRFUjogYCR7QUNUSU9OX1BSRUZJWH1BRERfRklMVEVSYCxcbiAgQUREX0xBWUVSOiBgJHtBQ1RJT05fUFJFRklYfUFERF9MQVlFUmAsXG4gIERVUExJQ0FURV9MQVlFUjogYCR7QUNUSU9OX1BSRUZJWH1EVVBMSUNBVEVfTEFZRVJgLFxuICBJTlRFUkFDVElPTl9DT05GSUdfQ0hBTkdFOiBgJHtBQ1RJT05fUFJFRklYfUlOVEVSQUNUSU9OX0NPTkZJR19DSEFOR0VgLFxuICBMQVlFUl9DT05GSUdfQ0hBTkdFOiBgJHtBQ1RJT05fUFJFRklYfUxBWUVSX0NPTkZJR19DSEFOR0VgLFxuICBMQVlFUl9WSVNVQUxfQ0hBTk5FTF9DSEFOR0U6IGAke0FDVElPTl9QUkVGSVh9TEFZRVJfVklTVUFMX0NIQU5ORUxfQ0hBTkdFYCxcbiAgTEFZRVJfVFlQRV9DSEFOR0U6IGAke0FDVElPTl9QUkVGSVh9TEFZRVJfVFlQRV9DSEFOR0VgLFxuICBMQVlFUl9WSVNfQ09ORklHX0NIQU5HRTogYCR7QUNUSU9OX1BSRUZJWH1MQVlFUl9WSVNfQ09ORklHX0NIQU5HRWAsXG4gIExBWUVSX1RFWFRfTEFCRUxfQ0hBTkdFOiBgJHtBQ1RJT05fUFJFRklYfUxBWUVSX1RFWFRfTEFCRUxfQ0hBTkdFYCxcbiAgTEFZRVJfSE9WRVI6IGAke0FDVElPTl9QUkVGSVh9TEFZRVJfSE9WRVJgLFxuICBMQVlFUl9DTElDSzogYCR7QUNUSU9OX1BSRUZJWH1MQVlFUl9DTElDS2AsXG4gIE1BUF9DTElDSzogYCR7QUNUSU9OX1BSRUZJWH1NQVBfQ0xJQ0tgLFxuICBNT1VTRV9NT1ZFOiBgJHtBQ1RJT05fUFJFRklYfU1PVVNFX01PVkVgLFxuICBSRU1PVkVfRklMVEVSOiBgJHtBQ1RJT05fUFJFRklYfVJFTU9WRV9GSUxURVJgLFxuICBSRU1PVkVfTEFZRVI6IGAke0FDVElPTl9QUkVGSVh9UkVNT1ZFX0xBWUVSYCxcbiAgUkVNT1ZFX0RBVEFTRVQ6IGAke0FDVElPTl9QUkVGSVh9UkVNT1ZFX0RBVEFTRVRgLFxuICBSRU9SREVSX0xBWUVSOiBgJHtBQ1RJT05fUFJFRklYfVJFT1JERVJfTEFZRVJgLFxuICBTRVRfRklMVEVSOiBgJHtBQ1RJT05fUFJFRklYfVNFVF9GSUxURVJgLFxuICBTRVRfRklMVEVSX0FOSU1BVElPTl9USU1FOiBgJHtBQ1RJT05fUFJFRklYfVNFVF9GSUxURVJfQU5JTUFUSU9OX1RJTUVgLFxuICBTRVRfRklMVEVSX0FOSU1BVElPTl9USU1FX0NPTkZJRzogYCR7QUNUSU9OX1BSRUZJWH1TRVRfRklMVEVSX0FOSU1BVElPTl9USU1FX0NPTkZJR2AsXG4gIFNFVF9GSUxURVJfQU5JTUFUSU9OX1dJTkRPVzogYCR7QUNUSU9OX1BSRUZJWH1TRVRfRklMVEVSX0FOSU1BVElPTl9XSU5ET1dgLFxuICBTSE9XX0RBVEFTRVRfVEFCTEU6IGAke0FDVElPTl9QUkVGSVh9U0hPV19EQVRBU0VUX1RBQkxFYCxcbiAgVVBEQVRFX0xBWUVSX0JMRU5ESU5HOiBgJHtBQ1RJT05fUFJFRklYfVVQREFURV9MQVlFUl9CTEVORElOR2AsXG4gIFVQREFURV9WSVNfREFUQTogYCR7QUNUSU9OX1BSRUZJWH1VUERBVEVfVklTX0RBVEFgLFxuICBSRU5BTUVfREFUQVNFVDogYCR7QUNUSU9OX1BSRUZJWH1SRU5BTUVfREFUQVNFVGAsXG4gIFRPR0dMRV9GSUxURVJfQU5JTUFUSU9OOiBgJHtBQ1RJT05fUFJFRklYfVRPR0dMRV9GSUxURVJfQU5JTUFUSU9OYCxcbiAgVVBEQVRFX0ZJTFRFUl9BTklNQVRJT05fU1BFRUQ6IGAke0FDVElPTl9QUkVGSVh9VVBEQVRFX0ZJTFRFUl9BTklNQVRJT05fU1BFRURgLFxuICBQTEFZX0FOSU1BVElPTjogYCR7QUNUSU9OX1BSRUZJWH1QTEFZX0FOSU1BVElPTmAsXG4gIFNFVF9MQVlFUl9BTklNQVRJT05fVElNRTogYCR7QUNUSU9OX1BSRUZJWH1TRVRfTEFZRVJfQU5JTUFUSU9OX1RJTUVgLFxuICBTRVRfTEFZRVJfQU5JTUFUSU9OX1RJTUVfQ09ORklHOiBgJHtBQ1RJT05fUFJFRklYfVNFVF9MQVlFUl9BTklNQVRJT05fVElNRV9DT05GSUdgLFxuICBVUERBVEVfQU5JTUFUSU9OX1NQRUVEOiBgJHtBQ1RJT05fUFJFRklYfVVQREFURV9BTklNQVRJT05fU1BFRURgLFxuICBVUERBVEVfTEFZRVJfQU5JTUFUSU9OX1NQRUVEOiBgJHtBQ1RJT05fUFJFRklYfVVQREFURV9MQVlFUl9BTklNQVRJT05fU1BFRURgLFxuICBUT0dHTEVfTEFZRVJfQU5JTUFUSU9OOiBgJHtBQ1RJT05fUFJFRklYfVRPR0dMRV9MQVlFUl9BTklNQVRJT05gLFxuICBUT0dHTEVfTEFZRVJfQU5JTUFUSU9OX0NPTlRST0w6IGAke0FDVElPTl9QUkVGSVh9VE9HR0xFX0xBWUVSX0FOSU1BVElPTl9DT05UUk9MYCxcbiAgVE9HR0xFX0xBWUVSX0NPTkZJR19BQ1RJVkU6IGAke0FDVElPTl9QUkVGSVh9VE9HR0xFX0xBWUVSX0NPTkZJR19BQ1RJVkVgLFxuICBFTkxBUkdFX0ZJTFRFUjogYCR7QUNUSU9OX1BSRUZJWH1FTkxBUkdFX0ZJTFRFUmAsXG4gIFRPR0dMRV9GSUxURVJfRkVBVFVSRTogYCR7QUNUSU9OX1BSRUZJWH1UT0dHTEVfRklMVEVSX0ZFQVRVUkVgLFxuICBUT0dHTEVfTEFZRVJfRk9SX01BUDogYCR7QUNUSU9OX1BSRUZJWH1UT0dHTEVfTEFZRVJfRk9SX01BUGAsXG4gIFNFVF9GSUxURVJfUExPVDogYCR7QUNUSU9OX1BSRUZJWH1TRVRfRklMVEVSX1BMT1RgLFxuICBMT0FEX0ZJTEVTOiBgJHtBQ1RJT05fUFJFRklYfUxPQURfRklMRVNgLFxuICBMT0FEX05FWFRfRklMRTogYCR7QUNUSU9OX1BSRUZJWH1MT0FEX05FWFRfRklMRWAsXG4gIExPQURfRklMRV9TVEVQX1NVQ0NFU1M6IGAke0FDVElPTl9QUkVGSVh9TE9BRF9GSUxFX1NURVBfU1VDQ0VTU2AsXG4gIExPQURfRklMRVNfRVJSOiBgJHtBQ1RJT05fUFJFRklYfUxPQURfRklMRVNfRVJSYCxcbiAgTE9BRF9GSUxFU19TVUNDRVNTOiBgJHtBQ1RJT05fUFJFRklYfUxPQURfRklMRVNfU1VDQ0VTU2AsXG4gIExBWUVSX0NPTE9SX1VJX0NIQU5HRTogYCR7QUNUSU9OX1BSRUZJWH1MQVlFUl9DT0xPUl9VSV9DSEFOR0VgLFxuICBUT0dHTEVfRkVBVFVSRV9MQVlFUjogYCR7QUNUSU9OX1BSRUZJWH1UT0dHTEVfRkVBVFVSRV9MQVlFUmAsXG4gIEFQUExZX0NQVV9GSUxURVI6IGAke0FDVElPTl9QUkVGSVh9QVBQTFlfQ1BVX0ZJTFRFUmAsXG4gIFNFVF9NQVBfSU5GTzogYCR7QUNUSU9OX1BSRUZJWH1TRVRfTUFQX0lORk9gLFxuICBTT1JUX1RBQkxFX0NPTFVNTjogYCR7QUNUSU9OX1BSRUZJWH1TT1JUX1RBQkxFX0NPTFVNTmAsXG4gIFBJTl9UQUJMRV9DT0xVTU46IGAke0FDVElPTl9QUkVGSVh9UElOX1RBQkxFX0NPTFVNTmAsXG4gIENPUFlfVEFCTEVfQ09MVU1OOiBgJHtBQ1RJT05fUFJFRklYfUNPUFlfVEFCTEVfQ09MVU1OYCxcbiAgTkVYVF9GSUxFX0JBVENIOiBgJHtBQ1RJT05fUFJFRklYfU5FWFRfRklMRV9CQVRDSGAsXG4gIFBST0NFU1NfRklMRV9DT05URU5UOiBgJHtBQ1RJT05fUFJFRklYfVBST0NFU1NfRklMRV9DT05URU5UYCxcblxuICAvLyBtYXBTdGF0ZVxuICBVUERBVEVfTUFQOiBgJHtBQ1RJT05fUFJFRklYfVVQREFURV9NQVBgLFxuICBGSVRfQk9VTkRTOiBgJHtBQ1RJT05fUFJFRklYfUZJVF9CT1VORFNgLFxuICBUT0dHTEVfUEVSU1BFQ1RJVkU6IGAke0FDVElPTl9QUkVGSVh9VE9HR0xFX1BFUlNQRUNUSVZFYCxcbiAgVE9HR0xFX1NQTElUX01BUDogYCR7QUNUSU9OX1BSRUZJWH1UT0dHTEVfU1BMSVRfTUFQYCxcbiAgVE9HR0xFX0ZVTExTQ1JFRU46IGAke0FDVElPTl9QUkVGSVh9VE9HR0xFX0ZVTExTQ1JFRU5gLFxuXG4gIC8vIG1hcFN0eWxlXG4gIE1BUF9DT05GSUdfQ0hBTkdFOiBgJHtBQ1RJT05fUFJFRklYfU1BUF9DT05GSUdfQ0hBTkdFYCxcbiAgU0VUX0RFRkFVTFRfTUFQX1NUWUxFOiBgJHtBQ1RJT05fUFJFRklYfVNFVF9ERUZBVUxUX01BUF9TVFlMRWAsXG4gIE1BUF9TVFlMRV9DSEFOR0U6IGAke0FDVElPTl9QUkVGSVh9TUFQX1NUWUxFX0NIQU5HRWAsXG4gIExPQURfTUFQX1NUWUxFUzogYCR7QUNUSU9OX1BSRUZJWH1MT0FEX01BUF9TVFlMRVNgLFxuICBMT0FEX01BUF9TVFlMRV9FUlI6IGAke0FDVElPTl9QUkVGSVh9TE9BRF9NQVBfU1RZTEVfRVJSYCxcbiAgSU5QVVRfTUFQX1NUWUxFOiBgJHtBQ1RJT05fUFJFRklYfUlOUFVUX01BUF9TVFlMRWAsXG4gIExPQURfQ1VTVE9NX01BUF9TVFlMRTogYCR7QUNUSU9OX1BSRUZJWH1MT0FEX0NVU1RPTV9NQVBfU1RZTEVgLFxuICBBRERfQ1VTVE9NX01BUF9TVFlMRTogYCR7QUNUSU9OX1BSRUZJWH1BRERfQ1VTVE9NX01BUF9TVFlMRWAsXG4gIFJFUVVFU1RfTUFQX1NUWUxFUzogYCR7QUNUSU9OX1BSRUZJWH1SRVFVRVNUX01BUF9TVFlMRVNgLFxuICBTRVRfM0RfQlVJTERJTkdfQ09MT1I6IGAke0FDVElPTl9QUkVGSVh9U0VUXzNEX0JVSUxESU5HX0NPTE9SYCxcblxuICAvLyB1aVN0YXRlXG4gIFRPR0dMRV9TSURFX1BBTkVMOiBgJHtBQ1RJT05fUFJFRklYfVRPR0dMRV9TSURFX1BBTkVMYCxcbiAgVE9HR0xFX01PREFMOiBgJHtBQ1RJT05fUFJFRklYfVRPR0dMRV9NT0RBTGAsXG4gIFNIT1dfRVhQT1JUX0RST1BET1dOOiBgJHtBQ1RJT05fUFJFRklYfVNIT1dfRVhQT1JUX0RST1BET1dOYCxcbiAgSElERV9FWFBPUlRfRFJPUERPV046IGAke0FDVElPTl9QUkVGSVh9SElERV9FWFBPUlRfRFJPUERPV05gLFxuICBPUEVOX0RFTEVURV9NT0RBTDogYCR7QUNUSU9OX1BSRUZJWH1PUEVOX0RFTEVURV9NT0RBTGAsXG4gIFRPR0dMRV9NQVBfQ09OVFJPTDogYCR7QUNUSU9OX1BSRUZJWH1UT0dHTEVfTUFQX0NPTlRST0xgLFxuICBTRVRfTUFQX0NPTlRST0xfVklTSUJJTElUWTogYCR7QUNUSU9OX1BSRUZJWH1TRVRfTUFQX0NPTlRST0xfVklTSUJJTElUWWAsXG4gIEFERF9OT1RJRklDQVRJT046IGAke0FDVElPTl9QUkVGSVh9QUREX05PVElGSUNBVElPTmAsXG4gIFJFTU9WRV9OT1RJRklDQVRJT046IGAke0FDVElPTl9QUkVGSVh9UkVNT1ZFX05PVElGSUNBVElPTmAsXG4gIFNFVF9MT0NBTEU6IGAke0FDVElPTl9QUkVGSVh9U0VUX0xPQ0FMRWAsXG5cbiAgLy8gdWlTdGF0ZSA+IGV4cG9ydCBpbWFnZVxuICBTRVRfRVhQT1JUX0lNQUdFX1NFVFRJTkc6IGAke0FDVElPTl9QUkVGSVh9U0VUX0VYUE9SVF9JTUFHRV9TRVRUSU5HYCxcbiAgU1RBUlRfRVhQT1JUSU5HX0lNQUdFOiBgJHtBQ1RJT05fUFJFRklYfVNUQVJUX0VYUE9SVElOR19JTUFHRWAsXG4gIFNFVF9FWFBPUlRfSU1BR0VfREFUQV9VUkk6IGAke0FDVElPTl9QUkVGSVh9U0VUX0VYUE9SVF9JTUFHRV9EQVRBX1VSSWAsXG4gIFNFVF9FWFBPUlRfSU1BR0VfRVJST1I6IGAke0FDVElPTl9QUkVGSVh9U0VUX0VYUE9SVF9JTUFHRV9FUlJPUmAsXG4gIENMRUFOVVBfRVhQT1JUX0lNQUdFOiBgJHtBQ1RJT05fUFJFRklYfUNMRUFOVVBfRVhQT1JUX0lNQUdFYCxcblxuICAvLyB1aVN0YXRlID4gZXhwb3J0IGRhdGFcbiAgU0VUX0VYUE9SVF9TRUxFQ1RFRF9EQVRBU0VUOiBgJHtBQ1RJT05fUFJFRklYfVNFVF9FWFBPUlRfU0VMRUNURURfREFUQVNFVGAsXG4gIFNFVF9FWFBPUlRfREFUQV9UWVBFOiBgJHtBQ1RJT05fUFJFRklYfVNFVF9FWFBPUlRfREFUQV9UWVBFYCxcbiAgU0VUX0VYUE9SVF9GSUxURVJFRDogYCR7QUNUSU9OX1BSRUZJWH1TRVRfRVhQT1JUX0ZJTFRFUkVEYCxcbiAgU0VUX0VYUE9SVF9EQVRBOiBgJHtBQ1RJT05fUFJFRklYfVNFVF9FWFBPUlRfREFUQWAsXG5cbiAgLy8gdWlTdGF0ZSA+IGV4cG9ydCBtYXBcbiAgU0VUX0VYUE9SVF9NQVBfRk9STUFUOiBgJHtBQ1RJT05fUFJFRklYfVNFVF9FWFBPUlRfTUFQX0ZPUk1BVGAsXG4gIFNFVF9VU0VSX01BUEJPWF9BQ0NFU1NfVE9LRU46IGAke0FDVElPTl9QUkVGSVh9U0VUX1VTRVJfTUFQQk9YX0FDQ0VTU19UT0tFTmAsXG4gIFNFVF9FWFBPUlRfTUFQX0hUTUxfTU9ERTogYCR7QUNUSU9OX1BSRUZJWH1TRVRfRVhQT1JUX01BUF9IVE1MX01PREVgLFxuXG4gIC8vIHVpU3RhdGUgPiBlZGl0b3JcbiAgU0VUX0VESVRPUl9NT0RFOiBgJHtBQ1RJT05fUFJFRklYfVNFVF9FRElUT1JfTU9ERWAsXG4gIFNFVF9TRUxFQ1RFRF9GRUFUVVJFOiBgJHtBQ1RJT05fUFJFRklYfVNFVF9TRUxFQ1RFRF9GRUFUVVJFYCxcblxuICAvLyBhbGxcbiAgSU5JVDogYCR7QUNUSU9OX1BSRUZJWH1JTklUYCxcbiAgQUREX0RBVEFfVE9fTUFQOiBgJHtBQ1RJT05fUFJFRklYfUFERF9EQVRBX1RPX01BUGAsXG4gIFJFQ0VJVkVfTUFQX0NPTkZJRzogYCR7QUNUSU9OX1BSRUZJWH1SRUNFSVZFX01BUF9DT05GSUdgLFxuICBSRVNFVF9NQVBfQ09ORklHOiBgJHtBQ1RJT05fUFJFRklYfVJFU0VUX01BUF9DT05GSUdgLFxuXG4gIC8vIGdlby1vcGVyYXRpb25zXG4gIFNFVF9GRUFUVVJFUzogYCR7QUNUSU9OX1BSRUZJWH1TRVRfRkVBVFVSRVNgLFxuICBTRVRfUE9MWUdPTl9GSUxURVJfTEFZRVI6IGAke0FDVElPTl9QUkVGSVh9U0VUX1BPTFlHT05fRklMVEVSX0xBWUVSYCxcbiAgREVMRVRFX0ZFQVRVUkU6IGAke0FDVElPTl9QUkVGSVh9REVMRVRFX0ZFQVRVUkVgLFxuICBUT0dHTEVfRURJVE9SX1ZJU0lCSUxJVFk6IGAke0FDVElPTl9QUkVGSVh9VE9HR0xFX0VESVRPUl9WSVNJQklMSVRZYCxcblxuICAvLyBzdG9yYWdlXG4gIFNUQVJUX1NBVkVfU1RPUkFHRTogYCR7QUNUSU9OX1BSRUZJWH1TVEFSVF9TQVZFX1NUT1JBR0VgXG59O1xuXG5leHBvcnQgZGVmYXVsdCBBY3Rpb25UeXBlcztcbiJdfQ==