@kepler.gl/deckgl-layers 3.0.0-alpha.0 → 3.0.0-alpha.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,16 @@
1
- /// <reference types="deck.gl" />
2
- /// <reference types="@danmarshall/deckgl-typings/deck.gl__layers" />
3
- /// <reference types="@danmarshall/deckgl-typings/deck.gl__geo-layers" />
4
- import { CompositeLayer } from '@deck.gl/core';
5
- import { TileLayer as DeckGLTileLayer } from '@deck.gl/geo-layers';
6
- import { ThreeDBuildingLayerProps, TileDataItem } from './types';
7
- import { SolidPolygonLayer } from '@deck.gl/layers';
8
- export default class ThreeDBuildingLayer extends CompositeLayer<{}, ThreeDBuildingLayerProps> {
9
- renderSubLayers(props: ThreeDBuildingLayerProps): SolidPolygonLayer<TileDataItem, import("@deck.gl/layers").SolidPolygonLayerProps<TileDataItem>>;
10
- renderLayers(): DeckGLTileLayer<TileDataItem, import("@deck.gl/geo-layers/tile-layer/tile-layer").TileLayerProps<TileDataItem>>[];
1
+ import { CompositeLayer } from '@deck.gl/core/typed';
2
+ import { TileLayer as DeckGLTileLayer } from '@deck.gl/geo-layers/typed';
3
+ import { SolidPolygonLayer, SolidPolygonLayerProps } from '@deck.gl/layers/typed';
4
+ import { ThreeDBuildingLayerProps, TileDataItem, TileLoadProps } from './types';
5
+ export default class ThreeDBuildingLayer extends CompositeLayer<ThreeDBuildingLayerProps> {
6
+ renderSubLayers(props: SolidPolygonLayerProps<any>): SolidPolygonLayer<TileDataItem, {}>;
7
+ renderLayers(): DeckGLTileLayer<any, {
8
+ id: string;
9
+ getTileData: (tile: TileLoadProps) => Promise<TileDataItem[]>;
10
+ minZoom: 13;
11
+ renderSubLayers: (props: SolidPolygonLayerProps<any>) => SolidPolygonLayer<TileDataItem, {}>;
12
+ updateTriggers: {
13
+ getFillColor: import("@kepler.gl/types").RGBColor;
14
+ } & Record<string, any>;
15
+ }>[];
11
16
  }
@@ -1,23 +1,3 @@
1
- // Copyright (c) 2022 Uber Technologies, Inc.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to deal
5
- // in the Software without restriction, including without limitation the rights
6
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- // copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- // THE SOFTWARE.
20
-
21
1
  "use strict";
22
2
 
23
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -39,13 +19,15 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
39
19
 
40
20
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
41
21
 
42
- var _core = require("@deck.gl/core");
22
+ var _constants = _interopRequireDefault(require("@luma.gl/constants"));
43
23
 
44
- var _geoLayers = require("@deck.gl/geo-layers");
24
+ var _typed = require("@deck.gl/core/typed");
45
25
 
46
- var _dBuildingUtils = require("./3d-building-utils");
26
+ var _typed2 = require("@deck.gl/geo-layers/typed");
47
27
 
48
- var _layers = require("@deck.gl/layers");
28
+ var _typed3 = require("@deck.gl/layers/typed");
29
+
30
+ var _dBuildingUtils = require("./3d-building-utils");
49
31
 
50
32
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
51
33
 
@@ -69,10 +51,10 @@ var ThreeDBuildingLayer = /*#__PURE__*/function (_CompositeLayer) {
69
51
  key: "renderSubLayers",
70
52
  value: // this layer add its subLayers to the redux store, and push sample data
71
53
  function renderSubLayers(props) {
72
- return new _layers.SolidPolygonLayer(_objectSpread(_objectSpread({}, props), {}, {
54
+ return new _typed3.SolidPolygonLayer(_objectSpread(_objectSpread({}, props), {}, {
73
55
  parameters: {
74
- blendFunc: ['SRC_ALPHA', 'ONE_MINUS_SRC_ALPHA', 'ONE', 'ONE_MINUS_SRC_ALPHA'],
75
- blendEquation: ['FUNC_ADD', 'FUNC_ADD']
56
+ blendFunc: [_constants["default"].SRC_ALPHA, _constants["default"].ONE_MINUS_SRC_ALPHA, _constants["default"].ONE, _constants["default"].ONE_MINUS_SRC_ALPHA],
57
+ blendEquation: [_constants["default"].FUNC_ADD, _constants["default"].FUNC_ADD]
76
58
  },
77
59
  extruded: true,
78
60
  opacity: 1,
@@ -91,10 +73,10 @@ var ThreeDBuildingLayer = /*#__PURE__*/function (_CompositeLayer) {
91
73
  value: function renderLayers() {
92
74
  var _this = this;
93
75
 
94
- return [new _geoLayers.TileLayer({
76
+ return [new _typed2.TileLayer({
95
77
  id: "".concat(this.id, "-deck-3d-building"),
96
- getTileData: function getTileData(args) {
97
- return (0, _dBuildingUtils.getTileData)(_this.props.mapboxApiUrl, _this.props.mapboxApiAccessToken, args);
78
+ getTileData: function getTileData(tile) {
79
+ return (0, _dBuildingUtils.getTileData)(_this.props.mapboxApiUrl, _this.props.mapboxApiAccessToken, tile);
98
80
  },
99
81
  minZoom: 13,
100
82
  renderSubLayers: this.renderSubLayers.bind(this),
@@ -103,7 +85,7 @@ var ThreeDBuildingLayer = /*#__PURE__*/function (_CompositeLayer) {
103
85
  }
104
86
  }]);
105
87
  return ThreeDBuildingLayer;
106
- }(_core.CompositeLayer);
88
+ }(_typed.CompositeLayer);
107
89
 
108
90
  exports["default"] = ThreeDBuildingLayer;
109
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy8zZC1idWlsZGluZy1sYXllci8zZC1idWlsZGluZy1sYXllci50cyJdLCJuYW1lcyI6WyJUaHJlZURCdWlsZGluZ0xheWVyIiwicHJvcHMiLCJTb2xpZFBvbHlnb25MYXllciIsInBhcmFtZXRlcnMiLCJibGVuZEZ1bmMiLCJibGVuZEVxdWF0aW9uIiwiZXh0cnVkZWQiLCJvcGFjaXR5IiwiZmlsbGVkIiwiZ2V0RWxldmF0aW9uIiwiZmVhdHVyZSIsInByb3BlcnRpZXMiLCJoZWlnaHQiLCJnZXRQb2x5Z29uIiwiY29vcmRpbmF0ZXMiLCJnZXRGaWxsQ29sb3IiLCJ0aHJlZURCdWlsZGluZ0NvbG9yIiwiRGVja0dMVGlsZUxheWVyIiwiaWQiLCJnZXRUaWxlRGF0YSIsImFyZ3MiLCJtYXBib3hBcGlVcmwiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1pblpvb20iLCJyZW5kZXJTdWJMYXllcnMiLCJiaW5kIiwidXBkYXRlVHJpZ2dlcnMiLCJDb21wb3NpdGVMYXllciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUVBOzs7Ozs7Ozs7O0lBRXFCQSxtQjs7Ozs7Ozs7Ozs7O1dBQ25CO0FBRUEsNkJBQWdCQyxLQUFoQixFQUFpRDtBQUMvQyxhQUFPLElBQUlDLHlCQUFKLGlDQUNGRCxLQURFO0FBRUxFLFFBQUFBLFVBQVUsRUFBRTtBQUNWQyxVQUFBQSxTQUFTLEVBQUUsQ0FBQyxXQUFELEVBQWMscUJBQWQsRUFBcUMsS0FBckMsRUFBNEMscUJBQTVDLENBREQ7QUFFVkMsVUFBQUEsYUFBYSxFQUFFLENBQUMsVUFBRCxFQUFhLFVBQWI7QUFGTCxTQUZQO0FBTUxDLFFBQUFBLFFBQVEsRUFBRSxJQU5MO0FBT0xDLFFBQUFBLE9BQU8sRUFBRSxDQVBKO0FBUUxDLFFBQUFBLE1BQU0sRUFBRSxJQVJIO0FBU0xDLFFBQUFBLFlBQVksRUFBRSxzQkFBQ0MsT0FBRDtBQUFBLGlCQUEyQkEsT0FBTyxDQUFDQyxVQUFSLENBQW1CQyxNQUFuQixJQUE2QixDQUF4RDtBQUFBLFNBVFQ7QUFVTEMsUUFBQUEsVUFBVSxFQUFFLG9CQUFDSCxPQUFEO0FBQUEsaUJBQTJCQSxPQUFPLENBQUNJLFdBQW5DO0FBQUEsU0FWUDtBQVdMQyxRQUFBQSxZQUFZLEVBQUUsS0FBS2QsS0FBTCxDQUFXZTtBQVhwQixTQUFQO0FBYUQ7OztXQUVELHdCQUFlO0FBQUE7O0FBQ2IsYUFBTyxDQUNMLElBQUlDLG9CQUFKLENBQW9CO0FBQ2xCQyxRQUFBQSxFQUFFLFlBQUssS0FBS0EsRUFBVixzQkFEZ0I7QUFFbEJDLFFBQUFBLFdBQVcsRUFBRSxxQkFBQ0MsSUFBRDtBQUFBLGlCQUNYLGlDQUFZLEtBQUksQ0FBQ25CLEtBQUwsQ0FBV29CLFlBQXZCLEVBQXFDLEtBQUksQ0FBQ3BCLEtBQUwsQ0FBV3FCLG9CQUFoRCxFQUFzRUYsSUFBdEUsQ0FEVztBQUFBLFNBRks7QUFJbEJHLFFBQUFBLE9BQU8sRUFBRSxFQUpTO0FBS2xCQyxRQUFBQSxlQUFlLEVBQUUsS0FBS0EsZUFBTCxDQUFxQkMsSUFBckIsQ0FBMEIsSUFBMUIsQ0FMQztBQU1sQkMsUUFBQUEsY0FBYyxFQUFFLEtBQUt6QixLQUFMLENBQVd5QjtBQU5ULE9BQXBCLENBREssQ0FBUDtBQVVEOzs7RUE5QjhDQyxvQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7Q29tcG9zaXRlTGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IHtUaWxlTGF5ZXIgYXMgRGVja0dMVGlsZUxheWVyfSBmcm9tICdAZGVjay5nbC9nZW8tbGF5ZXJzJztcbmltcG9ydCB7Z2V0VGlsZURhdGF9IGZyb20gJy4vM2QtYnVpbGRpbmctdXRpbHMnO1xuaW1wb3J0IHtUaHJlZURCdWlsZGluZ0xheWVyUHJvcHMsIENvb3JkaW5hdGVzLCBUaWxlRGF0YUl0ZW19IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHtTb2xpZFBvbHlnb25MYXllcn0gZnJvbSAnQGRlY2suZ2wvbGF5ZXJzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVGhyZWVEQnVpbGRpbmdMYXllciBleHRlbmRzIENvbXBvc2l0ZUxheWVyPHt9LCBUaHJlZURCdWlsZGluZ0xheWVyUHJvcHM+IHtcbiAgLy8gdGhpcyBsYXllciBhZGQgaXRzIHN1YkxheWVycyB0byB0aGUgcmVkdXggc3RvcmUsIGFuZCBwdXNoIHNhbXBsZSBkYXRhXG5cbiAgcmVuZGVyU3ViTGF5ZXJzKHByb3BzOiBUaHJlZURCdWlsZGluZ0xheWVyUHJvcHMpIHtcbiAgICByZXR1cm4gbmV3IFNvbGlkUG9seWdvbkxheWVyPFRpbGVEYXRhSXRlbT4oe1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgIGJsZW5kRnVuYzogWydTUkNfQUxQSEEnLCAnT05FX01JTlVTX1NSQ19BTFBIQScsICdPTkUnLCAnT05FX01JTlVTX1NSQ19BTFBIQSddLFxuICAgICAgICBibGVuZEVxdWF0aW9uOiBbJ0ZVTkNfQUREJywgJ0ZVTkNfQUREJ11cbiAgICAgIH0sXG4gICAgICBleHRydWRlZDogdHJ1ZSxcbiAgICAgIG9wYWNpdHk6IDEsXG4gICAgICBmaWxsZWQ6IHRydWUsXG4gICAgICBnZXRFbGV2YXRpb246IChmZWF0dXJlOiBUaWxlRGF0YUl0ZW0pID0+IGZlYXR1cmUucHJvcGVydGllcy5oZWlnaHQgfHwgMCxcbiAgICAgIGdldFBvbHlnb246IChmZWF0dXJlOiBUaWxlRGF0YUl0ZW0pID0+IGZlYXR1cmUuY29vcmRpbmF0ZXMsXG4gICAgICBnZXRGaWxsQ29sb3I6IHRoaXMucHJvcHMudGhyZWVEQnVpbGRpbmdDb2xvclxuICAgIH0pO1xuICB9XG5cbiAgcmVuZGVyTGF5ZXJzKCkge1xuICAgIHJldHVybiBbXG4gICAgICBuZXcgRGVja0dMVGlsZUxheWVyKHtcbiAgICAgICAgaWQ6IGAke3RoaXMuaWR9LWRlY2stM2QtYnVpbGRpbmdgLFxuICAgICAgICBnZXRUaWxlRGF0YTogKGFyZ3M6IENvb3JkaW5hdGVzKSA9PlxuICAgICAgICAgIGdldFRpbGVEYXRhKHRoaXMucHJvcHMubWFwYm94QXBpVXJsLCB0aGlzLnByb3BzLm1hcGJveEFwaUFjY2Vzc1Rva2VuLCBhcmdzKSxcbiAgICAgICAgbWluWm9vbTogMTMsXG4gICAgICAgIHJlbmRlclN1YkxheWVyczogdGhpcy5yZW5kZXJTdWJMYXllcnMuYmluZCh0aGlzKSxcbiAgICAgICAgdXBkYXRlVHJpZ2dlcnM6IHRoaXMucHJvcHMudXBkYXRlVHJpZ2dlcnNcbiAgICAgIH0pXG4gICAgXTtcbiAgfVxufVxuIl19
91
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy8zZC1idWlsZGluZy1sYXllci8zZC1idWlsZGluZy1sYXllci50cyJdLCJuYW1lcyI6WyJUaHJlZURCdWlsZGluZ0xheWVyIiwicHJvcHMiLCJTb2xpZFBvbHlnb25MYXllciIsInBhcmFtZXRlcnMiLCJibGVuZEZ1bmMiLCJHTCIsIlNSQ19BTFBIQSIsIk9ORV9NSU5VU19TUkNfQUxQSEEiLCJPTkUiLCJibGVuZEVxdWF0aW9uIiwiRlVOQ19BREQiLCJleHRydWRlZCIsIm9wYWNpdHkiLCJmaWxsZWQiLCJnZXRFbGV2YXRpb24iLCJmZWF0dXJlIiwicHJvcGVydGllcyIsImhlaWdodCIsImdldFBvbHlnb24iLCJjb29yZGluYXRlcyIsImdldEZpbGxDb2xvciIsInRocmVlREJ1aWxkaW5nQ29sb3IiLCJEZWNrR0xUaWxlTGF5ZXIiLCJpZCIsImdldFRpbGVEYXRhIiwidGlsZSIsIm1hcGJveEFwaVVybCIsIm1hcGJveEFwaUFjY2Vzc1Rva2VuIiwibWluWm9vbSIsInJlbmRlclN1YkxheWVycyIsImJpbmQiLCJ1cGRhdGVUcmlnZ2VycyIsIkNvbXBvc2l0ZUxheWVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7Ozs7Ozs7OztJQUdxQkEsbUI7Ozs7Ozs7Ozs7OztXQUNuQjtBQUVBLDZCQUFnQkMsS0FBaEIsRUFBb0Q7QUFDbEQsYUFBTyxJQUFJQyx5QkFBSixpQ0FDRkQsS0FERTtBQUVMRSxRQUFBQSxVQUFVLEVBQUU7QUFDVkMsVUFBQUEsU0FBUyxFQUFFLENBQUNDLHNCQUFHQyxTQUFKLEVBQWVELHNCQUFHRSxtQkFBbEIsRUFBdUNGLHNCQUFHRyxHQUExQyxFQUErQ0gsc0JBQUdFLG1CQUFsRCxDQUREO0FBRVZFLFVBQUFBLGFBQWEsRUFBRSxDQUFDSixzQkFBR0ssUUFBSixFQUFjTCxzQkFBR0ssUUFBakI7QUFGTCxTQUZQO0FBTUxDLFFBQUFBLFFBQVEsRUFBRSxJQU5MO0FBT0xDLFFBQUFBLE9BQU8sRUFBRSxDQVBKO0FBUUxDLFFBQUFBLE1BQU0sRUFBRSxJQVJIO0FBU0xDLFFBQUFBLFlBQVksRUFBRSxzQkFBQ0MsT0FBRDtBQUFBLGlCQUEyQkEsT0FBTyxDQUFDQyxVQUFSLENBQW1CQyxNQUFuQixJQUE2QixDQUF4RDtBQUFBLFNBVFQ7QUFVTEMsUUFBQUEsVUFBVSxFQUFFLG9CQUFDSCxPQUFEO0FBQUEsaUJBQTJCQSxPQUFPLENBQUNJLFdBQW5DO0FBQUEsU0FWUDtBQVdMQyxRQUFBQSxZQUFZLEVBQUUsS0FBS25CLEtBQUwsQ0FBV29CO0FBWHBCLFNBQVA7QUFhRDs7O1dBRUQsd0JBQWU7QUFBQTs7QUFDYixhQUFPLENBQ0wsSUFBSUMsaUJBQUosQ0FBb0I7QUFDbEJDLFFBQUFBLEVBQUUsWUFBSyxLQUFLQSxFQUFWLHNCQURnQjtBQUVsQkMsUUFBQUEsV0FBVyxFQUFFLHFCQUFDQyxJQUFEO0FBQUEsaUJBQ1gsaUNBQVksS0FBSSxDQUFDeEIsS0FBTCxDQUFXeUIsWUFBdkIsRUFBcUMsS0FBSSxDQUFDekIsS0FBTCxDQUFXMEIsb0JBQWhELEVBQXNFRixJQUF0RSxDQURXO0FBQUEsU0FGSztBQUlsQkcsUUFBQUEsT0FBTyxFQUFFLEVBSlM7QUFLbEJDLFFBQUFBLGVBQWUsRUFBRSxLQUFLQSxlQUFMLENBQXFCQyxJQUFyQixDQUEwQixJQUExQixDQUxDO0FBTWxCQyxRQUFBQSxjQUFjLEVBQUUsS0FBSzlCLEtBQUwsQ0FBVzhCO0FBTlQsT0FBcEIsQ0FESyxDQUFQO0FBVUQ7OztFQTlCOENDLHFCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IEdMIGZyb20gJ0BsdW1hLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0NvbXBvc2l0ZUxheWVyfSBmcm9tICdAZGVjay5nbC9jb3JlL3R5cGVkJztcbmltcG9ydCB7VGlsZUxheWVyIGFzIERlY2tHTFRpbGVMYXllcn0gZnJvbSAnQGRlY2suZ2wvZ2VvLWxheWVycy90eXBlZCc7XG5pbXBvcnQge1NvbGlkUG9seWdvbkxheWVyLCBTb2xpZFBvbHlnb25MYXllclByb3BzfSBmcm9tICdAZGVjay5nbC9sYXllcnMvdHlwZWQnO1xuXG5pbXBvcnQge2dldFRpbGVEYXRhfSBmcm9tICcuLzNkLWJ1aWxkaW5nLXV0aWxzJztcbmltcG9ydCB7VGhyZWVEQnVpbGRpbmdMYXllclByb3BzLCBUaWxlRGF0YUl0ZW0sIFRpbGVMb2FkUHJvcHN9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBUaHJlZURCdWlsZGluZ0xheWVyIGV4dGVuZHMgQ29tcG9zaXRlTGF5ZXI8VGhyZWVEQnVpbGRpbmdMYXllclByb3BzPiB7XG4gIC8vIHRoaXMgbGF5ZXIgYWRkIGl0cyBzdWJMYXllcnMgdG8gdGhlIHJlZHV4IHN0b3JlLCBhbmQgcHVzaCBzYW1wbGUgZGF0YVxuXG4gIHJlbmRlclN1YkxheWVycyhwcm9wczogU29saWRQb2x5Z29uTGF5ZXJQcm9wczxhbnk+KSB7XG4gICAgcmV0dXJuIG5ldyBTb2xpZFBvbHlnb25MYXllcjxUaWxlRGF0YUl0ZW0+KHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBibGVuZEZ1bmM6IFtHTC5TUkNfQUxQSEEsIEdMLk9ORV9NSU5VU19TUkNfQUxQSEEsIEdMLk9ORSwgR0wuT05FX01JTlVTX1NSQ19BTFBIQV0sXG4gICAgICAgIGJsZW5kRXF1YXRpb246IFtHTC5GVU5DX0FERCwgR0wuRlVOQ19BRERdXG4gICAgICB9LFxuICAgICAgZXh0cnVkZWQ6IHRydWUsXG4gICAgICBvcGFjaXR5OiAxLFxuICAgICAgZmlsbGVkOiB0cnVlLFxuICAgICAgZ2V0RWxldmF0aW9uOiAoZmVhdHVyZTogVGlsZURhdGFJdGVtKSA9PiBmZWF0dXJlLnByb3BlcnRpZXMuaGVpZ2h0IHx8IDAsXG4gICAgICBnZXRQb2x5Z29uOiAoZmVhdHVyZTogVGlsZURhdGFJdGVtKSA9PiBmZWF0dXJlLmNvb3JkaW5hdGVzLFxuICAgICAgZ2V0RmlsbENvbG9yOiB0aGlzLnByb3BzLnRocmVlREJ1aWxkaW5nQ29sb3JcbiAgICB9KTtcbiAgfVxuXG4gIHJlbmRlckxheWVycygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgbmV3IERlY2tHTFRpbGVMYXllcih7XG4gICAgICAgIGlkOiBgJHt0aGlzLmlkfS1kZWNrLTNkLWJ1aWxkaW5nYCBhcyBzdHJpbmcsXG4gICAgICAgIGdldFRpbGVEYXRhOiAodGlsZTogVGlsZUxvYWRQcm9wcykgPT5cbiAgICAgICAgICBnZXRUaWxlRGF0YSh0aGlzLnByb3BzLm1hcGJveEFwaVVybCwgdGhpcy5wcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbiwgdGlsZSksXG4gICAgICAgIG1pblpvb206IDEzLFxuICAgICAgICByZW5kZXJTdWJMYXllcnM6IHRoaXMucmVuZGVyU3ViTGF5ZXJzLmJpbmQodGhpcyksXG4gICAgICAgIHVwZGF0ZVRyaWdnZXJzOiB0aGlzLnByb3BzLnVwZGF0ZVRyaWdnZXJzXG4gICAgICB9KVxuICAgIF07XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,7 @@
1
1
  import { Coordinates, FlatFigure, TileDataItem, VectorTileFeature, VectorTileFeatureProperties } from './types';
2
- export declare function getTileData(host: string, token: string, { x, y, z }: Coordinates): Promise<TileDataItem[]>;
2
+ export declare function getTileData(host: string, token: string, { index: { x, y, z } }: {
3
+ index: Coordinates;
4
+ }): Promise<TileDataItem[]>;
3
5
  export declare function decodeTile(x: number, y: number, z: number, arrayBuffer: ArrayBuffer): TileDataItem[];
4
6
  export declare function vectorTileFeatureToProp(vectorTileFeature: VectorTileFeature, project: (r: FlatFigure, n: number) => void): {
5
7
  coordinates: FlatFigure[];
@@ -1,23 +1,3 @@
1
- // Copyright (c) 2022 Uber Technologies, Inc.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to deal
5
- // in the Software without restriction, including without limitation the rights
6
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- // copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- // THE SOFTWARE.
20
-
21
1
  "use strict";
22
2
 
23
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -33,15 +13,21 @@ var _pbf = _interopRequireDefault(require("pbf"));
33
13
 
34
14
  var _vectorTile = require("@mapbox/vector-tile");
35
15
 
36
- var _viewportMercatorProject = require("viewport-mercator-project");/* global fetch */
16
+ var _viewportMercatorProject = require("viewport-mercator-project");
17
+
18
+ // SPDX-License-Identifier: MIT
19
+ // Copyright contributors to the kepler.gl project
20
+
21
+ /* global fetch */
37
22
  var TILE_SIZE = 512;
38
23
  var MAPBOX_HOST = 'https://a.tiles.mapbox.com';
39
24
  var MAP_SOURCE = '/v4/mapbox.mapbox-streets-v7';
40
25
 
41
26
  function getTileData(host, token, _ref) {
42
- var x = _ref.x,
43
- y = _ref.y,
44
- z = _ref.z;
27
+ var _ref$index = _ref.index,
28
+ x = _ref$index.x,
29
+ y = _ref$index.y,
30
+ z = _ref$index.z;
45
31
  var mapSource = "".concat(host || MAPBOX_HOST).concat(MAP_SOURCE, "/").concat(z, "/").concat(x, "/").concat(y, ".vector.pbf?access_token=").concat(token);
46
32
  return fetch(mapSource).then(function (response) {
47
33
  return response.arrayBuffer();
@@ -67,7 +53,8 @@ function decodeTile(x, y, z, arrayBuffer) {
67
53
  }
68
54
 
69
55
  for (var i = 0; i < vectorTileLayer.length; i++) {
70
- var vectorTileFeature = vectorTileLayer.feature(i);
56
+ var vectorTileFeature = vectorTileLayer.feature(i); // @ts-ignore
57
+
71
58
  var features = vectorTileFeatureToProp(vectorTileFeature, projectFunc);
72
59
  features.forEach(function (f) {
73
60
  f.properties.layer = layerName;
@@ -209,4 +196,4 @@ function signedArea(ring) {
209
196
 
210
197
  return sum;
211
198
  }
212
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy8zZC1idWlsZGluZy1sYXllci8zZC1idWlsZGluZy11dGlscy50cyJdLCJuYW1lcyI6WyJUSUxFX1NJWkUiLCJNQVBCT1hfSE9TVCIsIk1BUF9TT1VSQ0UiLCJnZXRUaWxlRGF0YSIsImhvc3QiLCJ0b2tlbiIsIngiLCJ5IiwieiIsIm1hcFNvdXJjZSIsImZldGNoIiwidGhlbiIsInJlc3BvbnNlIiwiYXJyYXlCdWZmZXIiLCJidWZmZXIiLCJkZWNvZGVUaWxlIiwidGlsZSIsIlZlY3RvclRpbGUiLCJQcm90b2J1ZiIsInJlc3VsdCIsInhQcm9qIiwieVByb2oiLCJzY2FsZSIsIk1hdGgiLCJwb3ciLCJwcm9qZWN0RnVuYyIsInByb2plY3QiLCJiaW5kIiwibGF5ZXJOYW1lIiwidmVjdG9yVGlsZUxheWVyIiwibGF5ZXJzIiwiaSIsImxlbmd0aCIsInZlY3RvclRpbGVGZWF0dXJlIiwiZmVhdHVyZSIsImZlYXR1cmVzIiwidmVjdG9yVGlsZUZlYXR1cmVUb1Byb3AiLCJmb3JFYWNoIiwiZiIsInByb3BlcnRpZXMiLCJsYXllciIsImhlaWdodCIsInB1c2giLCJsaW5lIiwiZXh0ZW50Iiwic2l6ZVRvUGl4ZWwiLCJpaSIsInAiLCJjb29yZHMiLCJnZXRDb29yZGluYXRlcyIsImoiLCJjbGFzc2lmeVJpbmdzIiwibWFwIiwiY29vcmRpbmF0ZXMiLCJwYmYiLCJfcGJmIiwicG9zIiwiX2dlb21ldHJ5IiwiZW5kIiwicmVhZFZhcmludCIsImNtZCIsImxpbmVzIiwiY21kTGVuIiwicmVhZFNWYXJpbnQiLCJzbGljZSIsIkVycm9yIiwicmluZ3MiLCJsZW4iLCJwb2x5Z29ucyIsInBvbHlnb24iLCJjY3ciLCJhcmVhIiwic2lnbmVkQXJlYSIsInVuZGVmaW5lZCIsInJpbmciLCJzdW0iLCJwMSIsInAyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUF0QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBYUE7QUFDQSxJQUFNQSxTQUFTLEdBQUcsR0FBbEI7QUFDQSxJQUFNQyxXQUFXLEdBQUcsNEJBQXBCO0FBQ0EsSUFBTUMsVUFBVSxHQUFHLDhCQUFuQjs7QUFFTyxTQUFTQyxXQUFULENBQ0xDLElBREssRUFFTEMsS0FGSyxRQUlvQjtBQUFBLE1BRHhCQyxDQUN3QixRQUR4QkEsQ0FDd0I7QUFBQSxNQURyQkMsQ0FDcUIsUUFEckJBLENBQ3FCO0FBQUEsTUFEbEJDLENBQ2tCLFFBRGxCQSxDQUNrQjtBQUN6QixNQUFNQyxTQUFTLGFBQU1MLElBQUksSUFDdkJILFdBRGEsU0FDQ0MsVUFERCxjQUNlTSxDQURmLGNBQ29CRixDQURwQixjQUN5QkMsQ0FEekIsc0NBQ3NERixLQUR0RCxDQUFmO0FBR0EsU0FBT0ssS0FBSyxDQUFDRCxTQUFELENBQUwsQ0FDSkUsSUFESSxDQUNDLFVBQUFDLFFBQVE7QUFBQSxXQUFJQSxRQUFRLENBQUNDLFdBQVQsRUFBSjtBQUFBLEdBRFQsRUFFSkYsSUFGSSxDQUVDLFVBQUFHLE1BQU07QUFBQSxXQUFJQyxVQUFVLENBQUNULENBQUQsRUFBSUMsQ0FBSixFQUFPQyxDQUFQLEVBQVVNLE1BQVYsQ0FBZDtBQUFBLEdBRlAsQ0FBUDtBQUdEOztBQUVNLFNBQVNDLFVBQVQsQ0FDTFQsQ0FESyxFQUVMQyxDQUZLLEVBR0xDLENBSEssRUFJTEssV0FKSyxFQUtXO0FBQ2hCLE1BQU1HLElBQUksR0FBRyxJQUFJQyxzQkFBSixDQUFlLElBQUlDLGVBQUosQ0FBYUwsV0FBYixDQUFmLENBQWI7QUFFQSxNQUFNTSxNQUFzQixHQUFHLEVBQS9CO0FBQ0EsTUFBTUMsS0FBSyxHQUFHZCxDQUFDLEdBQUdOLFNBQWxCO0FBQ0EsTUFBTXFCLEtBQUssR0FBR2QsQ0FBQyxHQUFHUCxTQUFsQjtBQUNBLE1BQU1zQixLQUFLLEdBQUdDLElBQUksQ0FBQ0MsR0FBTCxDQUFTLENBQVQsRUFBWWhCLENBQVosQ0FBZDtBQUVBLE1BQU1pQixXQUFXLEdBQUdDLE9BQU8sQ0FBQ0MsSUFBUixDQUFhLElBQWIsRUFBbUJQLEtBQW5CLEVBQTBCQyxLQUExQixFQUFpQ0MsS0FBakMsQ0FBcEI7QUFFQTs7QUFDQSxNQUFNTSxTQUFTLEdBQUcsVUFBbEI7QUFDQSxNQUFNQyxlQUFlLEdBQUdiLElBQUksQ0FBQ2MsTUFBTCxDQUFZRixTQUFaLENBQXhCOztBQUNBLE1BQUksQ0FBQ0MsZUFBTCxFQUFzQjtBQUNwQixXQUFPLEVBQVA7QUFDRDs7QUFDRCxPQUFLLElBQUlFLENBQUMsR0FBRyxDQUFiLEVBQWdCQSxDQUFDLEdBQUdGLGVBQWUsQ0FBQ0csTUFBcEMsRUFBNENELENBQUMsRUFBN0MsRUFBaUQ7QUFDL0MsUUFBTUUsaUJBQWlCLEdBQUdKLGVBQWUsQ0FBQ0ssT0FBaEIsQ0FBd0JILENBQXhCLENBQTFCO0FBQ0EsUUFBTUksUUFBUSxHQUFHQyx1QkFBdUIsQ0FBQ0gsaUJBQUQsRUFBb0JSLFdBQXBCLENBQXhDO0FBQ0FVLElBQUFBLFFBQVEsQ0FBQ0UsT0FBVCxDQUFpQixVQUFBQyxDQUFDLEVBQUk7QUFDcEJBLE1BQUFBLENBQUMsQ0FBQ0MsVUFBRixDQUFhQyxLQUFiLEdBQXFCWixTQUFyQjs7QUFDQSxVQUFJVSxDQUFDLENBQUNDLFVBQUYsQ0FBYUUsTUFBakIsRUFBeUI7QUFDdkJ0QixRQUFBQSxNQUFNLENBQUN1QixJQUFQLENBQVlKLENBQVo7QUFDRDtBQUNGLEtBTEQ7QUFNRDs7QUFDRCxTQUFPbkIsTUFBUDtBQUNEOztBQUVELFNBQVNPLE9BQVQsQ0FBaUJwQixDQUFqQixFQUE0QkMsQ0FBNUIsRUFBdUNlLEtBQXZDLEVBQXNEcUIsSUFBdEQsRUFBd0VDLE1BQXhFLEVBQThGO0FBQzVGLE1BQU1DLFdBQVcsR0FBR0QsTUFBTSxHQUFHNUMsU0FBN0I7O0FBRUEsT0FBSyxJQUFJOEMsRUFBRSxHQUFHLENBQWQsRUFBaUJBLEVBQUUsR0FBR0gsSUFBSSxDQUFDWCxNQUEzQixFQUFtQ2MsRUFBRSxFQUFyQyxFQUF5QztBQUN2QyxRQUFNQyxDQUFDLEdBQUdKLElBQUksQ0FBQ0csRUFBRCxDQUFkLENBRHVDLENBRXZDOztBQUNBSCxJQUFBQSxJQUFJLENBQUNHLEVBQUQsQ0FBSixHQUFXLDRDQUFjLENBQUN4QyxDQUFDLEdBQUd5QyxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQU9GLFdBQVosRUFBeUJ0QyxDQUFDLEdBQUd3QyxDQUFDLENBQUMsQ0FBRCxDQUFELEdBQU9GLFdBQXBDLENBQWQsRUFBZ0V2QixLQUFoRSxDQUFYO0FBQ0Q7QUFDRjtBQUVEOztBQUNBOzs7QUFDTyxTQUFTYyx1QkFBVCxDQUNMSCxpQkFESyxFQUVMUCxPQUZLLEVBR21FO0FBQ3hFLE1BQUlzQixNQUFxQyxHQUFHQyxjQUFjLENBQUNoQixpQkFBRCxDQUExRDtBQUNBLE1BQU1XLE1BQU0sR0FBR1gsaUJBQWlCLENBQUNXLE1BQWpDO0FBQ0EsTUFBSWIsQ0FBSjtBQUNBLE1BQUltQixDQUFKO0FBRUFGLEVBQUFBLE1BQU0sR0FBR0csYUFBYSxDQUFDSCxNQUFELENBQXRCOztBQUNBLE9BQUtqQixDQUFDLEdBQUcsQ0FBVCxFQUFZQSxDQUFDLEdBQUdpQixNQUFNLENBQUNoQixNQUF2QixFQUErQkQsQ0FBQyxFQUFoQyxFQUFvQztBQUNsQyxTQUFLbUIsQ0FBQyxHQUFHLENBQVQsRUFBWUEsQ0FBQyxHQUFHRixNQUFNLENBQUNqQixDQUFELENBQU4sQ0FBVUMsTUFBMUIsRUFBa0NrQixDQUFDLEVBQW5DLEVBQXVDO0FBQ3JDeEIsTUFBQUEsT0FBTyxDQUFDc0IsTUFBTSxDQUFDakIsQ0FBRCxDQUFOLENBQVVtQixDQUFWLENBQUQsRUFBZU4sTUFBZixDQUFQO0FBQ0Q7QUFDRjs7QUFFRCxTQUFPSSxNQUFNLENBQUNJLEdBQVAsQ0FBVyxVQUFBQyxXQUFXO0FBQUEsV0FBSztBQUNoQ0EsTUFBQUEsV0FBVyxFQUFYQSxXQURnQztBQUVoQ2QsTUFBQUEsVUFBVSxFQUFFTixpQkFBaUIsQ0FBQ007QUFGRSxLQUFMO0FBQUEsR0FBdEIsQ0FBUDtBQUlEOztBQUVELFNBQVNVLGNBQVQsQ0FBd0JoQixpQkFBeEIsRUFBNEU7QUFDMUUsTUFBTXFCLEdBQUcsR0FBR3JCLGlCQUFpQixDQUFDc0IsSUFBOUI7QUFDQUQsRUFBQUEsR0FBRyxDQUFDRSxHQUFKLEdBQVV2QixpQkFBaUIsQ0FBQ3dCLFNBQTVCO0FBRUEsTUFBTUMsR0FBRyxHQUFHSixHQUFHLENBQUNLLFVBQUosS0FBbUJMLEdBQUcsQ0FBQ0UsR0FBbkM7QUFDQSxNQUFJSSxHQUFHLEdBQUcsQ0FBVjtBQUNBLE1BQUk1QixNQUFNLEdBQUcsQ0FBYjtBQUNBLE1BQUkxQixDQUFDLEdBQUcsQ0FBUjtBQUNBLE1BQUlDLENBQUMsR0FBRyxDQUFSO0FBRUEsTUFBTXNELEtBQW1CLEdBQUcsRUFBNUI7QUFDQSxNQUFJbEIsSUFBSjs7QUFFQSxTQUFPVyxHQUFHLENBQUNFLEdBQUosR0FBVUUsR0FBakIsRUFBc0I7QUFDcEIsUUFBSTFCLE1BQU0sSUFBSSxDQUFkLEVBQWlCO0FBQ2YsVUFBTThCLE1BQU0sR0FBR1IsR0FBRyxDQUFDSyxVQUFKLEVBQWY7QUFDQUMsTUFBQUEsR0FBRyxHQUFHRSxNQUFNLEdBQUcsR0FBZjtBQUNBOUIsTUFBQUEsTUFBTSxHQUFHOEIsTUFBTSxJQUFJLENBQW5CO0FBQ0Q7O0FBRUQ5QixJQUFBQSxNQUFNOztBQUVOLFFBQUk0QixHQUFHLEtBQUssQ0FBUixJQUFhQSxHQUFHLEtBQUssQ0FBekIsRUFBNEI7QUFDMUJ0RCxNQUFBQSxDQUFDLElBQUlnRCxHQUFHLENBQUNTLFdBQUosRUFBTDtBQUNBeEQsTUFBQUEsQ0FBQyxJQUFJK0MsR0FBRyxDQUFDUyxXQUFKLEVBQUw7O0FBRUEsVUFBSUgsR0FBRyxLQUFLLENBQVosRUFBZTtBQUNiO0FBQ0EsWUFBSWpCLElBQUosRUFBVWtCLEtBQUssQ0FBQ25CLElBQU4sQ0FBV0MsSUFBWDtBQUNWQSxRQUFBQSxJQUFJLEdBQUcsRUFBUDtBQUNEOztBQUVELFVBQUlBLElBQUosRUFBVUEsSUFBSSxDQUFDRCxJQUFMLENBQVUsQ0FBQ3BDLENBQUQsRUFBSUMsQ0FBSixDQUFWO0FBQ1gsS0FYRCxNQVdPLElBQUlxRCxHQUFHLEtBQUssQ0FBWixFQUFlO0FBQ3BCO0FBQ0EsVUFBSWpCLElBQUosRUFBVTtBQUNSQSxRQUFBQSxJQUFJLENBQUNELElBQUwsQ0FBVUMsSUFBSSxDQUFDLENBQUQsQ0FBSixDQUFRcUIsS0FBUixFQUFWLEVBRFEsQ0FDbUU7QUFDNUU7QUFDRixLQUxNLE1BS0E7QUFDTCxZQUFNLElBQUlDLEtBQUosMkJBQTZCTCxHQUE3QixFQUFOO0FBQ0Q7QUFDRjs7QUFFRCxNQUFJakIsSUFBSixFQUFVa0IsS0FBSyxDQUFDbkIsSUFBTixDQUFXQyxJQUFYO0FBRVYsU0FBT2tCLEtBQVA7QUFDRCxDLENBRUQ7OztBQUVBLFNBQVNWLGFBQVQsQ0FBdUJlLEtBQXZCLEVBQTREO0FBQzFELE1BQU1DLEdBQUcsR0FBR0QsS0FBSyxDQUFDbEMsTUFBbEI7QUFFQSxNQUFJbUMsR0FBRyxJQUFJLENBQVgsRUFBYyxPQUFPLENBQUNELEtBQUQsQ0FBUDtBQUVkLE1BQU1FLFFBQXdCLEdBQUcsRUFBakM7QUFDQSxNQUFJQyxPQUFKO0FBQ0EsTUFBSUMsR0FBSjs7QUFFQSxPQUFLLElBQUl2QyxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHb0MsR0FBcEIsRUFBeUJwQyxDQUFDLEVBQTFCLEVBQThCO0FBQzVCLFFBQU13QyxJQUFJLEdBQUdDLFVBQVUsQ0FBQ04sS0FBSyxDQUFDbkMsQ0FBRCxDQUFOLENBQXZCOztBQUNBLFFBQUl3QyxJQUFJLEtBQUssQ0FBYixFQUFnQjtBQUNkO0FBQ0Q7O0FBRUQsUUFBSUQsR0FBRyxLQUFLRyxTQUFaLEVBQXVCO0FBQ3JCSCxNQUFBQSxHQUFHLEdBQUdDLElBQUksR0FBRyxDQUFiO0FBQ0Q7O0FBRUQsUUFBSUQsR0FBRyxLQUFLQyxJQUFJLEdBQUcsQ0FBbkIsRUFBc0I7QUFDcEIsVUFBSUYsT0FBSixFQUFhO0FBQ1hELFFBQUFBLFFBQVEsQ0FBQzFCLElBQVQsQ0FBYzJCLE9BQWQ7QUFDRDs7QUFDREEsTUFBQUEsT0FBTyxHQUFHLENBQUNILEtBQUssQ0FBQ25DLENBQUQsQ0FBTixDQUFWO0FBQ0QsS0FMRCxNQUtPLElBQUlzQyxPQUFKLEVBQWE7QUFDbEJBLE1BQUFBLE9BQU8sQ0FBQzNCLElBQVIsQ0FBYXdCLEtBQUssQ0FBQ25DLENBQUQsQ0FBbEI7QUFDRDtBQUNGOztBQUNELE1BQUlzQyxPQUFKLEVBQWE7QUFDWEQsSUFBQUEsUUFBUSxDQUFDMUIsSUFBVCxDQUFjMkIsT0FBZDtBQUNEOztBQUVELFNBQU9ELFFBQVA7QUFDRDs7QUFFRCxTQUFTSSxVQUFULENBQW9CRSxJQUFwQixFQUE4QztBQUM1QyxNQUFJQyxHQUFHLEdBQUcsQ0FBVjs7QUFDQSxPQUFLLElBQUk1QyxDQUFDLEdBQUcsQ0FBUixFQUFXb0MsR0FBRyxHQUFHTyxJQUFJLENBQUMxQyxNQUF0QixFQUE4QmtCLENBQUMsR0FBR2lCLEdBQUcsR0FBRyxDQUF4QyxFQUEyQ1MsRUFBM0MsRUFBeURDLEVBQTlELEVBQTRFOUMsQ0FBQyxHQUFHb0MsR0FBaEYsRUFBcUZqQixDQUFDLEdBQUduQixDQUFDLEVBQTFGLEVBQThGO0FBQzVGNkMsSUFBQUEsRUFBRSxHQUFHRixJQUFJLENBQUMzQyxDQUFELENBQVQ7QUFDQThDLElBQUFBLEVBQUUsR0FBR0gsSUFBSSxDQUFDeEIsQ0FBRCxDQUFUO0FBQ0F5QixJQUFBQSxHQUFHLElBQUksQ0FBQ0UsRUFBRSxDQUFDLENBQUQsQ0FBRixHQUFRRCxFQUFFLENBQUMsQ0FBRCxDQUFYLEtBQW1CQSxFQUFFLENBQUMsQ0FBRCxDQUFGLEdBQVFDLEVBQUUsQ0FBQyxDQUFELENBQTdCLENBQVA7QUFDRDs7QUFDRCxTQUFPRixHQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUHJvdG9idWYgZnJvbSAncGJmJztcbmltcG9ydCB7VmVjdG9yVGlsZX0gZnJvbSAnQG1hcGJveC92ZWN0b3ItdGlsZSc7XG5pbXBvcnQge3dvcmxkVG9MbmdMYXR9IGZyb20gJ3ZpZXdwb3J0LW1lcmNhdG9yLXByb2plY3QnO1xuaW1wb3J0IHtcbiAgQ29vcmRpbmF0ZXMsXG4gIEZsYXRGaWd1cmUsXG4gIFRpbGVEYXRhSXRlbSxcbiAgVmVjdG9yVGlsZUZlYXR1cmUsXG4gIFZlY3RvclRpbGVGZWF0dXJlUHJvcGVydGllc1xufSBmcm9tICcuL3R5cGVzJztcblxuLyogZ2xvYmFsIGZldGNoICovXG5jb25zdCBUSUxFX1NJWkUgPSA1MTI7XG5jb25zdCBNQVBCT1hfSE9TVCA9ICdodHRwczovL2EudGlsZXMubWFwYm94LmNvbSc7XG5jb25zdCBNQVBfU09VUkNFID0gJy92NC9tYXBib3gubWFwYm94LXN0cmVldHMtdjcnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGlsZURhdGEoXG4gIGhvc3Q6IHN0cmluZyxcbiAgdG9rZW46IHN0cmluZyxcbiAge3gsIHksIHp9OiBDb29yZGluYXRlc1xuKTogUHJvbWlzZTxUaWxlRGF0YUl0ZW1bXT4ge1xuICBjb25zdCBtYXBTb3VyY2UgPSBgJHtob3N0IHx8XG4gICAgTUFQQk9YX0hPU1R9JHtNQVBfU09VUkNFfS8ke3p9LyR7eH0vJHt5fS52ZWN0b3IucGJmP2FjY2Vzc190b2tlbj0ke3Rva2VufWA7XG5cbiAgcmV0dXJuIGZldGNoKG1hcFNvdXJjZSlcbiAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS5hcnJheUJ1ZmZlcigpKVxuICAgIC50aGVuKGJ1ZmZlciA9PiBkZWNvZGVUaWxlKHgsIHksIHosIGJ1ZmZlcikpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVjb2RlVGlsZShcbiAgeDogbnVtYmVyLFxuICB5OiBudW1iZXIsXG4gIHo6IG51bWJlcixcbiAgYXJyYXlCdWZmZXI6IEFycmF5QnVmZmVyXG4pOiBUaWxlRGF0YUl0ZW1bXSB7XG4gIGNvbnN0IHRpbGUgPSBuZXcgVmVjdG9yVGlsZShuZXcgUHJvdG9idWYoYXJyYXlCdWZmZXIpKTtcblxuICBjb25zdCByZXN1bHQ6IFRpbGVEYXRhSXRlbVtdID0gW107XG4gIGNvbnN0IHhQcm9qID0geCAqIFRJTEVfU0laRTtcbiAgY29uc3QgeVByb2ogPSB5ICogVElMRV9TSVpFO1xuICBjb25zdCBzY2FsZSA9IE1hdGgucG93KDIsIHopO1xuXG4gIGNvbnN0IHByb2plY3RGdW5jID0gcHJvamVjdC5iaW5kKG51bGwsIHhQcm9qLCB5UHJvaiwgc2NhbGUpO1xuXG4gIC8qIGVzbGludC1kaXNhYmxlIGd1YXJkLWZvci1pbiAqL1xuICBjb25zdCBsYXllck5hbWUgPSAnYnVpbGRpbmcnO1xuICBjb25zdCB2ZWN0b3JUaWxlTGF5ZXIgPSB0aWxlLmxheWVyc1tsYXllck5hbWVdO1xuICBpZiAoIXZlY3RvclRpbGVMYXllcikge1xuICAgIHJldHVybiBbXTtcbiAgfVxuICBmb3IgKGxldCBpID0gMDsgaSA8IHZlY3RvclRpbGVMYXllci5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHZlY3RvclRpbGVGZWF0dXJlID0gdmVjdG9yVGlsZUxheWVyLmZlYXR1cmUoaSk7XG4gICAgY29uc3QgZmVhdHVyZXMgPSB2ZWN0b3JUaWxlRmVhdHVyZVRvUHJvcCh2ZWN0b3JUaWxlRmVhdHVyZSwgcHJvamVjdEZ1bmMpO1xuICAgIGZlYXR1cmVzLmZvckVhY2goZiA9PiB7XG4gICAgICBmLnByb3BlcnRpZXMubGF5ZXIgPSBsYXllck5hbWU7XG4gICAgICBpZiAoZi5wcm9wZXJ0aWVzLmhlaWdodCkge1xuICAgICAgICByZXN1bHQucHVzaChmKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBwcm9qZWN0KHg6IG51bWJlciwgeTogbnVtYmVyLCBzY2FsZTogbnVtYmVyLCBsaW5lOiBGbGF0RmlndXJlLCBleHRlbnQ6IG51bWJlcik6IHZvaWQge1xuICBjb25zdCBzaXplVG9QaXhlbCA9IGV4dGVudCAvIFRJTEVfU0laRTtcblxuICBmb3IgKGxldCBpaSA9IDA7IGlpIDwgbGluZS5sZW5ndGg7IGlpKyspIHtcbiAgICBjb25zdCBwID0gbGluZVtpaV07XG4gICAgLy8gTE5HTEFUXG4gICAgbGluZVtpaV0gPSB3b3JsZFRvTG5nTGF0KFt4ICsgcFswXSAvIHNpemVUb1BpeGVsLCB5ICsgcFsxXSAvIHNpemVUb1BpeGVsXSwgc2NhbGUpO1xuICB9XG59XG5cbi8qIGFkYXB0ZWQgZnJvbSBAbWFwYm94L3ZlY3Rvci10aWxlL2xpYi92ZWN0b3J0aWxlZmVhdHVyZS5qcyBmb3IgYmV0dGVyIHBlcmYgKi9cbi8qIGVzbGludC1kaXNhYmxlICovXG5leHBvcnQgZnVuY3Rpb24gdmVjdG9yVGlsZUZlYXR1cmVUb1Byb3AoXG4gIHZlY3RvclRpbGVGZWF0dXJlOiBWZWN0b3JUaWxlRmVhdHVyZSxcbiAgcHJvamVjdDogKHI6IEZsYXRGaWd1cmUsIG46IG51bWJlcikgPT4gdm9pZFxuKToge2Nvb3JkaW5hdGVzOiBGbGF0RmlndXJlW107IHByb3BlcnRpZXM6IFZlY3RvclRpbGVGZWF0dXJlUHJvcGVydGllc31bXSB7XG4gIGxldCBjb29yZHM6IEZsYXRGaWd1cmVbXVtdIHwgRmxhdEZpZ3VyZVtdID0gZ2V0Q29vcmRpbmF0ZXModmVjdG9yVGlsZUZlYXR1cmUpO1xuICBjb25zdCBleHRlbnQgPSB2ZWN0b3JUaWxlRmVhdHVyZS5leHRlbnQ7XG4gIGxldCBpOiBudW1iZXI7XG4gIGxldCBqOiBudW1iZXI7XG5cbiAgY29vcmRzID0gY2xhc3NpZnlSaW5ncyhjb29yZHMpO1xuICBmb3IgKGkgPSAwOyBpIDwgY29vcmRzLmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yIChqID0gMDsgaiA8IGNvb3Jkc1tpXS5sZW5ndGg7IGorKykge1xuICAgICAgcHJvamVjdChjb29yZHNbaV1bal0sIGV4dGVudCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvb3Jkcy5tYXAoY29vcmRpbmF0ZXMgPT4gKHtcbiAgICBjb29yZGluYXRlcyxcbiAgICBwcm9wZXJ0aWVzOiB2ZWN0b3JUaWxlRmVhdHVyZS5wcm9wZXJ0aWVzXG4gIH0pKTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29vcmRpbmF0ZXModmVjdG9yVGlsZUZlYXR1cmU6IFZlY3RvclRpbGVGZWF0dXJlKTogRmxhdEZpZ3VyZVtdIHtcbiAgY29uc3QgcGJmID0gdmVjdG9yVGlsZUZlYXR1cmUuX3BiZjtcbiAgcGJmLnBvcyA9IHZlY3RvclRpbGVGZWF0dXJlLl9nZW9tZXRyeTtcblxuICBjb25zdCBlbmQgPSBwYmYucmVhZFZhcmludCgpICsgcGJmLnBvcztcbiAgbGV0IGNtZCA9IDE7XG4gIGxldCBsZW5ndGggPSAwO1xuICBsZXQgeCA9IDA7XG4gIGxldCB5ID0gMDtcblxuICBjb25zdCBsaW5lczogRmxhdEZpZ3VyZVtdID0gW107XG4gIGxldCBsaW5lOiBGbGF0RmlndXJlIHwgdW5kZWZpbmVkO1xuXG4gIHdoaWxlIChwYmYucG9zIDwgZW5kKSB7XG4gICAgaWYgKGxlbmd0aCA8PSAwKSB7XG4gICAgICBjb25zdCBjbWRMZW4gPSBwYmYucmVhZFZhcmludCgpO1xuICAgICAgY21kID0gY21kTGVuICYgMHg3O1xuICAgICAgbGVuZ3RoID0gY21kTGVuID4+IDM7XG4gICAgfVxuXG4gICAgbGVuZ3RoLS07XG5cbiAgICBpZiAoY21kID09PSAxIHx8IGNtZCA9PT0gMikge1xuICAgICAgeCArPSBwYmYucmVhZFNWYXJpbnQoKTtcbiAgICAgIHkgKz0gcGJmLnJlYWRTVmFyaW50KCk7XG5cbiAgICAgIGlmIChjbWQgPT09IDEpIHtcbiAgICAgICAgLy8gbW92ZVRvXG4gICAgICAgIGlmIChsaW5lKSBsaW5lcy5wdXNoKGxpbmUpO1xuICAgICAgICBsaW5lID0gW107XG4gICAgICB9XG5cbiAgICAgIGlmIChsaW5lKSBsaW5lLnB1c2goW3gsIHldKTtcbiAgICB9IGVsc2UgaWYgKGNtZCA9PT0gNykge1xuICAgICAgLy8gV29ya2Fyb3VuZCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL21hcGJveC9tYXBuaWstdmVjdG9yLXRpbGUvaXNzdWVzLzkwXG4gICAgICBpZiAobGluZSkge1xuICAgICAgICBsaW5lLnB1c2gobGluZVswXS5zbGljZSgpIGFzIFtudW1iZXIsIG51bWJlcl0gfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0pOyAvLyBjbG9zZVBvbHlnb25cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmtub3duIGNvbW1hbmQgJHtjbWR9YCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGxpbmUpIGxpbmVzLnB1c2gobGluZSk7XG5cbiAgcmV0dXJuIGxpbmVzO1xufVxuXG4vLyBjbGFzc2lmaWVzIGFuIGFycmF5IG9mIHJpbmdzIGludG8gcG9seWdvbnMgd2l0aCBvdXRlciByaW5ncyBhbmQgaG9sZXNcblxuZnVuY3Rpb24gY2xhc3NpZnlSaW5ncyhyaW5nczogRmxhdEZpZ3VyZVtdKTogRmxhdEZpZ3VyZVtdW10ge1xuICBjb25zdCBsZW4gPSByaW5ncy5sZW5ndGg7XG5cbiAgaWYgKGxlbiA8PSAxKSByZXR1cm4gW3JpbmdzXTtcblxuICBjb25zdCBwb2x5Z29uczogRmxhdEZpZ3VyZVtdW10gPSBbXTtcbiAgbGV0IHBvbHlnb246IEZsYXRGaWd1cmVbXSB8IHVuZGVmaW5lZDtcbiAgbGV0IGNjdzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY29uc3QgYXJlYSA9IHNpZ25lZEFyZWEocmluZ3NbaV0pO1xuICAgIGlmIChhcmVhID09PSAwKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoY2N3ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNjdyA9IGFyZWEgPCAwO1xuICAgIH1cblxuICAgIGlmIChjY3cgPT09IGFyZWEgPCAwKSB7XG4gICAgICBpZiAocG9seWdvbikge1xuICAgICAgICBwb2x5Z29ucy5wdXNoKHBvbHlnb24pO1xuICAgICAgfVxuICAgICAgcG9seWdvbiA9IFtyaW5nc1tpXV07XG4gICAgfSBlbHNlIGlmIChwb2x5Z29uKSB7XG4gICAgICBwb2x5Z29uLnB1c2gocmluZ3NbaV0pO1xuICAgIH1cbiAgfVxuICBpZiAocG9seWdvbikge1xuICAgIHBvbHlnb25zLnB1c2gocG9seWdvbik7XG4gIH1cblxuICByZXR1cm4gcG9seWdvbnM7XG59XG5cbmZ1bmN0aW9uIHNpZ25lZEFyZWEocmluZzogRmxhdEZpZ3VyZSk6IG51bWJlciB7XG4gIGxldCBzdW0gPSAwO1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gcmluZy5sZW5ndGgsIGogPSBsZW4gLSAxLCBwMTogbnVtYmVyW10sIHAyOiBudW1iZXJbXTsgaSA8IGxlbjsgaiA9IGkrKykge1xuICAgIHAxID0gcmluZ1tpXTtcbiAgICBwMiA9IHJpbmdbal07XG4gICAgc3VtICs9IChwMlswXSAtIHAxWzBdKSAqIChwMVsxXSArIHAyWzFdKTtcbiAgfVxuICByZXR1cm4gc3VtO1xufVxuIl19
199
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy8zZC1idWlsZGluZy1sYXllci8zZC1idWlsZGluZy11dGlscy50cyJdLCJuYW1lcyI6WyJUSUxFX1NJWkUiLCJNQVBCT1hfSE9TVCIsIk1BUF9TT1VSQ0UiLCJnZXRUaWxlRGF0YSIsImhvc3QiLCJ0b2tlbiIsImluZGV4IiwieCIsInkiLCJ6IiwibWFwU291cmNlIiwiZmV0Y2giLCJ0aGVuIiwicmVzcG9uc2UiLCJhcnJheUJ1ZmZlciIsImJ1ZmZlciIsImRlY29kZVRpbGUiLCJ0aWxlIiwiVmVjdG9yVGlsZSIsIlByb3RvYnVmIiwicmVzdWx0IiwieFByb2oiLCJ5UHJvaiIsInNjYWxlIiwiTWF0aCIsInBvdyIsInByb2plY3RGdW5jIiwicHJvamVjdCIsImJpbmQiLCJsYXllck5hbWUiLCJ2ZWN0b3JUaWxlTGF5ZXIiLCJsYXllcnMiLCJpIiwibGVuZ3RoIiwidmVjdG9yVGlsZUZlYXR1cmUiLCJmZWF0dXJlIiwiZmVhdHVyZXMiLCJ2ZWN0b3JUaWxlRmVhdHVyZVRvUHJvcCIsImZvckVhY2giLCJmIiwicHJvcGVydGllcyIsImxheWVyIiwiaGVpZ2h0IiwicHVzaCIsImxpbmUiLCJleHRlbnQiLCJzaXplVG9QaXhlbCIsImlpIiwicCIsImNvb3JkcyIsImdldENvb3JkaW5hdGVzIiwiaiIsImNsYXNzaWZ5UmluZ3MiLCJtYXAiLCJjb29yZGluYXRlcyIsInBiZiIsIl9wYmYiLCJwb3MiLCJfZ2VvbWV0cnkiLCJlbmQiLCJyZWFkVmFyaW50IiwiY21kIiwibGluZXMiLCJjbWRMZW4iLCJyZWFkU1ZhcmludCIsInNsaWNlIiwiRXJyb3IiLCJyaW5ncyIsImxlbiIsInBvbHlnb25zIiwicG9seWdvbiIsImNjdyIsImFyZWEiLCJzaWduZWRBcmVhIiwidW5kZWZpbmVkIiwicmluZyIsInN1bSIsInAxIiwicDIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBTEE7QUFDQTs7QUFhQTtBQUNBLElBQU1BLFNB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Q0FBRCxDQUFOLENBQVY7QUFDRCxLQUxELE1BS08sSUFBSXNDLE9BQUosRUFBYTtBQUNsQkEsTUFBQUEsT0FBTyxDQUFDM0IsSUFBUixDQUFhd0IsS0FBSyxDQUFDbkMsQ0FBRCxDQUFsQjtBQUNEO0FBQ0Y7O0FBQ0QsTUFBSXNDLE9BQUosRUFBYTtBQUNYRCxJQUFBQSxRQUFRLENBQUMxQixJQUFULENBQWMyQixPQUFkO0FBQ0Q7O0FBRUQsU0FBT0QsUUFBUDtBQUNEOztBQUVELFNBQVNJLFVBQVQsQ0FBb0JFLElBQXBCLEVBQThDO0FBQzVDLE1BQUlDLEdBQUcsR0FBRyxDQUFWOztBQUNBLE9BQUssSUFBSTVDLENBQUMsR0FBRyxDQUFSLEVBQVdvQyxHQUFHLEdBQUdPLElBQUksQ0FBQzFDLE1BQXRCLEVBQThCa0IsQ0FBQyxHQUFHaUIsR0FBRyxHQUFHLENBQXhDLEVBQTJDUyxFQUEzQyxFQUF5REMsRUFBOUQsRUFBNEU5QyxDQUFDLEdBQUdvQyxHQUFoRixFQUFxRmpCLENBQUMsR0FBR25CLENBQUMsRUFBMUYsRUFBOEY7QUFDNUY2QyxJQUFBQSxFQUFFLEdBQUdGLElBQUksQ0FBQzNDLENBQUQsQ0FBVDtBQUNBOEMsSUFBQUEsRUFBRSxHQUFHSCxJQUFJLENBQUN4QixDQUFELENBQVQ7QUFDQXlCLElBQUFBLEdBQUcsSUFBSSxDQUFDRSxFQUFFLENBQUMsQ0FBRCxDQUFGLEdBQVFELEVBQUUsQ0FBQyxDQUFELENBQVgsS0FBbUJBLEVBQUUsQ0FBQyxDQUFELENBQUYsR0FBUUMsRUFBRSxDQUFDLENBQUQsQ0FBN0IsQ0FBUDtBQUNEOztBQUNELFNBQU9GLEdBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBQcm90b2J1ZiBmcm9tICdwYmYnO1xuaW1wb3J0IHtWZWN0b3JUaWxlfSBmcm9tICdAbWFwYm94L3ZlY3Rvci10aWxlJztcbmltcG9ydCB7d29ybGRUb0xuZ0xhdH0gZnJvbSAndmlld3BvcnQtbWVyY2F0b3ItcHJvamVjdCc7XG5pbXBvcnQge1xuICBDb29yZGluYXRlcyxcbiAgRmxhdEZpZ3VyZSxcbiAgVGlsZURhdGFJdGVtLFxuICBWZWN0b3JUaWxlRmVhdHVyZSxcbiAgVmVjdG9yVGlsZUZlYXR1cmVQcm9wZXJ0aWVzXG59IGZyb20gJy4vdHlwZXMnO1xuXG4vKiBnbG9iYWwgZmV0Y2ggKi9cbmNvbnN0IFRJTEVfU0laRSA9IDUxMjtcbmNvbnN0IE1BUEJPWF9IT1NUID0gJ2h0dHBzOi8vYS50aWxlcy5tYXBib3guY29tJztcbmNvbnN0IE1BUF9TT1VSQ0UgPSAnL3Y0L21hcGJveC5tYXBib3gtc3RyZWV0cy12Nyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUaWxlRGF0YShcbiAgaG9zdDogc3RyaW5nLFxuICB0b2tlbjogc3RyaW5nLFxuICB7aW5kZXg6IHt4LCB5LCB6fX06IHtpbmRleDogQ29vcmRpbmF0ZXN9XG4pOiBQcm9taXNlPFRpbGVEYXRhSXRlbVtdPiB7XG4gIGNvbnN0IG1hcFNvdXJjZSA9IGAke2hvc3QgfHxcbiAgICBNQVBCT1hfSE9TVH0ke01BUF9TT1VSQ0V9LyR7en0vJHt4fS8ke3l9LnZlY3Rvci5wYmY/YWNjZXNzX3Rva2VuPSR7dG9rZW59YDtcblxuICByZXR1cm4gZmV0Y2gobWFwU291cmNlKVxuICAgIC50aGVuKHJlc3BvbnNlID0+IHJlc3BvbnNlLmFycmF5QnVmZmVyKCkpXG4gICAgLnRoZW4oYnVmZmVyID0+IGRlY29kZVRpbGUoeCwgeSwgeiwgYnVmZmVyKSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVUaWxlKFxuICB4OiBudW1iZXIsXG4gIHk6IG51bWJlcixcbiAgejogbnVtYmVyLFxuICBhcnJheUJ1ZmZlcjogQXJyYXlCdWZmZXJcbik6IFRpbGVEYXRhSXRlbVtdIHtcbiAgY29uc3QgdGlsZSA9IG5ldyBWZWN0b3JUaWxlKG5ldyBQcm90b2J1ZihhcnJheUJ1ZmZlcikpO1xuXG4gIGNvbnN0IHJlc3VsdDogVGlsZURhdGFJdGVtW10gPSBbXTtcbiAgY29uc3QgeFByb2ogPSB4ICogVElMRV9TSVpFO1xuICBjb25zdCB5UHJvaiA9IHkgKiBUSUxFX1NJWkU7XG4gIGNvbnN0IHNjYWxlID0gTWF0aC5wb3coMiwgeik7XG5cbiAgY29uc3QgcHJvamVjdEZ1bmMgPSBwcm9qZWN0LmJpbmQobnVsbCwgeFByb2osIHlQcm9qLCBzY2FsZSk7XG5cbiAgLyogZXNsaW50LWRpc2FibGUgZ3VhcmQtZm9yLWluICovXG4gIGNvbnN0IGxheWVyTmFtZSA9ICdidWlsZGluZyc7XG4gIGNvbnN0IHZlY3RvclRpbGVMYXllciA9IHRpbGUubGF5ZXJzW2xheWVyTmFtZV07XG4gIGlmICghdmVjdG9yVGlsZUxheWVyKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdmVjdG9yVGlsZUxheWVyLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgdmVjdG9yVGlsZUZlYXR1cmUgPSB2ZWN0b3JUaWxlTGF5ZXIuZmVhdHVyZShpKTtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgZmVhdHVyZXMgPSB2ZWN0b3JUaWxlRmVhdHVyZVRvUHJvcCh2ZWN0b3JUaWxlRmVhdHVyZSwgcHJvamVjdEZ1bmMpO1xuICAgIGZlYXR1cmVzLmZvckVhY2goZiA9PiB7XG4gICAgICBmLnByb3BlcnRpZXMubGF5ZXIgPSBsYXllck5hbWU7XG4gICAgICBpZiAoZi5wcm9wZXJ0aWVzLmhlaWdodCkge1xuICAgICAgICByZXN1bHQucHVzaChmKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBwcm9qZWN0KHg6IG51bWJlciwgeTogbnVtYmVyLCBzY2FsZTogbnVtYmVyLCBsaW5lOiBGbGF0RmlndXJlLCBleHRlbnQ6IG51bWJlcik6IHZvaWQge1xuICBjb25zdCBzaXplVG9QaXhlbCA9IGV4dGVudCAvIFRJTEVfU0laRTtcblxuICBmb3IgKGxldCBpaSA9IDA7IGlpIDwgbGluZS5sZW5ndGg7IGlpKyspIHtcbiAgICBjb25zdCBwID0gbGluZVtpaV07XG4gICAgLy8gTE5HTEFUXG4gICAgbGluZVtpaV0gPSB3b3JsZFRvTG5nTGF0KFt4ICsgcFswXSAvIHNpemVUb1BpeGVsLCB5ICsgcFsxXSAvIHNpemVUb1BpeGVsXSwgc2NhbGUpO1xuICB9XG59XG5cbi8qIGFkYXB0ZWQgZnJvbSBAbWFwYm94L3ZlY3Rvci10aWxlL2xpYi92ZWN0b3J0aWxlZmVhdHVyZS5qcyBmb3IgYmV0dGVyIHBlcmYgKi9cbi8qIGVzbGludC1kaXNhYmxlICovXG5leHBvcnQgZnVuY3Rpb24gdmVjdG9yVGlsZUZlYXR1cmVUb1Byb3AoXG4gIHZlY3RvclRpbGVGZWF0dXJlOiBWZWN0b3JUaWxlRmVhdHVyZSxcbiAgcHJvamVjdDogKHI6IEZsYXRGaWd1cmUsIG46IG51bWJlcikgPT4gdm9pZFxuKToge2Nvb3JkaW5hdGVzOiBGbGF0RmlndXJlW107IHByb3BlcnRpZXM6IFZlY3RvclRpbGVGZWF0dXJlUHJvcGVydGllc31bXSB7XG4gIGxldCBjb29yZHM6IEZsYXRGaWd1cmVbXVtdIHwgRmxhdEZpZ3VyZVtdID0gZ2V0Q29vcmRpbmF0ZXModmVjdG9yVGlsZUZlYXR1cmUpO1xuICBjb25zdCBleHRlbnQgPSB2ZWN0b3JUaWxlRmVhdHVyZS5leHRlbnQ7XG4gIGxldCBpOiBudW1iZXI7XG4gIGxldCBqOiBudW1iZXI7XG5cbiAgY29vcmRzID0gY2xhc3NpZnlSaW5ncyhjb29yZHMpO1xuICBmb3IgKGkgPSAwOyBpIDwgY29vcmRzLmxlbmd0aDsgaSsrKSB7XG4gICAgZm9yIChqID0gMDsgaiA8IGNvb3Jkc1tpXS5sZW5ndGg7IGorKykge1xuICAgICAgcHJvamVjdChjb29yZHNbaV1bal0sIGV4dGVudCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvb3Jkcy5tYXAoY29vcmRpbmF0ZXMgPT4gKHtcbiAgICBjb29yZGluYXRlcyxcbiAgICBwcm9wZXJ0aWVzOiB2ZWN0b3JUaWxlRmVhdHVyZS5wcm9wZXJ0aWVzXG4gIH0pKTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29vcmRpbmF0ZXModmVjdG9yVGlsZUZlYXR1cmU6IFZlY3RvclRpbGVGZWF0dXJlKTogRmxhdEZpZ3VyZVtdIHtcbiAgY29uc3QgcGJmID0gdmVjdG9yVGlsZUZlYXR1cmUuX3BiZjtcbiAgcGJmLnBvcyA9IHZlY3RvclRpbGVGZWF0dXJlLl9nZW9tZXRyeTtcblxuICBjb25zdCBlbmQgPSBwYmYucmVhZFZhcmludCgpICsgcGJmLnBvcztcbiAgbGV0IGNtZCA9IDE7XG4gIGxldCBsZW5ndGggPSAwO1xuICBsZXQgeCA9IDA7XG4gIGxldCB5ID0gMDtcblxuICBjb25zdCBsaW5lczogRmxhdEZpZ3VyZVtdID0gW107XG4gIGxldCBsaW5lOiBGbGF0RmlndXJlIHwgdW5kZWZpbmVkO1xuXG4gIHdoaWxlIChwYmYucG9zIDwgZW5kKSB7XG4gICAgaWYgKGxlbmd0aCA8PSAwKSB7XG4gICAgICBjb25zdCBjbWRMZW4gPSBwYmYucmVhZFZhcmludCgpO1xuICAgICAgY21kID0gY21kTGVuICYgMHg3O1xuICAgICAgbGVuZ3RoID0gY21kTGVuID4+IDM7XG4gICAgfVxuXG4gICAgbGVuZ3RoLS07XG5cbiAgICBpZiAoY21kID09PSAxIHx8IGNtZCA9PT0gMikge1xuICAgICAgeCArPSBwYmYucmVhZFNWYXJpbnQoKTtcbiAgICAgIHkgKz0gcGJmLnJlYWRTVmFyaW50KCk7XG5cbiAgICAgIGlmIChjbWQgPT09IDEpIHtcbiAgICAgICAgLy8gbW92ZVRvXG4gICAgICAgIGlmIChsaW5lKSBsaW5lcy5wdXNoKGxpbmUpO1xuICAgICAgICBsaW5lID0gW107XG4gICAgICB9XG5cbiAgICAgIGlmIChsaW5lKSBsaW5lLnB1c2goW3gsIHldKTtcbiAgICB9IGVsc2UgaWYgKGNtZCA9PT0gNykge1xuICAgICAgLy8gV29ya2Fyb3VuZCBmb3IgaHR0cHM6Ly9naXRodWIuY29tL21hcGJveC9tYXBuaWstdmVjdG9yLXRpbGUvaXNzdWVzLzkwXG4gICAgICBpZiAobGluZSkge1xuICAgICAgICBsaW5lLnB1c2gobGluZVswXS5zbGljZSgpIGFzIFtudW1iZXIsIG51bWJlcl0gfCBbbnVtYmVyLCBudW1iZXIsIG51bWJlcl0pOyAvLyBjbG9zZVBvbHlnb25cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGB1bmtub3duIGNvbW1hbmQgJHtjbWR9YCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGxpbmUpIGxpbmVzLnB1c2gobGluZSk7XG5cbiAgcmV0dXJuIGxpbmVzO1xufVxuXG4vLyBjbGFzc2lmaWVzIGFuIGFycmF5IG9mIHJpbmdzIGludG8gcG9seWdvbnMgd2l0aCBvdXRlciByaW5ncyBhbmQgaG9sZXNcblxuZnVuY3Rpb24gY2xhc3NpZnlSaW5ncyhyaW5nczogRmxhdEZpZ3VyZVtdKTogRmxhdEZpZ3VyZVtdW10ge1xuICBjb25zdCBsZW4gPSByaW5ncy5sZW5ndGg7XG5cbiAgaWYgKGxlbiA8PSAxKSByZXR1cm4gW3JpbmdzXTtcblxuICBjb25zdCBwb2x5Z29uczogRmxhdEZpZ3VyZVtdW10gPSBbXTtcbiAgbGV0IHBvbHlnb246IEZsYXRGaWd1cmVbXSB8IHVuZGVmaW5lZDtcbiAgbGV0IGNjdzogYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuICBmb3IgKGxldCBpID0gMDsgaSA8IGxlbjsgaSsrKSB7XG4gICAgY29uc3QgYXJlYSA9IHNpZ25lZEFyZWEocmluZ3NbaV0pO1xuICAgIGlmIChhcmVhID09PSAwKSB7XG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAoY2N3ID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGNjdyA9IGFyZWEgPCAwO1xuICAgIH1cblxuICAgIGlmIChjY3cgPT09IGFyZWEgPCAwKSB7XG4gICAgICBpZiAocG9seWdvbikge1xuICAgICAgICBwb2x5Z29ucy5wdXNoKHBvbHlnb24pO1xuICAgICAgfVxuICAgICAgcG9seWdvbiA9IFtyaW5nc1tpXV07XG4gICAgfSBlbHNlIGlmIChwb2x5Z29uKSB7XG4gICAgICBwb2x5Z29uLnB1c2gocmluZ3NbaV0pO1xuICAgIH1cbiAgfVxuICBpZiAocG9seWdvbikge1xuICAgIHBvbHlnb25zLnB1c2gocG9seWdvbik7XG4gIH1cblxuICByZXR1cm4gcG9seWdvbnM7XG59XG5cbmZ1bmN0aW9uIHNpZ25lZEFyZWEocmluZzogRmxhdEZpZ3VyZSk6IG51bWJlciB7XG4gIGxldCBzdW0gPSAwO1xuICBmb3IgKGxldCBpID0gMCwgbGVuID0gcmluZy5sZW5ndGgsIGogPSBsZW4gLSAxLCBwMTogbnVtYmVyW10sIHAyOiBudW1iZXJbXTsgaSA8IGxlbjsgaiA9IGkrKykge1xuICAgIHAxID0gcmluZ1tpXTtcbiAgICBwMiA9IHJpbmdbal07XG4gICAgc3VtICs9IChwMlswXSAtIHAxWzBdKSAqIChwMVsxXSArIHAyWzFdKTtcbiAgfVxuICByZXR1cm4gc3VtO1xufVxuIl19
@@ -1,4 +1,18 @@
1
1
  import { RGBColor } from '@kepler.gl/types';
2
+ export declare type TileIndex = {
3
+ x: number;
4
+ y: number;
5
+ z: number;
6
+ };
7
+ export declare type TileLoadProps = {
8
+ id: string;
9
+ index: TileIndex;
10
+ bbox: any;
11
+ url?: string | null;
12
+ signal?: AbortSignal;
13
+ userData?: Record<string, any>;
14
+ zoom?: number;
15
+ };
2
16
  export declare type ThreeDBuildingLayerProps = {
3
17
  id: string;
4
18
  mapboxApiAccessToken: string;
@@ -1,23 +1,3 @@
1
- // Copyright (c) 2022 Uber Technologies, Inc.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to deal
5
- // in the Software without restriction, including without limitation the rights
6
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- // copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- // THE SOFTWARE.
20
-
21
1
  "use strict";
22
2
 
23
3
  Object.defineProperty(exports, "__esModule", {
@@ -1,23 +1,3 @@
1
- // Copyright (c) 2022 Uber Technologies, Inc.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to deal
5
- // in the Software without restriction, including without limitation the rights
6
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- // copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- // THE SOFTWARE.
20
-
21
1
  "use strict";
22
2
 
23
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
@@ -346,4 +326,4 @@ var ClusterLayer = /*#__PURE__*/function (_AggregationLayer) {
346
326
  exports["default"] = ClusterLayer;
347
327
  ClusterLayer.layerName = 'ClusterLayer';
348
328
  ClusterLayer.defaultProps = defaultProps;
349
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbHVzdGVyLWxheWVyL2NsdXN0ZXItbGF5ZXIudHMiXSwibmFtZXMiOlsiZGVmYXVsdFJhZGl1cyIsIkxBWUVSX1ZJU19DT05GSUdTIiwiY2x1c3RlclJhZGl1cyIsImRlZmF1bHRWYWx1ZSIsImRlZmF1bHRSYWRpdXNSYW5nZSIsImNsdXN0ZXJSYWRpdXNSYW5nZSIsImRlZmF1bHRHZXRDb2xvclZhbHVlIiwicG9pbnRzIiwibGVuZ3RoIiwiZGVmYXVsdEdldFJhZGl1c1ZhbHVlIiwiY2VsbCIsImZpbHRlcmVkUG9pbnRzIiwicHJvY2Vzc0dlb0pTT04iLCJzdGVwIiwicHJvcHMiLCJhZ2dyZWdhdGlvbiIsInZpZXdwb3J0IiwiZGF0YSIsImdldFBvc2l0aW9uIiwiZmlsdGVyRGF0YSIsImdlb0pTT04iLCJjbHVzdGVyQnVpbGRlciIsIkNsdXN0ZXJCdWlsZGVyIiwic2V0U3RhdGUiLCJnZXRDbHVzdGVycyIsInN0YXRlIiwiem9vbSIsIndpZHRoIiwiaGVpZ2h0IiwibG9uZ2l0dWRlIiwibGF0aXR1ZGUiLCJiYm94IiwiZ2VvVmlld3BvcnQiLCJib3VuZHMiLCJjbHVzdGVycyIsImNsdXN0ZXJzQXRab29tIiwibGF5ZXJEYXRhIiwiZ2V0U3ViTGF5ZXJSYWRpdXMiLCJkaW1lbnNpb25TdGF0ZSIsImRpbWVuc2lvbiIsImxheWVyUHJvcHMiLCJnZXRSYWRpdXNWYWx1ZSIsInNjYWxlRnVuYyIsImNsdXN0ZXJBZ2dyZWdhdGlvbiIsImtleSIsInVwZGF0ZVN0ZXBzIiwidHJpZ2dlcnMiLCJwb3NpdGlvbiIsInByb3AiLCJ1cGRhdGVUcmlnZ2VyIiwidXBkYXRlciIsImdldFJhZGl1c1ZhbHVlRG9tYWluIiwiZGltZW5zaW9uVXBkYXRlciIsInZhbHVlRG9tYWluIiwiX3NldERpbWVuc2lvblN0YXRlIiwiY2x1c3RlckxheWVyRGltZW5zaW9ucyIsImRlZmF1bHRDb2xvckRpbWVuc2lvbiIsImFjY2Vzc29yIiwibnVsbFZhbHVlIiwidmFsdWUiLCJkb21haW4iLCJyYW5nZSIsInNjYWxlVHlwZSIsImdldERpbWVuc2lvblNjYWxlIiwiZ2V0U3ViTGF5ZXJBY2Nlc3NvciIsImdldFBpY2tpbmdJbmZvIiwicmFkaXVzVmFsdWUiLCJkZWZhdWx0UHJvcHMiLCJjb2xvckRvbWFpbiIsImNvbG9yUmFuZ2UiLCJERUZBVUxUX0NPTE9SX1JBTkdFIiwiY29sb3JTY2FsZVR5cGUiLCJTQ0FMRV9UWVBFUyIsInF1YW50aXplIiwicmFkaXVzU2NhbGVUeXBlIiwic3FydCIsInJhZGl1c1JhbmdlIiwidHlwZSIsIngiLCJnZXRDb2xvclZhbHVlIiwiQ2x1c3RlckxheWVyIiwiY3B1QWdncmVnYXRvciIsIkNQVUFnZ3JlZ2F0b3IiLCJkaW1lbnNpb25zIiwiYWdncmVnYXRvclN0YXRlIiwiYXR0cmlidXRlTWFuYWdlciIsImdldEF0dHJpYnV0ZU1hbmFnZXIiLCJhZGQiLCJwb3NpdGlvbnMiLCJzaXplIiwib2xkUHJvcHMiLCJjaGFuZ2VGbGFncyIsInVwZGF0ZVN0YXRlIiwiY29udGV4dCIsImF0dHJpYnV0ZXMiLCJnZXRBdHRyaWJ1dGVzIiwibnVtSW5zdGFuY2VzIiwiZ2V0TnVtSW5zdGFuY2VzIiwiaW5mbyIsImdldFVwZGF0ZVRyaWdnZXJzIiwiZ2V0UmFkaXVzIiwiZ2V0QWNjZXNzb3IiLCJnZXRGaWxsQ29sb3IiLCJpZCIsInJhZGl1c1NjYWxlIiwidmlzaWJsZSIsIm9wYWNpdHkiLCJwaWNrYWJsZSIsImF1dG9IaWdobGlnaHQiLCJoaWdobGlnaHRDb2xvciIsInVwZGF0ZVRyaWdnZXJzIiwiX2dldFN1YmxheWVyVXBkYXRlVHJpZ2dlcnMiLCJhY2Nlc3NvcnMiLCJfZ2V0U3ViTGF5ZXJBY2Nlc3NvcnMiLCJkaXN0YW5jZVNjYWxlIiwibWV0ZXJzUGVyUGl4ZWwiLCJTY2F0dGVycGxvdExheWVyIiwicGFyYW1ldGVycyIsImRlcHRoTWFzayIsIkFnZ3JlZ2F0aW9uTGF5ZXIiLCJsYXllck5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7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QUYvQjtBQUdMdUYsUUFBQUEsV0FBVyxFQUFFVyxjQUFjLEdBQUdYLFdBSHpCO0FBSUxDLFFBQUFBLE9BQU8sRUFBUEEsT0FKSztBQUtMQyxRQUFBQSxPQUFPLEVBQVBBLE9BTEs7QUFNTEMsUUFBQUEsUUFBUSxFQUFSQSxRQU5LO0FBT0xDLFFBQUFBLGFBQWEsRUFBYkEsYUFQSztBQVFMQyxRQUFBQSxjQUFjLEVBQWRBLGNBUks7QUFTTEMsUUFBQUEsY0FBYyxFQUFkQSxjQVRLO0FBVUxPLFFBQUFBLFVBQVUsRUFBRTtBQUNWQyxVQUFBQSxTQUFTLEVBQUU7QUFERDtBQVZQLFNBYUZOLFNBYkUsRUFBUDtBQWVEOzs7RUFoRnVDTyxvQzs7O0FBbUYxQ3ZDLFlBQVksQ0FBQ3dDLFNBQWIsR0FBeUIsY0FBekI7QUFDQXhDLFlBQVksQ0FBQ2IsWUFBYixHQUE0QkEsWUFBNUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQge1NjYXR0ZXJwbG90TGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2xheWVycyc7XG5pbXBvcnQge19BZ2dyZWdhdGlvbkxheWVyIGFzIEFnZ3JlZ2F0aW9uTGF5ZXJ9IGZyb20gJ0BkZWNrLmdsL2FnZ3JlZ2F0aW9uLWxheWVycyc7XG5cbmltcG9ydCBnZW9WaWV3cG9ydCBmcm9tICdAbWFwYm94L2dlby12aWV3cG9ydCc7XG5pbXBvcnQgQ1BVQWdncmVnYXRvciwge1xuICBBZ2dyZWdhdGlvblR5cGUsXG4gIGRlZmF1bHRDb2xvckRpbWVuc2lvbixcbiAgRGltZW5zaW9uVHlwZSxcbiAgZ2V0RGltZW5zaW9uU2NhbGVcbn0gZnJvbSAnLi4vbGF5ZXItdXRpbHMvY3B1LWFnZ3JlZ2F0b3InO1xuaW1wb3J0IHtnZXREaXN0YW5jZVNjYWxlc30gZnJvbSAndmlld3BvcnQtbWVyY2F0b3ItcHJvamVjdCc7XG5pbXBvcnQge21heH0gZnJvbSAnZDMtYXJyYXknO1xuXG5pbXBvcnQge1NDQUxFX1RZUEVTLCBERUZBVUxUX0NPTE9SX1JBTkdFLCBMQVlFUl9WSVNfQ09ORklHU30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IENsdXN0ZXJCdWlsZGVyLCB7Z2V0R2VvSlNPTn0gZnJvbSAnLi4vbGF5ZXItdXRpbHMvY2x1c3Rlci11dGlscyc7XG5pbXBvcnQge1JHQkFDb2xvcn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge0FnZ3JlZ2F0aW9uTGF5ZXJQcm9wc30gZnJvbSAnQGRlY2suZ2wvYWdncmVnYXRpb24tbGF5ZXJzL2FnZ3JlZ2F0aW9uLWxheWVyJztcblxuY29uc3QgZGVmYXVsdFJhZGl1cyA9IExBWUVSX1ZJU19DT05GSUdTLmNsdXN0ZXJSYWRpdXMuZGVmYXVsdFZhbHVlO1xuY29uc3QgZGVmYXVsdFJhZGl1c1JhbmdlID0gTEFZRVJfVklTX0NPTkZJR1MuY2x1c3RlclJhZGl1c1JhbmdlLmRlZmF1bHRWYWx1ZTtcblxuY29uc3QgZGVmYXVsdEdldENvbG9yVmFsdWUgPSBwb2ludHMgPT4gcG9pbnRzLmxlbmd0aDtcbmNvbnN0IGRlZmF1bHRHZXRSYWRpdXNWYWx1ZSA9IGNlbGwgPT5cbiAgY2VsbC5maWx0ZXJlZFBvaW50cyA/IGNlbGwuZmlsdGVyZWRQb2ludHMubGVuZ3RoIDogY2VsbC5wb2ludHMubGVuZ3RoO1xuXG5mdW5jdGlvbiBwcm9jZXNzR2VvSlNPTih0aGlzOiBDUFVBZ2dyZWdhdG9yLCBzdGVwLCBwcm9wcywgYWdncmVnYXRpb24sIHt2aWV3cG9ydH0pIHtcbiAgY29uc3Qge2RhdGEsIGdldFBvc2l0aW9uLCBmaWx0ZXJEYXRhfSA9IHByb3BzO1xuICBjb25zdCBnZW9KU09OID0gZ2V0R2VvSlNPTihkYXRhLCBnZXRQb3NpdGlvbiwgZmlsdGVyRGF0YSk7XG4gIGNvbnN0IGNsdXN0ZXJCdWlsZGVyID0gbmV3IENsdXN0ZXJCdWlsZGVyKCk7XG5cbiAgdGhpcy5zZXRTdGF0ZSh7Z2VvSlNPTiwgY2x1c3RlckJ1aWxkZXJ9KTtcbn1cblxuZnVuY3Rpb24gZ2V0Q2x1c3RlcnModGhpczogQ1BVQWdncmVnYXRvciwgc3RlcCwgcHJvcHMsIGFnZ3JlZ2F0aW9uLCB7dmlld3BvcnR9KSB7XG4gIGNvbnN0IHtnZW9KU09OLCBjbHVzdGVyQnVpbGRlcn0gPSB0aGlzLnN0YXRlO1xuICBjb25zdCB7Y2x1c3RlclJhZGl1cywgem9vbSwgd2lkdGgsIGhlaWdodH0gPSBwcm9wcztcbiAgY29uc3Qge2xvbmdpdHVkZSwgbGF0aXR1ZGV9ID0gdmlld3BvcnQ7XG5cbiAgLy8gem9vbSBuZWVkcyB0byBiZSBhbiBpbnRlZ2VyIGZvciB0aGUgZGlmZmVyZW50IG1hcCB1dGlscy4gQWxzbyBoZWxwcyB3aXRoIGNhY2hlIGtleS5cbiAgY29uc3QgYmJveCA9IGdlb1ZpZXdwb3J0LmJvdW5kcyhbbG9uZ2l0dWRlLCBsYXRpdHVkZV0sIHpvb20sIFt3aWR0aCwgaGVpZ2h0XSk7XG4gIGNvbnN0IGNsdXN0ZXJzID0gY2x1c3RlckJ1aWxkZXIuY2x1c3RlcnNBdFpvb20oe2Jib3gsIGNsdXN0ZXJSYWRpdXMsIGdlb0pTT04sIHpvb219KTtcblxuICB0aGlzLnNldFN0YXRlKHtcbiAgICBsYXllckRhdGE6IHtkYXRhOiBjbHVzdGVyc31cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldFN1YkxheWVyUmFkaXVzKGRpbWVuc2lvblN0YXRlLCBkaW1lbnNpb24sIGxheWVyUHJvcHMpIHtcbiAgcmV0dXJuIGNlbGwgPT4ge1xuICAgIGNvbnN0IHtnZXRSYWRpdXNWYWx1ZX0gPSBsYXllclByb3BzO1xuICAgIGNvbnN0IHtzY2FsZUZ1bmN9ID0gZGltZW5zaW9uU3RhdGU7XG4gICAgcmV0dXJuIHNjYWxlRnVuYyhnZXRSYWRpdXNWYWx1ZShjZWxsKSk7XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBjbHVzdGVyQWdncmVnYXRpb246IEFnZ3JlZ2F0aW9uVHlwZSA9IHtcbiAga2V5OiAncG9zaXRpb24nLFxuICB1cGRhdGVTdGVwczogW1xuICAgIHtcbiAgICAgIGtleTogJ2dlb2pzb24nLFxuICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICBwcm9wOiAnZ2V0UG9zaXRpb24nLFxuICAgICAgICAgIHVwZGF0ZVRyaWdnZXI6ICdnZXRQb3NpdGlvbidcbiAgICAgICAgfSxcbiAgICAgICAgZmlsdGVyRGF0YToge1xuICAgICAgICAgIHByb3A6ICdmaWx0ZXJEYXRhJyxcbiAgICAgICAgICB1cGRhdGVUcmlnZ2VyOiAnZmlsdGVyRGF0YSdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVwZGF0ZXI6IHByb2Nlc3NHZW9KU09OXG4gICAgfSxcbiAgICB7XG4gICAgICBrZXk6ICdjbHVzdGVyaW5nJyxcbiAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgIGNsdXN0ZXJSYWRpdXM6IHtcbiAgICAgICAgICBwcm9wOiAnY2x1c3RlclJhZGl1cydcbiAgICAgICAgfSxcbiAgICAgICAgem9vbToge1xuICAgICAgICAgIHByb3A6ICd6b29tJ1xuICAgICAgICB9LFxuICAgICAgICB3aWR0aDoge1xuICAgICAgICAgIHByb3A6ICd3aWR0aCdcbiAgICAgICAgfSxcbiAgICAgICAgaGVpZ2h0OiB7XG4gICAgICAgICAgcHJvcDogJ2hlaWdodCdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHVwZGF0ZXI6IGdldENsdXN0ZXJzXG4gICAgfVxuICBdXG59O1xuXG5mdW5jdGlvbiBnZXRSYWRpdXNWYWx1ZURvbWFpbih0aGlzOiBDUFVBZ2dyZWdhdG9yLCBzdGVwLCBwcm9wcywgZGltZW5zaW9uVXBkYXRlcikge1xuICBjb25zdCB7a2V5fSA9IGRpbWVuc2lvblVwZGF0ZXI7XG4gIGNvbnN0IHtnZXRSYWRpdXNWYWx1ZX0gPSBwcm9wcztcbiAgY29uc3Qge2xheWVyRGF0YX0gPSB0aGlzLnN0YXRlO1xuXG4gIGNvbnN0IHZhbHVlRG9tYWluID0gWzAsIG1heChsYXllckRhdGEuZGF0YSwgZ2V0UmFkaXVzVmFsdWUpXTtcbiAgdGhpcy5fc2V0RGltZW5zaW9uU3RhdGUoa2V5LCB7dmFsdWVEb21haW59KTtcbn1cblxuY29uc3QgY2x1c3RlckxheWVyRGltZW5zaW9uczogW0RpbWVuc2lvblR5cGU8UkdCQUNvbG9yPiwgRGltZW5zaW9uVHlwZTxudW1iZXI+XSA9IFtcbiAgZGVmYXVsdENvbG9yRGltZW5zaW9uLFxuICB7XG4gICAga2V5OiAncmFkaXVzJyxcbiAgICBhY2Nlc3NvcjogJ2dldFJhZGl1cycsXG4gICAgbnVsbFZhbHVlOiAwLFxuICAgIHVwZGF0ZVN0ZXBzOiBbXG4gICAgICB7XG4gICAgICAgIGtleTogJ2dldERvbWFpbicsXG4gICAgICAgIHRyaWdnZXJzOiB7XG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIHByb3A6ICdnZXRSYWRpdXNWYWx1ZScsXG4gICAgICAgICAgICB1cGRhdGVUcmlnZ2VyOiAnZ2V0UmFkaXVzVmFsdWUnXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB1cGRhdGVyOiBnZXRSYWRpdXNWYWx1ZURvbWFpblxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAga2V5OiAnZ2V0U2NhbGVGdW5jJyxcbiAgICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgICBkb21haW46IHtwcm9wOiAncmFkaXVzRG9tYWluJ30sXG4gICAgICAgICAgcmFuZ2U6IHtwcm9wOiAncmFkaXVzUmFuZ2UnfSxcbiAgICAgICAgICBzY2FsZVR5cGU6IHtwcm9wOiAncmFkaXVzU2NhbGVUeXBlJ31cbiAgICAgICAgfSxcbiAgICAgICAgdXBkYXRlcjogZ2V0RGltZW5zaW9uU2NhbGVcbiAgICAgIH1cbiAgICBdLFxuICAgIGdldFN1YkxheWVyQWNjZXNzb3I6IGdldFN1YkxheWVyUmFkaXVzLFxuICAgIGdldFBpY2tpbmdJbmZvOiAoZGltZW5zaW9uU3RhdGUsIGNlbGwsIGxheWVyUHJvcHMpID0+IHtcbiAgICAgIGNvbnN0IHJhZGl1c1ZhbHVlID0gbGF5ZXJQcm9wcy5nZXRSYWRpdXNWYWx1ZShjZWxsKTtcbiAgICAgIHJldHVybiB7cmFkaXVzVmFsdWV9O1xuICAgIH1cbiAgfVxuXTtcblxuY29uc3QgZGVmYXVsdFByb3BzID0ge1xuICBjbHVzdGVyUmFkaXVzOiBkZWZhdWx0UmFkaXVzLFxuICBjb2xvckRvbWFpbjogbnVsbCxcbiAgY29sb3JSYW5nZTogREVGQVVMVF9DT0xPUl9SQU5HRSxcbiAgY29sb3JTY2FsZVR5cGU6IFNDQUxFX1RZUEVTLnF1YW50aXplLFxuICByYWRpdXNTY2FsZVR5cGU6IFNDQUxFX1RZUEVTLnNxcnQsXG4gIHJhZGl1c1JhbmdlOiBkZWZhdWx0UmFkaXVzUmFuZ2UsXG4gIGdldFBvc2l0aW9uOiB7dHlwZTogJ2FjY2Vzc29yJywgdmFsdWU6IHggPT4geC5wb3NpdGlvbn0sXG4gIGdldENvbG9yVmFsdWU6IHt0eXBlOiAnYWNjZXNzb3InLCB2YWx1ZTogZGVmYXVsdEdldENvbG9yVmFsdWV9LFxuICBnZXRSYWRpdXNWYWx1ZToge3R5cGU6ICdhY2Nlc3NvcicsIHZhbHVlOiBkZWZhdWx0R2V0UmFkaXVzVmFsdWV9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDbHVzdGVyTGF5ZXIgZXh0ZW5kcyBBZ2dyZWdhdGlvbkxheWVyPFxuICBhbnksXG4gIEFnZ3JlZ2F0aW9uTGF5ZXJQcm9wczxhbnk+ICYge3JhZGl1c1NjYWxlOiBudW1iZXJ9XG4+IHtcbiAgaW5pdGlhbGl6ZVN0YXRlKCkge1xuICAgIGNvbnN0IGNwdUFnZ3JlZ2F0b3IgPSBuZXcgQ1BVQWdncmVnYXRvcih7XG4gICAgICBhZ2dyZWdhdGlvbjogY2x1c3RlckFnZ3JlZ2F0aW9uLFxuICAgICAgZGltZW5zaW9uczogY2x1c3RlckxheWVyRGltZW5zaW9uc1xuICAgIH0pO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGNwdUFnZ3JlZ2F0b3IsXG4gICAgICBhZ2dyZWdhdG9yU3RhdGU6IGNwdUFnZ3JlZ2F0b3Iuc3RhdGVcbiAgICB9O1xuICAgIGNvbnN0IGF0dHJpYnV0ZU1hbmFnZXIgPSB0aGlzLmdldEF0dHJpYnV0ZU1hbmFnZXIoKTtcbiAgICBhdHRyaWJ1dGVNYW5hZ2VyLmFkZCh7XG4gICAgICBwb3NpdGlvbnM6IHtzaXplOiAzLCBhY2Nlc3NvcjogJ2dldFBvc2l0aW9uJ31cbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZVN0YXRlKHtvbGRQcm9wcywgcHJvcHMsIGNoYW5nZUZsYWdzfSkge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgLy8gbWFrZSBhIGNvcHkgb2YgdGhlIGludGVybmFsIHN0YXRlIG9mIGNwdUFnZ3JlZ2F0b3IgZm9yIHRlc3RpbmdcbiAgICAgIGFnZ3JlZ2F0b3JTdGF0ZTogdGhpcy5zdGF0ZS5jcHVBZ2dyZWdhdG9yLnVwZGF0ZVN0YXRlKFxuICAgICAgICB7b2xkUHJvcHMsIHByb3BzLCBjaGFuZ2VGbGFnc30sXG4gICAgICAgIHtcbiAgICAgICAgICB2aWV3cG9ydDogdGhpcy5jb250ZXh0LnZpZXdwb3J0LFxuICAgICAgICAgIGF0dHJpYnV0ZXM6IHRoaXMuZ2V0QXR0cmlidXRlcygpLFxuICAgICAgICAgIG51bUluc3RhbmNlczogdGhpcy5nZXROdW1JbnN0YW5jZXMocHJvcHMpXG4gICAgICAgIH1cbiAgICAgIClcbiAgICB9KTtcbiAgfVxuXG4gIGdldFBpY2tpbmdJbmZvKHtpbmZvfSkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmNwdUFnZ3JlZ2F0b3IuZ2V0UGlja2luZ0luZm8oe2luZm99LCB0aGlzLnByb3BzKTtcbiAgfVxuXG4gIF9nZXRTdWJsYXllclVwZGF0ZVRyaWdnZXJzKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLmNwdUFnZ3JlZ2F0b3IuZ2V0VXBkYXRlVHJpZ2dlcnModGhpcy5wcm9wcyk7XG4gIH1cblxuICBfZ2V0U3ViTGF5ZXJBY2Nlc3NvcnMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGdldFJhZGl1czogdGhpcy5zdGF0ZS5jcHVBZ2dyZWdhdG9yLmdldEFjY2Vzc29yKCdyYWRpdXMnLCB0aGlzLnByb3BzKSxcbiAgICAgIGdldEZpbGxDb2xvcjogdGhpcy5zdGF0ZS5jcHVBZ2dyZWdhdG9yLmdldEFjY2Vzc29yKCdmaWxsQ29sb3InLCB0aGlzLnByb3BzKVxuICAgIH07XG4gIH1cblxuICByZW5kZXJMYXllcnMoKSB7XG4gICAgLy8gZm9yIHN1YmNsYXNzaW5nLCBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byByZXR1cm5cbiAgICAvLyBjdXN0b21pemVkIHN1YiBsYXllciBwcm9wc1xuICAgIGNvbnN0IHtpZCwgcmFkaXVzU2NhbGV9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7Y3B1QWdncmVnYXRvcn0gPSB0aGlzLnN0YXRlO1xuXG4gICAgLy8gYmFzZSBsYXllciBwcm9wc1xuICAgIGNvbnN0IHt2aXNpYmxlLCBvcGFjaXR5LCBwaWNrYWJsZSwgYXV0b0hpZ2hsaWdodCwgaGlnaGxpZ2h0Q29sb3J9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB1cGRhdGVUcmlnZ2VycyA9IHRoaXMuX2dldFN1YmxheWVyVXBkYXRlVHJpZ2dlcnMoKTtcbiAgICBjb25zdCBhY2Nlc3NvcnMgPSB0aGlzLl9nZXRTdWJMYXllckFjY2Vzc29ycygpO1xuXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIGNvbnN0IGRpc3RhbmNlU2NhbGUgPSBnZXREaXN0YW5jZVNjYWxlcyh0aGlzLmNvbnRleHQudmlld3BvcnQpO1xuICAgIGNvbnN0IG1ldGVyc1BlclBpeGVsID0gZGlzdGFuY2VTY2FsZS5tZXRlcnNQZXJQaXhlbFswXTtcblxuICAgIC8vIHJldHVybiBwcm9wcyB0byB0aGUgc3VibGF5ZXIgY29uc3RydWN0b3JcbiAgICByZXR1cm4gbmV3IFNjYXR0ZXJwbG90TGF5ZXIoe1xuICAgICAgaWQ6IGAke2lkfS1jbHVzdGVyYCxcbiAgICAgIGRhdGE6IGNwdUFnZ3JlZ2F0b3Iuc3RhdGUubGF5ZXJEYXRhLmRhdGEsXG4gICAgICByYWRpdXNTY2FsZTogbWV0ZXJzUGVyUGl4ZWwgKiByYWRpdXNTY2FsZSxcbiAgICAgIHZpc2libGUsXG4gICAgICBvcGFjaXR5LFxuICAgICAgcGlja2FibGUsXG4gICAgICBhdXRvSGlnaGxpZ2h0LFxuICAgICAgaGlnaGxpZ2h0Q29sb3IsXG4gICAgICB1cGRhdGVUcmlnZ2VycyxcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgZGVwdGhNYXNrOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIC4uLmFjY2Vzc29yc1xuICAgIH0pO1xuICB9XG59XG5cbkNsdXN0ZXJMYXllci5sYXllck5hbWUgPSAnQ2x1c3RlckxheWVyJztcbkNsdXN0ZXJMYXllci5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG4iXX0=
329
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbHVzdGVyLWxheWVyL2NsdXN0ZXItbGF5ZXIudHMiXSwibmFtZXMiOlsiZGVmYXVsdFJhZGl1cyIsIkxBWUVSX1ZJU19DT05GSUdTIiwiY2x1c3RlclJhZGl1cyIsImRlZmF1bHRWYWx1ZSIsImRlZmF1bHRSYWRpdXNSYW5nZSIsImNsdXN0ZXJSYWRpdXNSYW5nZSIsImRlZmF1bHRHZXRDb2xvclZhbHVlIiwicG9pbnRzIiwibGVuZ3RoIiwiZGVmYXVsdEdldFJhZGl1c1ZhbHVlIiwiY2VsbCIsImZpbHRlcmVkUG9pbnRzIiwicHJvY2Vzc0dlb0pTT04iLCJzdGVwIiwicHJvcHMiLCJhZ2dyZWdhdGlvbiIsInZpZXdwb3J0IiwiZGF0YSIsImdldFBvc2l0aW9uIiwiZmlsdGVyRGF0YSIsImdlb0pTT04iLCJjbHVzdGVyQnVpbGRlciIsIkNsdXN0ZXJCdWlsZGVyIiwic2V0U3RhdGUiLCJnZXRDbHVzdGVycyIsInN0YXRlIiwiem9vbSIsIndpZHRoIiwiaGVpZ2h0IiwibG9uZ2l0dWRlIiwibGF0aXR1ZGUiLCJiYm94IiwiZ2VvVmlld3BvcnQiLCJib3VuZHMiLCJjbHVzdGVycyIsImNsdXN0ZXJzQXRab29tIiwibGF5ZXJEYXRhIiwiZ2V0U3ViTGF5ZXJSYWRpdXMiLCJkaW1lbnNpb25TdGF0ZSIsImRpbWVuc2lvbiIsImxheWVyUHJvcHMiLCJnZXRSYWRpdXNWYWx1ZSIsInNjYWxlRnVuYyIsImNsdXN0ZXJBZ2dyZWdhdGlvbiIsImtleSIsInVwZGF0ZVN0ZXBzIiwidHJpZ2dlcnMiLCJwb3NpdGlvbiIsInByb3AiLCJ1cGRhdGVUcmlnZ2VyIiwidXBkYXRlciIsImdldFJhZGl1c1ZhbHVlRG9tYWluIiwiZGltZW5zaW9uVXBkYXRlciIsInZhbHVlRG9tYWluIiwiX3NldERpbWVuc2lvblN0YXRlIiwiY2x1c3RlckxheWVyRGltZW5zaW9ucyIsImRlZmF1bHRDb2xvckRpbWVuc2lvbiIsImFjY2Vzc29yIiwibnVsbFZhbHVlIiwidmFsdWUiLCJkb21haW4iLCJyYW5nZSIsInNjYWxlVHlwZSIsImdldERpbWVuc2lvblNjYWxlIiwiZ2V0U3ViTGF5ZXJBY2Nlc3NvciIsImdldFBpY2tpbmdJbmZvIiwicmFkaXVzVmFsdWUiLCJkZWZhdWx0UHJvcHMiLCJjb2xvckRvbWFpbiIsImNvbG9yUmFuZ2UiLCJERUZBVUxUX0NPTE9SX1JBTkdFIiwiY29sb3JTY2FsZVR5cGUiLCJTQ0FMRV9UWVBFUyIsInF1YW50aXplIiwicmFkaXVzU2NhbGVUeXBlIiwic3FydCIsInJhZGl1c1JhbmdlIiwidHlwZSIsIngiLCJnZXRDb2xvclZhbHVlIiwiQ2x1c3RlckxheWVyIiwiY3B1QWdncmVnYXRvciIsIkNQVUFnZ3JlZ2F0b3IiLCJkaW1lbnNpb25zIiwiYWdncmVnYXRvclN0YXRlIiwiYXR0cmlidXRlTWFuYWdlciIsImdldEF0dHJpYnV0ZU1hbmFnZXIiLCJhZGQiLCJwb3NpdGlvbnMiLCJzaXplIiwib2xkUHJvcHMiLCJjaGFuZ2VGbGFncyIsInVwZGF0ZVN0YXRlIiwiY29udGV4dCIsImF0dHJpYnV0ZXMiLCJnZXRBdHRyaWJ1dGVzIiwibnVtSW5zdGFuY2VzIiwiZ2V0TnVtSW5zdGFuY2VzIiwiaW5mbyIsImdldFVwZGF0ZVRyaWdnZXJzIiwiZ2V0UmFkaXVzIiwiZ2V0QWNjZXNzb3IiLCJnZXRGaWxsQ29sb3IiLCJpZCIsInJhZGl1c1NjYWxlIiwidmlzaWJsZSIsIm9wYWNpdHkiLCJwaWNrYWJsZSIsImF1dG9IaWdobGlnaHQiLCJoaWdobGlnaHRDb2xvciIsInVwZGF0ZVRyaWdnZXJzIiwiX2dldFN1YmxheWVyVXBkYXRlVHJpZ2dlcnMiLCJhY2Nlc3NvcnMiLCJfZ2V0U3ViTGF5ZXJBY2Nlc3NvcnMiLCJkaXN0YW5jZVNjYWxlIiwibWV0ZXJzUGVyUGl4ZWwiLCJTY2F0dGVycGxvdExheWVyIiwicGFyYW1ldGVycyIsImRlcHRoTWFzayIsIkFnZ3JlZ2F0aW9uTGF5ZXIiLCJsYXllck5hbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7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Ri9CO0FBR0x1RixRQUFBQSxXQUFXLEVBQUVXLGNBQWMsR0FBR1gsV0FIekI7QUFJTEMsUUFBQUEsT0FBTyxFQUFQQSxPQUpLO0FBS0xDLFFBQUFBLE9BQU8sRUFBUEEsT0FMSztBQU1MQyxRQUFBQSxRQUFRLEVBQVJBLFFBTks7QUFPTEMsUUFBQUEsYUFBYSxFQUFiQSxhQVBLO0FBUUxDLFFBQUFBLGNBQWMsRUFBZEEsY0FSSztBQVNMQyxRQUFBQSxjQUFjLEVBQWRBLGNBVEs7QUFVTE8sUUFBQUEsVUFBVSxFQUFFO0FBQ1ZDLFVBQUFBLFNBQVMsRUFBRTtBQUREO0FBVlAsU0FhRk4sU0FiRSxFQUFQO0FBZUQ7OztFQWhGdUNPLG9DOzs7QUFtRjFDdkMsWUFBWSxDQUFDd0MsU0FBYixHQUF5QixjQUF6QjtBQUNBeEMsWUFBWSxDQUFDYixZQUFiLEdBQTRCQSxZQUE1QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7U2NhdHRlcnBsb3RMYXllcn0gZnJvbSAnQGRlY2suZ2wvbGF5ZXJzJztcbmltcG9ydCB7X0FnZ3JlZ2F0aW9uTGF5ZXIgYXMgQWdncmVnYXRpb25MYXllcn0gZnJvbSAnQGRlY2suZ2wvYWdncmVnYXRpb24tbGF5ZXJzJztcblxuaW1wb3J0IGdlb1ZpZXdwb3J0IGZyb20gJ0BtYXBib3gvZ2VvLXZpZXdwb3J0JztcbmltcG9ydCBDUFVBZ2dyZWdhdG9yLCB7XG4gIEFnZ3JlZ2F0aW9uVHlwZSxcbiAgZGVmYXVsdENvbG9yRGltZW5zaW9uLFxuICBEaW1lbnNpb25UeXBlLFxuICBnZXREaW1lbnNpb25TY2FsZVxufSBmcm9tICcuLi9sYXllci11dGlscy9jcHUtYWdncmVnYXRvcic7XG5pbXBvcnQge2dldERpc3RhbmNlU2NhbGVzfSBmcm9tICd2aWV3cG9ydC1tZXJjYXRvci1wcm9qZWN0JztcbmltcG9ydCB7bWF4fSBmcm9tICdkMy1hcnJheSc7XG5cbmltcG9ydCB7U0NBTEVfVFlQRVMsIERFRkFVTFRfQ09MT1JfUkFOR0UsIExBWUVSX1ZJU19DT05GSUdTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQgQ2x1c3RlckJ1aWxkZXIsIHtnZXRHZW9KU09OfSBmcm9tICcuLi9sYXllci11dGlscy9jbHVzdGVyLXV0aWxzJztcbmltcG9ydCB7UkdCQUNvbG9yfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7QWdncmVnYXRpb25MYXllclByb3BzfSBmcm9tICdAZGVjay5nbC9hZ2dyZWdhdGlvbi1sYXllcnMvYWdncmVnYXRpb24tbGF5ZXInO1xuXG5jb25zdCBkZWZhdWx0UmFkaXVzID0gTEFZRVJfVklTX0NPTkZJR1MuY2x1c3RlclJhZGl1cy5kZWZhdWx0VmFsdWU7XG5jb25zdCBkZWZhdWx0UmFkaXVzUmFuZ2UgPSBMQVlFUl9WSVNfQ09ORklHUy5jbHVzdGVyUmFkaXVzUmFuZ2UuZGVmYXVsdFZhbHVlO1xuXG5jb25zdCBkZWZhdWx0R2V0Q29sb3JWYWx1ZSA9IHBvaW50cyA9PiBwb2ludHMubGVuZ3RoO1xuY29uc3QgZGVmYXVsdEdldFJhZGl1c1ZhbHVlID0gY2VsbCA9PlxuICBjZWxsLmZpbHRlcmVkUG9pbnRzID8gY2VsbC5maWx0ZXJlZFBvaW50cy5sZW5ndGggOiBjZWxsLnBvaW50cy5sZW5ndGg7XG5cbmZ1bmN0aW9uIHByb2Nlc3NHZW9KU09OKHRoaXM6IENQVUFnZ3JlZ2F0b3IsIHN0ZXAsIHByb3BzLCBhZ2dyZWdhdGlvbiwge3ZpZXdwb3J0fSkge1xuICBjb25zdCB7ZGF0YSwgZ2V0UG9zaXRpb24sIGZpbHRlckRhdGF9ID0gcHJvcHM7XG4gIGNvbnN0IGdlb0pTT04gPSBnZXRHZW9KU09OKGRhdGEsIGdldFBvc2l0aW9uLCBmaWx0ZXJEYXRhKTtcbiAgY29uc3QgY2x1c3RlckJ1aWxkZXIgPSBuZXcgQ2x1c3RlckJ1aWxkZXIoKTtcblxuICB0aGlzLnNldFN0YXRlKHtnZW9KU09OLCBjbHVzdGVyQnVpbGRlcn0pO1xufVxuXG5mdW5jdGlvbiBnZXRDbHVzdGVycyh0aGlzOiBDUFVBZ2dyZWdhdG9yLCBzdGVwLCBwcm9wcywgYWdncmVnYXRpb24sIHt2aWV3cG9ydH0pIHtcbiAgY29uc3Qge2dlb0pTT04sIGNsdXN0ZXJCdWlsZGVyfSA9IHRoaXMuc3RhdGU7XG4gIGNvbnN0IHtjbHVzdGVyUmFkaXVzLCB6b29tLCB3aWR0aCwgaGVpZ2h0fSA9IHByb3BzO1xuICBjb25zdCB7bG9uZ2l0dWRlLCBsYXRpdHVkZX0gPSB2aWV3cG9ydDtcblxuICAvLyB6b29tIG5lZWRzIHRvIGJlIGFuIGludGVnZXIgZm9yIHRoZSBkaWZmZXJlbnQgbWFwIHV0aWxzLiBBbHNvIGhlbHBzIHdpdGggY2FjaGUga2V5LlxuICBjb25zdCBiYm94ID0gZ2VvVmlld3BvcnQuYm91bmRzKFtsb25naXR1ZGUsIGxhdGl0dWRlXSwgem9vbSwgW3dpZHRoLCBoZWlnaHRdKTtcbiAgY29uc3QgY2x1c3RlcnMgPSBjbHVzdGVyQnVpbGRlci5jbHVzdGVyc0F0Wm9vbSh7YmJveCwgY2x1c3RlclJhZGl1cywgZ2VvSlNPTiwgem9vbX0pO1xuXG4gIHRoaXMuc2V0U3RhdGUoe1xuICAgIGxheWVyRGF0YToge2RhdGE6IGNsdXN0ZXJzfVxuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0U3ViTGF5ZXJSYWRpdXMoZGltZW5zaW9uU3RhdGUsIGRpbWVuc2lvbiwgbGF5ZXJQcm9wcykge1xuICByZXR1cm4gY2VsbCA9PiB7XG4gICAgY29uc3Qge2dldFJhZGl1c1ZhbHVlfSA9IGxheWVyUHJvcHM7XG4gICAgY29uc3Qge3NjYWxlRnVuY30gPSBkaW1lbnNpb25TdGF0ZTtcbiAgICByZXR1cm4gc2NhbGVGdW5jKGdldFJhZGl1c1ZhbHVlKGNlbGwpKTtcbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGNsdXN0ZXJBZ2dyZWdhdGlvbjogQWdncmVnYXRpb25UeXBlID0ge1xuICBrZXk6ICdwb3NpdGlvbicsXG4gIHVwZGF0ZVN0ZXBzOiBbXG4gICAge1xuICAgICAga2V5OiAnZ2VvanNvbicsXG4gICAgICB0cmlnZ2Vyczoge1xuICAgICAgICBwb3NpdGlvbjoge1xuICAgICAgICAgIHByb3A6ICdnZXRQb3NpdGlvbicsXG4gICAgICAgICAgdXBkYXRlVHJpZ2dlcjogJ2dldFBvc2l0aW9uJ1xuICAgICAgICB9LFxuICAgICAgICBmaWx0ZXJEYXRhOiB7XG4gICAgICAgICAgcHJvcDogJ2ZpbHRlckRhdGEnLFxuICAgICAgICAgIHVwZGF0ZVRyaWdnZXI6ICdmaWx0ZXJEYXRhJ1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogcHJvY2Vzc0dlb0pTT05cbiAgICB9LFxuICAgIHtcbiAgICAgIGtleTogJ2NsdXN0ZXJpbmcnLFxuICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgY2x1c3RlclJhZGl1czoge1xuICAgICAgICAgIHByb3A6ICdjbHVzdGVyUmFkaXVzJ1xuICAgICAgICB9LFxuICAgICAgICB6b29tOiB7XG4gICAgICAgICAgcHJvcDogJ3pvb20nXG4gICAgICAgIH0sXG4gICAgICAgIHdpZHRoOiB7XG4gICAgICAgICAgcHJvcDogJ3dpZHRoJ1xuICAgICAgICB9LFxuICAgICAgICBoZWlnaHQ6IHtcbiAgICAgICAgICBwcm9wOiAnaGVpZ2h0J1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgdXBkYXRlcjogZ2V0Q2x1c3RlcnNcbiAgICB9XG4gIF1cbn07XG5cbmZ1bmN0aW9uIGdldFJhZGl1c1ZhbHVlRG9tYWluKHRoaXM6IENQVUFnZ3JlZ2F0b3IsIHN0ZXAsIHByb3BzLCBkaW1lbnNpb25VcGRhdGVyKSB7XG4gIGNvbnN0IHtrZXl9ID0gZGltZW5zaW9uVXBkYXRlcjtcbiAgY29uc3Qge2dldFJhZGl1c1ZhbHVlfSA9IHByb3BzO1xuICBjb25zdCB7bGF5ZXJEYXRhfSA9IHRoaXMuc3RhdGU7XG5cbiAgY29uc3QgdmFsdWVEb21haW4gPSBbMCwgbWF4KGxheWVyRGF0YS5kYXRhLCBnZXRSYWRpdXNWYWx1ZSldO1xuICB0aGlzLl9zZXREaW1lbnNpb25TdGF0ZShrZXksIHt2YWx1ZURvbWFpbn0pO1xufVxuXG5jb25zdCBjbHVzdGVyTGF5ZXJEaW1lbnNpb25zOiBbRGltZW5zaW9uVHlwZTxSR0JBQ29sb3I+LCBEaW1lbnNpb25UeXBlPG51bWJlcj5dID0gW1xuICBkZWZhdWx0Q29sb3JEaW1lbnNpb24sXG4gIHtcbiAgICBrZXk6ICdyYWRpdXMnLFxuICAgIGFjY2Vzc29yOiAnZ2V0UmFkaXVzJyxcbiAgICBudWxsVmFsdWU6IDAsXG4gICAgdXBkYXRlU3RlcHM6IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiAnZ2V0RG9tYWluJyxcbiAgICAgICAgdHJpZ2dlcnM6IHtcbiAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgcHJvcDogJ2dldFJhZGl1c1ZhbHVlJyxcbiAgICAgICAgICAgIHVwZGF0ZVRyaWdnZXI6ICdnZXRSYWRpdXNWYWx1ZSdcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHVwZGF0ZXI6IGdldFJhZGl1c1ZhbHVlRG9tYWluXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdnZXRTY2FsZUZ1bmMnLFxuICAgICAgICB0cmlnZ2Vyczoge1xuICAgICAgICAgIGRvbWFpbjoge3Byb3A6ICdyYWRpdXNEb21haW4nfSxcbiAgICAgICAgICByYW5nZToge3Byb3A6ICdyYWRpdXNSYW5nZSd9LFxuICAgICAgICAgIHNjYWxlVHlwZToge3Byb3A6ICdyYWRpdXNTY2FsZVR5cGUnfVxuICAgICAgICB9LFxuICAgICAgICB1cGRhdGVyOiBnZXREaW1lbnNpb25TY2FsZVxuICAgICAgfVxuICAgIF0sXG4gICAgZ2V0U3ViTGF5ZXJBY2Nlc3NvcjogZ2V0U3ViTGF5ZXJSYWRpdXMsXG4gICAgZ2V0UGlja2luZ0luZm86IChkaW1lbnNpb25TdGF0ZSwgY2VsbCwgbGF5ZXJQcm9wcykgPT4ge1xuICAgICAgY29uc3QgcmFkaXVzVmFsdWUgPSBsYXllclByb3BzLmdldFJhZGl1c1ZhbHVlKGNlbGwpO1xuICAgICAgcmV0dXJuIHtyYWRpdXNWYWx1ZX07XG4gICAgfVxuICB9XG5dO1xuXG5jb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gIGNsdXN0ZXJSYWRpdXM6IGRlZmF1bHRSYWRpdXMsXG4gIGNvbG9yRG9tYWluOiBudWxsLFxuICBjb2xvclJhbmdlOiBERUZBVUxUX0NPTE9SX1JBTkdFLFxuICBjb2xvclNjYWxlVHlwZTogU0NBTEVfVFlQRVMucXVhbnRpemUsXG4gIHJhZGl1c1NjYWxlVHlwZTogU0NBTEVfVFlQRVMuc3FydCxcbiAgcmFkaXVzUmFuZ2U6IGRlZmF1bHRSYWRpdXNSYW5nZSxcbiAgZ2V0UG9zaXRpb246IHt0eXBlOiAnYWNjZXNzb3InLCB2YWx1ZTogeCA9PiB4LnBvc2l0aW9ufSxcbiAgZ2V0Q29sb3JWYWx1ZToge3R5cGU6ICdhY2Nlc3NvcicsIHZhbHVlOiBkZWZhdWx0R2V0Q29sb3JWYWx1ZX0sXG4gIGdldFJhZGl1c1ZhbHVlOiB7dHlwZTogJ2FjY2Vzc29yJywgdmFsdWU6IGRlZmF1bHRHZXRSYWRpdXNWYWx1ZX1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENsdXN0ZXJMYXllciBleHRlbmRzIEFnZ3JlZ2F0aW9uTGF5ZXI8XG4gIGFueSxcbiAgQWdncmVnYXRpb25MYXllclByb3BzPGFueT4gJiB7cmFkaXVzU2NhbGU6IG51bWJlcn1cbj4ge1xuICBpbml0aWFsaXplU3RhdGUoKSB7XG4gICAgY29uc3QgY3B1QWdncmVnYXRvciA9IG5ldyBDUFVBZ2dyZWdhdG9yKHtcbiAgICAgIGFnZ3JlZ2F0aW9uOiBjbHVzdGVyQWdncmVnYXRpb24sXG4gICAgICBkaW1lbnNpb25zOiBjbHVzdGVyTGF5ZXJEaW1lbnNpb25zXG4gICAgfSk7XG5cbiAgICB0aGlzLnN0YXRlID0ge1xuICAgICAgY3B1QWdncmVnYXRvcixcbiAgICAgIGFnZ3JlZ2F0b3JTdGF0ZTogY3B1QWdncmVnYXRvci5zdGF0ZVxuICAgIH07XG4gICAgY29uc3QgYXR0cmlidXRlTWFuYWdlciA9IHRoaXMuZ2V0QXR0cmlidXRlTWFuYWdlcigpO1xuICAgIGF0dHJpYnV0ZU1hbmFnZXIuYWRkKHtcbiAgICAgIHBvc2l0aW9uczoge3NpemU6IDMsIGFjY2Vzc29yOiAnZ2V0UG9zaXRpb24nfVxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlU3RhdGUoe29sZFByb3BzLCBwcm9wcywgY2hhbmdlRmxhZ3N9KSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAvLyBtYWtlIGEgY29weSBvZiB0aGUgaW50ZXJuYWwgc3RhdGUgb2YgY3B1QWdncmVnYXRvciBmb3IgdGVzdGluZ1xuICAgICAgYWdncmVnYXRvclN0YXRlOiB0aGlzLnN0YXRlLmNwdUFnZ3JlZ2F0b3IudXBkYXRlU3RhdGUoXG4gICAgICAgIHtvbGRQcm9wcywgcHJvcHMsIGNoYW5nZUZsYWdzfSxcbiAgICAgICAge1xuICAgICAgICAgIHZpZXdwb3J0OiB0aGlzLmNvbnRleHQudmlld3BvcnQsXG4gICAgICAgICAgYXR0cmlidXRlczogdGhpcy5nZXRBdHRyaWJ1dGVzKCksXG4gICAgICAgICAgbnVtSW5zdGFuY2VzOiB0aGlzLmdldE51bUluc3RhbmNlcyhwcm9wcylcbiAgICAgICAgfVxuICAgICAgKVxuICAgIH0pO1xuICB9XG5cbiAgZ2V0UGlja2luZ0luZm8oe2luZm99KSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuY3B1QWdncmVnYXRvci5nZXRQaWNraW5nSW5mbyh7aW5mb30sIHRoaXMucHJvcHMpO1xuICB9XG5cbiAgX2dldFN1YmxheWVyVXBkYXRlVHJpZ2dlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuY3B1QWdncmVnYXRvci5nZXRVcGRhdGVUcmlnZ2Vycyh0aGlzLnByb3BzKTtcbiAgfVxuXG4gIF9nZXRTdWJMYXllckFjY2Vzc29ycygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZ2V0UmFkaXVzOiB0aGlzLnN0YXRlLmNwdUFnZ3JlZ2F0b3IuZ2V0QWNjZXNzb3IoJ3JhZGl1cycsIHRoaXMucHJvcHMpLFxuICAgICAgZ2V0RmlsbENvbG9yOiB0aGlzLnN0YXRlLmNwdUFnZ3JlZ2F0b3IuZ2V0QWNjZXNzb3IoJ2ZpbGxDb2xvcicsIHRoaXMucHJvcHMpXG4gICAgfTtcbiAgfVxuXG4gIHJlbmRlckxheWVycygpIHtcbiAgICAvLyBmb3Igc3ViY2xhc3NpbmcsIG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHJldHVyblxuICAgIC8vIGN1c3RvbWl6ZWQgc3ViIGxheWVyIHByb3BzXG4gICAgY29uc3Qge2lkLCByYWRpdXNTY2FsZX0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHtjcHVBZ2dyZWdhdG9yfSA9IHRoaXMuc3RhdGU7XG5cbiAgICAvLyBiYXNlIGxheWVyIHByb3BzXG4gICAgY29uc3Qge3Zpc2libGUsIG9wYWNpdHksIHBpY2thYmxlLCBhdXRvSGlnaGxpZ2h0LCBoaWdobGlnaHRDb2xvcn0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHVwZGF0ZVRyaWdnZXJzID0gdGhpcy5fZ2V0U3VibGF5ZXJVcGRhdGVUcmlnZ2VycygpO1xuICAgIGNvbnN0IGFjY2Vzc29ycyA9IHRoaXMuX2dldFN1YkxheWVyQWNjZXNzb3JzKCk7XG5cbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgY29uc3QgZGlzdGFuY2VTY2FsZSA9IGdldERpc3RhbmNlU2NhbGVzKHRoaXMuY29udGV4dC52aWV3cG9ydCk7XG4gICAgY29uc3QgbWV0ZXJzUGVyUGl4ZWwgPSBkaXN0YW5jZVNjYWxlLm1ldGVyc1BlclBpeGVsWzBdO1xuXG4gICAgLy8gcmV0dXJuIHByb3BzIHRvIHRoZSBzdWJsYXllciBjb25zdHJ1Y3RvclxuICAgIHJldHVybiBuZXcgU2NhdHRlcnBsb3RMYXllcih7XG4gICAgICBpZDogYCR7aWR9LWNsdXN0ZXJgLFxuICAgICAgZGF0YTogY3B1QWdncmVnYXRvci5zdGF0ZS5sYXllckRhdGEuZGF0YSxcbiAgICAgIHJhZGl1c1NjYWxlOiBtZXRlcnNQZXJQaXhlbCAqIHJhZGl1c1NjYWxlLFxuICAgICAgdmlzaWJsZSxcbiAgICAgIG9wYWNpdHksXG4gICAgICBwaWNrYWJsZSxcbiAgICAgIGF1dG9IaWdobGlnaHQsXG4gICAgICBoaWdobGlnaHRDb2xvcixcbiAgICAgIHVwZGF0ZVRyaWdnZXJzLFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBkZXB0aE1hc2s6IGZhbHNlXG4gICAgICB9LFxuICAgICAgLi4uYWNjZXNzb3JzXG4gICAgfSk7XG4gIH1cbn1cblxuQ2x1c3RlckxheWVyLmxheWVyTmFtZSA9ICdDbHVzdGVyTGF5ZXInO1xuQ2x1c3RlckxheWVyLmRlZmF1bHRQcm9wcyA9IGRlZmF1bHRQcm9wcztcbiJdfQ==
@@ -1,7 +1,12 @@
1
- /// <reference types="deck.gl" />
2
- import { ColumnLayer } from '@deck.gl/layers';
3
- declare class EnhancedColumnLayer extends ColumnLayer<any> {
1
+ import { ColumnLayer, ColumnLayerProps } from '@deck.gl/layers/typed';
2
+ declare type EnhancedColumnLayerProps = ColumnLayerProps<any> & {
3
+ strokeOpacity: any;
4
+ };
5
+ declare class EnhancedColumnLayer extends ColumnLayer<any, EnhancedColumnLayerProps> {
4
6
  getShaders(): any;
5
7
  initializeState(): void;
8
+ draw({ uniforms }: {
9
+ uniforms: any;
10
+ }): void;
6
11
  }
7
12
  export default EnhancedColumnLayer;