geonetwork-ui 2.7.0-dev.47822f9d1 → 2.7.0-dev.54999b5e2

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 (135) hide show
  1. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.mjs +4 -1
  2. package/esm2022/libs/api/metadata-converter/src/lib/iso19139/write-parts.mjs +5 -1
  3. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/constant.mjs +4 -6
  4. package/esm2022/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.mjs +47 -3
  5. package/esm2022/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.mjs +18 -4
  6. package/esm2022/libs/common/domain/src/lib/model/record/metadata.model.mjs +5 -1
  7. package/esm2022/libs/feature/dataviz/src/lib/service/data.service.mjs +2 -2
  8. package/esm2022/libs/feature/editor/src/index.mjs +2 -1
  9. package/esm2022/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.mjs +80 -0
  10. package/esm2022/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.mjs +3 -3
  11. package/esm2022/libs/feature/editor/src/lib/fields.config.mjs +1 -3
  12. package/esm2022/libs/feature/map/src/lib/utils/map-utils.service.mjs +3 -5
  13. package/esm2022/libs/feature/record/src/lib/map-view/map-view.component.mjs +4 -2
  14. package/esm2022/libs/feature/search/src/lib/state/reducer.mjs +5 -2
  15. package/esm2022/libs/ui/elements/src/lib/downloads-list/downloads-list.component.mjs +5 -4
  16. package/esm2022/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.mjs +5 -4
  17. package/esm2022/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.mjs +4 -4
  18. package/esm2022/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.mjs +21 -43
  19. package/esm2022/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.mjs +5 -4
  20. package/esm2022/libs/util/app-config/src/lib/app-config.mjs +3 -1
  21. package/esm2022/libs/util/app-config/src/lib/model.mjs +1 -1
  22. package/esm2022/libs/util/shared/src/index.mjs +2 -2
  23. package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +4 -2
  24. package/esm2022/libs/util/shared/src/lib/record/index.mjs +3 -0
  25. package/esm2022/libs/util/shared/src/lib/record/quality-score.util.mjs +45 -0
  26. package/esm2022/libs/util/shared/src/lib/record/record.util.mjs +56 -0
  27. package/esm2022/libs/util/shared/src/lib/utils/geojson.mjs +58 -1
  28. package/esm2022/libs/util/shared/src/lib/utils/index.mjs +2 -1
  29. package/esm2022/libs/util/shared/src/lib/utils/mobile-screen.mjs +9 -0
  30. package/esm2022/translations/de.json +7 -0
  31. package/esm2022/translations/en.json +7 -0
  32. package/esm2022/translations/es.json +7 -0
  33. package/esm2022/translations/fr.json +8 -1
  34. package/esm2022/translations/it.json +7 -0
  35. package/esm2022/translations/nl.json +7 -0
  36. package/esm2022/translations/pt.json +7 -0
  37. package/esm2022/translations/sk.json +7 -0
  38. package/fesm2022/geonetwork-ui.mjs +2577 -2292
  39. package/fesm2022/geonetwork-ui.mjs.map +1 -1
  40. package/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.d.ts.map +1 -1
  41. package/libs/api/metadata-converter/src/lib/iso19139/write-parts.d.ts.map +1 -1
  42. package/libs/api/repository/src/lib/gn4/elasticsearch/constant.d.ts.map +1 -1
  43. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts +1 -1
  44. package/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.d.ts.map +1 -1
  45. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts +2 -0
  46. package/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.d.ts.map +1 -1
  47. package/libs/common/domain/src/lib/model/record/metadata.model.d.ts.map +1 -1
  48. package/libs/feature/dataviz/src/lib/service/data.service.d.ts.map +1 -1
  49. package/libs/feature/editor/src/index.d.ts +1 -0
  50. package/libs/feature/editor/src/index.d.ts.map +1 -1
  51. package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts +19 -0
  52. package/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.d.ts.map +1 -0
  53. package/libs/feature/editor/src/lib/fields.config.d.ts.map +1 -1
  54. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts +2 -2
  55. package/libs/feature/map/src/lib/utils/map-utils.service.d.ts.map +1 -1
  56. package/libs/feature/record/src/lib/map-view/map-view.component.d.ts.map +1 -1
  57. package/libs/feature/search/src/lib/state/reducer.d.ts.map +1 -1
  58. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts +1 -0
  59. package/libs/ui/elements/src/lib/downloads-list/downloads-list.component.d.ts.map +1 -1
  60. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts +1 -0
  61. package/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.d.ts.map +1 -1
  62. package/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.d.ts.map +1 -1
  63. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts +7 -6
  64. package/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.d.ts.map +1 -1
  65. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts +1 -0
  66. package/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.d.ts.map +1 -1
  67. package/libs/util/app-config/src/lib/app-config.d.ts.map +1 -1
  68. package/libs/util/app-config/src/lib/model.d.ts +1 -0
  69. package/libs/util/app-config/src/lib/model.d.ts.map +1 -1
  70. package/libs/util/shared/src/index.d.ts +1 -1
  71. package/libs/util/shared/src/index.d.ts.map +1 -1
  72. package/libs/util/shared/src/lib/links/link-utils.d.ts +1 -1
  73. package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
  74. package/libs/util/shared/src/lib/record/index.d.ts +3 -0
  75. package/libs/util/shared/src/lib/record/index.d.ts.map +1 -0
  76. package/libs/util/shared/src/lib/record/quality-score.util.d.ts +13 -0
  77. package/libs/util/shared/src/lib/record/quality-score.util.d.ts.map +1 -0
  78. package/libs/util/shared/src/lib/record/record.util.d.ts +3 -0
  79. package/libs/util/shared/src/lib/record/record.util.d.ts.map +1 -0
  80. package/libs/util/shared/src/lib/utils/geojson.d.ts +7 -2
  81. package/libs/util/shared/src/lib/utils/geojson.d.ts.map +1 -1
  82. package/libs/util/shared/src/lib/utils/index.d.ts +1 -0
  83. package/libs/util/shared/src/lib/utils/index.d.ts.map +1 -1
  84. package/libs/util/shared/src/lib/utils/mobile-screen.d.ts +2 -0
  85. package/libs/util/shared/src/lib/utils/mobile-screen.d.ts.map +1 -0
  86. package/package.json +1 -1
  87. package/src/libs/api/metadata-converter/src/lib/dcat-ap/utils/status.mapper.ts +3 -0
  88. package/src/libs/api/metadata-converter/src/lib/iso19139/utils/status.mapper.ts +3 -0
  89. package/src/libs/api/metadata-converter/src/lib/iso19139/write-parts.ts +4 -0
  90. package/src/libs/api/repository/src/lib/gn4/elasticsearch/constant.ts +3 -5
  91. package/src/libs/api/repository/src/lib/gn4/elasticsearch/elasticsearch.service.ts +50 -3
  92. package/src/libs/api/repository/src/lib/gn4/platform/gn4-platform.service.ts +19 -6
  93. package/src/libs/common/domain/src/lib/model/record/metadata.model.ts +4 -0
  94. package/src/libs/common/fixtures/src/lib/editor/editor.fixtures.ts +0 -3
  95. package/src/libs/feature/dataviz/src/lib/service/data.service.ts +3 -1
  96. package/src/libs/feature/editor/src/index.ts +1 -0
  97. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.css +0 -0
  98. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.html +37 -0
  99. package/src/libs/feature/editor/src/lib/components/metadata-quality-panel/metadata-quality-panel.component.ts +90 -0
  100. package/src/libs/feature/editor/src/lib/components/multilingual-panel/multilingual-panel.component.html +2 -1
  101. package/src/libs/feature/editor/src/lib/fields.config.ts +0 -2
  102. package/src/libs/feature/map/src/lib/utils/map-utils.service.ts +8 -8
  103. package/src/libs/feature/record/src/lib/map-view/map-view.component.ts +3 -1
  104. package/src/libs/feature/search/src/lib/state/reducer.ts +4 -1
  105. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.html +12 -11
  106. package/src/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +7 -1
  107. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.html +4 -1
  108. package/src/libs/ui/elements/src/lib/geo-data-badge/geo-data-badge.component.ts +7 -1
  109. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.html +1 -0
  110. package/src/libs/ui/elements/src/lib/internal-link-card/internal-link-card.component.ts +5 -1
  111. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.html +1 -0
  112. package/src/libs/ui/elements/src/lib/metadata-quality/metadata-quality.component.ts +21 -54
  113. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.html +7 -1
  114. package/src/libs/ui/inputs/src/lib/search-feature-catalog/search-feature-catalog.component.ts +3 -1
  115. package/src/libs/util/app-config/src/lib/app-config.ts +2 -0
  116. package/src/libs/util/app-config/src/lib/model.ts +1 -0
  117. package/src/libs/util/shared/src/index.ts +1 -1
  118. package/src/libs/util/shared/src/lib/links/link-utils.ts +2 -1
  119. package/src/libs/util/shared/src/lib/record/index.ts +2 -0
  120. package/src/libs/util/shared/src/lib/record/quality-score.util.ts +69 -0
  121. package/src/libs/util/shared/src/lib/{record.util.ts → record/record.util.ts} +1 -1
  122. package/src/libs/util/shared/src/lib/utils/geojson.ts +72 -2
  123. package/src/libs/util/shared/src/lib/utils/index.ts +1 -0
  124. package/src/libs/util/shared/src/lib/utils/mobile-screen.ts +14 -0
  125. package/translations/de.json +7 -0
  126. package/translations/en.json +7 -0
  127. package/translations/es.json +7 -0
  128. package/translations/fr.json +8 -1
  129. package/translations/it.json +7 -0
  130. package/translations/nl.json +7 -0
  131. package/translations/pt.json +7 -0
  132. package/translations/sk.json +7 -0
  133. package/esm2022/libs/util/shared/src/lib/record.util.mjs +0 -56
  134. package/libs/util/shared/src/lib/record.util.d.ts +0 -3
  135. package/libs/util/shared/src/lib/record.util.d.ts.map +0 -1
@@ -50,8 +50,6 @@ export const RECORD_KEYWORDS_FIELD = {
50
50
  model: 'keywords',
51
51
  formFieldConfig: {},
52
52
  };
53
- // keeping track of the label to not lose existing translation
54
- marker('editor.record.form.field.keywords');
55
53
  export const RECORD_RESOURCE_CREATED_FIELD = {
56
54
  model: 'resourceCreated',
57
55
  formFieldConfig: {
@@ -293,4 +291,4 @@ export const SPATIAL_SCOPES = [
293
291
  type: 'theme',
294
292
  },
295
293
  ];
296
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9maWVsZHMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQVFoRTs7Ozs7R0FLRztBQUVIOzs7R0FHRztBQUVILE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFnQjtJQUN6RCxLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLGVBQWUsRUFBRTtRQUNmLFFBQVEsRUFBRSxNQUFNLENBQUMsMkNBQTJDLENBQUM7S0FDOUQ7SUFDRCxNQUFNLEVBQUUsSUFBSTtDQUNiLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBZ0I7SUFDaEQsYUFBYSxFQUFFLGtDQUFrQztJQUNqRCxlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUUsTUFBTSxDQUFDLCtDQUErQyxDQUFDO0tBQ2xFO0NBQ0YsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFnQjtJQUNsRCxLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLGVBQWUsRUFBRTtRQUNmLFFBQVEsRUFBRSxNQUFNLENBQUMsMkNBQTJDLENBQUM7S0FDOUQ7Q0FDRixDQUFBO0FBQ0QsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQWdCO0lBQ3JELEtBQUssRUFBRSxxQkFBcUI7SUFDNUIsZUFBZSxFQUFFO1FBQ2YsUUFBUSxFQUFFLE1BQU0sQ0FBQyw4Q0FBOEMsQ0FBQztLQUNqRTtDQUNGLENBQUE7QUFDRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBZ0I7SUFDbEQsS0FBSyxFQUFFLGtCQUFrQjtJQUN6QixlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUUsTUFBTSxDQUFDLDJDQUEyQyxDQUFDO0tBQzlEO0NBQ0YsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixH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Q0FBbUMsQ0FBQyxDQUFBO0FBQzNDLE1BQU0sQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFBO0FBQzlDLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO0FBQ3pDLE1BQU0sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFBO0FBQzNDLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFBO0FBQ3pDLE1BQU0sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFBO0FBRTVDLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQTtBQUNwQzs7O0dBR0c7QUFFSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQWM7SUFDdkM7UUFDRSxHQUFHLEVBQUUscUVBQXFFO1FBQzFFLEtBQUssRUFBRSxVQUFVO1FBQ2pCLFdBQVcsRUFBRSxFQUFFO1FBQ2YsSUFBSSxFQUFFLE9BQU87S0FDZDtJQUNEO1FBQ0UsR0FBRyxFQUFFLHFFQUFxRTtRQUMxRSxLQUFLLEVBQUUsVUFBVTtRQUNqQixXQUFXLEVBQUUsRUFBRTtRQUNmLElBQUksRUFBRSxPQUFPO0tBQ2Q7Q0FDRixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgRWRpdG9yQ29uZmlnLFxuICBFZGl0b3JGaWVsZCxcbiAgRWRpdG9yU2VjdGlvbixcbn0gZnJvbSAnLi9tb2RlbHMvZWRpdG9yLWNvbmZpZy5tb2RlbCdcbmltcG9ydCB7IEtleXdvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbi8qKlxuICogVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBmaWVsZHMgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBpbiB0aGUgZWRpdG9yLlxuICogVG8gYWRkIGEgbmV3IGZpZWxkLCB5b3UgbmVlZCB0byBjcmVhdGUgYSBuZXcgRWRpdG9yRmllbGQgb2JqZWN0IGluIHRoZSBmaWVsZHMgcGFydCBvZiB0aGlzIGZpbGUuXG4gKiBUaGVuIGFkZCBpdCB0byB0aGUgY29ycmVzcG9uZGluZyBzZWN0aW9uIGluIHRoZSBzZWN0aW9ucyBwYXJ0IG9mIHRoaXMgZmlsZS5cbiAqIEZpbmFsbHksIGFkZCB0aGUgc2VjdGlvbiB0byB0aGUgY29ycmVzcG9uZGluZyBwYWdlIGluIHRoZSBwYWdlcyBwYXJ0IG9mIHRoaXMgZmlsZS5cbiAqL1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqICAgICAgICAgICBGSUVMRFMgICAgICAgICAgICoqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9VTklRVUVfSURFTlRJRklFUl9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAndW5pcXVlSWRlbnRpZmllcicsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC51bmlxdWVJZGVudGlmaWVyJyksXG4gIH0sXG4gIGhpZGRlbjogdHJ1ZSxcbn1cblxuZXhwb3J0IGNvbnN0IENPTlNUUkFJTlRTX1NIT1JUQ1VUUzogRWRpdG9yRmllbGQgPSB7XG4gIGNvbXBvbmVudE5hbWU6ICdmb3JtLWZpZWxkLWNvbnN0cmFpbnRzLXNob3J0Y3V0cycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5jb25zdHJhaW50c1Nob3J0Y3V0cycpLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgTEVHQUxfQ09OU1RSQUlOVFNfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ2xlZ2FsQ29uc3RyYWludHMnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQubGVnYWxDb25zdHJhaW50cycpLFxuICB9LFxufVxuZXhwb3J0IGNvbnN0IFNFQ1VSSVRZX0NPTlNUUkFJTlRTX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdzZWN1cml0eUNvbnN0cmFpbnRzJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnNlY3VyaXR5Q29uc3RyYWludHMnKSxcbiAgfSxcbn1cbmV4cG9ydCBjb25zdCBPVEhFUl9DT05TVFJBSU5UU19GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnb3RoZXJDb25zdHJhaW50cycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vdGhlckNvbnN0cmFpbnRzJyksXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfTElDRU5TRV9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnbGljZW5zZXMnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQubGljZW5zZScpLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX0tFWVdPUkRTX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdrZXl3b3JkcycsXG4gIGZvcm1GaWVsZENvbmZpZzoge30sXG59XG4vLyBrZWVwaW5nIHRyYWNrIG9mIHRoZSBsYWJlbCB0byBub3QgbG9zZSBleGlzdGluZyB0cmFuc2xhdGlvblxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQua2V5d29yZHMnKVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX1JFU09VUkNFX0NSRUFURURfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ3Jlc291cmNlQ3JlYXRlZCcsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5yZXNvdXJjZUNyZWF0ZWQnKSxcbiAgfSxcbiAgZ3JpZENvbHVtblNwYW46IDEsXG59XG5cbmV4cG9ydCBjb25zdCBSRVNPVVJDRV9JREVOVElGSUVSX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdyZXNvdXJjZUlkZW50aWZpZXInLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQucmVzb3VyY2VJZGVudGlmaWVyJyksXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfUkVTT1VSQ0VfVVBEQVRFRF9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAncmVzb3VyY2VVcGRhdGVkJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnJlc291cmNlVXBkYXRlZCcpLFxuICB9LFxuICBncmlkQ29sdW1uU3BhbjogMSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9VUERBVEVEX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdyZWNvcmRVcGRhdGVkJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnJlY29yZFVwZGF0ZWQnKSxcbiAgfSxcbiAgb25TYXZlUHJvY2VzczogJyR7ZGF0ZU5vdygpfScsXG4gIGdyaWRDb2x1bW5TcGFuOiAxLFxuICBoaWRkZW46IHRydWUsXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfVVBEQVRFX0ZSRVFVRU5DWV9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAndXBkYXRlRnJlcXVlbmN5JyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7fSxcbn1cbi8vIGtlZXBpbmcgdHJhY2sgb2YgdGhlIGxhYmVsIHRvIG5vdCBsb3NlIGV4aXN0aW5nIHRyYW5zbGF0aW9uXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC51cGRhdGVGcmVxdWVuY3knKVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX1RFTVBPUkFMX0VYVEVOVFNfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ3RlbXBvcmFsRXh0ZW50cycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC50ZW1wb3JhbEV4dGVudHMnKSxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9USVRMRV9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAndGl0bGUnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQudGl0bGUnKSxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9BQlNUUkFDVF9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnYWJzdHJhY3QnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQuYWJzdHJhY3QnKSxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IENPTlRBQ1RTX0ZPUl9SRVNPVVJDRV9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnY29udGFjdHNGb3JSZXNvdXJjZScsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiAnJyxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IENPTlRBQ1RTOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdjb250YWN0cycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiAnJyxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9HUkFQSElDQUxfT1ZFUlZJRVdfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ292ZXJ2aWV3cycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vdmVydmlld3MnKSxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9TUEFUSUFMX1RPR0dMRV9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIGNvbXBvbmVudE5hbWU6ICdmb3JtLWZpZWxkLXNwYXRpYWwtdG9nZ2xlJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7fSxcbiAgaGlkZGVuOiB0cnVlLFxufVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX1NQQVRJQUxfRVhURU5UU19GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnc3BhdGlhbEV4dGVudHMnLFxuICBmb3JtRmllbGRDb25maWc6IHt9LFxufVxuLy8ga2VlcGluZyB0cmFjayBvZiB0aGUgbGFiZWwgdG8gbm90IGxvc2UgZXhpc3RpbmcgdHJhbnNsYXRpb25cbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnNwYXRpYWxFeHRlbnRzJylcblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9PTkxJTkVfUkVTT1VSQ0VTOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdvbmxpbmVSZXNvdXJjZXMnLFxuICBtb2RlbFNwZWNpZmllcjogJ29ubGluZVJlc291cmNlVHlwZTohbGluaycsXG4gIGZvcm1GaWVsZENvbmZpZzoge30sXG59XG4vLyBrZWVwaW5nIHRyYWNrIG9mIHRoZSBsYWJlbCB0byBub3QgbG9zZSBleGlzdGluZyB0cmFuc2xhdGlvblxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2VzJylcblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9PTkxJTkVfTElOS19SRVNPVVJDRVM6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ29ubGluZVJlc291cmNlcycsXG4gIG1vZGVsU3BlY2lmaWVyOiAnb25saW5lUmVzb3VyY2VUeXBlOmxpbmsnLFxuICBmb3JtRmllbGRDb25maWc6IHt9LFxufVxuLy8ga2VlcGluZyB0cmFjayBvZiB0aGUgbGFiZWwgdG8gbm90IGxvc2UgZXhpc3RpbmcgdHJhbnNsYXRpb25cbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZUxpbmtSZXNvdXJjZXMnKVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqICAgICAgICAgIFNFQ1RJT05TICAgICAgICAgICoqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuZXhwb3J0IGNvbnN0IFRJVExFX1NFQ1RJT046IEVkaXRvclNlY3Rpb24gPSB7XG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1xuICAgIFJFQ09SRF9USVRMRV9GSUVMRCxcbiAgICBSRUNPUkRfQUJTVFJBQ1RfRklFTEQsXG4gICAgUkVDT1JEX0dSQVBISUNBTF9PVkVSVklFV19GSUVMRCxcbiAgXSxcbn1cblxuZXhwb3J0IGNvbnN0IEFCT1VUX1NFQ1RJT046IEVkaXRvclNlY3Rpb24gPSB7XG4gIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmFib3V0LmxhYmVsJyksXG4gIGRlc2NyaXB0aW9uS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmFib3V0LmRlc2NyaXB0aW9uJyksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1xuICAgIFJFQ09SRF9VTklRVUVfSURFTlRJRklFUl9GSUVMRCxcbiAgICBSRVNPVVJDRV9JREVOVElGSUVSX0ZJRUxELFxuICAgIFJFQ09SRF9SRVNPVVJDRV9DUkVBVEVEX0ZJRUxELFxuICAgIFJFQ09SRF9SRVNPVVJDRV9VUERBVEVEX0ZJRUxELFxuICAgIFJFQ09SRF9VUERBVEVEX0ZJRUxELFxuICAgIFJFQ09SRF9VUERBVEVfRlJFUVVFTkNZX0ZJRUxELFxuICAgIFJFQ09SRF9URU1QT1JBTF9FWFRFTlRTX0ZJRUxELFxuICBdLFxufVxuXG5leHBvcnQgY29uc3QgR0VPR1JBUEhJQ0FMX0NPVkVSQUdFX1NFQ1RJT046IEVkaXRvclNlY3Rpb24gPSB7XG4gIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmdlb2dyYXBoaWNhbENvdmVyYWdlLmxhYmVsJyksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1JFQ09SRF9TUEFUSUFMX1RPR0dMRV9GSUVMRCwgUkVDT1JEX1NQQVRJQUxfRVhURU5UU19GSUVMRF0sXG59XG5cbmV4cG9ydCBjb25zdCBBU1NPQ0lBVEVEX1JFU09VUkNFU19TRUNUSU9OOiBFZGl0b3JTZWN0aW9uID0ge1xuICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5hc3NvY2lhdGVkUmVzb3VyY2VzLmxhYmVsJyksXG4gIGRlc2NyaXB0aW9uS2V5OiBtYXJrZXIoXG4gICAgJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmFzc29jaWF0ZWRSZXNvdXJjZXMuZGVzY3JpcHRpb24nXG4gICksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1JFQ09SRF9PTkxJTkVfUkVTT1VSQ0VTXSxcbn1cblxuZXhwb3J0IGNvbnN0IEFOTkVYRVNfU0VDVElPTjogRWRpdG9yU2VjdGlvbiA9IHtcbiAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uYW5uZXhlcy5sYWJlbCcpLFxuICBkZXNjcmlwdGlvbktleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5hbm5leGVzLmRlc2NyaXB0aW9uJyksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1JFQ09SRF9PTkxJTkVfTElOS19SRVNPVVJDRVNdLFxufVxuXG5leHBvcnQgY29uc3QgQ0xBU1NJRklDQVRJT05fU0VDVElPTjogRWRpdG9yU2VjdGlvbiA9IHtcbiAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uY2xhc3NpZmljYXRpb24ubGFiZWwnKSxcbiAgZGVzY3JpcHRpb25LZXk6IG1hcmtlcihcbiAgICAnZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uY2xhc3NpZmljYXRpb24uZGVzY3JpcHRpb24nXG4gICksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1JFQ09SRF9LRVlXT1JEU19GSUVMRF0sXG59XG5cbmV4cG9ydCBjb25zdCBVU0VfQU5EX0FDQ0VTU19DT05ESVRJT05TX1NFQ1RJT046IEVkaXRvclNlY3Rpb24gPSB7XG4gIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLnVzZUFuZEFjY2Vzc0NvbmRpdGlvbnMubGFiZWwnKSxcbiAgaGlkZGVuOiBmYWxzZSxcbiAgZmllbGRzOiBbXG4gICAgUkVDT1JEX0xJQ0VOU0VfRklFTEQsXG4gICAgQ09OU1RSQUlOVFNfU0hPUlRDVVRTLFxuICAgIExFR0FMX0NPTlNUUkFJTlRTX0ZJRUxELFxuICAgIFNFQ1VSSVRZX0NPTlNUUkFJTlRTX0ZJRUxELFxuICAgIE9USEVSX0NPTlNUUkFJTlRTX0ZJRUxELFxuICBdLFxufVxuXG5leHBvcnQgY29uc3QgREFUQV9NQU5BR0VSU19TRUNUSU9OOiBFZGl0b3JTZWN0aW9uID0ge1xuICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5kYXRhTWFuYWdlcnMubGFiZWwnKSxcbiAgZGVzY3JpcHRpb25LZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uZGF0YU1hbmFnZXJzLmRlc2NyaXB0aW9uJyksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW0NPTlRBQ1RTX0ZPUl9SRVNPVVJDRV9GSUVMRF0sXG59XG5cbmV4cG9ydCBjb25zdCBNRVRBREFUQV9QT0lOVF9PRl9DT05UQUNUX1NFQ1RJT046IEVkaXRvclNlY3Rpb24gPSB7XG4gIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLm1ldGFkYXRhUG9pbnRPZkNvbnRhY3QubGFiZWwnKSxcbiAgZGVzY3JpcHRpb25LZXk6IG1hcmtlcihcbiAgICAnZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24ubWV0YWRhdGFQb2ludE9mQ29udGFjdC5kZXNjcmlwdGlvbidcbiAgKSxcbiAgaGlkZGVuOiBmYWxzZSxcbiAgZmllbGRzOiBbQ09OVEFDVFNdLFxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqICAgICAgICAgICBQQUdFUyAgICAgICAgICAgICoqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0NPTkZJR1VSQVRJT046IEVkaXRvckNvbmZpZyA9IHtcbiAgcGFnZXM6IFtcbiAgICB7XG4gICAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ucGFnZS5kZXNjcmlwdGlvbicpLFxuICAgICAgc2VjdGlvbnM6IFtcbiAgICAgICAgVElUTEVfU0VDVElPTixcbiAgICAgICAgQ0xBU1NJRklDQVRJT05fU0VDVElPTixcbiAgICAgICAgQUJPVVRfU0VDVElPTixcbiAgICAgICAgR0VPR1JBUEhJQ0FMX0NPVkVSQUdFX1NFQ1RJT04sXG4gICAgICBdLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnBhZ2UucmVzb3VyY2VzJyksXG4gICAgICBzZWN0aW9uczogW0FTU09DSUFURURfUkVTT1VSQ0VTX1NFQ1RJT04sIEFOTkVYRVNfU0VDVElPTl0sXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ucGFnZS5hY2Nlc3NBbmRDb250YWN0JyksXG4gICAgICBzZWN0aW9uczogW1xuICAgICAgICBVU0VfQU5EX0FDQ0VTU19DT05ESVRJT05TX1NFQ1RJT04sXG4gICAgICAgIERBVEFfTUFOQUdFUlNfU0VDVElPTixcbiAgICAgICAgTUVUQURBVEFfUE9JTlRfT0ZfQ09OVEFDVF9TRUNUSU9OLFxuICAgICAgXSxcbiAgICB9LFxuICBdLFxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqICAgICAgICAgICBMSUNFTlNFUyAgICAgICAgICAgICoqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cbmV4cG9ydCBjb25zdCBBVkFJTEFCTEVfTElDRU5TRVM6IHN0cmluZ1tdID0gW1xuICAnY2MtYnknLFxuICAnY2MtYnktc2EnLFxuICAnY2MtemVybycsXG4gICdldGFsYWInLFxuICAnZXRhbGFiLXYyJyxcbiAgJ29kYmwnLFxuICAnb2RjLWJ5JyxcbiAgJ3BkZGwnLFxuICAndW5rbm93bicsXG5dXG5cbmV4cG9ydCBjb25zdCBPUEVOX0RBVEFfTElDRU5TRSA9ICdldGFsYWInXG5cbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmxpY2Vuc2UuY2MtYnknKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS5jYy1ieS1zYScpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5saWNlbnNlLmNjLXplcm8nKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS5ldGFsYWInKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS5ldGFsYWItdjInKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS5vZGJsJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmxpY2Vuc2Uub2RjLWJ5Jylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmxpY2Vuc2UucGRkbCcpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5saWNlbnNlLnVua25vd24nKVxuXG5leHBvcnQgY29uc3QgTUFYX1VQTE9BRF9TSVpFX01CID0gMTBcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqKioqKioqKioqKioqKiogICAgICAgIFNQQVRJQUwgU0NPUEUgICAgICAgICAgICAqKioqKioqKioqKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5leHBvcnQgY29uc3QgU1BBVElBTF9TQ09QRVM6IEtleXdvcmRbXSA9IFtcbiAge1xuICAgIGtleTogJ2h0dHA6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZXRhZGF0YS1jb2RlbGlzdC9TcGF0aWFsU2NvcGUvbmF0aW9uYWwnLFxuICAgIGxhYmVsOiAnTmF0aW9uYWwnLFxuICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICB0eXBlOiAndGhlbWUnLFxuICB9LFxuICB7XG4gICAga2V5OiAnaHR0cDovL2luc3BpcmUuZWMuZXVyb3BhLmV1L21ldGFkYXRhLWNvZGVsaXN0L1NwYXRpYWxTY29wZS9yZWdpb25hbCcsXG4gICAgbGFiZWw6ICdSZWdpb25hbCcsXG4gICAgZGVzY3JpcHRpb246ICcnLFxuICAgIHR5cGU6ICd0aGVtZScsXG4gIH0sXG5dXG4iXX0=
294
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9maWVsZHMuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQVFoRTs7Ozs7R0FLRztBQUVIOzs7R0FHRztBQUVILE1BQU0sQ0FBQyxNQUFNLDhCQUE4QixHQUFnQjtJQUN6RCxLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLGVBQWUsRUFBRTtRQUNmLFFBQVEsRUFBRSxNQUFNLENBQUMsMkNBQTJDLENBQUM7S0FDOUQ7SUFDRCxNQUFNLEVBQUUsSUFBSTtDQUNiLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBZ0I7SUFDaEQsYUFBYSxFQUFFLGtDQUFrQztJQUNqRCxlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUUsTUFBTSxDQUFDLCtDQUErQyxDQUFDO0tBQ2xFO0NBQ0YsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFnQjtJQUNsRCxLQUFLLEVBQUUsa0JBQWtCO0lBQ3pCLGVBQWUsRUFBRTtRQUNmLFFBQVEsRUFBRSxNQUFNLENBQUMsMkNBQTJDLENBQUM7S0FDOUQ7Q0FDRixDQUFBO0FBQ0QsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQWdCO0lBQ3JELEtBQUssRUFBRSxxQkFBcUI7SUFDNUIsZUFBZSxFQUFFO1FBQ2YsUUFBUSxFQUFFLE1BQU0sQ0FBQyw4Q0FBOEMsQ0FBQztLQUNqRTtDQUNGLENBQUE7QUFDRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBZ0I7SUFDbEQsS0FBSyxFQUFFLGtCQUFrQjtJQUN6QixlQUFlLEVBQUU7UUFDZixRQUFRLEVBQUUsTUFBTSxDQUFDLDJDQUEyQyxDQUFDO0tBQzlEO0NBQ0YsQ0FBQTtBQUVELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixH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QUE7QUFDOUMsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLENBQUE7QUFDekMsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLENBQUE7QUFDM0MsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLENBQUE7QUFDekMsTUFBTSxDQUFDLG9DQUFvQyxDQUFDLENBQUE7QUFFNUMsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFBO0FBQ3BDOzs7R0FHRztBQUVILE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBYztJQUN2QztRQUNFLEdBQUcsRUFBRSxxRUFBcUU7UUFDMUUsS0FBSyxFQUFFLFVBQVU7UUFDakIsV0FBVyxFQUFFLEVBQUU7UUFDZixJQUFJLEVBQUUsT0FBTztLQUNkO0lBQ0Q7UUFDRSxHQUFHLEVBQUUscUVBQXFFO1FBQzFFLEtBQUssRUFBRSxVQUFVO1FBQ2pCLFdBQVcsRUFBRSxFQUFFO1FBQ2YsSUFBSSxFQUFFLE9BQU87S0FDZDtDQUNGLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQge1xuICBFZGl0b3JDb25maWcsXG4gIEVkaXRvckZpZWxkLFxuICBFZGl0b3JTZWN0aW9uLFxufSBmcm9tICcuL21vZGVscy9lZGl0b3ItY29uZmlnLm1vZGVsJ1xuaW1wb3J0IHsgS2V5d29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcblxuLyoqXG4gKiBUaGlzIGZpbGUgY29udGFpbnMgdGhlIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGZpZWxkcyB0aGF0IHdpbGwgYmUgZGlzcGxheWVkIGluIHRoZSBlZGl0b3IuXG4gKiBUbyBhZGQgYSBuZXcgZmllbGQsIHlvdSBuZWVkIHRvIGNyZWF0ZSBhIG5ldyBFZGl0b3JGaWVsZCBvYmplY3QgaW4gdGhlIGZpZWxkcyBwYXJ0IG9mIHRoaXMgZmlsZS5cbiAqIFRoZW4gYWRkIGl0IHRvIHRoZSBjb3JyZXNwb25kaW5nIHNlY3Rpb24gaW4gdGhlIHNlY3Rpb25zIHBhcnQgb2YgdGhpcyBmaWxlLlxuICogRmluYWxseSwgYWRkIHRoZSBzZWN0aW9uIHRvIHRoZSBjb3JyZXNwb25kaW5nIHBhZ2UgaW4gdGhlIHBhZ2VzIHBhcnQgb2YgdGhpcyBmaWxlLlxuICovXG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqKioqKioqKioqKioqKiogICAgICAgICAgIEZJRUxEUyAgICAgICAgICAgKioqKioqKioqKioqKioqKipcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqL1xuXG5leHBvcnQgY29uc3QgUkVDT1JEX1VOSVFVRV9JREVOVElGSUVSX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICd1bmlxdWVJZGVudGlmaWVyJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnVuaXF1ZUlkZW50aWZpZXInKSxcbiAgfSxcbiAgaGlkZGVuOiB0cnVlLFxufVxuXG5leHBvcnQgY29uc3QgQ09OU1RSQUlOVFNfU0hPUlRDVVRTOiBFZGl0b3JGaWVsZCA9IHtcbiAgY29tcG9uZW50TmFtZTogJ2Zvcm0tZmllbGQtY29uc3RyYWludHMtc2hvcnRjdXRzJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLmNvbnN0cmFpbnRzU2hvcnRjdXRzJyksXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBMRUdBTF9DT05TVFJBSU5UU19GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnbGVnYWxDb25zdHJhaW50cycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5sZWdhbENvbnN0cmFpbnRzJyksXG4gIH0sXG59XG5leHBvcnQgY29uc3QgU0VDVVJJVFlfQ09OU1RSQUlOVFNfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ3NlY3VyaXR5Q29uc3RyYWludHMnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQuc2VjdXJpdHlDb25zdHJhaW50cycpLFxuICB9LFxufVxuZXhwb3J0IGNvbnN0IE9USEVSX0NPTlNUUkFJTlRTX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdvdGhlckNvbnN0cmFpbnRzJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm90aGVyQ29uc3RyYWludHMnKSxcbiAgfSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9MSUNFTlNFX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdsaWNlbnNlcycsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5saWNlbnNlJyksXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfS0VZV09SRFNfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ2tleXdvcmRzJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7fSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9SRVNPVVJDRV9DUkVBVEVEX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdyZXNvdXJjZUNyZWF0ZWQnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQucmVzb3VyY2VDcmVhdGVkJyksXG4gIH0sXG4gIGdyaWRDb2x1bW5TcGFuOiAxLFxufVxuXG5leHBvcnQgY29uc3QgUkVTT1VSQ0VfSURFTlRJRklFUl9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAncmVzb3VyY2VJZGVudGlmaWVyJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnJlc291cmNlSWRlbnRpZmllcicpLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX1JFU09VUkNFX1VQREFURURfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ3Jlc291cmNlVXBkYXRlZCcsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5yZXNvdXJjZVVwZGF0ZWQnKSxcbiAgfSxcbiAgZ3JpZENvbHVtblNwYW46IDEsXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfVVBEQVRFRF9GSUVMRDogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAncmVjb3JkVXBkYXRlZCcsXG4gIGZvcm1GaWVsZENvbmZpZzoge1xuICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5yZWNvcmRVcGRhdGVkJyksXG4gIH0sXG4gIG9uU2F2ZVByb2Nlc3M6ICcke2RhdGVOb3coKX0nLFxuICBncmlkQ29sdW1uU3BhbjogMSxcbiAgaGlkZGVuOiB0cnVlLFxufVxuXG5leHBvcnQgY29uc3QgUkVDT1JEX1VQREFURV9GUkVRVUVOQ1lfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ3VwZGF0ZUZyZXF1ZW5jeScsXG4gIGZvcm1GaWVsZENvbmZpZzoge30sXG59XG4vLyBrZWVwaW5nIHRyYWNrIG9mIHRoZSBsYWJlbCB0byBub3QgbG9zZSBleGlzdGluZyB0cmFuc2xhdGlvblxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQudXBkYXRlRnJlcXVlbmN5JylcblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9URU1QT1JBTF9FWFRFTlRTX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICd0ZW1wb3JhbEV4dGVudHMnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQudGVtcG9yYWxFeHRlbnRzJyksXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfVElUTEVfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ3RpdGxlJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLnRpdGxlJyksXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfQUJTVFJBQ1RfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ2Fic3RyYWN0JyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7XG4gICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLmFic3RyYWN0JyksXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBDT05UQUNUU19GT1JfUkVTT1VSQ0VfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ2NvbnRhY3RzRm9yUmVzb3VyY2UnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogJycsXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBDT05UQUNUUzogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnY29udGFjdHMnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogJycsXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfR1JBUEhJQ0FMX09WRVJWSUVXX0ZJRUxEOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdvdmVydmlld3MnLFxuICBmb3JtRmllbGRDb25maWc6IHtcbiAgICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub3ZlcnZpZXdzJyksXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfU1BBVElBTF9UT0dHTEVfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBjb21wb25lbnROYW1lOiAnZm9ybS1maWVsZC1zcGF0aWFsLXRvZ2dsZScsXG4gIGZvcm1GaWVsZENvbmZpZzoge30sXG4gIGhpZGRlbjogdHJ1ZSxcbn1cblxuZXhwb3J0IGNvbnN0IFJFQ09SRF9TUEFUSUFMX0VYVEVOVFNfRklFTEQ6IEVkaXRvckZpZWxkID0ge1xuICBtb2RlbDogJ3NwYXRpYWxFeHRlbnRzJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7fSxcbn1cbi8vIGtlZXBpbmcgdHJhY2sgb2YgdGhlIGxhYmVsIHRvIG5vdCBsb3NlIGV4aXN0aW5nIHRyYW5zbGF0aW9uXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5zcGF0aWFsRXh0ZW50cycpXG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfT05MSU5FX1JFU09VUkNFUzogRWRpdG9yRmllbGQgPSB7XG4gIG1vZGVsOiAnb25saW5lUmVzb3VyY2VzJyxcbiAgbW9kZWxTcGVjaWZpZXI6ICdvbmxpbmVSZXNvdXJjZVR5cGU6IWxpbmsnLFxuICBmb3JtRmllbGRDb25maWc6IHt9LFxufVxuLy8ga2VlcGluZyB0cmFjayBvZiB0aGUgbGFiZWwgdG8gbm90IGxvc2UgZXhpc3RpbmcgdHJhbnNsYXRpb25cbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlcycpXG5cbmV4cG9ydCBjb25zdCBSRUNPUkRfT05MSU5FX0xJTktfUkVTT1VSQ0VTOiBFZGl0b3JGaWVsZCA9IHtcbiAgbW9kZWw6ICdvbmxpbmVSZXNvdXJjZXMnLFxuICBtb2RlbFNwZWNpZmllcjogJ29ubGluZVJlc291cmNlVHlwZTpsaW5rJyxcbiAgZm9ybUZpZWxkQ29uZmlnOiB7fSxcbn1cbi8vIGtlZXBpbmcgdHJhY2sgb2YgdGhlIGxhYmVsIHRvIG5vdCBsb3NlIGV4aXN0aW5nIHRyYW5zbGF0aW9uXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVMaW5rUmVzb3VyY2VzJylcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICoqKioqKioqKioqKioqKiAgICAgICAgICBTRUNUSU9OUyAgICAgICAgICAqKioqKioqKioqKioqKioqKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5cbmV4cG9ydCBjb25zdCBUSVRMRV9TRUNUSU9OOiBFZGl0b3JTZWN0aW9uID0ge1xuICBoaWRkZW46IGZhbHNlLFxuICBmaWVsZHM6IFtcbiAgICBSRUNPUkRfVElUTEVfRklFTEQsXG4gICAgUkVDT1JEX0FCU1RSQUNUX0ZJRUxELFxuICAgIFJFQ09SRF9HUkFQSElDQUxfT1ZFUlZJRVdfRklFTEQsXG4gIF0sXG59XG5cbmV4cG9ydCBjb25zdCBBQk9VVF9TRUNUSU9OOiBFZGl0b3JTZWN0aW9uID0ge1xuICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5hYm91dC5sYWJlbCcpLFxuICBkZXNjcmlwdGlvbktleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5hYm91dC5kZXNjcmlwdGlvbicpLFxuICBoaWRkZW46IGZhbHNlLFxuICBmaWVsZHM6IFtcbiAgICBSRUNPUkRfVU5JUVVFX0lERU5USUZJRVJfRklFTEQsXG4gICAgUkVTT1VSQ0VfSURFTlRJRklFUl9GSUVMRCxcbiAgICBSRUNPUkRfUkVTT1VSQ0VfQ1JFQVRFRF9GSUVMRCxcbiAgICBSRUNPUkRfUkVTT1VSQ0VfVVBEQVRFRF9GSUVMRCxcbiAgICBSRUNPUkRfVVBEQVRFRF9GSUVMRCxcbiAgICBSRUNPUkRfVVBEQVRFX0ZSRVFVRU5DWV9GSUVMRCxcbiAgICBSRUNPUkRfVEVNUE9SQUxfRVhURU5UU19GSUVMRCxcbiAgXSxcbn1cblxuZXhwb3J0IGNvbnN0IEdFT0dSQVBISUNBTF9DT1ZFUkFHRV9TRUNUSU9OOiBFZGl0b3JTZWN0aW9uID0ge1xuICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5nZW9ncmFwaGljYWxDb3ZlcmFnZS5sYWJlbCcpLFxuICBoaWRkZW46IGZhbHNlLFxuICBmaWVsZHM6IFtSRUNPUkRfU1BBVElBTF9UT0dHTEVfRklFTEQsIFJFQ09SRF9TUEFUSUFMX0VYVEVOVFNfRklFTERdLFxufVxuXG5leHBvcnQgY29uc3QgQVNTT0NJQVRFRF9SRVNPVVJDRVNfU0VDVElPTjogRWRpdG9yU2VjdGlvbiA9IHtcbiAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uYXNzb2NpYXRlZFJlc291cmNlcy5sYWJlbCcpLFxuICBkZXNjcmlwdGlvbktleTogbWFya2VyKFxuICAgICdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5hc3NvY2lhdGVkUmVzb3VyY2VzLmRlc2NyaXB0aW9uJ1xuICApLFxuICBoaWRkZW46IGZhbHNlLFxuICBmaWVsZHM6IFtSRUNPUkRfT05MSU5FX1JFU09VUkNFU10sXG59XG5cbmV4cG9ydCBjb25zdCBBTk5FWEVTX1NFQ1RJT046IEVkaXRvclNlY3Rpb24gPSB7XG4gIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmFubmV4ZXMubGFiZWwnKSxcbiAgZGVzY3JpcHRpb25LZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uYW5uZXhlcy5kZXNjcmlwdGlvbicpLFxuICBoaWRkZW46IGZhbHNlLFxuICBmaWVsZHM6IFtSRUNPUkRfT05MSU5FX0xJTktfUkVTT1VSQ0VTXSxcbn1cblxuZXhwb3J0IGNvbnN0IENMQVNTSUZJQ0FUSU9OX1NFQ1RJT046IEVkaXRvclNlY3Rpb24gPSB7XG4gIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmNsYXNzaWZpY2F0aW9uLmxhYmVsJyksXG4gIGRlc2NyaXB0aW9uS2V5OiBtYXJrZXIoXG4gICAgJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmNsYXNzaWZpY2F0aW9uLmRlc2NyaXB0aW9uJ1xuICApLFxuICBoaWRkZW46IGZhbHNlLFxuICBmaWVsZHM6IFtSRUNPUkRfS0VZV09SRFNfRklFTERdLFxufVxuXG5leHBvcnQgY29uc3QgVVNFX0FORF9BQ0NFU1NfQ09ORElUSU9OU19TRUNUSU9OOiBFZGl0b3JTZWN0aW9uID0ge1xuICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi51c2VBbmRBY2Nlc3NDb25kaXRpb25zLmxhYmVsJyksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW1xuICAgIFJFQ09SRF9MSUNFTlNFX0ZJRUxELFxuICAgIENPTlNUUkFJTlRTX1NIT1JUQ1VUUyxcbiAgICBMRUdBTF9DT05TVFJBSU5UU19GSUVMRCxcbiAgICBTRUNVUklUWV9DT05TVFJBSU5UU19GSUVMRCxcbiAgICBPVEhFUl9DT05TVFJBSU5UU19GSUVMRCxcbiAgXSxcbn1cblxuZXhwb3J0IGNvbnN0IERBVEFfTUFOQUdFUlNfU0VDVElPTjogRWRpdG9yU2VjdGlvbiA9IHtcbiAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnNlY3Rpb24uZGF0YU1hbmFnZXJzLmxhYmVsJyksXG4gIGRlc2NyaXB0aW9uS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLmRhdGFNYW5hZ2Vycy5kZXNjcmlwdGlvbicpLFxuICBoaWRkZW46IGZhbHNlLFxuICBmaWVsZHM6IFtDT05UQUNUU19GT1JfUkVTT1VSQ0VfRklFTERdLFxufVxuXG5leHBvcnQgY29uc3QgTUVUQURBVEFfUE9JTlRfT0ZfQ09OVEFDVF9TRUNUSU9OOiBFZGl0b3JTZWN0aW9uID0ge1xuICBsYWJlbEtleTogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uc2VjdGlvbi5tZXRhZGF0YVBvaW50T2ZDb250YWN0LmxhYmVsJyksXG4gIGRlc2NyaXB0aW9uS2V5OiBtYXJrZXIoXG4gICAgJ2VkaXRvci5yZWNvcmQuZm9ybS5zZWN0aW9uLm1ldGFkYXRhUG9pbnRPZkNvbnRhY3QuZGVzY3JpcHRpb24nXG4gICksXG4gIGhpZGRlbjogZmFsc2UsXG4gIGZpZWxkczogW0NPTlRBQ1RTXSxcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICoqKioqKioqKioqKioqKiAgICAgICAgICAgUEFHRVMgICAgICAgICAgICAqKioqKioqKioqKioqKioqKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9DT05GSUdVUkFUSU9OOiBFZGl0b3JDb25maWcgPSB7XG4gIHBhZ2VzOiBbXG4gICAge1xuICAgICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnBhZ2UuZGVzY3JpcHRpb24nKSxcbiAgICAgIHNlY3Rpb25zOiBbXG4gICAgICAgIFRJVExFX1NFQ1RJT04sXG4gICAgICAgIENMQVNTSUZJQ0FUSU9OX1NFQ1RJT04sXG4gICAgICAgIEFCT1VUX1NFQ1RJT04sXG4gICAgICAgIEdFT0dSQVBISUNBTF9DT1ZFUkFHRV9TRUNUSU9OLFxuICAgICAgXSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsS2V5OiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5wYWdlLnJlc291cmNlcycpLFxuICAgICAgc2VjdGlvbnM6IFtBU1NPQ0lBVEVEX1JFU09VUkNFU19TRUNUSU9OLCBBTk5FWEVTX1NFQ1RJT05dLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWxLZXk6IG1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLnBhZ2UuYWNjZXNzQW5kQ29udGFjdCcpLFxuICAgICAgc2VjdGlvbnM6IFtcbiAgICAgICAgVVNFX0FORF9BQ0NFU1NfQ09ORElUSU9OU19TRUNUSU9OLFxuICAgICAgICBEQVRBX01BTkFHRVJTX1NFQ1RJT04sXG4gICAgICAgIE1FVEFEQVRBX1BPSU5UX09GX0NPTlRBQ1RfU0VDVElPTixcbiAgICAgIF0sXG4gICAgfSxcbiAgXSxcbn1cblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICoqKioqKioqKioqKioqKiAgICAgICAgICAgTElDRU5TRVMgICAgICAgICAgICAqKioqKioqKioqKioqKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICovXG5leHBvcnQgY29uc3QgQVZBSUxBQkxFX0xJQ0VOU0VTOiBzdHJpbmdbXSA9IFtcbiAgJ2NjLWJ5JyxcbiAgJ2NjLWJ5LXNhJyxcbiAgJ2NjLXplcm8nLFxuICAnZXRhbGFiJyxcbiAgJ2V0YWxhYi12MicsXG4gICdvZGJsJyxcbiAgJ29kYy1ieScsXG4gICdwZGRsJyxcbiAgJ3Vua25vd24nLFxuXVxuXG5leHBvcnQgY29uc3QgT1BFTl9EQVRBX0xJQ0VOU0UgPSAnZXRhbGFiJ1xuXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5saWNlbnNlLmNjLWJ5Jylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmxpY2Vuc2UuY2MtYnktc2EnKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS5jYy16ZXJvJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmxpY2Vuc2UuZXRhbGFiJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmxpY2Vuc2UuZXRhbGFiLXYyJylcbm1hcmtlcignZWRpdG9yLnJlY29yZC5mb3JtLmxpY2Vuc2Uub2RibCcpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5saWNlbnNlLm9kYy1ieScpXG5tYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5saWNlbnNlLnBkZGwnKVxubWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0ubGljZW5zZS51bmtub3duJylcblxuZXhwb3J0IGNvbnN0IE1BWF9VUExPQURfU0laRV9NQiA9IDEwXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqICAgICAgICBTUEFUSUFMIFNDT1BFICAgICAgICAgICAgKioqKioqKioqKioqXG4gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gKi9cblxuZXhwb3J0IGNvbnN0IFNQQVRJQUxfU0NPUEVTOiBLZXl3b3JkW10gPSBbXG4gIHtcbiAgICBrZXk6ICdodHRwOi8vaW5zcGlyZS5lYy5ldXJvcGEuZXUvbWV0YWRhdGEtY29kZWxpc3QvU3BhdGlhbFNjb3BlL25hdGlvbmFsJyxcbiAgICBsYWJlbDogJ05hdGlvbmFsJyxcbiAgICBkZXNjcmlwdGlvbjogJycsXG4gICAgdHlwZTogJ3RoZW1lJyxcbiAgfSxcbiAge1xuICAgIGtleTogJ2h0dHA6Ly9pbnNwaXJlLmVjLmV1cm9wYS5ldS9tZXRhZGF0YS1jb2RlbGlzdC9TcGF0aWFsU2NvcGUvcmVnaW9uYWwnLFxuICAgIGxhYmVsOiAnUmVnaW9uYWwnLFxuICAgIGRlc2NyaXB0aW9uOiAnJyxcbiAgICB0eXBlOiAndGhlbWUnLFxuICB9LFxuXVxuIl19
@@ -1,8 +1,7 @@
1
1
  import { Injectable } from '@angular/core';
2
2
  import { extend } from 'ol/extent';
3
- import GeoJSON from 'ol/format/GeoJSON';
3
+ import { getGeometryBoundingBox } from '../../../../../../libs/util/shared/src';
4
4
  import * as i0 from "@angular/core";
5
- const GEOJSON = new GeoJSON();
6
5
  export class MapUtilsService {
7
6
  getRecordExtent(record) {
8
7
  if (!('spatialExtents' in record) || record.spatialExtents.length === 0) {
@@ -13,8 +12,7 @@ export class MapUtilsService {
13
12
  if ('bbox' in curr)
14
13
  return extend(prev, curr.bbox);
15
14
  else if ('geometry' in curr) {
16
- const geom = GEOJSON.readGeometry(curr.geometry);
17
- return extend(prev, geom.getExtent());
15
+ return extend(prev, getGeometryBoundingBox(curr.geometry));
18
16
  }
19
17
  return prev;
20
18
  }, [Infinity, Infinity, -Infinity, -Infinity]);
@@ -28,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
28
26
  providedIn: 'root',
29
27
  }]
30
28
  }] });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXV0aWxzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvdXRpbHMvbWFwLXV0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFVLE1BQU0sV0FBVyxDQUFBO0FBQzFDLE9BQU8sT0FBTyxNQUFNLG1CQUFtQixDQUFBOztBQUd2QyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO0FBSzdCLE1BQU0sT0FBTyxlQUFlO0lBQzFCLGVBQWUsQ0FBQyxNQUE4QjtRQUM1QyxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsSUFBSSxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4RSxPQUFPLElBQUksQ0FBQTtRQUNiLENBQUM7UUFDRCx3REFBd0Q7UUFDeEQsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FDakMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDYixJQUFJLE1BQU0sSUFBSSxJQUFJO2dCQUFFLE9BQU8sTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7aUJBQzdDLElBQUksVUFBVSxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUM1QixNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQTtnQkFDaEQsT0FBTyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFBO1lBQ3ZDLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQTtRQUNiLENBQUMsRUFDRCxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FDM0MsQ0FBQTtJQUNILENBQUM7K0dBakJVLGVBQWU7bUhBQWYsZUFBZSxjQUZkLE1BQU07OzRGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBleHRlbmQsIEV4dGVudCB9IGZyb20gJ29sL2V4dGVudCdcbmltcG9ydCBHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJ1xuaW1wb3J0IHsgQ2F0YWxvZ1JlY29yZCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcblxuY29uc3QgR0VPSlNPTiA9IG5ldyBHZW9KU09OKClcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIE1hcFV0aWxzU2VydmljZSB7XG4gIGdldFJlY29yZEV4dGVudChyZWNvcmQ6IFBhcnRpYWw8Q2F0YWxvZ1JlY29yZD4pOiBFeHRlbnQge1xuICAgIGlmICghKCdzcGF0aWFsRXh0ZW50cycgaW4gcmVjb3JkKSB8fCByZWNvcmQuc3BhdGlhbEV4dGVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gbnVsbFxuICAgIH1cbiAgICAvLyBleHRlbmQgYWxsIHRoZSBzcGF0aWFsIGV4dGVudHMgaW50byBhbiBpbmNsdWRpbmcgYmJveFxuICAgIHJldHVybiByZWNvcmQuc3BhdGlhbEV4dGVudHMucmVkdWNlKFxuICAgICAgKHByZXYsIGN1cnIpID0+IHtcbiAgICAgICAgaWYgKCdiYm94JyBpbiBjdXJyKSByZXR1cm4gZXh0ZW5kKHByZXYsIGN1cnIuYmJveClcbiAgICAgICAgZWxzZSBpZiAoJ2dlb21ldHJ5JyBpbiBjdXJyKSB7XG4gICAgICAgICAgY29uc3QgZ2VvbSA9IEdFT0pTT04ucmVhZEdlb21ldHJ5KGN1cnIuZ2VvbWV0cnkpXG4gICAgICAgICAgcmV0dXJuIGV4dGVuZChwcmV2LCBnZW9tLmdldEV4dGVudCgpKVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwcmV2XG4gICAgICB9LFxuICAgICAgW0luZmluaXR5LCBJbmZpbml0eSwgLUluZmluaXR5LCAtSW5maW5pdHldXG4gICAgKVxuICB9XG59XG4iXX0=
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXV0aWxzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYy9saWIvdXRpbHMvbWFwLXV0aWxzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBRWxDLE9BQU8sRUFBZSxzQkFBc0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFBOztBQUs1RixNQUFNLE9BQU8sZUFBZTtJQUMxQixlQUFlLENBQUMsTUFBOEI7UUFDNUMsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLElBQUksTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEUsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO1FBQ0Qsd0RBQXdEO1FBQ3hELE9BQU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQ2pDLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFO1lBQ2IsSUFBSSxNQUFNLElBQUksSUFBSTtnQkFBRSxPQUFPLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBZ0IsQ0FBQTtpQkFDNUQsSUFBSSxVQUFVLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQzVCLE9BQU8sTUFBTSxDQUNYLElBQUksRUFDSixzQkFBc0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQ3ZCLENBQUE7WUFDbEIsQ0FBQztZQUNELE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQyxFQUNELENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUMzQyxDQUFBO0lBQ0gsQ0FBQzsrR0FuQlUsZUFBZTttSEFBZixlQUFlLGNBRmQsTUFBTTs7NEZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IGV4dGVuZCB9IGZyb20gJ29sL2V4dGVudCdcbmltcG9ydCB7IENhdGFsb2dSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBCb3VuZGluZ0JveCwgZ2V0R2VvbWV0cnlCb3VuZGluZ0JveCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTWFwVXRpbHNTZXJ2aWNlIHtcbiAgZ2V0UmVjb3JkRXh0ZW50KHJlY29yZDogUGFydGlhbDxDYXRhbG9nUmVjb3JkPik6IEJvdW5kaW5nQm94IHtcbiAgICBpZiAoISgnc3BhdGlhbEV4dGVudHMnIGluIHJlY29yZCkgfHwgcmVjb3JkLnNwYXRpYWxFeHRlbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG4gICAgLy8gZXh0ZW5kIGFsbCB0aGUgc3BhdGlhbCBleHRlbnRzIGludG8gYW4gaW5jbHVkaW5nIGJib3hcbiAgICByZXR1cm4gcmVjb3JkLnNwYXRpYWxFeHRlbnRzLnJlZHVjZShcbiAgICAgIChwcmV2LCBjdXJyKSA9PiB7XG4gICAgICAgIGlmICgnYmJveCcgaW4gY3VycikgcmV0dXJuIGV4dGVuZChwcmV2LCBjdXJyLmJib3gpIGFzIEJvdW5kaW5nQm94XG4gICAgICAgIGVsc2UgaWYgKCdnZW9tZXRyeScgaW4gY3Vycikge1xuICAgICAgICAgIHJldHVybiBleHRlbmQoXG4gICAgICAgICAgICBwcmV2LFxuICAgICAgICAgICAgZ2V0R2VvbWV0cnlCb3VuZGluZ0JveChjdXJyLmdlb21ldHJ5KVxuICAgICAgICAgICkgYXMgQm91bmRpbmdCb3hcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcHJldlxuICAgICAgfSxcbiAgICAgIFtJbmZpbml0eSwgSW5maW5pdHksIC1JbmZpbml0eSwgLUluZmluaXR5XVxuICAgIClcbiAgfVxufVxuIl19
@@ -245,7 +245,9 @@ export class MapViewComponent {
245
245
  link.accessServiceProtocol === 'tms') {
246
246
  // FIXME: here we're assuming that the TMS serves vector tiles only; should be checked with ogc-client first
247
247
  return of({
248
- url: link.url.toString().replace(/\/?$/, '/{z}/{x}/{y}.pbf'),
248
+ url: link.url
249
+ .toString()
250
+ .replace(/\/?$/, `/${link.name}/{z}/{x}/{y}.pbf`),
249
251
  type: 'xyz',
250
252
  tileFormat: 'application/vnd.mapbox-vector-tile',
251
253
  name: link.name,
@@ -333,4 +335,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
333
335
  type: ViewChild,
334
336
  args: ['mapContainer']
335
337
  }] } });
336
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3JlY29yZC9zcmMvbGliL21hcC12aWV3L21hcC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9tYXAtdmlldy9tYXAtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQ2hGLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLElBQUksRUFFSixFQUFFLEVBQ0YsU0FBUyxFQUNULFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUE7QUFDYixPQUFPLEVBQ0wsVUFBVSxFQUNWLG9CQUFvQixFQUNwQixRQUFRLEVBQ1IsR0FBRyxFQUNILFdBQVcsRUFDWCxTQUFTLEVBRVQsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUt4RSxPQUFPLEVBQ0wsbUJBQW1CLEdBSXBCLE1BQU0sc0JBQXNCLENBQUE7QUFDN0IsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUNyQixNQUFNLG1DQUFtQyxDQUFBO0FBRTFDLE9B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QUdULHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1oseUJBQXlCO3dCQUN6QixxQkFBcUI7d0JBQ3JCLHNCQUFzQjt3QkFDdEIsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2Isb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLDZCQUE2Qjt3QkFDN0IsZUFBZTt3QkFDZixrQkFBa0I7cUJBQ25CLGlCQUNjLENBQUMsWUFBWSxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQzt3TUFHOUIsWUFBWTtzQkFBeEIsS0FBSztnQkFRTyxZQUFZO3NCQUF4QixLQUFLO2dCQUdPLGFBQWE7c0JBQXpCLEtBQUs7Z0JBV0csYUFBYTtzQkFBckIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ29CLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IE1hcFV0aWxzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9tYXAvc3JjJ1xuaW1wb3J0IHsgZ2V0TGlua0lkLCBnZXRMaW5rTGFiZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7XG4gIEJlaGF2aW9yU3ViamVjdCxcbiAgY29tYmluZUxhdGVzdCxcbiAgZnJvbSxcbiAgT2JzZXJ2YWJsZSxcbiAgb2YsXG4gIHN0YXJ0V2l0aCxcbiAgdGhyb3dFcnJvcixcbiAgd2l0aExhdGVzdEZyb20sXG59IGZyb20gJ3J4anMnXG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBkaXN0aW5jdFVudGlsQ2hhbmdlZCxcbiAgZmluYWxpemUsXG4gIG1hcCxcbiAgc2hhcmVSZXBsYXksXG4gIHN3aXRjaE1hcCxcbiAgdGFrZSxcbiAgdGFwLFxufSBmcm9tICdyeGpzL29wZXJhdG9ycydcbmltcG9ydCB7IE1kVmlld0ZhY2FkZSB9IGZyb20gJy4uL3N0YXRlL21kdmlldy5mYWNhZGUnXG5pbXBvcnQgeyBEYXRhU2VydmljZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9kYXRhdml6L3NyYydcbmltcG9ydCB7XG4gIERhdGFzZXRPbmxpbmVSZXNvdXJjZSxcbiAgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24sXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7XG4gIGNyZWF0ZVZpZXdGcm9tTGF5ZXIsXG4gIE1hcENvbnRleHQsXG4gIE1hcENvbnRleHRMYXllcixcbiAgU291cmNlTG9hZEVycm9yRXZlbnQsXG59IGZyb20gJ0BnZW9zcGF0aWFsLXNkay9jb3JlJ1xuaW1wb3J0IHtcbiAgRmVhdHVyZURldGFpbENvbXBvbmVudCxcbiAgTWFwQ29udGFpbmVyQ29tcG9uZW50LFxuICBNYXBMZWdlbmRDb21wb25lbnQsXG4gIHByaW9yaXRpemVQYWdlU2Nyb2xsLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL21hcC9zcmMnXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnZ2VvanNvbidcbmltcG9ydCB7IE5nSWNvbkNvbXBvbmVudCwgcHJvdmlkZUljb25zIH0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBtYXRDbG9zZSB9IGZyb20gJ0BuZy1pY29ucy9tYXRlcmlhbC1pY29ucy9iYXNlbGluZSdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIEJ1dHRvbkNvbXBvbmVudCxcbiAgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHtcbiAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICBUcmFuc2xhdGVQaXBlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxufSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgRXh0ZXJuYWxWaWV3ZXJCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9leHRlcm5hbC12aWV3ZXItYnV0dG9uL2V4dGVybmFsLXZpZXdlci1idXR0b24uY29tcG9uZW50J1xuaW1wb3J0IHtcbiAgTG9hZGluZ01hc2tDb21wb25lbnQsXG4gIFBvcHVwQWxlcnRDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvd2lkZ2V0cy9zcmMnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQgeyBGZXRjaEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL2RhdGEtZmV0Y2hlci9zcmMnXG5cbm1hcmtlcignbWFwLmRyb3Bkb3duLnBsYWNlaG9sZGVyJylcbm1hcmtlcignd2ZzLmZlYXR1cmUubGltaXQnKVxubWFya2VyKCdkYXRhc2V0LmVycm9yLnJlc3RyaWN0ZWRBY2Nlc3MnKVxubWFya2VyKCdtYXAuc2VsZWN0LnN0eWxlJylcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktbWFwLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWFwLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tYXAtdmlldy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG4gICAgTWFwQ29udGFpbmVyQ29tcG9uZW50LFxuICAgIEZlYXR1cmVEZXRhaWxDb21wb25lbnQsXG4gICAgUG9wdXBBbGVydENvbXBvbmVudCxcbiAgICBUcmFuc2xhdGVEaXJlY3RpdmUsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgICBMb2FkaW5nTWFza0NvbXBvbmVudCxcbiAgICBOZ0ljb25Db21wb25lbnQsXG4gICAgRXh0ZXJuYWxWaWV3ZXJCdXR0b25Db21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIE1hcExlZ2VuZENvbXBvbmVudCxcbiAgXSxcbiAgdmlld1Byb3ZpZGVyczogW3Byb3ZpZGVJY29ucyh7IG1hdENsb3NlIH0pXSxcbn0pXG5leHBvcnQgY2xhc3MgTWFwVmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBzZXQgZXhjZWVkc0xpbWl0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5leGNsdWRlV2ZzJC5uZXh0KHZhbHVlKVxuICB9XG4gIGxpbmtGcm9tQ29uZmlnJCA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbClcbiAgX3NlbGVjdGVkQ2hvaWNlID0gbnVsbFxuICBfc3R5bGVGcm9tQ29uZmlnID0gbnVsbFxuXG4gIGxpbmtNYXA6IE1hcDxzdHJpbmcsIERhdGFzZXRPbmxpbmVSZXNvdXJjZT4gPSBuZXcgTWFwKClcbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkVmlldyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZFZpZXckLm5leHQodmFsdWUpXG4gIH1cbiAgQElucHV0KCkgc2V0IGRhdGF2aXpDb25maWcodmFsdWU6IGFueSkge1xuICAgIGlmICh2YWx1ZS52aWV3ID09PSAnbWFwJykge1xuICAgICAgdGhpcy5zZWxlY3RlZFZpZXckLm5leHQodmFsdWUudmlldylcbiAgICAgIGlmICh2YWx1ZS5zdHlsZVRNU0luZGV4KSB7XG4gICAgICAgIHRoaXMuX3N0eWxlRnJvbUNvbmZpZyA9IHZhbHVlLnN0eWxlVE1TSW5kZXhcbiAgICAgIH1cbiAgICAgIGlmICh2YWx1ZS5zb3VyY2UpIHtcbiAgICAgICAgdGhpcy5saW5rRnJvbUNvbmZpZyQubmV4dCh2YWx1ZS5zb3VyY2UpXG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBJbnB1dCgpIGRpc3BsYXlTb3VyY2UgPSB0cnVlXG4gIEBPdXRwdXQoKSBsaW5rU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPERhdGFzZXRPbmxpbmVSZXNvdXJjZT4oKVxuICBAT3V0cHV0KCkgc3R5bGVTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpXG4gIEBWaWV3Q2hpbGQoJ21hcENvbnRhaW5lcicpIG1hcENvbnRhaW5lcjogTWFwQ29udGFpbmVyQ29tcG9uZW50XG5cbiAgZXhjbHVkZVdmcyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKVxuICBoaWRlUHJldmlldyA9IGZhbHNlXG4gIHNlbGVjdGlvbjogRmVhdHVyZVxuICBzaG93TGVnZW5kID0gdHJ1ZVxuICBsZWdlbmRFeGlzdHMgPSBmYWxzZVxuICBsb2FkaW5nID0gZmFsc2VcbiAgZXJyb3IgPSBudWxsXG5cbiAgc2VsZWN0TGlua1RvRGlzcGxheShpZDogc3RyaW5nKSB7XG4gICAgdGhpcy5zZWxlY3RlZExpbmtJZCQubmV4dChpZClcbiAgfVxuXG4gIHNlbGVjdFN0eWxlVG9EaXNwbGF5KGk6IG51bWJlcikge1xuICAgIHRoaXMuc2VsZWN0ZWRTdHlsZUlkJC5uZXh0KGkpXG4gICAgdGhpcy5zdHlsZVNlbGVjdGVkLmVtaXQoaSlcbiAgfVxuXG4gIHRvZ2dsZUxlZ2VuZCgpIHtcbiAgICB0aGlzLnNob3dMZWdlbmQgPSAhdGhpcy5zaG93TGVnZW5kXG4gIH1cbiAgb25MZWdlbmRTdGF0dXNDaGFuZ2UodjogYm9vbGVhbikge1xuICAgIHRoaXMubGVnZW5kRXhpc3RzID0gdlxuICB9XG5cbiAgY29tcGF0aWJsZU1hcExpbmtzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMubWRWaWV3RmFjYWRlLm1hcEFwaUxpbmtzJCxcbiAgICB0aGlzLm1kVmlld0ZhY2FkZS5nZW9EYXRhTGlua3NXaXRoR2VvbWV0cnkkLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW21hcEFwaUxpbmtzLCBnZW9EYXRhTGlua3NXaXRoR2VvbWV0cnldKSA9PiBbXG4gICAgICAuLi5tYXBBcGlMaW5rcyxcbiAgICAgIC4uLmdlb0RhdGFMaW5rc1dpdGhHZW9tZXRyeSxcbiAgICBdKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgZHJvcGRvd25DaG9pY2VzJCA9IHRoaXMuY29tcGF0aWJsZU1hcExpbmtzJC5waXBlKFxuICAgIG1hcCgobGlua3MpID0+IHtcbiAgICAgIHRoaXMubGlua01hcC5jbGVhcigpXG4gICAgICBsaW5rcy5mb3JFYWNoKChsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UpID0+XG4gICAgICAgIHRoaXMubGlua01hcC5zZXQoZ2V0TGlua0lkKGxpbmspLCBsaW5rKVxuICAgICAgKVxuICAgICAgcmV0dXJuIGxpbmtzLmxlbmd0aFxuICAgICAgICA/IGxpbmtzLm1hcCgobGluaykgPT4gKHtcbiAgICAgICAgICAgIGxhYmVsOiBnZXRMaW5rTGFiZWwobGluayksXG4gICAgICAgICAgICB2YWx1ZTogZ2V0TGlua0lkKGxpbmspLFxuICAgICAgICAgIH0pKVxuICAgICAgICA6IFt7IGxhYmVsOiAnbWFwLmRyb3Bkb3duLnBsYWNlaG9sZGVyJywgdmFsdWU6ICcnIH1dXG4gICAgfSlcbiAgKVxuXG4gIHNlbGVjdGVkVmlldyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpXG4gIHNlbGVjdGVkTGlua0lkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbClcbiAgc2VsZWN0ZWRTdHlsZUlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbClcblxuICBzZWxlY3RlZFNvdXJjZUxpbmskID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5jb21wYXRpYmxlTWFwTGlua3MkLFxuICAgIHRoaXMubGlua0Zyb21Db25maWckLFxuICAgIHRoaXMuc2VsZWN0ZWRMaW5rSWQkLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSksXG4gICAgdGhpcy5zZWxlY3RlZFZpZXckLFxuICBdKS5waXBlKFxuICAgIHRhcCgoKSA9PiB7XG4gICAgICB0aGlzLmVycm9yID0gbnVsbFxuICAgIH0pLFxuICAgIG1hcCgoW2NvbXBhdGlibGVMaW5rcywgY29uZmlnTGluaywgaWQsIHZpZXddKSA9PiB7XG4gICAgICBpZiAodmlldyA9PT0gJ21hcCcpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGNvbmZpZ0xpbmsgJiZcbiAgICAgICAgICAhaWQgJiZcbiAgICAgICAgICBjb21wYXRpYmxlTGlua3Muc29tZShcbiAgICAgICAgICAgIChsaW5rKSA9PiBnZXRMaW5rSWQobGluaykgPT09IGdldExpbmtJZChjb25maWdMaW5rKVxuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5fc2VsZWN0ZWRDaG9pY2UgPSBnZXRMaW5rSWQoY29uZmlnTGluaylcbiAgICAgICAgICB0aGlzLmxpbmtTZWxlY3RlZC5lbWl0KGNvbmZpZ0xpbmspXG4gICAgICAgICAgcmV0dXJuIGNvbmZpZ0xpbmtcbiAgICAgICAgfSBlbHNlIGlmIChpZCkge1xuICAgICAgICAgIHRoaXMuX3NlbGVjdGVkQ2hvaWNlID0gaWRcbiAgICAgICAgICB0aGlzLmxpbmtTZWxlY3RlZC5lbWl0KHRoaXMubGlua01hcC5nZXQoaWQpKVxuICAgICAgICAgIHJldHVybiB0aGlzLmxpbmtNYXAuZ2V0KGlkKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubGlua1NlbGVjdGVkLmVtaXQoY29tcGF0aWJsZUxpbmtzWzBdKVxuICAgICAgICAgIHJldHVybiBjb21wYXRpYmxlTGlua3NbMF1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gIClcblxuICBzdHlsZUxpbmtzJCA9IHRoaXMuc2VsZWN0ZWRTb3VyY2VMaW5rJC5waXBlKFxuICAgIHN3aXRjaE1hcCgoc3JjKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHNyYyAmJlxuICAgICAgICBzcmMudHlwZSA9PT0gJ3NlcnZpY2UnICYmXG4gICAgICAgIHNyYy5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd0bXMnXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZyb20oXG4gICAgICAgICAgLy8gV0FSTklORzogd2hlbiB1c2luZyBcImdldEdlb2RhdGFMaW5rc0Zyb21UbXNcIiwgbWFrZSBzdXJlIHRvIGFkZCBlcnJvciBoYW5kbGluZyB0byBwcmV2ZW50IHRoZSByZXN0IG9mIHRoZSBsb2dpYyBmcm9tIGZhaWxpbmdcbiAgICAgICAgICAvLyB0aGlzIG1heSBoYXBwZW4gd2hlbiBUTVMgZW5kcG9pbnQgaXMgaW4gZXJyb3JcbiAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLmdldEdlb2RhdGFMaW5rc0Zyb21UbXMoXG4gICAgICAgICAgICBzcmMgYXMgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24sXG4gICAgICAgICAgICBmYWxzZVxuICAgICAgICAgIClcbiAgICAgICAgKS5waXBlKFxuICAgICAgICAgIC8vIFdlIG5lZWQgdG8gY2hlY2sgZm9yIG1hcGxpYnJlLXN0eWxlIGxpbmtzIGJlY2F1c2Ugd2hlbiBhIFRNUyBzZXJ2aWNlIGhhcyBubyBzdHlsZXMsXG4gICAgICAgICAgLy8gZ2V0R2VvZGF0YUxpbmtzRnJvbVRtcyByZXR1cm5zIHRoZSBvcmlnaW5hbCBUTVMgbGluaywgd2hpY2ggaXNuJ3QgYSBtYXBsaWJyZS1zdHlsZSBsaW5rXG4gICAgICAgICAgbWFwKFxuICAgICAgICAgICAgKGxpbmtzKSA9PlxuICAgICAgICAgICAgICBsaW5rcz8uZmlsdGVyKFxuICAgICAgICAgICAgICAgIChsaW5rKSA9PlxuICAgICAgICAgICAgICAgICAgbGluay50eXBlID09PSAnc2VydmljZScgJiZcbiAgICAgICAgICAgICAgICAgIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnbWFwbGlicmUtc3R5bGUnXG4gICAgICAgICAgICAgICkgfHwgW11cbiAgICAgICAgICApLFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVycm9yKVxuICAgICAgICAgICAgcmV0dXJuIG9mKHNyYylcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICB9XG4gICAgICByZXR1cm4gb2YoW10pXG4gICAgfSksXG4gICAgdGFwKChzdHlsZXMpID0+IHtcbiAgICAgIGlmICh0aGlzLl9zdHlsZUZyb21Db25maWcgJiYgdGhpcy5fc3R5bGVGcm9tQ29uZmlnIDw9IHN0eWxlcy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0eWxlSWQkLm5leHQodGhpcy5fc3R5bGVGcm9tQ29uZmlnKVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN0eWxlSWQkLm5leHQoMClcbiAgICAgIH1cbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgc3R5bGVEcm9wZG93bkNob2ljZXMkID0gdGhpcy5zdHlsZUxpbmtzJC5waXBlKFxuICAgIG1hcCgobGlua3MpID0+XG4gICAgICBsaW5rcy5sZW5ndGhcbiAgICAgICAgPyBsaW5rcy5tYXAoKGxpbmssIGluZGV4KSA9PiAoe1xuICAgICAgICAgICAgbGFiZWw6IGdldExpbmtMYWJlbChsaW5rKSxcbiAgICAgICAgICAgIHZhbHVlOiBpbmRleCxcbiAgICAgICAgICB9KSlcbiAgICAgICAgOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGxhYmVsOiAnXFx1MDBBMFxcdTAwQTBcXHUwMEEwXFx1MDBBMCcsXG4gICAgICAgICAgICAgIHZhbHVlOiAwLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgKVxuICApXG5cbiAgc2VsZWN0ZWRMaW5rJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuc2VsZWN0ZWRTb3VyY2VMaW5rJCxcbiAgICB0aGlzLnN0eWxlTGlua3MkLFxuICAgIHRoaXMuc2VsZWN0ZWRTdHlsZUlkJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICBdKS5waXBlKFxuICAgIG1hcCgoW3NyYywgc3R5bGVzLCBzdHlsZUlkeF0pID0+IChzdHlsZXMubGVuZ3RoID8gc3R5bGVzW3N0eWxlSWR4XSA6IHNyYykpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICBjdXJyZW50TGF5ZXJzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuc2VsZWN0ZWRMaW5rJCwgdGhpcy5leGNsdWRlV2ZzJF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbbGluaywgZXhjbHVkZVdmc10pID0+IHtcbiAgICAgIGlmICghbGluaykge1xuICAgICAgICByZXR1cm4gb2YoW10pXG4gICAgICB9XG4gICAgICBpZiAoZXhjbHVkZVdmcyAmJiBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dmcycpIHtcbiAgICAgICAgdGhpcy5oaWRlUHJldmlldyA9IHRydWVcbiAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgfVxuICAgICAgdGhpcy5oaWRlUHJldmlldyA9IGZhbHNlXG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlXG4gICAgICBpZiAobGluay5hY2Nlc3NSZXN0cmljdGVkKSB7XG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoJ2RhdGFzZXQuZXJyb3IucmVzdHJpY3RlZEFjY2VzcycpXG4gICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmdldExheWVyRnJvbUxpbmsobGluaykucGlwZShcbiAgICAgICAgbWFwKChsYXllcikgPT4gW2xheWVyXSksXG4gICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGUpXG4gICAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgICB9KSxcbiAgICAgICAgZmluYWxpemUoKCkgPT4gKHRoaXMubG9hZGluZyA9IGZhbHNlKSlcbiAgICAgIClcbiAgICB9KVxuICApXG5cbiAgbWFwQ29udGV4dCQ6IE9ic2VydmFibGU8TWFwQ29udGV4dD4gPSB0aGlzLmN1cnJlbnRMYXllcnMkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChsYXllcnMpID0+XG4gICAgICBmcm9tKGNyZWF0ZVZpZXdGcm9tTGF5ZXIobGF5ZXJzWzBdKSkucGlwZShcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiBvZihudWxsKSksIC8vIGNvdWxkIG5vdCB6b29tIG9uIHRoZSBsYXllcjogdXNlIHRoZSByZWNvcmQgZXh0ZW50XG4gICAgICAgIG1hcCgodmlldykgPT4gKHtcbiAgICAgICAgICBsYXllcnMsXG4gICAgICAgICAgdmlldyxcbiAgICAgICAgfSkpLFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVzZXRTZWxlY3Rpb24oKVxuICAgICAgICB9KVxuICAgICAgKVxuICAgICksXG4gICAgc3RhcnRXaXRoKHtcbiAgICAgIGxheWVyczogW10sXG4gICAgICB2aWV3OiBudWxsLFxuICAgIH0pLFxuICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMubWRWaWV3RmFjYWRlLm1ldGFkYXRhJCksXG4gICAgbWFwKChbY29udGV4dCwgbWV0YWRhdGFdKSA9PiB7XG4gICAgICBpZiAoY29udGV4dC52aWV3KSByZXR1cm4gY29udGV4dFxuICAgICAgY29uc3QgZXh0ZW50ID0gdGhpcy5tYXBVdGlscy5nZXRSZWNvcmRFeHRlbnQobWV0YWRhdGEpXG4gICAgICBjb25zdCB2aWV3ID0gZXh0ZW50ID8geyBleHRlbnQgfSA6IG51bGxcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmNvbnRleHQsXG4gICAgICAgIHZpZXcsXG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWRWaWV3RmFjYWRlOiBNZFZpZXdGYWNhZGUsXG4gICAgcHJpdmF0ZSBtYXBVdGlsczogTWFwVXRpbHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIGFzeW5jIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb25zdCBtYXAgPSBhd2FpdCB0aGlzLm1hcENvbnRhaW5lci5vcGVubGF5ZXJzTWFwXG4gICAgcHJpb3JpdGl6ZVBhZ2VTY3JvbGwobWFwLmdldEludGVyYWN0aW9ucygpKVxuICB9XG5cbiAgb25NYXBGZWF0dXJlU2VsZWN0KGZlYXR1cmVzOiBGZWF0dXJlW10pOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0U2VsZWN0aW9uKClcbiAgICB0aGlzLnNlbGVjdGlvbiA9IGZlYXR1cmVzPy5sZW5ndGggPiAwICYmIGZlYXR1cmVzWzBdXG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAvLyBGSVhNRTogcmVzdG9yZSBzdHlsaW5nIG9mIHNlbGVjdGVkIGZlYXR1cmVcbiAgICAgIC8vIHRoaXMuc2VsZWN0aW9uLnNldFN0eWxlKHRoaXMuc2VsZWN0aW9uU3R5bGUpXG4gICAgfVxuICAgIHRoaXMuY2hhbmdlUmVmLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgb25Tb3VyY2VMb2FkRXJyb3IoZXJyb3I6IFNvdXJjZUxvYWRFcnJvckV2ZW50KSB7XG4gICAgaWYgKGVycm9yLmh0dHBTdGF0dXMgPT09IDQwMyB8fCBlcnJvci5odHRwU3RhdHVzID09PSA0MDEpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgZGF0YXNldC5lcnJvci5mb3JiaWRkZW5gKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYGRhdGFzZXQuZXJyb3IuaHR0cGAsIHtcbiAgICAgICAgaW5mbzogZXJyb3IuaHR0cFN0YXR1cyxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgcmVzZXRTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2VsZWN0aW9uKSB7XG4gICAgICAvLyBGSVhNRTogcmVzdG9yZSBzdHlsaW5nIG9mIHNlbGVjdGVkIGZlYXR1cmVcbiAgICAgIC8vIHRoaXMuc2VsZWN0aW9uLnNldFN0eWxlKG51bGwpXG4gICAgfVxuICAgIHRoaXMuc2VsZWN0aW9uID0gbnVsbFxuICB9XG5cbiAgZ2V0TGF5ZXJGcm9tTGluayhsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UpOiBPYnNlcnZhYmxlPE1hcENvbnRleHRMYXllcj4ge1xuICAgIGlmIChsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJiBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dtcycpIHtcbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIHVybDogbGluay51cmwudG9TdHJpbmcoKSxcbiAgICAgICAgdHlwZTogJ3dtcycsXG4gICAgICAgIG5hbWU6IGxpbmsubmFtZSxcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmXG4gICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3RtcydcbiAgICApIHtcbiAgICAgIC8vIEZJWE1FOiBoZXJlIHdlJ3JlIGFzc3VtaW5nIHRoYXQgdGhlIFRNUyBzZXJ2ZXMgdmVjdG9yIHRpbGVzIG9ubHk7IHNob3VsZCBiZSBjaGVja2VkIHdpdGggb2djLWNsaWVudCBmaXJzdFxuICAgICAgcmV0dXJuIG9mKHtcbiAgICAgICAgdXJsOiBsaW5rLnVybC50b1N0cmluZygpLnJlcGxhY2UoL1xcLz8kLywgJy97en0ve3h9L3t5fS5wYmYnKSxcbiAgICAgICAgdHlwZTogJ3h5eicsXG4gICAgICAgIHRpbGVGb3JtYXQ6ICdhcHBsaWNhdGlvbi92bmQubWFwYm94LXZlY3Rvci10aWxlJyxcbiAgICAgICAgbmFtZTogbGluay5uYW1lLFxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgbGluay50eXBlID09PSAnc2VydmljZScgJiZcbiAgICAgIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnbWFwbGlicmUtc3R5bGUnXG4gICAgKSB7XG4gICAgICByZXR1cm4gb2Yoe1xuICAgICAgICB0eXBlOiAnbWFwbGlicmUtc3R5bGUnLFxuICAgICAgICBuYW1lOiBsaW5rLm5hbWUsXG4gICAgICAgIHN0eWxlVXJsOiBsaW5rLnVybC50b1N0cmluZygpLFxuICAgICAgfSlcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgbGluay50eXBlID09PSAnc2VydmljZScgJiZcbiAgICAgIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd210cydcbiAgICApIHtcbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIHVybDogbGluay51cmwudG9TdHJpbmcoKSxcbiAgICAgICAgdHlwZTogJ3dtdHMnLFxuICAgICAgICBuYW1lOiBsaW5rLm5hbWUsXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICAobGluay50eXBlID09PSAnc2VydmljZScgJiZcbiAgICAgICAgKGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd2ZzJyB8fFxuICAgICAgICAgIGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnZXNyaVJlc3QnIHx8XG4gICAgICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdvZ2NGZWF0dXJlcycpKSB8fFxuICAgICAgbGluay50eXBlID09PSAnZG93bmxvYWQnXG4gICAgKSB7XG4gICAgICBjb25zdCBjYWNoZUFjdGl2ZSA9IHRydWUgLy8gVE9ETyBpbXBsZW1lbnQgd2hldGhlciBzaG91bGQgYmUgdHJ1ZSBvciBmYWxzZVxuICAgICAgcmV0dXJuIHRoaXMuZGF0YVNlcnZpY2UucmVhZEFzR2VvSnNvbihsaW5rLCBjYWNoZUFjdGl2ZSkucGlwZShcbiAgICAgICAgbWFwKChkYXRhKSA9PiAoe1xuICAgICAgICAgIHR5cGU6ICdnZW9qc29uJyxcbiAgICAgICAgICBkYXRhLFxuICAgICAgICB9KSlcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gJ3Byb3RvY29sIG5vdCBzdXBwb3J0ZWQnKVxuICB9XG4gIGhhbmRsZUVycm9yKGVycm9yOiBGZXRjaEVycm9yIHwgRXJyb3IgfCBzdHJpbmcpIHtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBGZXRjaEVycm9yKSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgIGBkYXRhc2V0LmVycm9yLiR7ZXJyb3IudHlwZX1gLFxuICAgICAgICB7XG4gICAgICAgICAgaW5mbzogZXJyb3IuaW5mbyxcbiAgICAgICAgfVxuICAgICAgKVxuICAgICAgY29uc29sZS53YXJuKGVycm9yLm1lc3NhZ2UpXG4gICAgfSBlbHNlIGlmIChlcnJvciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZXJyb3IubWVzc2FnZSlcbiAgICAgIGNvbnNvbGUud2FybihlcnJvci5zdGFjayB8fCBlcnJvcilcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lcnJvciA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGVycm9yKVxuICAgICAgY29uc29sZS53YXJuKGVycm9yKVxuICAgIH1cbiAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxuICAgIHRoaXMuY2hhbmdlUmVmLmRldGVjdENoYW5nZXMoKVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwidy1mdWxsIGgtZnVsbCBmbGV4IGZsZXgtY29sIGdhcC1bMTNweF1cIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBtZDpmbGV4LXJvdyBnYXAtNCBweS00IHB4LTUgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1jb2xvci1ib3JkZXIgcm91bmRlZC1sZyBtdC02XCJcbiAgPlxuICAgIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgICAgKm5nSWY9XCJkaXNwbGF5U291cmNlXCJcbiAgICAgIGNsYXNzPVwidy1mdWxsIG1kOmZsZXgtMSBtZDptaW4tdy0wXCJcbiAgICAgIGV4dHJhQnRuQ2xhc3M9XCJmb250LXNhbnMgZm9udC1ib2xkXCJcbiAgICAgIFt0aXRsZV09XCInbWFwLnNlbGVjdC5sYXllcicgfCB0cmFuc2xhdGVcIlxuICAgICAgW2Nob2ljZXNdPVwiZHJvcGRvd25DaG9pY2VzJCB8IGFzeW5jXCJcbiAgICAgIFtzZWxlY3RlZF09XCJfc2VsZWN0ZWRDaG9pY2VcIlxuICAgICAgKHNlbGVjdFZhbHVlKT1cInNlbGVjdExpbmtUb0Rpc3BsYXkoJGV2ZW50KVwiXG4gICAgPjwvZ24tdWktZHJvcGRvd24tc2VsZWN0b3I+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiKHN0eWxlTGlua3MkIHwgYXN5bmMpPy5sZW5ndGggPiAwOyBlbHNlIHN0eWxlRGlzYWJsZWRcIj5cbiAgICAgIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgICAgICBjbGFzcz1cInctZnVsbCBtZDpmbGV4LTEgbWQ6bWluLXctMFwiXG4gICAgICAgIGV4dHJhQnRuQ2xhc3M9XCJmb250LXNhbnMgZm9udC1ib2xkXCJcbiAgICAgICAgW3RpdGxlXT1cIidtYXAuc2VsZWN0LnN0eWxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtjaG9pY2VzXT1cInN0eWxlRHJvcGRvd25DaG9pY2VzJCB8IGFzeW5jXCJcbiAgICAgICAgW3NlbGVjdGVkXT1cIl9zdHlsZUZyb21Db25maWdcIlxuICAgICAgICAoc2VsZWN0VmFsdWUpPVwic2VsZWN0U3R5bGVUb0Rpc3BsYXkoJGV2ZW50KVwiXG4gICAgICA+PC9nbi11aS1kcm9wZG93bi1zZWxlY3Rvcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI3N0eWxlRGlzYWJsZWQ+XG4gICAgICA8Z24tdWktZHJvcGRvd24tc2VsZWN0b3JcbiAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgbWQ6ZmxleC0xIG1kOm1pbi13LTAgdGV4dC1ncmF5LTQwMFwiXG4gICAgICAgIGV4dHJhQnRuQ2xhc3M9XCJmb250LXNhbnMgZm9udC1ib2xkIHRleHQtZ3JheS00MDBcIlxuICAgICAgICBbdGl0bGVdPVwiJ21hcC5zZWxlY3Quc3R5bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2Nob2ljZXNdPVwic3R5bGVEcm9wZG93bkNob2ljZXMkIHwgYXN5bmNcIlxuICAgICAgICBbZGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICA+PC9nbi11aS1kcm9wZG93bi1zZWxlY3Rvcj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPGRpdiBjbGFzcz1cInNlbGYtZW5kIG1kOm1sLTJcIj5cbiAgICAgIDxnbi11aS1leHRlcm5hbC12aWV3ZXItYnV0dG9uXG4gICAgICAgIGV4dHJhQ2xhc3M9XCJ3LVs0NHB4XSBoLVs0NHB4XVwiXG4gICAgICAgIFtsaW5rXT1cInNlbGVjdGVkTGluayQgfCBhc3luY1wiXG4gICAgICA+XG4gICAgICA8L2duLXVpLWV4dGVybmFsLXZpZXdlci1idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaGlkZVByZXZpZXc7IGVsc2UgbWFwVmlld1wiPlxuICAgIDxnbi11aS1wb3B1cC1hbGVydFxuICAgICAgdHlwZT1cIndhcm5pbmdcIlxuICAgICAgaWNvbj1cIm1hdEVycm9yT3V0bGluZU91dGxpbmVcIlxuICAgICAgY2xhc3M9XCJibG9jayBoLTEyIHAtMVwiXG4gICAgPlxuICAgICAgPHNwYW4gdHJhbnNsYXRlPnJlY29yZC5mZWF0dXJlLmxpbWl0PC9zcGFuPlxuICAgIDwvZ24tdWktcG9wdXAtYWxlcnQ+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctdGVtcGxhdGUgI21hcFZpZXc+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJyZWxhdGl2ZSB3LWZ1bGwgaC1mdWxsIGJnLXdoaXRlIGJvcmRlciBib3JkZXItZ3JheS0zMDAgcm91bmRlZC1sZyBvdmVyZmxvdy1oaWRkZW5cIlxuICAgID5cbiAgICAgIDxnbi11aS1tYXAtY29udGFpbmVyXG4gICAgICAgICNtYXBDb250YWluZXJcbiAgICAgICAgW2NvbnRleHRdPVwibWFwQ29udGV4dCQgfCBhc3luY1wiXG4gICAgICAgIChmZWF0dXJlc0NsaWNrKT1cIm9uTWFwRmVhdHVyZVNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgKHNvdXJjZUxvYWRFcnJvcik9XCJvblNvdXJjZUxvYWRFcnJvcigkZXZlbnQpXCJcbiAgICAgID48L2duLXVpLW1hcC1jb250YWluZXI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwidG9wLVsxZW1dIHJpZ2h0LVsxZW1dIHAtMyBiZy13aGl0ZSBhYnNvbHV0ZSBvdmVyZmxvdy15LWF1dG8gb3ZlcmZsb3cteC1oaWRkZW4gbWF4LWgtNzIgdy01NlwiXG4gICAgICAgIFtjbGFzcy5oaWRkZW5dPVwiIXNlbGVjdGlvblwiXG4gICAgICA+XG4gICAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgICB0eXBlPVwibGlnaHRcIlxuICAgICAgICAgIChidXR0b25DbGljayk9XCJyZXNldFNlbGVjdGlvbigpXCJcbiAgICAgICAgICBzdHlsZT1cIlxuICAgICAgICAgICAgLS1nbi11aS1idXR0b24tcGFkZGluZzogMHB4O1xuICAgICAgICAgICAgLS1nbi11aS1idXR0b24td2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAtLWduLXVpLWJ1dHRvbi1oZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgXCJcbiAgICAgICAgICBleHRyYUNsYXNzPVwiYWJzb2x1dGUgcmlnaHQtWzAuNWVtXSBtbC1bOHB4XSBtci1bMTBweF1cIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWljb24gbmFtZT1cIm1hdENsb3NlXCIgY2xhc3M9XCJhbGlnbi1taWRkbGUgdGV4dC1zbVwiPjwvbmctaWNvbj5cbiAgICAgICAgPC9nbi11aS1idXR0b24+XG4gICAgICAgIDxnbi11aS1mZWF0dXJlLWRldGFpbFxuICAgICAgICAgIFtmZWF0dXJlQ2F0YWxvZ109XCJtZFZpZXdGYWNhZGUuZmVhdHVyZUNhdGFsb2ckIHwgYXN5bmNcIlxuICAgICAgICAgIFtmZWF0dXJlXT1cInNlbGVjdGlvblwiXG4gICAgICAgID48L2duLXVpLWZlYXR1cmUtZGV0YWlsPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0b3AtWzFlbV0gcC0zIGJnLXdoaXRlIGFic29sdXRlIG92ZXJmbG93LXktYXV0byBvdmVyZmxvdy14LWhpZGRlbiBtYXgtaC03MiB3LTU2XCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAncmlnaHQtWzFlbV0nOiAhc2VsZWN0aW9uLCAncmlnaHQtWzE2ZW1dJzogc2VsZWN0aW9uIH1cIlxuICAgICAgICBbaGlkZGVuXT1cIiFzaG93TGVnZW5kIHx8ICFsZWdlbmRFeGlzdHNcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIG1iLTJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1wcmltYXJ5IGZvbnQtYm9sZFwiIHRyYW5zbGF0ZT5tYXAubGVnZW5kLnRpdGxlPC9kaXY+XG4gICAgICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImxpZ2h0XCJcbiAgICAgICAgICAgIChidXR0b25DbGljayk9XCJ0b2dnbGVMZWdlbmQoKVwiXG4gICAgICAgICAgICBzdHlsZT1cIlxuICAgICAgICAgICAgICAtLWduLXVpLWJ1dHRvbi1wYWRkaW5nOiAwcHg7XG4gICAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLXdpZHRoOiAyNHB4O1xuICAgICAgICAgICAgICAtLWduLXVpLWJ1dHRvbi1oZWlnaHQ6IDI0cHg7XG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgZXh0cmFDbGFzcz1cIm1sLVs4cHhdIG1yLVsxMHB4XVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWljb24gbmFtZT1cIm1hdENsb3NlXCIgY2xhc3M9XCJhbGlnbi1taWRkbGUgdGV4dC1zbVwiPjwvbmctaWNvbj5cbiAgICAgICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxnbi11aS1tYXAtbGVnZW5kXG4gICAgICAgICAgW2NvbnRleHRdPVwibWFwQ29udGV4dCQgfCBhc3luY1wiXG4gICAgICAgICAgKGxlZ2VuZFN0YXR1c0NoYW5nZSk9XCJvbkxlZ2VuZFN0YXR1c0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPjwvZ24tdWktbWFwLWxlZ2VuZD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICpuZ0lmPVwiIXNob3dMZWdlbmQgJiYgbGVnZW5kRXhpc3RzICYmICFzZWxlY3Rpb25cIlxuICAgICAgICB0eXBlPVwib3V0bGluZVwiXG4gICAgICAgIChidXR0b25DbGljayk9XCJ0b2dnbGVMZWdlbmQoKVwiXG4gICAgICAgIGV4dHJhQ2xhc3M9XCJhYnNvbHV0ZSB0b3AtWzFlbV0gcmlnaHQtWzFlbV0gcm91bmRlZCBwLTEgdGV4dC14cyBiZy13aGl0ZVwiXG4gICAgICAgIHRyYW5zbGF0ZVxuICAgICAgPlxuICAgICAgICBtYXAubGVnZW5kLnRpdGxlXG4gICAgICA8L2duLXVpLWJ1dHRvbj5cblxuICAgICAgPGduLXVpLWxvYWRpbmctbWFza1xuICAgICAgICAqbmdJZj1cImxvYWRpbmdcIlxuICAgICAgICBjbGFzcz1cImFic29sdXRlIGluc2V0LTBcIlxuICAgICAgICBbbWVzc2FnZV09XCInbWFwLmxvYWRpbmcuZGF0YScgfCB0cmFuc2xhdGVcIlxuICAgICAgPjwvZ24tdWktbG9hZGluZy1tYXNrPlxuICAgICAgPGduLXVpLXBvcHVwLWFsZXJ0XG4gICAgICAgICpuZ0lmPVwiZXJyb3JcIlxuICAgICAgICB0eXBlPVwid2FybmluZ1wiXG4gICAgICAgIGljb249XCJtYXRFcnJvck91dGxpbmVPdXRsaW5lXCJcbiAgICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBtLTIgaW5zZXQtMFwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIHRyYW5zbGF0ZT57eyBlcnJvciB9fTwvc3Bhbj5cbiAgICAgIDwvZ24tdWktcG9wdXAtYWxlcnQ+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
338
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL3JlY29yZC9zcmMvbGliL21hcC12aWV3L21hcC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9yZWNvcmQvc3JjL2xpYi9tYXAtdmlldy9tYXAtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQTtBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBQ2hGLE9BQU8sRUFDTCxlQUFlLEVBQ2YsYUFBYSxFQUNiLElBQUksRUFFSixFQUFFLEVBQ0YsU0FBUyxFQUNULFVBQVUsRUFDVixjQUFjLEdBQ2YsTUFBTSxNQUFNLENBQUE7QUFDYixPQUFPLEVBQ0wsVUFBVSxFQUNWLG9CQUFvQixFQUNwQixRQUFRLEVBQ1IsR0FBRyxFQUNILFdBQVcsRUFDWCxTQUFTLEVBRVQsR0FBRyxHQUNKLE1BQU0sZ0JBQWdCLENBQUE7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdCQUF3QixDQUFBO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQTtBQUt4RSxPQUFPLEVBQ0wsbUJBQW1CLEdBSXBCLE1BQU0sc0JBQXNCLENBQUE7QUFDN0IsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixxQkFBcUIsRUFDckIsa0JBQWtCLEVBQ2xCLG9CQUFvQixHQUNyQixNQUFNLG1DQUFtQyxDQUFBO0FBRTFDLE9B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QixTQUFTOytCQUNFLGdCQUFnQixtQkFHVCx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLHlCQUF5Qjt3QkFDekIscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixhQUFhO3dCQUNiLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZiw2QkFBNkI7d0JBQzdCLGVBQWU7d0JBQ2Ysa0JBQWtCO3FCQUNuQixpQkFDYyxDQUFDLFlBQVksQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7d01BRzlCLFlBQVk7c0JBQXhCLEtBQUs7Z0JBUU8sWUFBWTtzQkFBeEIsS0FBSztnQkFHTyxhQUFhO3NCQUF6QixLQUFLO2dCQVdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNvQixZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXBVdGlsc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvbWFwL3NyYydcbmltcG9ydCB7IGdldExpbmtJZCwgZ2V0TGlua0xhYmVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91dGlsL3NoYXJlZC9zcmMnXG5pbXBvcnQge1xuICBCZWhhdmlvclN1YmplY3QsXG4gIGNvbWJpbmVMYXRlc3QsXG4gIGZyb20sXG4gIE9ic2VydmFibGUsXG4gIG9mLFxuICBzdGFydFdpdGgsXG4gIHRocm93RXJyb3IsXG4gIHdpdGhMYXRlc3RGcm9tLFxufSBmcm9tICdyeGpzJ1xuaW1wb3J0IHtcbiAgY2F0Y2hFcnJvcixcbiAgZGlzdGluY3RVbnRpbENoYW5nZWQsXG4gIGZpbmFsaXplLFxuICBtYXAsXG4gIHNoYXJlUmVwbGF5LFxuICBzd2l0Y2hNYXAsXG4gIHRha2UsXG4gIHRhcCxcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnXG5pbXBvcnQgeyBNZFZpZXdGYWNhZGUgfSBmcm9tICcuLi9zdGF0ZS9tZHZpZXcuZmFjYWRlJ1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZGF0YXZpei9zcmMnXG5pbXBvcnQge1xuICBEYXRhc2V0T25saW5lUmVzb3VyY2UsXG4gIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBjcmVhdGVWaWV3RnJvbUxheWVyLFxuICBNYXBDb250ZXh0LFxuICBNYXBDb250ZXh0TGF5ZXIsXG4gIFNvdXJjZUxvYWRFcnJvckV2ZW50LFxufSBmcm9tICdAZ2Vvc3BhdGlhbC1zZGsvY29yZSdcbmltcG9ydCB7XG4gIEZlYXR1cmVEZXRhaWxDb21wb25lbnQsXG4gIE1hcENvbnRhaW5lckNvbXBvbmVudCxcbiAgTWFwTGVnZW5kQ29tcG9uZW50LFxuICBwcmlvcml0aXplUGFnZVNjcm9sbCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9tYXAvc3JjJ1xuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJ2dlb2pzb24nXG5pbXBvcnQgeyBOZ0ljb25Db21wb25lbnQsIHByb3ZpZGVJY29ucyB9IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgbWF0Q2xvc2UgfSBmcm9tICdAbmctaWNvbnMvbWF0ZXJpYWwtaWNvbnMvYmFzZWxpbmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBCdXR0b25Db21wb25lbnQsXG4gIERyb3Bkb3duU2VsZWN0b3JDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7XG4gIFRyYW5zbGF0ZURpcmVjdGl2ZSxcbiAgVHJhbnNsYXRlUGlwZSxcbiAgVHJhbnNsYXRlU2VydmljZSxcbn0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IEV4dGVybmFsVmlld2VyQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vZXh0ZXJuYWwtdmlld2VyLWJ1dHRvbi9leHRlcm5hbC12aWV3ZXItYnV0dG9uLmNvbXBvbmVudCdcbmltcG9ydCB7XG4gIExvYWRpbmdNYXNrQ29tcG9uZW50LFxuICBQb3B1cEFsZXJ0Q29tcG9uZW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3VpL3dpZGdldHMvc3JjJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHsgRmV0Y2hFcnJvciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9kYXRhLWZldGNoZXIvc3JjJ1xuXG5tYXJrZXIoJ21hcC5kcm9wZG93bi5wbGFjZWhvbGRlcicpXG5tYXJrZXIoJ3dmcy5mZWF0dXJlLmxpbWl0Jylcbm1hcmtlcignZGF0YXNldC5lcnJvci5yZXN0cmljdGVkQWNjZXNzJylcbm1hcmtlcignbWFwLnNlbGVjdC5zdHlsZScpXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW1hcC12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21hcC12aWV3LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWFwLXZpZXcuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxuICAgIE1hcENvbnRhaW5lckNvbXBvbmVudCxcbiAgICBGZWF0dXJlRGV0YWlsQ29tcG9uZW50LFxuICAgIFBvcHVwQWxlcnRDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICAgIFRyYW5zbGF0ZVBpcGUsXG4gICAgTG9hZGluZ01hc2tDb21wb25lbnQsXG4gICAgTmdJY29uQ29tcG9uZW50LFxuICAgIEV4dGVybmFsVmlld2VyQnV0dG9uQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBNYXBMZWdlbmRDb21wb25lbnQsXG4gIF0sXG4gIHZpZXdQcm92aWRlcnM6IFtwcm92aWRlSWNvbnMoeyBtYXRDbG9zZSB9KV0sXG59KVxuZXhwb3J0IGNsYXNzIE1hcFZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgc2V0IGV4Y2VlZHNMaW1pdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZXhjbHVkZVdmcyQubmV4dCh2YWx1ZSlcbiAgfVxuICBsaW5rRnJvbUNvbmZpZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpXG4gIF9zZWxlY3RlZENob2ljZSA9IG51bGxcbiAgX3N0eWxlRnJvbUNvbmZpZyA9IG51bGxcblxuICBsaW5rTWFwOiBNYXA8c3RyaW5nLCBEYXRhc2V0T25saW5lUmVzb3VyY2U+ID0gbmV3IE1hcCgpXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZFZpZXcodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRWaWV3JC5uZXh0KHZhbHVlKVxuICB9XG4gIEBJbnB1dCgpIHNldCBkYXRhdml6Q29uZmlnKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodmFsdWUudmlldyA9PT0gJ21hcCcpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRWaWV3JC5uZXh0KHZhbHVlLnZpZXcpXG4gICAgICBpZiAodmFsdWUuc3R5bGVUTVNJbmRleCkge1xuICAgICAgICB0aGlzLl9zdHlsZUZyb21Db25maWcgPSB2YWx1ZS5zdHlsZVRNU0luZGV4XG4gICAgICB9XG4gICAgICBpZiAodmFsdWUuc291cmNlKSB7XG4gICAgICAgIHRoaXMubGlua0Zyb21Db25maWckLm5leHQodmFsdWUuc291cmNlKVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBASW5wdXQoKSBkaXNwbGF5U291cmNlID0gdHJ1ZVxuICBAT3V0cHV0KCkgbGlua1NlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRhc2V0T25saW5lUmVzb3VyY2U+KClcbiAgQE91dHB1dCgpIHN0eWxlU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKVxuICBAVmlld0NoaWxkKCdtYXBDb250YWluZXInKSBtYXBDb250YWluZXI6IE1hcENvbnRhaW5lckNvbXBvbmVudFxuXG4gIGV4Y2x1ZGVXZnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSlcbiAgaGlkZVByZXZpZXcgPSBmYWxzZVxuICBzZWxlY3Rpb246IEZlYXR1cmVcbiAgc2hvd0xlZ2VuZCA9IHRydWVcbiAgbGVnZW5kRXhpc3RzID0gZmFsc2VcbiAgbG9hZGluZyA9IGZhbHNlXG4gIGVycm9yID0gbnVsbFxuXG4gIHNlbGVjdExpbmtUb0Rpc3BsYXkoaWQ6IHN0cmluZykge1xuICAgIHRoaXMuc2VsZWN0ZWRMaW5rSWQkLm5leHQoaWQpXG4gIH1cblxuICBzZWxlY3RTdHlsZVRvRGlzcGxheShpOiBudW1iZXIpIHtcbiAgICB0aGlzLnNlbGVjdGVkU3R5bGVJZCQubmV4dChpKVxuICAgIHRoaXMuc3R5bGVTZWxlY3RlZC5lbWl0KGkpXG4gIH1cblxuICB0b2dnbGVMZWdlbmQoKSB7XG4gICAgdGhpcy5zaG93TGVnZW5kID0gIXRoaXMuc2hvd0xlZ2VuZFxuICB9XG4gIG9uTGVnZW5kU3RhdHVzQ2hhbmdlKHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmxlZ2VuZEV4aXN0cyA9IHZcbiAgfVxuXG4gIGNvbXBhdGlibGVNYXBMaW5rcyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLm1kVmlld0ZhY2FkZS5tYXBBcGlMaW5rcyQsXG4gICAgdGhpcy5tZFZpZXdGYWNhZGUuZ2VvRGF0YUxpbmtzV2l0aEdlb21ldHJ5JCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFttYXBBcGlMaW5rcywgZ2VvRGF0YUxpbmtzV2l0aEdlb21ldHJ5XSkgPT4gW1xuICAgICAgLi4ubWFwQXBpTGlua3MsXG4gICAgICAuLi5nZW9EYXRhTGlua3NXaXRoR2VvbWV0cnksXG4gICAgXSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIGRyb3Bkb3duQ2hvaWNlcyQgPSB0aGlzLmNvbXBhdGlibGVNYXBMaW5rcyQucGlwZShcbiAgICBtYXAoKGxpbmtzKSA9PiB7XG4gICAgICB0aGlzLmxpbmtNYXAuY2xlYXIoKVxuICAgICAgbGlua3MuZm9yRWFjaCgobGluazogRGF0YXNldE9ubGluZVJlc291cmNlKSA9PlxuICAgICAgICB0aGlzLmxpbmtNYXAuc2V0KGdldExpbmtJZChsaW5rKSwgbGluaylcbiAgICAgIClcbiAgICAgIHJldHVybiBsaW5rcy5sZW5ndGhcbiAgICAgICAgPyBsaW5rcy5tYXAoKGxpbmspID0+ICh7XG4gICAgICAgICAgICBsYWJlbDogZ2V0TGlua0xhYmVsKGxpbmspLFxuICAgICAgICAgICAgdmFsdWU6IGdldExpbmtJZChsaW5rKSxcbiAgICAgICAgICB9KSlcbiAgICAgICAgOiBbeyBsYWJlbDogJ21hcC5kcm9wZG93bi5wbGFjZWhvbGRlcicsIHZhbHVlOiAnJyB9XVxuICAgIH0pXG4gIClcblxuICBzZWxlY3RlZFZpZXckID0gbmV3IEJlaGF2aW9yU3ViamVjdChudWxsKVxuICBzZWxlY3RlZExpbmtJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpXG4gIHNlbGVjdGVkU3R5bGVJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KG51bGwpXG5cbiAgc2VsZWN0ZWRTb3VyY2VMaW5rJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuY29tcGF0aWJsZU1hcExpbmtzJCxcbiAgICB0aGlzLmxpbmtGcm9tQ29uZmlnJCxcbiAgICB0aGlzLnNlbGVjdGVkTGlua0lkJC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLFxuICAgIHRoaXMuc2VsZWN0ZWRWaWV3JCxcbiAgXSkucGlwZShcbiAgICB0YXAoKCkgPT4ge1xuICAgICAgdGhpcy5lcnJvciA9IG51bGxcbiAgICB9KSxcbiAgICBtYXAoKFtjb21wYXRpYmxlTGlua3MsIGNvbmZpZ0xpbmssIGlkLCB2aWV3XSkgPT4ge1xuICAgICAgaWYgKHZpZXcgPT09ICdtYXAnKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBjb25maWdMaW5rICYmXG4gICAgICAgICAgIWlkICYmXG4gICAgICAgICAgY29tcGF0aWJsZUxpbmtzLnNvbWUoXG4gICAgICAgICAgICAobGluaykgPT4gZ2V0TGlua0lkKGxpbmspID09PSBnZXRMaW5rSWQoY29uZmlnTGluaylcbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIHRoaXMuX3NlbGVjdGVkQ2hvaWNlID0gZ2V0TGlua0lkKGNvbmZpZ0xpbmspXG4gICAgICAgICAgdGhpcy5saW5rU2VsZWN0ZWQuZW1pdChjb25maWdMaW5rKVxuICAgICAgICAgIHJldHVybiBjb25maWdMaW5rXG4gICAgICAgIH0gZWxzZSBpZiAoaWQpIHtcbiAgICAgICAgICB0aGlzLl9zZWxlY3RlZENob2ljZSA9IGlkXG4gICAgICAgICAgdGhpcy5saW5rU2VsZWN0ZWQuZW1pdCh0aGlzLmxpbmtNYXAuZ2V0KGlkKSlcbiAgICAgICAgICByZXR1cm4gdGhpcy5saW5rTWFwLmdldChpZClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmxpbmtTZWxlY3RlZC5lbWl0KGNvbXBhdGlibGVMaW5rc1swXSlcbiAgICAgICAgICByZXR1cm4gY29tcGF0aWJsZUxpbmtzWzBdXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuICApXG5cbiAgc3R5bGVMaW5rcyQgPSB0aGlzLnNlbGVjdGVkU291cmNlTGluayQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHNyYykgPT4ge1xuICAgICAgaWYgKFxuICAgICAgICBzcmMgJiZcbiAgICAgICAgc3JjLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgICBzcmMuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAndG1zJ1xuICAgICAgKSB7XG4gICAgICAgIHJldHVybiBmcm9tKFxuICAgICAgICAgIC8vIFdBUk5JTkc6IHdoZW4gdXNpbmcgXCJnZXRHZW9kYXRhTGlua3NGcm9tVG1zXCIsIG1ha2Ugc3VyZSB0byBhZGQgZXJyb3IgaGFuZGxpbmcgdG8gcHJldmVudCB0aGUgcmVzdCBvZiB0aGUgbG9naWMgZnJvbSBmYWlsaW5nXG4gICAgICAgICAgLy8gdGhpcyBtYXkgaGFwcGVuIHdoZW4gVE1TIGVuZHBvaW50IGlzIGluIGVycm9yXG4gICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5nZXRHZW9kYXRhTGlua3NGcm9tVG1zKFxuICAgICAgICAgICAgc3JjIGFzIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxuICAgICAgICAgICAgZmFsc2VcbiAgICAgICAgICApXG4gICAgICAgICkucGlwZShcbiAgICAgICAgICAvLyBXZSBuZWVkIHRvIGNoZWNrIGZvciBtYXBsaWJyZS1zdHlsZSBsaW5rcyBiZWNhdXNlIHdoZW4gYSBUTVMgc2VydmljZSBoYXMgbm8gc3R5bGVzLFxuICAgICAgICAgIC8vIGdldEdlb2RhdGFMaW5rc0Zyb21UbXMgcmV0dXJucyB0aGUgb3JpZ2luYWwgVE1TIGxpbmssIHdoaWNoIGlzbid0IGEgbWFwbGlicmUtc3R5bGUgbGlua1xuICAgICAgICAgIG1hcChcbiAgICAgICAgICAgIChsaW5rcykgPT5cbiAgICAgICAgICAgICAgbGlua3M/LmZpbHRlcihcbiAgICAgICAgICAgICAgICAobGluaykgPT5cbiAgICAgICAgICAgICAgICAgIGxpbmsudHlwZSA9PT0gJ3NlcnZpY2UnICYmXG4gICAgICAgICAgICAgICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ21hcGxpYnJlLXN0eWxlJ1xuICAgICAgICAgICAgICApIHx8IFtdXG4gICAgICAgICAgKSxcbiAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnJvcilcbiAgICAgICAgICAgIHJldHVybiBvZihzcmMpXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgfVxuICAgICAgcmV0dXJuIG9mKFtdKVxuICAgIH0pLFxuICAgIHRhcCgoc3R5bGVzKSA9PiB7XG4gICAgICBpZiAodGhpcy5fc3R5bGVGcm9tQ29uZmlnICYmIHRoaXMuX3N0eWxlRnJvbUNvbmZpZyA8PSBzdHlsZXMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdHlsZUlkJC5uZXh0KHRoaXMuX3N0eWxlRnJvbUNvbmZpZylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRTdHlsZUlkJC5uZXh0KDApXG4gICAgICB9XG4gICAgfSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKVxuXG4gIHN0eWxlRHJvcGRvd25DaG9pY2VzJCA9IHRoaXMuc3R5bGVMaW5rcyQucGlwZShcbiAgICBtYXAoKGxpbmtzKSA9PlxuICAgICAgbGlua3MubGVuZ3RoXG4gICAgICAgID8gbGlua3MubWFwKChsaW5rLCBpbmRleCkgPT4gKHtcbiAgICAgICAgICAgIGxhYmVsOiBnZXRMaW5rTGFiZWwobGluayksXG4gICAgICAgICAgICB2YWx1ZTogaW5kZXgsXG4gICAgICAgICAgfSkpXG4gICAgICAgIDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBsYWJlbDogJ1xcdTAwQTBcXHUwMEEwXFx1MDBBMFxcdTAwQTAnLFxuICAgICAgICAgICAgICB2YWx1ZTogMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgIClcbiAgKVxuXG4gIHNlbGVjdGVkTGluayQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLnNlbGVjdGVkU291cmNlTGluayQsXG4gICAgdGhpcy5zdHlsZUxpbmtzJCxcbiAgICB0aGlzLnNlbGVjdGVkU3R5bGVJZCQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtzcmMsIHN0eWxlcywgc3R5bGVJZHhdKSA9PiAoc3R5bGVzLmxlbmd0aCA/IHN0eWxlc1tzdHlsZUlkeF0gOiBzcmMpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApXG5cbiAgY3VycmVudExheWVycyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnNlbGVjdGVkTGluayQsIHRoaXMuZXhjbHVkZVdmcyRdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW2xpbmssIGV4Y2x1ZGVXZnNdKSA9PiB7XG4gICAgICBpZiAoIWxpbmspIHtcbiAgICAgICAgcmV0dXJuIG9mKFtdKVxuICAgICAgfVxuICAgICAgaWYgKGV4Y2x1ZGVXZnMgJiYgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnKSB7XG4gICAgICAgIHRoaXMuaGlkZVByZXZpZXcgPSB0cnVlXG4gICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgIH1cbiAgICAgIHRoaXMuaGlkZVByZXZpZXcgPSBmYWxzZVxuICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZVxuICAgICAgaWYgKGxpbmsuYWNjZXNzUmVzdHJpY3RlZCkge1xuICAgICAgICB0aGlzLmhhbmRsZUVycm9yKCdkYXRhc2V0LmVycm9yLnJlc3RyaWN0ZWRBY2Nlc3MnKVxuICAgICAgICByZXR1cm4gb2YoW10pXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5nZXRMYXllckZyb21MaW5rKGxpbmspLnBpcGUoXG4gICAgICAgIG1hcCgobGF5ZXIpID0+IFtsYXllcl0pLFxuICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XG4gICAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlKVxuICAgICAgICAgIHJldHVybiBvZihbXSlcbiAgICAgICAgfSksXG4gICAgICAgIGZpbmFsaXplKCgpID0+ICh0aGlzLmxvYWRpbmcgPSBmYWxzZSkpXG4gICAgICApXG4gICAgfSlcbiAgKVxuXG4gIG1hcENvbnRleHQkOiBPYnNlcnZhYmxlPE1hcENvbnRleHQ+ID0gdGhpcy5jdXJyZW50TGF5ZXJzJC5waXBlKFxuICAgIHN3aXRjaE1hcCgobGF5ZXJzKSA9PlxuICAgICAgZnJvbShjcmVhdGVWaWV3RnJvbUxheWVyKGxheWVyc1swXSkpLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gb2YobnVsbCkpLCAvLyBjb3VsZCBub3Qgem9vbSBvbiB0aGUgbGF5ZXI6IHVzZSB0aGUgcmVjb3JkIGV4dGVudFxuICAgICAgICBtYXAoKHZpZXcpID0+ICh7XG4gICAgICAgICAgbGF5ZXJzLFxuICAgICAgICAgIHZpZXcsXG4gICAgICAgIH0pKSxcbiAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICB0aGlzLnJlc2V0U2VsZWN0aW9uKClcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApLFxuICAgIHN0YXJ0V2l0aCh7XG4gICAgICBsYXllcnM6IFtdLFxuICAgICAgdmlldzogbnVsbCxcbiAgICB9KSxcbiAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLm1kVmlld0ZhY2FkZS5tZXRhZGF0YSQpLFxuICAgIG1hcCgoW2NvbnRleHQsIG1ldGFkYXRhXSkgPT4ge1xuICAgICAgaWYgKGNvbnRleHQudmlldykgcmV0dXJuIGNvbnRleHRcbiAgICAgIGNvbnN0IGV4dGVudCA9IHRoaXMubWFwVXRpbHMuZ2V0UmVjb3JkRXh0ZW50KG1ldGFkYXRhKVxuICAgICAgY29uc3QgdmlldyA9IGV4dGVudCA/IHsgZXh0ZW50IH0gOiBudWxsXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5jb250ZXh0LFxuICAgICAgICB2aWV3LFxuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gIClcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG1kVmlld0ZhY2FkZTogTWRWaWV3RmFjYWRlLFxuICAgIHByaXZhdGUgbWFwVXRpbHM6IE1hcFV0aWxzU2VydmljZSxcbiAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcbiAgICBwcml2YXRlIGNoYW5nZVJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgbWFwID0gYXdhaXQgdGhpcy5tYXBDb250YWluZXIub3BlbmxheWVyc01hcFxuICAgIHByaW9yaXRpemVQYWdlU2Nyb2xsKG1hcC5nZXRJbnRlcmFjdGlvbnMoKSlcbiAgfVxuXG4gIG9uTWFwRmVhdHVyZVNlbGVjdChmZWF0dXJlczogRmVhdHVyZVtdKTogdm9pZCB7XG4gICAgdGhpcy5yZXNldFNlbGVjdGlvbigpXG4gICAgdGhpcy5zZWxlY3Rpb24gPSBmZWF0dXJlcz8ubGVuZ3RoID4gMCAmJiBmZWF0dXJlc1swXVxuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgLy8gRklYTUU6IHJlc3RvcmUgc3R5bGluZyBvZiBzZWxlY3RlZCBmZWF0dXJlXG4gICAgICAvLyB0aGlzLnNlbGVjdGlvbi5zZXRTdHlsZSh0aGlzLnNlbGVjdGlvblN0eWxlKVxuICAgIH1cbiAgICB0aGlzLmNoYW5nZVJlZi5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIG9uU291cmNlTG9hZEVycm9yKGVycm9yOiBTb3VyY2VMb2FkRXJyb3JFdmVudCkge1xuICAgIGlmIChlcnJvci5odHRwU3RhdHVzID09PSA0MDMgfHwgZXJyb3IuaHR0cFN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYGRhdGFzZXQuZXJyb3IuZm9yYmlkZGVuYClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lcnJvciA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGBkYXRhc2V0LmVycm9yLmh0dHBgLCB7XG4gICAgICAgIGluZm86IGVycm9yLmh0dHBTdGF0dXMsXG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIHJlc2V0U2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGlvbikge1xuICAgICAgLy8gRklYTUU6IHJlc3RvcmUgc3R5bGluZyBvZiBzZWxlY3RlZCBmZWF0dXJlXG4gICAgICAvLyB0aGlzLnNlbGVjdGlvbi5zZXRTdHlsZShudWxsKVxuICAgIH1cbiAgICB0aGlzLnNlbGVjdGlvbiA9IG51bGxcbiAgfVxuXG4gIGdldExheWVyRnJvbUxpbmsobGluazogRGF0YXNldE9ubGluZVJlc291cmNlKTogT2JzZXJ2YWJsZTxNYXBDb250ZXh0TGF5ZXI+IHtcbiAgICBpZiAobGluay50eXBlID09PSAnc2VydmljZScgJiYgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3bXMnKSB7XG4gICAgICByZXR1cm4gb2Yoe1xuICAgICAgICB1cmw6IGxpbmsudXJsLnRvU3RyaW5nKCksXG4gICAgICAgIHR5cGU6ICd3bXMnLFxuICAgICAgICBuYW1lOiBsaW5rLm5hbWUsXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd0bXMnXG4gICAgKSB7XG4gICAgICAvLyBGSVhNRTogaGVyZSB3ZSdyZSBhc3N1bWluZyB0aGF0IHRoZSBUTVMgc2VydmVzIHZlY3RvciB0aWxlcyBvbmx5OyBzaG91bGQgYmUgY2hlY2tlZCB3aXRoIG9nYy1jbGllbnQgZmlyc3RcbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIHVybDogbGluay51cmxcbiAgICAgICAgICAudG9TdHJpbmcoKVxuICAgICAgICAgIC5yZXBsYWNlKC9cXC8/JC8sIGAvJHtsaW5rLm5hbWV9L3t6fS97eH0ve3l9LnBiZmApLFxuICAgICAgICB0eXBlOiAneHl6JyxcbiAgICAgICAgdGlsZUZvcm1hdDogJ2FwcGxpY2F0aW9uL3ZuZC5tYXBib3gtdmVjdG9yLXRpbGUnLFxuICAgICAgICBuYW1lOiBsaW5rLm5hbWUsXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdtYXBsaWJyZS1zdHlsZSdcbiAgICApIHtcbiAgICAgIHJldHVybiBvZih7XG4gICAgICAgIHR5cGU6ICdtYXBsaWJyZS1zdHlsZScsXG4gICAgICAgIG5hbWU6IGxpbmsubmFtZSxcbiAgICAgICAgc3R5bGVVcmw6IGxpbmsudXJsLnRvU3RyaW5nKCksXG4gICAgICB9KVxuICAgIH0gZWxzZSBpZiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3bXRzJ1xuICAgICkge1xuICAgICAgcmV0dXJuIG9mKHtcbiAgICAgICAgdXJsOiBsaW5rLnVybC50b1N0cmluZygpLFxuICAgICAgICB0eXBlOiAnd210cycsXG4gICAgICAgIG5hbWU6IGxpbmsubmFtZSxcbiAgICAgIH0pXG4gICAgfSBlbHNlIGlmIChcbiAgICAgIChsaW5rLnR5cGUgPT09ICdzZXJ2aWNlJyAmJlxuICAgICAgICAobGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICd3ZnMnIHx8XG4gICAgICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdlc3JpUmVzdCcgfHxcbiAgICAgICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ29nY0ZlYXR1cmVzJykpIHx8XG4gICAgICBsaW5rLnR5cGUgPT09ICdkb3dubG9hZCdcbiAgICApIHtcbiAgICAgIGNvbnN0IGNhY2hlQWN0aXZlID0gdHJ1ZSAvLyBUT0RPIGltcGxlbWVudCB3aGV0aGVyIHNob3VsZCBiZSB0cnVlIG9yIGZhbHNlXG4gICAgICByZXR1cm4gdGhpcy5kYXRhU2VydmljZS5yZWFkQXNHZW9Kc29uKGxpbmssIGNhY2hlQWN0aXZlKS5waXBlKFxuICAgICAgICBtYXAoKGRhdGEpID0+ICh7XG4gICAgICAgICAgdHlwZTogJ2dlb2pzb24nLFxuICAgICAgICAgIGRhdGEsXG4gICAgICAgIH0pKVxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiAncHJvdG9jb2wgbm90IHN1cHBvcnRlZCcpXG4gIH1cbiAgaGFuZGxlRXJyb3IoZXJyb3I6IEZldGNoRXJyb3IgfCBFcnJvciB8IHN0cmluZykge1xuICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEZldGNoRXJyb3IpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgYGRhdGFzZXQuZXJyb3IuJHtlcnJvci50eXBlfWAsXG4gICAgICAgIHtcbiAgICAgICAgICBpbmZvOiBlcnJvci5pbmZvLFxuICAgICAgICB9XG4gICAgICApXG4gICAgICBjb25zb2xlLndhcm4oZXJyb3IubWVzc2FnZSlcbiAgICB9IGVsc2UgaWYgKGVycm9yIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChlcnJvci5tZXNzYWdlKVxuICAgICAgY29uc29sZS53YXJuKGVycm9yLnN0YWNrIHx8IGVycm9yKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVycm9yID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoZXJyb3IpXG4gICAgICBjb25zb2xlLndhcm4oZXJyb3IpXG4gICAgfVxuICAgIHRoaXMubG9hZGluZyA9IGZhbHNlXG4gICAgdGhpcy5jaGFuZ2VSZWYuZGV0ZWN0Q2hhbmdlcygpXG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIGZsZXggZmxleC1jb2wgZ2FwLVsxM3B4XVwiPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIG1kOmZsZXgtcm93IGdhcC00IHB5LTQgcHgtNSBiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWNvbG9yLWJvcmRlciByb3VuZGVkLWxnIG10LTZcIlxuICA+XG4gICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICAqbmdJZj1cImRpc3BsYXlTb3VyY2VcIlxuICAgICAgY2xhc3M9XCJ3LWZ1bGwgbWQ6ZmxleC0xIG1kOm1pbi13LTBcIlxuICAgICAgZXh0cmFCdG5DbGFzcz1cImZvbnQtc2FucyBmb250LWJvbGRcIlxuICAgICAgW3RpdGxlXT1cIidtYXAuc2VsZWN0LmxheWVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbY2hvaWNlc109XCJkcm9wZG93bkNob2ljZXMkIHwgYXN5bmNcIlxuICAgICAgW3NlbGVjdGVkXT1cIl9zZWxlY3RlZENob2ljZVwiXG4gICAgICAoc2VsZWN0VmFsdWUpPVwic2VsZWN0TGlua1RvRGlzcGxheSgkZXZlbnQpXCJcbiAgICA+PC9nbi11aS1kcm9wZG93bi1zZWxlY3Rvcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoc3R5bGVMaW5rcyQgfCBhc3luYyk/Lmxlbmd0aCA+IDA7IGVsc2Ugc3R5bGVEaXNhYmxlZFwiPlxuICAgICAgPGduLXVpLWRyb3Bkb3duLXNlbGVjdG9yXG4gICAgICAgIGNsYXNzPVwidy1mdWxsIG1kOmZsZXgtMSBtZDptaW4tdy0wXCJcbiAgICAgICAgZXh0cmFCdG5DbGFzcz1cImZvbnQtc2FucyBmb250LWJvbGRcIlxuICAgICAgICBbdGl0bGVdPVwiJ21hcC5zZWxlY3Quc3R5bGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2Nob2ljZXNdPVwic3R5bGVEcm9wZG93bkNob2ljZXMkIHwgYXN5bmNcIlxuICAgICAgICBbc2VsZWN0ZWRdPVwiX3N0eWxlRnJvbUNvbmZpZ1wiXG4gICAgICAgIChzZWxlY3RWYWx1ZSk9XCJzZWxlY3RTdHlsZVRvRGlzcGxheSgkZXZlbnQpXCJcbiAgICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjc3R5bGVEaXNhYmxlZD5cbiAgICAgIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgICAgICBjbGFzcz1cInctZnVsbCBtZDpmbGV4LTEgbWQ6bWluLXctMCB0ZXh0LWdyYXktNDAwXCJcbiAgICAgICAgZXh0cmFCdG5DbGFzcz1cImZvbnQtc2FucyBmb250LWJvbGQgdGV4dC1ncmF5LTQwMFwiXG4gICAgICAgIFt0aXRsZV09XCInbWFwLnNlbGVjdC5zdHlsZScgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbY2hvaWNlc109XCJzdHlsZURyb3Bkb3duQ2hvaWNlcyQgfCBhc3luY1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgID48L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8ZGl2IGNsYXNzPVwic2VsZi1lbmQgbWQ6bWwtMlwiPlxuICAgICAgPGduLXVpLWV4dGVybmFsLXZpZXdlci1idXR0b25cbiAgICAgICAgZXh0cmFDbGFzcz1cInctWzQ0cHhdIGgtWzQ0cHhdXCJcbiAgICAgICAgW2xpbmtdPVwic2VsZWN0ZWRMaW5rJCB8IGFzeW5jXCJcbiAgICAgID5cbiAgICAgIDwvZ24tdWktZXh0ZXJuYWwtdmlld2VyLWJ1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJoaWRlUHJldmlldzsgZWxzZSBtYXBWaWV3XCI+XG4gICAgPGduLXVpLXBvcHVwLWFsZXJ0XG4gICAgICB0eXBlPVwid2FybmluZ1wiXG4gICAgICBpY29uPVwibWF0RXJyb3JPdXRsaW5lT3V0bGluZVwiXG4gICAgICBjbGFzcz1cImJsb2NrIGgtMTIgcC0xXCJcbiAgICA+XG4gICAgICA8c3BhbiB0cmFuc2xhdGU+cmVjb3JkLmZlYXR1cmUubGltaXQ8L3NwYW4+XG4gICAgPC9nbi11aS1wb3B1cC1hbGVydD5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy10ZW1wbGF0ZSAjbWFwVmlldz5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInJlbGF0aXZlIHctZnVsbCBoLWZ1bGwgYmctd2hpdGUgYm9yZGVyIGJvcmRlci1ncmF5LTMwMCByb3VuZGVkLWxnIG92ZXJmbG93LWhpZGRlblwiXG4gICAgPlxuICAgICAgPGduLXVpLW1hcC1jb250YWluZXJcbiAgICAgICAgI21hcENvbnRhaW5lclxuICAgICAgICBbY29udGV4dF09XCJtYXBDb250ZXh0JCB8IGFzeW5jXCJcbiAgICAgICAgKGZlYXR1cmVzQ2xpY2spPVwib25NYXBGZWF0dXJlU2VsZWN0KCRldmVudClcIlxuICAgICAgICAoc291cmNlTG9hZEVycm9yKT1cIm9uU291cmNlTG9hZEVycm9yKCRldmVudClcIlxuICAgICAgPjwvZ24tdWktbWFwLWNvbnRhaW5lcj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0b3AtWzFlbV0gcmlnaHQtWzFlbV0gcC0zIGJnLXdoaXRlIGFic29sdXRlIG92ZXJmbG93LXktYXV0byBvdmVyZmxvdy14LWhpZGRlbiBtYXgtaC03MiB3LTU2XCJcbiAgICAgICAgW2NsYXNzLmhpZGRlbl09XCIhc2VsZWN0aW9uXCJcbiAgICAgID5cbiAgICAgICAgPGduLXVpLWJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJsaWdodFwiXG4gICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInJlc2V0U2VsZWN0aW9uKClcIlxuICAgICAgICAgIHN0eWxlPVwiXG4gICAgICAgICAgICAtLWduLXVpLWJ1dHRvbi1wYWRkaW5nOiAwcHg7XG4gICAgICAgICAgICAtLWduLXVpLWJ1dHRvbi13aWR0aDogMjRweDtcbiAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLWhlaWdodDogMjRweDtcbiAgICAgICAgICBcIlxuICAgICAgICAgIGV4dHJhQ2xhc3M9XCJhYnNvbHV0ZSByaWdodC1bMC41ZW1dIG1sLVs4cHhdIG1yLVsxMHB4XVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctaWNvbiBuYW1lPVwibWF0Q2xvc2VcIiBjbGFzcz1cImFsaWduLW1pZGRsZSB0ZXh0LXNtXCI+PC9uZy1pY29uPlxuICAgICAgICA8L2duLXVpLWJ1dHRvbj5cbiAgICAgICAgPGduLXVpLWZlYXR1cmUtZGV0YWlsXG4gICAgICAgICAgW2ZlYXR1cmVDYXRhbG9nXT1cIm1kVmlld0ZhY2FkZS5mZWF0dXJlQ2F0YWxvZyQgfCBhc3luY1wiXG4gICAgICAgICAgW2ZlYXR1cmVdPVwic2VsZWN0aW9uXCJcbiAgICAgICAgPjwvZ24tdWktZmVhdHVyZS1kZXRhaWw+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRvcC1bMWVtXSBwLTMgYmctd2hpdGUgYWJzb2x1dGUgb3ZlcmZsb3cteS1hdXRvIG92ZXJmbG93LXgtaGlkZGVuIG1heC1oLTcyIHctNTZcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICdyaWdodC1bMWVtXSc6ICFzZWxlY3Rpb24sICdyaWdodC1bMTZlbV0nOiBzZWxlY3Rpb24gfVwiXG4gICAgICAgIFtoaWRkZW5dPVwiIXNob3dMZWdlbmQgfHwgIWxlZ2VuZEV4aXN0c1wiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgbWItMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXByaW1hcnkgZm9udC1ib2xkXCIgdHJhbnNsYXRlPm1hcC5sZWdlbmQudGl0bGU8L2Rpdj5cbiAgICAgICAgICA8Z24tdWktYnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwibGlnaHRcIlxuICAgICAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZUxlZ2VuZCgpXCJcbiAgICAgICAgICAgIHN0eWxlPVwiXG4gICAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLXBhZGRpbmc6IDBweDtcbiAgICAgICAgICAgICAgLS1nbi11aS1idXR0b24td2lkdGg6IDI0cHg7XG4gICAgICAgICAgICAgIC0tZ24tdWktYnV0dG9uLWhlaWdodDogMjRweDtcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBleHRyYUNsYXNzPVwibWwtWzhweF0gbXItWzEwcHhdXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctaWNvbiBuYW1lPVwibWF0Q2xvc2VcIiBjbGFzcz1cImFsaWduLW1pZGRsZSB0ZXh0LXNtXCI+PC9uZy1pY29uPlxuICAgICAgICAgIDwvZ24tdWktYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGduLXVpLW1hcC1sZWdlbmRcbiAgICAgICAgICBbY29udGV4dF09XCJtYXBDb250ZXh0JCB8IGFzeW5jXCJcbiAgICAgICAgICAobGVnZW5kU3RhdHVzQ2hhbmdlKT1cIm9uTGVnZW5kU3RhdHVzQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9nbi11aS1tYXAtbGVnZW5kPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxnbi11aS1idXR0b25cbiAgICAgICAgKm5nSWY9XCIhc2hvd0xlZ2VuZCAmJiBsZWdlbmRFeGlzdHMgJiYgIXNlbGVjdGlvblwiXG4gICAgICAgIHR5cGU9XCJvdXRsaW5lXCJcbiAgICAgICAgKGJ1dHRvbkNsaWNrKT1cInRvZ2dsZUxlZ2VuZCgpXCJcbiAgICAgICAgZXh0cmFDbGFzcz1cImFic29sdXRlIHRvcC1bMWVtXSByaWdodC1bMWVtXSByb3VuZGVkIHAtMSB0ZXh0LXhzIGJnLXdoaXRlXCJcbiAgICAgICAgdHJhbnNsYXRlXG4gICAgICA+XG4gICAgICAgIG1hcC5sZWdlbmQudGl0bGVcbiAgICAgIDwvZ24tdWktYnV0dG9uPlxuXG4gICAgICA8Z24tdWktbG9hZGluZy1tYXNrXG4gICAgICAgICpuZ0lmPVwibG9hZGluZ1wiXG4gICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgaW5zZXQtMFwiXG4gICAgICAgIFttZXNzYWdlXT1cIidtYXAubG9hZGluZy5kYXRhJyB8IHRyYW5zbGF0ZVwiXG4gICAgICA+PC9nbi11aS1sb2FkaW5nLW1hc2s+XG4gICAgICA8Z24tdWktcG9wdXAtYWxlcnRcbiAgICAgICAgKm5nSWY9XCJlcnJvclwiXG4gICAgICAgIHR5cGU9XCJ3YXJuaW5nXCJcbiAgICAgICAgaWNvbj1cIm1hdEVycm9yT3V0bGluZU91dGxpbmVcIlxuICAgICAgICBjbGFzcz1cImFic29sdXRlIG0tMiBpbnNldC0wXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4gdHJhbnNsYXRlPnt7IGVycm9yIH19PC9zcGFuPlxuICAgICAgPC9nbi11aS1wb3B1cC1hbGVydD5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
@@ -1,6 +1,7 @@
1
1
  import * as fromActions from './actions';
2
2
  import { DEFAULT_SEARCH_KEY } from './actions';
3
3
  import { DEFAULT_PAGE_SIZE, FIELDS_SUMMARY } from '../constants';
4
+ import { getOptionalSearchConfig } from '../../../../../../libs/util/app-config/src';
4
5
  export const SEARCH_FEATURE_KEY = 'searchState';
5
6
  export const initSearch = () => {
6
7
  return {
@@ -11,7 +12,9 @@ export const initSearch = () => {
11
12
  },
12
13
  params: {
13
14
  filters: {},
14
- pageSize: DEFAULT_PAGE_SIZE,
15
+ pageSize: getOptionalSearchConfig()?.LIMIT
16
+ ? getOptionalSearchConfig().LIMIT
17
+ : DEFAULT_PAGE_SIZE,
15
18
  currentPage: 0,
16
19
  favoritesOnly: false,
17
20
  useSpatialFilter: true,
@@ -283,4 +286,4 @@ export function reducerSearch(state, action) {
283
286
  }
284
287
  return state;
285
288
  }
286
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9zZWFyY2gvc3JjL2xpYi9zdGF0ZS9yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxXQUFXLE1BQU0sV0FBVyxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQVE5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBR2hFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQTtBQW9DL0MsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEdBQXNCLEVBQUU7SUFDaEQsT0FBTztRQUNMLE1BQU0sRUFBRTtZQUNOLE9BQU8sRUFBRSxFQUFFO1lBQ1gsTUFBTSxFQUFFLGNBQWM7WUFDdEIsWUFBWSxFQUFFLEVBQUU7U0FDakI7UUFDRCxNQUFNLEVBQUU7WUFDTixPQUFPLEVBQUUsRUFBRTtZQUNYLFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsV0FBVyxFQUFFLENBQUM7WUFDZCxhQUFhLEVBQUUsS0FBSztZQUNwQixnQkFBZ0IsRUFBRSxJQUFJO1NBQ3ZCO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsS0FBSyxFQUFFLENBQUM7WUFDUixPQUFPLEVBQUUsRUFBRTtZQUNYLFlBQVksRUFBRSxFQUFFO1NBQ2pCO1FBQ0QsY0FBYyxFQUFFLEtBQUs7UUFDckIsS0FBSyxFQUFFLElBQUk7S0FDWixDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFnQjtJQUN2QyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsVUFBVSxFQUFFO0NBQ25DLENBQUE7QUFFRCxNQUFNLFVBQVUsT0FBTyxDQUNyQixLQUFLLEdBQUcsWUFBWSxFQUNwQixNQUFpQztJQUVqQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdB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S0FBSyxXQUFXLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO1lBQzVDLE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxHQUFHLEtBQUssQ0FBQyxPQUFPO29CQUNoQixZQUFZLEVBQUU7d0JBQ1osR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFlBQVk7d0JBQzdCLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxPQUFPO3FCQUN6QztpQkFDRjthQUNGLENBQUE7UUFDSCxDQUFDO1FBRUQsS0FBSyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUMzQixNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sQ0FBQTtZQUNoQyxPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO2dCQUN4QixjQUFjLEVBQUUsS0FBSzthQUN0QixDQUFBO1FBQ0gsQ0FBQztRQUVELEtBQUssV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7WUFDN0IsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFBO1FBQ0gsQ0FBQztRQUVELEtBQUssV0FBVyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQztZQUM1QyxPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixNQUFNLEVBQUU7b0JBQ04sR0FBRyxLQUFLLENBQUMsTUFBTTtvQkFDZixnQkFBZ0IsRUFBRSxNQUFNLENBQUMsT0FBTztpQkFDakM7YUFDRixDQUFBO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQTtBQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcm9tQWN0aW9ucyBmcm9tICcuL2FjdGlvbnMnXG5pbXBvcnQgeyBERUZBVUxUX1NFQVJDSF9LRVkgfSBmcm9tICcuL2FjdGlvbnMnXG5pbXBvcnQge1xuICBBZ2dyZWdhdGlvbnMsXG4gIEFnZ3JlZ2F0aW9uc1BhcmFtcyxcbiAgRmllbGRGaWx0ZXJzLFxuICBGaWVsZE5hbWUsXG4gIFNvcnRCeUZpZWxkLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9zZWFyY2gnXG5pbXBvcnQgeyBERUZBVUxUX1BBR0VfU0laRSwgRklFTERTX1NVTU1BUlkgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyBDYXRhbG9nUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG5leHBvcnQgY29uc3QgU0VBUkNIX0ZFQVRVUkVfS0VZID0gJ3NlYXJjaFN0YXRlJ1xuXG5leHBvcnQgdHlwZSBTZWFyY2hTdGF0ZVBhcmFtcyA9IHtcbiAgZmlsdGVycz86IEZpZWxkRmlsdGVyc1xuICBjdXJyZW50UGFnZTogbnVtYmVyIC8vIHplcm8tYmFzZWRcbiAgcGFnZVNpemU6IG51bWJlclxuICBzb3J0PzogU29ydEJ5RmllbGRcbiAgZmllbGRzPzogRmllbGROYW1lW11cbiAgZmF2b3JpdGVzT25seT86IGJvb2xlYW5cbiAgdXNlU3BhdGlhbEZpbHRlcj86IGJvb2xlYW5cbn1cblxuZXhwb3J0IHR5cGUgU2VhcmNoRXJyb3IgPSB7XG4gIGNvZGU6IG51bWJlclxuICBtZXNzYWdlOiBzdHJpbmdcbn0gfCBudWxsXG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoU3RhdGVTZWFyY2gge1xuICBjb25maWc6IHtcbiAgICBhZ2dyZWdhdGlvbnM6IEFnZ3JlZ2F0aW9uc1BhcmFtc1xuICAgIGZpbHRlcnM6IEZpZWxkRmlsdGVyc1xuICAgIHNvdXJjZTogRmllbGROYW1lW11cbiAgfVxuICBwYXJhbXM6IFNlYXJjaFN0YXRlUGFyYW1zXG4gIHJlc3VsdHM6IHtcbiAgICBjb3VudDogbnVtYmVyXG4gICAgcmVjb3JkczogQ2F0YWxvZ1JlY29yZFtdXG4gICAgYWdncmVnYXRpb25zOiBBZ2dyZWdhdGlvbnNcbiAgfVxuICByZXN1bHRzTGF5b3V0Pzogc3RyaW5nXG4gIGxvYWRpbmdSZXN1bHRzOiBib29sZWFuXG4gIGVycm9yOiBTZWFyY2hFcnJvclxufVxuXG5leHBvcnQgdHlwZSBTZWFyY2hTdGF0ZSA9IHsgW2tleTogc3RyaW5nXTogU2VhcmNoU3RhdGVTZWFyY2ggfVxuXG5leHBvcnQgY29uc3QgaW5pdFNlYXJjaCA9ICgpOiBTZWFyY2hTdGF0ZVNlYXJjaCA9PiB7XG4gIHJldHVybiB7XG4gICAgY29uZmlnOiB7XG4gICAgICBmaWx0ZXJzOiB7fSxcbiAgICAgIHNvdXJjZTogRklFTERTX1NVTU1BUlksXG4gICAgICBhZ2dyZWdhdGlvbnM6IHt9LFxuICAgIH0sXG4gICAgcGFyYW1zOiB7XG4gICAgICBmaWx0ZXJzOiB7fSxcbiAgICAgIHBhZ2VTaXplOiBERUZBVUxUX1BBR0VfU0laRSxcbiAgICAgIGN1cnJlbnRQYWdlOiAwLFxuICAgICAgZmF2b3JpdGVzT25seTogZmFsc2UsXG4gICAgICB1c2VTcGF0aWFsRmlsdGVyOiB0cnVlLFxuICAgIH0sXG4gICAgcmVzdWx0czoge1xuICAgICAgY291bnQ6IDAsXG4gICAgICByZWNvcmRzOiBbXSxcbiAgICAgIGFnZ3JlZ2F0aW9uczoge30sXG4gICAgfSxcbiAgICBsb2FkaW5nUmVzdWx0czogZmFsc2UsXG4gICAgZXJyb3I6IG51bGwsXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGluaXRpYWxTdGF0ZTogU2VhcmNoU3RhdGUgPSB7XG4gIFtERUZBVUxUX1NFQVJDSF9LRVldOiBpbml0U2VhcmNoKCksXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2VyKFxuICBzdGF0ZSA9IGluaXRpYWxTdGF0ZSxcbiAgYWN0aW9uOiBmcm9tQWN0aW9ucy5TZWFyY2hBY3Rpb25zXG4pOiBTZWFyY2hTdGF0ZSB7XG4gIGNvbnN0IHsgaWQgfSA9IGFjdGlvblxuICBpZiAoaWQpIHtcbiAgICBsZXQgc3RhdGVTZWFyY2ggPSBzdGF0ZVtpZF0gfHwgaW5pdFNlYXJjaCgpXG4gICAgaWYgKGFjdGlvbi50eXBlICE9PSBmcm9tQWN0aW9ucy5BRERfU0VBUkNIKSB7XG4gICAgICBzdGF0ZVNlYXJjaCA9IHJlZHVjZXJTZWFyY2goc3RhdGVTZWFyY2gsIGFjdGlvbilcbiAgICB9XG4gICAgaWYgKHN0YXRlU2VhcmNoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgW2lkXTogc3RhdGVTZWFyY2gsXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBzdGF0ZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVkdWNlclNlYXJjaChcbiAgc3RhdGU6IFNlYXJjaFN0YXRlU2VhcmNoLFxuICBhY3Rpb246IGZyb21BY3Rpb25zLlNlYXJjaEFjdGlvbnNcbik6IFNlYXJjaFN0YXRlU2VhcmNoIHtcbiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgIGNhc2UgZnJvbUFjdGlvbnMuU0VUX0NPTkZJR19GSUxURVJTOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgLi4uc3RhdGUuY29uZmlnLFxuICAgICAgICAgIGZpbHRlcnM6IHsgLi4uYWN0aW9uLnBheWxvYWQgfSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfRklMVEVSUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIC4uLnN0YXRlLnBhcmFtcyxcbiAgICAgICAgICBmaWx0ZXJzOiB7IC4uLmFjdGlvbi5wYXlsb2FkIH0sXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuVVBEQVRFX0ZJTFRFUlM6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5wYXJhbXMsXG4gICAgICAgICAgZmlsdGVyczoge1xuICAgICAgICAgICAgLi4uc3RhdGUucGFyYW1zLmZpbHRlcnMsXG4gICAgICAgICAgICAuLi5hY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlNFVF9TRUFSQ0g6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAuLi5hY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfU09SVF9CWToge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIC4uLnN0YXRlLnBhcmFtcyxcbiAgICAgICAgICBzb3J0OiBhY3Rpb24uc29ydEJ5LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlNFVF9GQVZPUklURVNfT05MWToge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIC4uLnN0YXRlLnBhcmFtcyxcbiAgICAgICAgICBmYXZvcml0ZXNPbmx5OiBhY3Rpb24uZmF2b3JpdGVzT25seSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfUEFHRV9TSVpFOiB7XG4gICAgICBjb25zdCB7IGxpbWl0IH0gPSBhY3Rpb25cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5wYXJhbXMsXG4gICAgICAgICAgcGFnZVNpemU6IGxpbWl0LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlBBR0lOQVRFOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgLi4uc3RhdGUucGFyYW1zLFxuICAgICAgICAgIGN1cnJlbnRQYWdlOiBhY3Rpb24ucGFnZU51bWJlciAtIDEsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuU0VUX1JFU1VMVFNfTEFZT1VUOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcmVzdWx0c0xheW91dDogYWN0aW9uLnJlc3VsdHNMYXlvdXQsXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuQUREX1JFU1VMVFM6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICByZXN1bHRzOiB7XG4gICAgICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgICAgICByZWNvcmRzOiBbLi4uc3RhdGUucmVzdWx0cy5yZWNvcmRzLCAuLi5hY3Rpb24ucGF5bG9hZF0sXG4gICAgICAgIH0sXG4gICAgICAgIGxvYWRpbmdSZXN1bHRzOiBmYWxzZSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5DTEVBUl9SRVNVTFRTOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcmVzdWx0czoge1xuICAgICAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICAgICAgcmVjb3JkczogW10sXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuUkVRVUVTVF9NT1JFX1JFU1VMVFM6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5wYXJhbXMsXG4gICAgICAgICAgY3VycmVudFBhZ2U6IHN0YXRlLnBhcmFtcy5jdXJyZW50UGFnZSArIDEsXG4gICAgICAgIH0sXG4gICAgICAgIGxvYWRpbmdSZXN1bHRzOiB0cnVlLFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlJFUVVFU1RfTkVXX1JFU1VMVFM6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBsb2FkaW5nUmVzdWx0czogdHJ1ZSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfUkVTVUxUU19ISVRTOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcmVzdWx0czoge1xuICAgICAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICAgICAgY291bnQ6IGFjdGlvbi5wYXlsb2FkLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlNFVF9SRVNVTFRTX0FHR1JFR0FUSU9OUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJlc3VsdHM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICAgIGFnZ3JlZ2F0aW9uczogYWN0aW9uLnBheWxvYWQsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuU0VUX0NPTkZJR19BR0dSRUdBVElPTlM6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5jb25maWcsXG4gICAgICAgICAgYWdncmVnYXRpb25zOiBhY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5VUERBVEVfQ09ORklHX0FHR1JFR0FUSU9OUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIC4uLnN0YXRlLmNvbmZpZyxcbiAgICAgICAgICBhZ2dyZWdhdGlvbnM6IHsgLi4uc3RhdGUuY29uZmlnLmFnZ3JlZ2F0aW9ucywgLi4uYWN0aW9uLnBheWxvYWQgfSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfQ09ORklHX1JFUVVFU1RfRklFTERTOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgLi4uc3RhdGUuY29uZmlnLFxuICAgICAgICAgIHNvdXJjZTogYWN0aW9uLnBheWxvYWQsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuUkVRVUVTVF9NT1JFX09OX0FHR1JFR0FUSU9OOiB7XG4gICAgICBjb25zdCBjb25maWcgPSBzdGF0ZS5jb25maWdcbiAgICAgIGNvbnN0IGFnZ3JlZ2F0aW9uID0gY29uZmlnLmFnZ3JlZ2F0aW9uc1thY3Rpb24uYWdncmVnYXRpb25OYW1lXVxuICAgICAgaWYgKGFnZ3JlZ2F0aW9uLnR5cGUgIT09ICd0ZXJtcycpIHJldHVybiBzdGF0ZVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIC4uLmNvbmZpZyxcbiAgICAgICAgICBhZ2dyZWdhdGlvbnM6IHtcbiAgICAgICAgICAgIC4uLmNvbmZpZy5hZ2dyZWdhdGlvbnMsXG4gICAgICAgICAgICBbYWN0aW9uLmFnZ3JlZ2F0aW9uTmFtZV06IHtcbiAgICAgICAgICAgICAgLi4uYWdncmVnYXRpb24sXG4gICAgICAgICAgICAgIGxpbWl0OiBhZ2dyZWdhdGlvbi5saW1pdCArIGFjdGlvbi5pbmNyZW1lbnQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuU0VUX0lOQ0xVREVfT05fQUdHUkVHQVRJT046IHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHN0YXRlLmNvbmZpZ1xuICAgICAgY29uc3QgYWdncmVnYXRpb24gPSBjb25maWcuYWdncmVnYXRpb25zW2FjdGlvbi5hZ2dyZWdhdGlvbk5hbWVdXG4gICAgICBpZiAoYWdncmVnYXRpb24udHlwZSAhPT0gJ3Rlcm1zJykgcmV0dXJuIHN0YXRlXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgIGFnZ3JlZ2F0aW9uczoge1xuICAgICAgICAgICAgLi4uY29uZmlnLmFnZ3JlZ2F0aW9ucyxcbiAgICAgICAgICAgIFthY3Rpb24uYWdncmVnYXRpb25OYW1lXToge1xuICAgICAgICAgICAgICAuLi5hZ2dyZWdhdGlvbixcbiAgICAgICAgICAgICAgZmlsdGVyOiBhY3Rpb24uaW5jbHVkZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5QQVRDSF9SRVNVTFRTX0FHR1JFR0FUSU9OUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJlc3VsdHM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICAgIGFnZ3JlZ2F0aW9uczoge1xuICAgICAgICAgICAgLi4uc3RhdGUucmVzdWx0cy5hZ2dyZWdhdGlvbnMsXG4gICAgICAgICAgICBbYWN0aW9uLmFnZ3JlZ2F0aW9uTmFtZV06IGFjdGlvbi5wYXlsb2FkLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfRVJST1I6IHtcbiAgICAgIGNvbnN0IHsgY29kZSwgbWVzc2FnZSB9ID0gYWN0aW9uXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgZXJyb3I6IHsgY29kZSwgbWVzc2FnZSB9LFxuICAgICAgICBsb2FkaW5nUmVzdWx0czogZmFsc2UsXG4gICAgICB9XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tQWN0aW9ucy5DTEVBUl9FUlJPUjoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgfVxuICAgIH1cblxuICAgIGNhc2UgZnJvbUFjdGlvbnMuU0VUX1NQQVRJQUxfRklMVEVSX0VOQUJMRUQ6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5wYXJhbXMsXG4gICAgICAgICAgdXNlU3BhdGlhbEZpbHRlcjogYWN0aW9uLmVuYWJsZWQsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlXG59XG4iXX0=
289
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9zZWFyY2gvc3JjL2xpYi9zdGF0ZS9yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxXQUFXLE1BQU0sV0FBVyxDQUFBO0FBQ3hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQVE5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ2hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFBO0FBR3BGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLGFBQWEsQ0FBQTtBQW9DL0MsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEdBQXNCLEVBQUU7SUFDaEQsT0FBTztRQUNMLE1BQU0sRUFBRTtZQUNOLE9BQU8sRUFBRSxFQUFFO1lBQ1gsTUFBTSxFQUFFLGNBQWM7WUFDdEIsWUFBWSxFQUFFLEVBQUU7U0FDakI7UUFDRCxNQUFNLEVBQUU7WUFDTixPQUFPLEVBQUUsRUFBRTtZQUNYLFFBQVEsRUFBRSx1QkFBdUIsRUFBRSxFQUFFLEtBQUs7Z0JBQ3hDLENBQUMsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLEtBQUs7Z0JBQ2pDLENBQUMsQ0FBQyxpQkFBaUI7WUFDckIsV0FBVyxFQUFFLENBQUM7WUFDZCxhQUFhLEVBQUUsS0FBSztZQUNwQixnQkFBZ0IsRUFBRSxJQUFJO1NBQ3ZCO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsS0FBSyxFQUFFLENBQUM7WUFDUixPQUFPLEVBQUUsRUFBRTtZQUNYLFlBQVksRUFBRSxFQUFFO1NBQ2pCO1FBQ0QsY0FBYyxFQUFFLEtBQUs7UUFDckIsS0FBSyxFQUFFLElBQUk7S0FDWixDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFnQjtJQUN2QyxD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dGVudCI6WyJpbXBvcnQgKiBhcyBmcm9tQWN0aW9ucyBmcm9tICcuL2FjdGlvbnMnXG5pbXBvcnQgeyBERUZBVUxUX1NFQVJDSF9LRVkgfSBmcm9tICcuL2FjdGlvbnMnXG5pbXBvcnQge1xuICBBZ2dyZWdhdGlvbnMsXG4gIEFnZ3JlZ2F0aW9uc1BhcmFtcyxcbiAgRmllbGRGaWx0ZXJzLFxuICBGaWVsZE5hbWUsXG4gIFNvcnRCeUZpZWxkLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9zZWFyY2gnXG5pbXBvcnQgeyBERUZBVUxUX1BBR0VfU0laRSwgRklFTERTX1NVTU1BUlkgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyBnZXRPcHRpb25hbFNlYXJjaENvbmZpZyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9hcHAtY29uZmlnL3NyYydcbmltcG9ydCB7IENhdGFsb2dSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5cbmV4cG9ydCBjb25zdCBTRUFSQ0hfRkVBVFVSRV9LRVkgPSAnc2VhcmNoU3RhdGUnXG5cbmV4cG9ydCB0eXBlIFNlYXJjaFN0YXRlUGFyYW1zID0ge1xuICBmaWx0ZXJzPzogRmllbGRGaWx0ZXJzXG4gIGN1cnJlbnRQYWdlOiBudW1iZXIgLy8gemVyby1iYXNlZFxuICBwYWdlU2l6ZTogbnVtYmVyXG4gIHNvcnQ/OiBTb3J0QnlGaWVsZFxuICBmaWVsZHM/OiBGaWVsZE5hbWVbXVxuICBmYXZvcml0ZXNPbmx5PzogYm9vbGVhblxuICB1c2VTcGF0aWFsRmlsdGVyPzogYm9vbGVhblxufVxuXG5leHBvcnQgdHlwZSBTZWFyY2hFcnJvciA9IHtcbiAgY29kZTogbnVtYmVyXG4gIG1lc3NhZ2U6IHN0cmluZ1xufSB8IG51bGxcblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hTdGF0ZVNlYXJjaCB7XG4gIGNvbmZpZzoge1xuICAgIGFnZ3JlZ2F0aW9uczogQWdncmVnYXRpb25zUGFyYW1zXG4gICAgZmlsdGVyczogRmllbGRGaWx0ZXJzXG4gICAgc291cmNlOiBGaWVsZE5hbWVbXVxuICB9XG4gIHBhcmFtczogU2VhcmNoU3RhdGVQYXJhbXNcbiAgcmVzdWx0czoge1xuICAgIGNvdW50OiBudW1iZXJcbiAgICByZWNvcmRzOiBDYXRhbG9nUmVjb3JkW11cbiAgICBhZ2dyZWdhdGlvbnM6IEFnZ3JlZ2F0aW9uc1xuICB9XG4gIHJlc3VsdHNMYXlvdXQ/OiBzdHJpbmdcbiAgbG9hZGluZ1Jlc3VsdHM6IGJvb2xlYW5cbiAgZXJyb3I6IFNlYXJjaEVycm9yXG59XG5cbmV4cG9ydCB0eXBlIFNlYXJjaFN0YXRlID0geyBba2V5OiBzdHJpbmddOiBTZWFyY2hTdGF0ZVNlYXJjaCB9XG5cbmV4cG9ydCBjb25zdCBpbml0U2VhcmNoID0gKCk6IFNlYXJjaFN0YXRlU2VhcmNoID0+IHtcbiAgcmV0dXJuIHtcbiAgICBjb25maWc6IHtcbiAgICAgIGZpbHRlcnM6IHt9LFxuICAgICAgc291cmNlOiBGSUVMRFNfU1VNTUFSWSxcbiAgICAgIGFnZ3JlZ2F0aW9uczoge30sXG4gICAgfSxcbiAgICBwYXJhbXM6IHtcbiAgICAgIGZpbHRlcnM6IHt9LFxuICAgICAgcGFnZVNpemU6IGdldE9wdGlvbmFsU2VhcmNoQ29uZmlnKCk/LkxJTUlUXG4gICAgICAgID8gZ2V0T3B0aW9uYWxTZWFyY2hDb25maWcoKS5MSU1JVFxuICAgICAgICA6IERFRkFVTFRfUEFHRV9TSVpFLFxuICAgICAgY3VycmVudFBhZ2U6IDAsXG4gICAgICBmYXZvcml0ZXNPbmx5OiBmYWxzZSxcbiAgICAgIHVzZVNwYXRpYWxGaWx0ZXI6IHRydWUsXG4gICAgfSxcbiAgICByZXN1bHRzOiB7XG4gICAgICBjb3VudDogMCxcbiAgICAgIHJlY29yZHM6IFtdLFxuICAgICAgYWdncmVnYXRpb25zOiB7fSxcbiAgICB9LFxuICAgIGxvYWRpbmdSZXN1bHRzOiBmYWxzZSxcbiAgICBlcnJvcjogbnVsbCxcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgaW5pdGlhbFN0YXRlOiBTZWFyY2hTdGF0ZSA9IHtcbiAgW0RFRkFVTFRfU0VBUkNIX0tFWV06IGluaXRTZWFyY2goKSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlZHVjZXIoXG4gIHN0YXRlID0gaW5pdGlhbFN0YXRlLFxuICBhY3Rpb246IGZyb21BY3Rpb25zLlNlYXJjaEFjdGlvbnNcbik6IFNlYXJjaFN0YXRlIHtcbiAgY29uc3QgeyBpZCB9ID0gYWN0aW9uXG4gIGlmIChpZCkge1xuICAgIGxldCBzdGF0ZVNlYXJjaCA9IHN0YXRlW2lkXSB8fCBpbml0U2VhcmNoKClcbiAgICBpZiAoYWN0aW9uLnR5cGUgIT09IGZyb21BY3Rpb25zLkFERF9TRUFSQ0gpIHtcbiAgICAgIHN0YXRlU2VhcmNoID0gcmVkdWNlclNlYXJjaChzdGF0ZVNlYXJjaCwgYWN0aW9uKVxuICAgIH1cbiAgICBpZiAoc3RhdGVTZWFyY2gpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBbaWRdOiBzdGF0ZVNlYXJjaCxcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHN0YXRlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWR1Y2VyU2VhcmNoKFxuICBzdGF0ZTogU2VhcmNoU3RhdGVTZWFyY2gsXG4gIGFjdGlvbjogZnJvbUFjdGlvbnMuU2VhcmNoQWN0aW9uc1xuKTogU2VhcmNoU3RhdGVTZWFyY2gge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfQ09ORklHX0ZJTFRFUlM6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5jb25maWcsXG4gICAgICAgICAgZmlsdGVyczogeyAuLi5hY3Rpb24ucGF5bG9hZCB9LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlNFVF9GSUxURVJTOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgLi4uc3RhdGUucGFyYW1zLFxuICAgICAgICAgIGZpbHRlcnM6IHsgLi4uYWN0aW9uLnBheWxvYWQgfSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5VUERBVEVfRklMVEVSUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIC4uLnN0YXRlLnBhcmFtcyxcbiAgICAgICAgICBmaWx0ZXJzOiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5wYXJhbXMuZmlsdGVycyxcbiAgICAgICAgICAgIC4uLmFjdGlvbi5wYXlsb2FkLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuU0VUX1NFQVJDSDoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIC4uLmFjdGlvbi5wYXlsb2FkLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlNFVF9TT1JUX0JZOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgLi4uc3RhdGUucGFyYW1zLFxuICAgICAgICAgIHNvcnQ6IGFjdGlvbi5zb3J0QnksXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuU0VUX0ZBVk9SSVRFU19PTkxZOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcGFyYW1zOiB7XG4gICAgICAgICAgLi4uc3RhdGUucGFyYW1zLFxuICAgICAgICAgIGZhdm9yaXRlc09ubHk6IGFjdGlvbi5mYXZvcml0ZXNPbmx5LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlNFVF9QQUdFX1NJWkU6IHtcbiAgICAgIGNvbnN0IHsgbGltaXQgfSA9IGFjdGlvblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIC4uLnN0YXRlLnBhcmFtcyxcbiAgICAgICAgICBwYWdlU2l6ZTogbGltaXQsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuUEFHSU5BVEU6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBwYXJhbXM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5wYXJhbXMsXG4gICAgICAgICAgY3VycmVudFBhZ2U6IGFjdGlvbi5wYWdlTnVtYmVyIC0gMSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfUkVTVUxUU19MQVlPVVQ6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICByZXN1bHRzTGF5b3V0OiBhY3Rpb24ucmVzdWx0c0xheW91dCxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5BRERfUkVTVUxUUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHJlc3VsdHM6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLFxuICAgICAgICAgIHJlY29yZHM6IFsuLi5zdGF0ZS5yZXN1bHRzLnJlY29yZHMsIC4uLmFjdGlvbi5wYXlsb2FkXSxcbiAgICAgICAgfSxcbiAgICAgICAgbG9hZGluZ1Jlc3VsdHM6IGZhbHNlLFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLkNMRUFSX1JFU1VMVFM6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICByZXN1bHRzOiB7XG4gICAgICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgICAgICByZWNvcmRzOiBbXSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5SRVFVRVNUX01PUkVfUkVTVUxUUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIC4uLnN0YXRlLnBhcmFtcyxcbiAgICAgICAgICBjdXJyZW50UGFnZTogc3RhdGUucGFyYW1zLmN1cnJlbnRQYWdlICsgMSxcbiAgICAgICAgfSxcbiAgICAgICAgbG9hZGluZ1Jlc3VsdHM6IHRydWUsXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuUkVRVUVTVF9ORVdfUkVTVUxUUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGxvYWRpbmdSZXN1bHRzOiB0cnVlLFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlNFVF9SRVNVTFRTX0hJVFM6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICByZXN1bHRzOiB7XG4gICAgICAgICAgLi4uc3RhdGUucmVzdWx0cyxcbiAgICAgICAgICBjb3VudDogYWN0aW9uLnBheWxvYWQsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgZnJvbUFjdGlvbnMuU0VUX1JFU1VMVFNfQUdHUkVHQVRJT05TOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcmVzdWx0czoge1xuICAgICAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICAgICAgYWdncmVnYXRpb25zOiBhY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfQ09ORklHX0FHR1JFR0FUSU9OUzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIC4uLnN0YXRlLmNvbmZpZyxcbiAgICAgICAgICBhZ2dyZWdhdGlvbnM6IGFjdGlvbi5wYXlsb2FkLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlVQREFURV9DT05GSUdfQUdHUkVHQVRJT05TOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgLi4uc3RhdGUuY29uZmlnLFxuICAgICAgICAgIGFnZ3JlZ2F0aW9uczogeyAuLi5zdGF0ZS5jb25maWcuYWdncmVnYXRpb25zLCAuLi5hY3Rpb24ucGF5bG9hZCB9LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlNFVF9DT05GSUdfUkVRVUVTVF9GSUVMRFM6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAuLi5zdGF0ZS5jb25maWcsXG4gICAgICAgICAgc291cmNlOiBhY3Rpb24ucGF5bG9hZCxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5SRVFVRVNUX01PUkVfT05fQUdHUkVHQVRJT046IHtcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHN0YXRlLmNvbmZpZ1xuICAgICAgY29uc3QgYWdncmVnYXRpb24gPSBjb25maWcuYWdncmVnYXRpb25zW2FjdGlvbi5hZ2dyZWdhdGlvbk5hbWVdXG4gICAgICBpZiAoYWdncmVnYXRpb24udHlwZSAhPT0gJ3Rlcm1zJykgcmV0dXJuIHN0YXRlXG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgLi4uY29uZmlnLFxuICAgICAgICAgIGFnZ3JlZ2F0aW9uczoge1xuICAgICAgICAgICAgLi4uY29uZmlnLmFnZ3JlZ2F0aW9ucyxcbiAgICAgICAgICAgIFthY3Rpb24uYWdncmVnYXRpb25OYW1lXToge1xuICAgICAgICAgICAgICAuLi5hZ2dyZWdhdGlvbixcbiAgICAgICAgICAgICAgbGltaXQ6IGFnZ3JlZ2F0aW9uLmxpbWl0ICsgYWN0aW9uLmluY3JlbWVudCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfSU5DTFVERV9PTl9BR0dSRUdBVElPTjoge1xuICAgICAgY29uc3QgY29uZmlnID0gc3RhdGUuY29uZmlnXG4gICAgICBjb25zdCBhZ2dyZWdhdGlvbiA9IGNvbmZpZy5hZ2dyZWdhdGlvbnNbYWN0aW9uLmFnZ3JlZ2F0aW9uTmFtZV1cbiAgICAgIGlmIChhZ2dyZWdhdGlvbi50eXBlICE9PSAndGVybXMnKSByZXR1cm4gc3RhdGVcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAuLi5jb25maWcsXG4gICAgICAgICAgYWdncmVnYXRpb25zOiB7XG4gICAgICAgICAgICAuLi5jb25maWcuYWdncmVnYXRpb25zLFxuICAgICAgICAgICAgW2FjdGlvbi5hZ2dyZWdhdGlvbk5hbWVdOiB7XG4gICAgICAgICAgICAgIC4uLmFnZ3JlZ2F0aW9uLFxuICAgICAgICAgICAgICBmaWx0ZXI6IGFjdGlvbi5pbmNsdWRlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cbiAgICBjYXNlIGZyb21BY3Rpb25zLlBBVENIX1JFU1VMVFNfQUdHUkVHQVRJT05TOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgcmVzdWx0czoge1xuICAgICAgICAgIC4uLnN0YXRlLnJlc3VsdHMsXG4gICAgICAgICAgYWdncmVnYXRpb25zOiB7XG4gICAgICAgICAgICAuLi5zdGF0ZS5yZXN1bHRzLmFnZ3JlZ2F0aW9ucyxcbiAgICAgICAgICAgIFthY3Rpb24uYWdncmVnYXRpb25OYW1lXTogYWN0aW9uLnBheWxvYWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjYXNlIGZyb21BY3Rpb25zLlNFVF9FUlJPUjoge1xuICAgICAgY29uc3QgeyBjb2RlLCBtZXNzYWdlIH0gPSBhY3Rpb25cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBlcnJvcjogeyBjb2RlLCBtZXNzYWdlIH0sXG4gICAgICAgIGxvYWRpbmdSZXN1bHRzOiBmYWxzZSxcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjYXNlIGZyb21BY3Rpb25zLkNMRUFSX0VSUk9SOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICB9XG4gICAgfVxuXG4gICAgY2FzZSBmcm9tQWN0aW9ucy5TRVRfU1BBVElBTF9GSUxURVJfRU5BQkxFRDoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHBhcmFtczoge1xuICAgICAgICAgIC4uLnN0YXRlLnBhcmFtcyxcbiAgICAgICAgICB1c2VTcGF0aWFsRmlsdGVyOiBhY3Rpb24uZW5hYmxlZCxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gc3RhdGVcbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, } from '@angular/core';
2
2
  import { TranslateDirective, TranslateService } from '@ngx-translate/core';
3
3
  import { marker } from '@biesbjerg/ngx-translate-extract-marker';
4
- import { getBadgeColor, getFileFormat } from '../../../../../../libs/util/shared/src';
4
+ import { getBadgeColor, getFileFormat, getIsMobile, } from '../../../../../../libs/util/shared/src';
5
5
  import { CommonModule } from '@angular/common';
6
6
  import { ButtonComponent } from '../../../../../../libs/ui/inputs/src';
7
7
  import { DownloadItemComponent } from '../download-item/download-item.component';
@@ -16,6 +16,7 @@ export class DownloadsListComponent {
16
16
  constructor(translateService, changeDetector) {
17
17
  this.translateService = translateService;
18
18
  this.changeDetector = changeDetector;
19
+ this.isMobile$ = getIsMobile();
19
20
  this.activeFilterFormats = ['all'];
20
21
  }
21
22
  get linksCount() {
@@ -103,7 +104,7 @@ export class DownloadsListComponent {
103
104
  link.accessServiceProtocol === 'ogcFeatures'));
104
105
  }
105
106
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DownloadsListComponent, deps: [{ token: i1.TranslateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
106
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DownloadsListComponent, isStandalone: true, selector: "gn-ui-downloads-list", inputs: { links: "links" }, ngImport: i0, template: "<div\n class=\"flex flex-wrap justify-between items-center pb-4\"\n *ngIf=\"links && links.length > 0\"\n>\n <div class=\"flex flex-row items-center gap-x-4\">\n <div>\n <h3\n class=\"inline-block font-title text-xl text-title font-medium mr-4\"\n translate\n >\n record.metadata.download\n </h3>\n <span class=\"px-3\">({{ linksCount }})</span>\n </div>\n <gn-ui-previous-next-buttons\n class=\"md:block hidden\"\n *ngIf=\"_list?.pagesCount > 1\"\n [listComponent]=\"_list\"\n ></gn-ui-previous-next-buttons>\n </div>\n\n <div\n class=\"flex flex-wrap justify-start sm:justify-end\"\n data-cy=\"download-format-filters\"\n >\n <gn-ui-button\n class=\"m-1 format-filter\"\n [extraClass]=\"\n '!px-[12px] !py-[8px] !text-[15px]' +\n (isFilterActive(format) ? ' opacity-100' : ' opacity-60')\n \"\n (buttonClick)=\"toggleFilterFormat(format)\"\n [attr.data-format]=\"format\"\n *ngFor=\"let format of visibleFormats\"\n >\n {{ getFilterFormatTitle(format) }}\n </gn-ui-button>\n </div>\n</div>\n\n<ng-container>\n <gn-ui-block-list\n class=\"md:block hidden\"\n #blockList\n (listChanges)=\"updateList($event)\"\n containerClass=\"gap-4 pt-5 pb-7\"\n >\n <gn-ui-download-item\n #block\n *ngFor=\"let link of filteredLinks\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n [size]=\"blockList.subComponentSize\"\n ></gn-ui-download-item>\n </gn-ui-block-list>\n</ng-container>\n\n<div class=\"mb-5 md:hidden block\" *ngFor=\"let link of filteredLinks\">\n <gn-ui-download-item\n size=\"M\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n ></gn-ui-download-item>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: BlockListComponent, selector: "gn-ui-block-list", inputs: ["containerClass", "paginationContainerClass"], outputs: ["listChanges"] }, { kind: "component", type: DownloadItemComponent, selector: "gn-ui-download-item", inputs: ["link", "color", "format", "isFromApi", "size"], outputs: ["exportUrl"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: PreviousNextButtonsComponent, selector: "gn-ui-previous-next-buttons", inputs: ["listComponent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
107
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DownloadsListComponent, isStandalone: true, selector: "gn-ui-downloads-list", inputs: { links: "links" }, ngImport: i0, template: "<div\n class=\"flex flex-wrap justify-between items-center pb-4\"\n *ngIf=\"links && links.length > 0\"\n>\n <div class=\"flex flex-row items-center gap-x-4\">\n <div>\n <h3\n class=\"inline-block font-title text-xl text-title font-medium mr-4\"\n translate\n >\n record.metadata.download\n </h3>\n <span class=\"px-3\">({{ linksCount }})</span>\n </div>\n <gn-ui-previous-next-buttons\n *ngIf=\"(isMobile$ | async) === false && _list?.pagesCount > 1\"\n [listComponent]=\"_list\"\n ></gn-ui-previous-next-buttons>\n </div>\n\n <div\n class=\"flex flex-wrap justify-start sm:justify-end\"\n data-cy=\"download-format-filters\"\n >\n <gn-ui-button\n class=\"m-1 format-filter\"\n [extraClass]=\"\n '!px-[12px] !py-[8px] !text-[15px]' +\n (isFilterActive(format) ? ' opacity-100' : ' opacity-60')\n \"\n (buttonClick)=\"toggleFilterFormat(format)\"\n [attr.data-format]=\"format\"\n *ngFor=\"let format of visibleFormats\"\n >\n {{ getFilterFormatTitle(format) }}\n </gn-ui-button>\n </div>\n</div>\n\n<ng-container>\n <gn-ui-block-list\n *ngIf=\"(isMobile$ | async) === false\"\n #blockList\n (listChanges)=\"updateList($event)\"\n containerClass=\"gap-4 pt-5 pb-7\"\n >\n <gn-ui-download-item\n #block\n *ngFor=\"let link of filteredLinks\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n [size]=\"blockList.subComponentSize\"\n ></gn-ui-download-item>\n </gn-ui-block-list>\n</ng-container>\n\n<div class=\"mb-5\" *ngFor=\"let link of filteredLinks\">\n <ng-container *ngIf=\"(isMobile$ | async) === true\">\n <gn-ui-download-item\n size=\"M\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n ></gn-ui-download-item>\n </ng-container>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "component", type: BlockListComponent, selector: "gn-ui-block-list", inputs: ["containerClass", "paginationContainerClass"], outputs: ["listChanges"] }, { kind: "component", type: DownloadItemComponent, selector: "gn-ui-download-item", inputs: ["link", "color", "format", "isFromApi", "size"], outputs: ["exportUrl"] }, { kind: "directive", type: TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: PreviousNextButtonsComponent, selector: "gn-ui-previous-next-buttons", inputs: ["listComponent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
107
108
  }
108
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DownloadsListComponent, decorators: [{
109
110
  type: Component,
@@ -114,8 +115,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
114
115
  DownloadItemComponent,
115
116
  TranslateDirective,
116
117
  PreviousNextButtonsComponent,
117
- ], template: "<div\n class=\"flex flex-wrap justify-between items-center pb-4\"\n *ngIf=\"links && links.length > 0\"\n>\n <div class=\"flex flex-row items-center gap-x-4\">\n <div>\n <h3\n class=\"inline-block font-title text-xl text-title font-medium mr-4\"\n translate\n >\n record.metadata.download\n </h3>\n <span class=\"px-3\">({{ linksCount }})</span>\n </div>\n <gn-ui-previous-next-buttons\n class=\"md:block hidden\"\n *ngIf=\"_list?.pagesCount > 1\"\n [listComponent]=\"_list\"\n ></gn-ui-previous-next-buttons>\n </div>\n\n <div\n class=\"flex flex-wrap justify-start sm:justify-end\"\n data-cy=\"download-format-filters\"\n >\n <gn-ui-button\n class=\"m-1 format-filter\"\n [extraClass]=\"\n '!px-[12px] !py-[8px] !text-[15px]' +\n (isFilterActive(format) ? ' opacity-100' : ' opacity-60')\n \"\n (buttonClick)=\"toggleFilterFormat(format)\"\n [attr.data-format]=\"format\"\n *ngFor=\"let format of visibleFormats\"\n >\n {{ getFilterFormatTitle(format) }}\n </gn-ui-button>\n </div>\n</div>\n\n<ng-container>\n <gn-ui-block-list\n class=\"md:block hidden\"\n #blockList\n (listChanges)=\"updateList($event)\"\n containerClass=\"gap-4 pt-5 pb-7\"\n >\n <gn-ui-download-item\n #block\n *ngFor=\"let link of filteredLinks\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n [size]=\"blockList.subComponentSize\"\n ></gn-ui-download-item>\n </gn-ui-block-list>\n</ng-container>\n\n<div class=\"mb-5 md:hidden block\" *ngFor=\"let link of filteredLinks\">\n <gn-ui-download-item\n size=\"M\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n ></gn-ui-download-item>\n</div>\n" }]
118
+ ], template: "<div\n class=\"flex flex-wrap justify-between items-center pb-4\"\n *ngIf=\"links && links.length > 0\"\n>\n <div class=\"flex flex-row items-center gap-x-4\">\n <div>\n <h3\n class=\"inline-block font-title text-xl text-title font-medium mr-4\"\n translate\n >\n record.metadata.download\n </h3>\n <span class=\"px-3\">({{ linksCount }})</span>\n </div>\n <gn-ui-previous-next-buttons\n *ngIf=\"(isMobile$ | async) === false && _list?.pagesCount > 1\"\n [listComponent]=\"_list\"\n ></gn-ui-previous-next-buttons>\n </div>\n\n <div\n class=\"flex flex-wrap justify-start sm:justify-end\"\n data-cy=\"download-format-filters\"\n >\n <gn-ui-button\n class=\"m-1 format-filter\"\n [extraClass]=\"\n '!px-[12px] !py-[8px] !text-[15px]' +\n (isFilterActive(format) ? ' opacity-100' : ' opacity-60')\n \"\n (buttonClick)=\"toggleFilterFormat(format)\"\n [attr.data-format]=\"format\"\n *ngFor=\"let format of visibleFormats\"\n >\n {{ getFilterFormatTitle(format) }}\n </gn-ui-button>\n </div>\n</div>\n\n<ng-container>\n <gn-ui-block-list\n *ngIf=\"(isMobile$ | async) === false\"\n #blockList\n (listChanges)=\"updateList($event)\"\n containerClass=\"gap-4 pt-5 pb-7\"\n >\n <gn-ui-download-item\n #block\n *ngFor=\"let link of filteredLinks\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n [size]=\"blockList.subComponentSize\"\n ></gn-ui-download-item>\n </gn-ui-block-list>\n</ng-container>\n\n<div class=\"mb-5\" *ngFor=\"let link of filteredLinks\">\n <ng-container *ngIf=\"(isMobile$ | async) === true\">\n <gn-ui-download-item\n size=\"M\"\n [link]=\"link\"\n [color]=\"getLinkColor(link)\"\n [format]=\"getLinkFormat(link)\"\n [isFromApi]=\"isFromApi(link)\"\n ></gn-ui-download-item>\n </ng-container>\n</div>\n" }]
118
119
  }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i0.ChangeDetectorRef }], propDecorators: { links: [{
119
120
  type: Input
120
121
  }] } });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWRzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL2Rvd25sb2Fkcy1saXN0L2Rvd25sb2Fkcy1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9kb3dubG9hZHMtbGlzdC9kb3dubG9hZHMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFBO0FBRXJGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDdEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMENBQTBDLENBQUE7QUFDaEYsT0FBTyxFQUNMLGtCQUFrQixFQUNsQiw0QkFBNEIsR0FDN0IsTUFBTSxzQ0FBc0MsQ0FBQTs7OztBQUU3QyxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtBQUNuQyxNQUFNLENBQUMsOEJBQThCLENBQUMsQ0FBQTtBQUV0QyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFVLENBQUE7QUFrQmhGLE1BQU0sT0FBTyxzQkFBc0I7SUFDakMs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RGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgVHJhbnNsYXRlRGlyZWN0aXZlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7IG1hcmtlciB9IGZyb20gJ0BiaWVzYmplcmcvbmd4LXRyYW5zbGF0ZS1leHRyYWN0LW1hcmtlcidcbmltcG9ydCB7IGdldEJhZGdlQ29sb3IsIGdldEZpbGVGb3JtYXQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3V0aWwvc2hhcmVkL3NyYydcbmltcG9ydCB7IERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IERvd25sb2FkSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2Rvd25sb2FkLWl0ZW0vZG93bmxvYWQtaXRlbS5jb21wb25lbnQnXG5pbXBvcnQge1xuICBCbG9ja0xpc3RDb21wb25lbnQsXG4gIFByZXZpb3VzTmV4dEJ1dHRvbnNDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcblxubWFya2VyKCdkYXRhaHViLnNlYXJjaC5maWx0ZXIuYWxsJylcbm1hcmtlcignZGF0YWh1Yi5zZWFyY2guZmlsdGVyLm90aGVycycpXG5cbmNvbnN0IEZJTFRFUl9GT1JNQVRTID0gWydhbGwnLCAnY3N2JywgJ2V4Y2VsJywgJ2pzb24nLCAnc2hwJywgJ290aGVycyddIGFzIGNvbnN0XG50eXBlIEZpbHRlckZvcm1hdCA9ICh0eXBlb2YgRklMVEVSX0ZPUk1BVFMpW251bWJlcl1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZG93bmxvYWRzLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZG93bmxvYWRzLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kb3dubG9hZHMtbGlzdC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBCbG9ja0xpc3RDb21wb25lbnQsXG4gICAgRG93bmxvYWRJdGVtQ29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZURpcmVjdGl2ZSxcbiAgICBQcmV2aW91c05leHRCdXR0b25zQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBEb3dubG9hZHNMaXN0Q29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBfbGlzdDogQmxvY2tMaXN0Q29tcG9uZW50XG4gIEBJbnB1dCgpIGxpbmtzOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb25bXVxuXG4gIGdldCBsaW5rc0NvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRMaW5rcz8ubGVuZ3RoIHx8IDBcbiAgfVxuXG4gIGFjdGl2ZUZpbHRlckZvcm1hdHM6IEZpbHRlckZvcm1hdFtdID0gWydhbGwnXVxuXG4gIHVwZGF0ZUxpc3QoJGV2ZW50OiBCbG9ja0xpc3RDb21wb25lbnQpIHtcbiAgICB0aGlzLl9saXN0ID0gJGV2ZW50XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRHVwbGljYXRlRm9ybWF0cyhcbiAgICBsaW5rczogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uW11cbiAgKTogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uW10ge1xuICAgIGNvbnN0IHByZWZlcnJlZExpbmtzID0gbmV3IE1hcDxzdHJpbmcsIERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbj4oKVxuXG4gICAgbGlua3MuZm9yRWFjaCgobGluaykgPT4ge1xuICAgICAgY29uc3QgZm9ybWF0ID0gZ2V0RmlsZUZvcm1hdChsaW5rKVxuICAgICAgY29uc3Qgd2l0aG91dE5hbWVTcGFjZSA9IChsaW5rLm5hbWUgfHwgbGluay5kZXNjcmlwdGlvbiB8fCAnJykucmVwbGFjZShcbiAgICAgICAgL14uKj86LyxcbiAgICAgICAgJydcbiAgICAgIClcbiAgICAgIGNvbnN0IHVuaXF1ZUtleSA9IGAke2Zvcm1hdH0tJHt3aXRob3V0TmFtZVNwYWNlfWBcbiAgICAgIGlmICghcHJlZmVycmVkTGlua3MuaGFzKHVuaXF1ZUtleSkpIHtcbiAgICAgICAgcHJlZmVycmVkTGlua3Muc2V0KHVuaXF1ZUtleSwgbGluaylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nTGluayA9IHByZWZlcnJlZExpbmtzLmdldCh1bmlxdWVLZXkpXG4gICAgICAgIGlmIChcbiAgICAgICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ29nY0ZlYXR1cmVzJyAmJlxuICAgICAgICAgIGV4aXN0aW5nTGluaz8uYWNjZXNzU2VydmljZVByb3RvY29sICE9PSAnb2djRmVhdHVyZXMnXG4gICAgICAgICkge1xuICAgICAgICAgIHByZWZlcnJlZExpbmtzLnNldCh1bmlxdWVLZXksIGxpbmspXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIEFycmF5LmZyb20ocHJlZmVycmVkTGlua3MudmFsdWVzKCkpXG4gIH1cblxuICBnZXQgZmlsdGVyZWRMaW5rcygpOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb25bXSB7XG4gICAgY29uc3QgZmlsdGVyZWRCeUZvcm1hdCA9IHRoaXMubGlua3MuZmlsdGVyKChsaW5rKSA9PlxuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJGb3JtYXRzLnNvbWUoKGZvcm1hdCkgPT5cbiAgICAgICAgdGhpcy5pc0xpbmtPZkZvcm1hdChsaW5rLCBmb3JtYXQpXG4gICAgICApXG4gICAgKVxuICAgIHJldHVybiB0aGlzLnJlbW92ZUR1cGxpY2F0ZUZvcm1hdHMoZmlsdGVyZWRCeUZvcm1hdClcbiAgfVxuXG4gIGdldCB2aXNpYmxlRm9ybWF0cygpOiBGaWx0ZXJGb3JtYXRbXSB7XG4gICAgcmV0dXJuIEZJTFRFUl9GT1JNQVRTLmZpbHRlcigoZm9ybWF0KSA9PlxuICAgICAgdGhpcy5saW5rcy5zb21lKChsaW5rKSA9PiB0aGlzLmlzTGlua09mRm9ybWF0KGxpbmssIGZvcm1hdCkpXG4gICAgKVxuICB9XG5cbiAgdG9nZ2xlRmlsdGVyRm9ybWF0KGZvcm1hdDogRmlsdGVyRm9ybWF0KTogdm9pZCB7XG4gICAgaWYgKGZvcm1hdCA9PT0gJ2FsbCcpIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cyA9IFsnYWxsJ11cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAodGhpcy5pc0ZpbHRlckFjdGl2ZShmb3JtYXQpKSB7XG4gICAgICB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMgPSB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuZmlsdGVyKFxuICAgICAgICAoZjogc3RyaW5nKSA9PiBmb3JtYXQgIT09IGZcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJGb3JtYXRzID0gW1xuICAgICAgICAuLi50aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuZmlsdGVyKChmKSA9PiBmICE9PSAnYWxsJyksXG4gICAgICAgIGZvcm1hdCxcbiAgICAgIF1cbiAgICB9XG4gICAgaWYgKHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cyA9IFsnYWxsJ11cbiAgICB9XG4gIH1cblxuICBpc0ZpbHRlckFjdGl2ZShmaWx0ZXI6IEZpbHRlckZvcm1hdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuaW5jbHVkZXMoZmlsdGVyKVxuICB9XG5cbiAgZ2V0RmlsdGVyRm9ybWF0VGl0bGUoZm9ybWF0OiBGaWx0ZXJGb3JtYXQpIHtcbiAgICBpZiAoZm9ybWF0ID09PSAnYWxsJyB8fCBmb3JtYXQgPT09ICdvdGhlcnMnKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYGRhdGFodWIuc2VhcmNoLmZpbHRlci4ke2Zvcm1hdH1gKVxuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0XG4gIH1cblxuICBpc0xpbmtPZkZvcm1hdChcbiAgICBsaW5rOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24sXG4gICAgZm9ybWF0OiBGaWx0ZXJGb3JtYXRcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKGZvcm1hdCA9PT0gJ2FsbCcpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIGlmIChnZXRGaWxlRm9ybWF0KGxpbmspID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gZm9ybWF0ID09PSAnb3RoZXJzJ1xuICAgIH1cbiAgICBpZiAoZm9ybWF0ID09PSAnb3RoZXJzJykge1xuICAgICAgY29uc3Qga25vd25Gb3JtYXRzID0gRklMVEVSX0ZPUk1BVFMuZmlsdGVyKFxuICAgICAgICAoZm9ybWF0KSA9PiBmb3JtYXQgIT09ICdhbGwnICYmIGZvcm1hdCAhPT0gJ290aGVycydcbiAgICAgIClcbiAgICAgIHJldHVybiBrbm93bkZvcm1hdHMuZXZlcnkoXG4gICAgICAgIChrbm93bkZvcm1hdCkgPT4gIWdldEZpbGVGb3JtYXQobGluaykuaW5jbHVkZXMoa25vd25Gb3JtYXQpXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBnZXRGaWxlRm9ybWF0KGxpbmspLmluY2x1ZGVzKGZvcm1hdClcbiAgfVxuXG4gIGdldExpbmtGb3JtYXQobGluazogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uKSB7XG4gICAgcmV0dXJuIGdldEZpbGVGb3JtYXQobGluaylcbiAgfVxuXG4gIGdldExpbmtDb2xvcihsaW5rOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24pIHtcbiAgICByZXR1cm4gZ2V0QmFkZ2VDb2xvcihnZXRGaWxlRm9ybWF0KGxpbmspKVxuICB9XG5cbiAgaXNGcm9tQXBpKGxpbms6IERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbikge1xuICAgIHJldHVybiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdkb3dubG9hZCcgJiZcbiAgICAgIChsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dmcycgfHxcbiAgICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdvZ2NGZWF0dXJlcycpXG4gICAgKVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBwYi00XCJcbiAgKm5nSWY9XCJsaW5rcyAmJiBsaW5rcy5sZW5ndGggPiAwXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC14LTRcIj5cbiAgICA8ZGl2PlxuICAgICAgPGgzXG4gICAgICAgIGNsYXNzPVwiaW5saW5lLWJsb2NrIGZvbnQtdGl0bGUgdGV4dC14bCB0ZXh0LXRpdGxlIGZvbnQtbWVkaXVtIG1yLTRcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmRvd25sb2FkXG4gICAgICA8L2gzPlxuICAgICAgPHNwYW4gY2xhc3M9XCJweC0zXCI+KHt7IGxpbmtzQ291bnQgfX0pPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxnbi11aS1wcmV2aW91cy1uZXh0LWJ1dHRvbnNcbiAgICAgIGNsYXNzPVwibWQ6YmxvY2sgaGlkZGVuXCJcbiAgICAgICpuZ0lmPVwiX2xpc3Q/LnBhZ2VzQ291bnQgPiAxXCJcbiAgICAgIFtsaXN0Q29tcG9uZW50XT1cIl9saXN0XCJcbiAgICA+PC9nbi11aS1wcmV2aW91cy1uZXh0LWJ1dHRvbnM+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImZsZXggZmxleC13cmFwIGp1c3RpZnktc3RhcnQgc206anVzdGlmeS1lbmRcIlxuICAgIGRhdGEtY3k9XCJkb3dubG9hZC1mb3JtYXQtZmlsdGVyc1wiXG4gID5cbiAgICA8Z24tdWktYnV0dG9uXG4gICAgICBjbGFzcz1cIm0tMSBmb3JtYXQtZmlsdGVyXCJcbiAgICAgIFtleHRyYUNsYXNzXT1cIlxuICAgICAgICAnIXB4LVsxMnB4XSAhcHktWzhweF0gIXRleHQtWzE1cHhdJyArXG4gICAgICAgIChpc0ZpbHRlckFjdGl2ZShmb3JtYXQpID8gJyBvcGFjaXR5LTEwMCcgOiAnIG9wYWNpdHktNjAnKVxuICAgICAgXCJcbiAgICAgIChidXR0b25DbGljayk9XCJ0b2dnbGVGaWx0ZXJGb3JtYXQoZm9ybWF0KVwiXG4gICAgICBbYXR0ci5kYXRhLWZvcm1hdF09XCJmb3JtYXRcIlxuICAgICAgKm5nRm9yPVwibGV0IGZvcm1hdCBvZiB2aXNpYmxlRm9ybWF0c1wiXG4gICAgPlxuICAgICAge3sgZ2V0RmlsdGVyRm9ybWF0VGl0bGUoZm9ybWF0KSB9fVxuICAgIDwvZ24tdWktYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctY29udGFpbmVyPlxuICA8Z24tdWktYmxvY2stbGlzdFxuICAgIGNsYXNzPVwibWQ6YmxvY2sgaGlkZGVuXCJcbiAgICAjYmxvY2tMaXN0XG4gICAgKGxpc3RDaGFuZ2VzKT1cInVwZGF0ZUxpc3QoJGV2ZW50KVwiXG4gICAgY29udGFpbmVyQ2xhc3M9XCJnYXAtNCBwdC01IHBiLTdcIlxuICA+XG4gICAgPGduLXVpLWRvd25sb2FkLWl0ZW1cbiAgICAgICNibG9ja1xuICAgICAgKm5nRm9yPVwibGV0IGxpbmsgb2YgZmlsdGVyZWRMaW5rc1wiXG4gICAgICBbbGlua109XCJsaW5rXCJcbiAgICAgIFtjb2xvcl09XCJnZXRMaW5rQ29sb3IobGluaylcIlxuICAgICAgW2Zvcm1hdF09XCJnZXRMaW5rRm9ybWF0KGxpbmspXCJcbiAgICAgIFtpc0Zyb21BcGldPVwiaXNGcm9tQXBpKGxpbmspXCJcbiAgICAgIFtzaXplXT1cImJsb2NrTGlzdC5zdWJDb21wb25lbnRTaXplXCJcbiAgICA+PC9nbi11aS1kb3dubG9hZC1pdGVtPlxuICA8L2duLXVpLWJsb2NrLWxpc3Q+XG48L25nLWNvbnRhaW5lcj5cblxuPGRpdiBjbGFzcz1cIm1iLTUgbWQ6aGlkZGVuIGJsb2NrXCIgKm5nRm9yPVwibGV0IGxpbmsgb2YgZmlsdGVyZWRMaW5rc1wiPlxuICA8Z24tdWktZG93bmxvYWQtaXRlbVxuICAgIHNpemU9XCJNXCJcbiAgICBbbGlua109XCJsaW5rXCJcbiAgICBbY29sb3JdPVwiZ2V0TGlua0NvbG9yKGxpbmspXCJcbiAgICBbZm9ybWF0XT1cImdldExpbmtGb3JtYXQobGluaylcIlxuICAgIFtpc0Zyb21BcGldPVwiaXNGcm9tQXBpKGxpbmspXCJcbiAgPjwvZ24tdWktZG93bmxvYWQtaXRlbT5cbjwvZGl2PlxuIl19
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWRzLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9lbGVtZW50cy9zcmMvbGliL2Rvd25sb2Fkcy1saXN0L2Rvd25sb2Fkcy1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvZWxlbWVudHMvc3JjL2xpYi9kb3dubG9hZHMtbGlzdC9kb3dubG9hZHMtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQzFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUNoRSxPQUFPLEVBQ0wsYUFBYSxFQUNiLGFBQWEsRUFDYixXQUFXLEdBQ1osTUFBTSx3Q0FBd0MsQ0FBQTtBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFBO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFBO0FBQ2hGLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsNEJBQTRCLEdBQzdCLE1BQU0sc0NBQXNDLENBQUE7Ozs7QUFFN0MsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUE7QUFDbkMsTUFBTSxDQUFDLDhCQUE4QixDQUFDLENBQUE7QUFFdEMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBVSxDQUFBO0FBa0JoRixNQUFNLE9BQU8sc0JB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QUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBUcmFuc2xhdGVEaXJlY3RpdmUsIFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgZ2V0QmFkZ2VDb2xvcixcbiAgZ2V0RmlsZUZvcm1hdCxcbiAgZ2V0SXNNb2JpbGUsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuaW1wb3J0IHsgRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgRG93bmxvYWRJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi4vZG93bmxvYWQtaXRlbS9kb3dubG9hZC1pdGVtLmNvbXBvbmVudCdcbmltcG9ydCB7XG4gIEJsb2NrTGlzdENvbXBvbmVudCxcbiAgUHJldmlvdXNOZXh0QnV0dG9uc0NvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9sYXlvdXQvc3JjJ1xuXG5tYXJrZXIoJ2RhdGFodWIuc2VhcmNoLmZpbHRlci5hbGwnKVxubWFya2VyKCdkYXRhaHViLnNlYXJjaC5maWx0ZXIub3RoZXJzJylcblxuY29uc3QgRklMVEVSX0ZPUk1BVFMgPSBbJ2FsbCcsICdjc3YnLCAnZXhjZWwnLCAnanNvbicsICdzaHAnLCAnb3RoZXJzJ10gYXMgY29uc3RcbnR5cGUgRmlsdGVyRm9ybWF0ID0gKHR5cGVvZiBGSUxURVJfRk9STUFUUylbbnVtYmVyXVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1kb3dubG9hZHMtbGlzdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb3dubG9hZHMtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Rvd25sb2Fkcy1saXN0LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICAgIEJsb2NrTGlzdENvbXBvbmVudCxcbiAgICBEb3dubG9hZEl0ZW1Db21wb25lbnQsXG4gICAgVHJhbnNsYXRlRGlyZWN0aXZlLFxuICAgIFByZXZpb3VzTmV4dEJ1dHRvbnNDb21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIERvd25sb2Fkc0xpc3RDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIF9saXN0OiBCbG9ja0xpc3RDb21wb25lbnRcbiAgQElucHV0KCkgbGlua3M6IERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbltdXG5cbiAgZ2V0IGxpbmtzQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZExpbmtzPy5sZW5ndGggfHwgMFxuICB9XG5cbiAgaXNNb2JpbGUkID0gZ2V0SXNNb2JpbGUoKVxuXG4gIGFjdGl2ZUZpbHRlckZvcm1hdHM6IEZpbHRlckZvcm1hdFtdID0gWydhbGwnXVxuXG4gIHVwZGF0ZUxpc3QoJGV2ZW50OiBCbG9ja0xpc3RDb21wb25lbnQpIHtcbiAgICB0aGlzLl9saXN0ID0gJGV2ZW50XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRHVwbGljYXRlRm9ybWF0cyhcbiAgICBsaW5rczogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uW11cbiAgKTogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uW10ge1xuICAgIGNvbnN0IHByZWZlcnJlZExpbmtzID0gbmV3IE1hcDxzdHJpbmcsIERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbj4oKVxuXG4gICAgbGlua3MuZm9yRWFjaCgobGluaykgPT4ge1xuICAgICAgY29uc3QgZm9ybWF0ID0gZ2V0RmlsZUZvcm1hdChsaW5rKVxuICAgICAgY29uc3Qgd2l0aG91dE5hbWVTcGFjZSA9IChsaW5rLm5hbWUgfHwgbGluay5kZXNjcmlwdGlvbiB8fCAnJykucmVwbGFjZShcbiAgICAgICAgL14uKj86LyxcbiAgICAgICAgJydcbiAgICAgIClcbiAgICAgIGNvbnN0IHVuaXF1ZUtleSA9IGAke2Zvcm1hdH0tJHt3aXRob3V0TmFtZVNwYWNlfWBcbiAgICAgIGlmICghcHJlZmVycmVkTGlua3MuaGFzKHVuaXF1ZUtleSkpIHtcbiAgICAgICAgcHJlZmVycmVkTGlua3Muc2V0KHVuaXF1ZUtleSwgbGluaylcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGV4aXN0aW5nTGluayA9IHByZWZlcnJlZExpbmtzLmdldCh1bmlxdWVLZXkpXG4gICAgICAgIGlmIChcbiAgICAgICAgICBsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ29nY0ZlYXR1cmVzJyAmJlxuICAgICAgICAgIGV4aXN0aW5nTGluaz8uYWNjZXNzU2VydmljZVByb3RvY29sICE9PSAnb2djRmVhdHVyZXMnXG4gICAgICAgICkge1xuICAgICAgICAgIHByZWZlcnJlZExpbmtzLnNldCh1bmlxdWVLZXksIGxpbmspXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KVxuXG4gICAgcmV0dXJuIEFycmF5LmZyb20ocHJlZmVycmVkTGlua3MudmFsdWVzKCkpXG4gIH1cblxuICBnZXQgZmlsdGVyZWRMaW5rcygpOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb25bXSB7XG4gICAgY29uc3QgZmlsdGVyZWRCeUZvcm1hdCA9IHRoaXMubGlua3MuZmlsdGVyKChsaW5rKSA9PlxuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJGb3JtYXRzLnNvbWUoKGZvcm1hdCkgPT5cbiAgICAgICAgdGhpcy5pc0xpbmtPZkZvcm1hdChsaW5rLCBmb3JtYXQpXG4gICAgICApXG4gICAgKVxuICAgIHJldHVybiB0aGlzLnJlbW92ZUR1cGxpY2F0ZUZvcm1hdHMoZmlsdGVyZWRCeUZvcm1hdClcbiAgfVxuXG4gIGdldCB2aXNpYmxlRm9ybWF0cygpOiBGaWx0ZXJGb3JtYXRbXSB7XG4gICAgcmV0dXJuIEZJTFRFUl9GT1JNQVRTLmZpbHRlcigoZm9ybWF0KSA9PlxuICAgICAgdGhpcy5saW5rcy5zb21lKChsaW5rKSA9PiB0aGlzLmlzTGlua09mRm9ybWF0KGxpbmssIGZvcm1hdCkpXG4gICAgKVxuICB9XG5cbiAgdG9nZ2xlRmlsdGVyRm9ybWF0KGZvcm1hdDogRmlsdGVyRm9ybWF0KTogdm9pZCB7XG4gICAgaWYgKGZvcm1hdCA9PT0gJ2FsbCcpIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cyA9IFsnYWxsJ11cbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAodGhpcy5pc0ZpbHRlckFjdGl2ZShmb3JtYXQpKSB7XG4gICAgICB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMgPSB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuZmlsdGVyKFxuICAgICAgICAoZjogc3RyaW5nKSA9PiBmb3JtYXQgIT09IGZcbiAgICAgIClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3RpdmVGaWx0ZXJGb3JtYXRzID0gW1xuICAgICAgICAuLi50aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuZmlsdGVyKChmKSA9PiBmICE9PSAnYWxsJyksXG4gICAgICAgIGZvcm1hdCxcbiAgICAgIF1cbiAgICB9XG4gICAgaWYgKHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYWN0aXZlRmlsdGVyRm9ybWF0cyA9IFsnYWxsJ11cbiAgICB9XG4gIH1cblxuICBpc0ZpbHRlckFjdGl2ZShmaWx0ZXI6IEZpbHRlckZvcm1hdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2ZUZpbHRlckZvcm1hdHMuaW5jbHVkZXMoZmlsdGVyKVxuICB9XG5cbiAgZ2V0RmlsdGVyRm9ybWF0VGl0bGUoZm9ybWF0OiBGaWx0ZXJGb3JtYXQpIHtcbiAgICBpZiAoZm9ybWF0ID09PSAnYWxsJyB8fCBmb3JtYXQgPT09ICdvdGhlcnMnKSB7XG4gICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYGRhdGFodWIuc2VhcmNoLmZpbHRlci4ke2Zvcm1hdH1gKVxuICAgIH1cbiAgICByZXR1cm4gZm9ybWF0XG4gIH1cblxuICBpc0xpbmtPZkZvcm1hdChcbiAgICBsaW5rOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24sXG4gICAgZm9ybWF0OiBGaWx0ZXJGb3JtYXRcbiAgKTogYm9vbGVhbiB7XG4gICAgaWYgKGZvcm1hdCA9PT0gJ2FsbCcpIHtcbiAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIGlmIChnZXRGaWxlRm9ybWF0KGxpbmspID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gZm9ybWF0ID09PSAnb3RoZXJzJ1xuICAgIH1cbiAgICBpZiAoZm9ybWF0ID09PSAnb3RoZXJzJykge1xuICAgICAgY29uc3Qga25vd25Gb3JtYXRzID0gRklMVEVSX0ZPUk1BVFMuZmlsdGVyKFxuICAgICAgICAoZm9ybWF0KSA9PiBmb3JtYXQgIT09ICdhbGwnICYmIGZvcm1hdCAhPT0gJ290aGVycydcbiAgICAgIClcbiAgICAgIHJldHVybiBrbm93bkZvcm1hdHMuZXZlcnkoXG4gICAgICAgIChrbm93bkZvcm1hdCkgPT4gIWdldEZpbGVGb3JtYXQobGluaykuaW5jbHVkZXMoa25vd25Gb3JtYXQpXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiBnZXRGaWxlRm9ybWF0KGxpbmspLmluY2x1ZGVzKGZvcm1hdClcbiAgfVxuXG4gIGdldExpbmtGb3JtYXQobGluazogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uKSB7XG4gICAgcmV0dXJuIGdldEZpbGVGb3JtYXQobGluaylcbiAgfVxuXG4gIGdldExpbmtDb2xvcihsaW5rOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24pIHtcbiAgICByZXR1cm4gZ2V0QmFkZ2VDb2xvcihnZXRGaWxlRm9ybWF0KGxpbmspKVxuICB9XG5cbiAgaXNGcm9tQXBpKGxpbms6IERhdGFzZXREb3dubG9hZERpc3RyaWJ1dGlvbikge1xuICAgIHJldHVybiAoXG4gICAgICBsaW5rLnR5cGUgPT09ICdkb3dubG9hZCcgJiZcbiAgICAgIChsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dmcycgfHxcbiAgICAgICAgbGluay5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2wgPT09ICdvZ2NGZWF0dXJlcycpXG4gICAgKVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiZmxleCBmbGV4LXdyYXAganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBwYi00XCJcbiAgKm5nSWY9XCJsaW5rcyAmJiBsaW5rcy5sZW5ndGggPiAwXCJcbj5cbiAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC14LTRcIj5cbiAgICA8ZGl2PlxuICAgICAgPGgzXG4gICAgICAgIGNsYXNzPVwiaW5saW5lLWJsb2NrIGZvbnQtdGl0bGUgdGV4dC14bCB0ZXh0LXRpdGxlIGZvbnQtbWVkaXVtIG1yLTRcIlxuICAgICAgICB0cmFuc2xhdGVcbiAgICAgID5cbiAgICAgICAgcmVjb3JkLm1ldGFkYXRhLmRvd25sb2FkXG4gICAgICA8L2gzPlxuICAgICAgPHNwYW4gY2xhc3M9XCJweC0zXCI+KHt7IGxpbmtzQ291bnQgfX0pPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxnbi11aS1wcmV2aW91cy1uZXh0LWJ1dHRvbnNcbiAgICAgICpuZ0lmPVwiKGlzTW9iaWxlJCB8IGFzeW5jKSA9PT0gZmFsc2UgJiYgX2xpc3Q/LnBhZ2VzQ291bnQgPiAxXCJcbiAgICAgIFtsaXN0Q29tcG9uZW50XT1cIl9saXN0XCJcbiAgICA+PC9nbi11aS1wcmV2aW91cy1uZXh0LWJ1dHRvbnM+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cImZsZXggZmxleC13cmFwIGp1c3RpZnktc3RhcnQgc206anVzdGlmeS1lbmRcIlxuICAgIGRhdGEtY3k9XCJkb3dubG9hZC1mb3JtYXQtZmlsdGVyc1wiXG4gID5cbiAgICA8Z24tdWktYnV0dG9uXG4gICAgICBjbGFzcz1cIm0tMSBmb3JtYXQtZmlsdGVyXCJcbiAgICAgIFtleHRyYUNsYXNzXT1cIlxuICAgICAgICAnIXB4LVsxMnB4XSAhcHktWzhweF0gIXRleHQtWzE1cHhdJyArXG4gICAgICAgIChpc0ZpbHRlckFjdGl2ZShmb3JtYXQpID8gJyBvcGFjaXR5LTEwMCcgOiAnIG9wYWNpdHktNjAnKVxuICAgICAgXCJcbiAgICAgIChidXR0b25DbGljayk9XCJ0b2dnbGVGaWx0ZXJGb3JtYXQoZm9ybWF0KVwiXG4gICAgICBbYXR0ci5kYXRhLWZvcm1hdF09XCJmb3JtYXRcIlxuICAgICAgKm5nRm9yPVwibGV0IGZvcm1hdCBvZiB2aXNpYmxlRm9ybWF0c1wiXG4gICAgPlxuICAgICAge3sgZ2V0RmlsdGVyRm9ybWF0VGl0bGUoZm9ybWF0KSB9fVxuICAgIDwvZ24tdWktYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctY29udGFpbmVyPlxuICA8Z24tdWktYmxvY2stbGlzdFxuICAgICpuZ0lmPVwiKGlzTW9iaWxlJCB8IGFzeW5jKSA9PT0gZmFsc2VcIlxuICAgICNibG9ja0xpc3RcbiAgICAobGlzdENoYW5nZXMpPVwidXBkYXRlTGlzdCgkZXZlbnQpXCJcbiAgICBjb250YWluZXJDbGFzcz1cImdhcC00IHB0LTUgcGItN1wiXG4gID5cbiAgICA8Z24tdWktZG93bmxvYWQtaXRlbVxuICAgICAgI2Jsb2NrXG4gICAgICAqbmdGb3I9XCJsZXQgbGluayBvZiBmaWx0ZXJlZExpbmtzXCJcbiAgICAgIFtsaW5rXT1cImxpbmtcIlxuICAgICAgW2NvbG9yXT1cImdldExpbmtDb2xvcihsaW5rKVwiXG4gICAgICBbZm9ybWF0XT1cImdldExpbmtGb3JtYXQobGluaylcIlxuICAgICAgW2lzRnJvbUFwaV09XCJpc0Zyb21BcGkobGluaylcIlxuICAgICAgW3NpemVdPVwiYmxvY2tMaXN0LnN1YkNvbXBvbmVudFNpemVcIlxuICAgID48L2duLXVpLWRvd25sb2FkLWl0ZW0+XG4gIDwvZ24tdWktYmxvY2stbGlzdD5cbjwvbmctY29udGFpbmVyPlxuXG48ZGl2IGNsYXNzPVwibWItNVwiICpuZ0Zvcj1cImxldCBsaW5rIG9mIGZpbHRlcmVkTGlua3NcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihpc01vYmlsZSQgfCBhc3luYykgPT09IHRydWVcIj5cbiAgICA8Z24tdWktZG93bmxvYWQtaXRlbVxuICAgICAgc2l6ZT1cIk1cIlxuICAgICAgW2xpbmtdPVwibGlua1wiXG4gICAgICBbY29sb3JdPVwiZ2V0TGlua0NvbG9yKGxpbmspXCJcbiAgICAgIFtmb3JtYXRdPVwiZ2V0TGlua0Zvcm1hdChsaW5rKVwiXG4gICAgICBbaXNGcm9tQXBpXT1cImlzRnJvbUFwaShsaW5rKVwiXG4gICAgPjwvZ24tdWktZG93bmxvYWQtaXRlbT5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==