@kepler.gl/constants 3.1.0-alpha.3 → 3.1.0-alpha.4

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.
@@ -258,6 +258,28 @@ var OkabeIto = {
258
258
  };
259
259
  // Bad Data: #DDDDDD
260
260
 
261
+ var FSQBrand = {
262
+ name: 'FSQ Brand',
263
+ type: PALETTE_TYPES.QUA,
264
+ category: CATEGORIES.COLORBLIND,
265
+ colors: ['#3333FF', '#6166EB', '#2ED9C3', '#82E8DB', '#FCCC0A', '#FFDAAF', '#30A5D9', '#97DAF8'],
266
+ colorBlindSafe: true
267
+ };
268
+ var FSQWarmTone = {
269
+ name: 'FSQ Warm Tone',
270
+ type: PALETTE_TYPES.QUA,
271
+ category: CATEGORIES.COLORBLIND,
272
+ colors: ['#C00B05', '#D150A5', '#E98ECA', '#FECE5A', '#FFDDBF', '#FFB4D3', '#EE5D86', '#D8D2D2'],
273
+ colorBlindSafe: true
274
+ };
275
+ var FSQCoolTone = {
276
+ name: 'FSQ Cool Tone',
277
+ type: PALETTE_TYPES.QUA,
278
+ category: CATEGORIES.COLORBLIND,
279
+ colors: ['#11439F', '#297EE8', '#95C6C9', '#FECE5A', '#FFDDBF', '#9FB1B7', '#5281B5', '#B9D0FB'],
280
+ colorBlindSafe: true
281
+ };
282
+
261
283
  /**
262
284
  * Build Categorical color palette
263
285
  */
@@ -413,10 +435,10 @@ function buildPaletteBySchemeGroups(schemeGroups, category) {
413
435
  }
414
436
  var COLORBREWER_PALETTES = buildPaletteBySchemeGroups(COLORBREWER_SCHEME, CATEGORIES.COLORBREWER);
415
437
  var D3_COLOR_PALETTES = buildPaletteBySchemeGroups(D3_COLOR_CHROMATIC_SCHEME, CATEGORIES.D3);
416
- var UBER_PALETTES = [UberVizDiverging, UberVizSequential, UberPool, IceAndFire, GlobalWarming, Sunrise, OceanGreen, PinkWine, PurpleBlueYellow, ViovetOcean, SummerSky, UberVizQualitative, TolBright, TolVibrant, TolMuted, TolMediumContrast, TolLight, OkabeIto].map(function (recipe) {
438
+ var BRANDED_PALETTES = [UberVizDiverging, UberVizSequential, UberPool, IceAndFire, GlobalWarming, Sunrise, OceanGreen, PinkWine, PurpleBlueYellow, ViovetOcean, SummerSky, UberVizQualitative, TolBright, TolVibrant, TolMuted, TolMediumContrast, TolLight, OkabeIto, FSQBrand, FSQWarmTone, FSQCoolTone].map(function (recipe) {
417
439
  return recipe.type === PALETTE_TYPES.QUA ? buildCategoricalPalette(recipe) : buildCustomPalette(recipe);
418
440
  }).filter(Boolean);
419
- var KEPLER_COLOR_PALETTES = exports.KEPLER_COLOR_PALETTES = [].concat((0, _toConsumableArray2["default"])(UBER_PALETTES), (0, _toConsumableArray2["default"])(COLORBREWER_PALETTES), (0, _toConsumableArray2["default"])(D3_COLOR_PALETTES));
441
+ var KEPLER_COLOR_PALETTES = exports.KEPLER_COLOR_PALETTES = [].concat((0, _toConsumableArray2["default"])(BRANDED_PALETTES), (0, _toConsumableArray2["default"])(COLORBREWER_PALETTES), (0, _toConsumableArray2["default"])(D3_COLOR_PALETTES));
420
442
 
421
443
  /**
422
444
  * create color range from palette, with steps and reversed as config
@@ -437,4 +459,4 @@ function colorPaletteToColorRange(colorPalette, colorConfig) {
437
459
  reversed: reversed
438
460
  } : {});
439
461
  }
440
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkM1NjYWxlQ2hyb21hdGljIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2QzQXJyYXkiLCJfY2hyb21hSnMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NvbnNvbGUiLCJfZDNDb2xvciIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIkNBVEVHT1JJRVMiLCJleHBvcnRzIiwiQ09MT1JCUkVXRVIiLCJEMyIsIlVCRVIiLCJDT0xPUkJMSU5EIiwiUEFMRVRURV9UWVBFUyIsIlNFUSIsIlFVQSIsIkRJViIsIkNZQyIsIkNPTE9SQlJFV0VSX1NDSEVNRSIsIkNPTE9SX0JMSU5EX1NBRkVfTUFQIiwiQnJCRyIsIlBpWUciLCJQUkduIiwiUHVPciIsIlJkQnUiLCJSZEd5IiwiUmRZbEJ1IiwiUmRZbEduIiwiU3BlY3RyYWwiLCJBY2NlbnQiLCJEYXJrMiIsIlBhaXJlZCIsIlBhc3RlbDEiLCJQYXN0ZWwyIiwiU2V0MSIsIlNldDIiLCJTZXQzIiwiQmx1ZXMiLCJCdUduIiwiQnVQdSIsIkduQnUiLCJHcmVlbnMiLCJHcmV5cyIsIk9yYW5nZXMiLCJPclJkIiwiUHVCdSIsIlB1QnVHbiIsIlB1UmQiLCJQdXJwbGVzIiwiUmRQdSIsIlJlZHMiLCJZbEduIiwiWWxHbkJ1IiwiWWxPckJyIiwiWWxPclJkIiwiU2luZWJvdyIsIlJhaW5ib3ciLCJUdXJibyIsIlZpcmlkaXMiLCJJbmZlcm5vIiwiTWFnbWEiLCJQbGFzbWEiLCJDaXZpZGlzIiwiV2FybSIsIkNvb2wiLCJDdWJlaGVsaXhEZWZhdWx0IiwiVGFibGVhdTEwIiwiRDNfQ09MT1JfQ0hST01BVElDX1NDSEVNRSIsIkRhdGFWaXpDb2xvcnMiLCJhcXVhIiwidHVtYmxld2VlZCIsIm11bGVfZmF3biIsInRyZWVfcG9wcHkiLCJmbGFtZSIsInNhcHBoaXJlIiwib3JjaGlkIiwiY2hhdGhhbXNfYmx1ZSIsIm1lZF9hcXVhbWFyaW5lIiwiY3JvY29kaWxlIiwiamF2YSIsImNoYWxreSIsImxpZ2h0X3RhdXBlIiwicGVhY2hfb3JhbmdlIiwiYXByaWNvdCIsInBvcnRhZ2UiLCJsaWdodF9vcmNoaWQiLCJibHVlX2dyZWVuIiwiYmVybXVkYSIsImNsb3VkeSIsIlViZXJWaXpEaXZlcmdpbmciLCJuYW1lIiwiY2F0ZWdvcnkiLCJ0eXBlIiwiY29sb3JzIiwiY29sb3JzMiIsImRpdmVyZ2luZyIsImNvcnJlY3RMaWdodG5lc3MiLCJjb2xvckJsaW5kU2FmZSIsIlViZXJWaXpTZXF1ZW50aWFsIiwiVWJlclBvb2wiLCJJY2VBbmRGaXJlIiwiR2xvYmFsV2FybWluZyIsIlN1bnJpc2UiLCJPY2VhbkdyZWVuIiwiUGlua1dpbmUiLCJQdXJwbGVCbHVlWWVsbG93IiwibW9kZSIsIlZpb3ZldE9jZWFuIiwiU3VtbWVyU2t5IiwiVWJlclZpelF1YWxpdGF0aXZlIiwidmFsdWVzIiwiVG9sQnJpZ2h0IiwiVG9sVmlicmFudCIsIlRvbE11dGVkIiwiVG9sTWVkaXVtQ29udHJhc3QiLCJUb2xMaWdodCIsIk9rYWJlSXRvIiwiYnVpbGRDYXRlZ29yaWNhbFBhbGV0dGUiLCJfcmVmIiwiYWxsQ29sb3JzIiwic2NoZW1lIiwiY29uY2F0IiwiQ29uc29sZSIsIndhcm4iLCJtYXhTdGVwIiwibnVtQ29sb3JzIiwic2xpY2UiLCJtYXAiLCJfY29sb3JUb1VwcGVyY2FzZSIsImMiLCJkM0NvbG9yIiwiZm9ybWF0SGV4IiwidG9VcHBlckNhc2UiLCJidWlsZFNlcXVlbnRpYWxQYWxldHRlIiwiX3JlZjIiLCJwcm90b3R5cGUiLCJpbnRlcnBvbGF0b3IiLCJyYW5nZSIsImQiLCJsaW5lYXIiLCJidWlsZEN1c3RvbVBhbGV0dGUiLCJfcmVmMyIsIl9yZWYzJGNvbG9ycyIsIl9yZWYzJGNvcnJlY3RMaWdodG5lcyIsIl9yZWYzJGJlemllciIsImJlemllciIsIl9yZWYzJGRpdmVyZ2luZyIsIl9yZWYzJG1vZGUiLCJwYWxldHRlIiwiZXJyb3IiLCJzY2FsZUxlZnQiLCJjaHJvbWEiLCJzY2FsZSIsInNjYWxlUmlnaHQiLCJzY2FsZUZ1bGwiLCJldmVuIiwibnVtQ29sb3JzTGVmdCIsIk1hdGgiLCJjZWlsIiwibnVtQ29sb3JzUmlnaHQiLCJjb2xvcnNMZWZ0IiwiY29sb3JzUmlnaHQiLCJzdGVwcyIsImJ1aWxkUGFsZXR0ZUJ5U2NoZW1lR3JvdXBzIiwic2NoZW1lR3JvdXBzIiwiZW50cmllcyIsInJlZHVjZSIsImFjY3UiLCJfcmVmNCIsIl9yZWY1IiwiX3NsaWNlZFRvQXJyYXkyIiwicGFsZXR0ZXMiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZ3JvdXAiLCJjb2xvclBhbGV0dGUiLCJDT0xPUkJSRVdFUl9QQUxFVFRFUyIsIkQzX0NPTE9SX1BBTEVUVEVTIiwiVUJFUl9QQUxFVFRFUyIsInJlY2lwZSIsIkJvb2xlYW4iLCJLRVBMRVJfQ09MT1JfUEFMRVRURVMiLCJjb2xvclBhbGV0dGVUb0NvbG9yUmFuZ2UiLCJjb2xvckNvbmZpZyIsInJldmVyc2VkIiwicmV2ZXJzZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xvci1wYWxldHRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgKiBhcyBkM1NjYWxlQ2hyb21hdGljIGZyb20gJ2QzLXNjYWxlLWNocm9tYXRpYyc7XG5pbXBvcnQge3JhbmdlfSBmcm9tICdkMy1hcnJheSc7XG5pbXBvcnQgY2hyb21hIGZyb20gJ2Nocm9tYS1qcyc7XG5pbXBvcnQgQ29uc29sZSBmcm9tICdnbG9iYWwvY29uc29sZSc7XG5pbXBvcnQge2NvbG9yIGFzIGQzQ29sb3J9IGZyb20gJ2QzLWNvbG9yJztcbmltcG9ydCB7SGV4Q29sb3IsIE1pbmlDb2xvclJhbmdlLCBWYWx1ZU9mfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxudHlwZSBHZXRDb2xvcnMgPSAoc3RlcHM6IG51bWJlcikgPT4gSGV4Q29sb3JbXTtcbi8vIGxpbmVhciBpbnRlcnBvbGF0b3JcbnR5cGUgR2V0TGluZWFyID0gKCkgPT4gKG46IG51bWJlcikgPT4gc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBDYXRlZ29yaWNhbFBhbGV0dGUgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogJ3F1YWxpdGF0aXZlJztcbiAgY2F0ZWdvcnk6IFZhbHVlT2Y8dHlwZW9mIENBVEVHT1JJRVM+O1xuICBjb2xvckJsaW5kU2FmZTogYm9vbGVhbjtcblxuICBjb2xvcnM6IEdldENvbG9ycztcbiAgLy8gY2F0ZWdvcmljYWwgcGFsZXR0ZVxuICBtYXhTdGVwOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBTZXF1ZW50aWFsUGFsZXR0ZSA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiAnc2VxdWVudGlhbCcgfCAnZGl2ZXJnaW5nJyB8ICdjeWNsaWNhbCc7XG4gIGNhdGVnb3J5OiBWYWx1ZU9mPHR5cGVvZiBDQVRFR09SSUVTPjtcbiAgY29sb3JCbGluZFNhZmU6IGJvb2xlYW47XG4gIGNvbG9yczogR2V0Q29sb3JzO1xuICAvLyBzZXF1ZW50aWFsIHBhbGV0dGVcbiAgbGluZWFyOiBHZXRMaW5lYXI7XG59O1xuXG5leHBvcnQgdHlwZSBDb2xvclBhbGV0dGUgPSBDYXRlZ29yaWNhbFBhbGV0dGUgfCBTZXF1ZW50aWFsUGFsZXR0ZTtcblxuZXhwb3J0IGNvbnN0IENBVEVHT1JJRVMgPSB7XG4gIENPTE9SQlJFV0VSOiAnQ29sb3JCcmV3ZXInLFxuICBEMzogJ0QzJyxcbiAgVUJFUjogJ1ViZXInLFxuICBDT0xPUkJMSU5EOiAnQ29sb3JCbGluZCdcbn07XG5cbmV4cG9ydCBjb25zdCBQQUxFVFRFX1RZUEVTOiB7XG4gIFNFUTogJ3NlcXVlbnRpYWwnO1xuICBRVUE6ICdxdWFsaXRhdGl2ZSc7XG4gIERJVjogJ2RpdmVyZ2luZyc7XG4gIENZQzogJ2N5Y2xpY2FsJztcbn0gPSB7XG4gIFNFUTogJ3NlcXVlbnRpYWwnLFxuICBRVUE6ICdxdWFsaXRhdGl2ZScsXG4gIERJVjogJ2RpdmVyZ2luZycsXG4gIENZQzogJ2N5Y2xpY2FsJ1xufTtcblxuZXhwb3J0IGNvbnN0IENPTE9SQlJFV0VSX1NDSEVNRSA9IHtcbiAgW1BBTEVUVEVfVFlQRVMuU0VRXTogW1xuICAgICdCdUduJyxcbiAgICAnQnVQdScsXG4gICAgJ0duQnUnLFxuICAgICdPclJkJyxcbiAgICAnUHVCdScsXG4gICAgJ1B1QnVHbicsXG4gICAgJ1B1UmQnLFxuICAgICdSZFB1JyxcbiAgICAnWWxHbicsXG4gICAgJ1lsR25CdScsXG4gICAgJ1lsT3JCcicsXG4gICAgJ1lsT3JSZCcsXG4gICAgJ0JsdWVzJyxcbiAgICAnR3JlZW5zJyxcbiAgICAnR3JleXMnLFxuICAgICdPcmFuZ2VzJyxcbiAgICAnUHVycGxlcycsXG4gICAgJ1JlZHMnXG4gIF0sIC8vIDE4ICsgOSArIDhcbiAgLy8gc2luZ2xlaHVlOiBbJ0JsdWVzJywgJ0dyZWVucycsICdHcmV5cycsICdPcmFuZ2VzJywgJ1B1cnBsZXMnLCAnUmVkcyddLFxuICBbUEFMRVRURV9UWVBFUy5ESVZdOiBbXG4gICAgJ0JyQkcnLFxuICAgICdQaVlHJyxcbiAgICAnUFJHbicsXG4gICAgJ1B1T3InLFxuICAgICdSZEJ1JyxcbiAgICAnUmRHeScsXG4gICAgJ1JkWWxCdScsXG4gICAgJ1JkWWxHbicsXG4gICAgJ1NwZWN0cmFsJ1xuICBdLFxuICBbUEFMRVRURV9UWVBFUy5RVUFdOiBbJ0FjY2VudCcsICdEYXJrMicsICdQYWlyZWQnLCAnUGFzdGVsMScsICdQYXN0ZWwyJywgJ1NldDEnLCAnU2V0MicsICdTZXQzJ11cbn07XG5cbi8vIGh0dHBzOi8vcmRyci5pby9jcmFuL1JDb2xvckJyZXdlci9tYW4vQ29sb3JCcmV3ZXIuaHRtbFxuY29uc3QgQ09MT1JfQkxJTkRfU0FGRV9NQVAgPSB7XG4gIC8vIGNvbG9yYnJld2VyXG4gIEJyQkc6IHRydWUsXG4gIFBpWUc6IHRydWUsXG4gIFBSR246IHRydWUsXG4gIFB1T3I6IHRydWUsXG4gIFJkQnU6IHRydWUsXG4gIFJkR3k6IGZhbHNlLFxuICBSZFlsQnU6IHRydWUsXG4gIFJkWWxHbjogZmFsc2UsXG4gIFNwZWN0cmFsOiBmYWxzZSxcbiAgQWNjZW50OiBmYWxzZSxcbiAgRGFyazI6IHRydWUsXG4gIFBhaXJlZDogdHJ1ZSxcbiAgUGFzdGVsMTogZmFsc2UsXG4gIFBhc3RlbDI6IGZhbHNlLFxuICBTZXQxOiBmYWxzZSxcbiAgU2V0MjogdHJ1ZSxcbiAgU2V0MzogZmFsc2UsXG4gIEJsdWVzOiB0cnVlLFxuICBCdUduOiB0cnVlLFxuICBCdVB1OiB0cnVlLFxuICBHbkJ1OiB0cnVlLFxuICBHcmVlbnM6IHRydWUsXG4gIEdyZXlzOiB0cnVlLFxuICBPcmFuZ2VzOiB0cnVlLFxuICBPclJkOiB0cnVlLFxuICBQdUJ1OiB0cnVlLFxuICBQdUJ1R246IHRydWUsXG4gIFB1UmQ6IHRydWUsXG4gIFB1cnBsZXM6IHRydWUsXG4gIFJkUHU6IHRydWUsXG4gIFJlZHM6IHRydWUsXG4gIFlsR246IHRydWUsXG4gIFlsR25CdTogdHJ1ZSxcbiAgWWxPckJyOiB0cnVlLFxuICBZbE9yUmQ6IHRydWUsXG5cbiAgLy8gZDMgc2NhbGUgY2hyb21hdGljXG4gIFNpbmVib3c6IHRydWUsXG4gIFJhaW5ib3c6IGZhbHNlLFxuICBUdXJibzogdHJ1ZSxcbiAgVmlyaWRpczogdHJ1ZSxcbiAgSW5mZXJubzogdHJ1ZSxcbiAgTWFnbWE6IHRydWUsXG4gIFBsYXNtYTogdHJ1ZSxcbiAgQ2l2aWRpczogdHJ1ZSxcbiAgV2FybTogdHJ1ZSxcbiAgQ29vbDogZmFsc2UsXG4gIEN1YmVoZWxpeERlZmF1bHQ6IHRydWUsXG4gIFRhYmxlYXUxMDogZmFsc2Vcbn07XG5cbmV4cG9ydCBjb25zdCBEM19DT0xPUl9DSFJPTUFUSUNfU0NIRU1FID0ge1xuICBbUEFMRVRURV9UWVBFUy5DWUNdOiBbJ1NpbmVib3cnLCAnUmFpbmJvdyddLFxuICBbUEFMRVRURV9UWVBFUy5TRVFdOiBbXG4gICAgJ1R1cmJvJyxcbiAgICAnVmlyaWRpcycsXG4gICAgJ0luZmVybm8nLFxuICAgICdNYWdtYScsXG4gICAgJ1BsYXNtYScsXG4gICAgJ0NpdmlkaXMnLFxuICAgICdXYXJtJyxcbiAgICAnQ29vbCcsXG4gICAgJ0N1YmVoZWxpeERlZmF1bHQnXG4gIF0sXG4gIFtQQUxFVFRFX1RZUEVTLlFVQV06IFsnVGFibGVhdTEwJ11cbn07XG5cbmV4cG9ydCBjb25zdCBEYXRhVml6Q29sb3JzID0ge1xuICBhcXVhOiAnIzEyOTM5QScsXG4gIHR1bWJsZXdlZWQ6ICcjRERCMjdDJyxcbiAgbXVsZV9mYXduOiAnIzg4NTcyQycsXG4gIHRyZWVfcG9wcHk6ICcjRkY5OTFGJyxcbiAgZmxhbWU6ICcjRjE1QzE3JyxcbiAgc2FwcGhpcmU6ICcjMjIzRjlBJyxcbiAgb3JjaGlkOiAnI0RBNzBCRicsXG4gIGNoYXRoYW1zX2JsdWU6ICcjMTI1Qzc3JyxcbiAgbWVkX2FxdWFtYXJpbmU6ICcjNERDMTlDJyxcbiAgY3JvY29kaWxlOiAnIzc3NkU1NycsXG4gIGphdmE6ICcjMTdCOEJFJyxcbiAgY2hhbGt5OiAnI0Y2RDE4QScsXG4gIGxpZ2h0X3RhdXBlOiAnI0I3ODg1RScsXG4gIHBlYWNoX29yYW5nZTogJyNGRkNCOTknLFxuICBhcHJpY290OiAnI0Y4OTU3MCcsXG4gIHBvcnRhZ2U6ICcjODI5QUUzJyxcbiAgbGlnaHRfb3JjaGlkOiAnI0U3OUZENScsXG4gIGJsdWVfZ3JlZW46ICcjMUU5NkJFJyxcbiAgYmVybXVkYTogJyM4OURBQzEnLFxuICBjbG91ZHk6ICcjQjNBRDlFJ1xufTtcblxuY29uc3QgVWJlclZpekRpdmVyZ2luZyA9IHtcbiAgbmFtZTogJ1ViZXIgVml6IERpdmVyZ2luZycsXG4gIGNhdGVnb3J5OiBDQVRFR09SSUVTLlVCRVIsXG4gIHR5cGU6IFBBTEVUVEVfVFlQRVMuRElWLFxuICBjb2xvcnM6IFsnIzAwOTM5QycsICcjRTZGQUZBJ10sXG4gIGNvbG9yczI6IFsnI0ZFRUVFOCcsICcjQzIyRTAwJ10sXG4gIGRpdmVyZ2luZzogdHJ1ZSxcbiAgY29ycmVjdExpZ2h0bmVzczogZmFsc2UsXG4gIGNvbG9yQmxpbmRTYWZlOiB0cnVlXG59O1xuXG5jb25zdCBVYmVyVml6U2VxdWVudGlhbCA9IHtcbiAgbmFtZTogJ1ViZXIgVml6IFNlcXVlbnRpYWwnLFxuICBjYXRlZ29yeTogQ0FURUdPUklFUy5VQkVSLFxuICB0eXBlOiBQQUxFVFRFX1RZUEVTLlNFUSxcbiAgY29sb3JzOiBbJyMwMDkzOUMnLCAnI0U2RkFGQSddLFxuICBjb2xvckJsaW5kU2FmZTogdHJ1ZVxufTtcblxuY29uc3QgVWJlclBvb2wgPSB7XG4gIG5hbWU6ICdVYmVyUG9vbCcsXG4gIHR5cGU6IFBBTEVUVEVfVFlQRVMuRElWLFxuICBjYXRlZ29yeTogQ0FURUdPUklFUy5VQkVSLFxuICBjb2xvcnM6IFsnIzIyM0Y5QScsICcjQ0YxNzUwJywgJyNGQUUzMDAnXSxcbiAgY29ycmVjdExpZ2h0bmVzczogZmFsc2UsXG4gIGNvbG9yQmxpbmRTYWZlOiB0cnVlXG59O1xuXG5jb25zdCBJY2VBbmRGaXJlID0ge1xuICBuYW1lOiAnSWNlIEFuZCBGaXJlJyxcbiAgdHlwZTogUEFMRVRURV9UWVBFUy5ESVYsXG4gIGNhdGVnb3J5OiBDQVRFR09SSUVTLlVCRVIsXG4gIGNvbG9yczogWycjMDE5OEJEJywgJyNGQUZFQjMnXSxcbiAgY29sb3JzMjogWycjRkVFREIxJywgJyNENTAyNTUnXSxcbiAgZGl2ZXJnaW5nOiB0cnVlLFxuICBjb2xvckJsaW5kU2FmZTogdHJ1ZVxufTtcblxuY29uc3QgR2xvYmFsV2FybWluZyA9IHtcbiAgbmFtZTogJ0dsb2JhbCBXYXJtaW5nJyxcbiAgdHlwZTogUEFMRVRURV9UWVBFUy5TRVEsXG4gIGNhdGVnb3J5OiBDQVRFR09SSUVTLlVCRVIsXG4gIGNvbG9yczogWycjNEMwMDM1JywgJyNBQzFDMTcnLCAnI0ZGQzMwMCddLFxuICBjb2xvckJsaW5kU2FmZTogdHJ1ZVxufTtcblxuY29uc3QgU3VucmlzZSA9IHtcbiAgbmFtZTogJ1N1bnJpc2UnLFxuICB0eXBlOiBQQUxFVFRFX1RZUEVTLlNFUSxcbiAgY2F0ZWdvcnk6IENBVEVHT1JJRVMuVUJFUixcbiAgY29sb3JzOiBbJyMzNTVDN0QnLCAnI0MwNkM4NCcsICcjRjhCMTk1J10sXG4gIGNvbG9yQmxpbmRTYWZlOiB0cnVlXG59O1xuXG5jb25zdCBPY2VhbkdyZWVuID0ge1xuICBuYW1lOiAnT2NlYW4gR3JlZW4nLFxuICB0eXBlOiBQQUxFVFRFX1RZUEVTLlNFUSxcbiAgY2F0ZWdvcnk6IENBVEVHT1JJRVMuVUJFUixcbiAgY29sb3JzOiBbJyMzNzUzNUUnLCAnIzNFQUNBOCcsICcjRTVFRUMxJ10sXG4gIGNvbG9yQmxpbmRTYWZlOiB0cnVlXG59O1xuXG5jb25zdCBQaW5rV2luZSA9IHtcbiAgbmFtZTogJ1BpbmsgV2luZScsXG4gIHR5cGU6IFBBTEVUVEVfVFlQRVMuU0VRLFxuICBjYXRlZ29yeTogQ0FURUdPUklFUy5VQkVSLFxuICBjb2xvcnM6IFsnIzJDMUUzRCcsICcjOTU2NDg1JywgJyNFREQxQ0EnXSxcbiAgY29sb3JCbGluZFNhZmU6IHRydWVcbn07XG5cbmNvbnN0IFB1cnBsZUJsdWVZZWxsb3cgPSB7XG4gIG5hbWU6ICdQdXJwbGUgQmx1ZSBZZWxsb3cnLFxuICB0eXBlOiBQQUxFVFRFX1RZUEVTLlNFUSxcbiAgY2F0ZWdvcnk6IENBVEVHT1JJRVMuVUJFUixcbiAgY29sb3JzOiBbJyMzODNDNjUnLCAnIzQ5ODM4QScsICcjRDZERUJGJ10sXG4gIG1vZGU6ICdoc2wnLFxuICBjb2xvckJsaW5kU2FmZTogdHJ1ZVxufTtcblxuY29uc3QgVmlvdmV0T2NlYW4gPSB7XG4gIG5hbWU6ICdWaW92ZXRPY2VhbicsXG4gIHR5cGU6IFBBTEVUVEVfVFlQRVMuU0VRLFxuICBjYXRlZ29yeTogQ0FURUdPUklFUy5VQkVSLFxuICBjb2xvcnM6IFsnIzc0MDBCOCcsICcjNUU2MENFJywgJyM0RUE4REUnLCAnIzU2Q0ZFMScsICcjNzJFRkREJ10sXG4gIGNvbG9yQmxpbmRTYWZlOiBmYWxzZVxufTtcblxuY29uc3QgU3VtbWVyU2t5ID0ge1xuICBuYW1lOiAnU3VtbWVyU2t5JyxcbiAgdHlwZTogUEFMRVRURV9UWVBFUy5TRVEsXG4gIGNhdGVnb3J5OiBDQVRFR09SSUVTLlVCRVIsXG4gIGNvbG9yczogWycjMTg0RTc3JywgJyMxNjhBQUQnLCAnIzc2Qzg5MycsICcjRDlFRDkyJ10sXG4gIGNvbG9yQmxpbmRTYWZlOiBmYWxzZVxufTtcblxuY29uc3QgVWJlclZpelF1YWxpdGF0aXZlID0ge1xuICBuYW1lOiAnVWJlciBWaXogUXVhbGl0YXRpdmUnLFxuICB0eXBlOiBQQUxFVFRFX1RZUEVTLlFVQSxcbiAgY2F0ZWdvcnk6IENBVEVHT1JJRVMuVUJFUixcbiAgY29sb3JzOiBPYmplY3QudmFsdWVzKERhdGFWaXpDb2xvcnMpLFxuICBjb2xvckJsaW5kU2FmZTogZmFsc2Vcbn07XG5cbi8vIGh0dHBzOi8vcGVyc29uYWwuc3Jvbi5ubC9+cGF1bHQvI3NlYzpxdWFsaXRhdGl2ZVxuLy8gQSBzZXQgb2YgUXVhbGl0YXRpdmUgQ29sb3JzIGRlc2lnbmVkIGJ5IFBhdWwgVG9sIHRoYXQgYXJlIGNvbG9yIGJsaW5kIGZyaWVuZGx5XG5jb25zdCBUb2xCcmlnaHQgPSB7XG4gIG5hbWU6ICdUb2wgQnJpZ2h0JyxcbiAgdHlwZTogUEFMRVRURV9UWVBFUy5RVUEsXG4gIGNhdGVnb3J5OiBDQVRFR09SSUVTLkNPTE9SQkxJTkQsXG4gIGNvbG9yczogWycjNDQ3N0FBJywgJyNFRTY2NzcnLCAnIzIyODgzMycsICcjQ0NCQjQ0JywgJyM2NkNDRUUnLCAnI0FBMzM3NycsICcjQkJCQkJCJ10sXG4gIGNvbG9yQmxpbmRTYWZlOiB0cnVlXG59O1xuLy8gQmFkIERhdGE6ICNCQkJCQkJcblxuY29uc3QgVG9sVmlicmFudCA9IHtcbiAgbmFtZTogJ1RvbCBWaWJyYW50JyxcbiAgdHlwZTogUEFMRVRURV9UWVBFUy5RVUEsXG4gIGNhdGVnb3J5OiBDQVRFR09SSUVTLkNPTE9SQkxJTkQsXG4gIGNvbG9yczogWycjRUU3NzMzJywgJyMwMDc3QkInLCAnIzMzQkJFRScsICcjRUUzMzc3JywgJyNDQzMzMTEnLCAnIzAwOTk4OCcsICcjQkJCQkJCJ10sXG4gIGNvbG9yQmxpbmRTYWZlOiB0cnVlXG59O1xuLy8gQmFkIERhdGE6ICNCQkJCQkJcblxuY29uc3QgVG9sTXV0ZWQgPSB7XG4gIG5hbWU6ICdUb2wgTXV0ZWQnLFxuICB0eXBlOiBQQUxFVFRFX1RZUEVTLlFVQSxcbiAgY2F0ZWdvcnk6IENBVEVHT1JJRVMuQ09MT1JCTElORCxcbiAgY29sb3JzOiBbXG4gICAgJyNDQzY2NzcnLFxuICAgICcjMzMyMjg4JyxcbiAgICAnI0REQ0M3NycsXG4gICAgJyMxMTc3MzMnLFxuICAgICcjODhDQ0VFJyxcbiAgICAnIzg4MjI1NScsXG4gICAgJyM0NEFBOTknLFxuICAgICcjOTk5OTMzJyxcbiAgICAnI0FBNDQ5OSdcbiAgXSxcbiAgY29sb3JCbGluZFNhZmU6IHRydWVcbn07XG4vLyBCYWQgRGF0YTogI0RERERERFxuXG5jb25zdCBUb2xNZWRpdW1Db250cmFzdCA9IHtcbiAgbmFtZTogJ1RvbCBNZWRpdW0gQ29udHJhc3QnLFxuICB0eXBlOiBQQUxFVFRFX1RZUEVTLlFVQSxcbiAgY2F0ZWdvcnk6IENBVEVHT1JJRVMuQ09MT1JCTElORCxcbiAgY29sb3JzOiBbJyM2Njk5Q0MnLCAnIzAwNDQ4OCcsICcjRUVDQzY2JywgJyM5OTQ0NTUnLCAnIzk5NzcwMCcsICcjRUU5OUFBJ10sXG4gIGNvbG9yQmxpbmRTYWZlOiB0cnVlXG59O1xuXG5jb25zdCBUb2xMaWdodCA9IHtcbiAgbmFtZTogJ1RvbCBMaWdodCcsXG4gIHR5cGU6IFBBTEVUVEVfVFlQRVMuUVVBLFxuICBjYXRlZ29yeTogQ0FURUdPUklFUy5DT0xPUkJMSU5ELFxuICBjb2xvcnM6IFsnIzc3QUFERCcsICcjRUU4ODY2JywgJyNFRUREODgnLCAnI0ZGQUFCQicsICcjOTlEREZGJywgJyM0NEJCOTknLCAnI0JCQ0MzMycsICcjQUFBQTAwJ10sXG4gIGNvbG9yQmxpbmRTYWZlOiB0cnVlXG59O1xuXG4vLyBodHRwczovL2pmbHkudW5pLWtvZWxuLmRlL2NvbG9yL1xuY29uc3QgT2thYmVJdG8gPSB7XG4gIG5hbWU6ICdPa2FiZSBJdG8nLFxuICB0eXBlOiBQQUxFVFRFX1RZUEVTLlFVQSxcbiAgY2F0ZWdvcnk6IENBVEVHT1JJRVMuQ09MT1JCTElORCxcbiAgY29sb3JzOiBbJyNFNjlGMDAnLCAnIzU2QjRFOScsICcjMDA5RTczJywgJyNGMEU0NDInLCAnIzAwNzJCMicsICcjRDU1RTAwJywgJyNDQzc5QTcnLCAnIzAwMDAwMCddLFxuICBjb2xvckJsaW5kU2FmZTogdHJ1ZVxufTtcbi8vIEJhZCBEYXRhOiAjREREREREXG5cbi8qKlxuICogQnVpbGQgQ2F0ZWdvcmljYWwgY29sb3IgcGFsZXR0ZVxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRDYXRlZ29yaWNhbFBhbGV0dGUoe1xuICBuYW1lLFxuICBjYXRlZ29yeSxcbiAgY29sb3JzLFxuICBjb2xvckJsaW5kU2FmZVxufToge1xuICBuYW1lOiBzdHJpbmc7XG4gIGNhdGVnb3J5OiBWYWx1ZU9mPHR5cGVvZiBDQVRFR09SSUVTPjtcbiAgY29sb3JzPzogSGV4Q29sb3JbXTtcbiAgY29sb3JCbGluZFNhZmU/OiBib29sZWFuO1xufSk6IENhdGVnb3JpY2FsUGFsZXR0ZSB7XG4gIGxldCBhbGxDb2xvcnM7XG4gIC8vIGZpbmQgZDMgY29sb3Igc2NoZW1lXG4gIGNvbnN0IHNjaGVtZSA9IGQzU2NhbGVDaHJvbWF0aWNbYHNjaGVtZSR7bmFtZX1gXTtcblxuICBpZiAoIXNjaGVtZSAmJiAhY29sb3JzKSB7XG4gICAgQ29uc29sZS53YXJuKGBzY2hlbWUke25hbWV9IGNhbnQgbm90IGJlIGZvdW5kIGluIGQzIHNjYWxlIGNocm9tYXRpYywgbmVlZHMgdG8gcHJvdmlkZSBjb2xvcnNgKTtcbiAgICBhbGxDb2xvcnMgPSBbJyNEREREREQnXTtcbiAgfSBlbHNlIGlmICghc2NoZW1lKSB7XG4gICAgLy8gYnVpbGQgZnJvbSBjb2xvcnNcbiAgICBhbGxDb2xvcnMgPSBjb2xvcnM7XG4gIH0gZWxzZSB7XG4gICAgYWxsQ29sb3JzID0gc2NoZW1lO1xuICB9XG5cbiAgaWYgKCFhbGxDb2xvcnMubGVuZ3RoKSB7XG4gICAgQ29uc29sZS53YXJuKCdOZWVkcyB0byBwcm92aWRlIHZhbGlkIGQzIGNvbG9yIHNjaGVtZSBuYW1lIG9yIGFuIGFycmF5IG9mIGNvbG9ycycpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICAgIGNhdGVnb3J5LFxuICAgIHR5cGU6IFBBTEVUVEVfVFlQRVMuUVVBLFxuICAgIGNvbG9yQmxpbmRTYWZlOiBjb2xvckJsaW5kU2FmZSA/PyBDT0xPUl9CTElORF9TQUZFX01BUFtuYW1lXSxcbiAgICBtYXhTdGVwOiBhbGxDb2xvcnMubGVuZ3RoLFxuICAgIGNvbG9yczogbnVtQ29sb3JzID0+IHtcbiAgICAgIC8vIGlmIG51bUNvbG9ycyA+IG1heFN0ZXBzLCAgd2lsbCByZXR1cm4gYWxsQ29sb3JzXG4gICAgICByZXR1cm4gYWxsQ29sb3JzLnNsaWNlKDAsIG51bUNvbG9ycykubWFwKF9jb2xvclRvVXBwZXJjYXNlKTtcbiAgICB9XG4gIH07XG59XG5cbmZ1bmN0aW9uIF9jb2xvclRvVXBwZXJjYXNlKGMpIHtcbiAgcmV0dXJuIGQzQ29sb3IoYykuZm9ybWF0SGV4KCkudG9VcHBlckNhc2UoKTtcbn1cbi8qKlxuICogQWxsIHNlcXVhbnRpYWwgcGFsZXR0ZSBpcyBiYXNlZCBvbiBwYWxldHRlIGluIGQzLXNjYWxlLWNocm9tYXRpY1xuICogaHR0cHM6Ly9naXRodWIuY29tL2QzL2QzLXNjYWxlLWNocm9tYXRpYy9ibG9iL21haW4vc3JjL2luZGV4LmpzXG4gKi9cbmZ1bmN0aW9uIGJ1aWxkU2VxdWVudGlhbFBhbGV0dGUoe25hbWUsIHR5cGUsIGNhdGVnb3J5fSkge1xuICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChDT0xPUl9CTElORF9TQUZFX01BUCwgbmFtZSkpIHtcbiAgICBDb25zb2xlLndhcm4oYCR7bmFtZX0gZG9lcyBub3QgZXhpc3RzIGluIENPTE9SX0JMSU5EX1NBRkVfTUFQYCk7XG4gIH1cbiAgY29uc3QgaW50ZXJwb2xhdG9yID0gZDNTY2FsZUNocm9tYXRpY1tgaW50ZXJwb2xhdGUke25hbWV9YF07XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICAgIHR5cGUsXG4gICAgY2F0ZWdvcnksXG4gICAgY29sb3JCbGluZFNhZmU6IENPTE9SX0JMSU5EX1NBRkVfTUFQW25hbWVdLFxuICAgIGNvbG9yczogbnVtQ29sb3JzID0+IHtcbiAgICAgIHJldHVybiByYW5nZSgwLCBudW1Db2xvcnMsIDEpXG4gICAgICAgIC5tYXAoZCA9PiBpbnRlcnBvbGF0b3IoZCAvIChudW1Db2xvcnMgLSAxKSkpXG4gICAgICAgIC5tYXAoX2NvbG9yVG9VcHBlcmNhc2UpO1xuICAgIH0sXG4gICAgbGluZWFyOiAoKSA9PiB7XG4gICAgICByZXR1cm4gaW50ZXJwb2xhdG9yO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gYnVpbGRDdXN0b21QYWxldHRlKHtcbiAgY29sb3JzLFxuICBjb2xvcnMyID0gW10sXG4gIGNvcnJlY3RMaWdodG5lc3MgPSB0cnVlLFxuICBiZXppZXIgPSBmYWxzZSxcbiAgZGl2ZXJnaW5nID0gZmFsc2UsXG4gIG1vZGUgPSAnbGNoJyxcbiAgbmFtZSxcbiAgdHlwZSxcbiAgY2F0ZWdvcnksXG4gIGNvbG9yQmxpbmRTYWZlXG59OiB7XG4gIGNvbG9yczogSGV4Q29sb3JbXTtcbiAgY29sb3JzMj86IEhleENvbG9yW107XG4gIGNvcnJlY3RMaWdodG5lc3M/OiBib29sZWFuO1xuICBiZXppZXI/OiBib29sZWFuO1xuICBkaXZlcmdpbmc/OiBib29sZWFuO1xuICBtb2RlPzogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHR5cGU6IFNlcXVlbnRpYWxQYWxldHRlWyd0eXBlJ107XG4gIGNhdGVnb3J5OiBWYWx1ZU9mPHR5cGVvZiBDQVRFR09SSUVTPjtcbiAgY29sb3JCbGluZFNhZmU6IGJvb2xlYW47XG59KTogU2VxdWVudGlhbFBhbGV0dGUgfCB1bmRlZmluZWQge1xuICBjb25zdCBwYWxldHRlOiBTZXF1ZW50aWFsUGFsZXR0ZSA9IHtcbiAgICBuYW1lLFxuICAgIHR5cGUsXG4gICAgY2F0ZWdvcnksXG4gICAgY29sb3JCbGluZFNhZmUsXG4gICAgY29sb3JzOiAoKSA9PiBbXSxcbiAgICBsaW5lYXI6ICgpID0+ICgpID0+ICcnXG4gIH07XG5cbiAgaWYgKCFjb2xvcnMubGVuZ3RoKSB7XG4gICAgQ29uc29sZS5lcnJvcignY29sb3JzIGhhcyB0byBiZSBhbiBhcnJheSBvZiBjb2xvcnMnKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCBzY2FsZUxlZnQgPSBjaHJvbWFcbiAgICAuc2NhbGUoYmV6aWVyICYmIGNvbG9ycy5sZW5ndGggPiAxID8gY2hyb21hLmJlemllcihjb2xvcnMpIDogY29sb3JzKVxuICAgIC5tb2RlKG1vZGUpXG4gICAgLmNvcnJlY3RMaWdodG5lc3MoY29ycmVjdExpZ2h0bmVzcyk7XG4gIGxldCBzY2FsZVJpZ2h0O1xuICBsZXQgc2NhbGVGdWxsO1xuICBpZiAoZGl2ZXJnaW5nKSB7XG4gICAgaWYgKCFjb2xvcnMubGVuZ3RoKSB7XG4gICAgICBDb25zb2xlLmVycm9yKCdjb2xvcnMyIGhhcyB0byBiZSBhbiBhcnJheSBvZiBjb2xvcnMgd2hlbiBkaXZlcmdpbmcgPSB0cnVlJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHNjYWxlUmlnaHQgPSBjaHJvbWFcbiAgICAgIC5zY2FsZShiZXppZXIgJiYgY29sb3JzMi5sZW5ndGggPiAxID8gY2hyb21hLmJlemllcihjb2xvcnMyKSA6IGNvbG9yczIpXG4gICAgICAubW9kZShtb2RlKVxuICAgICAgLmNvcnJlY3RMaWdodG5lc3MoY29ycmVjdExpZ2h0bmVzcyk7XG5cbiAgICBzY2FsZUZ1bGwgPSBjaHJvbWFcbiAgICAgIC5zY2FsZShiZXppZXIgPyBjaHJvbWEuYmV6aWVyKGNvbG9ycy5jb25jYXQoY29sb3JzMikpIDogY29sb3JzLmNvbmNhdChjb2xvcnMyKSlcbiAgICAgIC5tb2RlKG1vZGUpXG4gICAgICAuY29ycmVjdExpZ2h0bmVzcyhjb3JyZWN0TGlnaHRuZXNzKTtcbiAgfVxuXG4gIC8vIHJldHVybiBudW1Db2xvcnMgPT4gKHNjYWxlTGVmdCA/IHN0ZXBzTGVmdC5jb2xvcnMobnVtQ29sb3JzKSA6IFtdKTtcblxuICAvLyBnaXZlbiBudW1iZXIgb2YgY29sb3JzIHJldHVybiBjb2xvciBzdGVwc1xuICBwYWxldHRlLmNvbG9ycyA9IG51bUNvbG9ycyA9PiB7XG4gICAgaWYgKGRpdmVyZ2luZykge1xuICAgICAgY29uc3QgZXZlbiA9IG51bUNvbG9ycyAlIDIgPT09IDA7XG5cbiAgICAgIGNvbnN0IG51bUNvbG9yc0xlZnQgPSBNYXRoLmNlaWwobnVtQ29sb3JzIC8gMikgKyAoZXZlbiA/IDEgOiAwKTtcbiAgICAgIGNvbnN0IG51bUNvbG9yc1JpZ2h0ID0gTWF0aC5jZWlsKG51bUNvbG9ycyAvIDIpICsgKGV2ZW4gPyAxIDogMCk7XG5cbiAgICAgIGNvbnN0IGNvbG9yc0xlZnQgPSBzY2FsZUxlZnQgPyBzY2FsZUxlZnQuY29sb3JzKG51bUNvbG9yc0xlZnQpIDogW107XG4gICAgICBjb25zdCBjb2xvcnNSaWdodCA9IHNjYWxlUmlnaHQgPyBzY2FsZVJpZ2h0LmNvbG9ycyhudW1Db2xvcnNSaWdodCkgOiBbXTtcbiAgICAgIGNvbnN0IHN0ZXBzID0gKGV2ZW4gPyBjb2xvcnNMZWZ0LnNsaWNlKDAsIGNvbG9yc0xlZnQubGVuZ3RoIC0gMSkgOiBjb2xvcnNMZWZ0KVxuICAgICAgICAuY29uY2F0KGNvbG9yc1JpZ2h0LnNsaWNlKDEpKVxuICAgICAgICAubWFwKF9jb2xvclRvVXBwZXJjYXNlKTtcblxuICAgICAgcmV0dXJuIHN0ZXBzO1xuICAgIH1cblxuICAgIHJldHVybiBzY2FsZUxlZnQgPyBzY2FsZUxlZnQuY29sb3JzKG51bUNvbG9ycykubWFwKF9jb2xvclRvVXBwZXJjYXNlKSA6IFtdO1xuICB9O1xuXG4gIHBhbGV0dGUubGluZWFyID0gKCkgPT4ge1xuICAgIHJldHVybiBkaXZlcmdpbmcgPyBzY2FsZUZ1bGwgOiBzY2FsZUxlZnQ7XG4gIH07XG5cbiAgcmV0dXJuIHBhbGV0dGU7XG59XG5cbmZ1bmN0aW9uIGJ1aWxkUGFsZXR0ZUJ5U2NoZW1lR3JvdXBzKFxuICBzY2hlbWVHcm91cHM6IHR5cGVvZiBDT0xPUkJSRVdFUl9TQ0hFTUUgfCB0eXBlb2YgRDNfQ09MT1JfQ0hST01BVElDX1NDSEVNRSxcbiAgY2F0ZWdvcnk6IFZhbHVlT2Y8dHlwZW9mIENBVEVHT1JJRVM+XG4pOiBDb2xvclBhbGV0dGVbXSB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhzY2hlbWVHcm91cHMpLnJlZHVjZSgoYWNjdSwgW3R5cGUsIHBhbGV0dGVzXSkgPT4ge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5hY2N1LFxuICAgICAgLi4ucGFsZXR0ZXMucmVkdWNlKChncm91cCwgbmFtZSkgPT4ge1xuICAgICAgICBjb25zdCBjb2xvclBhbGV0dGUgPVxuICAgICAgICAgIHR5cGUgPT09IFBBTEVUVEVfVFlQRVMuUVVBXG4gICAgICAgICAgICA/IGJ1aWxkQ2F0ZWdvcmljYWxQYWxldHRlKHtuYW1lLCBjYXRlZ29yeX0pXG4gICAgICAgICAgICA6IC8vIEB0cy1pZ25vcmUganNkb2MgY2FudCBmaWd1cmUgb3V0IHR5cGUgb2YgJ3R5cGUnXG4gICAgICAgICAgICAgIGJ1aWxkU2VxdWVudGlhbFBhbGV0dGUoe25hbWUsIHR5cGUsIGNhdGVnb3J5fSk7XG4gICAgICAgIC8vIEB0cy1pZ25vcmUgdHlwZSBpcyBub3QgYXNzaWduYWJsZSB0byBuZXZlcltdXG4gICAgICAgIGdyb3VwLnB1c2goY29sb3JQYWxldHRlKTtcbiAgICAgICAgcmV0dXJuIGdyb3VwO1xuICAgICAgfSwgW10pXG4gICAgXTtcbiAgfSwgW10pO1xufVxuXG5jb25zdCBDT0xPUkJSRVdFUl9QQUxFVFRFUyA9IGJ1aWxkUGFsZXR0ZUJ5U2NoZW1lR3JvdXBzKENPTE9SQlJFV0VSX1NDSEVNRSwgQ0FURUdPUklFUy5DT0xPUkJSRVdFUik7XG5jb25zdCBEM19DT0xPUl9QQUxFVFRFUyA9IGJ1aWxkUGFsZXR0ZUJ5U2NoZW1lR3JvdXBzKEQzX0NPTE9SX0NIUk9NQVRJQ19TQ0hFTUUsIENBVEVHT1JJRVMuRDMpO1xuY29uc3QgVUJFUl9QQUxFVFRFUzogQ29sb3JQYWxldHRlW10gPSBbXG4gIFViZXJWaXpEaXZlcmdpbmcsXG4gIFViZXJWaXpTZXF1ZW50aWFsLFxuICBVYmVyUG9vbCxcbiAgSWNlQW5kRmlyZSxcbiAgR2xvYmFsV2FybWluZyxcbiAgU3VucmlzZSxcbiAgT2NlYW5HcmVlbixcbiAgUGlua1dpbmUsXG4gIFB1cnBsZUJsdWVZZWxsb3csXG4gIFZpb3ZldE9jZWFuLFxuICBTdW1tZXJTa3ksXG4gIFViZXJWaXpRdWFsaXRhdGl2ZSxcbiAgVG9sQnJpZ2h0LFxuICBUb2xWaWJyYW50LFxuICBUb2xNdXRlZCxcbiAgVG9sTWVkaXVtQ29udHJhc3QsXG4gIFRvbExpZ2h0LFxuICBPa2FiZUl0b1xuXVxuICAubWFwKHJlY2lwZSA9PlxuICAgIHJlY2lwZS50eXBlID09PSBQQUxFVFRFX1RZUEVTLlFVQSA/IGJ1aWxkQ2F0ZWdvcmljYWxQYWxldHRlKHJlY2lwZSkgOiBidWlsZEN1c3RvbVBhbGV0dGUocmVjaXBlKVxuICApXG4gIC5maWx0ZXIoQm9vbGVhbikgYXMgQ29sb3JQYWxldHRlW107XG5cbmV4cG9ydCBjb25zdCBLRVBMRVJfQ09MT1JfUEFMRVRURVM6IENvbG9yUGFsZXR0ZVtdID0gW1xuICAuLi5VQkVSX1BBTEVUVEVTLFxuICAuLi5DT0xPUkJSRVdFUl9QQUxFVFRFUyxcbiAgLi4uRDNfQ09MT1JfUEFMRVRURVNcbl07XG5cbi8qKlxuICogY3JlYXRlIGNvbG9yIHJhbmdlIGZyb20gcGFsZXR0ZSwgd2l0aCBzdGVwcyBhbmQgcmV2ZXJzZWQgYXMgY29uZmlnXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2xvclBhbGV0dGVUb0NvbG9yUmFuZ2UoXG4gIGNvbG9yUGFsZXR0ZTogQ29sb3JQYWxldHRlLFxuICBjb2xvckNvbmZpZzoge1xuICAgIHJldmVyc2VkOiBib29sZWFuO1xuICAgIHN0ZXBzOiBudW1iZXI7XG4gIH1cbik6IE1pbmlDb2xvclJhbmdlIHtcbiAgY29uc3Qge3N0ZXBzLCByZXZlcnNlZH0gPSBjb2xvckNvbmZpZztcbiAgY29uc3QgY29sb3JzID0gY29sb3JQYWxldHRlLmNvbG9ycyhzdGVwcykuc2xpY2UoKTtcbiAgaWYgKHJldmVyc2VkKSB7XG4gICAgY29sb3JzLnJldmVyc2UoKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgbmFtZTogY29sb3JQYWxldHRlLm5hbWUsXG4gICAgdHlwZTogY29sb3JQYWxldHRlLnR5cGUsXG4gICAgY2F0ZWdvcnk6IGNvbG9yUGFsZXR0ZS5jYXRlZ29yeSxcbiAgICBjb2xvcnMsXG4gICAgLi4uKHJldmVyc2VkID8ge3JldmVyc2VkfSA6IHt9KVxuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsZ0JBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNB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QU1JLG9CQUFvQixHQUFHO0VBQzNCO0VBQ0FDLElBQUksRUFBRSxJQUFJO0VBQ1ZDLElBQUksRUFBRSxJQUFJO0VBQ1ZDLElBQUksRUFBRSxJQUFJO0VBQ1ZDLElBQUksRUFBRSxJQUFJO0VBQ1ZDLElBQUksRUFBRSxJQUFJO0VBQ1ZDLElBQUksRUFBRSxLQUFLO0VBQ1hDLE1BQU0sRUFBRSxJQUFJO0VBQ1pDLE1BQU0sRUFBRSxLQUFLO0VBQ2JDLFFBQVEsRUFBRSxLQUFLO0VBQ2ZDLE1BQU0sRUFBRSxLQUFLO0VBQ2JDLEtBQUssRUFBRSxJQUFJO0VBQ1hDLE1BQU0sRUFBRSxJQUFJO0VBQ1pDLE9BQU8sRUFBRSxLQUFLO0VBQ2RDLE9BQU8sRUFBRSxLQUFLO0VBQ2RDLElBQUksRUFBRSxLQUFLO0VBQ1hDLElBQUksRUFBRSxJQUFJO0VBQ1ZDLElBQUksRUFBRSxLQUFLO0VBQ1hDLEtBQUssRUFBRSxJQUFJO0VBQ1hDLElBQUksRUFBRSxJQUFJO0VBQ1ZDLElBQUksRUFBRSxJQUFJO0VBQ1ZDLElBQUksRUFBRSxJQUFJO0VBQ1ZDLE1BQU0sRUFBRSxJQUFJO0VBQ1pDLEtBQUssRUFBRSxJQUFJO0VBQ1hDLE9BQU8sRUFBRSxJQUFJO0VBQ2JDLElBQUksRUFBRSxJQUFJO0VBQ1ZDLElBQUksRUFBRSxJQUFJO0VBQ1ZDLE1BQU0sRUFBRSxJQUFJO0VBQ1pDLElBQUksRUFBRSxJQUFJO0VBQ1ZDLE9BQU8sRUFBRSxJQUFJO0VBQ2JDLElBQUksRUFBRSxJQUFJO0VBQ1ZDLElBQUksRUFBRSxJQUFJO0VBQ1ZDLElBQUksRUFBRSxJQUFJO0VBQ1ZDLE1BQU0sRUFBRSxJQUFJO0VBQ1pDLE1BQU0sRUFBRSxJQUFJO0VBQ1pDLE1BQU0sRUFBRSxJQUFJO0VBRVo7RUFDQUMsT0FBTyxFQUFFLElBQUk7RUFDYkMsT0FBTyxFQUFFLEtBQUs7RUFDZEMsS0FBSyxFQUFFLElBQUk7RUFDWEMsT0FBTyxFQUFFLElBQUk7RUFDYkMsT0FBTyxFQUFFLElBQUk7RUFDYkMsS0FBSyxFQUFFLElBQUk7RUFDWEMsTUFBTSxF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
462
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkM1NjYWxlQ2hyb21hdGljIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX2QzQXJyYXkiLCJfY2hyb21hSnMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NvbnNvbGUiLCJfZDNDb2xvciIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIkNBVEVHT1JJRVMiLCJleHBvcnRzIiwiQ09MT1JCUkVXRVIiLCJEMyIsIlVCRVIiLCJDT0xPUkJMSU5EIiwiUEFMRVRURV9UWVBFUyIsIlNFUSIsIlFVQSIsIkRJViIsIkNZQyIsIkNPTE9SQlJFV0VSX1NDSEVNRSIsIkNPTE9SX0JMSU5EX1NBRkVfTUFQIiwiQnJCRyIsIlBpWUciLCJQUkduIiwiUHVPciIsIlJkQnUiLCJSZEd5IiwiUmRZbEJ1IiwiUmRZbEduIiwiU3BlY3RyYWwiLCJBY2NlbnQiLCJEYXJrMiIsIlBhaXJlZCIsIlBhc3RlbDEiLCJQYXN0ZWwyIiwiU2V0MSIsIlNldDIiLCJTZXQzIiwiQmx1ZXMiLCJCdUduIiwiQnVQdSIsIkduQnUiLCJHcmVlbnMiLCJHcmV5cyIsIk9yYW5nZXMiLCJPclJkIiwiUHVCdSIsIlB1QnVHbiIsIlB1UmQiLCJQdXJwbGVzIiwiUmRQdSIsIlJlZHMiLCJZbEduIiwiWWxHbkJ1IiwiWWxPckJyIiwiWWxPclJkIiwiU2luZWJvdyIsIlJhaW5ib3ciLCJUdXJibyIsIlZpcmlkaXMiLCJJbmZlcm5vIiwiTWFnbWEiLCJQbGFzbWEiLCJDaXZpZGlzIiwiV2FybSIsIkNvb2wiLCJDdWJlaGVsaXhEZWZhdWx0IiwiVGFibGVhdTEwIiwiRDNfQ09MT1JfQ0hST01BVElDX1NDSEVNRSIsIkRhdGFWaXpDb2xvcnMiLCJhcXVhIiwidHVtYmxld2VlZCIsIm11bGVfZmF3biIsInRyZWVfcG9wcHkiLCJmbGFtZSIsInNhcHBoaXJlIiwib3JjaGlkIiwiY2hhdGhhbXNfYmx1ZSIsIm1lZF9hcXVhbWFyaW5lIiwiY3JvY29kaWxlIiwiamF2YSIsImNoYWxreSIsImxpZ2h0X3RhdXBlIiwicGVhY2hfb3JhbmdlIiwiYXByaWNvdCIsInBvcnRhZ2UiLCJsaWdodF9vcmNoaWQiLCJibHVlX2dyZWVuIiwiYmVybXVkYSIsImNsb3VkeSIsIlViZXJWaXpEaXZlcmdpbmciLCJuYW1lIiwiY2F0ZWdvcnkiLCJ0eXBlIiwiY29sb3JzIiwiY29sb3JzMiIsImRpdmVyZ2luZyIsImNvcnJlY3RMaWdodG5lc3MiLCJjb2xvckJsaW5kU2FmZSIsIlViZXJWaXpTZXF1ZW50aWFsIiwiVWJlclBvb2wiLCJJY2VBbmRGaXJlIiwiR2xvYmFsV2FybWluZyIsIlN1bnJpc2UiLCJPY2VhbkdyZWVuIiwiUGlua1dpbmUiLCJQdXJwbGVCbHVlWWVsbG93IiwibW9kZSIsIlZpb3ZldE9jZWFuIiwiU3VtbWVyU2t5IiwiVWJlclZpelF1YWxpdGF0aXZlIiwidmFsdWVzIiwiVG9sQnJpZ2h0IiwiVG9sVmlicmFudCIsIlRvbE11dGVkIiwiVG9sTWVkaXVtQ29udHJhc3QiLCJUb2xMaWdodCIsIk9rYWJlSXRvIiwiRlNRQnJhbmQiLCJGU1FXYXJtVG9uZSIsIkZTUUNvb2xUb25lIiwiYnVpbGRDYXRlZ29yaWNhbFBhbGV0dGUiLCJfcmVmIiwiYWxsQ29sb3JzIiwic2NoZW1lIiwiY29uY2F0IiwiQ29uc29sZSIsIndhcm4iLCJtYXhTdGVwIiwibnVtQ29sb3JzIiwic2xpY2UiLCJtYXAiLCJfY29sb3JUb1VwcGVyY2FzZSIsImMiLCJkM0NvbG9yIiwiZm9ybWF0SGV4IiwidG9VcHBlckNhc2UiLCJidWlsZFNlcXVlbnRpYWxQYWxldHRlIiwiX3JlZjIiLCJwcm90b3R5cGUiLCJpbnRlcnBvbGF0b3IiLCJyYW5nZSIsImQiLCJsaW5lYXIiLCJidWlsZEN1c3RvbVBhbGV0dGUiLCJfcmVmMyIsIl9yZWYzJGNvbG9ycyIsIl9yZWYzJGNvcnJlY3RMaWdodG5lcyIsIl9yZWYzJGJlemllciIsImJlemllciIsIl9yZWYzJGRpdmVyZ2luZyIsIl9yZWYzJG1vZGUiLCJwYWxldHRlIiwiZXJyb3IiLCJzY2FsZUxlZnQiLCJjaHJvbWEiLCJzY2FsZSIsInNjYWxlUmlnaHQiLCJzY2FsZUZ1bGwiLCJldmVuIiwibnVtQ29sb3JzTGVmdCIsIk1hdGgiLCJjZWlsIiwibnVtQ29sb3JzUmlnaHQiLCJjb2xvcnNMZWZ0IiwiY29sb3JzUmlnaHQiLCJzdGVwcyIsImJ1aWxkUGFsZXR0ZUJ5U2NoZW1lR3JvdXBzIiwic2NoZW1lR3JvdXBzIiwiZW50cmllcyIsInJlZHVjZSIsImFjY3UiLCJfcmVmNCIsIl9yZWY1IiwiX3NsaWNlZFRvQXJyYXkyIiwicGFsZXR0ZXMiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwiZ3JvdXAiLCJjb2xvclBhbGV0dGUiLCJDT0xPUkJSRVdFUl9QQUxFVFRFUyIsIkQzX0NPTE9SX1BBTEVUVEVTIiwiQlJBTkRFRF9QQUxFVFRFUyIsInJlY2lwZSIsIkJvb2xlYW4iLCJLRVBMRVJfQ09MT1JfUEFMRVRURVMiLCJjb2xvclBhbGV0dGVUb0NvbG9yUmFuZ2UiLCJjb2xvckNvbmZpZyIsInJldmVyc2VkIiwicmV2ZXJzZSJdLCJzb3VyY2VzIjpbIi4uL3NyYy9jb2xvci1wYWxldHRlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgKiBhcyBkM1NjYWxlQ2hyb21hdGljIGZyb20gJ2QzLXNjYWxlLWNocm9tYXRpYyc7XG5pbXBvcnQge3JhbmdlfSBmcm9tICdkMy1hcnJheSc7XG5pbXBvcnQgY2hyb21hIGZyb20gJ2Nocm9tYS1qcyc7XG5pbXBvcnQgQ29uc29sZSBmcm9tICdnbG9iYWwvY29uc29sZSc7XG5pbXBvcnQge2NvbG9yIGFzIGQzQ29sb3J9IGZyb20gJ2QzLWNvbG9yJztcbmltcG9ydCB7SGV4Q29sb3IsIE1pbmlDb2xvclJhbmdlLCBWYWx1ZU9mfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxudHlwZSBHZXRDb2xvcnMgPSAoc3RlcHM6IG51bWJlcikgPT4gSGV4Q29sb3JbXTtcbi8vIGxpbmVhciBpbnRlcnBvbGF0b3JcbnR5cGUgR2V0TGluZWFyID0gKCkgPT4gKG46IG51bWJlcikgPT4gc3RyaW5nO1xuXG5leHBvcnQgdHlwZSBDYXRlZ29yaWNhbFBhbGV0dGUgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogJ3F1YWxpdGF0aXZlJztcbiAgY2F0ZWdvcnk6IFZhbHVlT2Y8dHlwZW9mIENBVEVHT1JJRVM+O1xuICBjb2xvckJsaW5kU2FmZTogYm9vbGVhbjtcblxuICBjb2xvcnM6IEdldENvbG9ycztcbiAgLy8gY2F0ZWdvcmljYWwgcGFsZXR0ZVxuICBtYXhTdGVwOiBudW1iZXI7XG59O1xuXG5leHBvcnQgdHlwZSBTZXF1ZW50aWFsUGFsZXR0ZSA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICB0eXBlOiAnc2VxdWVudGlhbCcgfCAnZGl2ZXJnaW5nJyB8ICdjeWNsaWNhbCc7XG4gIGNhdGVnb3J5OiBWYWx1ZU9mPHR5cGVvZiBDQVRFR09SSUVTPjtcbiAgY29sb3JCbGluZFNhZmU6IGJvb2xlYW47XG4gIGNvbG9yczogR2V0Q29sb3JzO1xuICAvLyBzZXF1ZW50aWFsIHBhbGV0dGVcbiAgbGluZWFyOiBHZXRMaW5lYXI7XG59O1xuXG5leHBvcnQgdHlwZSBDb2xvclBhbGV0dGUgPSBDYXRlZ29yaWNhbFBhbGV0dGUgfCBTZXF1ZW50aWFsUGFsZXR0ZTtcblxuZXhwb3J0IGNvbnN0IENBVEVHT1JJRVMgPSB7XG4gIENPTE9SQlJFV0VSOiAnQ29sb3JCcmV3ZXInLFxuICBEMzogJ0QzJyxcbiAgVUJFUjogJ1ViZXInLFxuICBDT0xPUkJMSU5EOiAnQ29sb3JCbGluZCdcbn07XG5cbmV4cG9ydCBjb25zdCBQQUxFVFRFX1RZUEVTOiB7XG4gIFNFUTogJ3NlcXVlbnRpYWwnO1xuICBRVUE6ICdxdWFsaXRhdGl2ZSc7XG4gIERJVjogJ2RpdmVyZ2luZyc7XG4gIENZQzogJ2N5Y2xpY2FsJztcbn0gPSB7XG4gIFNFUTogJ3NlcXVlbnRpYWwnLFxuICBRVUE6ICdxdWFsaXRhdGl2ZScsXG4gIERJVjogJ2RpdmVyZ2luZycsXG4gIENZQzogJ2N5Y2xpY2FsJ1xufTtcblxuZXhwb3J0IGNvbnN0IENPTE9SQlJFV0VSX1NDSEVNRSA9IHtcbiAgW1BBTEVUVEVfVFlQRVMuU0VRXTogW1xuICAgICdCdUduJyxcbiAgICAnQnVQdScsXG4gICAgJ0duQnUnLFxuICAgICdPclJkJyxcbiAgICAnUHVCdScsXG4gICAgJ1B1QnVHbicsXG4gICAgJ1B1UmQnLFxuICAgICdSZFB1JyxcbiAgICAnWWxHbicsXG4gICAgJ1lsR25CdScsXG4gICAgJ1lsT3JCcicsXG4gICAgJ1lsT3JSZCcsXG4gICAgJ0JsdWVzJyxcbiAgICAnR3JlZW5zJyxcbiAgICAnR3JleXMnLFxuICAgICdPcmFuZ2VzJyxcbiAgICAnUHVycGxlcycsXG4gICAgJ1JlZHMnXG4gIF0sIC8vIDE4ICsgOSArIDhcbiAgLy8gc2luZ2xlaHVlOiBbJ0JsdWVzJywgJ0dyZWVucycsICdHcmV5cycsICdPcmFuZ2VzJywgJ1B1cnBsZXMnLCAnUmVkcyddLFxuICBbUEFMRVRURV9UWVBFUy5ESVZdOiBbXG4gICAgJ0JyQkcnLFxuICAgICdQaVlHJyxcbiAgICAnUFJHbicsXG4gICAgJ1B1T3InLFxuICAgICdSZEJ1JyxcbiAgICAnUmRHeScsXG4gICAgJ1JkWWxCdScsXG4gICAgJ1JkWWxHbicsXG4gICAgJ1NwZWN0cmFsJ1xuICBdLFxuICBbUEFMRVRURV9UWVBFUy5RVUFdOiBbJ0FjY2VudCcsICdEYXJrMicsICdQYWlyZWQnLCAnUGFzdGVsMScsICdQYXN0ZWwyJywgJ1NldDEnLCAnU2V0MicsICdTZXQzJ11cbn07XG5cbi8vIGh0dHBzOi8vcmRyci5pby9jcmFuL1JDb2xvckJyZXdlci9tYW4vQ29sb3JCcmV3ZXIuaHRtbFxuY29uc3QgQ09MT1JfQkxJTkRfU0FGRV9NQVAgPSB7XG4gIC8vIGNvbG9yYnJld2VyXG4gIEJyQkc6IHRydWUsXG4gIFBpWUc6IHRydWUsXG4gIFBSR246IHRydWUsXG4gIFB1T3I6IHRydWUsXG4gIFJkQnU6IHRydWUsXG4gIFJkR3k6IGZhbHNlLFxuICBSZFlsQnU6IHRydWUsXG4gIFJkWWxHbjogZmFsc2UsXG4gIFNwZWN0cmFsOiBmYWxzZSxcbiAgQWNjZW50OiBmYWxzZSxcbiAgRGFyazI6IHRydWUsXG4gIFBhaXJlZDogdHJ1ZSxcbiAgUGFzdGVsMTogZmFsc2UsXG4gIFBhc3RlbDI6IGZhbHNlLFxuICBTZXQxOiBmYWxzZSxcbiAgU2V0MjogdHJ1ZSxcbiAgU2V0MzogZmFsc2UsXG4gIEJsdWVzOiB0cnVlLFxuICBCdUduOiB0cnVlLFxuICBCdVB1OiB0cnVlLFxuICBHbkJ1OiB0cnVlLFxuICBHcmVlbnM6IHRydWUsXG4gIEdyZXlzOiB0cnVlLFxuICBPcmFuZ2VzOiB0cnVlLFxuICBPclJkOiB0cnVlLFxuICBQdUJ1OiB0cnVlLFxuICBQdUJ1R246IHRydWUsXG4gIFB1UmQ6IHRydWUsXG4gIFB1cnBsZXM6IHRydWUsXG4gIFJkUHU6IHRydWUsXG4gIFJlZHM6IHRydWUsXG4gIFlsR246IHRydWUsXG4gIFlsR25CdTogdHJ1ZSxcbiAgWWxPckJyOiB0cnVlLFxuICBZbE9yUmQ6IHRydWUsXG5cbiAgLy8gZDMgc2NhbGUgY2hyb21hdGljXG4gIFNpbmVib3c6IHRydWUsXG4gIFJhaW5ib3c6IGZhbHNlLFxuICBUdXJibzogdHJ1ZSxcbiAgVmlyaWRpczogdHJ1ZSxcbiAgSW5mZXJubzogdHJ1ZSxcbiAgTWFnbWE6IHRydWUsXG4gIFBsYXNtYTogdHJ1ZSxcbiAgQ2l2aWRpczogdHJ1ZSxcbiAgV2FybTogdHJ1ZSxcbiAgQ29vbDogZmFsc2UsXG4gIEN1YmVoZWxpeERlZmF1bHQ6IHRydWUsXG4gIFRhYmxlYXUxMDogZmFsc2Vcbn07XG5cbmV4cG9ydCBjb25zdCBEM19DT0xPUl9DSFJPTUFUSUNfU0NIRU1FID0ge1xuICBbUEFMRVRURV9UWVBFUy5DWUNdOiBbJ1NpbmVib3cnLCAnUmFpbmJvdyddLFxuICBbUEFMRVRURV9UWVBFUy5TRVFdOiBbXG4gICAgJ1R1cmJvJyxcbiAgICAnVmlyaWRpcycsXG4gICAgJ0luZmVybm8nLFxuICAgICdNYWdtYScsXG4gICAgJ1BsYXNtYScsXG4gICAgJ0NpdmlkaXMnLFxuICAgICdXYXJtJyxcbiAgICAnQ29vbCcsXG4gICAgJ0N1YmVoZWxpeERlZmF1bHQnXG4gIF0sXG4gIFtQQUxFVFRFX1RZUEVTLlFVQV06IFsnVGFibGVhdTEwJ11cbn07XG5cbmV4cG9ydCBjb25zdCBEYXRhVml6Q29sb3JzID0ge1xuICBhcXVhOiAnIzEyOTM5QScsXG4gIHR1bWJsZXdlZWQ6ICcjRERCMjdDJyxcbiAgbXVsZV9mYXduOiAnIzg4NTcyQycsXG4gIHRyZWVfcG9wcHk6ICcjRkY5OTFGJyxcbiAgZmxhbWU6ICcjRjE1QzE3JyxcbiAgc2FwcGhpcmU6ICcjMjIzRjlBJyxcbiAgb3JjaGlkOiAnI0RBNzBCRicsXG4gIGNoYXRoYW1zX2JsdWU6ICcjMTI1Qzc3JyxcbiAgbWVkX2FxdWFtYXJpbmU6ICcjNERDMTlDJyxcbiAgY3JvY29kaWxlOiAnIzc3NkU1NycsXG4gIGphdmE6ICcjMTdCOEJFJyxcbiAgY2hhbGt5OiAnI0Y2RDE4QScsXG4gIGxpZ2h0X3RhdXBlOiAnI0I3ODg1RScsXG4gIHBlYWNoX29yYW5nZTogJyNGRkNCOTknLFxuICBhcHJpY290OiAnI0Y4OTU3MCcsXG4gIHBvcnRhZ2U6ICcjODI5QUUzJyxcbiAgbGlnaHRfb3JjaGlkOiAnI0U3OUZENScsXG4gIGJsdWVfZ3JlZW46ICcjMUU5NkJFJyxcbiAgYmVybXVkYTogJyM4OURBQzEnLFxuICBjbG91ZHk6ICcjQjNBRDlFJ1xufTtcblxuY29uc3QgVWJlclZpekRpdmVyZ2luZyA9IHtcbiAgbmFtZTogJ1ViZXIgVml6IERpdmVyZ2luZycsXG4gIGNhdGVnb3J5OiBDQVRFR09SSUVTLlVCRVIsXG4gIHR5cGU6IFBBTEVUVEVfVFlQRVMuRElWLFxuICBjb2xvcnM6IFsnIzAwOTM5QycsICcjRTZGQUZBJ10sXG4gIGNvbG9yczI6IFsnI0ZFRUVFOCcsICcjQzIyRTAwJ10sXG4gIGRpdmVyZ2luZzogdHJ1ZSxcbiAgY29ycmVjdExpZ2h0bmVzczogZmFsc2UsXG4gIGNvbG9yQmxpbmRTYWZlOiB0cnVlXG59O1xuXG5jb25zdCBVYmVyVml6U2VxdWVudGlhbCA9IHtcbiAgbmFtZTogJ1ViZXIgVml6IFNlcXVlbnRpYWwnLFxuICBjYXRlZ29yeTogQ0FURUdPUklFUy5VQkVSLFxuICB0eXBlOiBQQUxFVFRFX1RZUEVTLlNFUSxcbiAgY29sb3JzOiBbJyMwMDkzOUMnLCAnI0U2RkFGQSddLFxuICBjb2xvckJsaW5kU2FmZTogdHJ1ZVxufTtcblxuY29uc3QgVWJlclBvb2wgPSB7XG4gIG5hbWU6ICdVYmVyUG9vbCcsXG4gIHR5cGU6IFBBTEVUVEVfVFlQRVMuRElWLFxuICBjYXRlZ29yeTogQ0FURUdPUklFUy5VQkVSLFxuICBjb2xvcnM6IFsnIzIyM0Y5QScsICcjQ0YxNzUwJywgJyNGQUUzMDAnXSxcbiAgY29ycmVjdExpZ2h0bmVzczogZmFsc2UsXG4gIGNvbG9yQmxpbmRTYWZlOiB0cnVlXG59O1xuXG5jb25zdCBJY2VBbmRGaXJlID0ge1xuICBuYW1lOiAnSWNlIEFuZCBGaXJlJyxcbiAgdHlwZTogUEFMRVRURV9UWVBFUy5ESVYsXG4gIGNhdGVnb3J5OiBDQVRFR09SSUVTLlVCRVIsXG4gIGNvbG9yczogWycjMDE5OEJEJywgJyNGQUZFQjMnXSxcbiAgY29sb3JzMjogWycjRkVFREIxJywgJyNENTAyNTUnXSxcbiAgZGl2ZXJnaW5nOiB0cnVlLFxuICBjb2xvckJsaW5kU2FmZTogdHJ1ZVxufTtcblxuY29uc3QgR2xvYmFsV2FybWluZyA9IHtcbiAgbmFtZTogJ0dsb2JhbCBXYXJtaW5nJyxcbiAgdHlwZTogUEFMRVRURV9UWVBFUy5TRVEsXG4gIGNhdGVnb3J5OiBDQVRFR09SSUVTLlVCRVIsXG4gIGNvbG9yczogWycjNEMwMDM1JywgJyNBQzFDMTcnLCAnI0ZGQzMwMCddLFxuICBjb2xvckJsaW5kU2FmZTogdHJ1ZVxufTtcblxuY29uc3QgU3VucmlzZSA9IHtcbiAgbmFtZTogJ1N1bnJpc2UnLFxuICB0eXBlOiBQQUxFVFRFX1RZUEVTLlNFUSxcbiAgY2F0ZWdvcnk6IENBVEVHT1JJRVMuVUJFUixcbiAgY29sb3JzOiBbJyMzNTVDN0QnLCAnI0MwNkM4NCcsICcjRjhCMTk1J10sXG4gIGNvbG9yQmxpbmRTYWZlOiB0cnVlXG59O1xuXG5jb25zdCBPY2VhbkdyZWVuID0ge1xuICBuYW1lOiAnT2NlYW4gR3JlZW4nLFxuICB0eXBlOiBQQUxFVFRFX1RZUEVTLlNFUSxcbiAgY2F0ZWdvcnk6IENBVEVHT1JJRVMuVUJFUixcbiAgY29sb3JzOiBbJyMzNzUzNUUnLCAnIzNFQUNBOCcsICcjRTVFRUMxJ10sXG4gIGNvbG9yQmxpbmRTYWZlOiB0cnVlXG59O1xuXG5jb25zdCBQaW5rV2luZSA9IHtcbiAgbmFtZTogJ1BpbmsgV2luZScsXG4gIHR5cGU6IFBBTEVUVEVfVFlQRVMuU0VRLFxuICBjYXRlZ29yeTogQ0FURUdPUklFUy5VQkVSLFxuICBjb2xvcnM6IFsnIzJDMUUzRCcsICcjOTU2NDg1JywgJyNFREQxQ0EnXSxcbiAgY29sb3JCbGluZFNhZmU6IHRydWVcbn07XG5cbmNvbnN0IFB1cnBsZUJsdWVZZWxsb3cgPSB7XG4gIG5hbWU6ICdQdXJwbGUgQmx1ZSBZZWxsb3cnLFxuICB0eXBlOiBQQUxFVFRFX1RZUEVTLlNFUSxcbiAgY2F0ZWdvcnk6IENBVEVHT1JJRVMuVUJFUixcbiAgY29sb3JzOiBbJyMzODNDNjUnLCAnIzQ5ODM4QScsICcjRDZERUJGJ10sXG4gIG1vZGU6ICdoc2wnLFxuICBjb2xvckJsaW5kU2FmZTogdHJ1ZVxufTtcblxuY29uc3QgVmlvdmV0T2NlYW4gPSB7XG4gIG5hbWU6ICdWaW92ZXRPY2VhbicsXG4gIHR5cGU6IFBBTEVUVEVfVFlQRVMuU0VRLFxuICBjYXRlZ29yeTogQ0FURUdPUklFUy5VQkVSLFxuICBjb2xvcnM6IFsnIzc0MDBCOCcsICcjNUU2MENFJywgJyM0RUE4REUnLCAnIzU2Q0ZFMScsICcjNzJFRkREJ10sXG4gIGNvbG9yQmxpbmRTYWZlOiBmYWxzZVxufTtcblxuY29uc3QgU3VtbWVyU2t5ID0ge1xuICBuYW1lOiAnU3VtbWVyU2t5JyxcbiAgdHlwZTogUEFMRVRURV9UWVBFUy5TRVEsXG4gIGNhdGVnb3J5OiBDQVRFR09SSUVTLlVCRVIsXG4gIGNvbG9yczogWycjMTg0RTc3JywgJyMxNjhBQUQnLCAnIzc2Qzg5MycsICcjRDlFRDkyJ10sXG4gIGNvbG9yQmxpbmRTYWZlOiBmYWxzZVxufTtcblxuY29uc3QgVWJlclZpelF1YWxpdGF0aXZlID0ge1xuICBuYW1lOiAnVWJlciBWaXogUXVhbGl0YXRpdmUnLFxuICB0eXBlOiBQQUxFVFRFX1RZUEVTLlFVQSxcbiAgY2F0ZWdvcnk6IENBVEVHT1JJRVMuVUJFUixcbiAgY29sb3JzOiBPYmplY3QudmFsdWVzKERhdGFWaXpDb2xvcnMpLFxuICBjb2xvckJsaW5kU2FmZTogZmFsc2Vcbn07XG5cbi8vIGh0dHBzOi8vcGVyc29uYWwuc3Jvbi5ubC9+cGF1bHQvI3NlYzpxdWFsaXRhdGl2ZVxuLy8gQSBzZXQgb2YgUXVhbGl0YXRpdmUgQ29sb3JzIGRlc2lnbmVkIGJ5IFBhdWwgVG9sIHRoYXQgYXJlIGNvbG9yIGJsaW5kIGZyaWVuZGx5XG5jb25zdCBUb2xCcmlnaHQgPSB7XG4gIG5hbWU6ICdUb2wgQnJpZ2h0JyxcbiAgdHlwZTogUEFMRVRURV9UWVBFUy5RVUEsXG4gIGNhdGVnb3J5OiBDQVRFR09SSUVTLkNPTE9SQkxJTkQsXG4gIGNvbG9yczogWycjNDQ3N0FBJywgJyNFRTY2NzcnLCAnIzIyODgzMycsICcjQ0NCQjQ0JywgJyM2NkNDRUUnLCAnI0FBMzM3NycsICcjQkJCQkJCJ10sXG4gIGNvbG9yQmxpbmRTYWZlOiB0cnVlXG59O1xuLy8gQmFkIERhdGE6ICNCQkJCQkJcblxuY29uc3QgVG9sVmlicmFudCA9IHtcbiAgbmFtZTogJ1RvbCBWaWJyYW50JyxcbiAgdHlwZTogUEFMRVRURV9UWVBFUy5RVUEsXG4gIGNhdGVnb3J5OiBDQVRFR09SSUVTLkNPTE9SQkxJTkQsXG4gIGNvbG9yczogWycjRUU3NzMzJywgJyMwMDc3QkInLCAnIzMzQkJFRScsICcjRUUzMzc3JywgJyNDQzMzMTEnLCAnIzAwOTk4OCcsICcjQkJCQkJCJ10sXG4gIGNvbG9yQmxpbmRTYWZlOiB0cnVlXG59O1xuLy8gQmFkIERhdGE6ICNCQkJCQkJcblxuY29uc3QgVG9sTXV0ZWQgPSB7XG4gIG5hbWU6ICdUb2wgTXV0ZWQnLFxuICB0eXBlOiBQQUxFVFRFX1RZUEVTLlFVQSxcbiAgY2F0ZWdvcnk6IENBVEVHT1JJRVMuQ09MT1JCTElORCxcbiAgY29sb3JzOiBbXG4gICAgJyNDQzY2NzcnLFxuICAgICcjMzMyMjg4JyxcbiAgICAnI0REQ0M3NycsXG4gICAgJyMxMTc3MzMnLFxuICAgICcjODhDQ0VFJyxcbiAgICAnIzg4MjI1NScsXG4gICAgJyM0NEFBOTknLFxuICAgICcjOTk5OTMzJyxcbiAgICAnI0FBNDQ5OSdcbiAgXSxcbiAgY29sb3JCbGluZFNhZmU6IHRydWVcbn07XG4vLyBCYWQgRGF0YTogI0RERERERFxuXG5jb25zdCBUb2xNZWRpdW1Db250cmFzdCA9IHtcbiAgbmFtZTogJ1RvbCBNZWRpdW0gQ29udHJhc3QnLFxuICB0eXBlOiBQQUxFVFRFX1RZUEVTLlFVQSxcbiAgY2F0ZWdvcnk6IENBVEVHT1JJRVMuQ09MT1JCTElORCxcbiAgY29sb3JzOiBbJyM2Njk5Q0MnLCAnIzAwNDQ4OCcsICcjRUVDQzY2JywgJyM5OTQ0NTUnLCAnIzk5NzcwMCcsICcjRUU5OUFBJ10sXG4gIGNvbG9yQmxpbmRTYWZlOiB0cnVlXG59O1xuXG5jb25zdCBUb2xMaWdodCA9IHtcbiAgbmFtZTogJ1RvbCBMaWdodCcsXG4gIHR5cGU6IFBBTEVUVEVfVFlQRVMuUVVBLFxuICBjYXRlZ29yeTogQ0FURUdPUklFUy5DT0xPUkJMSU5ELFxuICBjb2xvcnM6IFsnIzc3QUFERCcsICcjRUU4ODY2JywgJyNFRUREODgnLCAnI0ZGQUFCQicsICcjOTlEREZGJywgJyM0NEJCOTknLCAnI0JCQ0MzMycsICcjQUFBQTAwJ10sXG4gIGNvbG9yQmxpbmRTYWZlOiB0cnVlXG59O1xuXG4vLyBodHRwczovL2pmbHkudW5pLWtvZWxuLmRlL2NvbG9yL1xuY29uc3QgT2thYmVJdG8gPSB7XG4gIG5hbWU6ICdPa2FiZSBJdG8nLFxuICB0eXBlOiBQQUxFVFRFX1RZUEVTLlFVQSxcbiAgY2F0ZWdvcnk6IENBVEVHT1JJRVMuQ09MT1JCTElORCxcbiAgY29sb3JzOiBbJyNFNjlGMDAnLCAnIzU2QjRFOScsICcjMDA5RTczJywgJyNGMEU0NDInLCAnIzAwNzJCMicsICcjRDU1RTAwJywgJyNDQzc5QTcnLCAnIzAwMDAwMCddLFxuICBjb2xvckJsaW5kU2FmZTogdHJ1ZVxufTtcbi8vIEJhZCBEYXRhOiAjREREREREXG5cbmNvbnN0IEZTUUJyYW5kID0ge1xuICBuYW1lOiAnRlNRIEJyYW5kJyxcbiAgdHlwZTogUEFMRVRURV9UWVBFUy5RVUEsXG4gIGNhdGVnb3J5OiBDQVRFR09SSUVTLkNPTE9SQkxJTkQsXG4gIGNvbG9yczogWycjMzMzM0ZGJywgJyM2MTY2RUInLCAnIzJFRDlDMycsICcjODJFOERCJywgJyNGQ0NDMEEnLCAnI0ZGREFBRicsICcjMzBBNUQ5JywgJyM5N0RBRjgnXSxcbiAgY29sb3JCbGluZFNhZmU6IHRydWVcbn07XG5cbmNvbnN0IEZTUVdhcm1Ub25lID0ge1xuICBuYW1lOiAnRlNRIFdhcm0gVG9uZScsXG4gIHR5cGU6IFBBTEVUVEVfVFlQRVMuUVVBLFxuICBjYXRlZ29yeTogQ0FURUdPUklFUy5DT0xPUkJMSU5ELFxuICBjb2xvcnM6IFsnI0MwMEIwNScsICcjRDE1MEE1JywgJyNFOThFQ0EnLCAnI0ZFQ0U1QScsICcjRkZEREJGJywgJyNGRkI0RDMnLCAnI0VFNUQ4NicsICcjRDhEMkQyJ10sXG4gIGNvbG9yQmxpbmRTYWZlOiB0cnVlXG59O1xuXG5jb25zdCBGU1FDb29sVG9uZSA9IHtcbiAgbmFtZTogJ0ZTUSBDb29sIFRvbmUnLFxuICB0eXBlOiBQQUxFVFRFX1RZUEVTLlFVQSxcbiAgY2F0ZWdvcnk6IENBVEVHT1JJRVMuQ09MT1JCTElORCxcbiAgY29sb3JzOiBbJyMxMTQzOUYnLCAnIzI5N0VFOCcsICcjOTVDNkM5JywgJyNGRUNFNUEnLCAnI0ZGRERCRicsICcjOUZCMUI3JywgJyM1MjgxQjUnLCAnI0I5RDBGQiddLFxuICBjb2xvckJsaW5kU2FmZTogdHJ1ZVxufTtcblxuLyoqXG4gKiBCdWlsZCBDYXRlZ29yaWNhbCBjb2xvciBwYWxldHRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZENhdGVnb3JpY2FsUGFsZXR0ZSh7XG4gIG5hbWUsXG4gIGNhdGVnb3J5LFxuICBjb2xvcnMsXG4gIGNvbG9yQmxpbmRTYWZlXG59OiB7XG4gIG5hbWU6IHN0cmluZztcbiAgY2F0ZWdvcnk6IFZhbHVlT2Y8dHlwZW9mIENBVEVHT1JJRVM+O1xuICBjb2xvcnM/OiBIZXhDb2xvcltdO1xuICBjb2xvckJsaW5kU2FmZT86IGJvb2xlYW47XG59KTogQ2F0ZWdvcmljYWxQYWxldHRlIHtcbiAgbGV0IGFsbENvbG9ycztcbiAgLy8gZmluZCBkMyBjb2xvciBzY2hlbWVcbiAgY29uc3Qgc2NoZW1lID0gZDNTY2FsZUNocm9tYXRpY1tgc2NoZW1lJHtuYW1lfWBdO1xuXG4gIGlmICghc2NoZW1lICYmICFjb2xvcnMpIHtcbiAgICBDb25zb2xlLndhcm4oYHNjaGVtZSR7bmFtZX0gY2FudCBub3QgYmUgZm91bmQgaW4gZDMgc2NhbGUgY2hyb21hdGljLCBuZWVkcyB0byBwcm92aWRlIGNvbG9yc2ApO1xuICAgIGFsbENvbG9ycyA9IFsnI0RERERERCddO1xuICB9IGVsc2UgaWYgKCFzY2hlbWUpIHtcbiAgICAvLyBidWlsZCBmcm9tIGNvbG9yc1xuICAgIGFsbENvbG9ycyA9IGNvbG9ycztcbiAgfSBlbHNlIHtcbiAgICBhbGxDb2xvcnMgPSBzY2hlbWU7XG4gIH1cblxuICBpZiAoIWFsbENvbG9ycy5sZW5ndGgpIHtcbiAgICBDb25zb2xlLndhcm4oJ05lZWRzIHRvIHByb3ZpZGUgdmFsaWQgZDMgY29sb3Igc2NoZW1lIG5hbWUgb3IgYW4gYXJyYXkgb2YgY29sb3JzJyk7XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG5hbWUsXG4gICAgY2F0ZWdvcnksXG4gICAgdHlwZTogUEFMRVRURV9UWVBFUy5RVUEsXG4gICAgY29sb3JCbGluZFNhZmU6IGNvbG9yQmxpbmRTYWZlID8/IENPTE9SX0JMSU5EX1NBRkVfTUFQW25hbWVdLFxuICAgIG1heFN0ZXA6IGFsbENvbG9ycy5sZW5ndGgsXG4gICAgY29sb3JzOiBudW1Db2xvcnMgPT4ge1xuICAgICAgLy8gaWYgbnVtQ29sb3JzID4gbWF4U3RlcHMsICB3aWxsIHJldHVybiBhbGxDb2xvcnNcbiAgICAgIHJldHVybiBhbGxDb2xvcnMuc2xpY2UoMCwgbnVtQ29sb3JzKS5tYXAoX2NvbG9yVG9VcHBlcmNhc2UpO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gX2NvbG9yVG9VcHBlcmNhc2UoYykge1xuICByZXR1cm4gZDNDb2xvcihjKS5mb3JtYXRIZXgoKS50b1VwcGVyQ2FzZSgpO1xufVxuLyoqXG4gKiBBbGwgc2VxdWFudGlhbCBwYWxldHRlIGlzIGJhc2VkIG9uIHBhbGV0dGUgaW4gZDMtc2NhbGUtY2hyb21hdGljXG4gKiBodHRwczovL2dpdGh1Yi5jb20vZDMvZDMtc2NhbGUtY2hyb21hdGljL2Jsb2IvbWFpbi9zcmMvaW5kZXguanNcbiAqL1xuZnVuY3Rpb24gYnVpbGRTZXF1ZW50aWFsUGFsZXR0ZSh7bmFtZSwgdHlwZSwgY2F0ZWdvcnl9KSB7XG4gIGlmICghT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKENPTE9SX0JMSU5EX1NBRkVfTUFQLCBuYW1lKSkge1xuICAgIENvbnNvbGUud2FybihgJHtuYW1lfSBkb2VzIG5vdCBleGlzdHMgaW4gQ09MT1JfQkxJTkRfU0FGRV9NQVBgKTtcbiAgfVxuICBjb25zdCBpbnRlcnBvbGF0b3IgPSBkM1NjYWxlQ2hyb21hdGljW2BpbnRlcnBvbGF0ZSR7bmFtZX1gXTtcblxuICByZXR1cm4ge1xuICAgIG5hbWUsXG4gICAgdHlwZSxcbiAgICBjYXRlZ29yeSxcbiAgICBjb2xvckJsaW5kU2FmZTogQ09MT1JfQkxJTkRfU0FGRV9NQVBbbmFtZV0sXG4gICAgY29sb3JzOiBudW1Db2xvcnMgPT4ge1xuICAgICAgcmV0dXJuIHJhbmdlKDAsIG51bUNvbG9ycywgMSlcbiAgICAgICAgLm1hcChkID0+IGludGVycG9sYXRvcihkIC8gKG51bUNvbG9ycyAtIDEpKSlcbiAgICAgICAgLm1hcChfY29sb3JUb1VwcGVyY2FzZSk7XG4gICAgfSxcbiAgICBsaW5lYXI6ICgpID0+IHtcbiAgICAgIHJldHVybiBpbnRlcnBvbGF0b3I7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBidWlsZEN1c3RvbVBhbGV0dGUoe1xuICBjb2xvcnMsXG4gIGNvbG9yczIgPSBbXSxcbiAgY29ycmVjdExpZ2h0bmVzcyA9IHRydWUsXG4gIGJlemllciA9IGZhbHNlLFxuICBkaXZlcmdpbmcgPSBmYWxzZSxcbiAgbW9kZSA9ICdsY2gnLFxuICBuYW1lLFxuICB0eXBlLFxuICBjYXRlZ29yeSxcbiAgY29sb3JCbGluZFNhZmVcbn06IHtcbiAgY29sb3JzOiBIZXhDb2xvcltdO1xuICBjb2xvcnMyPzogSGV4Q29sb3JbXTtcbiAgY29ycmVjdExpZ2h0bmVzcz86IGJvb2xlYW47XG4gIGJlemllcj86IGJvb2xlYW47XG4gIGRpdmVyZ2luZz86IGJvb2xlYW47XG4gIG1vZGU/OiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAgdHlwZTogU2VxdWVudGlhbFBhbGV0dGVbJ3R5cGUnXTtcbiAgY2F0ZWdvcnk6IFZhbHVlT2Y8dHlwZW9mIENBVEVHT1JJRVM+O1xuICBjb2xvckJsaW5kU2FmZTogYm9vbGVhbjtcbn0pOiBTZXF1ZW50aWFsUGFsZXR0ZSB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IHBhbGV0dGU6IFNlcXVlbnRpYWxQYWxldHRlID0ge1xuICAgIG5hbWUsXG4gICAgdHlwZSxcbiAgICBjYXRlZ29yeSxcbiAgICBjb2xvckJsaW5kU2FmZSxcbiAgICBjb2xvcnM6ICgpID0+IFtdLFxuICAgIGxpbmVhcjogKCkgPT4gKCkgPT4gJydcbiAgfTtcblxuICBpZiAoIWNvbG9ycy5sZW5ndGgpIHtcbiAgICBDb25zb2xlLmVycm9yKCdjb2xvcnMgaGFzIHRvIGJlIGFuIGFycmF5IG9mIGNvbG9ycycpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHNjYWxlTGVmdCA9IGNocm9tYVxuICAgIC5zY2FsZShiZXppZXIgJiYgY29sb3JzLmxlbmd0aCA+IDEgPyBjaHJvbWEuYmV6aWVyKGNvbG9ycykgOiBjb2xvcnMpXG4gICAgLm1vZGUobW9kZSlcbiAgICAuY29ycmVjdExpZ2h0bmVzcyhjb3JyZWN0TGlnaHRuZXNzKTtcbiAgbGV0IHNjYWxlUmlnaHQ7XG4gIGxldCBzY2FsZUZ1bGw7XG4gIGlmIChkaXZlcmdpbmcpIHtcbiAgICBpZiAoIWNvbG9ycy5sZW5ndGgpIHtcbiAgICAgIENvbnNvbGUuZXJyb3IoJ2NvbG9yczIgaGFzIHRvIGJlIGFuIGFycmF5IG9mIGNvbG9ycyB3aGVuIGRpdmVyZ2luZyA9IHRydWUnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc2NhbGVSaWdodCA9IGNocm9tYVxuICAgICAgLnNjYWxlKGJlemllciAmJiBjb2xvcnMyLmxlbmd0aCA+IDEgPyBjaHJvbWEuYmV6aWVyKGNvbG9yczIpIDogY29sb3JzMilcbiAgICAgIC5tb2RlKG1vZGUpXG4gICAgICAuY29ycmVjdExpZ2h0bmVzcyhjb3JyZWN0TGlnaHRuZXNzKTtcblxuICAgIHNjYWxlRnVsbCA9IGNocm9tYVxuICAgICAgLnNjYWxlKGJlemllciA/IGNocm9tYS5iZXppZXIoY29sb3JzLmNvbmNhdChjb2xvcnMyKSkgOiBjb2xvcnMuY29uY2F0KGNvbG9yczIpKVxuICAgICAgLm1vZGUobW9kZSlcbiAgICAgIC5jb3JyZWN0TGlnaHRuZXNzKGNvcnJlY3RMaWdodG5lc3MpO1xuICB9XG5cbiAgLy8gcmV0dXJuIG51bUNvbG9ycyA9PiAoc2NhbGVMZWZ0ID8gc3RlcHNMZWZ0LmNvbG9ycyhudW1Db2xvcnMpIDogW10pO1xuXG4gIC8vIGdpdmVuIG51bWJlciBvZiBjb2xvcnMgcmV0dXJuIGNvbG9yIHN0ZXBzXG4gIHBhbGV0dGUuY29sb3JzID0gbnVtQ29sb3JzID0+IHtcbiAgICBpZiAoZGl2ZXJnaW5nKSB7XG4gICAgICBjb25zdCBldmVuID0gbnVtQ29sb3JzICUgMiA9PT0gMDtcblxuICAgICAgY29uc3QgbnVtQ29sb3JzTGVmdCA9IE1hdGguY2VpbChudW1Db2xvcnMgLyAyKSArIChldmVuID8gMSA6IDApO1xuICAgICAgY29uc3QgbnVtQ29sb3JzUmlnaHQgPSBNYXRoLmNlaWwobnVtQ29sb3JzIC8gMikgKyAoZXZlbiA/IDEgOiAwKTtcblxuICAgICAgY29uc3QgY29sb3JzTGVmdCA9IHNjYWxlTGVmdCA/IHNjYWxlTGVmdC5jb2xvcnMobnVtQ29sb3JzTGVmdCkgOiBbXTtcbiAgICAgIGNvbnN0IGNvbG9yc1JpZ2h0ID0gc2NhbGVSaWdodCA/IHNjYWxlUmlnaHQuY29sb3JzKG51bUNvbG9yc1JpZ2h0KSA6IFtdO1xuICAgICAgY29uc3Qgc3RlcHMgPSAoZXZlbiA/IGNvbG9yc0xlZnQuc2xpY2UoMCwgY29sb3JzTGVmdC5sZW5ndGggLSAxKSA6IGNvbG9yc0xlZnQpXG4gICAgICAgIC5jb25jYXQoY29sb3JzUmlnaHQuc2xpY2UoMSkpXG4gICAgICAgIC5tYXAoX2NvbG9yVG9VcHBlcmNhc2UpO1xuXG4gICAgICByZXR1cm4gc3RlcHM7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNjYWxlTGVmdCA/IHNjYWxlTGVmdC5jb2xvcnMobnVtQ29sb3JzKS5tYXAoX2NvbG9yVG9VcHBlcmNhc2UpIDogW107XG4gIH07XG5cbiAgcGFsZXR0ZS5saW5lYXIgPSAoKSA9PiB7XG4gICAgcmV0dXJuIGRpdmVyZ2luZyA/IHNjYWxlRnVsbCA6IHNjYWxlTGVmdDtcbiAgfTtcblxuICByZXR1cm4gcGFsZXR0ZTtcbn1cblxuZnVuY3Rpb24gYnVpbGRQYWxldHRlQnlTY2hlbWVHcm91cHMoXG4gIHNjaGVtZUdyb3VwczogdHlwZW9mIENPTE9SQlJFV0VSX1NDSEVNRSB8IHR5cGVvZiBEM19DT0xPUl9DSFJPTUFUSUNfU0NIRU1FLFxuICBjYXRlZ29yeTogVmFsdWVPZjx0eXBlb2YgQ0FURUdPUklFUz5cbik6IENvbG9yUGFsZXR0ZVtdIHtcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHNjaGVtZUdyb3VwcykucmVkdWNlKChhY2N1LCBbdHlwZSwgcGFsZXR0ZXNdKSA9PiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLmFjY3UsXG4gICAgICAuLi5wYWxldHRlcy5yZWR1Y2UoKGdyb3VwLCBuYW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbG9yUGFsZXR0ZSA9XG4gICAgICAgICAgdHlwZSA9PT0gUEFMRVRURV9UWVBFUy5RVUFcbiAgICAgICAgICAgID8gYnVpbGRDYXRlZ29yaWNhbFBhbGV0dGUoe25hbWUsIGNhdGVnb3J5fSlcbiAgICAgICAgICAgIDogLy8gQHRzLWlnbm9yZSBqc2RvYyBjYW50IGZpZ3VyZSBvdXQgdHlwZSBvZiAndHlwZSdcbiAgICAgICAgICAgICAgYnVpbGRTZXF1ZW50aWFsUGFsZXR0ZSh7bmFtZSwgdHlwZSwgY2F0ZWdvcnl9KTtcbiAgICAgICAgLy8gQHRzLWlnbm9yZSB0eXBlIGlzIG5vdCBhc3NpZ25hYmxlIHRvIG5ldmVyW11cbiAgICAgICAgZ3JvdXAucHVzaChjb2xvclBhbGV0dGUpO1xuICAgICAgICByZXR1cm4gZ3JvdXA7XG4gICAgICB9LCBbXSlcbiAgICBdO1xuICB9LCBbXSk7XG59XG5cbmNvbnN0IENPTE9SQlJFV0VSX1BBTEVUVEVTID0gYnVpbGRQYWxldHRlQnlTY2hlbWVHcm91cHMoQ09MT1JCUkVXRVJfU0NIRU1FLCBDQVRFR09SSUVTLkNPTE9SQlJFV0VSKTtcbmNvbnN0IEQzX0NPTE9SX1BBTEVUVEVTID0gYnVpbGRQYWxldHRlQnlTY2hlbWVHcm91cHMoRDNfQ09MT1JfQ0hST01BVElDX1NDSEVNRSwgQ0FURUdPUklFUy5EMyk7XG5jb25zdCBCUkFOREVEX1BBTEVUVEVTOiBDb2xvclBhbGV0dGVbXSA9IFtcbiAgVWJlclZpekRpdmVyZ2luZyxcbiAgVWJlclZpelNlcXVlbnRpYWwsXG4gIFViZXJQb29sLFxuICBJY2VBbmRGaXJlLFxuICBHbG9iYWxXYXJtaW5nLFxuICBTdW5yaXNlLFxuICBPY2VhbkdyZWVuLFxuICBQaW5rV2luZSxcbiAgUHVycGxlQmx1ZVllbGxvdyxcbiAgVmlvdmV0T2NlYW4sXG4gIFN1bW1lclNreSxcbiAgVWJlclZpelF1YWxpdGF0aXZlLFxuICBUb2xCcmlnaHQsXG4gIFRvbFZpYnJhbnQsXG4gIFRvbE11dGVkLFxuICBUb2xNZWRpdW1Db250cmFzdCxcbiAgVG9sTGlnaHQsXG4gIE9rYWJlSXRvLFxuICBGU1FCcmFuZCxcbiAgRlNRV2FybVRvbmUsXG4gIEZTUUNvb2xUb25lXG5dXG4gIC5tYXAocmVjaXBlID0+XG4gICAgcmVjaXBlLnR5cGUgPT09IFBBTEVUVEVfVFlQRVMuUVVBID8gYnVpbGRDYXRlZ29yaWNhbFBhbGV0dGUocmVjaXBlKSA6IGJ1aWxkQ3VzdG9tUGFsZXR0ZShyZWNpcGUpXG4gIClcbiAgLmZpbHRlcihCb29sZWFuKSBhcyBDb2xvclBhbGV0dGVbXTtcblxuZXhwb3J0IGNvbnN0IEtFUExFUl9DT0xPUl9QQUxFVFRFUzogQ29sb3JQYWxldHRlW10gPSBbXG4gIC4uLkJSQU5ERURfUEFMRVRURVMsXG4gIC4uLkNPTE9SQlJFV0VSX1BBTEVUVEVTLFxuICAuLi5EM19DT0xPUl9QQUxFVFRFU1xuXTtcblxuLyoqXG4gKiBjcmVhdGUgY29sb3IgcmFuZ2UgZnJvbSBwYWxldHRlLCB3aXRoIHN0ZXBzIGFuZCByZXZlcnNlZCBhcyBjb25maWdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbG9yUGFsZXR0ZVRvQ29sb3JSYW5nZShcbiAgY29sb3JQYWxldHRlOiBDb2xvclBhbGV0dGUsXG4gIGNvbG9yQ29uZmlnOiB7XG4gICAgcmV2ZXJzZWQ6IGJvb2xlYW47XG4gICAgc3RlcHM6IG51bWJlcjtcbiAgfVxuKTogTWluaUNvbG9yUmFuZ2Uge1xuICBjb25zdCB7c3RlcHMsIHJldmVyc2VkfSA9IGNvbG9yQ29uZmlnO1xuICBjb25zdCBjb2xvcnMgPSBjb2xvclBhbGV0dGUuY29sb3JzKHN0ZXBzKS5zbGljZSgpO1xuICBpZiAocmV2ZXJzZWQpIHtcbiAgICBjb2xvcnMucmV2ZXJzZSgpO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBjb2xvclBhbGV0dGUubmFtZSxcbiAgICB0eXBlOiBjb2xvclBhbGV0dGUudHlwZSxcbiAgICBjYXRlZ29yeTogY29sb3JQYWxldHRlLmNhdGVnb3J5LFxuICAgIGNvbG9ycyxcbiAgICAuLi4ocmV2ZXJzZWQgPyB7cmV2ZXJzZWR9IDoge30pXG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxnQkFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsUUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsU0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFB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QUk7RUFDVkMsSUFBSSxFQUFFLElBQUk7RUFDVkMsSUFBSSxFQUFFLElBQUk7RUFDVkMsSUFBSSxFQUFFLEtBQUs7RUFDWEMsTUFBTSxFQUFFLElBQUk7RUFDWkMsTUFBTSxFQUFFLEtBQUs7RUFDYkMsUUFBUSxFQUFFLEtBQUs7RUFDZkMsTUFBTSxFQUFFLEtBQUs7RUFDYkMsS0FBSyxFQUFFLElBQUk7RUFDWEMsTUFBTSxFQUFFLElBQUk7RUFDWkMsT0FBTyxFQUFFLEtBQUs7RUFDZEMsT0FBTyxFQUFFLEtBQUs7RUFDZEMsSUFBSSxFQUFFLEtBQUs7RUFDWEMsSUFBSSxFQUFFLElBQUk7RUFDVkMsSUFBSSxFQUFFLEtBQUs7RUFDWEMsS0FBSyxFQUFFLElBQUk7RUFDWEMsSUFBSSxFQUFFLElBQUk7RUFDVkMsSUFBSSxFQUFFLElBQUk7RUFDVkMsSUFBSSxFQUFFLElBQUk7RUFDVkMsTUFBTSxFQUFFLElBQUk7RUFDWkMsS0FBSyxFQUFFLElBQUk7RUFDWEMsT0FBTyxFQUFFLElBQUk7RUFDYkMsSUFBSSxFQUFFLElBQUk7RUFDVkMsSUFBSSxFQUFFLElBQUk7RUFDVkMsTUFBTSxFQUFFLElBQUk7RUFDWkMsSUFBSSxFQUFFLElBQUk7RUFDVkMsT0FBTyxFQUFFLElBQUk7RUFDYkMsSUFBSSxFQUFFLElBQUk7RUFDVkMsSUFBSSxFQUFFLElBQUk7RUFDVkMsSUFBSSxFQUFFLElBQUk7RUFDVkMsTUFBTSxFQUFFLElBQUk7RUFDWkMsTUFBTSxFQUFFLElBQUk7RUFDWkMsTUFBTSxFQUFFLElBQUk7RUFFWjtFQUNBQyxPQUFPLEVBQUUsSUFBSTtFQUNiQyxPQUFPLEVBQUUsS0FBSztFQUNkQyxLQUFLLEVBQUUsSUFBSTtFQUNYQyxPQUFPLEVBQUUsSUFBSTtFQUNiQyxPQUFPLEVBQUUsSUFBSTtFQUNiQyxLQUFLLEVBQUUsSUFBSTtFQUNYQyxNQUFNLEVBQUUsSUFBSTtFQUNaQyxPQUFPLEVBQUUsSUFBSTtFQUNiQyxJQUFJLEVBQUUsSUFBSTtFQUNWQyxJQUFJLEVBQUUsS0FBSztFQUNYQyxnQkFB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
@@ -0,0 +1,16 @@
1
+ export declare enum DatasetType {
2
+ LOCAL = "local",
3
+ VECTOR_TILE = "vectorTile"
4
+ }
5
+ export declare enum TileType {
6
+ VECTOR_TILE = "vectorTile"
7
+ }
8
+ export declare enum VectorTileType {
9
+ MVT = "mvt",
10
+ PMTILES = "pmtiles"
11
+ }
12
+ export declare type VectorTileDatasetMetadata = {
13
+ type: VectorTileType;
14
+ tilesetDataUrl: string;
15
+ tilesetMetadataUrl?: string;
16
+ };
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.VectorTileType = exports.TileType = exports.DatasetType = void 0;
7
+ // SPDX-License-Identifier: MIT
8
+ // Copyright contributors to the kepler.gl project
9
+ var DatasetType = exports.DatasetType = /*#__PURE__*/function (DatasetType) {
10
+ DatasetType["LOCAL"] = "local";
11
+ DatasetType["VECTOR_TILE"] = "vectorTile";
12
+ return DatasetType;
13
+ }({});
14
+ var TileType = exports.TileType = /*#__PURE__*/function (TileType) {
15
+ TileType["VECTOR_TILE"] = "vectorTile";
16
+ return TileType;
17
+ }({});
18
+ var VectorTileType = exports.VectorTileType = /*#__PURE__*/function (VectorTileType) {
19
+ VectorTileType["MVT"] = "mvt";
20
+ VectorTileType["PMTILES"] = "pmtiles";
21
+ return VectorTileType;
22
+ }({});
23
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJEYXRhc2V0VHlwZSIsImV4cG9ydHMiLCJUaWxlVHlwZSIsIlZlY3RvclRpbGVUeXBlIl0sInNvdXJjZXMiOlsiLi4vc3JjL2RhdGFzZXQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuZXhwb3J0IGVudW0gRGF0YXNldFR5cGUge1xuICBMT0NBTCA9ICdsb2NhbCcsXG4gIFZFQ1RPUl9USUxFID0gJ3ZlY3RvclRpbGUnXG59XG5cbmV4cG9ydCBlbnVtIFRpbGVUeXBlIHtcbiAgVkVDVE9SX1RJTEUgPSAndmVjdG9yVGlsZSdcbn1cblxuZXhwb3J0IGVudW0gVmVjdG9yVGlsZVR5cGUge1xuICBNVlQgPSAnbXZ0JyxcbiAgUE1USUxFUyA9ICdwbXRpbGVzJ1xufVxuXG5leHBvcnQgdHlwZSBWZWN0b3JUaWxlRGF0YXNldE1ldGFkYXRhID0ge1xuICB0eXBlOiBWZWN0b3JUaWxlVHlwZTtcbiAgdGlsZXNldERhdGFVcmw6IHN0cmluZztcbiAgdGlsZXNldE1ldGFkYXRhVXJsPzogc3RyaW5nO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUFBLElBRVlBLFdBQVcsR0FBQUMsT0FBQSxDQUFBRCxXQUFBLDBCQUFYQSxXQUFXO0VBQVhBLFdBQVc7RUFBWEEsV0FBVztFQUFBLE9BQVhBLFdBQVc7QUFBQTtBQUFBLElBS1hFLFFBQVEsR0FBQUQsT0FBQSxDQUFBQyxRQUFBLDBCQUFSQSxRQUFRO0VBQVJBLFFBQVE7RUFBQSxPQUFSQSxRQUFRO0FBQUE7QUFBQSxJQUlSQyxjQUFjLEdBQUFGLE9BQUEsQ0FBQUUsY0FBQSwwQkFBZEEsY0FBYztFQUFkQSxjQUFjO0VBQWRBLGNBQWM7RUFBQSxPQUFkQSxjQUFjO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -1,4 +1,4 @@
1
- import { BaseMapStyle, EffectDescription, RGBAColor, SyncTimelineMode } from '@kepler.gl/types';
1
+ import { BaseMapStyle, EffectDescription, RGBAColor, SyncTimelineMode, BaseMapColorModes, Merge } from '@kepler.gl/types';
2
2
  import { scaleLinear, scaleLog, scaleOrdinal, scalePoint, scaleQuantile, scaleQuantize, scaleSqrt, scaleThreshold } from 'd3-scale';
3
3
  export declare const ACTION_PREFIX = "@@kepler.gl/";
4
4
  export declare const KEPLER_UNFOLDED_BUCKET = "https://studio-public-data.foursquare.com/statics/keplergl";
@@ -156,8 +156,32 @@ export declare const EMPTY_MAPBOX_STYLE: {
156
156
  sources: {};
157
157
  layers: never[];
158
158
  };
159
+ export declare const MAP_LIB_OPTIONS: {
160
+ MAPBOX: "mapbox";
161
+ MAPLIBRE: "maplibre";
162
+ };
163
+ export declare type BaseMapLibraryType = 'mapbox' | 'maplibre';
159
164
  export declare const NO_BASEMAP_ICON: string;
160
- export declare const DEFAULT_MAP_STYLES: BaseMapStyle[];
165
+ export declare const DEFAULT_BASE_MAP_STYLE = "dark-matter";
166
+ declare type DefaultBaseMapStyle = Merge<BaseMapStyle, {
167
+ colorMode: BaseMapColorModes;
168
+ }>;
169
+ export declare const DEFAULT_NO_BASEMAP_STYLE: DefaultBaseMapStyle;
170
+ export declare const DEFAULT_MAPBOX_STYLES: DefaultBaseMapStyle[];
171
+ export declare const DEFAULT_MAPBOX_SATELITE_STYLES: DefaultBaseMapStyle[];
172
+ export declare const DEFAULT_MAPLIBRE_STYLES: DefaultBaseMapStyle[];
173
+ export declare const DEFAULT_MAP_STYLES: {
174
+ id: string;
175
+ label: string;
176
+ url: string;
177
+ icon: string;
178
+ style?: object | undefined;
179
+ layerGroups: import("@kepler.gl/types").LayerGroup[];
180
+ accessToken?: string | undefined;
181
+ custom?: import("@kepler.gl/types").CustomStyleType | undefined;
182
+ colorMode: "NONE" | "DARK" | "LIGHT";
183
+ complimentaryStyleId?: string | undefined;
184
+ }[];
161
185
  export declare const GEOJSON_FIELDS: {
162
186
  geojson: string[];
163
187
  };
@@ -196,6 +220,7 @@ export declare type SCALE_TYPES_DEF = {
196
220
  point: 'point';
197
221
  threshold: 'threshold';
198
222
  custom: 'custom';
223
+ customOrdinal: 'customOrdinal';
199
224
  };
200
225
  export declare const SCALE_TYPES: SCALE_TYPES_DEF;
201
226
  export declare const SCALE_TYPE_NAMES: {
@@ -214,6 +239,7 @@ export declare const SCALE_FUNC: {
214
239
  point: typeof scalePoint;
215
240
  threshold: typeof scaleThreshold;
216
241
  custom: typeof scaleThreshold;
242
+ customOrdinal: typeof scaleOrdinal;
217
243
  };
218
244
  export declare const ALL_FIELD_TYPES: {
219
245
  boolean: "boolean";
@@ -328,20 +354,12 @@ export declare const AGGREGATION_TYPE_OPTIONS: {
328
354
  label: string;
329
355
  }[];
330
356
  export declare const linearFieldScaleFunctions: {
331
- color: ("quantile" | "quantize" | "custom")[];
357
+ color: ("custom" | "quantile" | "quantize")[];
332
358
  radius: "sqrt"[];
333
359
  size: ("linear" | "sqrt" | "log")[];
334
360
  };
335
361
  export declare const linearFieldAggrScaleFunctions: {
336
- colorAggr: {
337
- average: ("quantile" | "quantize")[];
338
- maximum: ("quantile" | "quantize")[];
339
- minimum: ("quantile" | "quantize")[];
340
- median: ("quantile" | "quantize")[];
341
- stdev: ("quantile" | "quantize")[];
342
- sum: ("quantile" | "quantize")[];
343
- variance: ("quantile" | "quantize")[];
344
- };
362
+ colorAggr: {};
345
363
  sizeAggr: {
346
364
  average: ("linear" | "sqrt" | "log")[];
347
365
  maximum: ("linear" | "sqrt" | "log")[];
@@ -353,7 +371,7 @@ export declare const linearFieldAggrScaleFunctions: {
353
371
  };
354
372
  };
355
373
  export declare const ordinalFieldScaleFunctions: {
356
- color: "ordinal"[];
374
+ color: ("ordinal" | "customOrdinal")[];
357
375
  radius: "point"[];
358
376
  size: "point"[];
359
377
  };
@@ -378,7 +396,7 @@ export declare const notSupportAggrOpts: {
378
396
  */
379
397
  export declare const DEFAULT_AGGREGATION: {
380
398
  colorAggr: {
381
- count: ("quantile" | "quantize")[];
399
+ count: ("custom" | "quantile" | "quantize")[];
382
400
  };
383
401
  sizeAggr: {
384
402
  count: ("linear" | "sqrt" | "log")[];
@@ -396,7 +414,7 @@ export declare const FIELD_OPTS: {
396
414
  countUnique: ("quantile" | "quantize")[];
397
415
  };
398
416
  sizeAggr: {};
399
- color: "ordinal"[];
417
+ color: ("ordinal" | "customOrdinal")[];
400
418
  radius: "point"[];
401
419
  size: "point"[];
402
420
  };
@@ -408,15 +426,7 @@ export declare const FIELD_OPTS: {
408
426
  real: {
409
427
  type: string;
410
428
  scale: {
411
- colorAggr: {
412
- average: ("quantile" | "quantize")[];
413
- maximum: ("quantile" | "quantize")[];
414
- minimum: ("quantile" | "quantize")[];
415
- median: ("quantile" | "quantize")[];
416
- stdev: ("quantile" | "quantize")[];
417
- sum: ("quantile" | "quantize")[];
418
- variance: ("quantile" | "quantize")[];
419
- };
429
+ colorAggr: {};
420
430
  sizeAggr: {
421
431
  average: ("linear" | "sqrt" | "log")[];
422
432
  maximum: ("linear" | "sqrt" | "log")[];
@@ -426,7 +436,7 @@ export declare const FIELD_OPTS: {
426
436
  sum: ("linear" | "sqrt" | "log")[];
427
437
  variance: ("linear" | "sqrt" | "log")[];
428
438
  };
429
- color: ("quantile" | "quantize" | "custom")[];
439
+ color: ("custom" | "quantile" | "quantize")[];
430
440
  radius: "sqrt"[];
431
441
  size: ("linear" | "sqrt" | "log")[];
432
442
  };
@@ -440,7 +450,7 @@ export declare const FIELD_OPTS: {
440
450
  scale: {
441
451
  colorAggr: {};
442
452
  sizeAggr: {};
443
- color: ("quantile" | "quantize" | "custom")[];
453
+ color: ("custom" | "quantile" | "quantize")[];
444
454
  radius: "sqrt"[];
445
455
  size: ("linear" | "sqrt" | "log")[];
446
456
  };
@@ -452,15 +462,7 @@ export declare const FIELD_OPTS: {
452
462
  integer: {
453
463
  type: string;
454
464
  scale: {
455
- colorAggr: {
456
- average: ("quantile" | "quantize")[];
457
- maximum: ("quantile" | "quantize")[];
458
- minimum: ("quantile" | "quantize")[];
459
- median: ("quantile" | "quantize")[];
460
- stdev: ("quantile" | "quantize")[];
461
- sum: ("quantile" | "quantize")[];
462
- variance: ("quantile" | "quantize")[];
463
- };
465
+ colorAggr: {};
464
466
  sizeAggr: {
465
467
  average: ("linear" | "sqrt" | "log")[];
466
468
  maximum: ("linear" | "sqrt" | "log")[];
@@ -470,7 +472,7 @@ export declare const FIELD_OPTS: {
470
472
  sum: ("linear" | "sqrt" | "log")[];
471
473
  variance: ("linear" | "sqrt" | "log")[];
472
474
  };
473
- color: ("quantile" | "quantize" | "custom")[];
475
+ color: ("custom" | "quantile" | "quantize" | "customOrdinal")[];
474
476
  radius: "sqrt"[];
475
477
  size: ("linear" | "sqrt" | "log")[];
476
478
  };
@@ -487,7 +489,7 @@ export declare const FIELD_OPTS: {
487
489
  countUnique: ("quantile" | "quantize")[];
488
490
  };
489
491
  sizeAggr: {};
490
- color: "ordinal"[];
492
+ color: ("ordinal" | "customOrdinal")[];
491
493
  radius: "point"[];
492
494
  size: "point"[];
493
495
  };
@@ -504,7 +506,7 @@ export declare const FIELD_OPTS: {
504
506
  countUnique: ("quantile" | "quantize")[];
505
507
  };
506
508
  sizeAggr: {};
507
- color: "ordinal"[];
509
+ color: ("ordinal" | "customOrdinal")[];
508
510
  radius: "point"[];
509
511
  size: "point"[];
510
512
  };
@@ -840,3 +842,4 @@ export declare const POSTPROCESSING_EFFECTS: {
840
842
  export declare const EFFECT_DESCRIPTIONS: EffectDescription[];
841
843
  export declare type EffectType = 'ink' | 'brightnessContrast' | 'hueSaturation' | 'vibrance' | 'sepia' | 'dotScreen' | 'colorHalftone' | 'noise' | 'triangleBlur' | 'zoomBlur' | 'tiltShift' | 'edgeWork' | 'vignette' | 'magnify' | 'hexagonalPixelate' | 'lightAndShadow';
842
844
  export declare const SYNC_TIMELINE_MODES: Record<string, SyncTimelineMode>;
845
+ export {};