kepler.gl 3.2.0 → 3.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/dist/src/ai-assistant/src/config/models.d.ts +8 -0
  2. package/dist/src/components/src/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +3 -2
  3. package/dist/src/localization/src/translations/en.d.ts +1 -0
  4. package/dist/src/utils/src/arrow-data-container.d.ts +3 -2
  5. package/dist/src/utils/src/data-container-utils.d.ts +2 -0
  6. package/package.json +2 -2
  7. package/src/actions/package.json +8 -8
  8. package/src/ai-assistant/dist/components/ai-assistant-config.js +40 -24
  9. package/src/ai-assistant/dist/config/models.d.ts +8 -0
  10. package/src/ai-assistant/dist/config/models.js +16 -8
  11. package/src/ai-assistant/dist/localization.js +7 -7
  12. package/src/ai-assistant/dist/reducers/index.js +3 -2
  13. package/src/ai-assistant/package.json +16 -16
  14. package/src/ai-assistant/src/components/ai-assistant-config.tsx +39 -28
  15. package/src/ai-assistant/src/config/models.ts +37 -25
  16. package/src/ai-assistant/src/localization.ts +6 -6
  17. package/src/ai-assistant/src/reducers/index.ts +2 -1
  18. package/src/cloud-providers/package.json +2 -2
  19. package/src/common-utils/package.json +3 -3
  20. package/src/components/dist/common/color-legend.js +8 -8
  21. package/src/components/dist/common/data-table/index.js +13 -9
  22. package/src/components/dist/map/map-legend-panel.js +10 -4
  23. package/src/components/dist/map/map-legend.js +2 -2
  24. package/src/components/dist/plot-container.js +4 -2
  25. package/src/components/dist/side-panel/interaction-panel/interaction-panel.js +2 -2
  26. package/src/components/dist/side-panel/layer-panel/color-breaks-panel.js +11 -2
  27. package/src/components/dist/side-panel/layer-panel/color-scale-selector.js +65 -12
  28. package/src/components/dist/side-panel/layer-panel/custom-palette.js +18 -7
  29. package/src/components/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +3 -2
  30. package/src/components/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +18 -4
  31. package/src/components/package.json +15 -15
  32. package/src/components/src/common/color-legend.tsx +15 -2
  33. package/src/components/src/common/data-table/index.tsx +1 -1
  34. package/src/components/src/map/map-legend-panel.tsx +21 -2
  35. package/src/components/src/map/map-legend.tsx +1 -1
  36. package/src/components/src/plot-container.tsx +2 -1
  37. package/src/components/src/side-panel/interaction-panel/interaction-panel.tsx +1 -0
  38. package/src/components/src/side-panel/layer-panel/color-breaks-panel.tsx +14 -3
  39. package/src/components/src/side-panel/layer-panel/color-scale-selector.tsx +62 -8
  40. package/src/components/src/side-panel/layer-panel/custom-palette.tsx +11 -5
  41. package/src/components/src/side-panel/layer-panel/vector-tile-layer-configurator.tsx +19 -2
  42. package/src/constants/dist/default-settings.js +1 -1
  43. package/src/constants/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/1b/11/43d4199b6142de0b88c672f2b036c5aa4ca836cf35977bbafcdb1962b91e94f8336655a57f0742571ceb13fc69ef4ba0e3cb91dc9a8d61ef041c6eb15e7a +1 -0
  44. package/src/constants/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/b3/bd/e4f91c7af9e320b979e29ad3b9e3a4dfcd61e4a09d6e4579104c40dcace7651b443fdd6d7ff5d947ed6c9df2c0bbbcc76a2ea86d6398e4945257eeb80dd5 +1 -0
  45. package/src/constants/node_modules/.cache/terser-webpack-plugin/index-v5/ac/e2/e903ec95ada0b0075fdcfb6133e2e75c9b3b0504a29ca665704aaed90b2b +2 -0
  46. package/src/constants/node_modules/.cache/terser-webpack-plugin/index-v5/b4/c5/a43653dff3b380f7b0793080a57c980a9a136764933e79454de0fe43a5ca +2 -0
  47. package/src/constants/package.json +2 -2
  48. package/src/constants/umd/keplergl.min.js +1 -1
  49. package/src/deckgl-arrow-layers/package.json +2 -2
  50. package/src/deckgl-layers/package.json +4 -4
  51. package/src/duckdb/dist/table/duckdb-table-utils.js +3 -2
  52. package/src/duckdb/package.json +6 -6
  53. package/src/duckdb/src/table/duckdb-table-utils.ts +5 -1
  54. package/src/effects/package.json +5 -5
  55. package/src/layers/dist/geojson-layer/geojson-utils.js +23 -5
  56. package/src/layers/dist/icon-layer/icon-layer.js +12 -2
  57. package/src/layers/dist/vector-tile/common-tile/tile-dataset.d.ts +4 -0
  58. package/src/layers/dist/vector-tile/common-tile/tile-dataset.js +10 -1
  59. package/src/layers/dist/vector-tile/vector-tile-layer.d.ts +11 -0
  60. package/src/layers/dist/vector-tile/vector-tile-layer.js +113 -7
  61. package/src/layers/package.json +9 -9
  62. package/src/layers/src/geojson-layer/geojson-utils.ts +22 -0
  63. package/src/layers/src/icon-layer/icon-layer.ts +49 -38
  64. package/src/layers/src/vector-tile/common-tile/tile-dataset.ts +7 -0
  65. package/src/layers/src/vector-tile/vector-tile-layer.ts +110 -6
  66. package/src/localization/dist/translations/en.d.ts +1 -0
  67. package/src/localization/dist/translations/en.js +2 -1
  68. package/src/localization/package.json +1 -1
  69. package/src/localization/src/translations/en.ts +1 -0
  70. package/src/processors/dist/data-processor.js +15 -5
  71. package/src/processors/package.json +7 -7
  72. package/src/processors/src/data-processor.ts +19 -4
  73. package/src/reducers/package.json +16 -16
  74. package/src/schemas/package.json +7 -7
  75. package/src/styles/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/52/82/28cacf6fd462b779c22675964b655bf3a9f3ce9ec3c9b141a401a5bf90cb7d904ac65ab8e484570130b12771af0a0d5bab20e6976cfa773666763e046a6a +1 -0
  76. package/src/styles/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/53/93/f8e389b6450ee0636bf336363d2d6865d8a1fe2445c15cc1e36c651e1ddf448358eb74e894f4bf6fc48ef881dc64cc221c48b133ecf0e02132f2c5fbfe11 +1 -0
  77. package/src/styles/node_modules/.cache/terser-webpack-plugin/index-v5/2e/45/ed6e0c1beb8bca4698a47b5feda8789a22d96978bc4839949bd26e827454 +2 -0
  78. package/src/styles/node_modules/.cache/terser-webpack-plugin/index-v5/56/db/b5a812c56b0d1dcdcd33da37e464062a19c8752cb2296603dc72d2c54d31 +2 -0
  79. package/src/styles/package.json +2 -2
  80. package/src/styles/umd/keplergl.min.js +1 -1
  81. package/src/table/dist/dataset-utils.js +18 -7
  82. package/src/table/dist/kepler-table.js +2 -1
  83. package/src/table/package.json +5 -5
  84. package/src/table/src/dataset-utils.ts +7 -2
  85. package/src/table/src/kepler-table.ts +1 -0
  86. package/src/tasks/package.json +2 -2
  87. package/src/types/actions.d.ts +1 -0
  88. package/src/types/package.json +1 -1
  89. package/src/utils/dist/arrow-data-container.d.ts +3 -2
  90. package/src/utils/dist/arrow-data-container.js +3 -3
  91. package/src/utils/dist/data-container-utils.d.ts +2 -0
  92. package/src/utils/dist/data-container-utils.js +3 -2
  93. package/src/utils/package.json +4 -4
  94. package/src/utils/src/arrow-data-container.ts +9 -7
  95. package/src/utils/src/data-container-utils.ts +3 -1
  96. package/umd/keplergl.min.js +1366 -1333
@@ -166,7 +166,7 @@ function LayerColorLegendFactory(ColorLegend, SingleColorLegend, PanelHeaderActi
166
166
  fieldType: colorField && colorField.type || 'real',
167
167
  range: colorRange,
168
168
  onUpdateColorLegend: onUpdateColorLegend,
169
- disableEdit: disableEdit,
169
+ disableEdit: disableEdit || Boolean(isExport),
170
170
  isFixed: isFixed,
171
171
  mapState: mapState,
172
172
  labelFormat: colorField !== null && colorField !== void 0 && colorField.displayFormat ? (0, _d3Format.format)(colorField === null || colorField === void 0 ? void 0 : colorField.displayFormat) : null
@@ -363,4 +363,4 @@ function MapLegendFactory(LayerLegendHeader, LayerLegendContent) {
363
363
  return MapLegend;
364
364
  }
365
365
  var _default = exports["default"] = MapLegendFactory;
366
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZDNDb2xvciIsIl9kM0Zvcm1hdCIsIl9yZWFjdEludGwiLCJfY29sb3JMZWdlbmQiLCJfcmFkaXVzTGVnZW5kIiwiX2NvbnN0YW50cyIsIl9sb2NhbGl6YXRpb24iLCJfdmlld3BvcnRNZXJjYXRvclByb2plY3QiLCJfaWNvbnMiLCJfcGFuZWxIZWFkZXJBY3Rpb24iLCJfdGVtcGxhdGVPYmplY3QiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJTdHlsZWRNYXBDb250cm9sTGVnZW5kIiwiZXhwb3J0cyIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsIm1hcENvbnRyb2wiLCJwYWRkaW5nIiwiZm9udEZhbWlseSIsInBhbmVsQm9yZGVyQ29sb3IiLCJsYXN0Iiwid2lkdGgiLCJ0ZXh0Q29sb3IiLCJzdWJ0ZXh0Q29sb3IiLCJ0ZXh0Q29sb3JIbCIsIlZpc3VhbENoYW5uZWxNZXRyaWMiLCJfcmVmIiwibmFtZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJGb3JtYXR0ZWRNZXNzYWdlIiwiaWQiLCJMYXllckRlZmF1bHRMZWdlbmQiLCJfcmVmMiIsImxhYmVsIiwiU2luZ2xlQ29sb3JMZWdlbmRGYWN0b3J5IiwiZGVwcyIsIkxlZ2VuZFJvd0ZhY3RvcnkiLCJMZWdlbmRSb3ciLCJTaW5nbGVDb2xvckxlZ2VuZCIsIl9yZWYzIiwiY29sb3IiLCJkaXNwbGF5TGFiZWwiLCJCb29sZWFuIiwiQXJyYXkiLCJpc0FycmF5IiwicmdiIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInRvU3RyaW5nIiwiZGlzcGxheU5hbWUiLCJSZWFjdCIsIm1lbW8iLCJMYXllckNvbG9yTGVnZW5kRmFjdG9yeSIsIkNvbG9yTGVnZW5kRmFjdG9yeSIsIlBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeSIsIkNvbG9yTGVnZW5kIiwiUGFuZWxIZWFkZXJBY3Rpb24iLCJMYXllckNvbG9yTGVnZW5kIiwiX3JlZjQiLCJkZXNjcmlwdGlvbiIsImNvbmZpZyIsImxheWVyIiwiY29sb3JDaGFubmVsIiwiZGlzYWJsZUVkaXQiLCJvbkxheWVyVmlzQ29uZmlnQ2hhbmdlIiwiaXNFeHBvcnQiLCJtYXBTdGF0ZSIsImFjdGlvbkljb25zIiwiaW50bCIsInVzZUludGwiLCJlbmFibGVDb2xvckJ5IiwibWVhc3VyZSIsInNjYWxlIiwiZmllbGQiLCJkb21haW4iLCJyYW5nZSIsInByb3BlcnR5IiwiZml4ZWQiLCJfbWFwIiwibWFwIiwiayIsIl9tYXAyIiwiX3NsaWNlZFRvQXJyYXkyIiwiY29sb3JTY2FsZSIsImNvbG9yRmllbGQiLCJjb2xvckRvbWFpbiIsImlzRml4ZWQiLCJ2aXNDb25maWciLCJjb2xvclJhbmdlIiwib25VcGRhdGVDb2xvckxlZ2VuZCIsInVzZUNhbGxiYWNrIiwiY29sb3JMZWdlbmRzIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiaXNFeHBhbmRlZCIsInNldElzRXhwYW5kZWQiLCJoYW5kbGVUb2dnbGVFeHBhbmRlZCIsIm9uQ2xpY2siLCJJY29uQ29tcG9uZW50IiwiZXhwYW5kZWQiLCJjb2xsYXBzZWQiLCJzY2FsZVR5cGUiLCJmaWVsZFR5cGUiLCJ0eXBlIiwibGFiZWxGb3JtYXQiLCJkaXNwbGF5Rm9ybWF0IiwiZDNGb3JtYXQiLCJmb3JtYXRNZXNzYWdlIiwiY29uY2F0Iiwia2V5IiwiZGVmYXVsdE1lc3NhZ2UiLCJnZXRMYXllclJhZGl1c1NjYWxlTWV0ZXJzVG9QaXhlbHNNdWx0aXBsaWVyIiwiX2dldERpc3RhbmNlU2NhbGVzIiwiZ2V0RGlzdGFuY2VTY2FsZXMiLCJtZXRlcnNQZXJQaXhlbCIsImZpeGVkUmFkaXVzIiwic2l6ZUZpZWxkIiwiZ2V0UmFkaXVzU2NhbGVCeVpvb20iLCJMYXllclJhZGl1c0xlZ2VuZCIsIl9yZWY1IiwidmlzdWFsQ2hhbm5lbCIsImdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbiIsImVuYWJsZVNpemVCeSIsIl9tYXAzIiwiX21hcDQiLCJzaXplU2NhbGUiLCJzaXplRG9tYWluIiwic2l6ZVJhbmdlIiwicmFkaXVzTXVsdGlwbGllciIsInYiLCJpc0NvbG9yQ2hhbm5lbCIsIkNIQU5ORUxfU0NBTEVTIiwiY29sb3JBZ2dyIiwiaW5jbHVkZXMiLCJjaGFubmVsU2NhbGVUeXBlIiwiaXNSYWRpdXNDaGFubmVsIiwicmFkaXVzIiwiTGF5ZXJMZWdlbmRIZWFkZXJGYWN0b3J5IiwiTGF5ZXJMZWdlbmRIZWFkZXIiLCJfcmVmNiIsIm9wdGlvbnMiLCJzaG93TGF5ZXJOYW1lIiwiZGVmYXVsdEFjdGlvbkljb25zIiwiQXJyb3dEb3duIiwiQXJyb3dSaWdodCIsIkxheWVyTGVnZW5kQ29udGVudEZhY3RvcnkiLCJMYXllckxlZ2VuZENvbnRlbnQiLCJfcmVmNyIsImNvbnRhaW5lclciLCJ2aXN1YWxDaGFubmVscyIsImdldExlZ2VuZFZpc3VhbENoYW5uZWxzIiwiY2hhbm5lbEtleXMiLCJ2YWx1ZXMiLCJjb2xvckNoYW5uZWxzIiwibm9uQ29sb3JDaGFubmVscyIsInZjIiwiRElNRU5TSU9OUyIsImNvbG9yQ2hhbm5lbFRvUmVuZGVyIiwiY2MiLCJfbGF5ZXIkZ2V0VmlzdWFsQ2hhbm4iLCJjb25kaXRpb24iLCJGcmFnbWVudCIsIm1hdGNoQ29uZGl0aW9uIiwiZW5hYmxlZCIsImRlZmF1bHRNZWFzdXJlIiwiTWFwTGVnZW5kRmFjdG9yeSIsIk1hcExlZ2VuZCIsIl9yZWY4IiwiX3JlZjgkbGF5ZXJzIiwibGF5ZXJzIiwiX3JlZjgkYWN0aW9uSWNvbnMiLCJpbmRleCIsImlzVmFsaWRUb1NhdmUiLCJoaWRkZW4iLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbWFwLWxlZ2VuZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7RkMsIHVzZUNhbGxiYWNrLCB1c2VTdGF0ZSwgQ29tcG9uZW50VHlwZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge3JnYn0gZnJvbSAnZDMtY29sb3InO1xuaW1wb3J0IHtmb3JtYXQgYXMgZDNGb3JtYXR9IGZyb20gJ2QzLWZvcm1hdCc7XG5pbXBvcnQge3VzZUludGx9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IENvbG9yTGVnZW5kRmFjdG9yeSwge0xlZ2VuZFJvd0ZhY3Rvcnl9IGZyb20gJy4uL2NvbW1vbi9jb2xvci1sZWdlbmQnO1xuaW1wb3J0IFJhZGl1c0xlZ2VuZCBmcm9tICcuLi9jb21tb24vcmFkaXVzLWxlZ2VuZCc7XG5pbXBvcnQge0NIQU5ORUxfU0NBTEVTLCBESU1FTlNJT05TfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7TGF5ZXIsIExheWVyQmFzZUNvbmZpZywgVmlzdWFsQ2hhbm5lbCwgVmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9ufSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge0xheWVyVmlzQ29uZmlnLCBNYXBTdGF0ZSwgUkdCQ29sb3J9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtnZXREaXN0YW5jZVNjYWxlc30gZnJvbSAndmlld3BvcnQtbWVyY2F0b3ItcHJvamVjdCc7XG5pbXBvcnQge0Fycm93RG93biwgQXJyb3dSaWdodH0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCBQYW5lbEhlYWRlckFjdGlvbkZhY3RvcnkgZnJvbSAnLi4vc2lkZS1wYW5lbC9wYW5lbC1oZWFkZXItYWN0aW9uJztcblxuaW50ZXJmYWNlIFN0eWxlZE1hcENvbnRyb2xMZWdlbmRQcm9wcyB7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBsYXN0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1hcENvbnRyb2xMZWdlbmQgPSBzdHlsZWQuZGl2PFN0eWxlZE1hcENvbnRyb2xMZWdlbmRQcm9wcz5gXG4gIHBhZGRpbmc6IDEwcHggJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5tYXBDb250cm9sLnBhZGRpbmd9cHggMTBweFxuICAgICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC5wYWRkaW5nfXB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRGYW1pbHl9O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQm9yZGVyQ29sb3J9O1xuICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogJHtwcm9wcyA9PiAocHJvcHMubGFzdCA/IDAgOiAnMXB4Jyl9O1xuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy53aWR0aH1weDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAubGVnZW5kLS1sYXllcl9uYW1lIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5tYXBDb250cm9sLnBhZGRpbmd9cHg7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICB9XG4gIC5sZWdlbmQtLWxheWVyX3R5cGUge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvcn07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5tYXBDb250cm9sLnBhZGRpbmd9cHg7XG4gIH1cblxuICAubGVnZW5kLS1sYXllcl9zaXplLXRpdGxlLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5tYXBDb250cm9sLnBhZGRpbmd9cHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIC5sZWdlbmQtLWxheWVyX190aXRsZSB7XG4gIH1cblxuICAubGVnZW5kLS1sYXllcl9faXRlbSB7XG4gICAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgfVxuICAubGVnZW5kLS1sYXllcl9ieSB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yfTtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gIH1cblxuICAubGVnZW5kLS1sYXllcl9jb2xvcl9maWVsZCB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH1cblxuICAubGVnZW5kLS1sYXllcl9jb2xvci1sZWdlbmQge1xuICAgIG1hcmdpbi10b3A6IDZweDtcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IFZpc3VhbENoYW5uZWxNZXRyaWMgPSAoe25hbWV9KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX190aXRsZVwiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9jb2xvcl9maWVsZFwiPlxuICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17bmFtZX0gLz5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCB0eXBlIExheWVyU2l6ZUxlZ2VuZFByb3BzID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgTGF5ZXJEZWZhdWx0TGVnZW5kOiBSZWFjdC5GQzxMYXllclNpemVMZWdlbmRQcm9wcz4gPSAoe2xhYmVsLCBuYW1lfSkgPT5cbiAgbGFiZWwgPyAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX3NpemUtc2NoZW1hXCI+XG4gICAgICA8cD5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9ieVwiPntsYWJlbCA/IDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXtsYWJlbH0gLz4gOiBudWxsfTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9ieVwiPiBieSA8L3NwYW4+XG4gICAgICA8L3A+XG4gICAgICB7bmFtZSAmJiA8VmlzdWFsQ2hhbm5lbE1ldHJpYyBuYW1lPXtuYW1lfSAvPn1cbiAgICA8L2Rpdj5cbiAgKSA6IG51bGw7XG5cbmV4cG9ydCB0eXBlIFNpbmdsZUNvbG9yTGVnZW5kUHJvcHMgPSB7XG4gIGNvbG9yOiBSR0JDb2xvcjtcbiAgbGFiZWw/OiBzdHJpbmc7XG59O1xuXG5TaW5nbGVDb2xvckxlZ2VuZEZhY3RvcnkuZGVwcyA9IFtMZWdlbmRSb3dGYWN0b3J5XTtcblxuZXhwb3J0IGZ1bmN0aW9uIFNpbmdsZUNvbG9yTGVnZW5kRmFjdG9yeShMZWdlbmRSb3c6IFJldHVyblR5cGU8dHlwZW9mIExlZ2VuZFJvd0ZhY3Rvcnk+KSB7XG4gIGNvbnN0IFNpbmdsZUNvbG9yTGVnZW5kOiBSZWFjdC5GQzxTaW5nbGVDb2xvckxlZ2VuZFByb3BzPiA9ICh7Y29sb3IsIGxhYmVsfSkgPT4gKFxuICAgIDxMZWdlbmRSb3dcbiAgICAgIGxhYmVsPXtsYWJlbCA/PyAnJ31cbiAgICAgIGRpc3BsYXlMYWJlbD17Qm9vbGVhbihsYWJlbCl9XG4gICAgICBjb2xvcj17QXJyYXkuaXNBcnJheShjb2xvcikgPyByZ2IoLi4uY29sb3IpLnRvU3RyaW5nKCkgOiBjb2xvcn1cbiAgICAvPlxuICApO1xuXG4gIFNpbmdsZUNvbG9yTGVnZW5kLmRpc3BsYXlOYW1lID0gJ1NpbmdsZUNvbG9yTGVnZW5kJztcblxuICByZXR1cm4gUmVhY3QubWVtbyhTaW5nbGVDb2xvckxlZ2VuZCk7XG59XG5cbmV4cG9ydCB0eXBlIExheWVyQ29sb3JMZWdlbmRQcm9wcyA9IHtcbiAgZGVzY3JpcHRpb246IFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbjtcbiAgY29uZmlnOiBMYXllckJhc2VDb25maWc7XG4gIGNvbG9yQ2hhbm5lbDogVmlzdWFsQ2hhbm5lbDtcbiAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT86IChvbGRMYXllcjogTGF5ZXIsIG5ld1Zpc0NvbmZpZzogUGFydGlhbDxMYXllclZpc0NvbmZpZz4pID0+IHZvaWQ7XG4gIGxheWVyOiBMYXllcjtcbiAgZGlzYWJsZUVkaXQ/OiBib29sZWFuO1xuICBpc0V4cG9ydD86IGJvb2xlYW47XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIGFjdGlvbkljb25zOiBNYXBMZWdlbmRJY29ucztcbn07XG5cbkxheWVyQ29sb3JMZWdlbmRGYWN0b3J5LmRlcHMgPSBbXG4gIENvbG9yTGVnZW5kRmFjdG9yeSxcbiAgU2luZ2xlQ29sb3JMZWdlbmRGYWN0b3J5LFxuICBQYW5lbEhlYWRlckFjdGlvbkZhY3Rvcnlcbl07XG5leHBvcnQgZnVuY3Rpb24gTGF5ZXJDb2xvckxlZ2VuZEZhY3RvcnkoXG4gIENvbG9yTGVnZW5kOiBSZXR1cm5UeXBlPHR5cGVvZiBDb2xvckxlZ2VuZEZhY3Rvcnk+LFxuICBTaW5nbGVDb2xvckxlZ2VuZDogUmV0dXJuVHlwZTx0eXBlb2YgU2luZ2xlQ29sb3JMZWdlbmRGYWN0b3J5PixcbiAgUGFuZWxIZWFkZXJBY3Rpb246IFJldHVyblR5cGU8dHlwZW9mIFBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeT5cbikge1xuICBjb25zdCBMYXllckNvbG9yTGVnZW5kOiBSZWFjdC5GQzxMYXllckNvbG9yTGVnZW5kUHJvcHM+ID0gKHtcbiAgICBkZXNjcmlwdGlvbixcbiAgICBjb25maWcsXG4gICAgbGF5ZXIsXG4gICAgY29sb3JDaGFubmVsLFxuICAgIGRpc2FibGVFZGl0LFxuICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsXG4gICAgaXNFeHBvcnQsXG4gICAgbWFwU3RhdGUsXG4gICAgYWN0aW9uSWNvbnNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGludGwgPSB1c2VJbnRsKCk7XG4gICAgY29uc3QgZW5hYmxlQ29sb3JCeSA9IGRlc2NyaXB0aW9uLm1lYXN1cmU7XG4gICAgY29uc3Qge3NjYWxlLCBmaWVsZCwgZG9tYWluLCByYW5nZSwgcHJvcGVydHksIGZpeGVkfSA9IGNvbG9yQ2hhbm5lbDtcbiAgICBjb25zdCBbY29sb3JTY2FsZSwgY29sb3JGaWVsZCwgY29sb3JEb21haW5dID0gW3NjYWxlLCBmaWVsZCwgZG9tYWluXS5tYXAoayA9PiBjb25maWdba10pO1xuICAgIGNvbnN0IGlzRml4ZWQgPSBmaXhlZCAmJiBjb25maWcudmlzQ29uZmlnW2ZpeGVkXTtcblxuICAgIGNvbnN0IGNvbG9yUmFuZ2UgPSBjb25maWcudmlzQ29uZmlnW3JhbmdlXTtcbiAgICBjb25zdCBvblVwZGF0ZUNvbG9yTGVnZW5kID0gdXNlQ2FsbGJhY2soXG4gICAgICBjb2xvckxlZ2VuZHMgPT4ge1xuICAgICAgICBpZiAob25MYXllclZpc0NvbmZpZ0NoYW5nZSkge1xuICAgICAgICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UobGF5ZXIsIHtcbiAgICAgICAgICAgIFtyYW5nZV06IHtcbiAgICAgICAgICAgICAgLi4uY29sb3JSYW5nZSxcbiAgICAgICAgICAgICAgY29sb3JMZWdlbmRzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbbGF5ZXIsIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsIGNvbG9yUmFuZ2UsIHJhbmdlXVxuICAgICk7XG4gICAgY29uc3QgW2lzRXhwYW5kZWQsIHNldElzRXhwYW5kZWRdID0gdXNlU3RhdGUoaXNFeHBvcnQpO1xuICAgIGNvbnN0IGhhbmRsZVRvZ2dsZUV4cGFuZGVkID0gKCkgPT4gc2V0SXNFeHBhbmRlZCghaXNFeHBhbmRlZCk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9faXRlbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfY29sb3Itc2NoZW1hXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHtlbmFibGVDb2xvckJ5ID8gKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfc2l6ZS10aXRsZS1yb3dcIj5cbiAgICAgICAgICAgICAgICA8VmlzdWFsQ2hhbm5lbE1ldHJpYyBuYW1lPXtlbmFibGVDb2xvckJ5fSAvPlxuICAgICAgICAgICAgICAgIHshaXNFeHBvcnQgPyAoXG4gICAgICAgICAgICAgICAgICA8UGFuZWxIZWFkZXJBY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJsZWdlbmQtY29sbGFwc2UtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlVG9nZ2xlRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIEljb25Db21wb25lbnQ9e2lzRXhwYW5kZWQgPyBhY3Rpb25JY29ucy5leHBhbmRlZCA6IGFjdGlvbkljb25zLmNvbGxhcHNlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfY29sb3ItbGVnZW5kXCI+XG4gICAgICAgICAgICAgIHtlbmFibGVDb2xvckJ5ID8gKFxuICAgICAgICAgICAgICAgIDxDb2xvckxlZ2VuZFxuICAgICAgICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgICAgICAgaXNFeHBhbmRlZD17aXNFeHBhbmRlZH1cbiAgICAgICAgICAgICAgICAgIHNjYWxlVHlwZT17Y29sb3JTY2FsZX1cbiAgICAgICAgICAgICAgICAgIGRpc3BsYXlMYWJlbFxuICAgICAgICAgICAgICAgICAgZG9tYWluPXtjb2xvckRvbWFpbn1cbiAgICAgICAgICAgICAgICAgIGZpZWxkVHlwZT17KGNvbG9yRmllbGQgJiYgY29sb3JGaWVsZC50eXBlKSB8fCAncmVhbCd9XG4gICAgICAgICAgICAgICAgICByYW5nZT17Y29sb3JSYW5nZX1cbiAgICAgICAgICAgICAgICAgIG9uVXBkYXRlQ29sb3JMZWdlbmQ9e29uVXBkYXRlQ29sb3JMZWdlbmR9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlRWRpdD17ZGlzYWJsZUVkaXR9XG4gICAgICAgICAgICAgICAgICBpc0ZpeGVkPXtpc0ZpeGVkfVxuICAgICAgICAgICAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICAgICAgICAgICAgbGFiZWxGb3JtYXQ9e1xuICAgICAgICAgICAgICAgICAgICBjb2xvckZpZWxkPy5kaXNwbGF5Rm9ybWF0ID8gZDNGb3JtYXQoY29sb3JGaWVsZD8uZGlzcGxheUZvcm1hdCkgOiBudWxsXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8U2luZ2xlQ29sb3JMZWdlbmRcbiAgICAgICAgICAgICAgICAgIGNvbG9yPXtjb25maWcudmlzQ29uZmlnW3Byb3BlcnR5XSB8fCBjb25maWdbcHJvcGVydHldIHx8IGNvbmZpZy5jb2xvcn1cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgICAgICBpZDogYG1hcExlZ2VuZC5sYXllcnMuJHtsYXllci50eXBlfS5zaW5nbGVDb2xvci4ke2NvbG9yQ2hhbm5lbC5rZXl9YCxcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE1lc3NhZ2U6IGludGwuZm9ybWF0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6IGBtYXBMZWdlbmQubGF5ZXJzLmRlZmF1bHQuc2luZ2xlQ29sb3IuJHtjb2xvckNoYW5uZWwua2V5fWAsXG4gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE1lc3NhZ2U6ICcgJyAvLyBtdXN0bid0IGJlIGVtcHR5IHN0cmluZyBvciBpZCB3aWxsIGJlIHVzZWRcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIExheWVyQ29sb3JMZWdlbmQuZGlzcGxheU5hbWUgPSAnTGF5ZXJDb2xvckxlZ2VuZCc7XG4gIHJldHVybiBSZWFjdC5tZW1vKExheWVyQ29sb3JMZWdlbmQpO1xufVxuXG5mdW5jdGlvbiBnZXRMYXllclJhZGl1c1NjYWxlTWV0ZXJzVG9QaXhlbHNNdWx0aXBsaWVyKGxheWVyLCBtYXBTdGF0ZSkge1xuICAvLyBAdHMtaWdub3JlIHRoaXMgYWN0dWFsbHkgZXhpc3RcbiAgY29uc3Qge21ldGVyc1BlclBpeGVsfSA9IGdldERpc3RhbmNlU2NhbGVzKG1hcFN0YXRlKTtcbiAgLy8gaWYgbm8gZmllbGQgc2l6ZSBpcyBkZWZpbmVkIHdlIG5lZWQgdG8gcGFzcyBmaXhlZCByYWRpdXMgPSBmYWxzZVxuICBjb25zdCBmaXhlZFJhZGl1cyA9IGxheWVyLmNvbmZpZy52aXNDb25maWcuZml4ZWRSYWRpdXMgJiYgQm9vbGVhbihsYXllci5jb25maWcuc2l6ZUZpZWxkKTtcbiAgcmV0dXJuIGxheWVyLmdldFJhZGl1c1NjYWxlQnlab29tKG1hcFN0YXRlLCBmaXhlZFJhZGl1cykgLyBtZXRlcnNQZXJQaXhlbFswXTtcbn1cblxuZXhwb3J0IHR5cGUgTWFwTGVnZW5kSWNvbnMgPSB7XG4gIGV4cGFuZGVkOiBDb21wb25lbnRUeXBlPGFueT47XG4gIGNvbGxhcHNlZDogQ29tcG9uZW50VHlwZTxhbnk+O1xufTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJSYWRpdXNMZWdlbmRQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICB3aWR0aDogbnVtYmVyO1xuICBpc0V4cG9ydD86IGJvb2xlYW47XG4gIHZpc3VhbENoYW5uZWw6IFZpc3VhbENoYW5uZWw7XG59O1xuXG5leHBvcnQgY29uc3QgTGF5ZXJSYWRpdXNMZWdlbmQ6IEZDPExheWVyUmFkaXVzTGVnZW5kUHJvcHM+ID0gUmVhY3QubWVtbyhcbiAgKHtsYXllciwgd2lkdGgsIHZpc3VhbENoYW5uZWwsIG1hcFN0YXRlfSkgPT4ge1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gbGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKHZpc3VhbENoYW5uZWwua2V5KTtcbiAgICBjb25zdCBjb25maWcgPSBsYXllci5jb25maWc7XG5cbiAgICBjb25zdCBlbmFibGVTaXplQnkgPSBkZXNjcmlwdGlvbi5tZWFzdXJlO1xuICAgIGNvbnN0IHtzY2FsZSwgZmllbGQsIGRvbWFpbiwgcmFuZ2V9ID0gdmlzdWFsQ2hhbm5lbDtcbiAgICBjb25zdCBbc2l6ZVNjYWxlLCBzaXplRmllbGQsIHNpemVEb21haW5dID0gW3NjYWxlLCBmaWVsZCwgZG9tYWluXS5tYXAoayA9PiBjb25maWdba10pO1xuICAgIGxldCBzaXplUmFuZ2UgPSBjb25maWcudmlzQ29uZmlnW3JhbmdlXTtcblxuICAgIGlmIChtYXBTdGF0ZSkge1xuICAgICAgY29uc3QgcmFkaXVzTXVsdGlwbGllciA9IGdldExheWVyUmFkaXVzU2NhbGVNZXRlcnNUb1BpeGVsc011bHRpcGxpZXIobGF5ZXIsIG1hcFN0YXRlKTtcbiAgICAgIHNpemVSYW5nZSA9IHNpemVSYW5nZS5tYXAodiA9PiB2ICogcmFkaXVzTXVsdGlwbGllcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9zaXplLXNjaGVtYVwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7ZW5hYmxlU2l6ZUJ5ID8gPFZpc3VhbENoYW5uZWxNZXRyaWMgbmFtZT17ZW5hYmxlU2l6ZUJ5fSAvPiA6IG51bGx9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfc2l6ZS1sZWdlbmRcIj5cbiAgICAgICAgICAgICAge2VuYWJsZVNpemVCeSA/IChcbiAgICAgICAgICAgICAgICA8UmFkaXVzTGVnZW5kXG4gICAgICAgICAgICAgICAgICBzY2FsZVR5cGU9e3NpemVTY2FsZX1cbiAgICAgICAgICAgICAgICAgIGRvbWFpbj17c2l6ZURvbWFpbn1cbiAgICAgICAgICAgICAgICAgIGZpZWxkVHlwZT17KHNpemVGaWVsZCAmJiBzaXplRmllbGQudHlwZSkgfHwgJ3JlYWwnfVxuICAgICAgICAgICAgICAgICAgcmFuZ2U9e3NpemVSYW5nZX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbik7XG5cbmNvbnN0IGlzQ29sb3JDaGFubmVsID0gdmlzdWFsQ2hhbm5lbCA9PlxuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3IsIENIQU5ORUxfU0NBTEVTLmNvbG9yQWdncl0uaW5jbHVkZXModmlzdWFsQ2hhbm5lbC5jaGFubmVsU2NhbGVUeXBlKTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJMZWdlbmRIZWFkZXJQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBvcHRpb25zPzoge1xuICAgIHNob3dMYXllck5hbWU/OiBib29sZWFuO1xuICB9O1xuICBpc0V4cG9ydD86IGJvb2xlYW47XG59O1xuXG5jb25zdCBpc1JhZGl1c0NoYW5uZWwgPSB2aXN1YWxDaGFubmVsID0+XG4gIFtDSEFOTkVMX1NDQUxFUy5yYWRpdXNdLmluY2x1ZGVzKHZpc3VhbENoYW5uZWwuY2hhbm5lbFNjYWxlVHlwZSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBMYXllckxlZ2VuZEhlYWRlckZhY3RvcnkoKSB7XG4gIGNvbnN0IExheWVyTGVnZW5kSGVhZGVyOiBSZWFjdC5GQzxMYXllckxlZ2VuZEhlYWRlclByb3BzPiA9ICh7b3B0aW9ucywgbGF5ZXJ9KSA9PiB7XG4gICAgcmV0dXJuIG9wdGlvbnM/LnNob3dMYXllck5hbWUgIT09IGZhbHNlID8gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX25hbWVcIj57bGF5ZXIuY29uZmlnLmxhYmVsfTwvZGl2PlxuICAgICkgOiBudWxsO1xuICB9O1xuICByZXR1cm4gTGF5ZXJMZWdlbmRIZWFkZXI7XG59XG5cbmNvbnN0IGRlZmF1bHRBY3Rpb25JY29ucyA9IHtcbiAgZXhwYW5kZWQ6IEFycm93RG93bixcbiAgY29sbGFwc2VkOiBBcnJvd1JpZ2h0XG59O1xuXG5leHBvcnQgdHlwZSBMYXllckxlZ2VuZENvbnRlbnRQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBjb250YWluZXJXOiBudW1iZXI7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIGRpc2FibGVFZGl0PzogYm9vbGVhbjtcbiAgaXNFeHBvcnQ/OiBib29sZWFuO1xuICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlPzogKG9sZExheWVyOiBMYXllciwgbmV3VmlzQ29uZmlnOiBQYXJ0aWFsPExheWVyVmlzQ29uZmlnPikgPT4gdm9pZDtcbiAgYWN0aW9uSWNvbnM6IE1hcExlZ2VuZEljb25zO1xufTtcblxuTGF5ZXJMZWdlbmRDb250ZW50RmFjdG9yeS5kZXBzID0gW0xheWVyQ29sb3JMZWdlbmRGYWN0b3J5XTtcblxuZXhwb3J0IGZ1bmN0aW9uIExheWVyTGVnZW5kQ29udGVudEZhY3RvcnkoXG4gIExheWVyQ29sb3JMZWdlbmQ6IFJldHVyblR5cGU8dHlwZW9mIExheWVyQ29sb3JMZWdlbmRGYWN0b3J5PlxuKSB7XG4gIGNvbnN0IExheWVyTGVnZW5kQ29udGVudDogUmVhY3QuRkM8TGF5ZXJMZWdlbmRDb250ZW50UHJvcHM+ID0gKHtcbiAgICBsYXllcixcbiAgICBjb250YWluZXJXLFxuICAgIG1hcFN0YXRlLFxuICAgIGRpc2FibGVFZGl0LFxuICAgIGlzRXhwb3J0LFxuICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsXG4gICAgYWN0aW9uSWNvbnNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHZpc3VhbENoYW5uZWxzID0gbGF5ZXIuZ2V0TGVnZW5kVmlzdWFsQ2hhbm5lbHMoKTtcbiAgICBjb25zdCBjaGFubmVsS2V5cyA9IE9iamVjdC52YWx1ZXModmlzdWFsQ2hhbm5lbHMpO1xuICAgIGNvbnN0IGNvbG9yQ2hhbm5lbHMgPSBjaGFubmVsS2V5cy5maWx0ZXIoaXNDb2xvckNoYW5uZWwpIGFzIFZpc3VhbENoYW5uZWxbXTtcbiAgICBjb25zdCBub25Db2xvckNoYW5uZWxzID0gY2hhbm5lbEtleXMuZmlsdGVyKHZjID0+ICFpc0NvbG9yQ2hhbm5lbCh2YykpO1xuICAgIGNvbnN0IHdpZHRoID0gY29udGFpbmVyVyAtIDIgKiBESU1FTlNJT05TLm1hcENvbnRyb2wucGFkZGluZztcblxuICAgIC8vIHJlbmRlciBjb2xvciBieSBjaGFuZWwgb25seVxuICAgIGxldCBjb2xvckNoYW5uZWxUb1JlbmRlciA9IGNvbG9yQ2hhbm5lbHMuZmlsdGVyKFxuICAgICAgY2MgPT5cbiAgICAgICAgKCFjYy5jb25kaXRpb24gfHwgY2MuY29uZGl0aW9uKGxheWVyLmNvbmZpZykpICYmXG4gICAgICAgIGxheWVyLmdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbihjYy5rZXkpPy5tZWFzdXJlXG4gICAgKTtcbiAgICAvLyBpZiBubyBjb2xvciBieSBjaGFuZWwsIHJlbmRlciByZXN0XG4gICAgaWYgKCFjb2xvckNoYW5uZWxUb1JlbmRlci5sZW5ndGgpIHtcbiAgICAgIGNvbG9yQ2hhbm5lbFRvUmVuZGVyID0gY29sb3JDaGFubmVscy5maWx0ZXIoXG4gICAgICAgIGNjID0+ICFjYy5jb25kaXRpb24gfHwgY2MuY29uZGl0aW9uKGxheWVyLmNvbmZpZylcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7Y29sb3JDaGFubmVsVG9SZW5kZXIubWFwKGNvbG9yQ2hhbm5lbCA9PiAoXG4gICAgICAgICAgPExheWVyQ29sb3JMZWdlbmRcbiAgICAgICAgICAgIGtleT17Y29sb3JDaGFubmVsLmtleX1cbiAgICAgICAgICAgIGNvbG9yQ2hhbm5lbD17Y29sb3JDaGFubmVsfVxuICAgICAgICAgICAgY29uZmlnPXtsYXllci5jb25maWd9XG4gICAgICAgICAgICBkZXNjcmlwdGlvbj17bGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKGNvbG9yQ2hhbm5lbC5rZXkpfVxuICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgaXNFeHBvcnQ9e2lzRXhwb3J0fVxuICAgICAgICAgICAgZGlzYWJsZUVkaXQ9e2Rpc2FibGVFZGl0fVxuICAgICAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICAgICAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT17b25MYXllclZpc0NvbmZpZ0NoYW5nZX1cbiAgICAgICAgICAgIGFjdGlvbkljb25zPXthY3Rpb25JY29uc31cbiAgICAgICAgICAvPlxuICAgICAgICApKX1cbiAgICAgICAge25vbkNvbG9yQ2hhbm5lbHMubWFwKCh2aXN1YWxDaGFubmVsOiBWaXN1YWxDaGFubmVsKSA9PiB7XG4gICAgICAgICAgY29uc3QgbWF0Y2hDb25kaXRpb24gPSAhdmlzdWFsQ2hhbm5lbC5jb25kaXRpb24gfHwgdmlzdWFsQ2hhbm5lbC5jb25kaXRpb24obGF5ZXIuY29uZmlnKTtcbiAgICAgICAgICBjb25zdCBlbmFibGVkID0gbGF5ZXIuY29uZmlnW3Zpc3VhbENoYW5uZWwuZmllbGRdIHx8IHZpc3VhbENoYW5uZWwuZGVmYXVsdE1lYXN1cmU7XG5cbiAgICAgICAgICBpZiAobWF0Y2hDb25kaXRpb24gJiYgZW5hYmxlZCkge1xuICAgICAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBsYXllci5nZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24odmlzdWFsQ2hhbm5lbC5rZXkpO1xuICAgICAgICAgICAgaWYgKGlzUmFkaXVzQ2hhbm5lbCh2aXN1YWxDaGFubmVsKSkge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxMYXllclJhZGl1c0xlZ2VuZFxuICAgICAgICAgICAgICAgICAga2V5PXt2aXN1YWxDaGFubmVsLmtleX1cbiAgICAgICAgICAgICAgICAgIGxheWVyPXtsYXllcn1cbiAgICAgICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICAgICAgICAgIHZpc3VhbENoYW5uZWw9e3Zpc3VhbENoYW5uZWx9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxMYXllckRlZmF1bHRMZWdlbmRcbiAgICAgICAgICAgICAgICBrZXk9e3Zpc3VhbENoYW5uZWwua2V5fVxuICAgICAgICAgICAgICAgIGxhYmVsPXtkZXNjcmlwdGlvbi5sYWJlbH1cbiAgICAgICAgICAgICAgICBuYW1lPXtkZXNjcmlwdGlvbi5tZWFzdXJlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gTGF5ZXJMZWdlbmRDb250ZW50O1xufVxuXG5leHBvcnQgdHlwZSBNYXBMZWdlbmRQcm9wcyA9IHtcbiAgbGF5ZXJzPzogUmVhZG9ubHlBcnJheTxMYXllcj47XG4gIHdpZHRoPzogbnVtYmVyO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICBvcHRpb25zPzoge1xuICAgIHNob3dMYXllck5hbWU/OiBib29sZWFuO1xuICB9O1xuICBkaXNhYmxlRWRpdD86IGJvb2xlYW47XG4gIGlzRXhwb3J0PzogYm9vbGVhbjtcbiAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT86IChvbGRMYXllcjogTGF5ZXIsIG5ld1Zpc0NvbmZpZzogUGFydGlhbDxMYXllclZpc0NvbmZpZz4pID0+IHZvaWQ7XG4gIGFjdGlvbkljb25zPzogTWFwTGVnZW5kSWNvbnM7XG59O1xuXG5NYXBMZWdlbmRGYWN0b3J5LmRlcHMgPSBbTGF5ZXJMZWdlbmRIZWFkZXJGYWN0b3J5LCBMYXllckxlZ2VuZENvbnRlbnRGYWN0b3J5XTtcblxuZnVuY3Rpb24gTWFwTGVnZW5kRmFjdG9yeShcbiAgTGF5ZXJMZWdlbmRIZWFkZXI6IFJldHVyblR5cGU8dHlwZW9mIExheWVyTGVnZW5kSGVhZGVyRmFjdG9yeT4sXG4gIExheWVyTGVnZW5kQ29udGVudDogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJMZWdlbmRDb250ZW50RmFjdG9yeT5cbikge1xuICBjb25zdCBNYXBMZWdlbmQ6IFJlYWN0LkZDPE1hcExlZ2VuZFByb3BzPiA9ICh7XG4gICAgbGF5ZXJzID0gW10sXG4gICAgd2lkdGgsXG4gICAgbWFwU3RhdGUsXG4gICAgb3B0aW9ucyxcbiAgICBkaXNhYmxlRWRpdCxcbiAgICBpc0V4cG9ydCxcbiAgICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlLFxuICAgIGFjdGlvbkljb25zID0gZGVmYXVsdEFjdGlvbkljb25zXG4gIH0pID0+IChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1hcC1sZWdlbmRcIj5cbiAgICAgIHtsYXllcnMubWFwKChsYXllciwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKCFsYXllci5pc1ZhbGlkVG9TYXZlKCkgfHwgbGF5ZXIuY29uZmlnLmhpZGRlbikge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclcgPSB3aWR0aCB8fCBESU1FTlNJT05TLm1hcENvbnRyb2wud2lkdGg7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8U3R5bGVkTWFwQ29udHJvbExlZ2VuZFxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllclwiXG4gICAgICAgICAgICBsYXN0PXtpbmRleCA9PT0gbGF5ZXJzLmxlbmd0aCAtIDF9XG4gICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgd2lkdGg9e2NvbnRhaW5lcld9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPExheWVyTGVnZW5kSGVhZGVyIGlzRXhwb3J0PXtpc0V4cG9ydH0gb3B0aW9ucz17b3B0aW9uc30gbGF5ZXI9e2xheWVyfSAvPlxuICAgICAgICAgICAgPExheWVyTGVnZW5kQ29udGVudFxuICAgICAgICAgICAgICBjb250YWluZXJXPXtjb250YWluZXJXfVxuICAgICAgICAgICAgICBsYXllcj17bGF5ZXJ9XG4gICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgICAgZGlzYWJsZUVkaXQ9e2Rpc2FibGVFZGl0fVxuICAgICAgICAgICAgICBpc0V4cG9ydD17aXNFeHBvcnR9XG4gICAgICAgICAgICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U9e29uTGF5ZXJWaXNDb25maWdDaGFuZ2V9XG4gICAgICAgICAgICAgIGFjdGlvbkljb25zPXthY3Rpb25JY29uc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdHlsZWRNYXBDb250cm9sTGVnZW5kPlxuICAgICAgICApO1xuICAgICAgfSl9XG4gICAgPC9kaXY+XG4gICk7XG5cbiAgTWFwTGVnZW5kLmRpc3BsYXlOYW1lID0gJ01hcExlZ2VuZCc7XG5cbiAgcmV0dXJuIE1hcExlZ2VuZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWFwTGVnZW5kRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFlBQUEsR0FBQVAsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLGFBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLFVBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLGFBQUEsR0FBQVQsT0FBQTtBQUdBLElBQUFVLHdCQUFBLEdBQUFWLE9BQUE7QUFDQSxJQUFBVyxNQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxrQkFBQSxHQUFBVixzQkFBQSxDQUFBRixPQUFBO0FBQXlFLElBQUFhLGVBQUEsRUFoQnpFO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQWhCLHdCQUFBZ0IsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBaEIsQ0FBQSxFQUFBYyxDQUFBLFNBQUFHLENBQUEsR0FBQVAsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQWMsQ0FBQSxVQUFBRyxDQUFBLEtBQUFBLENBQUEsQ0FBQVYsR0FBQSxJQUFBVSxDQUFBLENBQUFDLEdBQUEsSUFBQVAsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBRyxDQUFBLElBQUFULENBQUEsQ0FBQU0sQ0FBQSxJQUFBZCxDQUFBLENBQUFjLENBQUEsWUFBQU4sQ0FBQSxjQUFBUixDQUFBLEVBQUFHLENBQUEsSUFBQUEsQ0FBQSxDQUFBZSxHQUFBLENBQUFsQixDQUFBLEVBQUFRLENBQUEsR0FBQUEsQ0FBQTtBQUFBLFNBQUFXLFFBQUFuQixDQUFBLEVBQUFFLENBQUEsUUFBQUMsQ0FBQSxHQUFBUSxNQUFBLENBQUFTLElBQUEsQ0FBQXBCLENBQUEsT0FBQVcsTUFBQSxDQUFBVSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFYLE1BQUEsQ0FBQVUscUJBQUEsQ0FBQXJCLENBQUEsR0FBQUUsQ0FBQSxLQUFBb0IsQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQXJCLENBQUEsV0FBQVMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFFLENBQUEsRUFBQXNCLFVBQUEsT0FBQXJCLENBQUEsQ0FBQXNCLElBQUEsQ0FBQUMsS0FBQSxDQUFBdkIsQ0FBQSxFQUFBbUIsQ0FBQSxZQUFBbkIsQ0FBQTtBQUFBLFNBQUF3QixjQUFBM0IsQ0FBQSxhQUFBRSxDQUFBLE1BQUFBLENBQUEsR0FBQTBCLFNBQUEsQ0FBQUMsTUFBQSxFQUFBM0IsQ0FBQSxVQUFBQyxDQUFBLFdBQUF5QixTQUFBLENBQUExQixDQUFBLElBQUEwQixTQUFBLENBQUExQixDQUFBLFFBQUFBLENBQUEsT0FBQWlCLE9BQUEsQ0FBQVIsTUFBQSxDQUFBUixDQUFBLE9BQUEyQixPQUFBLFdBQUE1QixDQUFBLFFBQUE2QixnQkFBQSxhQUFBL0IsQ0FBQSxFQUFBRSxDQUFBLEVBQUFDLENBQUEsQ0FBQUQsQ0FBQSxTQUFBUyxNQUFBLENBQUFxQix5QkFBQSxHQUFBckIsTUFBQSxDQUFBc0IsZ0JBQUEsQ0FBQWpDLENBQUEsRUFBQVcsTUFBQSxDQUFBcUIseUJBQUEsQ0FBQTdCLENBQUEsS0FBQWdCLE9BQUEsQ0FBQVIsTUFBQSxDQUFBUixDQUFBLEdBQUEyQixPQUFBLFdBQUE1QixDQUFBLElBQUFTLE1BQUEsQ0FBQUMsY0FBQSxDQUFBWixDQUFBLEVBQUFFLENBQUEsRUFBQVMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBVixDQUFBLEVBQUFELENBQUEsaUJBQUFGLENBQUE7QUFzQk8sSUFBTWtDLHNCQUFzQixHQUFBQyxPQUFBLENBQUFELHNCQUFBLEdBQUdFLDRCQUFNLENBQUNDLEdBQUcsQ0FBQXZDLGVBQUEsS0FBQUEsZUFBQSxPQUFBd0MsdUJBQUEsZzZCQUM5QixVQUFBQyxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNDLFVBQVUsQ0FBQ0MsT0FBTztBQUFBLEdBQ25ELFVBQUFILEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0MsVUFBVSxDQUFDQyxPQUFPO0FBQUEsR0FFNUIsVUFBQUgsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDRyxVQUFVO0FBQUEsR0FDdkIsVUFBQUosS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDSSxnQkFBZ0I7QUFBQSxHQUVyQyxVQUFBTCxLQUFLO0VBQUEsT0FBS0EsS0FBSyxDQUFDTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUs7QUFBQSxDQUFDLEVBQy9DLFVBQUFOLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNPLEtBQUs7QUFBQSxHQUtWLFVBQUFQLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0MsVUFBVSxDQUFDQyxPQUFPO0FBQUEsR0FDL0MsVUFBQUgsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDTyxTQUFTO0FBQUEsR0FJOUIsVUFBQVIsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDUSxZQUFZO0FBQUEsR0FHekIsVUFBQVQsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDQyxVQUFVLENBQUNDLE9BQU87QUFBQSxHQU12QyxVQUFBSCxLQUFLO0VBQUEsT0FBSUEsS0FBSyxDQUFDQyxLQUFLLENBQUNDLFVBQVUsQ0FBQ0MsT0FBTztBQUFBLEdBVy9DLFVBQUFILEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ1EsWUFBWTtBQUFBLEdBS2pDLFVBQUFULEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ1MsV0FBVztBQUFBLEVBTzVDO0FBRU0sSUFBTUMsbUJBQW1CLEdBQUFmLE9BQUEsQ0FBQWUsbUJBQUEsR0FBRyxTQUF0QkEsbUJBQW1CQSxDQUFBQyxJQUFBLEVBQWU7RUFBQSxJQUFWQyxJQUFJLEdBQUFELElBQUEsQ0FBSkMsSUFBSTtFQUN2QyxvQkFDRXJFLE1BQUEsWUFBQXNFLGFBQUE7SUFBS0MsU0FBUyxFQUFDO0VBQXNCLGdCQUNuQ3ZFLE1BQUEsWUFBQXNFLGFBQUE7SUFBTUMsU0FBUyxFQUFDO0VBQTJCLGdCQUN6Q3ZFLE1BQUEsWUFBQXNFLGFBQUEsQ0FBQzNELGFBQUEsQ0FBQTZELGdCQUFnQjtJQUFDQyxFQUFFLEVBQUVKO0VBQUssQ0FBRSxDQUN6QixDQUNILENBQUM7QUFFVixDQUFDO0FBT00sSUFBTUssa0JBQWtELEdBQUF0QixPQUFBLENBQUFzQixrQkFBQSxHQUFHLFNBQXJEQSxrQkFBa0RBLENBQUFDLEtBQUE7RUFBQSxJQUFLQyxLQUFLLEdBQUFELEtBQUEsQ0FBTEMsS0FBSztJQUFFUCxJQUFJLEdBQUFNLEtBQUEsQ0FBSk4sSUFBSTtFQUFBLE9BQzdFTyxLQUFLLGdCQUNINUUsTUFBQSxZQUFBc0UsYUFBQTtJQUFLQyxTQUFTLEVBQUM7RUFBMkIsZ0JBQ3hDdkUsTUFBQSxZQUFBc0UsYUFBQSx5QkFDRXRFLE1BQUEsWUFBQXNFLGFBQUE7SUFBTUMsU0FBUyxFQUFDO0VBQWtCLEdBQUVLLEtBQUssZ0JBQUc1RSxNQUFBLFlBQUFzRSxhQUFBLENBQUMzRCxhQUFBLENBQUE2RCxnQkFBZ0I7SUFBQ0MsRUFBRSxFQUFFRztFQUFNLENBQUUsQ0FBQyxHQUFHLElBQVcsQ0FBQyxlQUMxRjVFLE1BQUEsWUFBQXNFLGFBQUE7SUFBTUMsU0FBUyxFQUFDO0VBQWtCLEdBQUMsTUFBVSxDQUM1QyxDQUFDLEVBQ0hGLElBQUksaUJBQUlyRSxNQUFBLFlBQUFzRSxhQUFBLENBQUNILG1CQUFtQjtJQUFDRSxJQUFJLEVBQUVBO0VBQUssQ0FBRSxDQUN4QyxDQUFDLEdBQ0osSUFBSTtBQUFBO0FBT1ZRLHdCQUF3QixDQUFDQyxJQUFJLEdBQUcsQ0FBQ0MsNkJBQWdCLENBQUM7QUFFM0MsU0FBU0Ysd0JBQXdCQSxDQUFDRyxTQUE4QyxFQUFFO0VBQ3ZGLElBQU1DLGlCQUFtRCxHQUFHLFNBQXREQSxpQkFBbURBLENBQUFDLEtBQUE7SUFBQSxJQUFLQyxLQUFLLEdBQUFELEtBQUEsQ0FBTEMsS0FBSztNQUFFUCxLQUFLLEdBQUFNLEtBQUEsQ0FBTE4sS0FBSztJQUFBLG9CQUN4RTVFLE1BQUEsWUFBQXNFLGFBQUEsQ0FBQ1UsU0FBUztNQUNSSixLQUFLLEVBQUVBLEtBQUssYUFBTEEsS0FBSyxjQUFMQSxLQUFLLEdBQUksRUFBRztNQUNuQlEsWUFBWSxFQUFFQyxPQUFPLENBQUNULEtBQUssQ0FBRTtNQUM3Qk8sS0FBSyxFQUFFRyxLQUFLLENBQUNDLE9BQU8sQ0FBQ0osS0FBSyxDQUFDLEdBQUdLLFlBQUcsQ0FBQTdDLEtBQUEsYUFBQThDLG1CQUFBLGFBQUlOLEtBQUssRUFBQyxDQUFDTyxRQUFRLENBQUMsQ0FBQyxHQUFHUDtJQUFNLENBQ2hFLENBQUM7RUFBQSxDQUNIO0VBRURGLGlCQUFpQixDQUFDVSxXQUFXLEdBQUcsbUJBQW1CO0VBRW5ELG9CQUFPQyxpQkFBSyxDQUFDQyxJQUFJLENBQUNaLGlCQUFpQixDQUFDO0FBQ3RDO0FBY0FhLHVCQUF1QixDQUFDaEIsSUFBSSxHQUFHLENBQzdCaUIsdUJBQWtCLEVBQ2xCbEIsd0JBQXdCLEVBQ3hCbUIsNkJBQXdCLENBQ3pCO0FBQ00sU0FBU0YsdUJBQXVCQSxDQUNyQ0csV0FBa0QsRUFDbERoQixpQkFBOEQsRUFDOURpQixpQkFBOEQsRUFDOUQ7RUFDQSxJQUFNQyxnQkFBaUQsR0FBRyxTQUFwREEsZ0JBQWlEQSxDQUFBQyxLQUFBLEVBVWpEO0lBQUEsSUFUSkMsV0FBVyxHQUFBRCxLQUFBLENBQVhDLFdBQVc7TUFDWEMsTUFBTSxHQUFBRixLQUFBLENBQU5FLE1BQU07TUFDTkMsS0FBSyxHQUFBSCxLQUFBLENBQUxHLEtBQUs7TUFDTEMsWUFBWSxHQUFBSixLQUFBLENBQVpJLFlBQVk7TUFDWkMsV0FBVyxHQUFBTCxLQUFBLENBQVhLLFdBQVc7TUFDWEMsc0JBQXNCLEdBQUFOLEtBQUEsQ0FBdEJNLHNCQUFzQjtNQUN0QkMsUUFBUSxHQUFBUCxLQUFBLENBQVJPLFFBQVE7TUFDUkMsUUFBUSxHQUFBUixLQUFBLENBQVJRLFFBQVE7TUFDUkMsV0FBVyxHQUFBVCxLQUFBLENBQVhTLFdBQVc7SUFFWCxJQUFNQyxJQUFJLEdBQUcsSUFBQUMsa0JBQU8sRUFBQyxDQUFDO0lBQ3RCLElBQU1DLGFBQWEsR0FBR1gsV0FBVyxDQUFDWSxPQUFPO0lBQ3pDLElBQU9DLEtBQUssR0FBMkNWLFlBQVksQ0FBNURVLEtBQUs7TUFBRUMsS0FBSyxHQUFvQ1gsWUFBWSxDQUFyRFcsS0FBSztNQUFFQyxNQUFNLEdBQTRCWixZQUFZLENBQTlDWSxNQUFNO01BQUVDLEtBQUssR0FBcUJiLFlBQVksQ0FBdENhLEtBQUs7TUFBRUMsUUFBUSxHQUFXZCxZQUFZLENBQS9CYyxRQUFRO01BQUVDLEtBQUssR0FBSWYsWUFBWSxDQUFyQmUsS0FBSztJQUNuRCxJQUFBQyxJQUFBLEdBQThDLENBQUNOLEtBQUssRUFBRUMsS0FBSyxFQUFFQyxNQUFNLENBQUMsQ0FBQ0ssR0FBRyxDQUFDLFVBQUFDLENBQUM7UUFBQSxPQUFJcEIsTUFBTSxDQUFDb0IsQ0FBQyxDQUFDO01BQUEsRUFBQztNQUFBQyxLQUFBLE9BQUFDLGVBQUEsYUFBQUosSUFBQTtNQUFqRkssVUFBVSxHQUFBRixLQUFBO01BQUVHLFVBQVUsR0FBQUgsS0FBQTtNQUFFSSxXQUFXLEdBQUFKLEtBQUE7SUFDMUMsSUFBTUssT0FBTyxHQUFHVCxLQUFLLElBQUlqQixNQUFNLENBQUMyQixTQUFTLENBQUNWLEtBQUssQ0FBQztJQUVoRCxJQUFNVyxVQUFVLEdBQUc1QixNQUFNLENBQUMyQixTQUFTLENBQUNaLEtBQUssQ0FBQztJQUMxQyxJQUFNYyxtQkFBbUIsR0FBRyxJQUFBQyxrQkFBVyxFQUNyQyxVQUFBQyxZQUFZLEVBQUk7TUFDZCxJQUFJM0Isc0JBQXNCLEVBQUU7UUFDMUJBLHNCQUFzQixDQUFDSCxLQUFLLE1BQUF2RCxnQkFBQSxpQkFDekJxRSxLQUFLLEVBQUF6RSxhQUFBLENBQUFBLGFBQUEsS0FDRHNGLFVBQVU7VUFDYkcsWUFBWSxFQUFaQTtRQUFZLEdBRWYsQ0FBQztNQUNKO0lBQ0YsQ0FBQyxFQUNELENBQUM5QixLQUFLLEVBQUVHLHNCQUFzQixFQUFFd0IsVUFBVSxFQUFFYixLQUFLLENBQ25ELENBQUM7SUFDRCxJQUFBaUIsU0FBQSxHQUFvQyxJQUFBQyxlQUFRLEVBQUM1QixRQUFRLENBQUM7TUFBQTZCLFVBQUEsT0FBQVosZUFBQSxhQUFBVSxTQUFBO01BQS9DRyxVQUFVLEdBQUFELFVBQUE7TUFBRUUsYUFBYSxHQUFBRixVQUFBO0lBQ2hDLElBQU1HLG9CQUFvQixHQUFHLFNBQXZCQSxvQkFBb0JBLENBQUE7TUFBQSxPQUFTRCxhQUFhLENBQUMsQ0FBQ0QsVUFBVSxDQUFDO0lBQUE7SUFDN0Qsb0JBQ0V6SSxNQUFBLFlBQUFzRSxhQUFBO01BQUtDLFNBQVMsRUFBQztJQUFxQixnQkFDbEN2RSxNQUFBLFlBQUFzRSxhQUFBO01BQUtDLFNBQVMsRUFBQztJQUE0QixnQkFDekN2RSxNQUFBLFlBQUFzRSxhQUFBLGNBQ0cwQyxhQUFhLGdCQUNaaEgsTUFBQSxZQUFBc0UsYUFBQTtNQUFLQyxTQUFTLEVBQUM7SUFBOEIsZ0JBQzNDdkUsTUFBQSxZQUFBc0UsYUFBQSxDQUFDSCxtQkFBbUI7TUFBQ0UsSUFBSSxFQUFFMkM7SUFBYyxDQUFFLENBQUMsRUFDM0MsQ0FBQ0wsUUFBUSxnQkFDUjNHLE1BQUEsWUFBQXNFLGFBQUEsQ0FBQzRCLGlCQUFpQjtNQUNoQnpCLEVBQUUsRUFBQyx3QkFBd0I7TUFDM0JtRSxPQUFPLEVBQUVELG9CQUFxQjtNQUM5QkUsYUFBYSxFQUFFSixVQUFVLEdBQUc1QixXQUFXLENBQUNpQyxRQUFRLEdBQUdqQyxXQUFXLENBQUNrQztJQUFVLENBQzFFLENBQUMsR0FDQSxJQUNELENBQUMsR0FDSixJQUFJLGVBQ1IvSSxNQUFBLFlBQUFzRSxhQUFBO01BQUtDLFNBQVMsRUFBQztJQUE0QixHQUN4Q3lDLGFBQWEsZ0JBQ1poSCxNQUFBLFlBQUFzRSxhQUFBLENBQUMyQixXQUFXO01BQ1ZNLEtBQUssRUFBRUEsS0FBTTtNQUNia0MsVUFBVSxFQUFFQSxVQUFXO01BQ3ZCTyxTQUFTLEVBQUVuQixVQUFXO01BQ3RCekMsWUFBWTtNQUNaZ0MsTUFBTSxFQUFFVyxXQUFZO01BQ3BCa0IsU0FBUyxFQUFHbkIsVUFBVSxJQUFJQSxVQUFVLENBQUNvQixJQUFJLElBQUssTUFBTztNQUNyRDdCLEtBQUssRUFBRWEsVUFBVztNQUNsQkMsbUJBQW1CLEVBQUVBLG1CQUFvQjtNQUN6QzFCLFdBQVcsRUFBRUEsV0FBWTtNQUN6QnVCLE9BQU8sRUFBRUEsT0FBUTtNQUNqQnBCLFFBQVEsRUFBRUEsUUFBUztNQUNuQnVDLFdBQVcsRUFDVHJCLFVBQVUsYUFBVkEsVUFBVSxlQUFWQSxVQUFVLENBQUVzQixhQUFhLEdBQUcsSUFBQUMsZ0JBQVEsRUFBQ3ZCLFVBQVUsYUFBVkEsVUFBVSx1QkFBVkEsVUFBVSxDQUFFc0IsYUFBYSxDQUFDLEdBQUc7SUFDbkUsQ0FDRixDQUFDLGdCQUVGcEosTUFBQSxZQUFBc0UsYUFBQSxDQUFDVyxpQkFBaUI7TUFDaEJFLEtBQUssRUFBRW1CLE1BQU0sQ0FBQzJCLFNBQVMsQ0FBQ1gsUUFBUSxDQUFDLElBQUloQixNQUFNLENBQUNnQixRQUFRLENBQUMsSUFBSWhCLE1BQU0sQ0FBQ25CLEtBQU07TUFDdEVQLEtBQUssRUFBRWtDLElBQUksQ0FBQ3dDLGFBQWEsQ0FBQztRQUN4QjdFLEVBQUUsc0JBQUE4RSxNQUFBLENBQXNCaEQsS0FBSyxDQUFDMkMsSUFBSSxtQkFBQUssTUFBQSxDQUFnQi9DLFlBQVksQ0FBQ2dELEdBQUcsQ0FBRTtRQUNwRUMsY0FBYyxFQUFFM0MsSUFBSSxDQUFDd0MsYUFBYSxDQUFDO1VBQ2pDN0UsRUFBRSwwQ0FBQThFLE1BQUEsQ0FBMEMvQyxZQUFZLENBQUNnRCxHQUFHLENBQUU7VUFDOURDLGNBQWMsRUFBRSxHQUFHLENBQUM7UUFDdEIsQ0FBQztNQUNILENBQUM7SUFBRSxDQUNKLENBRUEsQ0FDRixDQUNGLENBQ0YsQ0FBQztFQUVWLENBQUM7RUFFRHRELGdCQUFnQixDQUFDUixXQUFXLEdBQUcsa0JBQWtCO0VBQ2pELG9CQUFPQyxpQkFBSyxDQUFDQyxJQUFJLENBQUNNLGdCQUFnQixDQUFDO0FBQ3JDO0FBRUEsU0FBU3VELDJDQUEyQ0EsQ0FBQ25ELEtBQUssRUFBRUssUUFBUSxFQUFFO0VBQ3BFO0VBQ0EsSUFBQStDLGtCQUFBLEdBQXlCLElBQUFDLDBDQUFpQixFQUFDaEQsUUFBUSxDQUFDO0lBQTdDaUQsY0FBYyxHQUFBRixrQkFBQSxDQUFkRSxjQUFjO0VBQ3JCO0VBQ0EsSUFBTUMsV0FBVyxHQUFHdkQsS0FBSyxDQUFDRCxNQUFNLENBQUMyQixTQUFTLENBQUM2QixXQUFXLElBQUl6RSxPQUFPLENBQUNrQixLQUFLLENBQUNELE1BQU0sQ0FBQ3lELFNBQVMsQ0FBQztFQUN6RixPQUFPeEQsS0FBSyxDQUFDeUQsb0JBQW9CLENBQUNwRCxRQUFRLEVBQUVrRCxXQUFXLENBQUMsR0FBR0QsY0FBYyxDQUFDLENBQUMsQ0FBQztBQUM5RTtBQWVPLElBQU1JLGlCQUE2QyxHQUFBN0csT0FBQSxDQUFBNkcsaUJBQUEsZ0JBQUdyRSxpQkFBSyxDQUFDQyxJQUFJLENBQ3JFLFVBQUFxRSxLQUFBLEVBQTZDO0VBQUEsSUFBM0MzRCxLQUFLLEdBQUEyRCxLQUFBLENBQUwzRCxLQUFLO0lBQUV4QyxLQUFLLEdBQUFtRyxLQUFBLENBQUxuRyxLQUFLO0lBQUVvRyxhQUFhLEdBQUFELEtBQUEsQ0FBYkMsYUFBYTtJQUFFdkQsUUFBUSxHQUFBc0QsS0FBQSxDQUFSdEQsUUFBUTtFQUNyQyxJQUFNUCxXQUFXLEdBQUdFLEtBQUssQ0FBQzZELDJCQUEyQixDQUFDRCxhQUFhLENBQUNYLEdBQUcsQ0FBQztFQUN4RSxJQUFNbEQsTUFBTSxHQUFHQyxLQUFLLENBQUNELE1BQU07RUFFM0IsSUFBTStELFlBQVksR0FBR2hFLFdBQVcsQ0FBQ1ksT0FBTztFQUN4QyxJQUFPQyxLQUFLLEdBQTBCaUQsYUFBYSxDQUE1Q2pELEtBQUs7SUFBRUMsS0FBSyxHQUFtQmdELGFBQWEsQ0FBckNoRCxLQUFLO0lBQUVDLE1BQU0sR0FBVytDLGFBQWEsQ0FBOUIvQyxNQUFNO0lBQUVDLEtBQUssR0FBSThDLGFBQWEsQ0FBdEI5QyxLQUFLO0VBQ2xDLElBQUFpRCxLQUFBLEdBQTJDLENBQUNwRCxLQUFLLEVBQUVDLEtBQUssRUFBRUMsTUFBTSxDQUFDLENBQUNLLEdBQUcsQ0FBQyxVQUFBQyxDQUFDO01BQUEsT0FBSXBCLE1BQU0sQ0FBQ29CLENBQUMsQ0FBQztJQUFBLEVBQUM7SUFBQTZDLEtBQUEsT0FBQTNDLGVBQUEsYUFBQTBDLEtBQUE7SUFBOUVFLFNBQVMsR0FBQUQsS0FBQTtJQUFFUixTQUFTLEdBQUFRLEtBQUE7SUFBRUUsVUFBVSxHQUFBRixLQUFBO0VBQ3ZDLElBQUlHLFNBQVMsR0FBR3BFLE1BQU0sQ0FBQzJCLFNBQVMsQ0FBQ1osS0FBSyxDQUFDO0VBRXZDLElBQUlULFFBQVEsRUFBRTtJQUNaLElBQU0rRCxnQkFBZ0IsR0FBR2pCLDJDQUEyQyxDQUFDbkQsS0FBSyxFQUFFSyxRQUFRLENBQUM7SUFDckY4RCxTQUFTLEdBQUdBLFNBQVMsQ0FBQ2pELEdBQUcsQ0FBQyxVQUFBbUQsQ0FBQztNQUFBLE9BQUlBLENBQUMsR0FBR0QsZ0JBQWdCO0lBQUEsRUFBQztFQUN0RDtFQUVBLG9CQUNFM0ssTUFBQSxZQUFBc0UsYUFBQSwyQkFDRXRFLE1BQUEsWUFBQXNFLGFBQUE7SUFBS0MsU0FBUyxFQUFDO0VBQTJCLGdCQUN4Q3ZFLE1BQUEsWUFBQXNFLGFBQUEsY0FDRytGLFlBQVksZ0JBQUdySyxNQUFBLFlBQUFzRSxhQUFBLENBQUNILG1CQUFtQjtJQUFDRSxJQUFJLEVBQUVnRztFQUFhLENBQUUsQ0FBQyxHQUFHLElBQUksZUFDbEVySyxNQUFBLFlBQUFzRSxhQUFBO0lBQUtDLFNBQVMsRUFBQztFQUEyQixHQUN2QzhGLFlBQVksZ0JBQ1hySyxNQUFBLFlBQUFzRSxhQUFBLENBQUM3RCxhQUFBLFdBQVk7SUFDWHVJLFNBQVMsRUFBRXdCLFNBQVU7SUFDckJwRCxNQUFNLEVBQUVxRCxVQUFXO0lBQ25CeEIsU0FBUyxFQUFHYyxTQUFTLElBQUlBLFNBQVMsQ0FBQ2IsSUFBSSxJQUFLLE1BQU87SUFDbkQ3QixLQUFLLEVBQUVxRCxTQUFVO0lBQ2pCM0csS0FBSyxFQUFFQTtFQUFNLENBQ2QsQ0FBQyxHQUNBLElBQ0QsQ0FDRixDQUNGLENBQ0YsQ0FBQztBQUVWLENBQ0YsQ0FBQztBQUVELElBQU04RyxjQUFjLEdBQUcsU0FBakJBLGNBQWNBLENBQUdWLGFBQWE7RUFBQSxPQUNsQyxDQUFDVyx5QkFBYyxDQUFDM0YsS0FBSyxFQUFFMkYseUJBQWMsQ0FBQ0MsU0FBUyxDQUFDLENBQUNDLFFBQVEsQ0FBQ2IsYUFBYSxDQUFDYyxnQkFBZ0IsQ0FBQztBQUFBO0FBVTNGLElBQU1DLGVBQWUsR0FBRyxTQUFsQkEsZUFBZUEsQ0FBR2YsYUFBYTtFQUFBLE9BQ25DLENBQUNXLHlCQUFjLENBQUNLLE1BQU0sQ0FBQyxDQUFDSCxRQUFRLENBQUNiLGFBQWEsQ0FBQ2MsZ0JBQWdCLENBQUM7QUFBQTtBQUUzRCxTQUFTRyx3QkFBd0JBLENBQUEsRUFBRztFQUN6QyxJQUFNQyxpQkFBbUQsR0FBRyxTQUF0REEsaUJBQW1EQSxDQUFBQyxLQUFBLEVBQXlCO0lBQUEsSUFBcEJDLE9BQU8sR0FBQUQsS0FBQSxDQUFQQyxPQUFPO01BQUVoRixLQUFLLEdBQUErRSxLQUFBLENBQUwvRSxLQUFLO0lBQzFFLE9BQU8sQ0FBQWdGLE9BQU8sYUFBUEEsT0FBTyx1QkFBUEEsT0FBTyxDQUFFQyxhQUFhLE1BQUssS0FBSyxnQkFDckN4TCxNQUFBLFlBQUFzRSxhQUFBO01BQUtDLFNBQVMsRUFBQztJQUFvQixHQUFFZ0MsS0FBSyxDQUFDRCxNQUFNLENBQUMxQixLQUFXLENBQUMsR0FDNUQsSUFBSTtFQUNWLENBQUM7RUFDRCxPQUFPeUcsaUJBQWlCO0FBQzFCO0FBRUEsSUFBTUksa0JBQWtCLEdBQUc7RUFDekIzQyxRQUFRLEVBQUU0QyxnQkFBUztFQUNuQjNDLFNBQVMsRUFBRTRDO0FBQ2IsQ0FBQztBQVlEQyx5QkFBeUIsQ0FBQzlHLElBQUksR0FBRyxDQUFDZ0IsdUJBQXVCLENBQUM7QUFFbkQsU0FBUzhGLHlCQUF5QkEsQ0FDdkN6RixnQkFBNEQsRUFDNUQ7RUFDQSxJQUFNMEYsa0JBQXFELEdBQUcsU0FBeERBLGtCQUFxREEsQ0FBQUMsS0FBQSxFQVFyRDtJQUFBLElBUEp2RixLQUFLLEdBQUF1RixLQUFBLENBQUx2RixLQUFLO01BQ0x3RixVQUFVLEdBQUFELEtBQUEsQ0FBVkMsVUFBVTtNQUNWbkYsUUFBUSxHQUFBa0YsS0FBQSxDQUFSbEYsUUFBUTtNQUNSSCxXQUFXLEdBQUFxRixLQUFBLENBQVhyRixXQUFXO01BQ1hFLFFBQVEsR0FBQW1GLEtBQUEsQ0FBUm5GLFFBQVE7TUFDUkQsc0JBQXNCLEdBQUFvRixLQUFBLENBQXRCcEYsc0JBQXNCO01BQ3RCRyxXQUFXLEdBQUFpRixLQUFBLENBQVhqRixXQUFXO0lBRVgsSUFBTW1GLGNBQWMsR0FBR3pGLEtBQUssQ0FBQzBGLHVCQUF1QixDQUFDLENBQUM7SUFDdEQsSUFBTUMsV0FBVyxHQUFHdEssTUFBTSxDQUFDdUssTUFBTSxDQUFDSCxjQUFjLENBQUM7SUFDakQsSUFBTUksYUFBYSxHQUFHRixXQUFXLENBQUMxSixNQUFNLENBQUNxSSxjQUFjLENBQW9CO0lBQzNFLElBQU13QixnQkFBZ0IsR0FBR0gsV0FBVyxDQUFDMUosTUFBTSxDQUFDLFVBQUE4SixFQUFFO01BQUEsT0FBSSxDQUFDekIsY0FBYyxDQUFDeUIsRUFBRSxDQUFDO0lBQUEsRUFBQztJQUN0RSxJQUFNdkksS0FBSyxHQUFHZ0ksVUFBVSxHQUFHLENBQUMsR0FBR1EscUJBQVUsQ0FBQzdJLFVBQVUsQ0FBQ0MsT0FBTzs7SUFFNUQ7SUFDQSxJQUFJNkksb0JBQW9CLEdBQUdKLGFBQWEsQ0FBQzVKLE1BQU0sQ0FDN0MsVUFBQWlLLEVBQUU7TUFBQSxJQUFBQyxxQkFBQTtNQUFBLE9BQ0EsQ0FBQyxDQUFDRCxFQUFFLENBQUNFLFNBQVMsSUFBSUYsRUFBRSxDQUFDRSxTQUFTLENBQUNwRyxLQUFLLENBQUNELE1BQU0sQ0FBQyxPQUFBb0cscUJBQUEsR0FDNUNuRyxLQUFLLENBQUM2RCwyQkFBMkIsQ0FBQ3FDLEVBQUUsQ0FBQ2pELEdBQUcsQ0FBQyxjQUFBa0QscUJBQUEsdUJBQXpDQSxxQkFBQSxDQUEyQ3pGLE9BQU87SUFBQSxDQUN0RCxDQUFDO0lBQ0Q7SUFDQSxJQUFJLENBQUN1RixvQkFBb0IsQ0FBQzFKLE1BQU0sRUFBRTtNQUNoQzBKLG9CQUFvQixHQUFHSixhQUFhLENBQUM1SixNQUFNLENBQ3pDLFVBQUFpSyxFQUFFO1FBQUEsT0FBSSxDQUFDQSxFQUFFLENBQUNFLFNBQVMsSUFBSUYsRUFBRSxDQUFDRSxTQUFTLENBQUNwRyxLQUFLLENBQUNELE1BQU0sQ0FBQztNQUFBLENBQ25ELENBQUM7SUFDSDtJQUNBLG9CQUNFdEcsTUFBQSxZQUFBc0UsYUFBQSxDQUFBdEUsTUFBQSxZQUFBNE0sUUFBQSxRQUNHSixvQkFBb0IsQ0FBQy9FLEdBQUcsQ0FBQyxVQUFBakIsWUFBWTtNQUFBLG9CQUNwQ3hHLE1BQUEsWUFBQXNFLGFBQUEsQ0FBQzZCLGdCQUFnQjtRQUNmcUQsR0FBRyxFQUFFaEQsWUFBWSxDQUFDZ0QsR0FBSTtRQUN0QmhELFlBQVksRUFBRUEsWUFBYTtRQUMzQkYsTUFBTSxFQUFFQyxLQUFLLENBQUNELE1BQU87UUFDckJELFdBQVcsRUFBRUUsS0FBSyxDQUFDNkQsMkJBQTJCLENBQUM1RCxZQUFZLENBQUNnRCxHQUFHLENBQUU7UUFDakVqRCxLQUFLLEVBQUVBLEtBQU07UUFDYkksUUFBUSxFQUFFQSxRQUFTO1FBQ25CRixXQUFXLEVBQUVBLFdBQVk7UUFDekJHLFFBQVEsRUFBRUEsUUFBUztRQUNuQkYsc0JBQXNCLEVBQUVBLHNCQUF1QjtRQUMvQ0csV0FBVyxFQUFFQTtNQUFZLENBQzFCLENBQUM7SUFBQSxDQUNILENBQUMsRUFDRHdGLGdCQUFnQixDQUFDNUUsR0FBRyxDQUFDLFVBQUMwQyxhQUE0QixFQUFLO01BQ3RELElBQU0wQyxjQUFjLEdBQUcsQ0FBQzFDLGFBQWEsQ0FBQ3dDLFNBQVMsSUFBSXhDLGFBQWEsQ0FBQ3dDLFNBQVMsQ0FBQ3BHLEtBQUssQ0FBQ0QsTUFBTSxDQUFDO01BQ3hGLElBQU13RyxPQUFPLEdBQUd2RyxLQUFLLENBQUNELE1BQU0sQ0FBQzZELGFBQWEsQ0FBQ2hELEtBQUssQ0FBQyxJQUFJZ0QsYUFBYSxDQUFDNEMsY0FBYztNQUVqRixJQUFJRixjQUFjLElBQUlDLE9BQU8sRUFBRTtRQUM3QixJQUFNekcsV0FBVyxHQUFHRSxLQUFLLENBQUM2RCwyQkFBMkIsQ0FBQ0QsYUFBYSxDQUFDWCxHQUFHLENBQUM7UUFDeEUsSUFBSTBCLGVBQWUsQ0FBQ2YsYUFBYSxDQUFDLEVBQUU7VUFDbEMsb0JBQ0VuSyxNQUFBLFlBQUFzRSxhQUFBLENBQUMyRixpQkFBaUI7WUFDaEJULEdBQUcsRUFBRVcsYUFBYSxDQUFDWCxHQUFJO1lBQ3ZCakQsS0FBSyxFQUFFQSxLQUFNO1lBQ2JLLFFBQVEsRUFBRUEsUUFBUztZQUNuQjdDLEtBQUssRUFBRUEsS0FBTTtZQUNib0csYUFBYSxFQUFFQTtVQUFjLENBQzlCLENBQUM7UUFFTjtRQUNBLG9CQUNFbkssTUFBQSxZQUFBc0UsYUFBQSxDQUFDSSxrQkFBa0I7VUFDakI4RSxHQUFHLEVBQUVXLGFBQWEsQ0FBQ1gsR0FBSTtVQUN2QjVFLEtBQUssRUFBRXlCLFdBQVcsQ0FBQ3pCLEtBQU07VUFDekJQLElBQUksRUFBRWdDLFdBQVcsQ0FBQ1k7UUFBUSxDQUMzQixDQUFDO01BRU47TUFDQSxPQUFPLElBQUk7SUFDYixDQUFDLENBQ0QsQ0FBQztFQUVQLENBQUM7RUFFRCxPQUFPNEUsa0JBQWtCO0FBQzNCO0FBZUFtQixnQkFBZ0IsQ0FBQ2xJLElBQUksR0FBRyxDQUFDc0csd0JBQXdCLEVBQUVRLHlCQUF5QixDQUFDO0FBRTdFLFNBQVNvQixnQkFBZ0JBLENBQ3ZCM0IsaUJBQThELEVBQzlEUSxrQkFBZ0UsRUFDaEU7RUFDQSxJQUFNb0IsU0FBbUMsR0FBRyxTQUF0Q0EsU0FBbUNBLENBQUFDLEtBQUE7SUFBQSxJQUFBQyxZQUFBLEdBQUFELEtBQUEsQ0FDdkNFLE1BQU07TUFBTkEsTUFBTSxHQUFBRCxZQUFBLGNBQUcsRUFBRSxHQUFBQSxZQUFBO01BQ1hwSixLQUFLLEdBQUFtSixLQUFBLENBQUxuSixLQUFLO01BQ0w2QyxRQUFRLEdBQUFzRyxLQUFBLENBQVJ0RyxRQUFRO01BQ1IyRSxPQUFPLEdBQUEyQixLQUFBLENBQVAzQixPQUFPO01BQ1A5RSxXQUFXLEdBQUF5RyxLQUFBLENBQVh6RyxXQUFXO01BQ1hFLFFBQVEsR0FBQXVHLEtBQUEsQ0FBUnZHLFFBQVE7TUFDUkQsc0JBQXNCLEdBQUF3RyxLQUFBLENBQXRCeEcsc0JBQXNCO01BQUEyRyxpQkFBQSxHQUFBSCxLQUFBLENBQ3RCckcsV0FBVztNQUFYQSxXQUFXLEdBQUF3RyxpQkFBQSxjQUFHNUIsa0JBQWtCLEdBQUE0QixpQkFBQTtJQUFBLG9CQUVoQ3JOLE1BQUEsWUFBQXNFLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQVksR0FDeEI2SSxNQUFNLENBQUMzRixHQUFHLENBQUMsVUFBQ2xCLEtBQUssRUFBRStHLEtBQUssRUFBSztNQUM1QixJQUFJLENBQUMvRyxLQUFLLENBQUNnSCxhQUFhLENBQUMsQ0FBQyxJQUFJaEgsS0FBSyxDQUFDRCxNQUFNLENBQUNrSCxNQUFNLEVBQUU7UUFDakQsT0FBTyxJQUFJO01BQ2I7TUFDQSxJQUFNekIsVUFBVSxHQUFHaEksS0FBSyxJQUFJd0kscUJBQVUsQ0FBQzdJLFVBQVUsQ0FBQ0ssS0FBSztNQUV2RCxvQkFDRS9ELE1BQUEsWUFBQXNFLGFBQUEsQ0FBQ25CLHNCQUFzQjtRQUNyQm9CLFNBQVMsRUFBQyxlQUFlO1FBQ3pCVCxJQUFJLEVBQUV3SixLQUFLLEtBQUtGLE1BQU0sQ0FBQ3RLLE1BQU0sR0FBRyxDQUFFO1FBQ2xDMEcsR0FBRyxFQUFFOEQsS0FBTTtRQUNYdkosS0FBSyxFQUFFZ0k7TUFBVyxnQkFFbEIvTCxNQUFBLFlBQUFzRSxhQUFBLENBQUMrRyxpQkFBaUI7UUFBQzFFLFFBQVEsRUFBRUEsUUFBUztRQUFDNEUsT0FBTyxFQUFFQSxPQUFRO1FBQUNoRixLQUFLLEVBQUVBO01BQU0sQ0FBRSxDQUFDLGVBQ3pFdkcsTUFBQSxZQUFBc0UsYUFBQSxDQUFDdUgsa0JBQWtCO1FBQ2pCRSxVQUFVLEVBQUVBLFVBQVc7UUFDdkJ4RixLQUFLLEVBQUVBLEtBQU07UUFDYkssUUFBUSxFQUFFQSxRQUFTO1FBQ25CSCxXQUFXLEVBQUVBLFdBQVk7UUFDekJFLFFBQVEsRUFBRUEsUUFBUztRQUNuQkQsc0JBQXNCLEVBQUVBLHNCQUF1QjtRQUMvQ0csV0FBVyxFQUFFQTtNQUFZLENBQzFCLENBQ3FCLENBQUM7SUFFN0IsQ0FBQyxDQUNFLENBQUM7RUFBQSxDQUNQO0VBRURvRyxTQUFTLENBQUN0SCxXQUFXLEdBQUcsV0FBVztFQUVuQyxPQUFPc0gsU0FBUztBQUNsQjtBQUFDLElBQUFRLFFBQUEsR0FBQXJLLE9BQUEsY0FFYzRKLGdCQUFnQiIsImlnbm9yZUxpc3QiOltdfQ==
366
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfZDNDb2xvciIsIl9kM0Zvcm1hdCIsIl9yZWFjdEludGwiLCJfY29sb3JMZWdlbmQiLCJfcmFkaXVzTGVnZW5kIiwiX2NvbnN0YW50cyIsIl9sb2NhbGl6YXRpb24iLCJfdmlld3BvcnRNZXJjYXRvclByb2plY3QiLCJfaWNvbnMiLCJfcGFuZWxIZWFkZXJBY3Rpb24iLCJfdGVtcGxhdGVPYmplY3QiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJTdHlsZWRNYXBDb250cm9sTGVnZW5kIiwiZXhwb3J0cyIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsIm1hcENvbnRyb2wiLCJwYWRkaW5nIiwiZm9udEZhbWlseSIsInBhbmVsQm9yZGVyQ29sb3IiLCJsYXN0Iiwid2lkdGgiLCJ0ZXh0Q29sb3IiLCJzdWJ0ZXh0Q29sb3IiLCJ0ZXh0Q29sb3JIbCIsIlZpc3VhbENoYW5uZWxNZXRyaWMiLCJfcmVmIiwibmFtZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJGb3JtYXR0ZWRNZXNzYWdlIiwiaWQiLCJMYXllckRlZmF1bHRMZWdlbmQiLCJfcmVmMiIsImxhYmVsIiwiU2luZ2xlQ29sb3JMZWdlbmRGYWN0b3J5IiwiZGVwcyIsIkxlZ2VuZFJvd0ZhY3RvcnkiLCJMZWdlbmRSb3ciLCJTaW5nbGVDb2xvckxlZ2VuZCIsIl9yZWYzIiwiY29sb3IiLCJkaXNwbGF5TGFiZWwiLCJCb29sZWFuIiwiQXJyYXkiLCJpc0FycmF5IiwicmdiIiwiX3RvQ29uc3VtYWJsZUFycmF5MiIsInRvU3RyaW5nIiwiZGlzcGxheU5hbWUiLCJSZWFjdCIsIm1lbW8iLCJMYXllckNvbG9yTGVnZW5kRmFjdG9yeSIsIkNvbG9yTGVnZW5kRmFjdG9yeSIsIlBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeSIsIkNvbG9yTGVnZW5kIiwiUGFuZWxIZWFkZXJBY3Rpb24iLCJMYXllckNvbG9yTGVnZW5kIiwiX3JlZjQiLCJkZXNjcmlwdGlvbiIsImNvbmZpZyIsImxheWVyIiwiY29sb3JDaGFubmVsIiwiZGlzYWJsZUVkaXQiLCJvbkxheWVyVmlzQ29uZmlnQ2hhbmdlIiwiaXNFeHBvcnQiLCJtYXBTdGF0ZSIsImFjdGlvbkljb25zIiwiaW50bCIsInVzZUludGwiLCJlbmFibGVDb2xvckJ5IiwibWVhc3VyZSIsInNjYWxlIiwiZmllbGQiLCJkb21haW4iLCJyYW5nZSIsInByb3BlcnR5IiwiZml4ZWQiLCJfbWFwIiwibWFwIiwiayIsIl9tYXAyIiwiX3NsaWNlZFRvQXJyYXkyIiwiY29sb3JTY2FsZSIsImNvbG9yRmllbGQiLCJjb2xvckRvbWFpbiIsImlzRml4ZWQiLCJ2aXNDb25maWciLCJjb2xvclJhbmdlIiwib25VcGRhdGVDb2xvckxlZ2VuZCIsInVzZUNhbGxiYWNrIiwiY29sb3JMZWdlbmRzIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiaXNFeHBhbmRlZCIsInNldElzRXhwYW5kZWQiLCJoYW5kbGVUb2dnbGVFeHBhbmRlZCIsIm9uQ2xpY2siLCJJY29uQ29tcG9uZW50IiwiZXhwYW5kZWQiLCJjb2xsYXBzZWQiLCJzY2FsZVR5cGUiLCJmaWVsZFR5cGUiLCJ0eXBlIiwibGFiZWxGb3JtYXQiLCJkaXNwbGF5Rm9ybWF0IiwiZDNGb3JtYXQiLCJmb3JtYXRNZXNzYWdlIiwiY29uY2F0Iiwia2V5IiwiZGVmYXVsdE1lc3NhZ2UiLCJnZXRMYXllclJhZGl1c1NjYWxlTWV0ZXJzVG9QaXhlbHNNdWx0aXBsaWVyIiwiX2dldERpc3RhbmNlU2NhbGVzIiwiZ2V0RGlzdGFuY2VTY2FsZXMiLCJtZXRlcnNQZXJQaXhlbCIsImZpeGVkUmFkaXVzIiwic2l6ZUZpZWxkIiwiZ2V0UmFkaXVzU2NhbGVCeVpvb20iLCJMYXllclJhZGl1c0xlZ2VuZCIsIl9yZWY1IiwidmlzdWFsQ2hhbm5lbCIsImdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbiIsImVuYWJsZVNpemVCeSIsIl9tYXAzIiwiX21hcDQiLCJzaXplU2NhbGUiLCJzaXplRG9tYWluIiwic2l6ZVJhbmdlIiwicmFkaXVzTXVsdGlwbGllciIsInYiLCJpc0NvbG9yQ2hhbm5lbCIsIkNIQU5ORUxfU0NBTEVTIiwiY29sb3JBZ2dyIiwiaW5jbHVkZXMiLCJjaGFubmVsU2NhbGVUeXBlIiwiaXNSYWRpdXNDaGFubmVsIiwicmFkaXVzIiwiTGF5ZXJMZWdlbmRIZWFkZXJGYWN0b3J5IiwiTGF5ZXJMZWdlbmRIZWFkZXIiLCJfcmVmNiIsIm9wdGlvbnMiLCJzaG93TGF5ZXJOYW1lIiwiZGVmYXVsdEFjdGlvbkljb25zIiwiQXJyb3dEb3duIiwiQXJyb3dSaWdodCIsIkxheWVyTGVnZW5kQ29udGVudEZhY3RvcnkiLCJMYXllckxlZ2VuZENvbnRlbnQiLCJfcmVmNyIsImNvbnRhaW5lclciLCJ2aXN1YWxDaGFubmVscyIsImdldExlZ2VuZFZpc3VhbENoYW5uZWxzIiwiY2hhbm5lbEtleXMiLCJ2YWx1ZXMiLCJjb2xvckNoYW5uZWxzIiwibm9uQ29sb3JDaGFubmVscyIsInZjIiwiRElNRU5TSU9OUyIsImNvbG9yQ2hhbm5lbFRvUmVuZGVyIiwiY2MiLCJfbGF5ZXIkZ2V0VmlzdWFsQ2hhbm4iLCJjb25kaXRpb24iLCJGcmFnbWVudCIsIm1hdGNoQ29uZGl0aW9uIiwiZW5hYmxlZCIsImRlZmF1bHRNZWFzdXJlIiwiTWFwTGVnZW5kRmFjdG9yeSIsIk1hcExlZ2VuZCIsIl9yZWY4IiwiX3JlZjgkbGF5ZXJzIiwibGF5ZXJzIiwiX3JlZjgkYWN0aW9uSWNvbnMiLCJpbmRleCIsImlzVmFsaWRUb1NhdmUiLCJoaWRkZW4iLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbWFwLWxlZ2VuZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7RkMsIHVzZUNhbGxiYWNrLCB1c2VTdGF0ZSwgQ29tcG9uZW50VHlwZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge3JnYn0gZnJvbSAnZDMtY29sb3InO1xuaW1wb3J0IHtmb3JtYXQgYXMgZDNGb3JtYXR9IGZyb20gJ2QzLWZvcm1hdCc7XG5pbXBvcnQge3VzZUludGx9IGZyb20gJ3JlYWN0LWludGwnO1xuaW1wb3J0IENvbG9yTGVnZW5kRmFjdG9yeSwge0xlZ2VuZFJvd0ZhY3Rvcnl9IGZyb20gJy4uL2NvbW1vbi9jb2xvci1sZWdlbmQnO1xuaW1wb3J0IFJhZGl1c0xlZ2VuZCBmcm9tICcuLi9jb21tb24vcmFkaXVzLWxlZ2VuZCc7XG5pbXBvcnQge0NIQU5ORUxfU0NBTEVTLCBESU1FTlNJT05TfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7TGF5ZXIsIExheWVyQmFzZUNvbmZpZywgVmlzdWFsQ2hhbm5lbCwgVmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9ufSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge0xheWVyVmlzQ29uZmlnLCBNYXBTdGF0ZSwgUkdCQ29sb3J9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtnZXREaXN0YW5jZVNjYWxlc30gZnJvbSAndmlld3BvcnQtbWVyY2F0b3ItcHJvamVjdCc7XG5pbXBvcnQge0Fycm93RG93biwgQXJyb3dSaWdodH0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCBQYW5lbEhlYWRlckFjdGlvbkZhY3RvcnkgZnJvbSAnLi4vc2lkZS1wYW5lbC9wYW5lbC1oZWFkZXItYWN0aW9uJztcblxuaW50ZXJmYWNlIFN0eWxlZE1hcENvbnRyb2xMZWdlbmRQcm9wcyB7XG4gIHdpZHRoPzogbnVtYmVyO1xuICBsYXN0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1hcENvbnRyb2xMZWdlbmQgPSBzdHlsZWQuZGl2PFN0eWxlZE1hcENvbnRyb2xMZWdlbmRQcm9wcz5gXG4gIHBhZGRpbmc6IDEwcHggJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5tYXBDb250cm9sLnBhZGRpbmd9cHggMTBweFxuICAgICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubWFwQ29udHJvbC5wYWRkaW5nfXB4O1xuICBmb250LXNpemU6IDExcHg7XG4gIGZvbnQtZmFtaWx5OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmZvbnRGYW1pbHl9O1xuICBib3JkZXItYm90dG9tLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQm9yZGVyQ29sb3J9O1xuICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogJHtwcm9wcyA9PiAocHJvcHMubGFzdCA/IDAgOiAnMXB4Jyl9O1xuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy53aWR0aH1weDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAubGVnZW5kLS1sYXllcl9uYW1lIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5tYXBDb250cm9sLnBhZGRpbmd9cHg7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICB9XG4gIC5sZWdlbmQtLWxheWVyX3R5cGUge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnN1YnRleHRDb2xvcn07XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5tYXBDb250cm9sLnBhZGRpbmd9cHg7XG4gIH1cblxuICAubGVnZW5kLS1sYXllcl9zaXplLXRpdGxlLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgcGFkZGluZy1yaWdodDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5tYXBDb250cm9sLnBhZGRpbmd9cHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgfVxuXG4gIC5sZWdlbmQtLWxheWVyX190aXRsZSB7XG4gIH1cblxuICAubGVnZW5kLS1sYXllcl9faXRlbSB7XG4gICAgcGFkZGluZy1ib3R0b206IDRweDtcbiAgfVxuICAubGVnZW5kLS1sYXllcl9ieSB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yfTtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gIH1cblxuICAubGVnZW5kLS1sYXllcl9jb2xvcl9maWVsZCB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9ySGx9O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIH1cblxuICAubGVnZW5kLS1sYXllcl9jb2xvci1sZWdlbmQge1xuICAgIG1hcmdpbi10b3A6IDZweDtcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IFZpc3VhbENoYW5uZWxNZXRyaWMgPSAoe25hbWV9KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX190aXRsZVwiPlxuICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9jb2xvcl9maWVsZFwiPlxuICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17bmFtZX0gLz5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCB0eXBlIExheWVyU2l6ZUxlZ2VuZFByb3BzID0ge1xuICBsYWJlbDogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG59O1xuXG5leHBvcnQgY29uc3QgTGF5ZXJEZWZhdWx0TGVnZW5kOiBSZWFjdC5GQzxMYXllclNpemVMZWdlbmRQcm9wcz4gPSAoe2xhYmVsLCBuYW1lfSkgPT5cbiAgbGFiZWwgPyAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX3NpemUtc2NoZW1hXCI+XG4gICAgICA8cD5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9ieVwiPntsYWJlbCA/IDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXtsYWJlbH0gLz4gOiBudWxsfTwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9ieVwiPiBieSA8L3NwYW4+XG4gICAgICA8L3A+XG4gICAgICB7bmFtZSAmJiA8VmlzdWFsQ2hhbm5lbE1ldHJpYyBuYW1lPXtuYW1lfSAvPn1cbiAgICA8L2Rpdj5cbiAgKSA6IG51bGw7XG5cbmV4cG9ydCB0eXBlIFNpbmdsZUNvbG9yTGVnZW5kUHJvcHMgPSB7XG4gIGNvbG9yOiBSR0JDb2xvcjtcbiAgbGFiZWw/OiBzdHJpbmc7XG59O1xuXG5TaW5nbGVDb2xvckxlZ2VuZEZhY3RvcnkuZGVwcyA9IFtMZWdlbmRSb3dGYWN0b3J5XTtcblxuZXhwb3J0IGZ1bmN0aW9uIFNpbmdsZUNvbG9yTGVnZW5kRmFjdG9yeShMZWdlbmRSb3c6IFJldHVyblR5cGU8dHlwZW9mIExlZ2VuZFJvd0ZhY3Rvcnk+KSB7XG4gIGNvbnN0IFNpbmdsZUNvbG9yTGVnZW5kOiBSZWFjdC5GQzxTaW5nbGVDb2xvckxlZ2VuZFByb3BzPiA9ICh7Y29sb3IsIGxhYmVsfSkgPT4gKFxuICAgIDxMZWdlbmRSb3dcbiAgICAgIGxhYmVsPXtsYWJlbCA/PyAnJ31cbiAgICAgIGRpc3BsYXlMYWJlbD17Qm9vbGVhbihsYWJlbCl9XG4gICAgICBjb2xvcj17QXJyYXkuaXNBcnJheShjb2xvcikgPyByZ2IoLi4uY29sb3IpLnRvU3RyaW5nKCkgOiBjb2xvcn1cbiAgICAvPlxuICApO1xuXG4gIFNpbmdsZUNvbG9yTGVnZW5kLmRpc3BsYXlOYW1lID0gJ1NpbmdsZUNvbG9yTGVnZW5kJztcblxuICByZXR1cm4gUmVhY3QubWVtbyhTaW5nbGVDb2xvckxlZ2VuZCk7XG59XG5cbmV4cG9ydCB0eXBlIExheWVyQ29sb3JMZWdlbmRQcm9wcyA9IHtcbiAgZGVzY3JpcHRpb246IFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbjtcbiAgY29uZmlnOiBMYXllckJhc2VDb25maWc7XG4gIGNvbG9yQ2hhbm5lbDogVmlzdWFsQ2hhbm5lbDtcbiAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT86IChvbGRMYXllcjogTGF5ZXIsIG5ld1Zpc0NvbmZpZzogUGFydGlhbDxMYXllclZpc0NvbmZpZz4pID0+IHZvaWQ7XG4gIGxheWVyOiBMYXllcjtcbiAgZGlzYWJsZUVkaXQ/OiBib29sZWFuO1xuICBpc0V4cG9ydD86IGJvb2xlYW47XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIGFjdGlvbkljb25zOiBNYXBMZWdlbmRJY29ucztcbn07XG5cbkxheWVyQ29sb3JMZWdlbmRGYWN0b3J5LmRlcHMgPSBbXG4gIENvbG9yTGVnZW5kRmFjdG9yeSxcbiAgU2luZ2xlQ29sb3JMZWdlbmRGYWN0b3J5LFxuICBQYW5lbEhlYWRlckFjdGlvbkZhY3Rvcnlcbl07XG5leHBvcnQgZnVuY3Rpb24gTGF5ZXJDb2xvckxlZ2VuZEZhY3RvcnkoXG4gIENvbG9yTGVnZW5kOiBSZXR1cm5UeXBlPHR5cGVvZiBDb2xvckxlZ2VuZEZhY3Rvcnk+LFxuICBTaW5nbGVDb2xvckxlZ2VuZDogUmV0dXJuVHlwZTx0eXBlb2YgU2luZ2xlQ29sb3JMZWdlbmRGYWN0b3J5PixcbiAgUGFuZWxIZWFkZXJBY3Rpb246IFJldHVyblR5cGU8dHlwZW9mIFBhbmVsSGVhZGVyQWN0aW9uRmFjdG9yeT5cbikge1xuICBjb25zdCBMYXllckNvbG9yTGVnZW5kOiBSZWFjdC5GQzxMYXllckNvbG9yTGVnZW5kUHJvcHM+ID0gKHtcbiAgICBkZXNjcmlwdGlvbixcbiAgICBjb25maWcsXG4gICAgbGF5ZXIsXG4gICAgY29sb3JDaGFubmVsLFxuICAgIGRpc2FibGVFZGl0LFxuICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsXG4gICAgaXNFeHBvcnQsXG4gICAgbWFwU3RhdGUsXG4gICAgYWN0aW9uSWNvbnNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGludGwgPSB1c2VJbnRsKCk7XG4gICAgY29uc3QgZW5hYmxlQ29sb3JCeSA9IGRlc2NyaXB0aW9uLm1lYXN1cmU7XG4gICAgY29uc3Qge3NjYWxlLCBmaWVsZCwgZG9tYWluLCByYW5nZSwgcHJvcGVydHksIGZpeGVkfSA9IGNvbG9yQ2hhbm5lbDtcbiAgICBjb25zdCBbY29sb3JTY2FsZSwgY29sb3JGaWVsZCwgY29sb3JEb21haW5dID0gW3NjYWxlLCBmaWVsZCwgZG9tYWluXS5tYXAoayA9PiBjb25maWdba10pO1xuICAgIGNvbnN0IGlzRml4ZWQgPSBmaXhlZCAmJiBjb25maWcudmlzQ29uZmlnW2ZpeGVkXTtcblxuICAgIGNvbnN0IGNvbG9yUmFuZ2UgPSBjb25maWcudmlzQ29uZmlnW3JhbmdlXTtcbiAgICBjb25zdCBvblVwZGF0ZUNvbG9yTGVnZW5kID0gdXNlQ2FsbGJhY2soXG4gICAgICBjb2xvckxlZ2VuZHMgPT4ge1xuICAgICAgICBpZiAob25MYXllclZpc0NvbmZpZ0NoYW5nZSkge1xuICAgICAgICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UobGF5ZXIsIHtcbiAgICAgICAgICAgIFtyYW5nZV06IHtcbiAgICAgICAgICAgICAgLi4uY29sb3JSYW5nZSxcbiAgICAgICAgICAgICAgY29sb3JMZWdlbmRzXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbbGF5ZXIsIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsIGNvbG9yUmFuZ2UsIHJhbmdlXVxuICAgICk7XG4gICAgY29uc3QgW2lzRXhwYW5kZWQsIHNldElzRXhwYW5kZWRdID0gdXNlU3RhdGUoaXNFeHBvcnQpO1xuICAgIGNvbnN0IGhhbmRsZVRvZ2dsZUV4cGFuZGVkID0gKCkgPT4gc2V0SXNFeHBhbmRlZCghaXNFeHBhbmRlZCk7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9faXRlbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfY29sb3Itc2NoZW1hXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHtlbmFibGVDb2xvckJ5ID8gKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfc2l6ZS10aXRsZS1yb3dcIj5cbiAgICAgICAgICAgICAgICA8VmlzdWFsQ2hhbm5lbE1ldHJpYyBuYW1lPXtlbmFibGVDb2xvckJ5fSAvPlxuICAgICAgICAgICAgICAgIHshaXNFeHBvcnQgPyAoXG4gICAgICAgICAgICAgICAgICA8UGFuZWxIZWFkZXJBY3Rpb25cbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJsZWdlbmQtY29sbGFwc2UtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlVG9nZ2xlRXhwYW5kZWR9XG4gICAgICAgICAgICAgICAgICAgIEljb25Db21wb25lbnQ9e2lzRXhwYW5kZWQgPyBhY3Rpb25JY29ucy5leHBhbmRlZCA6IGFjdGlvbkljb25zLmNvbGxhcHNlZH1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfY29sb3ItbGVnZW5kXCI+XG4gICAgICAgICAgICAgIHtlbmFibGVDb2xvckJ5ID8gKFxuICAgICAgICAgICAgICAgIDxDb2xvckxlZ2VuZFxuICAgICAgICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgICAgICAgaXNFeHBhbmRlZD17aXNFeHBhbmRlZH1cbiAgICAgICAgICAgICAgICAgIHNjYWxlVHlwZT17Y29sb3JTY2FsZX1cbiAgICAgICAgICAgICAgICAgIGRpc3BsYXlMYWJlbFxuICAgICAgICAgICAgICAgICAgZG9tYWluPXtjb2xvckRvbWFpbn1cbiAgICAgICAgICAgICAgICAgIGZpZWxkVHlwZT17KGNvbG9yRmllbGQgJiYgY29sb3JGaWVsZC50eXBlKSB8fCAncmVhbCd9XG4gICAgICAgICAgICAgICAgICByYW5nZT17Y29sb3JSYW5nZX1cbiAgICAgICAgICAgICAgICAgIG9uVXBkYXRlQ29sb3JMZWdlbmQ9e29uVXBkYXRlQ29sb3JMZWdlbmR9XG4gICAgICAgICAgICAgICAgICBkaXNhYmxlRWRpdD17ZGlzYWJsZUVkaXQgfHwgQm9vbGVhbihpc0V4cG9ydCl9XG4gICAgICAgICAgICAgICAgICBpc0ZpeGVkPXtpc0ZpeGVkfVxuICAgICAgICAgICAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICAgICAgICAgICAgbGFiZWxGb3JtYXQ9e1xuICAgICAgICAgICAgICAgICAgICBjb2xvckZpZWxkPy5kaXNwbGF5Rm9ybWF0ID8gZDNGb3JtYXQoY29sb3JGaWVsZD8uZGlzcGxheUZvcm1hdCkgOiBudWxsXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICA8U2luZ2xlQ29sb3JMZWdlbmRcbiAgICAgICAgICAgICAgICAgIGNvbG9yPXtjb25maWcudmlzQ29uZmlnW3Byb3BlcnR5XSB8fCBjb25maWdbcHJvcGVydHldIHx8IGNvbmZpZy5jb2xvcn1cbiAgICAgICAgICAgICAgICAgIGxhYmVsPXtpbnRsLmZvcm1hdE1lc3NhZ2Uoe1xuICAgICAgICAgICAgICAgICAgICBpZDogYG1hcExlZ2VuZC5sYXllcnMuJHtsYXllci50eXBlfS5zaW5nbGVDb2xvci4ke2NvbG9yQ2hhbm5lbC5rZXl9YCxcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE1lc3NhZ2U6IGludGwuZm9ybWF0TWVzc2FnZSh7XG4gICAgICAgICAgICAgICAgICAgICAgaWQ6IGBtYXBMZWdlbmQubGF5ZXJzLmRlZmF1bHQuc2luZ2xlQ29sb3IuJHtjb2xvckNoYW5uZWwua2V5fWAsXG4gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE1lc3NhZ2U6ICcgJyAvLyBtdXN0bid0IGJlIGVtcHR5IHN0cmluZyBvciBpZCB3aWxsIGJlIHVzZWRcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9O1xuXG4gIExheWVyQ29sb3JMZWdlbmQuZGlzcGxheU5hbWUgPSAnTGF5ZXJDb2xvckxlZ2VuZCc7XG4gIHJldHVybiBSZWFjdC5tZW1vKExheWVyQ29sb3JMZWdlbmQpO1xufVxuXG5mdW5jdGlvbiBnZXRMYXllclJhZGl1c1NjYWxlTWV0ZXJzVG9QaXhlbHNNdWx0aXBsaWVyKGxheWVyLCBtYXBTdGF0ZSkge1xuICAvLyBAdHMtaWdub3JlIHRoaXMgYWN0dWFsbHkgZXhpc3RcbiAgY29uc3Qge21ldGVyc1BlclBpeGVsfSA9IGdldERpc3RhbmNlU2NhbGVzKG1hcFN0YXRlKTtcbiAgLy8gaWYgbm8gZmllbGQgc2l6ZSBpcyBkZWZpbmVkIHdlIG5lZWQgdG8gcGFzcyBmaXhlZCByYWRpdXMgPSBmYWxzZVxuICBjb25zdCBmaXhlZFJhZGl1cyA9IGxheWVyLmNvbmZpZy52aXNDb25maWcuZml4ZWRSYWRpdXMgJiYgQm9vbGVhbihsYXllci5jb25maWcuc2l6ZUZpZWxkKTtcbiAgcmV0dXJuIGxheWVyLmdldFJhZGl1c1NjYWxlQnlab29tKG1hcFN0YXRlLCBmaXhlZFJhZGl1cykgLyBtZXRlcnNQZXJQaXhlbFswXTtcbn1cblxuZXhwb3J0IHR5cGUgTWFwTGVnZW5kSWNvbnMgPSB7XG4gIGV4cGFuZGVkOiBDb21wb25lbnRUeXBlPGFueT47XG4gIGNvbGxhcHNlZDogQ29tcG9uZW50VHlwZTxhbnk+O1xufTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJSYWRpdXNMZWdlbmRQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICB3aWR0aDogbnVtYmVyO1xuICBpc0V4cG9ydD86IGJvb2xlYW47XG4gIHZpc3VhbENoYW5uZWw6IFZpc3VhbENoYW5uZWw7XG59O1xuXG5leHBvcnQgY29uc3QgTGF5ZXJSYWRpdXNMZWdlbmQ6IEZDPExheWVyUmFkaXVzTGVnZW5kUHJvcHM+ID0gUmVhY3QubWVtbyhcbiAgKHtsYXllciwgd2lkdGgsIHZpc3VhbENoYW5uZWwsIG1hcFN0YXRlfSkgPT4ge1xuICAgIGNvbnN0IGRlc2NyaXB0aW9uID0gbGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKHZpc3VhbENoYW5uZWwua2V5KTtcbiAgICBjb25zdCBjb25maWcgPSBsYXllci5jb25maWc7XG5cbiAgICBjb25zdCBlbmFibGVTaXplQnkgPSBkZXNjcmlwdGlvbi5tZWFzdXJlO1xuICAgIGNvbnN0IHtzY2FsZSwgZmllbGQsIGRvbWFpbiwgcmFuZ2V9ID0gdmlzdWFsQ2hhbm5lbDtcbiAgICBjb25zdCBbc2l6ZVNjYWxlLCBzaXplRmllbGQsIHNpemVEb21haW5dID0gW3NjYWxlLCBmaWVsZCwgZG9tYWluXS5tYXAoayA9PiBjb25maWdba10pO1xuICAgIGxldCBzaXplUmFuZ2UgPSBjb25maWcudmlzQ29uZmlnW3JhbmdlXTtcblxuICAgIGlmIChtYXBTdGF0ZSkge1xuICAgICAgY29uc3QgcmFkaXVzTXVsdGlwbGllciA9IGdldExheWVyUmFkaXVzU2NhbGVNZXRlcnNUb1BpeGVsc011bHRpcGxpZXIobGF5ZXIsIG1hcFN0YXRlKTtcbiAgICAgIHNpemVSYW5nZSA9IHNpemVSYW5nZS5tYXAodiA9PiB2ICogcmFkaXVzTXVsdGlwbGllcik7XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllcl9zaXplLXNjaGVtYVwiPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICB7ZW5hYmxlU2l6ZUJ5ID8gPFZpc3VhbENoYW5uZWxNZXRyaWMgbmFtZT17ZW5hYmxlU2l6ZUJ5fSAvPiA6IG51bGx9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImxlZ2VuZC0tbGF5ZXJfc2l6ZS1sZWdlbmRcIj5cbiAgICAgICAgICAgICAge2VuYWJsZVNpemVCeSA/IChcbiAgICAgICAgICAgICAgICA8UmFkaXVzTGVnZW5kXG4gICAgICAgICAgICAgICAgICBzY2FsZVR5cGU9e3NpemVTY2FsZX1cbiAgICAgICAgICAgICAgICAgIGRvbWFpbj17c2l6ZURvbWFpbn1cbiAgICAgICAgICAgICAgICAgIGZpZWxkVHlwZT17KHNpemVGaWVsZCAmJiBzaXplRmllbGQudHlwZSkgfHwgJ3JlYWwnfVxuICAgICAgICAgICAgICAgICAgcmFuZ2U9e3NpemVSYW5nZX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbik7XG5cbmNvbnN0IGlzQ29sb3JDaGFubmVsID0gdmlzdWFsQ2hhbm5lbCA9PlxuICBbQ0hBTk5FTF9TQ0FMRVMuY29sb3IsIENIQU5ORUxfU0NBTEVTLmNvbG9yQWdncl0uaW5jbHVkZXModmlzdWFsQ2hhbm5lbC5jaGFubmVsU2NhbGVUeXBlKTtcblxuZXhwb3J0IHR5cGUgTGF5ZXJMZWdlbmRIZWFkZXJQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBvcHRpb25zPzoge1xuICAgIHNob3dMYXllck5hbWU/OiBib29sZWFuO1xuICB9O1xuICBpc0V4cG9ydD86IGJvb2xlYW47XG59O1xuXG5jb25zdCBpc1JhZGl1c0NoYW5uZWwgPSB2aXN1YWxDaGFubmVsID0+XG4gIFtDSEFOTkVMX1NDQUxFUy5yYWRpdXNdLmluY2x1ZGVzKHZpc3VhbENoYW5uZWwuY2hhbm5lbFNjYWxlVHlwZSk7XG5cbmV4cG9ydCBmdW5jdGlvbiBMYXllckxlZ2VuZEhlYWRlckZhY3RvcnkoKSB7XG4gIGNvbnN0IExheWVyTGVnZW5kSGVhZGVyOiBSZWFjdC5GQzxMYXllckxlZ2VuZEhlYWRlclByb3BzPiA9ICh7b3B0aW9ucywgbGF5ZXJ9KSA9PiB7XG4gICAgcmV0dXJuIG9wdGlvbnM/LnNob3dMYXllck5hbWUgIT09IGZhbHNlID8gKFxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtLWxheWVyX25hbWVcIj57bGF5ZXIuY29uZmlnLmxhYmVsfTwvZGl2PlxuICAgICkgOiBudWxsO1xuICB9O1xuICByZXR1cm4gTGF5ZXJMZWdlbmRIZWFkZXI7XG59XG5cbmNvbnN0IGRlZmF1bHRBY3Rpb25JY29ucyA9IHtcbiAgZXhwYW5kZWQ6IEFycm93RG93bixcbiAgY29sbGFwc2VkOiBBcnJvd1JpZ2h0XG59O1xuXG5leHBvcnQgdHlwZSBMYXllckxlZ2VuZENvbnRlbnRQcm9wcyA9IHtcbiAgbGF5ZXI6IExheWVyO1xuICBjb250YWluZXJXOiBudW1iZXI7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIGRpc2FibGVFZGl0PzogYm9vbGVhbjtcbiAgaXNFeHBvcnQ/OiBib29sZWFuO1xuICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlPzogKG9sZExheWVyOiBMYXllciwgbmV3VmlzQ29uZmlnOiBQYXJ0aWFsPExheWVyVmlzQ29uZmlnPikgPT4gdm9pZDtcbiAgYWN0aW9uSWNvbnM6IE1hcExlZ2VuZEljb25zO1xufTtcblxuTGF5ZXJMZWdlbmRDb250ZW50RmFjdG9yeS5kZXBzID0gW0xheWVyQ29sb3JMZWdlbmRGYWN0b3J5XTtcblxuZXhwb3J0IGZ1bmN0aW9uIExheWVyTGVnZW5kQ29udGVudEZhY3RvcnkoXG4gIExheWVyQ29sb3JMZWdlbmQ6IFJldHVyblR5cGU8dHlwZW9mIExheWVyQ29sb3JMZWdlbmRGYWN0b3J5PlxuKSB7XG4gIGNvbnN0IExheWVyTGVnZW5kQ29udGVudDogUmVhY3QuRkM8TGF5ZXJMZWdlbmRDb250ZW50UHJvcHM+ID0gKHtcbiAgICBsYXllcixcbiAgICBjb250YWluZXJXLFxuICAgIG1hcFN0YXRlLFxuICAgIGRpc2FibGVFZGl0LFxuICAgIGlzRXhwb3J0LFxuICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2UsXG4gICAgYWN0aW9uSWNvbnNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHZpc3VhbENoYW5uZWxzID0gbGF5ZXIuZ2V0TGVnZW5kVmlzdWFsQ2hhbm5lbHMoKTtcbiAgICBjb25zdCBjaGFubmVsS2V5cyA9IE9iamVjdC52YWx1ZXModmlzdWFsQ2hhbm5lbHMpO1xuICAgIGNvbnN0IGNvbG9yQ2hhbm5lbHMgPSBjaGFubmVsS2V5cy5maWx0ZXIoaXNDb2xvckNoYW5uZWwpIGFzIFZpc3VhbENoYW5uZWxbXTtcbiAgICBjb25zdCBub25Db2xvckNoYW5uZWxzID0gY2hhbm5lbEtleXMuZmlsdGVyKHZjID0+ICFpc0NvbG9yQ2hhbm5lbCh2YykpO1xuICAgIGNvbnN0IHdpZHRoID0gY29udGFpbmVyVyAtIDIgKiBESU1FTlNJT05TLm1hcENvbnRyb2wucGFkZGluZztcblxuICAgIC8vIHJlbmRlciBjb2xvciBieSBjaGFuZWwgb25seVxuICAgIGxldCBjb2xvckNoYW5uZWxUb1JlbmRlciA9IGNvbG9yQ2hhbm5lbHMuZmlsdGVyKFxuICAgICAgY2MgPT5cbiAgICAgICAgKCFjYy5jb25kaXRpb24gfHwgY2MuY29uZGl0aW9uKGxheWVyLmNvbmZpZykpICYmXG4gICAgICAgIGxheWVyLmdldFZpc3VhbENoYW5uZWxEZXNjcmlwdGlvbihjYy5rZXkpPy5tZWFzdXJlXG4gICAgKTtcbiAgICAvLyBpZiBubyBjb2xvciBieSBjaGFuZWwsIHJlbmRlciByZXN0XG4gICAgaWYgKCFjb2xvckNoYW5uZWxUb1JlbmRlci5sZW5ndGgpIHtcbiAgICAgIGNvbG9yQ2hhbm5lbFRvUmVuZGVyID0gY29sb3JDaGFubmVscy5maWx0ZXIoXG4gICAgICAgIGNjID0+ICFjYy5jb25kaXRpb24gfHwgY2MuY29uZGl0aW9uKGxheWVyLmNvbmZpZylcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiAoXG4gICAgICA8PlxuICAgICAgICB7Y29sb3JDaGFubmVsVG9SZW5kZXIubWFwKGNvbG9yQ2hhbm5lbCA9PiAoXG4gICAgICAgICAgPExheWVyQ29sb3JMZWdlbmRcbiAgICAgICAgICAgIGtleT17Y29sb3JDaGFubmVsLmtleX1cbiAgICAgICAgICAgIGNvbG9yQ2hhbm5lbD17Y29sb3JDaGFubmVsfVxuICAgICAgICAgICAgY29uZmlnPXtsYXllci5jb25maWd9XG4gICAgICAgICAgICBkZXNjcmlwdGlvbj17bGF5ZXIuZ2V0VmlzdWFsQ2hhbm5lbERlc2NyaXB0aW9uKGNvbG9yQ2hhbm5lbC5rZXkpfVxuICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgaXNFeHBvcnQ9e2lzRXhwb3J0fVxuICAgICAgICAgICAgZGlzYWJsZUVkaXQ9e2Rpc2FibGVFZGl0fVxuICAgICAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICAgICAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT17b25MYXllclZpc0NvbmZpZ0NoYW5nZX1cbiAgICAgICAgICAgIGFjdGlvbkljb25zPXthY3Rpb25JY29uc31cbiAgICAgICAgICAvPlxuICAgICAgICApKX1cbiAgICAgICAge25vbkNvbG9yQ2hhbm5lbHMubWFwKCh2aXN1YWxDaGFubmVsOiBWaXN1YWxDaGFubmVsKSA9PiB7XG4gICAgICAgICAgY29uc3QgbWF0Y2hDb25kaXRpb24gPSAhdmlzdWFsQ2hhbm5lbC5jb25kaXRpb24gfHwgdmlzdWFsQ2hhbm5lbC5jb25kaXRpb24obGF5ZXIuY29uZmlnKTtcbiAgICAgICAgICBjb25zdCBlbmFibGVkID0gbGF5ZXIuY29uZmlnW3Zpc3VhbENoYW5uZWwuZmllbGRdIHx8IHZpc3VhbENoYW5uZWwuZGVmYXVsdE1lYXN1cmU7XG5cbiAgICAgICAgICBpZiAobWF0Y2hDb25kaXRpb24gJiYgZW5hYmxlZCkge1xuICAgICAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSBsYXllci5nZXRWaXN1YWxDaGFubmVsRGVzY3JpcHRpb24odmlzdWFsQ2hhbm5lbC5rZXkpO1xuICAgICAgICAgICAgaWYgKGlzUmFkaXVzQ2hhbm5lbCh2aXN1YWxDaGFubmVsKSkge1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxMYXllclJhZGl1c0xlZ2VuZFxuICAgICAgICAgICAgICAgICAga2V5PXt2aXN1YWxDaGFubmVsLmtleX1cbiAgICAgICAgICAgICAgICAgIGxheWVyPXtsYXllcn1cbiAgICAgICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgICAgICAgICAgIHZpc3VhbENoYW5uZWw9e3Zpc3VhbENoYW5uZWx9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgIDxMYXllckRlZmF1bHRMZWdlbmRcbiAgICAgICAgICAgICAgICBrZXk9e3Zpc3VhbENoYW5uZWwua2V5fVxuICAgICAgICAgICAgICAgIGxhYmVsPXtkZXNjcmlwdGlvbi5sYWJlbH1cbiAgICAgICAgICAgICAgICBuYW1lPXtkZXNjcmlwdGlvbi5tZWFzdXJlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH0pfVxuICAgICAgPC8+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gTGF5ZXJMZWdlbmRDb250ZW50O1xufVxuXG5leHBvcnQgdHlwZSBNYXBMZWdlbmRQcm9wcyA9IHtcbiAgbGF5ZXJzPzogUmVhZG9ubHlBcnJheTxMYXllcj47XG4gIHdpZHRoPzogbnVtYmVyO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xuICBvcHRpb25zPzoge1xuICAgIHNob3dMYXllck5hbWU/OiBib29sZWFuO1xuICB9O1xuICBkaXNhYmxlRWRpdD86IGJvb2xlYW47XG4gIGlzRXhwb3J0PzogYm9vbGVhbjtcbiAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT86IChvbGRMYXllcjogTGF5ZXIsIG5ld1Zpc0NvbmZpZzogUGFydGlhbDxMYXllclZpc0NvbmZpZz4pID0+IHZvaWQ7XG4gIGFjdGlvbkljb25zPzogTWFwTGVnZW5kSWNvbnM7XG59O1xuXG5NYXBMZWdlbmRGYWN0b3J5LmRlcHMgPSBbTGF5ZXJMZWdlbmRIZWFkZXJGYWN0b3J5LCBMYXllckxlZ2VuZENvbnRlbnRGYWN0b3J5XTtcblxuZnVuY3Rpb24gTWFwTGVnZW5kRmFjdG9yeShcbiAgTGF5ZXJMZWdlbmRIZWFkZXI6IFJldHVyblR5cGU8dHlwZW9mIExheWVyTGVnZW5kSGVhZGVyRmFjdG9yeT4sXG4gIExheWVyTGVnZW5kQ29udGVudDogUmV0dXJuVHlwZTx0eXBlb2YgTGF5ZXJMZWdlbmRDb250ZW50RmFjdG9yeT5cbikge1xuICBjb25zdCBNYXBMZWdlbmQ6IFJlYWN0LkZDPE1hcExlZ2VuZFByb3BzPiA9ICh7XG4gICAgbGF5ZXJzID0gW10sXG4gICAgd2lkdGgsXG4gICAgbWFwU3RhdGUsXG4gICAgb3B0aW9ucyxcbiAgICBkaXNhYmxlRWRpdCxcbiAgICBpc0V4cG9ydCxcbiAgICBvbkxheWVyVmlzQ29uZmlnQ2hhbmdlLFxuICAgIGFjdGlvbkljb25zID0gZGVmYXVsdEFjdGlvbkljb25zXG4gIH0pID0+IChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cIm1hcC1sZWdlbmRcIj5cbiAgICAgIHtsYXllcnMubWFwKChsYXllciwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKCFsYXllci5pc1ZhbGlkVG9TYXZlKCkgfHwgbGF5ZXIuY29uZmlnLmhpZGRlbikge1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclcgPSB3aWR0aCB8fCBESU1FTlNJT05TLm1hcENvbnRyb2wud2lkdGg7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICA8U3R5bGVkTWFwQ29udHJvbExlZ2VuZFxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibGVnZW5kLS1sYXllclwiXG4gICAgICAgICAgICBsYXN0PXtpbmRleCA9PT0gbGF5ZXJzLmxlbmd0aCAtIDF9XG4gICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgd2lkdGg9e2NvbnRhaW5lcld9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPExheWVyTGVnZW5kSGVhZGVyIGlzRXhwb3J0PXtpc0V4cG9ydH0gb3B0aW9ucz17b3B0aW9uc30gbGF5ZXI9e2xheWVyfSAvPlxuICAgICAgICAgICAgPExheWVyTGVnZW5kQ29udGVudFxuICAgICAgICAgICAgICBjb250YWluZXJXPXtjb250YWluZXJXfVxuICAgICAgICAgICAgICBsYXllcj17bGF5ZXJ9XG4gICAgICAgICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgICAgICAgZGlzYWJsZUVkaXQ9e2Rpc2FibGVFZGl0fVxuICAgICAgICAgICAgICBpc0V4cG9ydD17aXNFeHBvcnR9XG4gICAgICAgICAgICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U9e29uTGF5ZXJWaXNDb25maWdDaGFuZ2V9XG4gICAgICAgICAgICAgIGFjdGlvbkljb25zPXthY3Rpb25JY29uc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdHlsZWRNYXBDb250cm9sTGVnZW5kPlxuICAgICAgICApO1xuICAgICAgfSl9XG4gICAgPC9kaXY+XG4gICk7XG5cbiAgTWFwTGVnZW5kLmRpc3BsYXlOYW1lID0gJ01hcExlZ2VuZCc7XG5cbiAgcmV0dXJuIE1hcExlZ2VuZDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgTWFwTGVnZW5kRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUosT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFlBQUEsR0FBQVAsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLGFBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLFVBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLGFBQUEsR0FBQVQsT0FBQTtB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
@@ -184,13 +184,15 @@ function PlotContainerFactory(MapContainer, MapsLayout) {
184
184
 
185
185
  // Memoize map props
186
186
  var mapProps = (0, _react.useMemo)(function () {
187
+ var _mapFields$mapControl;
187
188
  return _objectSpread(_objectSpread({}, mapFields), {}, {
188
189
  mapStyle: scaledMapStyle,
189
190
  mapState: newMapState,
190
191
  mapControls: {
191
192
  mapLegend: {
192
193
  show: Boolean(legend),
193
- active: true
194
+ active: true,
195
+ settings: (_mapFields$mapControl = mapFields.mapControls) === null || _mapFields$mapControl === void 0 || (_mapFields$mapControl = _mapFields$mapControl.mapLegend) === null || _mapFields$mapControl === void 0 ? void 0 : _mapFields$mapControl.settings
194
196
  }
195
197
  },
196
198
  MapComponent: _reactMapGl.Map,
@@ -235,4 +237,4 @@ function PlotContainerFactory(MapContainer, MapsLayout) {
235
237
  }
236
238
  return /*#__PURE__*/_react["default"].memo(PlotContainer);
237
239
  }
238
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3RNYXBHbCIsIl9kZWJvdW5jZSIsIl91dGlscyIsIl9yZWR1Y2VycyIsIl9tYXBDb250YWluZXIiLCJfbWFwc0xheW91dCIsIl9tYXBWaWV3U3RhdGVDb250ZXh0IiwiX2NvbnN0YW50cyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJDTEFTU19GSUxURVIiLCJET01fRklMVEVSX0ZVTkMiLCJub2RlIiwiaW5jbHVkZXMiLCJjbGFzc05hbWUiLCJPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OIiwiUGxvdENvbnRhaW5lckZhY3RvcnkiLCJkZXBzIiwiTWFwQ29udGFpbmVyRmFjdG9yeSIsIk1hcHNMYXlvdXRGYWN0b3J5IiwiU3R5bGVkUGxvdENvbnRhaW5lciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiU3R5bGVkTWFwQ29udGFpbmVyIiwicHJvcHMiLCJ3aWR0aCIsImhlaWdodCIsIk1hcENvbnRhaW5lciIsIk1hcHNMYXlvdXQiLCJQbG90Q29udGFpbmVyIiwiX3JlZiIsInJhdGlvIiwicmVzb2x1dGlvbiIsIl9yZWYkbGVnZW5kIiwibGVnZW5kIiwiY2VudGVyIiwiaW1hZ2VTaXplIiwiZXNjYXBlWGh0bWxGb3JXZWJwYWNrIiwibWFwRmllbGRzIiwiX3JlZiRzcGxpdE1hcHMiLCJzcGxpdE1hcHMiLCJzZXRFeHBvcnRJbWFnZVNldHRpbmciLCJzZXRFeHBvcnRJbWFnZURhdGFVcmkiLCJzZXRFeHBvcnRJbWFnZUVycm9yIiwiYWRkTm90aWZpY2F0aW9uIiwiZW5hYmxlRXJyb3JOb3RpZmljYXRpb24iLCJsb2dvQ29tcG9uZW50IiwicGxvdHRpbmdBcmVhUmVmIiwidXNlUmVmIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJ2aXNTdGF0ZSIsImVmZmVjdHMiLCJtYXAiLCJlZmZlY3QiLCJjbG9uZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJwbG90RWZmZWN0cyIsIm1hcFN0YXRlIiwic2NhbGUiLCJ1c2VNZW1vIiwiY2FsY3VsYXRlZFNjYWxlIiwiZ2V0U2NhbGVGcm9tSW1hZ2VTaXplIiwiaW1hZ2VXIiwiaW1hZ2VIIiwiaXNTcGxpdCIsInNjYWxlZE1hcFN0eWxlIiwibWFwU3R5bGUiLCJib3R0b21NYXBTdHlsZSIsInNjYWxlTWFwU3R5bGVCeVJlc29sdXRpb24iLCJ0b3BNYXBTdHlsZSIsImRlYm91bmNlZFNjcmVlbnNob3QiLCJkZWJvdW5jZSIsImN1cnJlbnQiLCJjb252ZXJ0VG9QbmciLCJ0aGVuIiwiZXJyIiwiZXhwb3J0SW1hZ2VFcnJvciIsInJldHJpZXZlTmV3U2NyZWVuc2hvdCIsInVzZUNhbGxiYWNrIiwiZGVib3VuY2VkTWFwUmVuZGVyIiwiaXNTdHlsZUxvYWRlZCIsIm9uTWFwUmVuZGVyIiwidXNlRWZmZWN0IiwicHJvY2Vzc2luZyIsInVuZGVmaW5lZCIsIl91c2VNZW1vIiwic2l6ZSIsIm5ld01hcFN0YXRlIiwiYmFzZU1hcFN0YXRlIiwiem9vbSIsIk1hdGgiLCJsb2cyIiwicmVuZGVyZWRMYXllcnMiLCJsYXllcnMiLCJsYXllciIsImlkeCIsImlkIiwiR0VPQ09ERVJfTEFZRVJfSUQiLCJzaG91bGRSZW5kZXJMYXllciIsImxheWVyRGF0YSIsImJvdW5kcyIsImZpbmRNYXBCb3VuZHMiLCJjZW50ZXJBbmRab29tIiwiZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwibWFwUHJvcHMiLCJtYXBDb250cm9scyIsIm1hcExlZ2VuZCIsInNob3ciLCJCb29sZWFuIiwiYWN0aXZlIiwiTWFwQ29tcG9uZW50IiwiTWFwIiwiaXNFeHBvcnQiLCJkZWNrR2xQcm9wcyIsImdsT3B0aW9ucyIsInByZXNlcnZlRHJhd2luZ0J1ZmZlciIsInVzZURldmljZVBpeGVscyIsIm1hcENvbnRhaW5lcnMiLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwiaW5kZXgiLCJwcmltYXJ5Iiwic2V0dGluZ3MiLCJrZXkiLCJyZWYiLCJNYXBWaWV3U3RhdGVDb250ZXh0UHJvdmlkZXIiLCJSZWFjdCIsIm1lbW8iXSwic291cmNlcyI6WyIuLi9zcmMvcGxvdC1jb250YWluZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8vIGxpYnJhcmllc1xuaW1wb3J0IFJlYWN0LCB7dXNlUmVmLCB1c2VFZmZlY3QsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge01hcH0gZnJvbSAncmVhY3QtbWFwLWdsJztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdsb2Rhc2gvZGVib3VuY2UnO1xuaW1wb3J0IHtcbiAgZXhwb3J0SW1hZ2VFcnJvcixcbiAgc2NhbGVNYXBTdHlsZUJ5UmVzb2x1dGlvbixcbiAgZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMsXG4gIGNvbnZlcnRUb1BuZyxcbiAgZ2V0U2NhbGVGcm9tSW1hZ2VTaXplXG59IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtmaW5kTWFwQm91bmRzfSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcbmltcG9ydCBNYXBDb250YWluZXJGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRhaW5lcic7XG5pbXBvcnQgTWFwc0xheW91dEZhY3RvcnkgZnJvbSAnLi9tYXBzLWxheW91dCc7XG5pbXBvcnQge01hcFZpZXdTdGF0ZUNvbnRleHRQcm92aWRlcn0gZnJvbSAnLi9tYXAtdmlldy1zdGF0ZS1jb250ZXh0JztcblxuaW1wb3J0IHtHRU9DT0RFUl9MQVlFUl9JRH0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtFZmZlY3QsIFNwbGl0TWFwLCBFeHBvcnRJbWFnZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1xuICBBY3Rpb25IYW5kbGVyLFxuICBhZGROb3RpZmljYXRpb24sXG4gIHNldEV4cG9ydEltYWdlRGF0YVVyaSxcbiAgc2V0RXhwb3J0SW1hZ2VFcnJvcixcbiAgc2V0RXhwb3J0SW1hZ2VTZXR0aW5nXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge21hcEZpZWxkc1NlbGVjdG9yfSBmcm9tICcuL2tlcGxlci1nbCc7XG5cbmNvbnN0IENMQVNTX0ZJTFRFUiA9IFtcbiAgJ21hcGxpYnJlZ2wtY29udHJvbC1jb250YWluZXInLFxuICAnbWFwYm94Z2wtY29udHJvbC1jb250YWluZXInLFxuICAnYXR0cml0aW9uLWxpbmsnLFxuICAnYXR0cml0aW9uLWxvZ28nLFxuICAnbWFwLWNvbnRyb2xfX3BhbmVsLXNwbGl0LXZpZXdwb3J0LXRvb2xzJ1xuXTtcbmNvbnN0IERPTV9GSUxURVJfRlVOQyA9IG5vZGUgPT4gIUNMQVNTX0ZJTFRFUi5pbmNsdWRlcyhub2RlLmNsYXNzTmFtZSk7XG5jb25zdCBPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OID0gLTk5OTk7XG5cblBsb3RDb250YWluZXJGYWN0b3J5LmRlcHMgPSBbTWFwQ29udGFpbmVyRmFjdG9yeSwgTWFwc0xheW91dEZhY3RvcnldO1xuXG4vLyBSZW1vdmUgbWFwYm94IGxvZ28gaW4gZXhwb3J0ZWQgbWFwLCBiZWNhdXNlIGl0IGNvbnRhaW5zIG5vbi1hc2NpaSBjaGFyYWN0ZXJzXG4vLyBSZW1vdmUgc3BsaXQgdmlld3BvcnQgVUkgY29udHJvbHMgZnJvbSBleHBvcnRlZCBpbWFnZXMgd2hlbiB0aGUgbGVnZW5kIGlzIHNob3duXG5jb25zdCBTdHlsZWRQbG90Q29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgLm1hcGxpYnJlZ2wtY3RybC1ib3R0b20tbGVmdCxcbiAgLm1hcGxpYnJlZ2wtY3RybC1ib3R0b20tcmlnaHQsXG4gIC5tYXBsaWJyZS1hdHRyaWJ1dGlvbi1jb250YWluZXIsXG4gIC5tYXBib3hnbC1jdHJsLWJvdHRvbS1sZWZ0LFxuICAubWFwYm94Z2wtY3RybC1ib3R0b20tcmlnaHQsXG4gIC5tYXBib3gtYXR0cmlidXRpb24tY29udGFpbmVyLFxuICAubWFwLWNvbnRyb2xfX3BhbmVsLXNwbGl0LXZpZXdwb3J0LXRvb2xzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6ICR7T1VUX09GX1NDUkVFTl9QT1NJVElPTn1weDtcbiAgbGVmdDogJHtPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OfXB4O1xuYDtcblxuaW50ZXJmYWNlIFN0eWxlZE1hcENvbnRhaW5lclByb3BzIHtcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGhlaWdodD86IG51bWJlcjtcbn1cblxuY29uc3QgU3R5bGVkTWFwQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRNYXBDb250YWluZXJQcm9wcz5gXG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLndpZHRofXB4O1xuICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaGVpZ2h0fXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuYDtcblxuaW50ZXJmYWNlIFBsb3RDb250YWluZXJQcm9wcyB7XG4gIC8vIEltYWdlIGV4cG9ydCBzZXR0aW5nc1xuICByYXRpbz86IHN0cmluZztcbiAgcmVzb2x1dGlvbj86IHN0cmluZztcbiAgbGVnZW5kPzogYm9vbGVhbjtcbiAgY2VudGVyPzogYm9vbGVhbjtcbiAgaW1hZ2VTaXplOiBFeHBvcnRJbWFnZVsnaW1hZ2VTaXplJ107XG4gIGVzY2FwZVhodG1sRm9yV2VicGFjaz86IGJvb2xlYW47XG5cbiAgLy8gTWFwIHNldHRpbmdzXG4gIG1hcEZpZWxkczogUmV0dXJuVHlwZTx0eXBlb2YgbWFwRmllbGRzU2VsZWN0b3I+O1xuICBzcGxpdE1hcHM/OiBTcGxpdE1hcFtdO1xuXG4gIC8vIENhbGxiYWNrc1xuICBzZXRFeHBvcnRJbWFnZVNldHRpbmc6IHR5cGVvZiBzZXRFeHBvcnRJbWFnZVNldHRpbmc7XG4gIHNldEV4cG9ydEltYWdlRGF0YVVyaTogdHlwZW9mIHNldEV4cG9ydEltYWdlRGF0YVVyaTtcbiAgc2V0RXhwb3J0SW1hZ2VFcnJvcjogdHlwZW9mIHNldEV4cG9ydEltYWdlRXJyb3I7XG4gIGFkZE5vdGlmaWNhdGlvbjogQWN0aW9uSGFuZGxlcjx0eXBlb2YgYWRkTm90aWZpY2F0aW9uPjtcblxuICAvLyBGbGFnc1xuICBlbmFibGVFcnJvck5vdGlmaWNhdGlvbj86IGJvb2xlYW47XG5cbiAgLy8gT3B0aW9uYWw6IG92ZXJyaWRlIGxlZ2VuZCBoZWFkZXIgbG9nbyBkdXJpbmcgZXhwb3J0XG4gIGxvZ29Db21wb25lbnQ/OiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFBsb3RDb250YWluZXJGYWN0b3J5KFxuICBNYXBDb250YWluZXI6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRhaW5lckZhY3Rvcnk+LFxuICBNYXBzTGF5b3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBzTGF5b3V0RmFjdG9yeT5cbik6IFJlYWN0LkNvbXBvbmVudFR5cGU8UGxvdENvbnRhaW5lclByb3BzPiB7XG4gIGZ1bmN0aW9uIFBsb3RDb250YWluZXIoe1xuICAgIC8vIEltYWdlIGV4cG9ydCBzZXR0aW5nc1xuICAgIHJhdGlvLFxuICAgIHJlc29sdXRpb24sXG4gICAgbGVnZW5kID0gZmFsc2UsXG4gICAgY2VudGVyLFxuICAgIGltYWdlU2l6ZSxcbiAgICBlc2NhcGVYaHRtbEZvcldlYnBhY2ssXG5cbiAgICAvLyBNYXAgc2V0dGluZ3NcbiAgICBtYXBGaWVsZHMsXG4gICAgc3BsaXRNYXBzID0gW10sXG5cbiAgICAvLyBDYWxsYmFja3NcbiAgICBzZXRFeHBvcnRJbWFnZVNldHRpbmcsXG4gICAgc2V0RXhwb3J0SW1hZ2VEYXRhVXJpLFxuICAgIHNldEV4cG9ydEltYWdlRXJyb3IsXG4gICAgYWRkTm90aWZpY2F0aW9uLFxuXG4gICAgLy8gRmxhZ3NcbiAgICBlbmFibGVFcnJvck5vdGlmaWNhdGlvbixcbiAgICBsb2dvQ29tcG9uZW50XG4gIH06IFBsb3RDb250YWluZXJQcm9wcykge1xuICAgIGNvbnN0IHBsb3R0aW5nQXJlYVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3Bsb3RFZmZlY3RzXSA9IHVzZVN0YXRlPEVmZmVjdFtdPigoKSA9PlxuICAgICAgbWFwRmllbGRzLnZpc1N0YXRlLmVmZmVjdHMubWFwKGVmZmVjdCA9PiBlZmZlY3QuY2xvbmUoKSlcbiAgICApO1xuXG4gICAgY29uc3Qge21hcFN0YXRlfSA9IG1hcEZpZWxkcztcblxuICAgIC8vIE1lbW9pemUgdGhlIHNjYWxlIGNhbGN1bGF0aW9uXG4gICAgY29uc3Qgc2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChpbWFnZVNpemUuc2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGltYWdlU2l6ZS5zY2FsZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2FsY3VsYXRlZFNjYWxlID0gZ2V0U2NhbGVGcm9tSW1hZ2VTaXplKFxuICAgICAgICBpbWFnZVNpemUuaW1hZ2VXLFxuICAgICAgICBpbWFnZVNpemUuaW1hZ2VILFxuICAgICAgICBtYXBTdGF0ZS53aWR0aCAqIChtYXBTdGF0ZS5pc1NwbGl0ID8gMiA6IDEpLFxuICAgICAgICBtYXBTdGF0ZS5oZWlnaHRcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBjYWxjdWxhdGVkU2NhbGUgPiAwID8gY2FsY3VsYXRlZFNjYWxlIDogMTtcbiAgICB9LCBbXG4gICAgICBpbWFnZVNpemUuc2NhbGUsXG4gICAgICBpbWFnZVNpemUuaW1hZ2VXLFxuICAgICAgaW1hZ2VTaXplLmltYWdlSCxcbiAgICAgIG1hcFN0YXRlLndpZHRoLFxuICAgICAgbWFwU3RhdGUuaGVpZ2h0LFxuICAgICAgbWFwU3RhdGUuaXNTcGxpdFxuICAgIF0pO1xuXG4gICAgLy8gTWVtb2l6ZSB0aGUgbWFwIHN0eWxlXG4gICAgY29uc3Qgc2NhbGVkTWFwU3R5bGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IG1hcFN0eWxlID0gbWFwRmllbGRzLm1hcFN0eWxlO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubWFwU3R5bGUsXG4gICAgICAgIGJvdHRvbU1hcFN0eWxlOiBzY2FsZU1hcFN0eWxlQnlSZXNvbHV0aW9uKG1hcFN0eWxlLmJvdHRvbU1hcFN0eWxlLCBzY2FsZSksXG4gICAgICAgIHRvcE1hcFN0eWxlOiBzY2FsZU1hcFN0eWxlQnlSZXNvbHV0aW9uKG1hcFN0eWxlLnRvcE1hcFN0eWxlLCBzY2FsZSlcbiAgICAgIH07XG4gICAgfSwgW21hcEZpZWxkcy5tYXBTdHlsZSwgc2NhbGVdKTtcblxuICAgIC8vIE1lbW9pemUgdGhlIHJldHJpZXZlTmV3U2NyZWVuc2hvdCBjYWxsYmFja1xuICAgIGNvbnN0IGRlYm91bmNlZFNjcmVlbnNob3QgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAgZGVib3VuY2UoKCkgPT4ge1xuICAgICAgICAgIGlmIChwbG90dGluZ0FyZWFSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY29udmVydFRvUG5nKHBsb3R0aW5nQXJlYVJlZi5jdXJyZW50LCB7XG4gICAgICAgICAgICAgIGZpbHRlcjogRE9NX0ZJTFRFUl9GVU5DLFxuICAgICAgICAgICAgICB3aWR0aDogaW1hZ2VTaXplLmltYWdlVyxcbiAgICAgICAgICAgICAgaGVpZ2h0OiBpbWFnZVNpemUuaW1hZ2VILFxuICAgICAgICAgICAgICBlc2NhcGVYaHRtbEZvcldlYnBhY2tcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC50aGVuKHNldEV4cG9ydEltYWdlRGF0YVVyaSlcbiAgICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RXhwb3J0SW1hZ2VFcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgIGlmIChlbmFibGVFcnJvck5vdGlmaWNhdGlvbikge1xuICAgICAgICAgICAgICAgICAgYWRkTm90aWZpY2F0aW9uKGV4cG9ydEltYWdlRXJyb3Ioe2Vycn0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgNTAwKSxcbiAgICAgIFtcbiAgICAgICAgaW1hZ2VTaXplLmltYWdlVyxcbiAgICAgICAgaW1hZ2VTaXplLmltYWdlSCxcbiAgICAgICAgZXNjYXBlWGh0bWxGb3JXZWJwYWNrLFxuICAgICAgICBzZXRFeHBvcnRJbWFnZURhdGFVcmksXG4gICAgICAgIHNldEV4cG9ydEltYWdlRXJyb3IsXG4gICAgICAgIGVuYWJsZUVycm9yTm90aWZpY2F0aW9uLFxuICAgICAgICBhZGROb3RpZmljYXRpb25cbiAgICAgIF1cbiAgICApO1xuXG4gICAgY29uc3QgcmV0cmlldmVOZXdTY3JlZW5zaG90ID0gdXNlQ2FsbGJhY2soZGVib3VuY2VkU2NyZWVuc2hvdCwgW2RlYm91bmNlZFNjcmVlbnNob3RdKTtcblxuICAgIC8vIE1lbW9pemUgdGhlIG9uTWFwUmVuZGVyIGNhbGxiYWNrXG4gICAgY29uc3QgZGVib3VuY2VkTWFwUmVuZGVyID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGRlYm91bmNlKG1hcCA9PiB7XG4gICAgICAgICAgaWYgKG1hcC5pc1N0eWxlTG9hZGVkKCkpIHtcbiAgICAgICAgICAgIHJldHJpZXZlTmV3U2NyZWVuc2hvdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgNTAwKSxcbiAgICAgIFtyZXRyaWV2ZU5ld1NjcmVlbnNob3RdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uTWFwUmVuZGVyID0gdXNlQ2FsbGJhY2soZGVib3VuY2VkTWFwUmVuZGVyLCBbZGVib3VuY2VkTWFwUmVuZGVyXSk7XG5cbiAgICAvLyBJbml0aWFsIHNldHVwIGVmZmVjdFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBzZXRFeHBvcnRJbWFnZVNldHRpbmcoe3Byb2Nlc3Npbmc6IHRydWV9KTtcbiAgICB9LCBbc2V0RXhwb3J0SW1hZ2VTZXR0aW5nXSk7XG5cbiAgICAvLyBTY3JlZW5zaG90IHVwZGF0ZSBlZmZlY3RcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHJhdGlvICE9PSB1bmRlZmluZWQgfHwgcmVzb2x1dGlvbiAhPT0gdW5kZWZpbmVkIHx8IGxlZ2VuZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHNldEV4cG9ydEltYWdlU2V0dGluZyh7cHJvY2Vzc2luZzogdHJ1ZX0pO1xuICAgICAgICByZXRyaWV2ZU5ld1NjcmVlbnNob3QoKTtcbiAgICAgIH1cbiAgICB9LCBbcmF0aW8sIHJlc29sdXRpb24sIGxlZ2VuZCwgc2V0RXhwb3J0SW1hZ2VTZXR0aW5nLCByZXRyaWV2ZU5ld1NjcmVlbnNob3RdKTtcblxuICAgIC8vIE1lbW9pemUgc2l6ZSBjYWxjdWxhdGlvbnNcbiAgICBjb25zdCB7c2l6ZSwgd2lkdGgsIGhlaWdodH0gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IHNpemUgPSB7XG4gICAgICAgIHdpZHRoOiBpbWFnZVNpemUuaW1hZ2VXIHx8IDEsXG4gICAgICAgIGhlaWdodDogaW1hZ2VTaXplLmltYWdlSCB8fCAxXG4gICAgICB9O1xuICAgICAgY29uc3QgaXNTcGxpdCA9IHNwbGl0TWFwcy5sZW5ndGggPiAxO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgd2lkdGg6IHNpemUud2lkdGggLyAoaXNTcGxpdCA/IDIgOiAxKSxcbiAgICAgICAgaGVpZ2h0OiBzaXplLmhlaWdodFxuICAgICAgfTtcbiAgICB9LCBbaW1hZ2VTaXplLmltYWdlVywgaW1hZ2VTaXplLmltYWdlSCwgc3BsaXRNYXBzLmxlbmd0aF0pO1xuXG4gICAgLy8gTWVtb2l6ZSBtYXAgc3RhdGVcbiAgICBjb25zdCBuZXdNYXBTdGF0ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgYmFzZU1hcFN0YXRlID0ge1xuICAgICAgICAuLi5tYXBTdGF0ZSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgem9vbTogbWFwU3RhdGUuem9vbSArIChNYXRoLmxvZzIoc2NhbGUpIHx8IDApXG4gICAgICB9O1xuXG4gICAgICBpZiAoY2VudGVyKSB7XG4gICAgICAgIGNvbnN0IHJlbmRlcmVkTGF5ZXJzID0gbWFwRmllbGRzLnZpc1N0YXRlLmxheWVycy5maWx0ZXIoXG4gICAgICAgICAgKGxheWVyLCBpZHgpID0+XG4gICAgICAgICAgICBsYXllci5pZCAhPT0gR0VPQ09ERVJfTEFZRVJfSUQgJiZcbiAgICAgICAgICAgIGxheWVyLnNob3VsZFJlbmRlckxheWVyKG1hcEZpZWxkcy52aXNTdGF0ZS5sYXllckRhdGFbaWR4XSlcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgYm91bmRzID0gZmluZE1hcEJvdW5kcyhyZW5kZXJlZExheWVycyk7XG4gICAgICAgIGNvbnN0IGNlbnRlckFuZFpvb20gPSBnZXRDZW50ZXJBbmRab29tRnJvbUJvdW5kcyhib3VuZHMsIHt3aWR0aCwgaGVpZ2h0fSk7XG4gICAgICAgIGlmIChjZW50ZXJBbmRab29tKSB7XG4gICAgICAgICAgY29uc3Qgem9vbSA9IE51bWJlci5pc0Zpbml0ZShjZW50ZXJBbmRab29tLnpvb20pID8gY2VudGVyQW5kWm9vbS56b29tIDogbWFwU3RhdGUuem9vbTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZU1hcFN0YXRlLFxuICAgICAgICAgICAgbG9uZ2l0dWRlOiBjZW50ZXJBbmRab29tLmNlbnRlclswXSxcbiAgICAgICAgICAgIGxhdGl0dWRlOiBjZW50ZXJBbmRab29tLmNlbnRlclsxXSxcbiAgICAgICAgICAgIHpvb206IHpvb20gKyBOdW1iZXIoTWF0aC5sb2cyKHNjYWxlKSB8fCAwKVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJhc2VNYXBTdGF0ZTtcbiAgICB9LCBbbWFwU3RhdGUsIHdpZHRoLCBoZWlnaHQsIHNjYWxlLCBjZW50ZXIsIG1hcEZpZWxkcy52aXNTdGF0ZV0pO1xuXG4gICAgLy8gTWVtb2l6ZSBtYXAgcHJvcHNcbiAgICBjb25zdCBtYXBQcm9wcyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoe1xuICAgICAgICAuLi5tYXBGaWVsZHMsXG4gICAgICAgIG1hcFN0eWxlOiBzY2FsZWRNYXBTdHlsZSxcbiAgICAgICAgbWFwU3RhdGU6IG5ld01hcFN0YXRlLFxuICAgICAgICBtYXBDb250cm9sczoge1xuICAgICAgICAgIG1hcExlZ2VuZDoge1xuICAgICAgICAgICAgc2hvdzogQm9vbGVhbihsZWdlbmQpLFxuICAgICAgICAgICAgYWN0aXZlOiB0cnVlXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBNYXBDb21wb25lbnQ6IE1hcCxcbiAgICAgICAgb25NYXBSZW5kZXIsXG4gICAgICAgIGlzRXhwb3J0OiB0cnVlLFxuICAgICAgICBkZWNrR2xQcm9wczoge1xuICAgICAgICAgIC4uLm1hcEZpZWxkcy5kZWNrR2xQcm9wcyxcbiAgICAgICAgICBnbE9wdGlvbnM6IHtcbiAgICAgICAgICAgIHByZXNlcnZlRHJhd2luZ0J1ZmZlcjogdHJ1ZSxcbiAgICAgICAgICAgIHVzZURldmljZVBpeGVsczogZmFsc2VcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHZpc1N0YXRlOiB7XG4gICAgICAgICAgLi4ubWFwRmllbGRzLnZpc1N0YXRlLFxuICAgICAgICAgIGVmZmVjdHM6IHBsb3RFZmZlY3RzXG4gICAgICAgIH0sXG4gICAgICAgIC8vIGFsbG93IG92ZXJyaWRpbmcgdGhlIGxlZ2VuZCBwYW5lbCBsb2dvIGluIGV4cG9ydFxuICAgICAgICBsb2dvQ29tcG9uZW50XG4gICAgICB9KSxcbiAgICAgIFttYXBGaWVsZHMsIHNjYWxlZE1hcFN0eWxlLCBuZXdNYXBTdGF0ZSwgbGVnZW5kLCBvbk1hcFJlbmRlciwgcGxvdEVmZmVjdHMsIGxvZ29Db21wb25lbnRdXG4gICAgKTtcblxuICAgIGNvbnN0IGlzU3BsaXQgPSBzcGxpdE1hcHMubGVuZ3RoID4gMTtcbiAgICBjb25zdCBtYXBDb250YWluZXJzID0gIWlzU3BsaXQgPyAoXG4gICAgICA8TWFwQ29udGFpbmVyIGluZGV4PXswfSBwcmltYXJ5PXt0cnVlfSB7Li4ubWFwUHJvcHN9IC8+XG4gICAgKSA6IChcbiAgICAgIDxNYXBzTGF5b3V0IGNsYXNzTmFtZT1cInBsb3QtY29udGFpbmVyLW1hcHNcIiBtYXBTdGF0ZT17bmV3TWFwU3RhdGV9PlxuICAgICAgICB7c3BsaXRNYXBzLm1hcCgoc2V0dGluZ3MsIGluZGV4KSA9PiAoXG4gICAgICAgICAgPE1hcENvbnRhaW5lciBrZXk9e2luZGV4fSBpbmRleD17aW5kZXh9IHByaW1hcnk9e2luZGV4ID09PSAxfSB7Li4ubWFwUHJvcHN9IC8+XG4gICAgICAgICkpfVxuICAgICAgPC9NYXBzTGF5b3V0PlxuICAgICk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZFBsb3RDb250YWluZXIgY2xhc3NOYW1lPVwiZXhwb3J0LW1hcC1pbnN0YW5jZVwiPlxuICAgICAgICA8U3R5bGVkTWFwQ29udGFpbmVyIHJlZj17cGxvdHRpbmdBcmVhUmVmfSB3aWR0aD17c2l6ZS53aWR0aH0gaGVpZ2h0PXtzaXplLmhlaWdodH0+XG4gICAgICAgICAgPE1hcFZpZXdTdGF0ZUNvbnRleHRQcm92aWRlciBtYXBTdGF0ZT17bmV3TWFwU3RhdGV9PlxuICAgICAgICAgICAge21hcENvbnRhaW5lcnN9XG4gICAgICAgICAgPC9NYXBWaWV3U3RhdGVDb250ZXh0UHJvdmlkZXI+XG4gICAgICAgIDwvU3R5bGVkTWFwQ29udGFpbmVyPlxuICAgICAgPC9TdHlsZWRQbG90Q29udGFpbmVyPlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gUmVhY3QubWVtbyhQbG90Q29udGFpbmVyKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBSUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLFNBQUEsR0FBQUYsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFLLE1BQUEsR0FBQUwsT0FBQTtBQU9BLElBQUFNLFNBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLGFBQUEsR0FBQUwsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFRLFdBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLG9CQUFBLEdBQUFULE9BQUE7QUFFQSxJQUFBVSxVQUFBLEdBQUFWLE9BQUE7QUFBdUQsSUFBQVcsZUFBQSxFQUFBQyxnQkFBQSxFQXBCdkQ7QUFDQTtBQUVBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9B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
240
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcmVhY3RNYXBHbCIsIl9kZWJvdW5jZSIsIl91dGlscyIsIl9yZWR1Y2VycyIsIl9tYXBDb250YWluZXIiLCJfbWFwc0xheW91dCIsIl9tYXBWaWV3U3RhdGVDb250ZXh0IiwiX2NvbnN0YW50cyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJDTEFTU19GSUxURVIiLCJET01fRklMVEVSX0ZVTkMiLCJub2RlIiwiaW5jbHVkZXMiLCJjbGFzc05hbWUiLCJPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OIiwiUGxvdENvbnRhaW5lckZhY3RvcnkiLCJkZXBzIiwiTWFwQ29udGFpbmVyRmFjdG9yeSIsIk1hcHNMYXlvdXRGYWN0b3J5IiwiU3R5bGVkUGxvdENvbnRhaW5lciIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiU3R5bGVkTWFwQ29udGFpbmVyIiwicHJvcHMiLCJ3aWR0aCIsImhlaWdodCIsIk1hcENvbnRhaW5lciIsIk1hcHNMYXlvdXQiLCJQbG90Q29udGFpbmVyIiwiX3JlZiIsInJhdGlvIiwicmVzb2x1dGlvbiIsIl9yZWYkbGVnZW5kIiwibGVnZW5kIiwiY2VudGVyIiwiaW1hZ2VTaXplIiwiZXNjYXBlWGh0bWxGb3JXZWJwYWNrIiwibWFwRmllbGRzIiwiX3JlZiRzcGxpdE1hcHMiLCJzcGxpdE1hcHMiLCJzZXRFeHBvcnRJbWFnZVNldHRpbmciLCJzZXRFeHBvcnRJbWFnZURhdGFVcmkiLCJzZXRFeHBvcnRJbWFnZUVycm9yIiwiYWRkTm90aWZpY2F0aW9uIiwiZW5hYmxlRXJyb3JOb3RpZmljYXRpb24iLCJsb2dvQ29tcG9uZW50IiwicGxvdHRpbmdBcmVhUmVmIiwidXNlUmVmIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJ2aXNTdGF0ZSIsImVmZmVjdHMiLCJtYXAiLCJlZmZlY3QiLCJjbG9uZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJwbG90RWZmZWN0cyIsIm1hcFN0YXRlIiwic2NhbGUiLCJ1c2VNZW1vIiwiY2FsY3VsYXRlZFNjYWxlIiwiZ2V0U2NhbGVGcm9tSW1hZ2VTaXplIiwiaW1hZ2VXIiwiaW1hZ2VIIiwiaXNTcGxpdCIsInNjYWxlZE1hcFN0eWxlIiwibWFwU3R5bGUiLCJib3R0b21NYXBTdHlsZSIsInNjYWxlTWFwU3R5bGVCeVJlc29sdXRpb24iLCJ0b3BNYXBTdHlsZSIsImRlYm91bmNlZFNjcmVlbnNob3QiLCJkZWJvdW5jZSIsImN1cnJlbnQiLCJjb252ZXJ0VG9QbmciLCJ0aGVuIiwiZXJyIiwiZXhwb3J0SW1hZ2VFcnJvciIsInJldHJpZXZlTmV3U2NyZWVuc2hvdCIsInVzZUNhbGxiYWNrIiwiZGVib3VuY2VkTWFwUmVuZGVyIiwiaXNTdHlsZUxvYWRlZCIsIm9uTWFwUmVuZGVyIiwidXNlRWZmZWN0IiwicHJvY2Vzc2luZyIsInVuZGVmaW5lZCIsIl91c2VNZW1vIiwic2l6ZSIsIm5ld01hcFN0YXRlIiwiYmFzZU1hcFN0YXRlIiwiem9vbSIsIk1hdGgiLCJsb2cyIiwicmVuZGVyZWRMYXllcnMiLCJsYXllcnMiLCJsYXllciIsImlkeCIsImlkIiwiR0VPQ09ERVJfTEFZRVJfSUQiLCJzaG91bGRSZW5kZXJMYXllciIsImxheWVyRGF0YSIsImJvdW5kcyIsImZpbmRNYXBCb3VuZHMiLCJjZW50ZXJBbmRab29tIiwiZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMiLCJOdW1iZXIiLCJpc0Zpbml0ZSIsImxvbmdpdHVkZSIsImxhdGl0dWRlIiwibWFwUHJvcHMiLCJfbWFwRmllbGRzJG1hcENvbnRyb2wiLCJtYXBDb250cm9scyIsIm1hcExlZ2VuZCIsInNob3ciLCJCb29sZWFuIiwiYWN0aXZlIiwic2V0dGluZ3MiLCJNYXBDb21wb25lbnQiLCJNYXAiLCJpc0V4cG9ydCIsImRlY2tHbFByb3BzIiwiZ2xPcHRpb25zIiwicHJlc2VydmVEcmF3aW5nQnVmZmVyIiwidXNlRGV2aWNlUGl4ZWxzIiwibWFwQ29udGFpbmVycyIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJpbmRleCIsInByaW1hcnkiLCJrZXkiLCJyZWYiLCJNYXBWaWV3U3RhdGVDb250ZXh0UHJvdmlkZXIiLCJSZWFjdCIsIm1lbW8iXSwic291cmNlcyI6WyIuLi9zcmMvcGxvdC1jb250YWluZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8vIGxpYnJhcmllc1xuaW1wb3J0IFJlYWN0LCB7dXNlUmVmLCB1c2VFZmZlY3QsIHVzZVN0YXRlLCB1c2VDYWxsYmFjaywgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge01hcH0gZnJvbSAncmVhY3QtbWFwLWdsJztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdsb2Rhc2gvZGVib3VuY2UnO1xuaW1wb3J0IHtcbiAgZXhwb3J0SW1hZ2VFcnJvcixcbiAgc2NhbGVNYXBTdHlsZUJ5UmVzb2x1dGlvbixcbiAgZ2V0Q2VudGVyQW5kWm9vbUZyb21Cb3VuZHMsXG4gIGNvbnZlcnRUb1BuZyxcbiAgZ2V0U2NhbGVGcm9tSW1hZ2VTaXplXG59IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtmaW5kTWFwQm91bmRzfSBmcm9tICdAa2VwbGVyLmdsL3JlZHVjZXJzJztcbmltcG9ydCBNYXBDb250YWluZXJGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRhaW5lcic7XG5pbXBvcnQgTWFwc0xheW91dEZhY3RvcnkgZnJvbSAnLi9tYXBzLWxheW91dCc7XG5pbXBvcnQge01hcFZpZXdTdGF0ZUNvbnRleHRQcm92aWRlcn0gZnJvbSAnLi9tYXAtdmlldy1zdGF0ZS1jb250ZXh0JztcblxuaW1wb3J0IHtHRU9DT0RFUl9MQVlFUl9JRH0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtFZmZlY3QsIFNwbGl0TWFwLCBFeHBvcnRJbWFnZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge1xuICBBY3Rpb25IYW5kbGVyLFxuICBhZGROb3RpZmljYXRpb24sXG4gIHNldEV4cG9ydEltYWdlRGF0YVVyaSxcbiAgc2V0RXhwb3J0SW1hZ2VFcnJvcixcbiAgc2V0RXhwb3J0SW1hZ2VTZXR0aW5nXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge21hcEZpZWxkc1NlbGVjdG9yfSBmcm9tICcuL2tlcGxlci1nbCc7XG5cbmNvbnN0IENMQVNTX0ZJTFRFUiA9IFtcbiAgJ21hcGxpYnJlZ2wtY29udHJvbC1jb250YWluZXInLFxuICAnbWFwYm94Z2wtY29udHJvbC1jb250YWluZXInLFxuICAnYXR0cml0aW9uLWxpbmsnLFxuICAnYXR0cml0aW9uLWxvZ28nLFxuICAnbWFwLWNvbnRyb2xfX3BhbmVsLXNwbGl0LXZpZXdwb3J0LXRvb2xzJ1xuXTtcbmNvbnN0IERPTV9GSUxURVJfRlVOQyA9IG5vZGUgPT4gIUNMQVNTX0ZJTFRFUi5pbmNsdWRlcyhub2RlLmNsYXNzTmFtZSk7XG5jb25zdCBPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OID0gLTk5OTk7XG5cblBsb3RDb250YWluZXJGYWN0b3J5LmRlcHMgPSBbTWFwQ29udGFpbmVyRmFjdG9yeSwgTWFwc0xheW91dEZhY3RvcnldO1xuXG4vLyBSZW1vdmUgbWFwYm94IGxvZ28gaW4gZXhwb3J0ZWQgbWFwLCBiZWNhdXNlIGl0IGNvbnRhaW5zIG5vbi1hc2NpaSBjaGFyYWN0ZXJzXG4vLyBSZW1vdmUgc3BsaXQgdmlld3BvcnQgVUkgY29udHJvbHMgZnJvbSBleHBvcnRlZCBpbWFnZXMgd2hlbiB0aGUgbGVnZW5kIGlzIHNob3duXG5jb25zdCBTdHlsZWRQbG90Q29udGFpbmVyID0gc3R5bGVkLmRpdmBcbiAgLm1hcGxpYnJlZ2wtY3RybC1ib3R0b20tbGVmdCxcbiAgLm1hcGxpYnJlZ2wtY3RybC1ib3R0b20tcmlnaHQsXG4gIC5tYXBsaWJyZS1hdHRyaWJ1dGlvbi1jb250YWluZXIsXG4gIC5tYXBib3hnbC1jdHJsLWJvdHRvbS1sZWZ0LFxuICAubWFwYm94Z2wtY3RybC1ib3R0b20tcmlnaHQsXG4gIC5tYXBib3gtYXR0cmlidXRpb24tY29udGFpbmVyLFxuICAubWFwLWNvbnRyb2xfX3BhbmVsLXNwbGl0LXZpZXdwb3J0LXRvb2xzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6ICR7T1VUX09GX1NDUkVFTl9QT1NJVElPTn1weDtcbiAgbGVmdDogJHtPVVRfT0ZfU0NSRUVOX1BPU0lUSU9OfXB4O1xuYDtcblxuaW50ZXJmYWNlIFN0eWxlZE1hcENvbnRhaW5lclByb3BzIHtcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGhlaWdodD86IG51bWJlcjtcbn1cblxuY29uc3QgU3R5bGVkTWFwQ29udGFpbmVyID0gc3R5bGVkLmRpdjxTdHlsZWRNYXBDb250YWluZXJQcm9wcz5gXG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLndpZHRofXB4O1xuICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuaGVpZ2h0fXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuYDtcblxuaW50ZXJmYWNlIFBsb3RDb250YWluZXJQcm9wcyB7XG4gIC8vIEltYWdlIGV4cG9ydCBzZXR0aW5nc1xuICByYXRpbz86IHN0cmluZztcbiAgcmVzb2x1dGlvbj86IHN0cmluZztcbiAgbGVnZW5kPzogYm9vbGVhbjtcbiAgY2VudGVyPzogYm9vbGVhbjtcbiAgaW1hZ2VTaXplOiBFeHBvcnRJbWFnZVsnaW1hZ2VTaXplJ107XG4gIGVzY2FwZVhodG1sRm9yV2VicGFjaz86IGJvb2xlYW47XG5cbiAgLy8gTWFwIHNldHRpbmdzXG4gIG1hcEZpZWxkczogUmV0dXJuVHlwZTx0eXBlb2YgbWFwRmllbGRzU2VsZWN0b3I+O1xuICBzcGxpdE1hcHM/OiBTcGxpdE1hcFtdO1xuXG4gIC8vIENhbGxiYWNrc1xuICBzZXRFeHBvcnRJbWFnZVNldHRpbmc6IHR5cGVvZiBzZXRFeHBvcnRJbWFnZVNldHRpbmc7XG4gIHNldEV4cG9ydEltYWdlRGF0YVVyaTogdHlwZW9mIHNldEV4cG9ydEltYWdlRGF0YVVyaTtcbiAgc2V0RXhwb3J0SW1hZ2VFcnJvcjogdHlwZW9mIHNldEV4cG9ydEltYWdlRXJyb3I7XG4gIGFkZE5vdGlmaWNhdGlvbjogQWN0aW9uSGFuZGxlcjx0eXBlb2YgYWRkTm90aWZpY2F0aW9uPjtcblxuICAvLyBGbGFnc1xuICBlbmFibGVFcnJvck5vdGlmaWNhdGlvbj86IGJvb2xlYW47XG5cbiAgLy8gT3B0aW9uYWw6IG92ZXJyaWRlIGxlZ2VuZCBoZWFkZXIgbG9nbyBkdXJpbmcgZXhwb3J0XG4gIGxvZ29Db21wb25lbnQ/OiBSZWFjdC5SZWFjdE5vZGU7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFBsb3RDb250YWluZXJGYWN0b3J5KFxuICBNYXBDb250YWluZXI6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRhaW5lckZhY3Rvcnk+LFxuICBNYXBzTGF5b3V0OiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBzTGF5b3V0RmFjdG9yeT5cbik6IFJlYWN0LkNvbXBvbmVudFR5cGU8UGxvdENvbnRhaW5lclByb3BzPiB7XG4gIGZ1bmN0aW9uIFBsb3RDb250YWluZXIoe1xuICAgIC8vIEltYWdlIGV4cG9ydCBzZXR0aW5nc1xuICAgIHJhdGlvLFxuICAgIHJlc29sdXRpb24sXG4gICAgbGVnZW5kID0gZmFsc2UsXG4gICAgY2VudGVyLFxuICAgIGltYWdlU2l6ZSxcbiAgICBlc2NhcGVYaHRtbEZvcldlYnBhY2ssXG5cbiAgICAvLyBNYXAgc2V0dGluZ3NcbiAgICBtYXBGaWVsZHMsXG4gICAgc3BsaXRNYXBzID0gW10sXG5cbiAgICAvLyBDYWxsYmFja3NcbiAgICBzZXRFeHBvcnRJbWFnZVNldHRpbmcsXG4gICAgc2V0RXhwb3J0SW1hZ2VEYXRhVXJpLFxuICAgIHNldEV4cG9ydEltYWdlRXJyb3IsXG4gICAgYWRkTm90aWZpY2F0aW9uLFxuXG4gICAgLy8gRmxhZ3NcbiAgICBlbmFibGVFcnJvck5vdGlmaWNhdGlvbixcbiAgICBsb2dvQ29tcG9uZW50XG4gIH06IFBsb3RDb250YWluZXJQcm9wcykge1xuICAgIGNvbnN0IHBsb3R0aW5nQXJlYVJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW3Bsb3RFZmZlY3RzXSA9IHVzZVN0YXRlPEVmZmVjdFtdPigoKSA9PlxuICAgICAgbWFwRmllbGRzLnZpc1N0YXRlLmVmZmVjdHMubWFwKGVmZmVjdCA9PiBlZmZlY3QuY2xvbmUoKSlcbiAgICApO1xuXG4gICAgY29uc3Qge21hcFN0YXRlfSA9IG1hcEZpZWxkcztcblxuICAgIC8vIE1lbW9pemUgdGhlIHNjYWxlIGNhbGN1bGF0aW9uXG4gICAgY29uc3Qgc2NhbGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGlmIChpbWFnZVNpemUuc2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGltYWdlU2l6ZS5zY2FsZTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgY2FsY3VsYXRlZFNjYWxlID0gZ2V0U2NhbGVGcm9tSW1hZ2VTaXplKFxuICAgICAgICBpbWFnZVNpemUuaW1hZ2VXLFxuICAgICAgICBpbWFnZVNpemUuaW1hZ2VILFxuICAgICAgICBtYXBTdGF0ZS53aWR0aCAqIChtYXBTdGF0ZS5pc1NwbGl0ID8gMiA6IDEpLFxuICAgICAgICBtYXBTdGF0ZS5oZWlnaHRcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBjYWxjdWxhdGVkU2NhbGUgPiAwID8gY2FsY3VsYXRlZFNjYWxlIDogMTtcbiAgICB9LCBbXG4gICAgICBpbWFnZVNpemUuc2NhbGUsXG4gICAgICBpbWFnZVNpemUuaW1hZ2VXLFxuICAgICAgaW1hZ2VTaXplLmltYWdlSCxcbiAgICAgIG1hcFN0YXRlLndpZHRoLFxuICAgICAgbWFwU3RhdGUuaGVpZ2h0LFxuICAgICAgbWFwU3RhdGUuaXNTcGxpdFxuICAgIF0pO1xuXG4gICAgLy8gTWVtb2l6ZSB0aGUgbWFwIHN0eWxlXG4gICAgY29uc3Qgc2NhbGVkTWFwU3R5bGUgPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IG1hcFN0eWxlID0gbWFwRmllbGRzLm1hcFN0eWxlO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubWFwU3R5bGUsXG4gICAgICAgIGJvdHRvbU1hcFN0eWxlOiBzY2FsZU1hcFN0eWxlQnlSZXNvbHV0aW9uKG1hcFN0eWxlLmJvdHRvbU1hcFN0eWxlLCBzY2FsZSksXG4gICAgICAgIHRvcE1hcFN0eWxlOiBzY2FsZU1hcFN0eWxlQnlSZXNvbHV0aW9uKG1hcFN0eWxlLnRvcE1hcFN0eWxlLCBzY2FsZSlcbiAgICAgIH07XG4gICAgfSwgW21hcEZpZWxkcy5tYXBTdHlsZSwgc2NhbGVdKTtcblxuICAgIC8vIE1lbW9pemUgdGhlIHJldHJpZXZlTmV3U2NyZWVuc2hvdCBjYWxsYmFja1xuICAgIGNvbnN0IGRlYm91bmNlZFNjcmVlbnNob3QgPSB1c2VNZW1vKFxuICAgICAgKCkgPT5cbiAgICAgICAgZGVib3VuY2UoKCkgPT4ge1xuICAgICAgICAgIGlmIChwbG90dGluZ0FyZWFSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY29udmVydFRvUG5nKHBsb3R0aW5nQXJlYVJlZi5jdXJyZW50LCB7XG4gICAgICAgICAgICAgIGZpbHRlcjogRE9NX0ZJTFRFUl9GVU5DLFxuICAgICAgICAgICAgICB3aWR0aDogaW1hZ2VTaXplLmltYWdlVyxcbiAgICAgICAgICAgICAgaGVpZ2h0OiBpbWFnZVNpemUuaW1hZ2VILFxuICAgICAgICAgICAgICBlc2NhcGVYaHRtbEZvcldlYnBhY2tcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC50aGVuKHNldEV4cG9ydEltYWdlRGF0YVVyaSlcbiAgICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgc2V0RXhwb3J0SW1hZ2VFcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgIGlmIChlbmFibGVFcnJvck5vdGlmaWNhdGlvbikge1xuICAgICAgICAgICAgICAgICAgYWRkTm90aWZpY2F0aW9uKGV4cG9ydEltYWdlRXJyb3Ioe2Vycn0pKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgNTAwKSxcbiAgICAgIFtcbiAgICAgICAgaW1hZ2VTaXplLmltYWdlVyxcbiAgICAgICAgaW1hZ2VTaXplLmltYWdlSCxcbiAgICAgICAgZXNjYXBlWGh0bWxGb3JXZWJwYWNrLFxuICAgICAgICBzZXRFeHBvcnRJbWFnZURhdGFVcmksXG4gICAgICAgIHNldEV4cG9ydEltYWdlRXJyb3IsXG4gICAgICAgIGVuYWJsZUVycm9yTm90aWZpY2F0aW9uLFxuICAgICAgICBhZGROb3RpZmljYXRpb25cbiAgICAgIF1cbiAgICApO1xuXG4gICAgY29uc3QgcmV0cmlldmVOZXdTY3JlZW5zaG90ID0gdXNlQ2FsbGJhY2soZGVib3VuY2VkU2NyZWVuc2hvdCwgW2RlYm91bmNlZFNjcmVlbnNob3RdKTtcblxuICAgIC8vIE1lbW9pemUgdGhlIG9uTWFwUmVuZGVyIGNhbGxiYWNrXG4gICAgY29uc3QgZGVib3VuY2VkTWFwUmVuZGVyID0gdXNlTWVtbyhcbiAgICAgICgpID0+XG4gICAgICAgIGRlYm91bmNlKG1hcCA9PiB7XG4gICAgICAgICAgaWYgKG1hcC5pc1N0eWxlTG9hZGVkKCkpIHtcbiAgICAgICAgICAgIHJldHJpZXZlTmV3U2NyZWVuc2hvdCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSwgNTAwKSxcbiAgICAgIFtyZXRyaWV2ZU5ld1NjcmVlbnNob3RdXG4gICAgKTtcblxuICAgIGNvbnN0IG9uTWFwUmVuZGVyID0gdXNlQ2FsbGJhY2soZGVib3VuY2VkTWFwUmVuZGVyLCBbZGVib3VuY2VkTWFwUmVuZGVyXSk7XG5cbiAgICAvLyBJbml0aWFsIHNldHVwIGVmZmVjdFxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBzZXRFeHBvcnRJbWFnZVNldHRpbmcoe3Byb2Nlc3Npbmc6IHRydWV9KTtcbiAgICB9LCBbc2V0RXhwb3J0SW1hZ2VTZXR0aW5nXSk7XG5cbiAgICAvLyBTY3JlZW5zaG90IHVwZGF0ZSBlZmZlY3RcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHJhdGlvICE9PSB1bmRlZmluZWQgfHwgcmVzb2x1dGlvbiAhPT0gdW5kZWZpbmVkIHx8IGxlZ2VuZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHNldEV4cG9ydEltYWdlU2V0dGluZyh7cHJvY2Vzc2luZzogdHJ1ZX0pO1xuICAgICAgICByZXRyaWV2ZU5ld1NjcmVlbnNob3QoKTtcbiAgICAgIH1cbiAgICB9LCBbcmF0aW8sIHJlc29sdXRpb24sIGxlZ2VuZCwgc2V0RXhwb3J0SW1hZ2VTZXR0aW5nLCByZXRyaWV2ZU5ld1NjcmVlbnNob3RdKTtcblxuICAgIC8vIE1lbW9pemUgc2l6ZSBjYWxjdWxhdGlvbnNcbiAgICBjb25zdCB7c2l6ZSwgd2lkdGgsIGhlaWdodH0gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgIGNvbnN0IHNpemUgPSB7XG4gICAgICAgIHdpZHRoOiBpbWFnZVNpemUuaW1hZ2VXIHx8IDEsXG4gICAgICAgIGhlaWdodDogaW1hZ2VTaXplLmltYWdlSCB8fCAxXG4gICAgICB9O1xuICAgICAgY29uc3QgaXNTcGxpdCA9IHNwbGl0TWFwcy5sZW5ndGggPiAxO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgd2lkdGg6IHNpemUud2lkdGggLyAoaXNTcGxpdCA/IDIgOiAxKSxcbiAgICAgICAgaGVpZ2h0OiBzaXplLmhlaWdodFxuICAgICAgfTtcbiAgICB9LCBbaW1hZ2VTaXplLmltYWdlVywgaW1hZ2VTaXplLmltYWdlSCwgc3BsaXRNYXBzLmxlbmd0aF0pO1xuXG4gICAgLy8gTWVtb2l6ZSBtYXAgc3RhdGVcbiAgICBjb25zdCBuZXdNYXBTdGF0ZSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgY29uc3QgYmFzZU1hcFN0YXRlID0ge1xuICAgICAgICAuLi5tYXBTdGF0ZSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGhlaWdodCxcbiAgICAgICAgem9vbTogbWFwU3RhdGUuem9vbSArIChNYXRoLmxvZzIoc2NhbGUpIHx8IDApXG4gICAgICB9O1xuXG4gICAgICBpZiAoY2VudGVyKSB7XG4gICAgICAgIGNvbnN0IHJlbmRlcmVkTGF5ZXJzID0gbWFwRmllbGRzLnZpc1N0YXRlLmxheWVycy5maWx0ZXIoXG4gICAgICAgICAgKGxheWVyLCBpZHgpID0+XG4gICAgICAgICAgICBsYXllci5pZCAhPT0gR0VPQ09ERVJfTEFZRVJfSUQgJiZcbiAgICAgICAgICAgIGxheWVyLnNob3VsZFJlbmRlckxheWVyKG1hcEZpZWxkcy52aXNTdGF0ZS5sYXllckRhdGFbaWR4XSlcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgYm91bmRzID0gZmluZE1hcEJvdW5kcyhyZW5kZXJlZExheWVycyk7XG4gICAgICAgIGNvbnN0IGNlbnRlckFuZFpvb20gPSBnZXRDZW50ZXJBbmRab29tRnJvbUJvdW5kcyhib3VuZHMsIHt3aWR0aCwgaGVpZ2h0fSk7XG4gICAgICAgIGlmIChjZW50ZXJBbmRab29tKSB7XG4gICAgICAgICAgY29uc3Qgem9vbSA9IE51bWJlci5pc0Zpbml0ZShjZW50ZXJBbmRab29tLnpvb20pID8gY2VudGVyQW5kWm9vbS56b29tIDogbWFwU3RhdGUuem9vbTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uYmFzZU1hcFN0YXRlLFxuICAgICAgICAgICAgbG9uZ2l0dWRlOiBjZW50ZXJBbmRab29tLmNlbnRlclswXSxcbiAgICAgICAgICAgIGxhdGl0dWRlOiBjZW50ZXJBbmRab29tLmNlbnRlclsxXSxcbiAgICAgICAgICAgIHpvb206IHpvb20gKyBOdW1iZXIoTWF0aC5sb2cyKHNjYWxlKSB8fCAwKVxuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGJhc2VNYXBTdGF0ZTtcbiAgICB9LCBbbWFwU3RhdGUsIHdpZHRoLCBoZWlnaHQsIHNjYWxlLCBjZW50ZXIsIG1hcEZpZWxkcy52aXNTdGF0ZV0pO1xuXG4gICAgLy8gTWVtb2l6ZSBtYXAgcHJvcHNcbiAgICBjb25zdCBtYXBQcm9wcyA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoe1xuICAgICAgICAuLi5tYXBGaWVsZHMsXG4gICAgICAgIG1hcFN0eWxlOiBzY2FsZWRNYXBTdHlsZSxcbiAgICAgICAgbWFwU3RhdGU6IG5ld01hcFN0YXRlLFxuICAgICAgICBtYXBDb250cm9sczoge1xuICAgICAgICAgIG1hcExlZ2VuZDoge1xuICAgICAgICAgICAgc2hvdzogQm9vbGVhbihsZWdlbmQpLFxuICAgICAgICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgICAgICAgc2V0dGluZ3M6IG1hcEZpZWxkcy5tYXBDb250cm9scz8ubWFwTGVnZW5kPy5zZXR0aW5nc1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgTWFwQ29tcG9uZW50OiBNYXAsXG4gICAgICAgIG9uTWFwUmVuZGVyLFxuICAgICAgICBpc0V4cG9ydDogdHJ1ZSxcbiAgICAgICAgZGVja0dsUHJvcHM6IHtcbiAgICAgICAgICAuLi5tYXBGaWVsZHMuZGVja0dsUHJvcHMsXG4gICAgICAgICAgZ2xPcHRpb25zOiB7XG4gICAgICAgICAgICBwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6IHRydWUsXG4gICAgICAgICAgICB1c2VEZXZpY2VQaXhlbHM6IGZhbHNlXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB2aXNTdGF0ZToge1xuICAgICAgICAgIC4uLm1hcEZpZWxkcy52aXNTdGF0ZSxcbiAgICAgICAgICBlZmZlY3RzOiBwbG90RWZmZWN0c1xuICAgICAgICB9LFxuICAgICAgICAvLyBhbGxvdyBvdmVycmlkaW5nIHRoZSBsZWdlbmQgcGFuZWwgbG9nbyBpbiBleHBvcnRcbiAgICAgICAgbG9nb0NvbXBvbmVudFxuICAgICAgfSksXG4gICAgICBbbWFwRmllbGRzLCBzY2FsZWRNYXBTdHlsZSwgbmV3TWFwU3RhdGUsIGxlZ2VuZCwgb25NYXBSZW5kZXIsIHBsb3RFZmZlY3RzLCBsb2dvQ29tcG9uZW50XVxuICAgICk7XG5cbiAgICBjb25zdCBpc1NwbGl0ID0gc3BsaXRNYXBzLmxlbmd0aCA+IDE7XG4gICAgY29uc3QgbWFwQ29udGFpbmVycyA9ICFpc1NwbGl0ID8gKFxuICAgICAgPE1hcENvbnRhaW5lciBpbmRleD17MH0gcHJpbWFyeT17dHJ1ZX0gey4uLm1hcFByb3BzfSAvPlxuICAgICkgOiAoXG4gICAgICA8TWFwc0xheW91dCBjbGFzc05hbWU9XCJwbG90LWNvbnRhaW5lci1tYXBzXCIgbWFwU3RhdGU9e25ld01hcFN0YXRlfT5cbiAgICAgICAge3NwbGl0TWFwcy5tYXAoKHNldHRpbmdzLCBpbmRleCkgPT4gKFxuICAgICAgICAgIDxNYXBDb250YWluZXIga2V5PXtpbmRleH0gaW5kZXg9e2luZGV4fSBwcmltYXJ5PXtpbmRleCA9PT0gMX0gey4uLm1hcFByb3BzfSAvPlxuICAgICAgICApKX1cbiAgICAgIDwvTWFwc0xheW91dD5cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRQbG90Q29udGFpbmVyIGNsYXNzTmFtZT1cImV4cG9ydC1tYXAtaW5zdGFuY2VcIj5cbiAgICAgICAgPFN0eWxlZE1hcENvbnRhaW5lciByZWY9e3Bsb3R0aW5nQXJlYVJlZn0gd2lkdGg9e3NpemUud2lkdGh9IGhlaWdodD17c2l6ZS5oZWlnaHR9PlxuICAgICAgICAgIDxNYXBWaWV3U3RhdGVDb250ZXh0UHJvdmlkZXIgbWFwU3RhdGU9e25ld01hcFN0YXRlfT5cbiAgICAgICAgICAgIHttYXBDb250YWluZXJzfVxuICAgICAgICAgIDwvTWFwVmlld1N0YXRlQ29udGV4dFByb3ZpZGVyPlxuICAgICAgICA8L1N0eWxlZE1hcENvbnRhaW5lcj5cbiAgICAgIDwvU3R5bGVkUGxvdENvbnRhaW5lcj5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIFJlYWN0Lm1lbW8oUGxvdENvbnRhaW5lcik7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUlBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxXQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxTQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFMLE9BQUE7QUFPQSxJQUFBTSxTQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxhQUFBLEdBQUFMLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUSxXQUFBLEdBQUFOLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUyxvQkFBQSxHQUFBVCxPQUFBO0FBRUEsSUFBQVUsVUFB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
@@ -23,7 +23,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
23
23
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
24
24
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25
25
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26
- var StyledInteractionPanel = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding-bottom: 6px;\n"])));
26
+ var StyledInteractionPanel = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding-bottom: 6px;\n contain: layout paint;\n"])));
27
27
  InteractionPanelFactory.deps = [_tooltipConfig["default"], _brushConfig["default"]];
28
28
  var INTERACTION_CONFIG_ICONS = {
29
29
  tooltip: _icons.Messages,
@@ -112,4 +112,4 @@ function InteractionPanelFactory(TooltipConfig, BrushConfig) {
112
112
  return InteractionPanel;
113
113
  }
114
114
  var _default = exports["default"] = InteractionPanelFactory;
115
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3dpdGNoIiwiX2JydXNoQ29uZmlnIiwiX3Rvb2x0aXBDb25maWciLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfaWNvbnMiLCJfbG9jYWxpemF0aW9uIiwiX3RlbXBsYXRlT2JqZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiU3R5bGVkSW50ZXJhY3Rpb25QYW5lbCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiSW50ZXJhY3Rpb25QYW5lbEZhY3RvcnkiLCJkZXBzIiwiVG9vbHRpcENvbmZpZ0ZhY3RvcnkiLCJCcnVzaENvbmZpZ0ZhY3RvcnkiLCJJTlRFUkFDVElPTl9DT05GSUdfSUNPTlMiLCJ0b29sdGlwIiwiTWVzc2FnZXMiLCJnZW9jb2RlciIsIlBpbiIsImJydXNoIiwiQ3Jvc3NoYWlycyIsImNvb3JkaW5hdGUiLCJDdXJzb3JDbGljayIsIlRvb2x0aXBDb25maWciLCJCcnVzaENvbmZpZyIsIkludGVyYWN0aW9uUGFuZWwiLCJfcmVmIiwiY29uZmlnIiwib25Db25maWdDaGFuZ2UiLCJkYXRhc2V0cyIsInNldENvbHVtbkRpc3BsYXlGb3JtYXQiLCJfcmVmJGludGVyYWN0aW9uQ29uZmkiLCJpbnRlcmFjdGlvbkNvbmZpZ0ljb25zIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiaXNDb25maWdBY3RpdmUiLCJzZXRJc0NvbmZpZ0FjdGlvbiIsIl91cGRhdGVDb25maWciLCJ1c2VDYWxsYmFjayIsIm5ld1Byb3AiLCJvbkRpc3BsYXlGb3JtYXRDaGFuZ2UiLCJkYXRhSWQiLCJjb2x1bW4iLCJkaXNwbGF5Rm9ybWF0IiwidG9nZ2xlUGFuZWxBY3RpdmUiLCJlbmFibGVkIiwidG9nZ2xlRW5hYmxlQ29uZmlnIiwib25DaGFuZ2UiLCJuZXdDb25maWciLCJJY29uQ29tcG9uZW50IiwiaWQiLCJ0ZW1wbGF0ZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJTdHlsZWRQYW5lbEhlYWRlciIsIm9uQ2xpY2siLCJQYW5lbEhlYWRlckNvbnRlbnQiLCJoZWlnaHQiLCJQYW5lbEhlYWRlclRpdGxlIiwiRm9ybWF0dGVkTWVzc2FnZSIsImxhYmVsIiwiY2hlY2tlZCIsImNvbmNhdCIsInNlY29uZGFyeSIsIlBhbmVsQ29udGVudCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zaWRlLXBhbmVsL2ludGVyYWN0aW9uLXBhbmVsL2ludGVyYWN0aW9uLXBhbmVsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VTdGF0ZSwgQ29tcG9uZW50VHlwZSwgUmVhY3RFbGVtZW50LCB1c2VDYWxsYmFja30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgU3dpdGNoIGZyb20gJy4uLy4uL2NvbW1vbi9zd2l0Y2gnO1xuaW1wb3J0IEJydXNoQ29uZmlnRmFjdG9yeSBmcm9tICcuL2JydXNoLWNvbmZpZyc7XG5pbXBvcnQgVG9vbHRpcENvbmZpZ0ZhY3RvcnkgZnJvbSAnLi90b29sdGlwLWNvbmZpZyc7XG5pbXBvcnQge0RhdGFzZXRzfSBmcm9tICdAa2VwbGVyLmdsL3RhYmxlJztcbmltcG9ydCB7SW50ZXJhY3Rpb25Db25maWcsIFZhbHVlT2Z9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtcbiAgc2V0Q29sdW1uRGlzcGxheUZvcm1hdCBhcyBzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0QWN0aW9uLFxuICBBY3Rpb25IYW5kbGVyXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5cbmltcG9ydCB7XG4gIFN0eWxlZFBhbmVsSGVhZGVyLFxuICBQYW5lbEhlYWRlclRpdGxlLFxuICBQYW5lbEhlYWRlckNvbnRlbnQsXG4gIFBhbmVsQ29udGVudFxufSBmcm9tICcuLi8uLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtNZXNzYWdlcywgQ3Jvc3NoYWlycywgQ3Vyc29yQ2xpY2ssIFBpbn0gZnJvbSAnLi4vLi4vY29tbW9uL2ljb25zJztcblxuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5cbmludGVyZmFjZSBJbnRlcmFjdGlvblBhbmVsUHJvcHMge1xuICBkYXRhc2V0czogRGF0YXNldHM7XG4gIGNvbmZpZzogVmFsdWVPZjxJbnRlcmFjdGlvbkNvbmZpZz47XG4gIG9uQ29uZmlnQ2hhbmdlOiBhbnk7XG4gIGludGVyYWN0aW9uQ29uZmlnSWNvbnM/OiB7XG4gICAgW2tleTogc3RyaW5nXTogUmVhY3QuRWxlbWVudFR5cGU7XG4gIH07XG4gIHNldENvbHVtbkRpc3BsYXlGb3JtYXQ6IEFjdGlvbkhhbmRsZXI8dHlwZW9mIHNldENvbHVtbkRpc3BsYXlGb3JtYXRBY3Rpb24+O1xufVxuXG5jb25zdCBTdHlsZWRJbnRlcmFjdGlvblBhbmVsID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZy1ib3R0b206IDZweDtcbmA7XG5cbkludGVyYWN0aW9uUGFuZWxGYWN0b3J5LmRlcHMgPSBbVG9vbHRpcENvbmZpZ0ZhY3RvcnksIEJydXNoQ29uZmlnRmFjdG9yeV07XG5cbmNvbnN0IElOVEVSQUNUSU9OX0NPTkZJR19JQ09OUzoge1trZXk6IHN0cmluZ106IFJlYWN0LkVsZW1lbnRUeXBlfSA9IHtcbiAgdG9vbHRpcDogTWVzc2FnZXMsXG4gIGdlb2NvZGVyOiBQaW4sXG4gIGJydXNoOiBDcm9zc2hhaXJzLFxuICBjb29yZGluYXRlOiBDdXJzb3JDbGlja1xufTtcblxuZnVuY3Rpb24gSW50ZXJhY3Rpb25QYW5lbEZhY3RvcnkoXG4gIFRvb2x0aXBDb25maWc6IFJldHVyblR5cGU8dHlwZW9mIFRvb2x0aXBDb25maWdGYWN0b3J5PixcbiAgQnJ1c2hDb25maWc6IFJldHVyblR5cGU8dHlwZW9mIEJydXNoQ29uZmlnRmFjdG9yeT5cbik6IENvbXBvbmVudFR5cGU8SW50ZXJhY3Rpb25QYW5lbFByb3BzPiB7XG4gIGNvbnN0IEludGVyYWN0aW9uUGFuZWw6IFJlYWN0LkZDPEludGVyYWN0aW9uUGFuZWxQcm9wcz4gPSAoe1xuICAgIGNvbmZpZyxcbiAgICBvbkNvbmZpZ0NoYW5nZSxcbiAgICBkYXRhc2V0cyxcbiAgICBzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0LFxuICAgIGludGVyYWN0aW9uQ29uZmlnSWNvbnMgPSBJTlRFUkFDVElPTl9DT05GSUdfSUNPTlNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IFtpc0NvbmZpZ0FjdGl2ZSwgc2V0SXNDb25maWdBY3Rpb25dID0gdXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgY29uc3QgX3VwZGF0ZUNvbmZpZyA9IHVzZUNhbGxiYWNrKFxuICAgICAgbmV3UHJvcCA9PiB7XG4gICAgICAgIG9uQ29uZmlnQ2hhbmdlKHtcbiAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgLi4ubmV3UHJvcFxuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgICBbb25Db25maWdDaGFuZ2UsIGNvbmZpZ11cbiAgICApO1xuXG4gICAgY29uc3Qgb25EaXNwbGF5Rm9ybWF0Q2hhbmdlID0gdXNlQ2FsbGJhY2soXG4gICAgICAoZGF0YUlkLCBjb2x1bW4sIGRpc3BsYXlGb3JtYXQpID0+IHtcbiAgICAgICAgc2V0Q29sdW1uRGlzcGxheUZvcm1hdChkYXRhSWQsIHtbY29sdW1uXTogZGlzcGxheUZvcm1hdH0pO1xuICAgICAgfSxcbiAgICAgIFtzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0XVxuICAgICk7XG5cbiAgICBjb25zdCB0b2dnbGVQYW5lbEFjdGl2ZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldElzQ29uZmlnQWN0aW9uKCFpc0NvbmZpZ0FjdGl2ZSk7XG4gICAgfSwgW3NldElzQ29uZmlnQWN0aW9uLCBpc0NvbmZpZ0FjdGl2ZV0pO1xuXG4gICAgY29uc3Qge2VuYWJsZWR9ID0gY29uZmlnO1xuICAgIGNvbnN0IHRvZ2dsZUVuYWJsZUNvbmZpZyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIF91cGRhdGVDb25maWcoe2VuYWJsZWQ6ICFlbmFibGVkfSk7XG4gICAgfSwgW191cGRhdGVDb25maWcsIGVuYWJsZWRdKTtcblxuICAgIGNvbnN0IG9uQ2hhbmdlID0gdXNlQ2FsbGJhY2sobmV3Q29uZmlnID0+IF91cGRhdGVDb25maWcoe2NvbmZpZzogbmV3Q29uZmlnfSksIFtfdXBkYXRlQ29uZmlnXSk7XG5cbiAgICBjb25zdCBJY29uQ29tcG9uZW50ID0gaW50ZXJhY3Rpb25Db25maWdJY29uc1tjb25maWcuaWRdO1xuXG4gICAgbGV0IHRlbXBsYXRlOiBSZWFjdEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIHN3aXRjaCAoY29uZmlnLmlkKSB7XG4gICAgICBjYXNlICd0b29sdGlwJzpcbiAgICAgICAgdGVtcGxhdGUgPSAoXG4gICAgICAgICAgPFRvb2x0aXBDb25maWdcbiAgICAgICAgICAgIGRhdGFzZXRzPXtkYXRhc2V0c31cbiAgICAgICAgICAgIGNvbmZpZz17Y29uZmlnLmNvbmZpZ31cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkNoYW5nZX1cbiAgICAgICAgICAgIG9uRGlzcGxheUZvcm1hdENoYW5nZT17b25EaXNwbGF5Rm9ybWF0Q2hhbmdlfVxuICAgICAgICAgIC8+XG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYnJ1c2gnOlxuICAgICAgICB0ZW1wbGF0ZSA9IDxCcnVzaENvbmZpZyBjb25maWc9e2NvbmZpZy5jb25maWd9IG9uQ2hhbmdlPXtvbkNoYW5nZX0gLz47XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRJbnRlcmFjdGlvblBhbmVsIGNsYXNzTmFtZT1cImludGVyYWN0aW9uLXBhbmVsXCI+XG4gICAgICAgIDxTdHlsZWRQYW5lbEhlYWRlciBjbGFzc05hbWU9XCJpbnRlcmFjdGlvbi1wYW5lbF9faGVhZGVyXCIgb25DbGljaz17dG9nZ2xlUGFuZWxBY3RpdmV9PlxuICAgICAgICAgIDxQYW5lbEhlYWRlckNvbnRlbnQgY2xhc3NOYW1lPVwiaW50ZXJhY3Rpb24tcGFuZWxfX2hlYWRlcl9fY29udGVudFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbnRlcmFjdGlvbi1wYW5lbF9faGVhZGVyX19pY29uIGljb25cIj5cbiAgICAgICAgICAgICAge0ljb25Db21wb25lbnQgPyA8SWNvbkNvbXBvbmVudCBoZWlnaHQ9XCIxNnB4XCIgLz4gOiBudWxsfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImludGVyYWN0aW9uLXBhbmVsX19oZWFkZXJfX3RpdGxlXCI+XG4gICAgICAgICAgICAgIDxQYW5lbEhlYWRlclRpdGxlPlxuICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXtjb25maWcubGFiZWx9IC8+XG4gICAgICAgICAgICAgIDwvUGFuZWxIZWFkZXJUaXRsZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvUGFuZWxIZWFkZXJDb250ZW50PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW50ZXJhY3Rpb24tcGFuZWxfX2hlYWRlcl9fYWN0aW9uc1wiPlxuICAgICAgICAgICAgPFN3aXRjaFxuICAgICAgICAgICAgICBjaGVja2VkPXtjb25maWcuZW5hYmxlZH1cbiAgICAgICAgICAgICAgaWQ9e2Ake2NvbmZpZy5pZH0tdG9nZ2xlYH1cbiAgICAgICAgICAgICAgb25DaGFuZ2U9e3RvZ2dsZUVuYWJsZUNvbmZpZ31cbiAgICAgICAgICAgICAgc2Vjb25kYXJ5XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L1N0eWxlZFBhbmVsSGVhZGVyPlxuICAgICAgICB7Y29uZmlnLmVuYWJsZWQgJiYgdGVtcGxhdGUgJiYgKFxuICAgICAgICAgIDxQYW5lbENvbnRlbnQgY2xhc3NOYW1lPVwiaW50ZXJhY3Rpb24tcGFuZWxfX2NvbnRlbnRcIj57dGVtcGxhdGV9PC9QYW5lbENvbnRlbnQ+XG4gICAgICAgICl9XG4gICAgICA8L1N0eWxlZEludGVyYWN0aW9uUGFuZWw+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gSW50ZXJhY3Rpb25QYW5lbDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgSW50ZXJhY3Rpb25QYW5lbEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUQsc0JBQUEs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
115
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3dpdGNoIiwiX2JydXNoQ29uZmlnIiwiX3Rvb2x0aXBDb25maWciLCJfc3R5bGVkQ29tcG9uZW50czIiLCJfaWNvbnMiLCJfbG9jYWxpemF0aW9uIiwiX3RlbXBsYXRlT2JqZWN0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiU3R5bGVkSW50ZXJhY3Rpb25QYW5lbCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwiSW50ZXJhY3Rpb25QYW5lbEZhY3RvcnkiLCJkZXBzIiwiVG9vbHRpcENvbmZpZ0ZhY3RvcnkiLCJCcnVzaENvbmZpZ0ZhY3RvcnkiLCJJTlRFUkFDVElPTl9DT05GSUdfSUNPTlMiLCJ0b29sdGlwIiwiTWVzc2FnZXMiLCJnZW9jb2RlciIsIlBpbiIsImJydXNoIiwiQ3Jvc3NoYWlycyIsImNvb3JkaW5hdGUiLCJDdXJzb3JDbGljayIsIlRvb2x0aXBDb25maWciLCJCcnVzaENvbmZpZyIsIkludGVyYWN0aW9uUGFuZWwiLCJfcmVmIiwiY29uZmlnIiwib25Db25maWdDaGFuZ2UiLCJkYXRhc2V0cyIsInNldENvbHVtbkRpc3BsYXlGb3JtYXQiLCJfcmVmJGludGVyYWN0aW9uQ29uZmkiLCJpbnRlcmFjdGlvbkNvbmZpZ0ljb25zIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkyIiwiaXNDb25maWdBY3RpdmUiLCJzZXRJc0NvbmZpZ0FjdGlvbiIsIl91cGRhdGVDb25maWciLCJ1c2VDYWxsYmFjayIsIm5ld1Byb3AiLCJvbkRpc3BsYXlGb3JtYXRDaGFuZ2UiLCJkYXRhSWQiLCJjb2x1bW4iLCJkaXNwbGF5Rm9ybWF0IiwidG9nZ2xlUGFuZWxBY3RpdmUiLCJlbmFibGVkIiwidG9nZ2xlRW5hYmxlQ29uZmlnIiwib25DaGFuZ2UiLCJuZXdDb25maWciLCJJY29uQ29tcG9uZW50IiwiaWQiLCJ0ZW1wbGF0ZSIsImNyZWF0ZUVsZW1lbnQiLCJjbGFzc05hbWUiLCJTdHlsZWRQYW5lbEhlYWRlciIsIm9uQ2xpY2siLCJQYW5lbEhlYWRlckNvbnRlbnQiLCJoZWlnaHQiLCJQYW5lbEhlYWRlclRpdGxlIiwiRm9ybWF0dGVkTWVzc2FnZSIsImxhYmVsIiwiY2hlY2tlZCIsImNvbmNhdCIsInNlY29uZGFyeSIsIlBhbmVsQ29udGVudCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zaWRlLXBhbmVsL2ludGVyYWN0aW9uLXBhbmVsL2ludGVyYWN0aW9uLXBhbmVsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VTdGF0ZSwgQ29tcG9uZW50VHlwZSwgUmVhY3RFbGVtZW50LCB1c2VDYWxsYmFja30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgU3dpdGNoIGZyb20gJy4uLy4uL2NvbW1vbi9zd2l0Y2gnO1xuaW1wb3J0IEJydXNoQ29uZmlnRmFjdG9yeSBmcm9tICcuL2JydXNoLWNvbmZpZyc7XG5pbXBvcnQgVG9vbHRpcENvbmZpZ0ZhY3RvcnkgZnJvbSAnLi90b29sdGlwLWNvbmZpZyc7XG5pbXBvcnQge0RhdGFzZXRzfSBmcm9tICdAa2VwbGVyLmdsL3RhYmxlJztcbmltcG9ydCB7SW50ZXJhY3Rpb25Db25maWcsIFZhbHVlT2Z9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtcbiAgc2V0Q29sdW1uRGlzcGxheUZvcm1hdCBhcyBzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0QWN0aW9uLFxuICBBY3Rpb25IYW5kbGVyXG59IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5cbmltcG9ydCB7XG4gIFN0eWxlZFBhbmVsSGVhZGVyLFxuICBQYW5lbEhlYWRlclRpdGxlLFxuICBQYW5lbEhlYWRlckNvbnRlbnQsXG4gIFBhbmVsQ29udGVudFxufSBmcm9tICcuLi8uLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtNZXNzYWdlcywgQ3Jvc3NoYWlycywgQ3Vyc29yQ2xpY2ssIFBpbn0gZnJvbSAnLi4vLi4vY29tbW9uL2ljb25zJztcblxuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5cbmludGVyZmFjZSBJbnRlcmFjdGlvblBhbmVsUHJvcHMge1xuICBkYXRhc2V0czogRGF0YXNldHM7XG4gIGNvbmZpZzogVmFsdWVPZjxJbnRlcmFjdGlvbkNvbmZpZz47XG4gIG9uQ29uZmlnQ2hhbmdlOiBhbnk7XG4gIGludGVyYWN0aW9uQ29uZmlnSWNvbnM/OiB7XG4gICAgW2tleTogc3RyaW5nXTogUmVhY3QuRWxlbWVudFR5cGU7XG4gIH07XG4gIHNldENvbHVtbkRpc3BsYXlGb3JtYXQ6IEFjdGlvbkhhbmRsZXI8dHlwZW9mIHNldENvbHVtbkRpc3BsYXlGb3JtYXRBY3Rpb24+O1xufVxuXG5jb25zdCBTdHlsZWRJbnRlcmFjdGlvblBhbmVsID0gc3R5bGVkLmRpdmBcbiAgcGFkZGluZy1ib3R0b206IDZweDtcbiAgY29udGFpbjogbGF5b3V0IHBhaW50O1xuYDtcblxuSW50ZXJhY3Rpb25QYW5lbEZhY3RvcnkuZGVwcyA9IFtUb29sdGlwQ29uZmlnRmFjdG9yeSwgQnJ1c2hDb25maWdGYWN0b3J5XTtcblxuY29uc3QgSU5URVJBQ1RJT05fQ09ORklHX0lDT05TOiB7W2tleTogc3RyaW5nXTogUmVhY3QuRWxlbWVudFR5cGV9ID0ge1xuICB0b29sdGlwOiBNZXNzYWdlcyxcbiAgZ2VvY29kZXI6IFBpbixcbiAgYnJ1c2g6IENyb3NzaGFpcnMsXG4gIGNvb3JkaW5hdGU6IEN1cnNvckNsaWNrXG59O1xuXG5mdW5jdGlvbiBJbnRlcmFjdGlvblBhbmVsRmFjdG9yeShcbiAgVG9vbHRpcENvbmZpZzogUmV0dXJuVHlwZTx0eXBlb2YgVG9vbHRpcENvbmZpZ0ZhY3Rvcnk+LFxuICBCcnVzaENvbmZpZzogUmV0dXJuVHlwZTx0eXBlb2YgQnJ1c2hDb25maWdGYWN0b3J5PlxuKTogQ29tcG9uZW50VHlwZTxJbnRlcmFjdGlvblBhbmVsUHJvcHM+IHtcbiAgY29uc3QgSW50ZXJhY3Rpb25QYW5lbDogUmVhY3QuRkM8SW50ZXJhY3Rpb25QYW5lbFByb3BzPiA9ICh7XG4gICAgY29uZmlnLFxuICAgIG9uQ29uZmlnQ2hhbmdlLFxuICAgIGRhdGFzZXRzLFxuICAgIHNldENvbHVtbkRpc3BsYXlGb3JtYXQsXG4gICAgaW50ZXJhY3Rpb25Db25maWdJY29ucyA9IElOVEVSQUNUSU9OX0NPTkZJR19JQ09OU1xuICB9KSA9PiB7XG4gICAgY29uc3QgW2lzQ29uZmlnQWN0aXZlLCBzZXRJc0NvbmZpZ0FjdGlvbl0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgICBjb25zdCBfdXBkYXRlQ29uZmlnID0gdXNlQ2FsbGJhY2soXG4gICAgICBuZXdQcm9wID0+IHtcbiAgICAgICAgb25Db25maWdDaGFuZ2Uoe1xuICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICAuLi5uZXdQcm9wXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIFtvbkNvbmZpZ0NoYW5nZSwgY29uZmlnXVxuICAgICk7XG5cbiAgICBjb25zdCBvbkRpc3BsYXlGb3JtYXRDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAgIChkYXRhSWQsIGNvbHVtbiwgZGlzcGxheUZvcm1hdCkgPT4ge1xuICAgICAgICBzZXRDb2x1bW5EaXNwbGF5Rm9ybWF0KGRhdGFJZCwge1tjb2x1bW5dOiBkaXNwbGF5Rm9ybWF0fSk7XG4gICAgICB9LFxuICAgICAgW3NldENvbHVtbkRpc3BsYXlGb3JtYXRdXG4gICAgKTtcblxuICAgIGNvbnN0IHRvZ2dsZVBhbmVsQWN0aXZlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0SXNDb25maWdBY3Rpb24oIWlzQ29uZmlnQWN0aXZlKTtcbiAgICB9LCBbc2V0SXNDb25maWdBY3Rpb24sIGlzQ29uZmlnQWN0aXZlXSk7XG5cbiAgICBjb25zdCB7ZW5hYmxlZH0gPSBjb25maWc7XG4gICAgY29uc3QgdG9nZ2xlRW5hYmxlQ29uZmlnID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgX3VwZGF0ZUNvbmZpZyh7ZW5hYmxlZDogIWVuYWJsZWR9KTtcbiAgICB9LCBbX3VwZGF0ZUNvbmZpZywgZW5hYmxlZF0pO1xuXG4gICAgY29uc3Qgb25DaGFuZ2UgPSB1c2VDYWxsYmFjayhuZXdDb25maWcgPT4gX3VwZGF0ZUNvbmZpZyh7Y29uZmlnOiBuZXdDb25maWd9KSwgW191cGRhdGVDb25maWddKTtcblxuICAgIGNvbnN0IEljb25Db21wb25lbnQgPSBpbnRlcmFjdGlvbkNvbmZpZ0ljb25zW2NvbmZpZy5pZF07XG5cbiAgICBsZXQgdGVtcGxhdGU6IFJlYWN0RWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgc3dpdGNoIChjb25maWcuaWQpIHtcbiAgICAgIGNhc2UgJ3Rvb2x0aXAnOlxuICAgICAgICB0ZW1wbGF0ZSA9IChcbiAgICAgICAgICA8VG9vbHRpcENvbmZpZ1xuICAgICAgICAgICAgZGF0YXNldHM9e2RhdGFzZXRzfVxuICAgICAgICAgICAgY29uZmlnPXtjb25maWcuY29uZmlnfVxuICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgICAgb25EaXNwbGF5Rm9ybWF0Q2hhbmdlPXtvbkRpc3BsYXlGb3JtYXRDaGFuZ2V9XG4gICAgICAgICAgLz5cbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdicnVzaCc6XG4gICAgICAgIHRlbXBsYXRlID0gPEJydXNoQ29uZmlnIGNvbmZpZz17Y29uZmlnLmNvbmZpZ30gb25DaGFuZ2U9e29uQ2hhbmdlfSAvPjtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICByZXR1cm4gKFxuICAgICAgPFN0eWxlZEludGVyYWN0aW9uUGFuZWwgY2xhc3NOYW1lPVwiaW50ZXJhY3Rpb24tcGFuZWxcIj5cbiAgICAgICAgPFN0eWxlZFBhbmVsSGVhZGVyIGNsYXNzTmFtZT1cImludGVyYWN0aW9uLXBhbmVsX19oZWFkZXJcIiBvbkNsaWNrPXt0b2dnbGVQYW5lbEFjdGl2ZX0+XG4gICAgICAgICAgPFBhbmVsSGVhZGVyQ29udGVudCBjbGFzc05hbWU9XCJpbnRlcmFjdGlvbi1wYW5lbF9faGVhZGVyX19jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImludGVyYWN0aW9uLXBhbmVsX19oZWFkZXJfX2ljb24gaWNvblwiPlxuICAgICAgICAgICAgICB7SWNvbkNvbXBvbmVudCA/IDxJY29uQ29tcG9uZW50IGhlaWdodD1cIjE2cHhcIiAvPiA6IG51bGx9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaW50ZXJhY3Rpb24tcGFuZWxfX2hlYWRlcl9fdGl0bGVcIj5cbiAgICAgICAgICAgICAgPFBhbmVsSGVhZGVyVGl0bGU+XG4gICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9e2NvbmZpZy5sYWJlbH0gLz5cbiAgICAgICAgICAgICAgPC9QYW5lbEhlYWRlclRpdGxlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9QYW5lbEhlYWRlckNvbnRlbnQ+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJpbnRlcmFjdGlvbi1wYW5lbF9faGVhZGVyX19hY3Rpb25zXCI+XG4gICAgICAgICAgICA8U3dpdGNoXG4gICAgICAgICAgICAgIGNoZWNrZWQ9e2NvbmZpZy5lbmFibGVkfVxuICAgICAgICAgICAgICBpZD17YCR7Y29uZmlnLmlkfS10b2dnbGVgfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17dG9nZ2xlRW5hYmxlQ29uZmlnfVxuICAgICAgICAgICAgICBzZWNvbmRhcnlcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvU3R5bGVkUGFuZWxIZWFkZXI+XG4gICAgICAgIHtjb25maWcuZW5hYmxlZCAmJiB0ZW1wbGF0ZSAmJiAoXG4gICAgICAgICAgPFBhbmVsQ29udGVudCBjbGFzc05hbWU9XCJpbnRlcmFjdGlvbi1wYW5lbF9fY29udGVudFwiPnt0ZW1wbGF0ZX08L1BhbmVsQ29udGVudD5cbiAgICAgICAgKX1cbiAgICAgIDwvU3R5bGVkSW50ZXJhY3Rpb25QYW5lbD5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBJbnRlcmFjdGlvblBhbmVsO1xufVxuXG5leHBvcnQgZGVmYXVsdCBJbnRlcmFjdGlvblBhbmVsRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksWUFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssY0FBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBUUEsSUFBQU0sa0JBQUEsR0FBQU4sT0FBQTtBQU1BLElBQUFPLE1BQUEsR0FBQVAsT0FBQTtBQUVBLElBQUFRLGFBQUEsR0FBQVIsT0FBQTtBQUF5RCxJQUFBUyxlQUFBLEVBdkJ6RDtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFaLHdCQUFBWSxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFkLENBQUEsb0JBQUFjLENBQUEsT0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFoQixDQUFBLEVBQUFjLENBQUEsU0FBQUcsQ0FBQSxHQUFBUCxDQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWIsQ0FBQSxFQUFBYyxDQUFBLFVBQUFHLENBQUEsS0FBQUEsQ0FBQSxDQUFBVixHQUFBLElBQUFVLENBQUEsQ0FBQUMsR0FBQSxJQUFBUCxNQUFBLENBQUFDLGNBQUEsQ0FBQUosQ0FBQSxFQUFBTSxDQUFBLEVBQUFHLENBQUEsSUFBQVQsQ0FBQSxDQUFBTSxDQUFBLElBQUFkLENBQUEsQ0FBQWMsQ0FBQSxZQUFBTixDQUFBLGNBQUFSLENBQUEsRUFBQUcsQ0FBQSxJQUFBQSxDQUFBLENBQUFlLEdBQUEsQ0FBQWxCLENBQUEsRUFBQVEsQ0FBQSxHQUFBQSxDQUFBO0FBQUEsU0FBQVcsUUFBQW5CLENBQUEsRUFBQUUsQ0FBQSxRQUFBQyxDQUFBLEdBQUFRLE1BQUEsQ0FBQVMsSUFBQSxDQUFBcEIsQ0FBQSxPQUFBVyxNQUFBLENBQUFVLHFCQUFBLFFBQUFDLENBQUEsR0FBQVgsTUFBQSxDQUFBVSxxQkFBQSxDQUFBckIsQ0FBQSxHQUFBRSxDQUFBLEtBQUFvQixDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBckIsQ0FBQSxXQUFBUyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQUUsQ0FBQSxFQUFBc0IsVUFBQSxPQUFBckIsQ0FBQSxDQUFBc0IsSUFBQSxDQUFBQyxLQUFBLENBQUF2QixDQUFBLEVBQUFtQixDQUFBLFlBQUFuQixDQUFBO0FBQUEsU0FBQXdCLGNBQUEzQixDQUFBLGFBQUFFLENBQUEsTUFBQUEsQ0FBQSxHQUFBMEIsU0FBQSxDQUFBQyxNQUFBLEVBQUEzQixDQUFBLFVBQUFDLENBQUEsV0FBQXlCLFNBQUEsQ0FBQTFCLENBQUEsSUFBQTBCLFNBQUEsQ0FBQTFCLENBQUEsUUFBQUEsQ0FBQSxPQUFBaUIsT0FBQSxDQUFBUixNQUFBLENBQUFSLENBQUEsT0FBQTJCLE9BQUEsV0FBQTVCLENBQUEsUUFBQTZCLGdCQUFBLGFBQUEvQixDQUFBLEVBQUFFLENBQUEsRUFBQUMsQ0FBQSxDQUFBRCxDQUFBLFNBQUFTLE1BQUEsQ0FBQXFCLHlCQUFBLEdBQUFyQixNQUFBLENBQUFzQixnQkFBQSxDQUFBakMsQ0FBQSxFQUFBVyxNQUFBLENBQUFxQix5QkFBQSxDQUFBN0IsQ0FBQSxLQUFBZ0IsT0FBQSxDQUFBUixNQUFBLENBQUFSLENBQUEsR0FBQTJCLE9BQUEsV0FBQTVCLENBQUEsSUFBQVMsTUFBQSxDQUFBQyxjQUFBLENBQUFaLENBQUEsRUFBQUUsQ0FBQSxFQUFBUyxNQUFBLENBQUFFLHdCQUFBLENBQUFWLENBQUEsRUFBQUQsQ0FBQSxpQkFBQUYsQ0FBQTtBQWtDQSxJQUFNa0Msc0JBQXNCLEdBQUdDLDRCQUFNLENBQUNDLEdBQUcsQ0FBQXRDLGVBQUEsS0FBQUEsZUFBQSxPQUFBdUMsdUJBQUEsd0VBR3hDO0FBRURDLHVCQUF1QixDQUFDQyxJQUFJLEdBQUcsQ0FBQ0MseUJBQW9CLEVBQUVDLHVCQUFrQixDQUFDO0FBRXpFLElBQU1DLHdCQUE0RCxHQUFHO0VBQ25FQyxPQUFPLEVBQUVDLGVBQVE7RUFDakJDLFFBQVEsRUFBRUMsVUFBRztFQUNiQyxLQUFLLEVBQUVDLGlCQUFVO0VBQ2pCQyxVQUFVLEVBQUVDO0FBQ2QsQ0FBQztBQUVELFNBQVNaLHVCQUF1QkEsQ0FDOUJhLGFBQXNELEVBQ3REQyxXQUFrRCxFQUNaO0VBQ3RDLElBQU1DLGdCQUFpRCxHQUFHLFNBQXBEQSxnQkFBaURBLENBQUFDLElBQUEsRUFNakQ7SUFBQSxJQUxKQyxNQUFNLEdBQUFELElBQUEsQ0FBTkMsTUFBTTtNQUNOQyxjQUFjLEdBQUFGLElBQUEsQ0FBZEUsY0FBYztNQUNkQyxRQUFRLEdBQUFILElBQUEsQ0FBUkcsUUFBUTtNQUNSQyxzQkFBc0IsR0FBQUosSUFBQSxDQUF0Qkksc0JBQXNCO01BQUFDLHFCQUFBLEdBQUFMLElBQUEsQ0FDdEJNLHNCQUFzQjtNQUF0QkEsc0JBQXNCLEdBQUFELHFCQUFBLGNBQUdqQix3QkFBd0IsR0FBQWlCLHFCQUFBO0lBRWpELElBQUFFLFNBQUEsR0FBNEMsSUFBQUMsZUFBUSxFQUFDLEtBQUssQ0FBQztNQUFBQyxVQUFBLE9BQUFDLGVBQUEsYUFBQUgsU0FBQTtNQUFwREksY0FBYyxHQUFBRixVQUFBO01BQUVHLGlCQUFpQixHQUFBSCxVQUFBO0lBRXhDLElBQU1JLGFBQWEsR0FBRyxJQUFBQyxrQkFBVyxFQUMvQixVQUFBQyxPQUFPLEVBQUk7TUFDVGIsY0FBYyxDQUFBN0IsYUFBQSxDQUFBQSxhQUFBLEtBQ1Q0QixNQUFNLEdBQ05jLE9BQU8sQ0FDWCxDQUFDO0lBQ0osQ0FBQyxFQUNELENBQUNiLGNBQWMsRUFBRUQsTUFBTSxDQUN6QixDQUFDO0lBRUQsSUFBTWUscUJBQXFCLEdBQUcsSUFBQUYsa0JBQVcsRUFDdkMsVUFBQ0csTUFBTSxFQUFFQyxNQUFNLEVBQUVDLGFBQWEsRUFBSztNQUNqQ2Ysc0JBQXNCLENBQUNhLE1BQU0sTUFBQXhDLGdCQUFBLGlCQUFJeUMsTUFBTSxFQUFHQyxhQUFhLENBQUMsQ0FBQztJQUMzRCxDQUFDLEVBQ0QsQ0FBQ2Ysc0JBQXNCLENBQ3pCLENBQUM7SUFFRCxJQUFNZ0IsaUJBQWlCLEdBQUcsSUFBQU4sa0JBQVcsRUFBQyxZQUFNO01BQzFDRixpQkFBaUIsQ0FBQyxDQUFDRCxjQUFjLENBQUM7SUFDcEMsQ0FBQyxFQUFFLENBQUNDLGlCQUFpQixFQUFFRCxjQUFjLENBQUMsQ0FBQztJQUV2QyxJQUFPVSxPQUFPLEdBQUlwQixNQUFNLENBQWpCb0IsT0FBTztJQUNkLElBQU1DLGtCQUFrQixHQUFHLElBQUFSLGtCQUFXLEVBQUMsWUFBTTtNQUMzQ0QsYUFBYSxDQUFDO1FBQUNRLE9BQU8sRUFBRSxDQUFDQTtNQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDLEVBQUUsQ0FBQ1IsYUFBYSxFQUFFUSxPQUFPLENBQUMsQ0FBQztJQUU1QixJQUFNRSxRQUFRLEdBQUcsSUFBQVQsa0JBQVcsRUFBQyxVQUFBVSxTQUFTO01BQUEsT0FBSVgsYUFBYSxDQUFDO1FBQUNaLE1BQU0sRUFBRXVCO01BQVMsQ0FBQyxDQUFDO0lBQUEsR0FBRSxDQUFDWCxhQUFhLENBQUMsQ0FBQztJQUU5RixJQUFNWSxhQUFhLEdBQUduQixzQkFBc0IsQ0FBQ0wsTUFBTSxDQUFDeUIsRUFBRSxDQUFDO0lBRXZELElBQUlDLFFBQTZCLEdBQUcsSUFBSTtJQUV4QyxRQUFRMUIsTUFBTSxDQUFDeUIsRUFBRTtNQUNmLEtBQUssU0FBUztRQUNaQyxRQUFRLGdCQUNOOUYsTUFBQSxZQUFBK0YsYUFBQSxDQUFDL0IsYUFBYTtVQUNaTSxRQUFRLEVBQUVBLFFBQVM7VUFDbkJGLE1BQU0sRUFBRUEsTUFBTSxDQUFDQSxNQUFPO1VBQ3RCc0IsUUFBUSxFQUFFQSxRQUFTO1VBQ25CUCxxQkFBcUIsRUFBRUE7UUFBc0IsQ0FDOUMsQ0FDRjtRQUNEO01BQ0YsS0FBSyxPQUFPO1FBQ1ZXLFFBQVEsZ0JBQUc5RixNQUFBLFlBQUErRixhQUFBLENBQUM5QixXQUFXO1VBQUNHLE1BQU0sRUFBRUEsTUFBTSxDQUFDQSxNQUFPO1VBQUNzQixRQUFRLEVBQUVBO1FBQVMsQ0FBRSxDQUFDO1FBQ3JFO01BRUY7UUFDRTtJQUNKO0lBQ0Esb0JBQ0UxRixNQUFBLFlBQUErRixhQUFBLENBQUNoRCxzQkFBc0I7TUFBQ2lELFNBQVMsRUFBQztJQUFtQixnQkFDbkRoRyxNQUFBLFlBQUErRixhQUFBLENBQUN2RixrQkFBQSxDQUFBeUYsaUJBQWlCO01BQUNELFNBQVMsRUFBQywyQkFBMkI7TUFBQ0UsT0FBTyxFQUFFWDtJQUFrQixnQkFDbEZ2RixNQUFBLFlBQUErRixhQUFBLENBQUN2RixrQkFBQSxDQUFBMkYsa0JBQWtCO01BQUNILFNBQVMsRUFBQztJQUFvQyxnQkFDaEVoRyxNQUFBLFlBQUErRixhQUFBO01BQUtDLFNBQVMsRUFBQztJQUFzQyxHQUNsREosYUFBYSxnQkFBRzVGLE1BQUEsWUFBQStGLGFBQUEsQ0FBQ0gsYUFBYTtNQUFDUSxNQUFNLEVBQUM7SUFBTSxDQUFFLENBQUMsR0FBRyxJQUNoRCxDQUFDLGVBQ05wRyxNQUFBLFlBQUErRixhQUFBO01BQUtDLFNBQVMsRUFBQztJQUFrQyxnQkFDL0NoRyxNQUFBLFlBQUErRixhQUFBLENBQUN2RixrQkFBQSxDQUFBNkYsZ0JBQWdCLHFCQUNmckcsTUFBQSxZQUFBK0YsYUFBQSxDQUFDckYsYUFBQSxDQUFBNEYsZ0JBQWdCO01BQUNULEVBQUUsRUFBRXpCLE1BQU0sQ0FBQ21DO0lBQU0sQ0FBRSxDQUNyQixDQUNmLENBQ2EsQ0FBQyxlQUNyQnZHLE1BQUEsWUFBQStGLGFBQUE7TUFBS0MsU0FBUyxFQUFDO0lBQW9DLGdCQUNqRGhHLE1BQUEsWUFBQStGLGFBQUEsQ0FBQzFGLE9BQUEsV0FBTTtNQUNMbUcsT0FBTyxFQUFFcEMsTUFBTSxDQUFDb0IsT0FBUTtNQUN4QkssRUFBRSxLQUFBWSxNQUFBLENBQUtyQyxNQUFNLENBQUN5QixFQUFFLFlBQVU7TUFDMUJILFFBQVEsRUFBRUQsa0JBQW1CO01BQzdCaUIsU0FBUztJQUFBLENBQ1YsQ0FDRSxDQUNZLENBQUMsRUFDbkJ0QyxNQUFNLENBQUNvQixPQUFPLElBQUlNLFFBQVEsaUJBQ3pCOUYsTUFBQSxZQUFBK0YsYUFBQSxDQUFDdkYsa0JBQUEsQ0FBQW1HLFlBQVk7TUFBQ1gsU0FBUyxFQUFDO0lBQTRCLEdBQUVGLFFBQXVCLENBRXpELENBQUM7RUFFN0IsQ0FBQztFQUVELE9BQU81QixnQkFBZ0I7QUFDekI7QUFBQyxJQUFBMEMsUUFBQSxHQUFBQyxPQUFBLGNBRWMxRCx1QkFBdUIiLCJpZ25vcmVMaXN0IjpbXX0=