UNPKG

kepler.gl

Version:

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

95 lines (94 loc) 21.7 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral")); var _react = _interopRequireWildcard(require("react")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _localization = require("@kepler.gl/localization"); var _utils = require("@kepler.gl/utils"); var _mapLayerGroupColorPicker = _interopRequireDefault(require("./map-layer-group-color-picker")); var _styledComponents2 = require("../../common/styled-components"); var _templateObject, _templateObject2; // 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; } var StyledLayerGroupItem = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n margin-bottom: 10px;\n display: flex;\n justify-content: space-between;\n\n &:last-child {\n margin-bottom: 0;\n }\n\n .layer-group__visibility-toggle {\n margin-right: 12px;\n }\n"]))); var LayerLabel = (0, _styledComponents["default"])(_styledComponents2.PanelLabelBold)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n"])), function (props) { return props.active ? props.theme.textColor : props.theme.labelColor; }); LayerGroupItemFactory.deps = [_mapLayerGroupColorPicker["default"]]; function LayerGroupItemFactory(LayerGroupColorPicker) { var LayerGroupItem = function LayerGroupItem(_ref) { var PanelHeaderAction = _ref.PanelHeaderAction, onChange = _ref.onChange, slug = _ref.slug, layers = _ref.layers, topLayers = _ref.topLayers, actionIcons = _ref.actionIcons, color = _ref.color, onColorChange = _ref.onColorChange, _ref$isVisibilityTogg = _ref.isVisibilityToggleAvailable, isVisibilityToggleAvailable = _ref$isVisibilityTogg === void 0 ? true : _ref$isVisibilityTogg, _ref$isMoveToTopAvail = _ref.isMoveToTopAvailable, isMoveToTopAvailable = _ref$isMoveToTopAvail === void 0 ? true : _ref$isMoveToTopAvail, _ref$isColorPickerAva = _ref.isColorPickerAvailable, isColorPickerAvailable = _ref$isColorPickerAva === void 0 ? false : _ref$isColorPickerAva; var onVisibilityToggle = (0, _react.useCallback)(function () { onChange({ visibleLayerGroups: _objectSpread(_objectSpread({}, layers), {}, (0, _defineProperty2["default"])({}, slug, !layers[slug])) }); }, [onChange, layers, slug]); var onMoveToTopToggle = (0, _react.useCallback)(function () { onChange({ topLayerGroups: _objectSpread(_objectSpread({}, topLayers), {}, (0, _defineProperty2["default"])({}, slug, !topLayers[slug])) }); }, [onChange, topLayers, slug]); return /*#__PURE__*/_react["default"].createElement(StyledLayerGroupItem, { className: "layer-group__select" }, isVisibilityToggleAvailable ? /*#__PURE__*/_react["default"].createElement(_styledComponents2.PanelLabelWrapper, null, /*#__PURE__*/_react["default"].createElement(PanelHeaderAction, { className: "layer-group__visibility-toggle", id: "".concat(slug, "-toggle"), tooltip: layers[slug] ? 'tooltip.hide' : 'tooltip.show', onClick: onVisibilityToggle, IconComponent: layers[slug] ? actionIcons.visible : actionIcons.hidden, active: layers[slug], flush: true }), /*#__PURE__*/_react["default"].createElement(LayerLabel, { active: layers[slug] }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, { id: "mapLayers.".concat((0, _utils.camelize)(slug)) }))) : /*#__PURE__*/_react["default"].createElement(_styledComponents2.CenterFlexbox, null, /*#__PURE__*/_react["default"].createElement(LayerLabel, { style: { marginLeft: '28px' }, active: true }, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, { id: "mapLayers.".concat((0, _utils.camelize)(slug)) }))), /*#__PURE__*/_react["default"].createElement(_styledComponents2.CenterFlexbox, { className: "layer-group__trailing-actions" }, isColorPickerAvailable && color ? /*#__PURE__*/_react["default"].createElement(LayerGroupColorPicker, { slug: slug, color: color, onColorChange: onColorChange, extraMarginRight: isMoveToTopAvailable, disabled: isVisibilityToggleAvailable && !layers[slug] }) : null, isMoveToTopAvailable ? /*#__PURE__*/_react["default"].createElement(PanelHeaderAction, { id: "".concat(slug, "-top"), tooltip: "tooltip.moveToTop", disabled: !layers[slug], IconComponent: actionIcons.top, active: topLayers[slug], onClick: onMoveToTopToggle }) : null)); }; return LayerGroupItem; } var _default = exports["default"] = LayerGroupItemFactory; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbG9jYWxpemF0aW9uIiwiX3V0aWxzIiwiX21hcExheWVyR3JvdXBDb2xvclBpY2tlciIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJTdHlsZWRMYXllckdyb3VwSXRlbSIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiTGF5ZXJMYWJlbCIsIlBhbmVsTGFiZWxCb2xkIiwicHJvcHMiLCJhY3RpdmUiLCJ0aGVtZSIsInRleHRDb2xvciIsImxhYmVsQ29sb3IiLCJMYXllckdyb3VwSXRlbUZhY3RvcnkiLCJkZXBzIiwiTGF5ZXJHcm91cENvbG9yUGlja2VyRmFjdG9yeSIsIkxheWVyR3JvdXBDb2xvclBpY2tlciIsIkxheWVyR3JvdXBJdGVtIiwiX3JlZiIsIlBhbmVsSGVhZGVyQWN0aW9uIiwib25DaGFuZ2UiLCJzbHVnIiwibGF5ZXJzIiwidG9wTGF5ZXJzIiwiYWN0aW9uSWNvbnMiLCJjb2xvciIsIm9uQ29sb3JDaGFuZ2UiLCJfcmVmJGlzVmlzaWJpbGl0eVRvZ2ciLCJpc1Zpc2liaWxpdHlUb2dnbGVBdmFpbGFibGUiLCJfcmVmJGlzTW92ZVRvVG9wQXZhaWwiLCJpc01vdmVUb1RvcEF2YWlsYWJsZSIsIl9yZWYkaXNDb2xvclBpY2tlckF2YSIsImlzQ29sb3JQaWNrZXJBdmFpbGFibGUiLCJvblZpc2liaWxpdHlUb2dnbGUiLCJ1c2VDYWxsYmFjayIsInZpc2libGVMYXllckdyb3VwcyIsIm9uTW92ZVRvVG9wVG9nZ2xlIiwidG9wTGF5ZXJHcm91cHMiLCJjcmVhdGVFbGVtZW50IiwiY2xhc3NOYW1lIiwiUGFuZWxMYWJlbFdyYXBwZXIiLCJpZCIsImNvbmNhdCIsInRvb2x0aXAiLCJvbkNsaWNrIiwiSWNvbkNvbXBvbmVudCIsInZpc2libGUiLCJoaWRkZW4iLCJmbHVzaCIsIkZvcm1hdHRlZE1lc3NhZ2UiLCJjYW1lbGl6ZSIsIkNlbnRlckZsZXhib3giLCJzdHlsZSIsIm1hcmdpbkxlZnQiLCJleHRyYU1hcmdpblJpZ2h0IiwiZGlzYWJsZWQiLCJ0b3AiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2lkZS1wYW5lbC9tYXAtc3R5bGUtcGFuZWwvbWFwLWxheWVyLWdyb3VwLWl0ZW0udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge2NhbWVsaXplfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7UkdCQ29sb3J9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtNYXBDb25maWdDaGFuZ2VVcGRhdGVyQWN0aW9ufSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtNYXBTdHlsZX0gZnJvbSAnQGtlcGxlci5nbC9yZWR1Y2Vycyc7XG5cbmltcG9ydCBMYXllckdyb3VwQ29sb3JQaWNrZXJGYWN0b3J5IGZyb20gJy4vbWFwLWxheWVyLWdyb3VwLWNvbG9yLXBpY2tlcic7XG5pbXBvcnQge1BhbmVsSGVhZGVyQWN0aW9uUHJvcHMsIFBhbmVsSGVhZGVyQWN0aW9uSWNvbn0gZnJvbSAnLi4vcGFuZWwtaGVhZGVyLWFjdGlvbic7XG5pbXBvcnQge1BhbmVsTGFiZWxCb2xkLCBDZW50ZXJGbGV4Ym94LCBQYW5lbExhYmVsV3JhcHBlcn0gZnJvbSAnLi4vLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcblxuY29uc3QgU3R5bGVkTGF5ZXJHcm91cEl0ZW0gPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5cbiAgJjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG5cbiAgLmxheWVyLWdyb3VwX192aXNpYmlsaXR5LXRvZ2dsZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiAxMnB4O1xuICB9XG5gO1xuXG5jb25zdCBMYXllckxhYmVsID0gc3R5bGVkKFBhbmVsTGFiZWxCb2xkKTx7YWN0aXZlOiBib29sZWFufT5gXG4gIGNvbG9yOiAke3Byb3BzID0+IChwcm9wcy5hY3RpdmUgPyBwcm9wcy50aGVtZS50ZXh0Q29sb3IgOiBwcm9wcy50aGVtZS5sYWJlbENvbG9yKX07XG5gO1xuXG5leHBvcnQgdHlwZSBMYXllckdyb3VwSXRlbUFjdGlvbkljb25zID0ge1xuICB2aXNpYmxlOiBQYW5lbEhlYWRlckFjdGlvbkljb247XG4gIGhpZGRlbjogUGFuZWxIZWFkZXJBY3Rpb25JY29uO1xuICB0b3A6IFBhbmVsSGVhZGVyQWN0aW9uSWNvbjtcbn07XG5cbmV4cG9ydCB0eXBlIExheWVyR3JvdXBJdGVtUHJvcHMgPSB7XG4gIFBhbmVsSGVhZGVyQWN0aW9uOiBSZWFjdC5GQzxQYW5lbEhlYWRlckFjdGlvblByb3BzPjtcbiAgb25DaGFuZ2U6IChwZDogTWFwQ29uZmlnQ2hhbmdlVXBkYXRlckFjdGlvblsncGF5bG9hZCddKSA9PiB2b2lkO1xuICBzbHVnOiBzdHJpbmc7XG4gIGxheWVyczogTWFwU3R5bGVbJ3Zpc2libGVMYXllckdyb3VwcyddO1xuICB0b3BMYXllcnM6IE1hcFN0eWxlWyd0b3BMYXllckdyb3VwcyddO1xuICBhY3Rpb25JY29uczogTGF5ZXJHcm91cEl0ZW1BY3Rpb25JY29ucztcbiAgY29sb3I6IFJHQkNvbG9yIHwgbnVsbDtcbiAgb25Db2xvckNoYW5nZTogKHBkOiBSR0JDb2xvcikgPT4gdm9pZDtcbiAgaXNWaXNpYmlsaXR5VG9nZ2xlQXZhaWxhYmxlPzogYm9vbGVhbjtcbiAgaXNNb3ZlVG9Ub3BBdmFpbGFibGU/OiBib29sZWFuO1xuICBpc0NvbG9yUGlja2VyQXZhaWxhYmxlPzogYm9vbGVhbjtcbn07XG5cbkxheWVyR3JvdXBJdGVtRmFjdG9yeS5kZXBzID0gW0xheWVyR3JvdXBDb2xvclBpY2tlckZhY3RvcnldO1xuXG5mdW5jdGlvbiBMYXllckdyb3VwSXRlbUZhY3RvcnkoTGF5ZXJHcm91cENvbG9yUGlja2VyKSB7XG4gIGNvbnN0IExheWVyR3JvdXBJdGVtOiBSZWFjdC5GQzxMYXllckdyb3VwSXRlbVByb3BzPiA9ICh7XG4gICAgUGFuZWxIZWFkZXJBY3Rpb24sXG4gICAgb25DaGFuZ2UsXG4gICAgc2x1ZyxcbiAgICBsYXllcnMsXG4gICAgdG9wTGF5ZXJzLFxuICAgIGFjdGlvbkljb25zLFxuICAgIGNvbG9yLFxuICAgIG9uQ29sb3JDaGFuZ2UsXG4gICAgaXNWaXNpYmlsaXR5VG9nZ2xlQXZhaWxhYmxlID0gdHJ1ZSxcbiAgICBpc01vdmVUb1RvcEF2YWlsYWJsZSA9IHRydWUsXG4gICAgaXNDb2xvclBpY2tlckF2YWlsYWJsZSA9IGZhbHNlXG4gIH0pID0+IHtcbiAgICBjb25zdCBvblZpc2liaWxpdHlUb2dnbGUgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBvbkNoYW5nZSh7XG4gICAgICAgIHZpc2libGVMYXllckdyb3Vwczoge1xuICAgICAgICAgIC4uLmxheWVycyxcbiAgICAgICAgICBbc2x1Z106ICFsYXllcnNbc2x1Z11cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSwgW29uQ2hhbmdlLCBsYXllcnMsIHNsdWddKTtcblxuICAgIGNvbnN0IG9uTW92ZVRvVG9wVG9nZ2xlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgb25DaGFuZ2Uoe1xuICAgICAgICB0b3BMYXllckdyb3Vwczoge1xuICAgICAgICAgIC4uLnRvcExheWVycyxcbiAgICAgICAgICBbc2x1Z106ICF0b3BMYXllcnNbc2x1Z11cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSwgW29uQ2hhbmdlLCB0b3BMYXllcnMsIHNsdWddKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkTGF5ZXJHcm91cEl0ZW0gY2xhc3NOYW1lPVwibGF5ZXItZ3JvdXBfX3NlbGVjdFwiPlxuICAgICAgICB7aXNWaXNpYmlsaXR5VG9nZ2xlQXZhaWxhYmxlID8gKFxuICAgICAgICAgIDxQYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgICAgIDxQYW5lbEhlYWRlckFjdGlvblxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJsYXllci1ncm91cF9fdmlzaWJpbGl0eS10b2dnbGVcIlxuICAgICAgICAgICAgICBpZD17YCR7c2x1Z30tdG9nZ2xlYH1cbiAgICAgICAgICAgICAgdG9vbHRpcD17bGF5ZXJzW3NsdWddID8gJ3Rvb2x0aXAuaGlkZScgOiAndG9vbHRpcC5zaG93J31cbiAgICAgICAgICAgICAgb25DbGljaz17b25WaXNpYmlsaXR5VG9nZ2xlfVxuICAgICAgICAgICAgICBJY29uQ29tcG9uZW50PXtsYXllcnNbc2x1Z10gPyBhY3Rpb25JY29ucy52aXNpYmxlIDogYWN0aW9uSWNvbnMuaGlkZGVufVxuICAgICAgICAgICAgICBhY3RpdmU9e2xheWVyc1tzbHVnXX1cbiAgICAgICAgICAgICAgZmx1c2hcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8TGF5ZXJMYWJlbCBhY3RpdmU9e2xheWVyc1tzbHVnXX0+XG4gICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXtgbWFwTGF5ZXJzLiR7Y2FtZWxpemUoc2x1Zyl9YH0gLz5cbiAgICAgICAgICAgIDwvTGF5ZXJMYWJlbD5cbiAgICAgICAgICA8L1BhbmVsTGFiZWxXcmFwcGVyPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxDZW50ZXJGbGV4Ym94PlxuICAgICAgICAgICAgPExheWVyTGFiZWwgc3R5bGU9e3ttYXJnaW5MZWZ0OiAnMjhweCd9fSBhY3RpdmU9e3RydWV9PlxuICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17YG1hcExheWVycy4ke2NhbWVsaXplKHNsdWcpfWB9IC8+XG4gICAgICAgICAgICA8L0xheWVyTGFiZWw+XG4gICAgICAgICAgPC9DZW50ZXJGbGV4Ym94PlxuICAgICAgICApfVxuICAgICAgICA8Q2VudGVyRmxleGJveCBjbGFzc05hbWU9XCJsYXllci1ncm91cF9fdHJhaWxpbmctYWN0aW9uc1wiPlxuICAgICAgICAgIHtpc0NvbG9yUGlja2VyQXZhaWxhYmxlICYmIGNvbG9yID8gKFxuICAgICAgICAgICAgPExheWVyR3JvdXBDb2xvclBpY2tlclxuICAgICAgICAgICAgICBzbHVnPXtzbHVnfVxuICAgICAgICAgICAgICBjb2xvcj17Y29sb3J9XG4gICAgICAgICAgICAgIG9uQ29sb3JDaGFuZ2U9e29uQ29sb3JDaGFuZ2V9XG4gICAgICAgICAgICAgIGV4dHJhTWFyZ2luUmlnaHQ9e2lzTW92ZVRvVG9wQXZhaWxhYmxlfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17aXNWaXNpYmlsaXR5VG9nZ2xlQXZhaWxhYmxlICYmICFsYXllcnNbc2x1Z119XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIHtpc01vdmVUb1RvcEF2YWlsYWJsZSA/IChcbiAgICAgICAgICAgIDxQYW5lbEhlYWRlckFjdGlvblxuICAgICAgICAgICAgICBpZD17YCR7c2x1Z30tdG9wYH1cbiAgICAgICAgICAgICAgdG9vbHRpcD1cInRvb2x0aXAubW92ZVRvVG9wXCJcbiAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFsYXllcnNbc2x1Z119XG4gICAgICAgICAgICAgIEljb25Db21wb25lbnQ9e2FjdGlvbkljb25zLnRvcH1cbiAgICAgICAgICAgICAgYWN0aXZlPXt0b3BMYXllcnNbc2x1Z119XG4gICAgICAgICAgICAgIG9uQ2xpY2s9e29uTW92ZVRvVG9wVG9nZ2xlfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgPC9DZW50ZXJGbGV4Ym94PlxuICAgICAgPC9TdHlsZWRMYXllckdyb3VwSXRlbT5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBMYXllckdyb3VwSXRlbTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTGF5ZXJHcm91cEl0ZW1GYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUVBLElBQUFHLGFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUosT0FBQTtBQUtBLElBQUFLLHlCQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFFQSxJQUFBTSxrQkFBQSxHQUFBTixPQUFBO0FBQWdHLElBQUFPLGVB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