@kepler.gl/constants 3.3.0-alpha.0 → 3.3.0-alpha.10

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.
Files changed (46) hide show
  1. package/dist/annotation.d.ts +23 -0
  2. package/dist/cjs/annotation.js +45 -0
  3. package/dist/cjs/color-palettes.js +461 -0
  4. package/dist/cjs/colors-by-theme.js +519 -0
  5. package/dist/cjs/dataset.js +176 -0
  6. package/dist/cjs/default-settings.js +1740 -0
  7. package/dist/cjs/gpu-parameters.js +125 -0
  8. package/dist/{index.js → cjs/index.js} +13 -1
  9. package/dist/cjs/keyevent.js +26 -0
  10. package/dist/cjs/layers.js +609 -0
  11. package/dist/{plot.js → cjs/plot.js} +1 -1
  12. package/dist/cjs/time.js +194 -0
  13. package/dist/cjs/tooltip.js +221 -0
  14. package/dist/cjs/user-feedbacks.js +15 -0
  15. package/dist/cjs/user-guides.js +19 -0
  16. package/dist/dataset.d.ts +70 -1
  17. package/dist/default-settings.d.ts +106 -2
  18. package/dist/esm/annotation.js +38 -0
  19. package/dist/esm/color-palettes.js +453 -0
  20. package/dist/esm/colors-by-theme.js +513 -0
  21. package/dist/esm/dataset.js +169 -0
  22. package/dist/esm/default-settings.js +1734 -0
  23. package/dist/esm/gpu-parameters.js +119 -0
  24. package/dist/esm/index.js +18 -0
  25. package/dist/esm/keyevent.js +19 -0
  26. package/dist/esm/layers.js +602 -0
  27. package/dist/esm/plot.js +9 -0
  28. package/dist/esm/time.js +190 -0
  29. package/dist/esm/tooltip.js +215 -0
  30. package/dist/esm/user-feedbacks.js +9 -0
  31. package/dist/esm/user-guides.js +13 -0
  32. package/dist/index.d.ts +1 -0
  33. package/dist/layers.d.ts +7 -0
  34. package/package.json +25 -16
  35. package/dist/color-palettes.js +0 -462
  36. package/dist/colors-by-theme.js +0 -519
  37. package/dist/dataset.js +0 -63
  38. package/dist/default-settings.js +0 -1495
  39. package/dist/gpu-parameters.js +0 -125
  40. package/dist/keyevent.js +0 -26
  41. package/dist/layers.js +0 -549
  42. package/dist/time.js +0 -194
  43. package/dist/tooltip.js +0 -221
  44. package/dist/user-feedbacks.js +0 -15
  45. package/dist/user-guides.js +0 -19
  46. package/umd/keplergl.min.js +0 -58
@@ -0,0 +1,609 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.UNKNOWN_COLOR_KEY = exports.PROPERTY_GROUPS = exports.MIN_WORLD_UNIT_SIZE = exports.LAYER_VIS_CONFIGS = exports.LAYER_TYPES = exports.LAYER_TEXT_CONFIGS = exports.EDITOR_AVAILABLE_LAYERS = exports.DEFAULT_TEXT_LABEL = exports.DEFAULT_LAYER_OPACITY = exports.DEFAULT_LAYER_LABEL = exports.DEFAULT_HIGHLIGHT_COLOR = exports.DEFAULT_CUSTOM_PALETTE = exports.DEFAULT_COLOR_UI = exports.DEFAULT_COLOR_RANGE = void 0;
8
+ var _keymirror = _interopRequireDefault(require("keymirror"));
9
+ var _defaultSettings = require("./default-settings");
10
+ var _colorPalettes = require("./color-palettes");
11
+ // SPDX-License-Identifier: MIT
12
+ // Copyright contributors to the kepler.gl project
13
+
14
+ var PROPERTY_GROUPS = exports.PROPERTY_GROUPS = (0, _keymirror["default"])({
15
+ color: null,
16
+ stroke: null,
17
+ radius: null,
18
+ height: null,
19
+ angle: null,
20
+ scenegraph: null,
21
+ // for heatmap aggregation
22
+ cell: null,
23
+ precision: null,
24
+ display: null,
25
+ interaction: null
26
+ });
27
+ var DEFAULT_LAYER_OPACITY = exports.DEFAULT_LAYER_OPACITY = 0.8;
28
+ /** Minimum grid / hexagon cell size in kilometers. Zero is invalid for aggregation. */
29
+ var MIN_WORLD_UNIT_SIZE = exports.MIN_WORLD_UNIT_SIZE = 0.001;
30
+ var DEFAULT_HIGHLIGHT_COLOR = exports.DEFAULT_HIGHLIGHT_COLOR = [252, 242, 26, 255];
31
+ var DEFAULT_LAYER_LABEL = exports.DEFAULT_LAYER_LABEL = 'new layer';
32
+ var DEFAULT_TEXT_LABEL = exports.DEFAULT_TEXT_LABEL = {
33
+ field: null,
34
+ color: [255, 255, 255],
35
+ size: 18,
36
+ weight: 400,
37
+ offset: [0, 0],
38
+ anchor: 'start',
39
+ alignment: 'center',
40
+ outlineWidth: 0,
41
+ outlineColor: [255, 0, 0, 255],
42
+ background: false,
43
+ backgroundColor: [0, 0, 200, 255]
44
+ };
45
+ var DEFAULT_COLOR_PALETTE = _colorPalettes.KEPLER_COLOR_PALETTES.find(function (_ref) {
46
+ var name = _ref.name;
47
+ return name === _defaultSettings.DEFAULT_LAYER_COLOR_PALETTE;
48
+ });
49
+ var DEFAULT_COLOR_RANGE = exports.DEFAULT_COLOR_RANGE = (0, _colorPalettes.colorPaletteToColorRange)(DEFAULT_COLOR_PALETTE, {
50
+ reversed: false,
51
+ steps: _defaultSettings.DEFAULT_LAYER_COLOR_PALETTE_STEPS
52
+ });
53
+ var DEFAULT_CUSTOM_PALETTE = exports.DEFAULT_CUSTOM_PALETTE = {
54
+ name: 'color.customPalette',
55
+ type: 'custom',
56
+ category: 'Custom',
57
+ colors: []
58
+ };
59
+ var UNKNOWN_COLOR_KEY = exports.UNKNOWN_COLOR_KEY = '__unknownColor__';
60
+ var DEFAULT_COLOR_UI = exports.DEFAULT_COLOR_UI = {
61
+ // customPalette in edit
62
+ customPalette: DEFAULT_CUSTOM_PALETTE,
63
+ // show color sketcher modal
64
+ showSketcher: false,
65
+ // show color range selection panel
66
+ showDropdown: false,
67
+ // show color chart
68
+ showColorChart: false,
69
+ // color range selector config
70
+ colorRangeConfig: {
71
+ type: 'all',
72
+ steps: 6,
73
+ reversed: false,
74
+ colorBlindSafe: false,
75
+ custom: false,
76
+ customBreaks: false
77
+ }
78
+ };
79
+ var LAYER_VIS_CONFIGS = exports.LAYER_VIS_CONFIGS = {
80
+ thickness: {
81
+ type: 'number',
82
+ defaultValue: 2,
83
+ label: 'layerVisConfigs.strokeWidth',
84
+ isRanged: false,
85
+ range: [0, 100],
86
+ step: 0.1,
87
+ group: PROPERTY_GROUPS.stroke,
88
+ property: 'thickness',
89
+ allowCustomValue: true
90
+ },
91
+ strokeWidthRange: {
92
+ type: 'number',
93
+ defaultValue: [0, 10],
94
+ label: 'layerVisConfigs.strokeWidthRange',
95
+ isRanged: true,
96
+ range: [0, 200],
97
+ step: 0.1,
98
+ group: PROPERTY_GROUPS.stroke,
99
+ property: 'sizeRange',
100
+ allowCustomValue: true
101
+ },
102
+ trailLength: {
103
+ type: 'number',
104
+ defaultValue: 180,
105
+ label: 'layerVisConfigs.strokeWidth',
106
+ isRanged: false,
107
+ range: [1, 1000],
108
+ step: 1,
109
+ group: PROPERTY_GROUPS.stroke,
110
+ property: 'trailLength',
111
+ allowCustomValue: true
112
+ },
113
+ fadeTrail: {
114
+ defaultValue: true,
115
+ type: 'boolean',
116
+ label: 'layerVisConfigs.fadeTrail',
117
+ group: PROPERTY_GROUPS.stroke,
118
+ property: 'fadeTrail'
119
+ },
120
+ billboard: {
121
+ defaultValue: false,
122
+ type: 'boolean',
123
+ label: 'layerVisConfigs.billboard',
124
+ description: 'layerVisConfigs.billboardDescription',
125
+ group: PROPERTY_GROUPS.display,
126
+ property: 'billboard'
127
+ },
128
+ // radius is actually radiusScale in deck.gl
129
+ radius: {
130
+ type: 'number',
131
+ defaultValue: 10,
132
+ label: 'layerVisConfigs.radius',
133
+ isRanged: false,
134
+ range: [0, 100],
135
+ step: 0.1,
136
+ group: PROPERTY_GROUPS.radius,
137
+ property: 'radius',
138
+ allowCustomValue: true
139
+ },
140
+ fixedRadius: {
141
+ defaultValue: false,
142
+ type: 'boolean',
143
+ label: 'layerVisConfigs.fixedRadius',
144
+ description: 'layerVisConfigs.fixedRadiusDescription',
145
+ group: PROPERTY_GROUPS.radius,
146
+ property: 'fixedRadius'
147
+ },
148
+ fixedHeight: {
149
+ defaultValue: false,
150
+ type: 'boolean',
151
+ label: 'layerVisConfigs.fixedHeight',
152
+ description: 'layerVisConfigs.fixedHeightDescription',
153
+ group: PROPERTY_GROUPS.height,
154
+ property: 'fixedHeight'
155
+ },
156
+ radiusRange: {
157
+ type: 'number',
158
+ defaultValue: [0, 50],
159
+ isRanged: true,
160
+ range: [0, 500],
161
+ step: 0.1,
162
+ label: 'layerVisConfigs.radiusRange',
163
+ group: PROPERTY_GROUPS.radius,
164
+ property: 'radiusRange',
165
+ allowCustomValue: true
166
+ },
167
+ clusterRadius: {
168
+ type: 'number',
169
+ label: 'layerVisConfigs.clusterRadius',
170
+ defaultValue: 40,
171
+ isRanged: false,
172
+ range: [1, 500],
173
+ step: 0.1,
174
+ group: PROPERTY_GROUPS.radius,
175
+ property: 'clusterRadius',
176
+ allowCustomValue: true
177
+ },
178
+ clusterRadiusRange: {
179
+ type: 'number',
180
+ label: 'layerVisConfigs.radiusRangePixels',
181
+ defaultValue: [1, 40],
182
+ isRanged: true,
183
+ range: [1, 150],
184
+ step: 0.1,
185
+ group: PROPERTY_GROUPS.radius,
186
+ property: 'radiusRange',
187
+ allowCustomValue: true
188
+ },
189
+ opacity: {
190
+ type: 'number',
191
+ defaultValue: DEFAULT_LAYER_OPACITY,
192
+ label: 'layerVisConfigs.opacity',
193
+ isRanged: false,
194
+ range: [0, 1],
195
+ step: 0.01,
196
+ group: PROPERTY_GROUPS.color,
197
+ property: 'opacity',
198
+ allowCustomValue: false
199
+ },
200
+ coverage: {
201
+ type: 'number',
202
+ defaultValue: 1,
203
+ label: 'layerVisConfigs.coverage',
204
+ isRanged: false,
205
+ range: [0, 1],
206
+ step: 0.01,
207
+ group: PROPERTY_GROUPS.cell,
208
+ property: 'coverage',
209
+ allowCustomValue: false
210
+ },
211
+ // used in point layer
212
+ outline: {
213
+ type: 'boolean',
214
+ defaultValue: false,
215
+ label: 'layer.outline',
216
+ group: PROPERTY_GROUPS.display,
217
+ property: 'outline'
218
+ },
219
+ colorRange: {
220
+ type: 'color-range-select',
221
+ defaultValue: DEFAULT_COLOR_RANGE,
222
+ label: 'layerVisConfigs.colorRange',
223
+ group: PROPERTY_GROUPS.color,
224
+ property: 'colorRange'
225
+ },
226
+ strokeColorRange: {
227
+ type: 'color-range-select',
228
+ defaultValue: DEFAULT_COLOR_RANGE,
229
+ label: 'layerVisConfigs.strokeColorRange',
230
+ group: PROPERTY_GROUPS.color,
231
+ property: 'strokeColorRange'
232
+ },
233
+ targetColor: {
234
+ type: 'color-select',
235
+ label: 'layerVisConfigs.targetColor',
236
+ defaultValue: null,
237
+ group: PROPERTY_GROUPS.color,
238
+ property: 'targetColor'
239
+ },
240
+ strokeColor: {
241
+ type: 'color-select',
242
+ label: 'layerVisConfigs.strokeColor',
243
+ defaultValue: null,
244
+ group: PROPERTY_GROUPS.color,
245
+ property: 'strokeColor'
246
+ },
247
+ colorAggregation: {
248
+ type: 'select',
249
+ defaultValue: _defaultSettings.AGGREGATION_TYPES.average,
250
+ label: 'layerVisConfigs.colorAggregation',
251
+ // aggregation options are based on color field types
252
+ options: Object.keys(_defaultSettings.AGGREGATION_TYPES),
253
+ group: PROPERTY_GROUPS.color,
254
+ property: 'colorAggregation',
255
+ condition: function condition(config) {
256
+ return Boolean(config.colorField);
257
+ }
258
+ },
259
+ sizeAggregation: {
260
+ type: 'select',
261
+ defaultValue: _defaultSettings.AGGREGATION_TYPES.average,
262
+ label: 'layerVisConfigs.heightAggregation',
263
+ // aggregation options are based on color field types
264
+ options: Object.keys(_defaultSettings.AGGREGATION_TYPES),
265
+ group: PROPERTY_GROUPS.height,
266
+ property: 'sizeAggregation',
267
+ condition: function condition(config) {
268
+ return Boolean(config.sizeField);
269
+ }
270
+ },
271
+ percentile: {
272
+ type: 'number',
273
+ defaultValue: [0, 100],
274
+ label: function label(config) {
275
+ return "Filter by ".concat(config.colorField ? "".concat(config.visConfig.colorAggregation, " ").concat(config.colorField.name) : 'count', " percentile");
276
+ },
277
+ isRanged: true,
278
+ range: [0, 100],
279
+ step: 0.01,
280
+ group: PROPERTY_GROUPS.color,
281
+ property: 'percentile',
282
+ // percentile filter only makes sense with linear aggregation
283
+ condition: function condition(config) {
284
+ return config.colorScale !== 'ordinal';
285
+ },
286
+ allowCustomValue: false
287
+ },
288
+ elevationPercentile: {
289
+ type: 'number',
290
+ defaultValue: [0, 100],
291
+ label: function label(config) {
292
+ return "Filter by ".concat(config.sizeField ? "".concat(config.visConfig.sizeAggregation, " ").concat(config.sizeField.name) : 'count', " percentile");
293
+ },
294
+ isRanged: true,
295
+ range: [0, 100],
296
+ step: 0.01,
297
+ group: PROPERTY_GROUPS.height,
298
+ property: 'elevationPercentile',
299
+ // percentile filter only makes sense with linear aggregation
300
+ condition: function condition(config) {
301
+ return Boolean(config.visConfig.enable3d && (config.colorField || config.sizeField));
302
+ },
303
+ allowCustomValue: false
304
+ },
305
+ resolution: {
306
+ type: 'number',
307
+ defaultValue: 8,
308
+ label: 'layerVisConfigs.resolution',
309
+ isRanged: false,
310
+ range: [0, 13],
311
+ step: 1,
312
+ group: PROPERTY_GROUPS.cell,
313
+ property: 'resolution',
314
+ allowCustomValue: true
315
+ },
316
+ sizeScale: {
317
+ type: 'number',
318
+ defaultValue: 10,
319
+ label: 'layerVisConfigs.sizeScale',
320
+ isRanged: false,
321
+ range: [1, 1000],
322
+ step: 1,
323
+ group: PROPERTY_GROUPS.stroke,
324
+ property: 'sizeScale',
325
+ allowCustomValue: true
326
+ },
327
+ angle: {
328
+ type: 'number',
329
+ label: 'layerVisConfigs.angle',
330
+ defaultValue: 0,
331
+ isRanged: false,
332
+ range: [0, 360],
333
+ group: PROPERTY_GROUPS.angle,
334
+ step: 1,
335
+ property: 'angle',
336
+ allowCustomValue: true
337
+ },
338
+ worldUnitSize: {
339
+ type: 'number',
340
+ defaultValue: 1,
341
+ label: 'layerVisConfigs.worldUnitSize',
342
+ isRanged: false,
343
+ range: [MIN_WORLD_UNIT_SIZE, 500],
344
+ step: 0.0001,
345
+ group: PROPERTY_GROUPS.cell,
346
+ property: 'worldUnitSize',
347
+ allowCustomValue: true
348
+ },
349
+ elevationScale: {
350
+ type: 'number',
351
+ defaultValue: 5,
352
+ label: 'layerVisConfigs.elevationScale',
353
+ isRanged: false,
354
+ range: [0, 1000],
355
+ step: 0.1,
356
+ group: PROPERTY_GROUPS.height,
357
+ property: 'elevationScale',
358
+ allowCustomValue: true
359
+ },
360
+ enableElevationZoomFactor: {
361
+ type: 'boolean',
362
+ defaultValue: true,
363
+ label: 'layerVisConfigs.enableElevationZoomFactor',
364
+ group: PROPERTY_GROUPS.height,
365
+ property: 'enableElevationZoomFactor',
366
+ description: 'layerVisConfigs.enableElevationZoomFactorDescription'
367
+ },
368
+ elevationRange: {
369
+ type: 'number',
370
+ defaultValue: [0, 500],
371
+ label: 'layerVisConfigs.heightScale',
372
+ isRanged: true,
373
+ range: [0, 1000],
374
+ step: 0.01,
375
+ group: PROPERTY_GROUPS.height,
376
+ property: 'sizeRange',
377
+ allowCustomValue: true
378
+ },
379
+ heightRange: {
380
+ type: 'number',
381
+ defaultValue: [0, 500],
382
+ label: 'Height Scale',
383
+ isRanged: true,
384
+ range: [0, 1000],
385
+ step: 0.01,
386
+ group: PROPERTY_GROUPS.height,
387
+ property: 'heightRange',
388
+ allowCustomValue: true
389
+ },
390
+ coverageRange: {
391
+ type: 'number',
392
+ defaultValue: [0, 1],
393
+ label: 'layerVisConfigs.coverageRange',
394
+ isRanged: true,
395
+ range: [0, 1],
396
+ step: 0.01,
397
+ group: PROPERTY_GROUPS.radius,
398
+ property: 'coverageRange',
399
+ allowCustomValue: false
400
+ },
401
+ // hi precision is deprecated by deck.gl
402
+ 'hi-precision': {
403
+ type: 'boolean',
404
+ defaultValue: false,
405
+ label: 'layerVisConfigs.highPrecisionRendering',
406
+ group: PROPERTY_GROUPS.precision,
407
+ property: 'hi-precision',
408
+ description: 'layerVisConfigs.highPrecisionRenderingDescription'
409
+ },
410
+ enable3d: {
411
+ type: 'boolean',
412
+ defaultValue: false,
413
+ label: 'layerVisConfigs.height',
414
+ group: PROPERTY_GROUPS.height,
415
+ property: 'enable3d',
416
+ description: 'layerVisConfigs.heightDescription'
417
+ },
418
+ stroked: {
419
+ type: 'boolean',
420
+ label: 'layerVisConfigs.stroke',
421
+ defaultValue: true,
422
+ group: PROPERTY_GROUPS.display,
423
+ property: 'stroked'
424
+ },
425
+ filled: {
426
+ type: 'boolean',
427
+ label: 'layerVisConfigs.fill',
428
+ defaultValue: false,
429
+ group: PROPERTY_GROUPS.display,
430
+ property: 'filled'
431
+ },
432
+ extruded: {
433
+ type: 'boolean',
434
+ defaultValue: false,
435
+ label: 'layerVisConfigs.enablePolygonHeight',
436
+ group: PROPERTY_GROUPS.display,
437
+ property: 'extruded'
438
+ },
439
+ wireframe: {
440
+ type: 'boolean',
441
+ defaultValue: false,
442
+ label: 'layerVisConfigs.showWireframe',
443
+ group: PROPERTY_GROUPS.display,
444
+ property: 'wireframe'
445
+ },
446
+ // used for heatmap
447
+ weight: {
448
+ type: 'number',
449
+ defaultValue: 1,
450
+ label: 'layerVisConfigs.weightIntensity',
451
+ isRanged: false,
452
+ range: [0.01, 500],
453
+ step: 0.01,
454
+ group: PROPERTY_GROUPS.cell,
455
+ property: 'weight',
456
+ condition: function condition(config) {
457
+ return Boolean(config.weightField);
458
+ },
459
+ allowCustomValue: true
460
+ },
461
+ heatmapRadius: {
462
+ type: 'number',
463
+ defaultValue: 20,
464
+ label: 'layerVisConfigs.radius',
465
+ isRanged: false,
466
+ range: [0.1, 100],
467
+ step: 0.1,
468
+ group: PROPERTY_GROUPS.cell,
469
+ property: 'radius',
470
+ allowCustomValue: true
471
+ },
472
+ darkBaseMapEnabled: {
473
+ type: 'boolean',
474
+ defaultValue: true,
475
+ label: 'layerVisConfigs.darkModeEnabled',
476
+ property: 'darkBaseMapEnabled',
477
+ group: PROPERTY_GROUPS.display
478
+ },
479
+ allowHover: {
480
+ type: 'boolean',
481
+ defaultValue: true,
482
+ label: 'layerVisConfigs.allowHover',
483
+ description: 'layerVisConfigs.allowHoverDescription',
484
+ group: PROPERTY_GROUPS.interaction,
485
+ property: 'allowHover'
486
+ },
487
+ showNeighborOnHover: {
488
+ type: 'boolean',
489
+ defaultValue: false,
490
+ label: 'layerVisConfigs.showNeighborOnHover',
491
+ group: PROPERTY_GROUPS.interaction,
492
+ property: 'showNeighborOnHover'
493
+ },
494
+ showHighlightColor: {
495
+ type: 'boolean',
496
+ defaultValue: true,
497
+ label: 'layerVisConfigs.showHighlightColor',
498
+ group: PROPERTY_GROUPS.interaction,
499
+ property: 'showHighlightColor'
500
+ },
501
+ scenegraph: {
502
+ defaultValue: null,
503
+ type: 'input',
504
+ label: 'layerVisConfigs.scenegraph',
505
+ group: PROPERTY_GROUPS.scenegraph,
506
+ property: 'scenegraph'
507
+ },
508
+ scenegraphEnabled: {
509
+ defaultValue: false,
510
+ type: 'boolean',
511
+ label: 'layerVisConfigs.scenegraphEnabled',
512
+ group: PROPERTY_GROUPS.scenegraph,
513
+ property: 'scenegraphEnabled'
514
+ },
515
+ scenegraphCustomModelUrl: {
516
+ defaultValue: '',
517
+ type: 'input',
518
+ label: 'layerVisConfigs.scenegraphCustomModelUrl',
519
+ group: PROPERTY_GROUPS.scenegraph,
520
+ property: 'scenegraphCustomModelUrl'
521
+ },
522
+ scenegraphColorEnabled: {
523
+ defaultValue: false,
524
+ type: 'boolean',
525
+ label: 'layerVisConfigs.scenegraphColorEnabled',
526
+ group: PROPERTY_GROUPS.scenegraph,
527
+ property: 'scenegraphColorEnabled'
528
+ },
529
+ scenegraphUseTrailColor: {
530
+ defaultValue: false,
531
+ type: 'boolean',
532
+ label: 'layerVisConfigs.scenegraphUseTrailColor',
533
+ group: PROPERTY_GROUPS.scenegraph,
534
+ property: 'scenegraphUseTrailColor'
535
+ },
536
+ scenegraphColor: {
537
+ defaultValue: null,
538
+ type: 'color-select',
539
+ label: 'layerVisConfigs.scenegraphColor',
540
+ group: PROPERTY_GROUPS.scenegraph,
541
+ property: 'scenegraphColor'
542
+ }
543
+ };
544
+ var LAYER_TEXT_CONFIGS = exports.LAYER_TEXT_CONFIGS = {
545
+ fontSize: {
546
+ type: 'number',
547
+ range: [1, 100],
548
+ value0: 1,
549
+ step: 1,
550
+ isRanged: false,
551
+ label: 'Font size',
552
+ showInput: true
553
+ },
554
+ fontWeight: {
555
+ type: 'number',
556
+ range: [100, 900],
557
+ value0: 100,
558
+ step: 100,
559
+ isRanged: false,
560
+ label: 'Font weight',
561
+ showInput: true
562
+ },
563
+ outlineWidth: {
564
+ type: 'number',
565
+ range: [0, 1],
566
+ value0: 0,
567
+ step: 0.01,
568
+ isRanged: false,
569
+ label: 'Outline width',
570
+ showInput: true
571
+ },
572
+ textAnchor: {
573
+ type: 'select',
574
+ options: ['start', 'middle', 'end'],
575
+ multiSelect: false,
576
+ searchable: false
577
+ },
578
+ textAlignment: {
579
+ type: 'select',
580
+ options: ['top', 'center', 'bottom'],
581
+ multiSelect: false,
582
+ searchable: false
583
+ }
584
+ };
585
+ var LAYER_TYPES = exports.LAYER_TYPES = (0, _keymirror["default"])({
586
+ point: null,
587
+ arc: null,
588
+ line: null,
589
+ grid: null,
590
+ hexagon: null,
591
+ geojson: null,
592
+ cluster: null,
593
+ icon: null,
594
+ heatmap: null,
595
+ hexagonId: null,
596
+ '3D': null,
597
+ trip: null,
598
+ s2: null,
599
+ a5: null,
600
+ geohash: null,
601
+ flow: null,
602
+ vectorTile: null,
603
+ rasterTile: null,
604
+ wms: null,
605
+ tile3d: null,
606
+ bitmap: null
607
+ });
608
+ var EDITOR_AVAILABLE_LAYERS = exports.EDITOR_AVAILABLE_LAYERS = [LAYER_TYPES.point, LAYER_TYPES.icon, LAYER_TYPES.grid, LAYER_TYPES.hexagon, LAYER_TYPES.cluster, LAYER_TYPES.arc, LAYER_TYPES.line, LAYER_TYPES.hexagonId, LAYER_TYPES.geojson, LAYER_TYPES.heatmap];
609
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfa2V5bWlycm9yIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfZGVmYXVsdFNldHRpbmdzIiwiX2NvbG9yUGFsZXR0ZXMiLCJQUk9QRVJUWV9HUk9VUFMiLCJleHBvcnRzIiwia2V5TWlycm9yIiwiY29sb3IiLCJzdHJva2UiLCJyYWRpdXMiLCJoZWlnaHQiLCJhbmdsZSIsInNjZW5lZ3JhcGgiLCJjZWxsIiwicHJlY2lzaW9uIiwiZGlzcGxheSIsImludGVyYWN0aW9uIiwiREVGQVVMVF9MQVlFUl9PUEFDSVRZIiwiTUlOX1dPUkxEX1VOSVRfU0laRSIsIkRFRkFVTFRfSElHSExJR0hUX0NPTE9SIiwiREVGQVVMVF9MQVlFUl9MQUJFTCIsIkRFRkFVTFRfVEVYVF9MQUJFTCIsImZpZWxkIiwic2l6ZSIsIndlaWdodCIsIm9mZnNldCIsImFuY2hvciIsImFsaWdubWVudCIsIm91dGxpbmVXaWR0aCIsIm91dGxpbmVDb2xvciIsImJhY2tncm91bmQiLCJiYWNrZ3JvdW5kQ29sb3IiLCJERUZBVUxUX0NPTE9SX1BBTEVUVEUiLCJLRVBMRVJfQ09MT1JfUEFMRVRURVMiLCJmaW5kIiwiX3JlZiIsIm5hbWUiLCJERUZBVUxUX0xBWUVSX0NPTE9SX1BBTEVUVEUiLCJERUZBVUxUX0NPTE9SX1JBTkdFIiwiY29sb3JQYWxldHRlVG9Db2xvclJhbmdlIiwicmV2ZXJzZWQiLCJzdGVwcyIsIkRFRkFVTFRfTEFZRVJfQ09MT1JfUEFMRVRURV9TVEVQUyIsIkRFRkFVTFRfQ1VTVE9NX1BBTEVUVEUiLCJ0eXBlIiwiY2F0ZWdvcnkiLCJjb2xvcnMiLCJVTktOT1dOX0NPTE9SX0tFWSIsIkRFRkFVTFRfQ09MT1JfVUkiLCJjdXN0b21QYWxldHRlIiwic2hvd1NrZXRjaGVyIiwic2hvd0Ryb3Bkb3duIiwic2hvd0NvbG9yQ2hhcnQiLCJjb2xvclJhbmdlQ29uZmlnIiwiY29sb3JCbGluZFNhZmUiLCJjdXN0b20iLCJjdXN0b21CcmVha3MiLCJMQVlFUl9WSVNfQ09ORklHUyIsInRoaWNrbmVzcyIsImRlZmF1bHRWYWx1ZSIsImxhYmVsIiwiaXNSYW5nZWQiLCJyYW5nZSIsInN0ZXAiLCJncm91cCIsInByb3BlcnR5IiwiYWxsb3dDdXN0b21WYWx1ZSIsInN0cm9rZVdpZHRoUmFuZ2UiLCJ0cmFpbExlbmd0aCIsImZhZGVUcmFpbCIsImJpbGxib2FyZCIsImRlc2NyaXB0aW9uIiwiZml4ZWRSYWRpdXMiLCJmaXhlZEhlaWdodCIsInJhZGl1c1JhbmdlIiwiY2x1c3RlclJhZGl1cyIsImNsdXN0ZXJSYWRpdXNSYW5nZSIsIm9wYWNpdHkiLCJjb3ZlcmFnZSIsIm91dGxpbmUiLCJjb2xvclJhbmdlIiwic3Ryb2tlQ29sb3JSYW5nZSIsInRhcmdldENvbG9yIiwic3Ryb2tlQ29sb3IiLCJjb2xvckFnZ3JlZ2F0aW9uIiwiQUdHUkVHQVRJT05fVFlQRVMiLCJhdmVyYWdlIiwib3B0aW9ucyIsIk9iamVjdCIsImtleXMiLCJjb25kaXRpb24iLCJjb25maWciLCJCb29sZWFuIiwiY29sb3JGaWVsZCIsInNpemVBZ2dyZWdhdGlvbiIsInNpemVGaWVsZCIsInBlcmNlbnRpbGUiLCJjb25jYXQiLCJ2aXNDb25maWciLCJjb2xvclNjYWxlIiwiZWxldmF0aW9uUGVyY2VudGlsZSIsImVuYWJsZTNkIiwicmVzb2x1dGlvbiIsInNpemVTY2FsZSIsIndvcmxkVW5pdFNpemUiLCJlbGV2YXRpb25TY2FsZSIsImVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3IiLCJlbGV2YXRpb25SYW5nZSIsImhlaWdodFJhbmdlIiwiY292ZXJhZ2VSYW5nZSIsInN0cm9rZWQiLCJmaWxsZWQiLCJleHRydWRlZCIsIndpcmVmcmFtZSIsIndlaWdodEZpZWxkIiwiaGVhdG1hcFJhZGl1cyIsImRhcmtCYXNlTWFwRW5hYmxlZCIsImFsbG93SG92ZXIiLCJzaG93TmVpZ2hib3JPbkhvdmVyIiwic2hvd0hpZ2hsaWdodENvbG9yIiwic2NlbmVncmFwaEVuYWJsZWQiLCJzY2VuZWdyYXBoQ3VzdG9tTW9kZWxVcmwiLCJzY2VuZWdyYXBoQ29sb3JFbmFibGVkIiwic2NlbmVncmFwaFVzZVRyYWlsQ29sb3IiLCJzY2VuZWdyYXBoQ29sb3IiLCJMQVlFUl9URVhUX0NPTkZJR1MiLCJmb250U2l6ZSIsInZhbHVlMCIsInNob3dJbnB1dCIsImZvbnRXZWlnaHQiLCJ0ZXh0QW5jaG9yIiwibXVsdGlTZWxlY3QiLCJzZWFyY2hhYmxlIiwidGV4dEFsaWdubWVudCIsIkxBWUVSX1RZUEVTIiwicG9pbnQiLCJhcmMiLCJsaW5lIiwiZ3JpZCIsImhleGFnb24iLCJnZW9qc29uIiwiY2x1c3RlciIsImljb24iLCJoZWF0bWFwIiwiaGV4YWdvbklkIiwidHJpcCIsInMyIiwiYTUiLCJnZW9oYXNoIiwiZmxvdyIsInZlY3RvclRpbGUiLCJyYXN0ZXJUaWxlIiwid21zIiwidGlsZTNkIiwiYml0bWFwIiwiRURJVE9SX0FWQUlMQUJMRV9MQVlFUlMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbGF5ZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBrZXlNaXJyb3IgZnJvbSAna2V5bWlycm9yJztcblxuaW1wb3J0IHtcbiAgQUdHUkVHQVRJT05fVFlQRVMsXG4gIERFRkFVTFRfTEFZRVJfQ09MT1JfUEFMRVRURSxcbiAgREVGQVVMVF9MQVlFUl9DT0xPUl9QQUxFVFRFX1NURVBTXG59IGZyb20gJy4vZGVmYXVsdC1zZXR0aW5ncyc7XG5pbXBvcnQge1xuICBDb2xvclJhbmdlLFxuICBDb2xvclVJLFxuICBMYXllclRleHRDb25maWcsXG4gIExheWVyVGV4dExhYmVsLFxuICBMYXllclZpc0NvbmZpZ1NldHRpbmdzLFxuICBSR0JBQ29sb3Jcbn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge0NvbG9yUGFsZXR0ZSwgS0VQTEVSX0NPTE9SX1BBTEVUVEVTLCBjb2xvclBhbGV0dGVUb0NvbG9yUmFuZ2V9IGZyb20gJy4vY29sb3ItcGFsZXR0ZXMnO1xuXG5leHBvcnQgdHlwZSBBZ2dyZWdhdGlvblR5cGVzID0ga2V5b2YgdHlwZW9mIEFHR1JFR0FUSU9OX1RZUEVTO1xuXG5leHBvcnQgY29uc3QgUFJPUEVSVFlfR1JPVVBTID0ga2V5TWlycm9yKHtcbiAgY29sb3I6IG51bGwsXG4gIHN0cm9rZTogbnVsbCxcbiAgcmFkaXVzOiBudWxsLFxuICBoZWlnaHQ6IG51bGwsXG4gIGFuZ2xlOiBudWxsLFxuICBzY2VuZWdyYXBoOiBudWxsLFxuICAvLyBmb3IgaGVhdG1hcCBhZ2dyZWdhdGlvblxuICBjZWxsOiBudWxsLFxuICBwcmVjaXNpb246IG51bGwsXG4gIGRpc3BsYXk6IG51bGwsXG4gIGludGVyYWN0aW9uOiBudWxsXG59KTtcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfTEFZRVJfT1BBQ0lUWSA9IDAuODtcbi8qKiBNaW5pbXVtIGdyaWQgLyBoZXhhZ29uIGNlbGwgc2l6ZSBpbiBraWxvbWV0ZXJzLiBaZXJvIGlzIGludmFsaWQgZm9yIGFnZ3JlZ2F0aW9uLiAqL1xuZXhwb3J0IGNvbnN0IE1JTl9XT1JMRF9VTklUX1NJWkUgPSAwLjAwMTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0hJR0hMSUdIVF9DT0xPUjogUkdCQUNvbG9yID0gWzI1MiwgMjQyLCAyNiwgMjU1XTtcbmV4cG9ydCBjb25zdCBERUZBVUxUX0xBWUVSX0xBQkVMID0gJ25ldyBsYXllcic7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1RFWFRfTEFCRUw6IExheWVyVGV4dExhYmVsID0ge1xuICBmaWVsZDogbnVsbCxcbiAgY29sb3I6IFsyNTUsIDI1NSwgMjU1XSxcbiAgc2l6ZTogMTgsXG4gIHdlaWdodDogNDAwLFxuICBvZmZzZXQ6IFswLCAwXSxcbiAgYW5jaG9yOiAnc3RhcnQnLFxuICBhbGlnbm1lbnQ6ICdjZW50ZXInLFxuICBvdXRsaW5lV2lkdGg6IDAsXG4gIG91dGxpbmVDb2xvcjogWzI1NSwgMCwgMCwgMjU1XSxcbiAgYmFja2dyb3VuZDogZmFsc2UsXG4gIGJhY2tncm91bmRDb2xvcjogWzAsIDAsIDIwMCwgMjU1XVxufTtcblxuY29uc3QgREVGQVVMVF9DT0xPUl9QQUxFVFRFID0gS0VQTEVSX0NPTE9SX1BBTEVUVEVTLmZpbmQoXG4gICh7bmFtZX0pID0+IG5hbWUgPT09IERFRkFVTFRfTEFZRVJfQ09MT1JfUEFMRVRURVxuKSBhcyBDb2xvclBhbGV0dGU7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTE9SX1JBTkdFID0gY29sb3JQYWxldHRlVG9Db2xvclJhbmdlKERFRkFVTFRfQ09MT1JfUEFMRVRURSwge1xuICByZXZlcnNlZDogZmFsc2UsXG4gIHN0ZXBzOiBERUZBVUxUX0xBWUVSX0NPTE9SX1BBTEVUVEVfU1RFUFNcbn0pO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9DVVNUT01fUEFMRVRURTogQ29sb3JSYW5nZSA9IHtcbiAgbmFtZTogJ2NvbG9yLmN1c3RvbVBhbGV0dGUnLFxuICB0eXBlOiAnY3VzdG9tJyxcbiAgY2F0ZWdvcnk6ICdDdXN0b20nLFxuICBjb2xvcnM6IFtdXG59O1xuXG5leHBvcnQgY29uc3QgVU5LTk9XTl9DT0xPUl9LRVkgPSAnX191bmtub3duQ29sb3JfXyc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTE9SX1VJOiBDb2xvclVJID0ge1xuICAvLyBjdXN0b21QYWxldHRlIGluIGVkaXRcbiAgY3VzdG9tUGFsZXR0ZTogREVGQVVMVF9DVVNUT01fUEFMRVRURSxcbiAgLy8gc2hvdyBjb2xvciBza2V0Y2hlciBtb2RhbFxuICBzaG93U2tldGNoZXI6IGZhbHNlLFxuICAvLyBzaG93IGNvbG9yIHJhbmdlIHNlbGVjdGlvbiBwYW5lbFxuICBzaG93RHJvcGRvd246IGZhbHNlLFxuICAvLyBzaG93IGNvbG9yIGNoYXJ0XG4gIHNob3dDb2xvckNoYXJ0OiBmYWxzZSxcbiAgLy8gY29sb3IgcmFuZ2Ugc2VsZWN0b3IgY29uZmlnXG4gIGNvbG9yUmFuZ2VDb25maWc6IHtcbiAgICB0eXBlOiAnYWxsJyxcbiAgICBzdGVwczogNixcbiAgICByZXZlcnNlZDogZmFsc2UsXG4gICAgY29sb3JCbGluZFNhZmU6IGZhbHNlLFxuICAgIGN1c3RvbTogZmFsc2UsXG4gICAgY3VzdG9tQnJlYWtzOiBmYWxzZVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgTEFZRVJfVklTX0NPTkZJR1M6IExheWVyVmlzQ29uZmlnU2V0dGluZ3MgPSB7XG4gIHRoaWNrbmVzczoge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogMixcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zdHJva2VXaWR0aCcsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMTAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5zdHJva2UsXG4gICAgcHJvcGVydHk6ICd0aGlja25lc3MnLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IHRydWVcbiAgfSxcbiAgc3Ryb2tlV2lkdGhSYW5nZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDEwXSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zdHJva2VXaWR0aFJhbmdlJyxcbiAgICBpc1JhbmdlZDogdHJ1ZSxcbiAgICByYW5nZTogWzAsIDIwMF0sXG4gICAgc3RlcDogMC4xLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuc3Ryb2tlLFxuICAgIHByb3BlcnR5OiAnc2l6ZVJhbmdlJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIHRyYWlsTGVuZ3RoOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAxODAsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc3Ryb2tlV2lkdGgnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzEsIDEwMDBdLFxuICAgIHN0ZXA6IDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5zdHJva2UsXG4gICAgcHJvcGVydHk6ICd0cmFpbExlbmd0aCcsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICBmYWRlVHJhaWw6IHtcbiAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmZhZGVUcmFpbCcsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5zdHJva2UsXG4gICAgcHJvcGVydHk6ICdmYWRlVHJhaWwnXG4gIH0sXG4gIGJpbGxib2FyZDoge1xuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmJpbGxib2FyZCcsXG4gICAgZGVzY3JpcHRpb246ICdsYXllclZpc0NvbmZpZ3MuYmlsbGJvYXJkRGVzY3JpcHRpb24nLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuZGlzcGxheSxcbiAgICBwcm9wZXJ0eTogJ2JpbGxib2FyZCdcbiAgfSxcbiAgLy8gcmFkaXVzIGlzIGFjdHVhbGx5IHJhZGl1c1NjYWxlIGluIGRlY2suZ2xcbiAgcmFkaXVzOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAxMCxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5yYWRpdXMnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDEwMF0sXG4gICAgc3RlcDogMC4xLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMucmFkaXVzLFxuICAgIHByb3BlcnR5OiAncmFkaXVzJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIGZpeGVkUmFkaXVzOiB7XG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuZml4ZWRSYWRpdXMnLFxuICAgIGRlc2NyaXB0aW9uOiAnbGF5ZXJWaXNDb25maWdzLmZpeGVkUmFkaXVzRGVzY3JpcHRpb24nLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMucmFkaXVzLFxuICAgIHByb3BlcnR5OiAnZml4ZWRSYWRpdXMnXG4gIH0sXG4gIGZpeGVkSGVpZ2h0OiB7XG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuZml4ZWRIZWlnaHQnLFxuICAgIGRlc2NyaXB0aW9uOiAnbGF5ZXJWaXNDb25maWdzLmZpeGVkSGVpZ2h0RGVzY3JpcHRpb24nLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnZml4ZWRIZWlnaHQnXG4gIH0sXG4gIHJhZGl1c1JhbmdlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiBbMCwgNTBdLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgNTAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MucmFkaXVzUmFuZ2UnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMucmFkaXVzLFxuICAgIHByb3BlcnR5OiAncmFkaXVzUmFuZ2UnLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IHRydWVcbiAgfSxcbiAgY2x1c3RlclJhZGl1czoge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmNsdXN0ZXJSYWRpdXMnLFxuICAgIGRlZmF1bHRWYWx1ZTogNDAsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMSwgNTAwXSxcbiAgICBzdGVwOiAwLjEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5yYWRpdXMsXG4gICAgcHJvcGVydHk6ICdjbHVzdGVyUmFkaXVzJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIGNsdXN0ZXJSYWRpdXNSYW5nZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnJhZGl1c1JhbmdlUGl4ZWxzJyxcbiAgICBkZWZhdWx0VmFsdWU6IFsxLCA0MF0sXG4gICAgaXNSYW5nZWQ6IHRydWUsXG4gICAgcmFuZ2U6IFsxLCAxNTBdLFxuICAgIHN0ZXA6IDAuMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnJhZGl1cyxcbiAgICBwcm9wZXJ0eTogJ3JhZGl1c1JhbmdlJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIG9wYWNpdHk6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IERFRkFVTFRfTEFZRVJfT1BBQ0lUWSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5vcGFjaXR5JyxcbiAgICBpc1JhbmdlZDogZmFsc2UsXG4gICAgcmFuZ2U6IFswLCAxXSxcbiAgICBzdGVwOiAwLjAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY29sb3IsXG4gICAgcHJvcGVydHk6ICdvcGFjaXR5JyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiBmYWxzZVxuICB9LFxuICBjb3ZlcmFnZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogMSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5jb3ZlcmFnZScsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMV0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNlbGwsXG4gICAgcHJvcGVydHk6ICdjb3ZlcmFnZScsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogZmFsc2VcbiAgfSxcbiAgLy8gdXNlZCBpbiBwb2ludCBsYXllclxuICBvdXRsaW5lOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgbGFiZWw6ICdsYXllci5vdXRsaW5lJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmRpc3BsYXksXG4gICAgcHJvcGVydHk6ICdvdXRsaW5lJ1xuICB9LFxuICBjb2xvclJhbmdlOiB7XG4gICAgdHlwZTogJ2NvbG9yLXJhbmdlLXNlbGVjdCcsXG4gICAgZGVmYXVsdFZhbHVlOiBERUZBVUxUX0NPTE9SX1JBTkdFLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmNvbG9yUmFuZ2UnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY29sb3IsXG4gICAgcHJvcGVydHk6ICdjb2xvclJhbmdlJ1xuICB9LFxuICBzdHJva2VDb2xvclJhbmdlOiB7XG4gICAgdHlwZTogJ2NvbG9yLXJhbmdlLXNlbGVjdCcsXG4gICAgZGVmYXVsdFZhbHVlOiBERUZBVUxUX0NPTE9SX1JBTkdFLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnN0cm9rZUNvbG9yUmFuZ2UnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY29sb3IsXG4gICAgcHJvcGVydHk6ICdzdHJva2VDb2xvclJhbmdlJ1xuICB9LFxuICB0YXJnZXRDb2xvcjoge1xuICAgIHR5cGU6ICdjb2xvci1zZWxlY3QnLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnRhcmdldENvbG9yJyxcbiAgICBkZWZhdWx0VmFsdWU6IG51bGwsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ3RhcmdldENvbG9yJ1xuICB9LFxuICBzdHJva2VDb2xvcjoge1xuICAgIHR5cGU6ICdjb2xvci1zZWxlY3QnLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnN0cm9rZUNvbG9yJyxcbiAgICBkZWZhdWx0VmFsdWU6IG51bGwsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jb2xvcixcbiAgICBwcm9wZXJ0eTogJ3N0cm9rZUNvbG9yJ1xuICB9LFxuICBjb2xvckFnZ3JlZ2F0aW9uOiB7XG4gICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgZGVmYXVsdFZhbHVlOiBBR0dSRUdBVElPTl9UWVBFUy5hdmVyYWdlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmNvbG9yQWdncmVnYXRpb24nLFxuICAgIC8vIGFnZ3JlZ2F0aW9uIG9wdGlvbnMgYXJlIGJhc2VkIG9uIGNvbG9yIGZpZWxkIHR5cGVzXG4gICAgb3B0aW9uczogT2JqZWN0LmtleXMoQUdHUkVHQVRJT05fVFlQRVMpIGFzIEFnZ3JlZ2F0aW9uVHlwZXNbXSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNvbG9yLFxuICAgIHByb3BlcnR5OiAnY29sb3JBZ2dyZWdhdGlvbicsXG4gICAgY29uZGl0aW9uOiBjb25maWcgPT4gQm9vbGVhbihjb25maWcuY29sb3JGaWVsZClcbiAgfSxcbiAgc2l6ZUFnZ3JlZ2F0aW9uOiB7XG4gICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgZGVmYXVsdFZhbHVlOiBBR0dSRUdBVElPTl9UWVBFUy5hdmVyYWdlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmhlaWdodEFnZ3JlZ2F0aW9uJyxcbiAgICAvLyBhZ2dyZWdhdGlvbiBvcHRpb25zIGFyZSBiYXNlZCBvbiBjb2xvciBmaWVsZCB0eXBlc1xuICAgIG9wdGlvbnM6IE9iamVjdC5rZXlzKEFHR1JFR0FUSU9OX1RZUEVTKSBhcyBBZ2dyZWdhdGlvblR5cGVzW10sXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5oZWlnaHQsXG4gICAgcHJvcGVydHk6ICdzaXplQWdncmVnYXRpb24nLFxuICAgIGNvbmRpdGlvbjogY29uZmlnID0+IEJvb2xlYW4oY29uZmlnLnNpemVGaWVsZClcbiAgfSxcbiAgcGVyY2VudGlsZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDEwMF0sXG4gICAgbGFiZWw6IGNvbmZpZyA9PlxuICAgICAgYEZpbHRlciBieSAke1xuICAgICAgICBjb25maWcuY29sb3JGaWVsZFxuICAgICAgICAgID8gYCR7Y29uZmlnLnZpc0NvbmZpZy5jb2xvckFnZ3JlZ2F0aW9ufSAke2NvbmZpZy5jb2xvckZpZWxkLm5hbWV9YFxuICAgICAgICAgIDogJ2NvdW50J1xuICAgICAgfSBwZXJjZW50aWxlYCxcbiAgICBpc1JhbmdlZDogdHJ1ZSxcbiAgICByYW5nZTogWzAsIDEwMF0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNvbG9yLFxuICAgIHByb3BlcnR5OiAncGVyY2VudGlsZScsXG5cbiAgICAvLyBwZXJjZW50aWxlIGZpbHRlciBvbmx5IG1ha2VzIHNlbnNlIHdpdGggbGluZWFyIGFnZ3JlZ2F0aW9uXG4gICAgY29uZGl0aW9uOiBjb25maWcgPT4gY29uZmlnLmNvbG9yU2NhbGUgIT09ICdvcmRpbmFsJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiBmYWxzZVxuICB9LFxuICBlbGV2YXRpb25QZXJjZW50aWxlOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiBbMCwgMTAwXSxcbiAgICBsYWJlbDogY29uZmlnID0+XG4gICAgICBgRmlsdGVyIGJ5ICR7XG4gICAgICAgIGNvbmZpZy5zaXplRmllbGQgPyBgJHtjb25maWcudmlzQ29uZmlnLnNpemVBZ2dyZWdhdGlvbn0gJHtjb25maWcuc2l6ZUZpZWxkLm5hbWV9YCA6ICdjb3VudCdcbiAgICAgIH0gcGVyY2VudGlsZWAsXG4gICAgaXNSYW5nZWQ6IHRydWUsXG4gICAgcmFuZ2U6IFswLCAxMDBdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5oZWlnaHQsXG4gICAgcHJvcGVydHk6ICdlbGV2YXRpb25QZXJjZW50aWxlJyxcbiAgICAvLyBwZXJjZW50aWxlIGZpbHRlciBvbmx5IG1ha2VzIHNlbnNlIHdpdGggbGluZWFyIGFnZ3JlZ2F0aW9uXG4gICAgY29uZGl0aW9uOiBjb25maWcgPT5cbiAgICAgIEJvb2xlYW4oY29uZmlnLnZpc0NvbmZpZy5lbmFibGUzZCAmJiAoY29uZmlnLmNvbG9yRmllbGQgfHwgY29uZmlnLnNpemVGaWVsZCkpLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IGZhbHNlXG4gIH0sXG4gIHJlc29sdXRpb246IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDgsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MucmVzb2x1dGlvbicsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMTNdLFxuICAgIHN0ZXA6IDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5jZWxsLFxuICAgIHByb3BlcnR5OiAncmVzb2x1dGlvbicsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICBzaXplU2NhbGU6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDEwLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnNpemVTY2FsZScsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMSwgMTAwMF0sXG4gICAgc3RlcDogMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnN0cm9rZSxcbiAgICBwcm9wZXJ0eTogJ3NpemVTY2FsZScsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICBhbmdsZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmFuZ2xlJyxcbiAgICBkZWZhdWx0VmFsdWU6IDAsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMCwgMzYwXSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmFuZ2xlLFxuICAgIHN0ZXA6IDEsXG4gICAgcHJvcGVydHk6ICdhbmdsZScsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICB3b3JsZFVuaXRTaXplOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgZGVmYXVsdFZhbHVlOiAxLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLndvcmxkVW5pdFNpemUnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogW01JTl9XT1JMRF9VTklUX1NJWkUsIDUwMF0sXG4gICAgc3RlcDogMC4wMDAxLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuY2VsbCxcbiAgICBwcm9wZXJ0eTogJ3dvcmxkVW5pdFNpemUnLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IHRydWVcbiAgfSxcbiAgZWxldmF0aW9uU2NhbGU6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDUsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuZWxldmF0aW9uU2NhbGUnLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAsIDEwMDBdLFxuICAgIHN0ZXA6IDAuMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ2VsZXZhdGlvblNjYWxlJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIGVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3I6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLmVuYWJsZUVsZXZhdGlvblpvb21GYWN0b3InLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvcicsXG4gICAgZGVzY3JpcHRpb246ICdsYXllclZpc0NvbmZpZ3MuZW5hYmxlRWxldmF0aW9uWm9vbUZhY3RvckRlc2NyaXB0aW9uJ1xuICB9LFxuICBlbGV2YXRpb25SYW5nZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDUwMF0sXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuaGVpZ2h0U2NhbGUnLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMTAwMF0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ3NpemVSYW5nZScsXG4gICAgYWxsb3dDdXN0b21WYWx1ZTogdHJ1ZVxuICB9LFxuICBoZWlnaHRSYW5nZToge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogWzAsIDUwMF0sXG4gICAgbGFiZWw6ICdIZWlnaHQgU2NhbGUnLFxuICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgIHJhbmdlOiBbMCwgMTAwMF0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmhlaWdodCxcbiAgICBwcm9wZXJ0eTogJ2hlaWdodFJhbmdlJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIGNvdmVyYWdlUmFuZ2U6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IFswLCAxXSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5jb3ZlcmFnZVJhbmdlJyxcbiAgICBpc1JhbmdlZDogdHJ1ZSxcbiAgICByYW5nZTogWzAsIDFdLFxuICAgIHN0ZXA6IDAuMDEsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5yYWRpdXMsXG4gICAgcHJvcGVydHk6ICdjb3ZlcmFnZVJhbmdlJyxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiBmYWxzZVxuICB9LFxuICAvLyBoaSBwcmVjaXNpb24gaXMgZGVwcmVjYXRlZCBieSBkZWNrLmdsXG4gICdoaS1wcmVjaXNpb24nOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuaGlnaFByZWNpc2lvblJlbmRlcmluZycsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5wcmVjaXNpb24sXG4gICAgcHJvcGVydHk6ICdoaS1wcmVjaXNpb24nLFxuICAgIGRlc2NyaXB0aW9uOiAnbGF5ZXJWaXNDb25maWdzLmhpZ2hQcmVjaXNpb25SZW5kZXJpbmdEZXNjcmlwdGlvbidcbiAgfSxcbiAgZW5hYmxlM2Q6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5oZWlnaHQnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaGVpZ2h0LFxuICAgIHByb3BlcnR5OiAnZW5hYmxlM2QnLFxuICAgIGRlc2NyaXB0aW9uOiAnbGF5ZXJWaXNDb25maWdzLmhlaWdodERlc2NyaXB0aW9uJ1xuICB9LFxuICBzdHJva2VkOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnN0cm9rZScsXG4gICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuZGlzcGxheSxcbiAgICBwcm9wZXJ0eTogJ3N0cm9rZWQnXG4gIH0sXG4gIGZpbGxlZDoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5maWxsJyxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuZGlzcGxheSxcbiAgICBwcm9wZXJ0eTogJ2ZpbGxlZCdcbiAgfSxcbiAgZXh0cnVkZWQ6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5lbmFibGVQb2x5Z29uSGVpZ2h0JyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmRpc3BsYXksXG4gICAgcHJvcGVydHk6ICdleHRydWRlZCdcbiAgfSxcbiAgd2lyZWZyYW1lOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc2hvd1dpcmVmcmFtZScsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5kaXNwbGF5LFxuICAgIHByb3BlcnR5OiAnd2lyZWZyYW1lJ1xuICB9LFxuICAvLyB1c2VkIGZvciBoZWF0bWFwXG4gIHdlaWdodDoge1xuICAgIHR5cGU6ICdudW1iZXInLFxuICAgIGRlZmF1bHRWYWx1ZTogMSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy53ZWlnaHRJbnRlbnNpdHknLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICByYW5nZTogWzAuMDEsIDUwMF0sXG4gICAgc3RlcDogMC4wMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNlbGwsXG4gICAgcHJvcGVydHk6ICd3ZWlnaHQnLFxuICAgIGNvbmRpdGlvbjogY29uZmlnID0+IEJvb2xlYW4oY29uZmlnLndlaWdodEZpZWxkKSxcbiAgICBhbGxvd0N1c3RvbVZhbHVlOiB0cnVlXG4gIH0sXG4gIGhlYXRtYXBSYWRpdXM6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICBkZWZhdWx0VmFsdWU6IDIwLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnJhZGl1cycsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIHJhbmdlOiBbMC4xLCAxMDBdLFxuICAgIHN0ZXA6IDAuMSxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmNlbGwsXG4gICAgcHJvcGVydHk6ICdyYWRpdXMnLFxuICAgIGFsbG93Q3VzdG9tVmFsdWU6IHRydWVcbiAgfSxcbiAgZGFya0Jhc2VNYXBFbmFibGVkOiB7XG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5kYXJrTW9kZUVuYWJsZWQnLFxuICAgIHByb3BlcnR5OiAnZGFya0Jhc2VNYXBFbmFibGVkJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmRpc3BsYXlcbiAgfSxcbiAgYWxsb3dIb3Zlcjoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3MuYWxsb3dIb3ZlcicsXG4gICAgZGVzY3JpcHRpb246ICdsYXllclZpc0NvbmZpZ3MuYWxsb3dIb3ZlckRlc2NyaXB0aW9uJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLmludGVyYWN0aW9uLFxuICAgIHByb3BlcnR5OiAnYWxsb3dIb3ZlcidcbiAgfSxcbiAgc2hvd05laWdoYm9yT25Ib3Zlcjoge1xuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnNob3dOZWlnaGJvck9uSG92ZXInLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuaW50ZXJhY3Rpb24sXG4gICAgcHJvcGVydHk6ICdzaG93TmVpZ2hib3JPbkhvdmVyJ1xuICB9LFxuICBzaG93SGlnaGxpZ2h0Q29sb3I6IHtcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnNob3dIaWdobGlnaHRDb2xvcicsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5pbnRlcmFjdGlvbixcbiAgICBwcm9wZXJ0eTogJ3Nob3dIaWdobGlnaHRDb2xvcidcbiAgfSxcbiAgc2NlbmVncmFwaDoge1xuICAgIGRlZmF1bHRWYWx1ZTogbnVsbCxcbiAgICB0eXBlOiAnaW5wdXQnLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnNjZW5lZ3JhcGgnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuc2NlbmVncmFwaCxcbiAgICBwcm9wZXJ0eTogJ3NjZW5lZ3JhcGgnXG4gIH0sXG4gIHNjZW5lZ3JhcGhFbmFibGVkOiB7XG4gICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc2NlbmVncmFwaEVuYWJsZWQnLFxuICAgIGdyb3VwOiBQUk9QRVJUWV9HUk9VUFMuc2NlbmVncmFwaCxcbiAgICBwcm9wZXJ0eTogJ3NjZW5lZ3JhcGhFbmFibGVkJ1xuICB9LFxuICBzY2VuZWdyYXBoQ3VzdG9tTW9kZWxVcmw6IHtcbiAgICBkZWZhdWx0VmFsdWU6ICcnLFxuICAgIHR5cGU6ICdpbnB1dCcsXG4gICAgbGFiZWw6ICdsYXllclZpc0NvbmZpZ3Muc2NlbmVncmFwaEN1c3RvbU1vZGVsVXJsJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnNjZW5lZ3JhcGgsXG4gICAgcHJvcGVydHk6ICdzY2VuZWdyYXBoQ3VzdG9tTW9kZWxVcmwnXG4gIH0sXG4gIHNjZW5lZ3JhcGhDb2xvckVuYWJsZWQ6IHtcbiAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICBsYWJlbDogJ2xheWVyVmlzQ29uZmlncy5zY2VuZWdyYXBoQ29sb3JFbmFibGVkJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnNjZW5lZ3JhcGgsXG4gICAgcHJvcGVydHk6ICdzY2VuZWdyYXBoQ29sb3JFbmFibGVkJ1xuICB9LFxuICBzY2VuZWdyYXBoVXNlVHJhaWxDb2xvcjoge1xuICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnNjZW5lZ3JhcGhVc2VUcmFpbENvbG9yJyxcbiAgICBncm91cDogUFJPUEVSVFlfR1JPVVBTLnNjZW5lZ3JhcGgsXG4gICAgcHJvcGVydHk6ICdzY2VuZWdyYXBoVXNlVHJhaWxDb2xvcidcbiAgfSxcbiAgc2NlbmVncmFwaENvbG9yOiB7XG4gICAgZGVmYXVsdFZhbHVlOiBudWxsLFxuICAgIHR5cGU6ICdjb2xvci1zZWxlY3QnLFxuICAgIGxhYmVsOiAnbGF5ZXJWaXNDb25maWdzLnNjZW5lZ3JhcGhDb2xvcicsXG4gICAgZ3JvdXA6IFBST1BFUlRZX0dST1VQUy5zY2VuZWdyYXBoLFxuICAgIHByb3BlcnR5OiAnc2NlbmVncmFwaENvbG9yJ1xuICB9XG59O1xuXG5leHBvcnQgY29uc3QgTEFZRVJfVEVYVF9DT05GSUdTOiBMYXllclRleHRDb25maWcgPSB7XG4gIGZvbnRTaXplOiB7XG4gICAgdHlwZTogJ251bWJlcicsXG4gICAgcmFuZ2U6IFsxLCAxMDBdLFxuICAgIHZhbHVlMDogMSxcbiAgICBzdGVwOiAxLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICBsYWJlbDogJ0ZvbnQgc2l6ZScsXG4gICAgc2hvd0lucHV0OiB0cnVlXG4gIH0sXG4gIGZvbnRXZWlnaHQ6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICByYW5nZTogWzEwMCwgOTAwXSxcbiAgICB2YWx1ZTA6IDEwMCxcbiAgICBzdGVwOiAxMDAsXG4gICAgaXNSYW5nZWQ6IGZhbHNlLFxuICAgIGxhYmVsOiAnRm9udCB3ZWlnaHQnLFxuICAgIHNob3dJbnB1dDogdHJ1ZVxuICB9LFxuICBvdXRsaW5lV2lkdGg6IHtcbiAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICByYW5nZTogWzAsIDFdLFxuICAgIHZhbHVlMDogMCxcbiAgICBzdGVwOiAwLjAxLFxuICAgIGlzUmFuZ2VkOiBmYWxzZSxcbiAgICBsYWJlbDogJ091dGxpbmUgd2lkdGgnLFxuICAgIHNob3dJbnB1dDogdHJ1ZVxuICB9LFxuICB0ZXh0QW5jaG9yOiB7XG4gICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgb3B0aW9uczogWydzdGFydCcsICdtaWRkbGUnLCAnZW5kJ10sXG4gICAgbXVsdGlTZWxlY3Q6IGZhbHNlLFxuICAgIHNlYXJjaGFibGU6IGZhbHNlXG4gIH0sXG4gIHRleHRBbGlnbm1lbnQ6IHtcbiAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICBvcHRpb25zOiBbJ3RvcCcsICdjZW50ZXInLCAnYm90dG9tJ10sXG4gICAgbXVsdGlTZWxlY3Q6IGZhbHNlLFxuICAgIHNlYXJjaGFibGU6IGZhbHNlXG4gIH1cbn07XG5leHBvcnQgY29uc3QgTEFZRVJfVFlQRVMgPSBrZXlNaXJyb3Ioe1xuICBwb2ludDogbnVsbCxcbiAgYXJjOiBudWxsLFxuICBsaW5lOiBudWxsLFxuICBncmlkOiBudWxsLFxuICBoZXhhZ29uOiBudWxsLFxuICBnZW9qc29uOiBudWxsLFxuICBjbHVzdGVyOiBudWxsLFxuICBpY29uOiBudWxsLFxuICBoZWF0bWFwOiBudWxsLFxuICBoZXhhZ29uSWQ6IG51bGwsXG4gICczRCc6IG51bGwsXG4gIHRyaXA6IG51bGwsXG4gIHMyOiBudWxsLFxuICBhNTogbnVsbCxcbiAgZ2VvaGFzaDogbnVsbCxcbiAgZmxvdzogbnVsbCxcbiAgdmVjdG9yVGlsZTogbnVsbCxcbiAgcmFzdGVyVGlsZTogbnVsbCxcbiAgd21zOiBudWxsLFxuICB0aWxlM2Q6IG51bGwsXG4gIGJpdG1hcDogbnVsbFxufSk7XG5cbmV4cG9ydCBjb25zdCBFRElUT1JfQVZBSUxBQkxFX0xBWUVSUzogc3RyaW5nW10gPSBbXG4gIExBWUVSX1RZUEVTLnBvaW50LFxuICBMQVlFUl9UWVBFUy5pY29uLFxuICBMQVlFUl9UWVBFUy5ncmlkLFxuICBMQVlFUl9UWVBFUy5oZXhhZ29uLFxuICBMQVlFUl9UWVBFUy5jbHVzdGVyLFxuICBMQVlFUl9UWVBFUy5hcmMsXG4gIExBWUVSX1RZUEVTLmxpbmUsXG4gIExBWUVSX1RZUEVTLmhleGFnb25JZCxcbiAgTEFZRVJfVFlQRVMuZ2VvanNvbixcbiAgTEFZRVJfVFlQRVMuaGVhdG1hcFxuXTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUdBLElBQUFBLFVBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUVBLElBQUFDLGdCQUFBLEdBQUFELE9BQUE7QUFhQSxJQUFBRSxjQUFB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