UNPKG

kepler.gl.geoiq

Version:

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

158 lines (133 loc) 14.9 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireWildcard(require("react")); var _styledComponents = require("../../common/styled-components"); var _itemSelector = _interopRequireDefault(require("../../common/item-selector/item-selector")); var _reselect = require("reselect"); // Copyright (c) 2019 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 WidgetLayerSelector = /*#__PURE__*/ function (_Component) { (0, _inherits2["default"])(WidgetLayerSelector, _Component); function WidgetLayerSelector() { var _getPrototypeOf2; var _this; (0, _classCallCheck2["default"])(this, WidgetLayerSelector); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3["default"])(WidgetLayerSelector)).call.apply(_getPrototypeOf2, [this].concat(args))); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "layersSelector", function (props) { return props.layers; }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "dataIdSelector", function (props) { return props.widget.config.dataId; }); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "lsOptionsSelector", (0, _reselect.createSelector)(_this.layersSelector, _this.dataIdSelector, function (layers, dataId) { return Object.values(layers).map(function (ls) { if (ls.config.dataId === dataId) { return { label: ls.config.label, value: { id: ls.id, label: ls.config.label } }; } }); })); return _this; } (0, _createClass2["default"])(WidgetLayerSelector, [{ key: "_widgetLayerOptions", value: function _widgetLayerOptions(layers, dataId) { var options = []; layers.map(function (lidget) { var config = lidget.config; var LayerDataId = config.dataId; if (LayerDataId === dataId) { options.push({ label: lidget.config.label, value: { id: lidget.id, label: lidget.config.label } }); } }); return options; } }, { key: "_renderPlaceholder", value: function _renderPlaceholder(id) { var placeholder = this.props.layers.map(function (l) { if (l.id === id) { return l.config.label; } }); return placeholder; } }, { key: "render", value: function render() { var _React$createElement; var _this$props = this.props, layers = _this$props.layers, widget = _this$props.widget, dataId = _this$props.dataId, onSelect = _this$props.onSelect; var config = widget.config; var selectedLayer; selectedLayer = config.selectedLayer; // console.log(selectedLayer); // console.log('lsoptions in widgetLayerSelector', lsOptions); // console.log('selected layer is ', typeof selectedLayer); // console.log('layers widgetLayerSelector', layers); // console.log('options', this._widgetLayerOptions(layers, dataId)); // console.log('layers', layers); return _react["default"].createElement(_styledComponents.SidePanelSection, { className: "layer-selector" }, _react["default"].createElement(_styledComponents.PanelLabel, null, "Layers"), _react["default"].createElement(_itemSelector["default"], (_React$createElement = { placeholder: selectedLayer ? this._renderPlaceholder(selectedLayer.id) : 'Select A Layer' // selectedItems={selectedLayer} // options={this._widgetLayerOptions(layers, dataId)} , options: this._widgetLayerOptions(layers, dataId), multiSelect: false, getOptionValue: 'value' }, (0, _defineProperty2["default"])(_React$createElement, "multiSelect", false), (0, _defineProperty2["default"])(_React$createElement, "onChange", onSelect), (0, _defineProperty2["default"])(_React$createElement, "displayOption", 'label'), (0, _defineProperty2["default"])(_React$createElement, "searchable", false), _React$createElement))); } }]); return WidgetLayerSelector; }(_react.Component); exports["default"] = WidgetLayerSelector; (0, _defineProperty2["default"])(WidgetLayerSelector, "proptypes", {}); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvd2lkZ2V0LXBhbmVsL3dpZGdldC1sYXllci1zZWxlY3Rvci5qcyJdLCJuYW1lcyI6WyJXaWRnZXRMYXllclNlbGVjdG9yIiwicHJvcHMiLCJsYXllcnMiLCJ3aWRnZXQiLCJjb25maWciLCJkYXRhSWQiLCJsYXllcnNTZWxlY3RvciIsImRhdGFJZFNlbGVjdG9yIiwiT2JqZWN0IiwidmFsdWVzIiwibWFwIiwibHMiLCJsYWJlbCIsInZhbHVlIiwiaWQiLCJvcHRpb25zIiwibGlkZ2V0IiwiTGF5ZXJEYXRhSWQiLCJwdXNoIiwicGxhY2Vob2xkZXIiLCJsIiwib25TZWxlY3QiLCJzZWxlY3RlZExheWVyIiwiX3JlbmRlclBsYWNlaG9sZGVyIiwiX3dpZGdldExheWVyT3B0aW9ucyIsIkNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFJQTs7QUFDQTs7QUExQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFVcUJBLG1COzs7Ozs7Ozs7Ozs7Ozs7Ozt1R0FHRixVQUFBQyxLQUFLO0FBQUEsYUFBSUEsS0FBSyxDQUFDQyxNQUFWO0FBQUEsSzt1R0FDTCxVQUFBRCxLQUFLO0FBQUEsYUFBSUEsS0FBSyxDQUFDRSxNQUFOLENBQWFDLE1BQWIsQ0FBb0JDLE1BQXhCO0FBQUEsSzswR0FDRiw4QkFDbEIsTUFBS0MsY0FEYSxFQUVsQixNQUFLQyxjQUZhLEVBR2xCLFVBQUNMLE1BQUQsRUFBU0csTUFBVDtBQUFBLGFBQ0VHLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjUCxNQUFkLEVBQXNCUSxHQUF0QixDQUEwQixVQUFBQyxFQUFFLEVBQUk7QUFDOUIsWUFBSUEsRUFBRSxDQUFDUCxNQUFILENBQVVDLE1BQVYsS0FBcUJBLE1BQXpCLEVBQWlDO0FBQy9CLGlCQUFPO0FBQ0xPLFlBQUFBLEtBQUssRUFBRUQsRUFBRSxDQUFDUCxNQUFILENBQVVRLEtBRFo7QUFFTEMsWUFBQUEsS0FBSyxFQUFFO0FBQUNDLGNBQUFBLEVBQUUsRUFBRUgsRUFBRSxDQUFDRyxFQUFSO0FBQVlGLGNBQUFBLEtBQUssRUFBRUQsRUFBRSxDQUFDUCxNQUFILENBQVVRO0FBQTdCO0FBRkYsV0FBUDtBQUlEO0FBQ0YsT0FQRCxDQURGO0FBQUEsS0FIa0IsQzs7Ozs7O3dDQWNBVixNLEVBQVFHLE0sRUFBUTtBQUNsQyxVQUFJVSxPQUFPLEdBQUcsRUFBZDtBQUNBYixNQUFBQSxNQUFNLENBQUNRLEdBQVAsQ0FBVyxVQUFBTSxNQUFNLEVBQUk7QUFBQSxZQUNaWixNQURZLEdBQ0ZZLE1BREUsQ0FDWlosTUFEWTtBQUVuQixZQUFNYSxXQUFXLEdBQUdiLE1BQU0sQ0FBQ0MsTUFBM0I7O0FBQ0EsWUFBSVksV0FBVyxLQUFLWixNQUFwQixFQUE0QjtBQUMxQlUsVUFBQUEsT0FBTyxDQUFDRyxJQUFSLENBQWE7QUFDWE4sWUFBQUEsS0FBSyxFQUFFSSxNQUFNLENBQUNaLE1BQVAsQ0FBY1EsS0FEVjtBQUVYQyxZQUFBQSxLQUFLLEVBQUU7QUFBQ0MsY0FBQUEsRUFBRSxFQUFFRSxNQUFNLENBQUNGLEVBQVo7QUFBZ0JGLGNBQUFBLEtBQUssRUFBRUksTUFBTSxDQUFDWixNQUFQLENBQWNRO0FBQXJDO0FBRkksV0FBYjtBQUlEO0FBQ0YsT0FURDtBQVVBLGFBQU9HLE9BQVA7QUFDRDs7O3VDQUVrQkQsRSxFQUFJO0FBQ3JCLFVBQUlLLFdBQVcsR0FBRyxLQUFLbEIsS0FBTCxDQUFXQyxNQUFYLENBQWtCUSxHQUFsQixDQUFzQixVQUFBVSxDQUFDLEVBQUk7QUFDM0MsWUFBSUEsQ0FBQyxDQUFDTixFQUFGLEtBQVNBLEVBQWIsRUFBaUI7QUFDZixpQkFBT00sQ0FBQyxDQUFDaEIsTUFBRixDQUFTUSxLQUFoQjtBQUNEO0FBQ0YsT0FKaUIsQ0FBbEI7QUFLQSxhQUFPTyxXQUFQO0FBQ0Q7Ozs2QkFFUTtBQUFBOztBQUFBLHdCQUNvQyxLQUFLbEIsS0FEekM7QUFBQSxVQUNBQyxNQURBLGVBQ0FBLE1BREE7QUFBQSxVQUNRQyxNQURSLGVBQ1FBLE1BRFI7QUFBQSxVQUNnQkUsTUFEaEIsZUFDZ0JBLE1BRGhCO0FBQUEsVUFDd0JnQixRQUR4QixlQUN3QkEsUUFEeEI7QUFBQSxVQUVBakIsTUFGQSxHQUVVRCxNQUZWLENBRUFDLE1BRkE7QUFHUCxVQUFJa0IsYUFBSjtBQUVBQSxNQUFBQSxhQUFhLEdBQUdsQixNQUFNLENBQUNrQixhQUF2QixDQUxPLENBTVA7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUNBLGFBQ0UsZ0NBQUMsa0NBQUQ7QUFBa0IsUUFBQSxTQUFTLEVBQUM7QUFBNUIsU0FDRSxnQ0FBQyw0QkFBRCxpQkFERixFQUVFLGdDQUFDLHdCQUFEO0FBQ0UsUUFBQSxXQUFXLEVBQ1RBLGFBQWEsR0FDVCxLQUFLQyxrQkFBTCxDQUF3QkQsYUFBYSxDQUFDUixFQUF0QyxDQURTLEdBRVQsZ0JBSlIsQ0FNRTtBQUNBO0FBUEY7QUFRRSxRQUFBLE9BQU8sRUFBRSxLQUFLVSxtQkFBTCxDQUF5QnRCLE1BQXpCLEVBQWlDRyxNQUFqQyxDQVJYO0FBU0UsUUFBQSxXQUFXLEVBQUUsS0FUZjtBQVVFLFFBQUEsY0FBYyxFQUFFO0FBVmxCLCtFQVdlLEtBWGYsc0VBWVlnQixRQVpaLDJFQWFpQixPQWJqQix3RUFjYyxLQWRkLHlCQUZGLENBREY7QUFxQkQ7OztFQTVFOENJLGdCOzs7aUNBQTVCekIsbUIsZUFDQSxFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDE5IFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge1xuICBQYW5lbExhYmVsLFxuICBTaWRlUGFuZWxTZWN0aW9uXG59IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBJdGVtU2VsZWN0b3IgZnJvbSAnY29tcG9uZW50cy9jb21tb24vaXRlbS1zZWxlY3Rvci9pdGVtLXNlbGVjdG9yJztcbmltcG9ydCB7Y3JlYXRlU2VsZWN0b3J9IGZyb20gJ3Jlc2VsZWN0JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2lkZ2V0TGF5ZXJTZWxlY3RvciBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wdHlwZXMgPSB7fTtcblxuICBsYXllcnNTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLmxheWVycztcbiAgZGF0YUlkU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy53aWRnZXQuY29uZmlnLmRhdGFJZDtcbiAgbHNPcHRpb25zU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICB0aGlzLmxheWVyc1NlbGVjdG9yLFxuICAgIHRoaXMuZGF0YUlkU2VsZWN0b3IsXG4gICAgKGxheWVycywgZGF0YUlkKSA9PlxuICAgICAgT2JqZWN0LnZhbHVlcyhsYXllcnMpLm1hcChscyA9PiB7XG4gICAgICAgIGlmIChscy5jb25maWcuZGF0YUlkID09PSBkYXRhSWQpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbGFiZWw6IGxzLmNvbmZpZy5sYWJlbCxcbiAgICAgICAgICAgIHZhbHVlOiB7aWQ6IGxzLmlkLCBsYWJlbDogbHMuY29uZmlnLmxhYmVsfVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICk7XG5cbiAgX3dpZGdldExheWVyT3B0aW9ucyhsYXllcnMsIGRhdGFJZCkge1xuICAgIHZhciBvcHRpb25zID0gW107XG4gICAgbGF5ZXJzLm1hcChsaWRnZXQgPT4ge1xuICAgICAgY29uc3Qge2NvbmZpZ30gPSBsaWRnZXQ7XG4gICAgICBjb25zdCBMYXllckRhdGFJZCA9IGNvbmZpZy5kYXRhSWQ7XG4gICAgICBpZiAoTGF5ZXJEYXRhSWQgPT09IGRhdGFJZCkge1xuICAgICAgICBvcHRpb25zLnB1c2goe1xuICAgICAgICAgIGxhYmVsOiBsaWRnZXQuY29uZmlnLmxhYmVsLFxuICAgICAgICAgIHZhbHVlOiB7aWQ6IGxpZGdldC5pZCwgbGFiZWw6IGxpZGdldC5jb25maWcubGFiZWx9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG5cbiAgX3JlbmRlclBsYWNlaG9sZGVyKGlkKSB7XG4gICAgdmFyIHBsYWNlaG9sZGVyID0gdGhpcy5wcm9wcy5sYXllcnMubWFwKGwgPT4ge1xuICAgICAgaWYgKGwuaWQgPT09IGlkKSB7XG4gICAgICAgIHJldHVybiBsLmNvbmZpZy5sYWJlbDtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gcGxhY2Vob2xkZXI7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2xheWVycywgd2lkZ2V0LCBkYXRhSWQsIG9uU2VsZWN0fSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge2NvbmZpZ30gPSB3aWRnZXQ7XG4gICAgdmFyIHNlbGVjdGVkTGF5ZXI7XG5cbiAgICBzZWxlY3RlZExheWVyID0gY29uZmlnLnNlbGVjdGVkTGF5ZXI7XG4gICAgLy8gY29uc29sZS5sb2coc2VsZWN0ZWRMYXllcik7XG4gICAgLy8gY29uc29sZS5sb2coJ2xzb3B0aW9ucyBpbiB3aWRnZXRMYXllclNlbGVjdG9yJywgbHNPcHRpb25zKTtcbiAgICAvLyBjb25zb2xlLmxvZygnc2VsZWN0ZWQgbGF5ZXIgaXMgJywgdHlwZW9mIHNlbGVjdGVkTGF5ZXIpO1xuICAgIC8vIGNvbnNvbGUubG9nKCdsYXllcnMgd2lkZ2V0TGF5ZXJTZWxlY3RvcicsIGxheWVycyk7XG4gICAgLy8gY29uc29sZS5sb2coJ29wdGlvbnMnLCB0aGlzLl93aWRnZXRMYXllck9wdGlvbnMobGF5ZXJzLCBkYXRhSWQpKTtcbiAgICAvLyBjb25zb2xlLmxvZygnbGF5ZXJzJywgbGF5ZXJzKTtcbiAgICByZXR1cm4gKFxuICAgICAgPFNpZGVQYW5lbFNlY3Rpb24gY2xhc3NOYW1lPVwibGF5ZXItc2VsZWN0b3JcIj5cbiAgICAgICAgPFBhbmVsTGFiZWw+TGF5ZXJzPC9QYW5lbExhYmVsPlxuICAgICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgICAgcGxhY2Vob2xkZXI9e1xuICAgICAgICAgICAgc2VsZWN0ZWRMYXllclxuICAgICAgICAgICAgICA/IHRoaXMuX3JlbmRlclBsYWNlaG9sZGVyKHNlbGVjdGVkTGF5ZXIuaWQpXG4gICAgICAgICAgICAgIDogJ1NlbGVjdCBBIExheWVyJ1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBzZWxlY3RlZEl0ZW1zPXtzZWxlY3RlZExheWVyfVxuICAgICAgICAgIC8vIG9wdGlvbnM9e3RoaXMuX3dpZGdldExheWVyT3B0aW9ucyhsYXllcnMsIGRhdGFJZCl9XG4gICAgICAgICAgb3B0aW9ucz17dGhpcy5fd2lkZ2V0TGF5ZXJPcHRpb25zKGxheWVycywgZGF0YUlkKX1cbiAgICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgICAgZ2V0T3B0aW9uVmFsdWU9eyd2YWx1ZSd9XG4gICAgICAgICAgbXVsdGlTZWxlY3Q9e2ZhbHNlfVxuICAgICAgICAgIG9uQ2hhbmdlPXtvblNlbGVjdH1cbiAgICAgICAgICBkaXNwbGF5T3B0aW9uPXsnbGFiZWwnfVxuICAgICAgICAgIHNlYXJjaGFibGU9e2ZhbHNlfVxuICAgICAgICAvPlxuICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICk7XG4gIH1cbn1cbiJdfQ==