@igo2/context 16.0.0-rc.0 → 16.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/esm2022/lib/context-import-export/context-import-export/context-import-export.component.mjs +6 -6
  2. package/esm2022/lib/context-import-export/context-import-export.module.mjs +6 -6
  3. package/esm2022/lib/context-import-export/shared/context-export.service.mjs +2 -2
  4. package/esm2022/lib/context-import-export/shared/context-export.utils.mjs +1 -1
  5. package/esm2022/lib/context-import-export/shared/context-import.errors.mjs +1 -1
  6. package/esm2022/lib/context-import-export/shared/context-import.service.mjs +3 -3
  7. package/esm2022/lib/context-import-export/shared/context-import.utils.mjs +2 -2
  8. package/esm2022/lib/context-manager/context-edit/context-edit-binding.directive.mjs +2 -2
  9. package/esm2022/lib/context-manager/context-edit/context-edit.component.mjs +3 -3
  10. package/esm2022/lib/context-manager/context-form/context-form.component.mjs +4 -4
  11. package/esm2022/lib/context-manager/context-item/context-item.component.mjs +3 -3
  12. package/esm2022/lib/context-manager/context-list/context-list-binding.directive.mjs +4 -4
  13. package/esm2022/lib/context-manager/context-list/context-list.component.mjs +14 -12
  14. package/esm2022/lib/context-manager/context-manager.module.mjs +13 -13
  15. package/esm2022/lib/context-manager/context-permissions/context-permissions-binding.directive.mjs +3 -3
  16. package/esm2022/lib/context-manager/context-permissions/context-permissions.component.mjs +5 -5
  17. package/esm2022/lib/context-manager/shared/context.interface.mjs +1 -1
  18. package/esm2022/lib/context-manager/shared/context.service.mjs +9 -9
  19. package/esm2022/lib/context-manager/shared/layer-context.directive.mjs +7 -19
  20. package/esm2022/lib/context-manager/shared/map-context.directive.mjs +3 -3
  21. package/esm2022/lib/context-map-button/bookmark-button/bookmark-button.component.mjs +3 -3
  22. package/esm2022/lib/context-map-button/bookmark-button/bookmark-dialog.component.mjs +2 -2
  23. package/esm2022/lib/context-map-button/context-map-button.module.mjs +5 -5
  24. package/esm2022/lib/context-map-button/poi-button/poi-button.component.mjs +8 -8
  25. package/esm2022/lib/context-map-button/poi-button/poi-dialog.component.mjs +2 -2
  26. package/esm2022/lib/context-map-button/poi-button/shared/poi.service.mjs +3 -3
  27. package/esm2022/lib/context-map-button/user-button/user-button.animation.mjs +2 -2
  28. package/esm2022/lib/context-map-button/user-button/user-button.component.mjs +4 -4
  29. package/esm2022/lib/context-map-button/user-button/user-dialog.component.mjs +3 -3
  30. package/esm2022/lib/context.module.mjs +1 -1
  31. package/esm2022/lib/environment/environment.interface.mjs +2 -0
  32. package/esm2022/lib/environment/index.mjs +2 -0
  33. package/esm2022/lib/share-map/share-map/share-map-api.component.mjs +4 -4
  34. package/esm2022/lib/share-map/share-map/share-map-url.component.mjs +5 -5
  35. package/esm2022/lib/share-map/share-map/share-map.component.mjs +2 -2
  36. package/esm2022/lib/share-map/share-map.module.mjs +6 -6
  37. package/esm2022/lib/share-map/shared/share-map.service.mjs +1 -1
  38. package/esm2022/lib/sidenav/sidenav.component.mjs +2 -2
  39. package/esm2022/lib/sidenav/sidenav.module.mjs +3 -3
  40. package/esm2022/public_api.mjs +2 -1
  41. package/fesm2022/igo2-context.mjs +2508 -2518
  42. package/fesm2022/igo2-context.mjs.map +1 -1
  43. package/lib/context-import-export/context-import-export/context-import-export.component.d.ts +6 -6
  44. package/lib/context-import-export/shared/context-export.service.d.ts +1 -1
  45. package/lib/context-import-export/shared/context-import.service.d.ts +1 -1
  46. package/lib/context-import-export/shared/context-import.utils.d.ts +1 -1
  47. package/lib/context-manager/context-edit/context-edit-binding.directive.d.ts +1 -1
  48. package/lib/context-manager/context-edit/context-edit.component.d.ts +1 -1
  49. package/lib/context-manager/context-item/context-item.component.d.ts +1 -1
  50. package/lib/context-manager/context-list/context-list-binding.directive.d.ts +2 -2
  51. package/lib/context-manager/context-list/context-list.component.d.ts +6 -5
  52. package/lib/context-manager/context-permissions/context-permissions-binding.directive.d.ts +2 -2
  53. package/lib/context-manager/context-permissions/context-permissions.component.d.ts +4 -4
  54. package/lib/context-manager/shared/context.interface.d.ts +3 -3
  55. package/lib/context-manager/shared/context.service.d.ts +4 -4
  56. package/lib/context-manager/shared/layer-context.directive.d.ts +3 -3
  57. package/lib/context-manager/shared/map-context.directive.d.ts +2 -2
  58. package/lib/context-map-button/poi-button/poi-button.component.d.ts +4 -4
  59. package/lib/context-map-button/poi-button/shared/poi.service.d.ts +1 -1
  60. package/lib/context-map-button/user-button/user-button.component.d.ts +1 -1
  61. package/lib/context-map-button/user-button/user-dialog.component.d.ts +1 -1
  62. package/lib/environment/environment.interface.d.ts +9 -0
  63. package/lib/environment/index.d.ts +1 -0
  64. package/lib/share-map/share-map/share-map-api.component.d.ts +1 -1
  65. package/lib/share-map/share-map/share-map-url.component.d.ts +1 -1
  66. package/lib/sidenav/sidenav.component.d.ts +1 -1
  67. package/locale/en.context.json +199 -199
  68. package/locale/fr.context.json +199 -199
  69. package/package.json +7 -7
  70. package/public_api.d.ts +1 -0
@@ -1,15 +1,15 @@
1
- import { Injectable, Optional } from '@angular/core';
2
1
  import { HttpClient } from '@angular/common/http';
3
- import { BehaviorSubject, of, Subject } from 'rxjs';
4
- import { map, tap, catchError, debounceTime, mergeMap, first, skip } from 'rxjs/operators';
5
- import olPoint from 'ol/geom/Point';
2
+ import { Injectable, Optional } from '@angular/core';
3
+ import { AuthService } from '@igo2/auth';
4
+ import { ConfigService, LanguageService, MessageService, RouteService, StorageService } from '@igo2/core';
5
+ import { ExportService } from '@igo2/geo';
6
+ import { ObjectUtils, uuid } from '@igo2/utils';
6
7
  import GeoJSON from 'ol/format/GeoJSON';
8
+ import olPoint from 'ol/geom/Point';
7
9
  import Cluster from 'ol/source/Cluster';
8
10
  import olVectorSource from 'ol/source/Vector';
9
- import { uuid, ObjectUtils } from '@igo2/utils';
10
- import { ConfigService, RouteService, MessageService, LanguageService, StorageService } from '@igo2/core';
11
- import { AuthService } from '@igo2/auth';
12
- import { ExportService } from '@igo2/geo';
11
+ import { BehaviorSubject, Subject, of } from 'rxjs';
12
+ import { catchError, debounceTime, first, map, mergeMap, skip, tap } from 'rxjs/operators';
13
13
  import { TypePermission } from './context.enum';
14
14
  import * as i0 from "@angular/core";
15
15
  import * as i1 from "@angular/common/http";
@@ -659,4 +659,4 @@ export class ContextService {
659
659
  }], function () { return [{ type: i1.HttpClient }, { type: i2.AuthService }, { type: i3.LanguageService }, { type: i3.ConfigService }, { type: i3.MessageService }, { type: i3.StorageService }, { type: i4.ExportService }, { type: i3.RouteService, decorators: [{
660
660
  type: Optional
661
661
  }] }]; }, null); })();
662
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29udGV4dC9zcmMvbGliL2NvbnRleHQtbWFuYWdlci9zaGFyZWQvY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxVQUFVLEVBQXFCLE1BQU0sc0JBQXNCLENBQUM7QUFFckUsT0FBTyxFQUFFLGVBQWUsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFDTCxHQUFHLEVBQ0gsR0FBRyxFQUNILFVBQVUsRUFDVixZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFDTCxJQUFJLEVBQ0wsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLE9BQU8sTUFBTSxlQUFlLENBQUM7QUFDcEMsT0FBTyxPQUFPLE1BQU0sbUJBQW1CLENBQUM7QUFDeEMsT0FBTyxPQUFPLE1BQU0sbUJBQW1CLENBQUM7QUFDeEMsT0FBTyxjQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFHOUMsT0FBTyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUNMLGFBQWEsRUFDYixZQUFZLEVBRVosY0FBYyxFQUNkLGVBQWUsRUFDZixjQUFjLEVBQ2YsTUFBTSxZQUFZLENBQUM7QUFFcEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQVF6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBaUJoRCxNQUFNLE9BQU8sY0FBYztJQTZCZjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNZO0lBbkNmLFFB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QzNDO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sV0FBVyxDQUFDLE9BQWdCO1FBQ2xDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7UUFDdEMsSUFBSSxLQUFLLENBQUM7UUFDVixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDdkMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzVCLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUNoQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQ0osQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDbkMsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUN6QyxDQUFDO1lBQ0YsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsTUFBTTthQUNQO1NBQ0Y7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7d0VBOXdCVSxjQUFjO2dFQUFkLGNBQWMsV0FBZCxjQUFjLG1CQUZiLE1BQU07O3VGQUVQLGNBQWM7Y0FIMUIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COztzQkFxQ0ksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIG1hcCxcclxuICB0YXAsXHJcbiAgY2F0Y2hFcnJvcixcclxuICBkZWJvdW5jZVRpbWUsXHJcbiAgbWVyZ2VNYXAsXHJcbiAgZmlyc3QsXHJcbiAgc2tpcFxyXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCBvbFBvaW50IGZyb20gJ29sL2dlb20vUG9pbnQnO1xyXG5pbXBvcnQgR2VvSlNPTiBmcm9tICdvbC9mb3JtYXQvR2VvSlNPTic7XHJcbmltcG9ydCBDbHVzdGVyIGZyb20gJ29sL3NvdXJjZS9DbHVzdGVyJztcclxuaW1wb3J0IG9sVmVjdG9yU291cmNlIGZyb20gJ29sL3NvdXJjZS9WZWN0b3InO1xyXG5cclxuaW1wb3J0IHsgVG9vbCB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcbmltcG9ydCB7IHV1aWQsIE9iamVjdFV0aWxzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5pbXBvcnQge1xyXG4gIENvbmZpZ1NlcnZpY2UsXHJcbiAgUm91dGVTZXJ2aWNlLFxyXG4gIE1lc3NhZ2UsXHJcbiAgTWVzc2FnZVNlcnZpY2UsXHJcbiAgTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gIFN0b3JhZ2VTZXJ2aWNlXHJcbn0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJ0BpZ28yL2F1dGgnO1xyXG5pbXBvcnQgdHlwZSB7XHJcbiAgSWdvTWFwLFxyXG4gIExheWVyLFxyXG4gIExheWVyT3B0aW9ucyxcclxuICBWZWN0b3JMYXllck9wdGlvbnMsXHJcbiAgVmVjdG9yVGlsZUxheWVyT3B0aW9uc1xyXG59IGZyb20gJ0BpZ28yL2dlbyc7XHJcbmltcG9ydCB7IEV4cG9ydFNlcnZpY2UgfSBmcm9tICdAaWdvMi9nZW8nO1xyXG5cclxuaW1wb3J0IHsgVHlwZVBlcm1pc3Npb24gfSBmcm9tICcuL2NvbnRleHQuZW51bSc7XHJcbmltcG9ydCB7XHJcbiAgQ29udGV4dHNMaXN0LFxyXG4gIENvbnRleHRTZXJ2aWNlT3B0aW9ucyxcclxuICBDb250ZXh0LFxyXG4gIERldGFpbGVkQ29udGV4dCxcclxuICBDb250ZXh0TWFwVmlldyxcclxuICBDb250ZXh0UGVybWlzc2lvbixcclxuICBDb250ZXh0UHJvZmlscyxcclxuICBFeHRyYUZlYXR1cmVzXHJcbn0gZnJvbSAnLi9jb250ZXh0LmludGVyZmFjZSc7XHJcbmltcG9ydCB7IEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbSc7XHJcbmltcG9ydCB7IEZlYXR1cmUgfSBmcm9tICdvbCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb250ZXh0U2VydmljZSB7XHJcbiAgcHVibGljIGNvbnRleHQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEZXRhaWxlZENvbnRleHQ+KHVuZGVmaW5lZCk7XHJcbiAgcHVibGljIGNvbnRleHRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29udGV4dHNMaXN0Pih7IG91cnM6IFtdIH0pO1xyXG4gIHB1YmxpYyBkZWZhdWx0Q29udGV4dElkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPih1bmRlZmluZWQpO1xyXG4gIHB1YmxpYyBlZGl0ZWRDb250ZXh0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGV0YWlsZWRDb250ZXh0Pih1bmRlZmluZWQpO1xyXG4gIHB1YmxpYyBpbXBvcnRlZENvbnRleHQ6IEFycmF5PERldGFpbGVkQ29udGV4dD4gPSBbXTtcclxuICBwdWJsaWMgdG9vbHNDaGFuZ2VkJCA9IG5ldyBTdWJqZWN0PERldGFpbGVkQ29udGV4dD4oKTtcclxuICBwcml2YXRlIG1hcFZpZXdGcm9tUm91dGU6IENvbnRleHRNYXBWaWV3ID0ge307XHJcbiAgcHJpdmF0ZSBvcHRpb25zOiBDb250ZXh0U2VydmljZU9wdGlvbnM7XHJcbiAgcHJpdmF0ZSBiYXNlVXJsOiBzdHJpbmc7XHJcblxyXG4gIC8vIFVudGlsIHRoZSBDb250ZXh0U2VydmljZSBpcyBjb21wbGV0ZWx5IHJlZmFjdG9yZWQsIHRoaXMgaXMgbmVlZGVkXHJcbiAgLy8gdG8gdHJhY2sgdGhlIGN1cnJlbnQgdG9vbHNcclxuICBwcml2YXRlIHRvb2xzOiBUb29sW107XHJcbiAgcHJpdmF0ZSB0b29sYmFyOiBzdHJpbmdbXTtcclxuXHJcbiAgZ2V0IGRlZmF1bHRDb250ZXh0VXJpKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAodGhpcy5zdG9yYWdlU2VydmljZS5nZXQoJ2Zhdm9yaXRlLmNvbnRleHQudXJpJykgYXMgc3RyaW5nKSB8fFxyXG4gICAgICB0aGlzLl9kZWZhdWx0Q29udGV4dFVyaSB8fFxyXG4gICAgICB0aGlzLm9wdGlvbnMuZGVmYXVsdENvbnRleHRVcmlcclxuICAgICk7XHJcbiAgfVxyXG4gIHNldCBkZWZhdWx0Q29udGV4dFVyaSh1cmk6IHN0cmluZykge1xyXG4gICAgdGhpcy5fZGVmYXVsdENvbnRleHRVcmkgPSB1cmk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2RlZmF1bHRDb250ZXh0VXJpOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBleHBvcnRTZXJ2aWNlOiBFeHBvcnRTZXJ2aWNlLFxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByb3V0ZTogUm91dGVTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSBPYmplY3QuYXNzaWduKFxyXG4gICAgICB7XHJcbiAgICAgICAgYmFzZVBhdGg6ICdjb250ZXh0cycsXHJcbiAgICAgICAgY29udGV4dExpc3RGaWxlOiAnX2NvbnRleHRzLmpzb24nLFxyXG4gICAgICAgIGRlZmF1bHRDb250ZXh0VXJpOiAnX2RlZmF1bHQnXHJcbiAgICAgIH0sXHJcbiAgICAgIHRoaXMuY29uZmlnLmdldENvbmZpZygnY29udGV4dCcpXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuYmFzZVVybCA9IHRoaXMub3B0aW9ucy51cmwgPz8gJyc7XHJcblxyXG4gICAgdGhpcy5yZWFkUGFyYW1zRnJvbVJvdXRlKCk7XHJcblxyXG4gICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuaGFzQXV0aFNlcnZpY2UpIHtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5sb2dnZWQkLnN1YnNjcmliZSgobG9nZ2VkKSA9PiB7XHJcbiAgICAgICAgaWYgKGxvZ2dlZCkge1xyXG4gICAgICAgICAgdGhpcy5jb250ZXh0cyQucGlwZShza2lwKDEpLCBmaXJzdCgpKS5zdWJzY3JpYmUoKGMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVDb250ZXh0c0NoYW5nZSgpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgICB0aGlzLmxvYWRDb250ZXh0cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxvYWRDb250ZXh0cygpO1xyXG4gICAgICB0aGlzLmhhbmRsZUNvbnRleHRzQ2hhbmdlKGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldChwZXJtaXNzaW9ucz86IHN0cmluZ1tdLCBoaWRkZW4/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxDb250ZXh0c0xpc3Q+IHtcclxuICAgIGxldCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzJztcclxuICAgIGlmIChwZXJtaXNzaW9ucyAmJiB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQpIHtcclxuICAgICAgdXJsICs9ICc/cGVybWlzc2lvbj0nICsgcGVybWlzc2lvbnMuam9pbigpO1xyXG4gICAgICBpZiAoaGlkZGVuKSB7XHJcbiAgICAgICAgdXJsICs9ICcmaGlkZGVuPXRydWUnO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxDb250ZXh0c0xpc3Q+KHVybCk7XHJcbiAgfVxyXG5cclxuICBnZXRCeUlkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENvbnRleHQ+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuYmFzZVVybCArICcvY29udGV4dHMvJyArIGlkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q29udGV4dD4odXJsKTtcclxuICB9XHJcblxyXG4gIGdldERldGFpbHMoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8RGV0YWlsZWRDb250ZXh0PiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmJhc2VVcmx9L2NvbnRleHRzLyR7aWR9L2RldGFpbHNgO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RGV0YWlsZWRDb250ZXh0Pih1cmwpLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3IocmVzLCBpZCk7XHJcbiAgICAgICAgdGhyb3cgcmVzO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldERlZmF1bHQoKTogT2JzZXJ2YWJsZTxEZXRhaWxlZENvbnRleHQ+IHtcclxuICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQpIHtcclxuICAgICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9jb250ZXh0cy9kZWZhdWx0JztcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RGV0YWlsZWRDb250ZXh0Pih1cmwpLnBpcGUoXHJcbiAgICAgICAgdGFwKChjb250ZXh0KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmRlZmF1bHRDb250ZXh0SWQkLm5leHQoY29udGV4dC5pZCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHVyaSA9IHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KCdmYXZvcml0ZS5jb250ZXh0LnVyaScpIGFzIHN0cmluZztcclxuICAgICAgdGhpcy5kZWZhdWx0Q29udGV4dElkJC5uZXh0KHVyaSk7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldENvbnRleHRCeVVyaSh1cmkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0UHJvZmlsQnlVc2VyKCk6IE9ic2VydmFibGU8Q29udGV4dFByb2ZpbHNbXT4ge1xyXG4gICAgaWYgKHRoaXMuYmFzZVVybCkge1xyXG4gICAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL3Byb2ZpbHM/JztcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q29udGV4dFByb2ZpbHNbXT4odXJsKTtcclxuICAgIH1cclxuICAgIHJldHVybiBvZihbXSk7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuYXV0aGVudGljYXRlZCkge1xyXG4gICAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzL2RlZmF1bHQnO1xyXG4gICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCB7IGRlZmF1bHRDb250ZXh0SWQ6IGlkIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zdG9yYWdlU2VydmljZS5zZXQoJ2Zhdm9yaXRlLmNvbnRleHQudXJpJywgaWQpO1xyXG4gICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGhpZGVDb250ZXh0KGlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuYmFzZVVybCArICcvY29udGV4dHMvJyArIGlkICsgJy9oaWRlJztcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIHt9KTtcclxuICB9XHJcblxyXG4gIHNob3dDb250ZXh0KGlkOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuYmFzZVVybCArICcvY29udGV4dHMvJyArIGlkICsgJy9zaG93JztcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdCh1cmwsIHt9KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZShpZDogc3RyaW5nLCBpbXBvcnRlZCA9IGZhbHNlKTogT2JzZXJ2YWJsZTx2b2lkPiB7XHJcbiAgICBjb25zdCBjb250ZXh0czogQ29udGV4dHNMaXN0ID0geyBvdXJzOiBbXSB9O1xyXG4gICAgT2JqZWN0LmtleXModGhpcy5jb250ZXh0cyQudmFsdWUpLmZvckVhY2goXHJcbiAgICAgIChrZXkpID0+XHJcbiAgICAgICAgKGNvbnRleHRzW2tleV0gPSB0aGlzLmNvbnRleHRzJC52YWx1ZVtrZXldLmZpbHRlcigoYykgPT4gYy5pZCAhPT0gaWQpKVxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoaW1wb3J0ZWQpIHtcclxuICAgICAgdGhpcy5pbXBvcnRlZENvbnRleHQgPSB0aGlzLmltcG9ydGVkQ29udGV4dC5maWx0ZXIoKGMpID0+IGMuaWQgIT09IGlkKTtcclxuICAgICAgcmV0dXJuIG9mKHRoaXMuY29udGV4dHMkLm5leHQoY29udGV4dHMpKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzLycgKyBpZDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPHZvaWQ+KHVybCkucGlwZShcclxuICAgICAgdGFwKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmNvbnRleHRzJC5uZXh0KGNvbnRleHRzKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGUoY29udGV4dDogRGV0YWlsZWRDb250ZXh0KTogT2JzZXJ2YWJsZTxDb250ZXh0PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzJztcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDb250ZXh0Pih1cmwsIGNvbnRleHQpLnBpcGUoXHJcbiAgICAgIG1hcCgoY29udGV4dENyZWF0ZWQpID0+IHtcclxuICAgICAgICBpZiAodGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkKSB7XHJcbiAgICAgICAgICBjb250ZXh0Q3JlYXRlZC5wZXJtaXNzaW9uID0gVHlwZVBlcm1pc3Npb25bVHlwZVBlcm1pc3Npb24ud3JpdGVdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb250ZXh0Q3JlYXRlZC5wZXJtaXNzaW9uID0gVHlwZVBlcm1pc3Npb25bVHlwZVBlcm1pc3Npb24ucmVhZF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY29udGV4dHMkLnZhbHVlLm91cnMudW5zaGlmdChjb250ZXh0Q3JlYXRlZCk7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0cyQubmV4dCh0aGlzLmNvbnRleHRzJC52YWx1ZSk7XHJcbiAgICAgICAgcmV0dXJuIGNvbnRleHRDcmVhdGVkO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGNsb25lKGlkOiBzdHJpbmcsIHByb3BlcnRpZXMgPSB7fSk6IE9ic2VydmFibGU8Q29udGV4dD4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9jb250ZXh0cy8nICsgaWQgKyAnL2Nsb25lJztcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDb250ZXh0Pih1cmwsIHByb3BlcnRpZXMpLnBpcGUoXHJcbiAgICAgIG1hcCgoY29udGV4dENsb25lZCkgPT4ge1xyXG4gICAgICAgIGNvbnRleHRDbG9uZWQucGVybWlzc2lvbiA9IFR5cGVQZXJtaXNzaW9uW1R5cGVQZXJtaXNzaW9uLndyaXRlXTtcclxuICAgICAgICB0aGlzLmNvbnRleHRzJC52YWx1ZS5vdXJzLnVuc2hpZnQoY29udGV4dENsb25lZCk7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0cyQubmV4dCh0aGlzLmNvbnRleHRzJC52YWx1ZSk7XHJcbiAgICAgICAgcmV0dXJuIGNvbnRleHRDbG9uZWQ7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlKGlkOiBzdHJpbmcsIGNvbnRleHQ6IENvbnRleHQpOiBPYnNlcnZhYmxlPENvbnRleHQ+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuYmFzZVVybCArICcvY29udGV4dHMvJyArIGlkO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxDb250ZXh0Pih1cmwsIGNvbnRleHQpO1xyXG4gIH1cclxuXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cclxuXHJcbiAgYWRkVG9vbEFzc29jaWF0aW9uKGNvbnRleHRJZDogc3RyaW5nLCB0b29sSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS9jb250ZXh0cy8ke2NvbnRleHRJZH0vdG9vbHNgO1xyXG4gICAgY29uc3QgYXNzb2NpYXRpb24gPSB7XHJcbiAgICAgIHRvb2xJZFxyXG4gICAgfTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDx2b2lkPih1cmwsIGFzc29jaWF0aW9uKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVRvb2xBc3NvY2lhdGlvbihjb250ZXh0SWQ6IHN0cmluZywgdG9vbElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS9jb250ZXh0cy8ke2NvbnRleHRJZH0vdG9vbHMvJHt0b29sSWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlKHVybCk7XHJcbiAgfVxyXG5cclxuICBnZXRQZXJtaXNzaW9ucyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDb250ZXh0UGVybWlzc2lvbltdPiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzLycgKyBpZCArICcvcGVybWlzc2lvbnMnO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q29udGV4dFBlcm1pc3Npb25bXT4odXJsKTtcclxuICB9XHJcblxyXG4gIGFkZFBlcm1pc3Npb25Bc3NvY2lhdGlvbihcclxuICAgIGNvbnRleHRJZDogc3RyaW5nLFxyXG4gICAgcHJvZmlsOiBzdHJpbmcsXHJcbiAgICB0eXBlOiBUeXBlUGVybWlzc2lvblxyXG4gICk6IE9ic2VydmFibGU8Q29udGV4dFBlcm1pc3Npb25bXT4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS9jb250ZXh0cy8ke2NvbnRleHRJZH0vcGVybWlzc2lvbnNgO1xyXG4gICAgY29uc3QgYXNzb2NpYXRpb24gPSB7XHJcbiAgICAgIHByb2ZpbCxcclxuICAgICAgdHlwZVBlcm1pc3Npb246IHR5cGVcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PENvbnRleHRQZXJtaXNzaW9uW10+KHVybCwgYXNzb2NpYXRpb24pLnBpcGUoXHJcbiAgICAgIGNhdGNoRXJyb3IoKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3IocmVzLCB1bmRlZmluZWQsIHRydWUpO1xyXG4gICAgICAgIHRocm93IFtyZXNdOyAvLyBUT0RPIE5vdCBzdXJlIGFib3V0IHRoaXMuXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlUGVybWlzc2lvbkFzc29jaWF0aW9uKFxyXG4gICAgY29udGV4dElkOiBzdHJpbmcsXHJcbiAgICBwZXJtaXNzaW9uSWQ6IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS9jb250ZXh0cy8ke2NvbnRleHRJZH0vcGVybWlzc2lvbnMvJHtwZXJtaXNzaW9uSWR9YDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPHZvaWQ+KHVybCk7XHJcbiAgfVxyXG5cclxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4gIGdldExvY2FsQ29udGV4dHMoKTogT2JzZXJ2YWJsZTxDb250ZXh0c0xpc3Q+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0UGF0aCh0aGlzLm9wdGlvbnMuY29udGV4dExpc3RGaWxlKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PENvbnRleHRzTGlzdD4odXJsKS5waXBlKFxyXG4gICAgICBtYXAoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHsgb3VyczogcmVzIH07XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0TG9jYWxDb250ZXh0KHVyaTogc3RyaW5nKTogT2JzZXJ2YWJsZTxEZXRhaWxlZENvbnRleHQ+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuZ2V0UGF0aChgJHt1cml9Lmpzb25gKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PERldGFpbGVkQ29udGV4dD4odXJsKS5waXBlKFxyXG4gICAgICBtZXJnZU1hcCgocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKCFyZXMuYmFzZSkge1xyXG4gICAgICAgICAgcmV0dXJuIG9mKHJlcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHVybEJhc2UgPSB0aGlzLmdldFBhdGgoYCR7cmVzLmJhc2V9Lmpzb25gKTtcclxuICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldDxEZXRhaWxlZENvbnRleHQ+KHVybEJhc2UpLnBpcGUoXHJcbiAgICAgICAgICBtYXAoKHJlc0Jhc2U6IERldGFpbGVkQ29udGV4dCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCByZXNNZXJnZSA9IHJlcztcclxuICAgICAgICAgICAgcmVzTWVyZ2UubWFwID0gT2JqZWN0VXRpbHMubWVyZ2VEZWVwKHJlc0Jhc2UubWFwLCByZXMubWFwKTtcclxuICAgICAgICAgICAgcmVzTWVyZ2UubGF5ZXJzID0gKHJlc0Jhc2UubGF5ZXJzIHx8IFtdKVxyXG4gICAgICAgICAgICAgIC5jb25jYXQocmVzLmxheWVycyB8fCBbXSlcclxuICAgICAgICAgICAgICAucmV2ZXJzZSgpXHJcbiAgICAgICAgICAgICAgLmZpbHRlcihcclxuICAgICAgICAgICAgICAgIChsLCBpbmRleCwgc2VsZikgPT5cclxuICAgICAgICAgICAgICAgICAgIWwuaWQgfHwgc2VsZi5maW5kSW5kZXgoKGwyKSA9PiBsMi5pZCA9PT0gbC5pZCkgPT09IGluZGV4XHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIC5yZXZlcnNlKCk7XHJcbiAgICAgICAgICAgIHJlc01lcmdlLnRvb2xiYXIgPSByZXMudG9vbGJhciB8fCByZXNCYXNlLnRvb2xiYXI7XHJcbiAgICAgICAgICAgIHJlc01lcmdlLm1lc3NhZ2UgPSByZXMubWVzc2FnZSB8fCByZXNCYXNlLm1lc3NhZ2U7XHJcbiAgICAgICAgICAgIHJlc01lcmdlLm1lc3NhZ2VzID0gcmVzLm1lc3NhZ2VzIHx8IHJlc0Jhc2UubWVzc2FnZXM7XHJcbiAgICAgICAgICAgIHJlc01lcmdlLnRvb2xzID0gKHJlcy50b29scyB8fCBbXSlcclxuICAgICAgICAgICAgICAuY29uY2F0KHJlc0Jhc2UudG9vbHMgfHwgW10pXHJcbiAgICAgICAgICAgICAgLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICh0LCBpbmRleCwgc2VsZikgPT5cclxuICAgICAgICAgICAgICAgICAgc2VsZi5maW5kSW5kZXgoKHQyKSA9PiB0Mi5uYW1lID09PSB0Lm5hbWUpID09PSBpbmRleFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHJldHVybiByZXNNZXJnZTtcclxuICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyLCB1cmkpO1xyXG4gICAgICAgICAgICB0aHJvdyBlcnI7XHJcbiAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIyKSA9PiB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVFcnJvcihlcnIyLCB1cmkpO1xyXG4gICAgICAgIHRocm93IGVycjI7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgbG9hZENvbnRleHRzKHBlcm1pc3Npb25zPzogc3RyaW5nW10sIGhpZGRlbj86IGJvb2xlYW4pIHtcclxuICAgIGxldCByZXF1ZXN0O1xyXG4gICAgaWYgKHRoaXMuYmFzZVVybCkge1xyXG4gICAgICByZXF1ZXN0ID0gdGhpcy5nZXQocGVybWlzc2lvbnMsIGhpZGRlbik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXF1ZXN0ID0gdGhpcy5nZXRMb2NhbENvbnRleHRzKCk7XHJcbiAgICB9XHJcbiAgICByZXF1ZXN0LnN1YnNjcmliZSgoY29udGV4dHMpID0+IHtcclxuICAgICAgY29udGV4dHMub3VycyA9IHRoaXMuaW1wb3J0ZWRDb250ZXh0LmNvbmNhdChjb250ZXh0cy5vdXJzKTtcclxuICAgICAgdGhpcy5jb250ZXh0cyQubmV4dChjb250ZXh0cyk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGxvYWREZWZhdWx0Q29udGV4dCgpIHtcclxuICAgIGNvbnN0IGxvYWRGY3QgPSAoZGlyZWN0ID0gZmFsc2UpID0+IHtcclxuICAgICAgaWYgKCFkaXJlY3QgJiYgdGhpcy5iYXNlVXJsICYmIHRoaXMuYXV0aFNlcnZpY2UuYXV0aGVudGljYXRlZCkge1xyXG4gICAgICAgIHRoaXMuZ2V0RGVmYXVsdCgpLnN1YnNjcmliZShcclxuICAgICAgICAgIChfY29udGV4dDogRGV0YWlsZWRDb250ZXh0KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVmYXVsdENvbnRleHRVcmkgPSBfY29udGV4dC51cmk7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkQ29udGV4dFRvTGlzdChfY29udGV4dCk7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0Q29udGV4dChfY29udGV4dCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRDb250ZXh0SWQkLm5leHQodW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgdGhpcy5sb2FkQ29udGV4dCh0aGlzLmRlZmF1bHRDb250ZXh0VXJpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMubG9hZENvbnRleHQodGhpcy5kZWZhdWx0Q29udGV4dFVyaSk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcblxyXG4gICAgaWYgKHRoaXMucm91dGUgJiYgdGhpcy5yb3V0ZS5vcHRpb25zLmNvbnRleHRLZXkpIHtcclxuICAgICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5waXBlKGRlYm91bmNlVGltZSgxMDApKS5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvbnRleHRQYXJhbSA9IHBhcmFtc1t0aGlzLnJvdXRlLm9wdGlvbnMuY29udGV4dEtleSBhcyBzdHJpbmddO1xyXG4gICAgICAgIGxldCBkaXJlY3QgPSBmYWxzZTtcclxuICAgICAgICBpZiAoY29udGV4dFBhcmFtKSB7XHJcbiAgICAgICAgICB0aGlzLmRlZmF1bHRDb250ZXh0VXJpID0gY29udGV4dFBhcmFtO1xyXG4gICAgICAgICAgZGlyZWN0ID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbG9hZEZjdChkaXJlY3QpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxvYWRGY3QoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxvYWRDb250ZXh0KHVyaTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0JC52YWx1ZTtcclxuXHJcbiAgICBpZiAoY29udGV4dCAmJiBjb250ZXh0LnVyaSA9PT0gdXJpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmdldENvbnRleHRCeVVyaSh1cmkpXHJcbiAgICAgIC5waXBlKGZpcnN0KCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgKF9jb250ZXh0OiBEZXRhaWxlZENvbnRleHQpID0+IHtcclxuICAgICAgICAgIHRoaXMuYWRkQ29udGV4dFRvTGlzdChfY29udGV4dCk7XHJcbiAgICAgICAgICB0aGlzLnNldENvbnRleHQoX2NvbnRleHQpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgaWYgKHVyaSAhPT0gdGhpcy5vcHRpb25zLmRlZmF1bHRDb250ZXh0VXJpKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZENvbnRleHQodGhpcy5vcHRpb25zLmRlZmF1bHRDb250ZXh0VXJpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBzZXRDb250ZXh0KGNvbnRleHQ6IERldGFpbGVkQ29udGV4dCkge1xyXG4gICAgdGhpcy5oYW5kbGVDb250ZXh0TWVzc2FnZShjb250ZXh0KTtcclxuICAgIGNvbnN0IGN1cnJlbnRDb250ZXh0ID0gdGhpcy5jb250ZXh0JC52YWx1ZTtcclxuICAgIGlmIChjdXJyZW50Q29udGV4dCAmJiBjb250ZXh0ICYmIGNvbnRleHQuaWQgPT09IGN1cnJlbnRDb250ZXh0LmlkKSB7XHJcbiAgICAgIGlmIChjb250ZXh0Lm1hcC52aWV3LmtlZXBDdXJyZW50VmlldyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgY29udGV4dC5tYXAudmlldy5rZWVwQ3VycmVudFZpZXcgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29udGV4dCQubmV4dChjb250ZXh0KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghY29udGV4dC5tYXApIHtcclxuICAgICAgY29udGV4dC5tYXAgPSB7IHZpZXc6IHt9IH07XHJcbiAgICB9XHJcblxyXG4gICAgT2JqZWN0LmFzc2lnbihjb250ZXh0Lm1hcC52aWV3LCB0aGlzLm1hcFZpZXdGcm9tUm91dGUpO1xyXG5cclxuICAgIHRoaXMuY29udGV4dCQubmV4dChjb250ZXh0KTtcclxuICB9XHJcblxyXG4gIGxvYWRFZGl0ZWRDb250ZXh0KHVyaTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmdldENvbnRleHRCeVVyaSh1cmkpLnN1YnNjcmliZSgoX2NvbnRleHQ6IERldGFpbGVkQ29udGV4dCkgPT4ge1xyXG4gICAgICB0aGlzLnNldEVkaXRlZENvbnRleHQoX2NvbnRleHQpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRFZGl0ZWRDb250ZXh0KGNvbnRleHQ6IERldGFpbGVkQ29udGV4dCkge1xyXG4gICAgdGhpcy5lZGl0ZWRDb250ZXh0JC5uZXh0KGNvbnRleHQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Q29udGV4dEZyb21NYXAoaWdvTWFwOiBJZ29NYXAsIGVtcHR5PzogYm9vbGVhbik6IERldGFpbGVkQ29udGV4dCB7XHJcbiAgICBjb25zdCB2aWV3ID0gaWdvTWFwLm9sLmdldFZpZXcoKTtcclxuICAgIGNvbnN0IHByb2ogPSB2aWV3LmdldFByb2plY3Rpb24oKS5nZXRDb2RlKCk7XHJcbiAgICBjb25zdCBjZW50ZXI6IGFueSA9IG5ldyBvbFBvaW50KHZpZXcuZ2V0Q2VudGVyKCkpLnRyYW5zZm9ybShcclxuICAgICAgcHJvaixcclxuICAgICAgJ0VQU0c6NDMyNidcclxuICAgICk7XHJcblxyXG4gICAgY29uc3QgY29udGV4dCA9IHtcclxuICAgICAgdXJpOiB1dWlkKCksXHJcbiAgICAgIHRpdGxlOiAnJyxcclxuICAgICAgc2NvcGU6ICdwcml2YXRlJyxcclxuICAgICAgbWFwOiB7XHJcbiAgICAgICAgdmlldzoge1xyXG4gICAgICAgICAgY2VudGVyOiBjZW50ZXIuZ2V0Q29vcmRpbmF0ZXMoKSxcclxuICAgICAgICAgIHpvb206IHZpZXcuZ2V0Wm9vbSgpLFxyXG4gICAgICAgICAgcHJvamVjdGlvbjogcHJvaixcclxuICAgICAgICAgIG1heFpvb21PbkV4dGVudDogaWdvTWFwLnZpZXdDb250cm9sbGVyLm1heFpvb21PbkV4dGVudFxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgbGF5ZXJzOiBbXSxcclxuICAgICAgdG9vbHM6IFtdXHJcbiAgICB9O1xyXG5cclxuICAgIGxldCBsYXllcnMgPSBbXTtcclxuICAgIGlmIChlbXB0eSA9PT0gdHJ1ZSkge1xyXG4gICAgICBsYXllcnMgPSBpZ29NYXAubGF5ZXJzJFxyXG4gICAgICAgIC5nZXRWYWx1ZSgpXHJcbiAgICAgICAgLmZpbHRlcihcclxuICAgICAgICAgIChsYXkpID0+XHJcbiAgICAgICAgICAgIGxheS5iYXNlTGF5ZXIgPT09IHRydWUgfHxcclxuICAgICAgICAgICAgbGF5Lm9wdGlvbnMuaWQgPT09ICdzZWFyY2hQb2ludGVyU3VtbWFyeUlkJ1xyXG4gICAgICAgIClcclxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYS56SW5kZXggLSBiLnpJbmRleCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsYXllcnMgPSBpZ29NYXAubGF5ZXJzJFxyXG4gICAgICAgIC5nZXRWYWx1ZSgpXHJcbiAgICAgICAgLmZpbHRlcigobGF5KSA9PiAhbGF5LmlkLmluY2x1ZGVzKCdXZnNXb3Jrc3BhY2VUYWJsZURlc3QnKSlcclxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYS56SW5kZXggLSBiLnpJbmRleCk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGkgPSAwO1xyXG4gICAgZm9yIChjb25zdCBsIG9mIGxheWVycykge1xyXG4gICAgICBjb25zdCBsYXllcjogYW55ID0gbDtcclxuICAgICAgY29uc3Qgb3B0cyA9IHtcclxuICAgICAgICBpZDogbGF5ZXIub3B0aW9ucy5pZCA/IFN0cmluZyhsYXllci5vcHRpb25zLmlkKSA6IHVuZGVmaW5lZCxcclxuICAgICAgICBsYXllck9wdGlvbnM6IHtcclxuICAgICAgICAgIHRpdGxlOiBsYXllci5vcHRpb25zLnRpdGxlLFxyXG4gICAgICAgICAgekluZGV4OiArK2ksXHJcbiAgICAgICAgICB2aXNpYmxlOiBsYXllci52aXNpYmxlLFxyXG4gICAgICAgICAgc2VjdXJpdHk6IGxheWVyLnNlY3VyaXR5XHJcbiAgICAgICAgfSBhcyBMYXllck9wdGlvbnMsXHJcbiAgICAgICAgc291cmNlT3B0aW9uczoge1xyXG4gICAgICAgICAgdHlwZTogbGF5ZXIuZGF0YVNvdXJjZS5vcHRpb25zLnR5cGUsXHJcbiAgICAgICAgICBwYXJhbXM6IGxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy5wYXJhbXMsXHJcbiAgICAgICAgICB1cmw6IGxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy51cmwsXHJcbiAgICAgICAgICBxdWVyeWFibGU6IGxheWVyLnF1ZXJ5YWJsZVxyXG4gICAgICAgIH1cclxuICAgICAgfTtcclxuICAgICAgaWYgKG9wdHMuc291cmNlT3B0aW9ucy50eXBlKSB7XHJcbiAgICAgICAgY29udGV4dC5sYXllcnMucHVzaChvcHRzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnRleHQudG9vbHMgPSB0aGlzLnRvb2xzLm1hcCgodG9vbCkgPT4ge1xyXG4gICAgICByZXR1cm4geyBpZDogU3RyaW5nKHRvb2wuaWQpLCBnbG9iYWw6IHRvb2wuZ2xvYmFsIH07XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gY29udGV4dDtcclxuICB9XHJcblxyXG4gIGdldENvbnRleHRGcm9tTGF5ZXJzKFxyXG4gICAgaWdvTWFwOiBJZ29NYXAsXHJcbiAgICBsYXllcnM6IExheWVyW10sXHJcbiAgICBuYW1lOiBzdHJpbmcsXHJcbiAgICBrZWVwQ3VycmVudFZpZXc/OiBib29sZWFuXHJcbiAgKTogRGV0YWlsZWRDb250ZXh0IHtcclxuICAgIGNvbnN0IGN1cnJlbnRDb250ZXh0ID0gdGhpcy5jb250ZXh0JC5nZXRWYWx1ZSgpO1xyXG4gICAgY29uc3QgdmlldyA9IGlnb01hcC5vbC5nZXRWaWV3KCk7XHJcbiAgICBjb25zdCBwcm9qID0gdmlldy5nZXRQcm9qZWN0aW9uKCkuZ2V0Q29kZSgpO1xyXG4gICAgY29uc3QgY2VudGVyOiBhbnkgPSBuZXcgb2xQb2ludCh2aWV3LmdldENlbnRlcigpKS50cmFuc2Zvcm0oXHJcbiAgICAgIHByb2osXHJcbiAgICAgICdFUFNHOjQzMjYnXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IGNvbnRleHQ6IERldGFpbGVkQ29udGV4dCA9IHtcclxuICAgICAgdXJpOiBuYW1lLFxyXG4gICAgICB0aXRsZTogbmFtZSxcclxuICAgICAgbWFwOiB7XHJcbiAgICAgICAgdmlldzoge1xyXG4gICAgICAgICAgY2VudGVyOiBjZW50ZXIuZ2V0Q29vcmRpbmF0ZXMoKSxcclxuICAgICAgICAgIHpvb206IHZpZXcuZ2V0Wm9vbSgpLFxyXG4gICAgICAgICAgcHJvamVjdGlvbjogcHJvaixcclxuICAgICAgICAgIGtlZXBDdXJyZW50Vmlld1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgbGF5ZXJzOiBbXSxcclxuICAgICAgdG9vbGJhcjogW10sXHJcbiAgICAgIHRvb2xzOiBbXSxcclxuICAgICAgZXh0cmFGZWF0dXJlczogW11cclxuICAgIH07XHJcblxyXG4gICAgY29uc3QgY3VycmVudExheWVycyA9IGlnb01hcC5sYXllcnMkLmdldFZhbHVlKCk7XHJcbiAgICBjb250ZXh0LmxheWVycyA9IGN1cnJlbnRMYXllcnNcclxuICAgICAgLmZpbHRlcigobCkgPT4gbC5iYXNlTGF5ZXIpXHJcbiAgICAgIC5tYXAoKGwpID0+IHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgYmFzZUxheWVyOiB0cnVlLFxyXG4gICAgICAgICAgc291cmNlT3B0aW9uczogbC5vcHRpb25zLnNvdXJjZU9wdGlvbnMsXHJcbiAgICAgICAgICB0aXRsZTogbC5vcHRpb25zLnRpdGxlLFxyXG4gICAgICAgICAgdmlzaWJsZTogbC52aXNpYmxlXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgbGF5ZXJzLmZvckVhY2goKGxheWVyKSA9PiB7XHJcbiAgICAgIC8vIERvIG5vdCBzZWVtIHRvIHdvcmsgcHJvcGVybHkuIGxheWVyRm91bmQgaXMgYWx3YXlzIHVuZGVmaW5lZC5cclxuICAgICAgY29uc3QgbGF5ZXJGb3VuZCA9IGN1cnJlbnRDb250ZXh0LmxheWVycy5maW5kKChjb250ZXh0TGF5ZXIpID0+IHtcclxuICAgICAgICBjb25zdCBzb3VyY2UgPSBjb250ZXh0TGF5ZXIuc291cmNlO1xyXG4gICAgICAgIHJldHVybiBzb3VyY2UgJiYgbGF5ZXIuaWQgPT09IHNvdXJjZS5pZCAmJiAhY29udGV4dExheWVyLmJhc2VMYXllcjtcclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChsYXllckZvdW5kKSB7XHJcbiAgICAgICAgbGV0IGxheWVyRm91bmRBcyA9IGxheWVyRm91bmQgYXNcclxuICAgICAgICAgIHwgVmVjdG9yTGF5ZXJPcHRpb25zXHJcbiAgICAgICAgICB8IFZlY3RvclRpbGVMYXllck9wdGlvbnM7XHJcbiAgICAgICAgbGV0IGxheWVyU3R5bGUgPSBsYXllckZvdW5kQXMuc3R5bGU7XHJcbiAgICAgICAgaWYgKGxheWVyRm91bmRBcy5pZ29TdHlsZT8uc3R5bGVCeUF0dHJpYnV0ZSkge1xyXG4gICAgICAgICAgbGF5ZXJTdHlsZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9IGVsc2UgaWYgKGxheWVyRm91bmRBcy5pZ29TdHlsZT8uY2x1c3RlckJhc2VTdHlsZSkge1xyXG4gICAgICAgICAgbGF5ZXJTdHlsZSA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgIGRlbGV0ZSBsYXllckZvdW5kLnNvdXJjZU9wdGlvbnNbYHNvdXJjZWBdO1xyXG4gICAgICAgICAgZGVsZXRlIGxheWVyRm91bmQuc291cmNlT3B0aW9uc1tgZm9ybWF0YF07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IG9wdHMgPSB7XHJcbiAgICAgICAgICBiYXNlTGF5ZXI6IGxheWVyRm91bmQuYmFzZUxheWVyLFxyXG4gICAgICAgICAgdGl0bGU6IGxheWVyLm9wdGlvbnMudGl0bGUsXHJcbiAgICAgICAgICB6SW5kZXg6IGxheWVyLnpJbmRleCxcclxuICAgICAgICAgIGlnb1N0eWxlOiB7XHJcbiAgICAgICAgICAgIHN0eWxlQnlBdHRyaWJ1dGU6IGxheWVyRm91bmRBcy5pZ29TdHlsZT8uc3R5bGVCeUF0dHJpYnV0ZSxcclxuICAgICAgICAgICAgY2x1c3RlckJhc2VTdHlsZTogbGF5ZXJGb3VuZEFzLmlnb1N0eWxlPy5jbHVzdGVyQmFzZVN0eWxlXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgc3R5bGU6IGxheWVyU3R5bGUsXHJcbiAgICAgICAgICBjbHVzdGVyUGFyYW06IGxheWVyRm91bmRbYGNsdXN0ZXJQYXJhbWBdLFxyXG4gICAgICAgICAgdmlzaWJsZTogbGF5ZXIudmlzaWJsZSxcclxuICAgICAgICAgIG9wYWNpdHk6IGxheWVyLm9wYWNpdHksXHJcbiAgICAgICAgICBzb3VyY2VPcHRpb25zOiBsYXllckZvdW5kLnNvdXJjZU9wdGlvbnNcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnRleHQubGF5ZXJzLnB1c2gob3B0cyk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgaWYgKCEobGF5ZXIub2wuZ2V0U291cmNlKCkgaW5zdGFuY2VvZiBvbFZlY3RvclNvdXJjZSkpIHtcclxuICAgICAgICAgIGNvbnN0IGNhdGFsb2dMYXllciA9IGxheWVyLm9wdGlvbnM7XHJcbiAgICAgICAgICBjYXRhbG9nTGF5ZXIuekluZGV4ID0gbGF5ZXIuekluZGV4O1xyXG4gICAgICAgICAgKGNhdGFsb2dMYXllci52aXNpYmxlID0gbGF5ZXIudmlzaWJsZSksXHJcbiAgICAgICAgICAgIChjYXRhbG9nTGF5ZXIub3BhY2l0eSA9IGxheWVyLm9wYWNpdHkpO1xyXG4gICAgICAgICAgZGVsZXRlIGNhdGFsb2dMYXllci5zb3VyY2U7XHJcbiAgICAgICAgICBjb250ZXh0LmxheWVycy5wdXNoKGNhdGFsb2dMYXllcik7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IGV4dHJhRmVhdHVyZXMgPSB0aGlzLmdldEV4dHJhRmVhdHVyZXMobGF5ZXIpO1xyXG4gICAgICAgICAgZXh0cmFGZWF0dXJlcy5uYW1lID0gbGF5ZXIub3B0aW9ucy50aXRsZTtcclxuICAgICAgICAgIGV4dHJhRmVhdHVyZXMub3BhY2l0eSA9IGxheWVyLm9wYWNpdHk7XHJcbiAgICAgICAgICBleHRyYUZlYXR1cmVzLnZpc2libGUgPSBsYXllci52aXNpYmxlO1xyXG4gICAgICAgICAgY29udGV4dC5leHRyYUZlYXR1cmVzLnB1c2goZXh0cmFGZWF0dXJlcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb250ZXh0LnRvb2xiYXIgPSB0aGlzLnRvb2xiYXI7XHJcbiAgICBjb250ZXh0LnRvb2xzID0gdGhpcy50b29scztcclxuXHJcbiAgICByZXR1cm4gY29udGV4dDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RXh0cmFGZWF0dXJlcyhsYXllcjogTGF5ZXIpOiBFeHRyYUZlYXR1cmVzIHtcclxuICAgIGNvbnN0IHdyaXRlciA9IG5ldyBHZW9KU09OKCk7XHJcbiAgICBsZXQgb2xGZWF0dXJlczogRmVhdHVyZTxHZW9tZXRyeT5bXTtcclxuICAgIGlmIChsYXllci5vbC5nZXRTb3VyY2UoKSBpbnN0YW5jZW9mIENsdXN0ZXIpIHtcclxuICAgICAgY29uc3QgY2x1c3RlclNvdXJjZSA9IGxheWVyLm9sLmdldFNvdXJjZSgpIGFzIENsdXN0ZXI7XHJcbiAgICAgIG9sRmVhdHVyZXMgPSBjbHVzdGVyU291cmNlLmdldEZlYXR1cmVzKCk7XHJcbiAgICAgIG9sRmVhdHVyZXMgPSAob2xGZWF0dXJlcyBhcyBhbnkpLmZsYXRNYXAoKGNsdXN0ZXI6IGFueSkgPT5cclxuICAgICAgICBjbHVzdGVyLmdldCgnZmVhdHVyZXMnKVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgc291cmNlID0gbGF5ZXIub2wuZ2V0U291cmNlKCkgYXMgb2xWZWN0b3JTb3VyY2U7XHJcbiAgICAgIG9sRmVhdHVyZXMgPSBzb3VyY2UuZ2V0RmVhdHVyZXMoKTtcclxuICAgIH1cclxuICAgIGNvbnN0IGNsZWFuZWRPbEZlYXR1cmVzID0gdGhpcy5leHBvcnRTZXJ2aWNlLmdlbmVyYXRlRmVhdHVyZShcclxuICAgICAgb2xGZWF0dXJlcyxcclxuICAgICAgJ0dlb0pTT04nLFxyXG4gICAgICAnX2ZlYXR1cmVTdG9yZSdcclxuICAgICk7XHJcbiAgICBjb25zdCBmZWF0dXJlcyA9IHdyaXRlci53cml0ZUZlYXR1cmVzKGNsZWFuZWRPbEZlYXR1cmVzLCB7XHJcbiAgICAgIGRhdGFQcm9qZWN0aW9uOiAnRVBTRzo0MzI2JyxcclxuICAgICAgZmVhdHVyZVByb2plY3Rpb246ICdFUFNHOjM4NTcnXHJcbiAgICB9KTtcclxuICAgIHJldHVybiBKU09OLnBhcnNlKGZlYXR1cmVzKTtcclxuICB9XHJcblxyXG4gIHNldFRvb2xzKHRvb2xzOiBUb29sW10pIHtcclxuICAgIHRoaXMudG9vbHMgPSB0b29scztcclxuICB9XHJcblxyXG4gIHNldFRvb2xiYXIodG9vbGJhcjogc3RyaW5nW10pIHtcclxuICAgIHRoaXMudG9vbGJhciA9IHRvb2xiYXI7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUNvbnRleHRNZXNzYWdlKGNvbnRleHQ6IERldGFpbGVkQ29udGV4dCkge1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmNvbnRleHQkLnZhbHVlICYmXHJcbiAgICAgIGNvbnRleHQudXJpICYmXHJcbiAgICAgIHRoaXMuY29udGV4dCQudmFsdWUudXJpICE9PSBjb250ZXh0LnVyaVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UucmVtb3ZlQWxsQXJlTm90RXJyb3IoKTtcclxuICAgIH1cclxuXHJcbiAgICBjb250ZXh0Lm1lc3NhZ2VzID0gY29udGV4dC5tZXNzYWdlcyA/IGNvbnRleHQubWVzc2FnZXMgOiBbXTtcclxuICAgIGNvbnRleHQubWVzc2FnZXMucHVzaChjb250ZXh0Lm1lc3NhZ2UpO1xyXG4gICAgY29udGV4dC5tZXNzYWdlcy5tYXAoKG1lc3NhZ2UpID0+IHtcclxuICAgICAgaWYgKG1lc3NhZ2UpIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLm1lc3NhZ2UobWVzc2FnZSBhcyBNZXNzYWdlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldENvbnRleHRCeVVyaSh1cmk6IHN0cmluZyk6IE9ic2VydmFibGU8RGV0YWlsZWRDb250ZXh0PiB7XHJcbiAgICBpZiAodGhpcy5iYXNlVXJsKSB7XHJcbiAgICAgIGxldCBjb250ZXh0VG9Mb2FkO1xyXG4gICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyh0aGlzLmNvbnRleHRzJC52YWx1ZSkpIHtcclxuICAgICAgICBjb250ZXh0VG9Mb2FkID0gdGhpcy5jb250ZXh0cyQudmFsdWVba2V5XS5maW5kKChjKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gYy51cmkgPT09IHVyaTtcclxuICAgICAgICB9KTtcclxuICAgICAgICBpZiAoY29udGV4dFRvTG9hZCkge1xyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoY29udGV4dFRvTG9hZCAmJiBjb250ZXh0VG9Mb2FkLmltcG9ydGVkKSB7XHJcbiAgICAgICAgcmV0dXJuIG9mKGNvbnRleHRUb0xvYWQpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvLyBUT0RPIDogdXNlIGFsd2F5cyBpZCBvciB1cmlcclxuICAgICAgY29uc3QgaWQgPSBjb250ZXh0VG9Mb2FkID8gY29udGV4dFRvTG9hZC5pZCA6IHVyaTtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0RGV0YWlscyhpZCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaW1wb3J0ZWRDb250ZXh0ID0gdGhpcy5jb250ZXh0cyQudmFsdWUub3Vycy5maW5kKChjdXJyZW50Q29udGV4dCkgPT4ge1xyXG4gICAgICByZXR1cm4gY3VycmVudENvbnRleHQudXJpID09PSB1cmkgJiYgY3VycmVudENvbnRleHQuaW1wb3J0ZWQgPT09IHRydWU7XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoaW1wb3J0ZWRDb250ZXh0KSB7XHJcbiAgICAgIHJldHVybiBvZihpbXBvcnRlZENvbnRleHQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZ2V0TG9jYWxDb250ZXh0KHVyaSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRDb250ZXh0TGF5ZXJzKGlnb01hcDogSWdvTWFwKSB7XHJcbiAgICBjb25zdCBsYXllcnM6IExheWVyW10gPSBbXTtcclxuICAgIGNvbnN0IG1hcExheWVycyA9IGlnb01hcC5sYXllcnMkLmdldFZhbHVlKCk7XHJcbiAgICBtYXBMYXllcnMuZm9yRWFjaCgobGF5ZXIpID0+IHtcclxuICAgICAgaWYgKCFsYXllci5iYXNlTGF5ZXIgJiYgbGF5ZXIub3B0aW9ucy5pZCAhPT0gJ3NlYXJjaFBvaW50ZXJTdW1tYXJ5SWQnKSB7XHJcbiAgICAgICAgbGF5ZXJzLnB1c2gobGF5ZXIpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBsYXllcnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlYWRQYXJhbXNGcm9tUm91dGUoKSB7XHJcbiAgICBpZiAoIXRoaXMucm91dGUpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcclxuICAgICAgY29uc3QgY2VudGVyS2V5ID0gdGhpcy5yb3V0ZS5vcHRpb25zLmNlbnRlcktleTtcclxuICAgICAgaWYgKGNlbnRlcktleSAmJiBwYXJhbXNbY2VudGVyS2V5IGFzIHN0cmluZ10pIHtcclxuICAgICAgICBjb25zdCBjZW50ZXJQYXJhbXMgPSBwYXJhbXNbY2VudGVyS2V5IGFzIHN0cmluZ107XHJcbiAgICAgICAgdGhpcy5tYXBWaWV3RnJvbVJvdXRlLmNlbnRlciA9IGNlbnRlclBhcmFtcy5zcGxpdCgnLCcpLm1hcChOdW1iZXIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBwcm9qZWN0aW9uS2V5ID0gdGhpcy5yb3V0ZS5vcHRpb25zLnByb2plY3Rpb25LZXk7XHJcbiAgICAgIGlmIChwcm9qZWN0aW9uS2V5ICYmIHBhcmFtc1twcm9qZWN0aW9uS2V5IGFzIHN0cmluZ10pIHtcclxuICAgICAgICBjb25zdCBwcm9qZWN0aW9uUGFyYW0gPSBwYXJhbXNbcHJvamVjdGlvbktleSBhcyBzdHJpbmddO1xyXG4gICAgICAgIHRoaXMubWFwVmlld0Zyb21Sb3V0ZS5wcm9qZWN0aW9uID0gcHJvamVjdGlvblBhcmFtO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCB6b29tS2V5ID0gdGhpcy5yb3V0ZS5vcHRpb25zLnpvb21LZXk7XHJcbiAgICAgIGlmICh6b29tS2V5ICYmIHBhcmFtc1t6b29tS2V5IGFzIHN0cmluZ10pIHtcclxuICAgICAgICBjb25zdCB6b29tUGFyYW0gPSBwYXJhbXNbem9vbUtleSBhcyBzdHJpbmddO1xyXG4gICAgICAgIHRoaXMubWFwVmlld0Zyb21Sb3V0ZS56b29tID0gTnVtYmVyKHpvb21QYXJhbSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRQYXRoKGZpbGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgYmFzZVBhdGggPSB0aGlzLm9wdGlvbnMuYmFzZVBhdGgucmVwbGFjZSgvXFwvJC8sICcnKTtcclxuXHJcbiAgICByZXR1cm4gYCR7YmFzZVBhdGh9LyR7ZmlsZX1gO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVFcnJvcihcclxuICAgIGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSxcclxuICAgIHVyaTogc3RyaW5nLFxyXG4gICAgcGVybWlzc2lvbkVycm9yPzogYm9vbGVhblxyXG4gICkge1xyXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuY29udGV4dHMkLnZhbHVlLm91cnMuZmluZCgob2JqKSA9PiBvYmoudXJpID09PSB1cmkpO1xyXG4gICAgY29uc3QgdGl0bGVDb250ZXh0ID0gY29udGV4dCA/IGNvbnRleHQudGl0bGUgOiB1cmk7XHJcbiAgICBlcnJvci5lcnJvci50aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAnaWdvLmNvbnRleHQuY29udGV4dE1hbmFnZXIuaW52YWxpZC50aXRsZSdcclxuICAgICk7XHJcblxyXG4gICAgZXJyb3IuZXJyb3IubWVzc2FnZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAnaWdvLmNvbnRleHQuY29udGV4dE1hbmFnZXIuaW52YWxpZC50ZXh0JyxcclxuICAgICAgeyB2YWx1ZTogdGl0bGVDb250ZXh0IH1cclxuICAgICk7XHJcblxyXG4gICAgZXJyb3IuZXJyb3IudG9EaXNwbGF5ID0gdHJ1ZTtcclxuXHJcbiAgICBpZiAocGVybWlzc2lvbkVycm9yKSB7XHJcbiAgICAgIGVycm9yLmVycm9yLnRpdGxlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmVycm9ycy5hZGRQZXJtaXNzaW9uVGl0bGUnXHJcbiAgICAgICk7XHJcbiAgICAgIGVycm9yLmVycm9yLm1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAnaWdvLmNvbnRleHQuY29udGV4dE1hbmFnZXIuZXJyb3JzLmFkZFBlcm1pc3Npb24nXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAnaWdvLmNvbnRleHQuY29udGV4dE1hbmFnZXIuZXJyb3JzLmFkZFBlcm1pc3Npb24nLFxyXG4gICAgICAnaWdvLmNvbnRleHQuY29udGV4dE1hbmFnZXIuZXJyb3JzLmFkZFBlcm1pc3Npb25UaXRsZSdcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUNvbnRleHRzQ2hhbmdlKGtlZXBDdXJyZW50Q29udGV4dCA9IHRydWUpIHtcclxuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNvbnRleHQkLnZhbHVlO1xyXG4gICAgY29uc3QgZWRpdGVkQ29udGV4dCA9IHRoaXMuZWRpdGVkQ29udGV4dCQudmFsdWU7XHJcbiAgICBpZiAoIWNvbnRleHQgfHwgY29udGV4dC51cmkgPT09IHRoaXMub3B0aW9ucy5kZWZhdWx0Q29udGV4dFVyaSkge1xyXG4gICAgICBrZWVwQ3VycmVudENvbnRleHQgPSBmYWxzZTtcclxuICAgIH1cclxuICAgIGlmICgha2VlcEN1cnJlbnRDb250ZXh0IHx8ICF0aGlzLmZpbmRDb250ZXh0KGNvbnRleHQpKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbnRleHRVcmkgPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMubG9hZERlZmF1bHRDb250ZXh0KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmdldENvbnRleHRCeVVyaShjb250ZXh0LnVyaSlcclxuICAgICAgICAucGlwZShmaXJzdCgpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKG5ld0NvbnRleHQ6IERldGFpbGVkQ29udGV4dCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50b29sc0NoYW5nZWQkLm5leHQobmV3Q29udGV4dCk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5iYXNlVXJsICYmIHRoaXMuYXV0aFNlcnZpY2UuYXV0aGVudGljYXRlZCkge1xyXG4gICAgICAgIHRoaXMuZ2V0RGVmYXVsdCgpLnN1YnNjcmliZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBjb25zdCBlZGl0ZWRGb3VuZCA9IHRoaXMuZmluZENvbnRleHQoZWRpdGVkQ29udGV4dCk7XHJcbiAgICBpZiAoIWVkaXRlZEZvdW5kIHx8IGVkaXRlZEZvdW5kLnBlcm1pc3Npb24gIT09ICd3cml0ZScpIHtcclxuICAgICAgdGhpcy5zZXRFZGl0ZWRDb250ZXh0KHVuZGVmaW5lZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZENvbnRleHRUb0xpc3QoY29udGV4dDogQ29udGV4dCkge1xyXG4gICAgY29uc3QgY29udGV4dEZvdW5kID0gdGhpcy5maW5kQ29udGV4dChjb250ZXh0KTtcclxuICAgIGlmICghY29udGV4dEZvdW5kKSB7XHJcbiAgICAgIGNvbnN0IGNvbnRleHRTaW1wbGlmaWUgPSB7XHJcbiAgICAgICAgaWQ6IGNvbnRleHQuaWQsXHJcbiAgICAgICAgdXJpOiBjb250ZXh0LnVyaSxcclxuICAgICAgICB0aXRsZTogY29udGV4dC50aXRsZSxcclxuICAgICAgICBzY29wZTogY29udGV4dC5zY29wZSxcclxuICAgICAgICBwZXJtaXNzaW9uOiBUeXBlUGVybWlzc2lvbltUeXBlUGVybWlzc2lvbi5yZWFkXVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgaWYgKHRoaXMuY29udGV4dHMkLnZhbHVlICYmIHRoaXMuY29udGV4dHMkLnZhbHVlLnB1YmxpYykge1xyXG4gICAgICAgIHRoaXMuY29udGV4dHMkLnZhbHVlLnB1YmxpYy5wdXNoKGNvbnRleHRTaW1wbGlmaWUpO1xyXG4gICAgICAgIHRoaXMuY29udGV4dHMkLm5leHQodGhpcy5jb250ZXh0cyQudmFsdWUpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpbmRDb250ZXh0KGNvbnRleHQ6IENvbnRleHQpIHtcclxuICAgIGlmICghY29udGV4dCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29udGV4dHMgPSB0aGlzLmNvbnRleHRzJC52YWx1ZTtcclxuICAgIGxldCBmb3VuZDtcclxuICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGNvbnRleHRzKSkge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IGNvbnRleHRzW2tleV07XHJcbiAgICAgIGZvdW5kID0gdmFsdWUuZmluZChcclxuICAgICAgICAoYykgPT5cclxuICAgICAgICAgIChjb250ZXh0LmlkICYmIGMuaWQgPT09IGNvbnRleHQuaWQpIHx8XHJcbiAgICAgICAgICAoY29udGV4dC51cmkgJiYgYy51cmkgPT09IGNvbnRleHQudXJpKVxyXG4gICAgICApO1xyXG4gICAgICBpZiAoZm91bmQpIHtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmb3VuZDtcclxuICB9XHJcbn1cclxuIl19
662
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29udGV4dC9zcmMvbGliL2NvbnRleHQtbWFuYWdlci9zaGFyZWQvY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQXFCLE1BQU0sc0JBQXNCLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV6QyxPQUFPLEVBQ0wsYUFBYSxFQUNiLGVBQWUsRUFFZixjQUFjLEVBQ2QsWUFBWSxFQUNaLGNBQWMsRUFDZixNQUFNLFlBQVksQ0FBQztBQVFwQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRWhELE9BQU8sT0FBTyxNQUFNLG1CQUFtQixDQUFDO0FBRXhDLE9BQU8sT0FBTyxNQUFNLGVBQWUsQ0FBQztBQUNwQyxPQUFPLE9BQU8sTUFBTSxtQkFBbUIsQ0FBQztBQUN4QyxPQUFPLGNBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUc5QyxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDaEUsT0FBTyxFQUNMLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLEdBQUcsRUFDSCxRQUFRLEVBQ1IsSUFBSSxFQUNKLEdBQUcsRUFDSixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7O0FBZWhELE1BQU0sT0FBTyxjQUFjO0lBNkJmO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ1k7SUFuQ2YsUUFB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M0M7U0FDRjtJQUNILENBQUM7SUFFTyxXQUFXLENBQUMsT0FBZ0I7UUFDbEMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztRQUN0QyxJQUFJLEtBQUssQ0FBQztRQUNWLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUN2QyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDNUIsS0FBSyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQ2hCLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDSixDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNuQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQ3pDLENBQUM7WUFDRixJQUFJLEtBQUssRUFBRTtnQkFDVCxNQUFNO2FBQ1A7U0FDRjtRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzt3RUE5d0JVLGNBQWM7Z0VBQWQsY0FBYyxXQUFkLGNBQWMsbUJBRmIsTUFBTTs7dUZBRVAsY0FBYztjQUgxQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQXFDSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJ0BpZ28yL2F1dGgnO1xyXG5pbXBvcnQgeyBUb29sIH0gZnJvbSAnQGlnbzIvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBDb25maWdTZXJ2aWNlLFxyXG4gIExhbmd1YWdlU2VydmljZSxcclxuICBNZXNzYWdlLFxyXG4gIE1lc3NhZ2VTZXJ2aWNlLFxyXG4gIFJvdXRlU2VydmljZSxcclxuICBTdG9yYWdlU2VydmljZVxyXG59IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgdHlwZSB7XHJcbiAgSWdvTWFwLFxyXG4gIExheWVyLFxyXG4gIExheWVyT3B0aW9ucyxcclxuICBWZWN0b3JMYXllck9wdGlvbnMsXHJcbiAgVmVjdG9yVGlsZUxheWVyT3B0aW9uc1xyXG59IGZyb20gJ0BpZ28yL2dlbyc7XHJcbmltcG9ydCB7IEV4cG9ydFNlcnZpY2UgfSBmcm9tICdAaWdvMi9nZW8nO1xyXG5pbXBvcnQgeyBPYmplY3RVdGlscywgdXVpZCB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuXHJcbmltcG9ydCBHZW9KU09OIGZyb20gJ29sL2Zvcm1hdC9HZW9KU09OJztcclxuaW1wb3J0IHsgR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tJztcclxuaW1wb3J0IG9sUG9pbnQgZnJvbSAnb2wvZ2VvbS9Qb2ludCc7XHJcbmltcG9ydCBDbHVzdGVyIGZyb20gJ29sL3NvdXJjZS9DbHVzdGVyJztcclxuaW1wb3J0IG9sVmVjdG9yU291cmNlIGZyb20gJ29sL3NvdXJjZS9WZWN0b3InO1xyXG5cclxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJ29sJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIGNhdGNoRXJyb3IsXHJcbiAgZGVib3VuY2VUaW1lLFxyXG4gIGZpcnN0LFxyXG4gIG1hcCxcclxuICBtZXJnZU1hcCxcclxuICBza2lwLFxyXG4gIHRhcFxyXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IFR5cGVQZXJtaXNzaW9uIH0gZnJvbSAnLi9jb250ZXh0LmVudW0nO1xyXG5pbXBvcnQge1xyXG4gIENvbnRleHQsXHJcbiAgQ29udGV4dE1hcFZpZXcsXHJcbiAgQ29udGV4dFBlcm1pc3Npb24sXHJcbiAgQ29udGV4dFByb2ZpbHMsXHJcbiAgQ29udGV4dFNlcnZpY2VPcHRpb25zLFxyXG4gIENvbnRleHRzTGlzdCxcclxuICBEZXRhaWxlZENvbnRleHQsXHJcbiAgRXh0cmFGZWF0dXJlc1xyXG59IGZyb20gJy4vY29udGV4dC5pbnRlcmZhY2UnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udGV4dFNlcnZpY2Uge1xyXG4gIHB1YmxpYyBjb250ZXh0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGV0YWlsZWRDb250ZXh0Pih1bmRlZmluZWQpO1xyXG4gIHB1YmxpYyBjb250ZXh0cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbnRleHRzTGlzdD4oeyBvdXJzOiBbXSB9KTtcclxuICBwdWJsaWMgZGVmYXVsdENvbnRleHRJZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4odW5kZWZpbmVkKTtcclxuICBwdWJsaWMgZWRpdGVkQ29udGV4dCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PERldGFpbGVkQ29udGV4dD4odW5kZWZpbmVkKTtcclxuICBwdWJsaWMgaW1wb3J0ZWRDb250ZXh0OiBBcnJheTxEZXRhaWxlZENvbnRleHQ+ID0gW107XHJcbiAgcHVibGljIHRvb2xzQ2hhbmdlZCQgPSBuZXcgU3ViamVjdDxEZXRhaWxlZENvbnRleHQ+KCk7XHJcbiAgcHJpdmF0ZSBtYXBWaWV3RnJvbVJvdXRlOiBDb250ZXh0TWFwVmlldyA9IHt9O1xyXG4gIHByaXZhdGUgb3B0aW9uczogQ29udGV4dFNlcnZpY2VPcHRpb25zO1xyXG4gIHByaXZhdGUgYmFzZVVybDogc3RyaW5nO1xyXG5cclxuICAvLyBVbnRpbCB0aGUgQ29udGV4dFNlcnZpY2UgaXMgY29tcGxldGVseSByZWZhY3RvcmVkLCB0aGlzIGlzIG5lZWRlZFxyXG4gIC8vIHRvIHRyYWNrIHRoZSBjdXJyZW50IHRvb2xzXHJcbiAgcHJpdmF0ZSB0b29sczogVG9vbFtdO1xyXG4gIHByaXZhdGUgdG9vbGJhcjogc3RyaW5nW107XHJcblxyXG4gIGdldCBkZWZhdWx0Q29udGV4dFVyaSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgKHRoaXMuc3RvcmFnZVNlcnZpY2UuZ2V0KCdmYXZvcml0ZS5jb250ZXh0LnVyaScpIGFzIHN0cmluZykgfHxcclxuICAgICAgdGhpcy5fZGVmYXVsdENvbnRleHRVcmkgfHxcclxuICAgICAgdGhpcy5vcHRpb25zLmRlZmF1bHRDb250ZXh0VXJpXHJcbiAgICApO1xyXG4gIH1cclxuICBzZXQgZGVmYXVsdENvbnRleHRVcmkodXJpOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2RlZmF1bHRDb250ZXh0VXJpID0gdXJpO1xyXG4gIH1cclxuICBwcml2YXRlIF9kZWZhdWx0Q29udGV4dFVyaTogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgZXhwb3J0U2VydmljZTogRXhwb3J0U2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcm91dGU6IFJvdXRlU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbihcclxuICAgICAge1xyXG4gICAgICAgIGJhc2VQYXRoOiAnY29udGV4dHMnLFxyXG4gICAgICAgIGNvbnRleHRMaXN0RmlsZTogJ19jb250ZXh0cy5qc29uJyxcclxuICAgICAgICBkZWZhdWx0Q29udGV4dFVyaTogJ19kZWZhdWx0J1xyXG4gICAgICB9LFxyXG4gICAgICB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ2NvbnRleHQnKVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmJhc2VVcmwgPSB0aGlzLm9wdGlvbnMudXJsID8/ICcnO1xyXG5cclxuICAgIHRoaXMucmVhZFBhcmFtc0Zyb21Sb3V0ZSgpO1xyXG5cclxuICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmhhc0F1dGhTZXJ2aWNlKSB7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nZ2VkJC5zdWJzY3JpYmUoKGxvZ2dlZCkgPT4ge1xyXG4gICAgICAgIGlmIChsb2dnZWQpIHtcclxuICAgICAgICAgIHRoaXMuY29udGV4dHMkLnBpcGUoc2tpcCgxKSwgZmlyc3QoKSkuc3Vic2NyaWJlKChjKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQ29udGV4dHNDaGFuZ2UoKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5sb2FkQ29udGV4dHMoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5sb2FkQ29udGV4dHMoKTtcclxuICAgICAgdGhpcy5oYW5kbGVDb250ZXh0c0NoYW5nZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQocGVybWlzc2lvbnM/OiBzdHJpbmdbXSwgaGlkZGVuPzogYm9vbGVhbik6IE9ic2VydmFibGU8Q29udGV4dHNMaXN0PiB7XHJcbiAgICBsZXQgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9jb250ZXh0cyc7XHJcbiAgICBpZiAocGVybWlzc2lvbnMgJiYgdGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkKSB7XHJcbiAgICAgIHVybCArPSAnP3Blcm1pc3Npb249JyArIHBlcm1pc3Npb25zLmpvaW4oKTtcclxuICAgICAgaWYgKGhpZGRlbikge1xyXG4gICAgICAgIHVybCArPSAnJmhpZGRlbj10cnVlJztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8Q29udGV4dHNMaXN0Pih1cmwpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QnlJZChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDb250ZXh0PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzLycgKyBpZDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PENvbnRleHQ+KHVybCk7XHJcbiAgfVxyXG5cclxuICBnZXREZXRhaWxzKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPERldGFpbGVkQ29udGV4dD4ge1xyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5iYXNlVXJsfS9jb250ZXh0cy8ke2lkfS9kZXRhaWxzYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PERldGFpbGVkQ29udGV4dD4odXJsKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmhhbmRsZUVycm9yKHJlcywgaWQpO1xyXG4gICAgICAgIHRocm93IHJlcztcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXREZWZhdWx0KCk6IE9ic2VydmFibGU8RGV0YWlsZWRDb250ZXh0PiB7XHJcbiAgICBpZiAodGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkKSB7XHJcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMuYmFzZVVybCArICcvY29udGV4dHMvZGVmYXVsdCc7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PERldGFpbGVkQ29udGV4dD4odXJsKS5waXBlKFxyXG4gICAgICAgIHRhcCgoY29udGV4dCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0Q29udGV4dElkJC5uZXh0KGNvbnRleHQuaWQpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCB1cmkgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldCgnZmF2b3JpdGUuY29udGV4dC51cmknKSBhcyBzdHJpbmc7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbnRleHRJZCQubmV4dCh1cmkpO1xyXG4gICAgICByZXR1cm4gdGhpcy5nZXRDb250ZXh0QnlVcmkodXJpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFByb2ZpbEJ5VXNlcigpOiBPYnNlcnZhYmxlPENvbnRleHRQcm9maWxzW10+IHtcclxuICAgIGlmICh0aGlzLmJhc2VVcmwpIHtcclxuICAgICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9wcm9maWxzPyc7XHJcbiAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PENvbnRleHRQcm9maWxzW10+KHVybCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2YoW10pO1xyXG4gIH1cclxuXHJcbiAgc2V0RGVmYXVsdChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGlmICh0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQpIHtcclxuICAgICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9jb250ZXh0cy9kZWZhdWx0JztcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KHVybCwgeyBkZWZhdWx0Q29udGV4dElkOiBpZCB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0KCdmYXZvcml0ZS5jb250ZXh0LnVyaScsIGlkKTtcclxuICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoaWRlQ29udGV4dChpZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzLycgKyBpZCArICcvaGlkZSc7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCB7fSk7XHJcbiAgfVxyXG5cclxuICBzaG93Q29udGV4dChpZDogc3RyaW5nKSB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzLycgKyBpZCArICcvc2hvdyc7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QodXJsLCB7fSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGUoaWQ6IHN0cmluZywgaW1wb3J0ZWQgPSBmYWxzZSk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgY29uc3QgY29udGV4dHM6IENvbnRleHRzTGlzdCA9IHsgb3VyczogW10gfTtcclxuICAgIE9iamVjdC5rZXlzKHRoaXMuY29udGV4dHMkLnZhbHVlKS5mb3JFYWNoKFxyXG4gICAgICAoa2V5KSA9PlxyXG4gICAgICAgIChjb250ZXh0c1trZXldID0gdGhpcy5jb250ZXh0cyQudmFsdWVba2V5XS5maWx0ZXIoKGMpID0+IGMuaWQgIT09IGlkKSlcclxuICAgICk7XHJcblxyXG4gICAgaWYgKGltcG9ydGVkKSB7XHJcbiAgICAgIHRoaXMuaW1wb3J0ZWRDb250ZXh0ID0gdGhpcy5pbXBvcnRlZENvbnRleHQuZmlsdGVyKChjKSA9PiBjLmlkICE9PSBpZCk7XHJcbiAgICAgIHJldHVybiBvZih0aGlzLmNvbnRleHRzJC5uZXh0KGNvbnRleHRzKSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9jb250ZXh0cy8nICsgaWQ7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTx2b2lkPih1cmwpLnBpcGUoXHJcbiAgICAgIHRhcCgocmVzKSA9PiB7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0cyQubmV4dChjb250ZXh0cyk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlKGNvbnRleHQ6IERldGFpbGVkQ29udGV4dCk6IE9ic2VydmFibGU8Q29udGV4dD4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9jb250ZXh0cyc7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q29udGV4dD4odXJsLCBjb250ZXh0KS5waXBlKFxyXG4gICAgICBtYXAoKGNvbnRleHRDcmVhdGVkKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuYXV0aGVudGljYXRlZCkge1xyXG4gICAgICAgICAgY29udGV4dENyZWF0ZWQucGVybWlzc2lvbiA9IFR5cGVQZXJtaXNzaW9uW1R5cGVQZXJtaXNzaW9uLndyaXRlXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgY29udGV4dENyZWF0ZWQucGVybWlzc2lvbiA9IFR5cGVQZXJtaXNzaW9uW1R5cGVQZXJtaXNzaW9uLnJlYWRdO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNvbnRleHRzJC52YWx1ZS5vdXJzLnVuc2hpZnQoY29udGV4dENyZWF0ZWQpO1xyXG4gICAgICAgIHRoaXMuY29udGV4dHMkLm5leHQodGhpcy5jb250ZXh0cyQudmFsdWUpO1xyXG4gICAgICAgIHJldHVybiBjb250ZXh0Q3JlYXRlZDtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBjbG9uZShpZDogc3RyaW5nLCBwcm9wZXJ0aWVzID0ge30pOiBPYnNlcnZhYmxlPENvbnRleHQ+IHtcclxuICAgIGNvbnN0IHVybCA9IHRoaXMuYmFzZVVybCArICcvY29udGV4dHMvJyArIGlkICsgJy9jbG9uZSc7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8Q29udGV4dD4odXJsLCBwcm9wZXJ0aWVzKS5waXBlKFxyXG4gICAgICBtYXAoKGNvbnRleHRDbG9uZWQpID0+IHtcclxuICAgICAgICBjb250ZXh0Q2xvbmVkLnBlcm1pc3Npb24gPSBUeXBlUGVybWlzc2lvbltUeXBlUGVybWlzc2lvbi53cml0ZV07XHJcbiAgICAgICAgdGhpcy5jb250ZXh0cyQudmFsdWUub3Vycy51bnNoaWZ0KGNvbnRleHRDbG9uZWQpO1xyXG4gICAgICAgIHRoaXMuY29udGV4dHMkLm5leHQodGhpcy5jb250ZXh0cyQudmFsdWUpO1xyXG4gICAgICAgIHJldHVybiBjb250ZXh0Q2xvbmVkO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZShpZDogc3RyaW5nLCBjb250ZXh0OiBDb250ZXh0KTogT2JzZXJ2YWJsZTxDb250ZXh0PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VVcmwgKyAnL2NvbnRleHRzLycgKyBpZDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8Q29udGV4dD4odXJsLCBjb250ZXh0KTtcclxuICB9XHJcblxyXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XHJcblxyXG4gIGFkZFRvb2xBc3NvY2lhdGlvbihjb250ZXh0SWQ6IHN0cmluZywgdG9vbElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYmFzZVVybH0vY29udGV4dHMvJHtjb250ZXh0SWR9L3Rvb2xzYDtcclxuICAgIGNvbnN0IGFzc29jaWF0aW9uID0ge1xyXG4gICAgICB0b29sSWRcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8dm9pZD4odXJsLCBhc3NvY2lhdGlvbik7XHJcbiAgfVxyXG5cclxuICBkZWxldGVUb29sQXNzb2NpYXRpb24oY29udGV4dElkOiBzdHJpbmcsIHRvb2xJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYmFzZVVybH0vY29udGV4dHMvJHtjb250ZXh0SWR9L3Rvb2xzLyR7dG9vbElkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZSh1cmwpO1xyXG4gIH1cclxuXHJcbiAgZ2V0UGVybWlzc2lvbnMoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q29udGV4dFBlcm1pc3Npb25bXT4ge1xyXG4gICAgY29uc3QgdXJsID0gdGhpcy5iYXNlVXJsICsgJy9jb250ZXh0cy8nICsgaWQgKyAnL3Blcm1pc3Npb25zJztcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PENvbnRleHRQZXJtaXNzaW9uW10+KHVybCk7XHJcbiAgfVxyXG5cclxuICBhZGRQZXJtaXNzaW9uQXNzb2NpYXRpb24oXHJcbiAgICBjb250ZXh0SWQ6IHN0cmluZyxcclxuICAgIHByb2ZpbDogc3RyaW5nLFxyXG4gICAgdHlwZTogVHlwZVBlcm1pc3Npb25cclxuICApOiBPYnNlcnZhYmxlPENvbnRleHRQZXJtaXNzaW9uW10+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYmFzZVVybH0vY29udGV4dHMvJHtjb250ZXh0SWR9L3Blcm1pc3Npb25zYDtcclxuICAgIGNvbnN0IGFzc29jaWF0aW9uID0ge1xyXG4gICAgICBwcm9maWwsXHJcbiAgICAgIHR5cGVQZXJtaXNzaW9uOiB0eXBlXHJcbiAgICB9O1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxDb250ZXh0UGVybWlzc2lvbltdPih1cmwsIGFzc29jaWF0aW9uKS5waXBlKFxyXG4gICAgICBjYXRjaEVycm9yKChyZXMpID0+IHtcclxuICAgICAgICB0aGlzLmhhbmRsZUVycm9yKHJlcywgdW5kZWZpbmVkLCB0cnVlKTtcclxuICAgICAgICB0aHJvdyBbcmVzXTsgLy8gVE9ETyBOb3Qgc3VyZSBhYm91dCB0aGlzLlxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZVBlcm1pc3Npb25Bc3NvY2lhdGlvbihcclxuICAgIGNvbnRleHRJZDogc3RyaW5nLFxyXG4gICAgcGVybWlzc2lvbklkOiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuYmFzZVVybH0vY29udGV4dHMvJHtjb250ZXh0SWR9L3Blcm1pc3Npb25zLyR7cGVybWlzc2lvbklkfWA7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTx2b2lkPih1cmwpO1xyXG4gIH1cclxuXHJcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxyXG5cclxuICBnZXRMb2NhbENvbnRleHRzKCk6IE9ic2VydmFibGU8Q29udGV4dHNMaXN0PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmdldFBhdGgodGhpcy5vcHRpb25zLmNvbnRleHRMaXN0RmlsZSk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxDb250ZXh0c0xpc3Q+KHVybCkucGlwZShcclxuICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB7IG91cnM6IHJlcyB9O1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldExvY2FsQ29udGV4dCh1cmk6IHN0cmluZyk6IE9ic2VydmFibGU8RGV0YWlsZWRDb250ZXh0PiB7XHJcbiAgICBjb25zdCB1cmwgPSB0aGlzLmdldFBhdGgoYCR7dXJpfS5qc29uYCk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxEZXRhaWxlZENvbnRleHQ+KHVybCkucGlwZShcclxuICAgICAgbWVyZ2VNYXAoKHJlcykgPT4ge1xyXG4gICAgICAgIGlmICghcmVzLmJhc2UpIHtcclxuICAgICAgICAgIHJldHVybiBvZihyZXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB1cmxCYXNlID0gdGhpcy5nZXRQYXRoKGAke3Jlcy5iYXNlfS5qc29uYCk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8RGV0YWlsZWRDb250ZXh0Pih1cmxCYXNlKS5waXBlKFxyXG4gICAgICAgICAgbWFwKChyZXNCYXNlOiBEZXRhaWxlZENvbnRleHQpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgcmVzTWVyZ2UgPSByZXM7XHJcbiAgICAgICAgICAgIHJlc01lcmdlLm1hcCA9IE9iamVjdFV0aWxzLm1lcmdlRGVlcChyZXNCYXNlLm1hcCwgcmVzLm1hcCk7XHJcbiAgICAgICAgICAgIHJlc01lcmdlLmxheWVycyA9IChyZXNCYXNlLmxheWVycyB8fCBbXSlcclxuICAgICAgICAgICAgICAuY29uY2F0KHJlcy5sYXllcnMgfHwgW10pXHJcbiAgICAgICAgICAgICAgLnJldmVyc2UoKVxyXG4gICAgICAgICAgICAgIC5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAobCwgaW5kZXgsIHNlbGYpID0+XHJcbiAgICAgICAgICAgICAgICAgICFsLmlkIHx8IHNlbGYuZmluZEluZGV4KChsMikgPT4gbDIuaWQgPT09IGwuaWQpID09PSBpbmRleFxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAucmV2ZXJzZSgpO1xyXG4gICAgICAgICAgICByZXNNZXJnZS50b29sYmFyID0gcmVzLnRvb2xiYXIgfHwgcmVzQmFzZS50b29sYmFyO1xyXG4gICAgICAgICAgICByZXNNZXJnZS5tZXNzYWdlID0gcmVzLm1lc3NhZ2UgfHwgcmVzQmFzZS5tZXNzYWdlO1xyXG4gICAgICAgICAgICByZXNNZXJnZS5tZXNzYWdlcyA9IHJlcy5tZXNzYWdlcyB8fCByZXNCYXNlLm1lc3NhZ2VzO1xyXG4gICAgICAgICAgICByZXNNZXJnZS50b29scyA9IChyZXMudG9vbHMgfHwgW10pXHJcbiAgICAgICAgICAgICAgLmNvbmNhdChyZXNCYXNlLnRvb2xzIHx8IFtdKVxyXG4gICAgICAgICAgICAgIC5maWx0ZXIoXHJcbiAgICAgICAgICAgICAgICAodCwgaW5kZXgsIHNlbGYpID0+XHJcbiAgICAgICAgICAgICAgICAgIHNlbGYuZmluZEluZGV4KCh0MikgPT4gdDIubmFtZSA9PT0gdC5uYW1lKSA9PT0gaW5kZXhcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICByZXR1cm4gcmVzTWVyZ2U7XHJcbiAgICAgICAgICB9KSxcclxuICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmhhbmRsZUVycm9yKGVyciwgdXJpKTtcclxuICAgICAgICAgICAgdGhyb3cgZXJyO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoZXJyMikgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZXJyMiwgdXJpKTtcclxuICAgICAgICB0aHJvdyBlcnIyO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGxvYWRDb250ZXh0cyhwZXJtaXNzaW9ucz86IHN0cmluZ1tdLCBoaWRkZW4/OiBib29sZWFuKSB7XHJcbiAgICBsZXQgcmVxdWVzdDtcclxuICAgIGlmICh0aGlzLmJhc2VVcmwpIHtcclxuICAgICAgcmVxdWVzdCA9IHRoaXMuZ2V0KHBlcm1pc3Npb25zLCBoaWRkZW4pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVxdWVzdCA9IHRoaXMuZ2V0TG9jYWxDb250ZXh0cygpO1xyXG4gICAgfVxyXG4gICAgcmVxdWVzdC5zdWJzY3JpYmUoKGNvbnRleHRzKSA9PiB7XHJcbiAgICAgIGNvbnRleHRzLm91cnMgPSB0aGlzLmltcG9ydGVkQ29udGV4dC5jb25jYXQoY29udGV4dHMub3Vycyk7XHJcbiAgICAgIHRoaXMuY29udGV4dHMkLm5leHQoY29udGV4dHMpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBsb2FkRGVmYXVsdENvbnRleHQoKSB7XHJcbiAgICBjb25zdCBsb2FkRmN0ID0gKGRpcmVjdCA9IGZhbHNlKSA9PiB7XHJcbiAgICAgIGlmICghZGlyZWN0ICYmIHRoaXMuYmFzZVVybCAmJiB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQpIHtcclxuICAgICAgICB0aGlzLmdldERlZmF1bHQoKS5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAoX2NvbnRleHQ6IERldGFpbGVkQ29udGV4dCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmRlZmF1bHRDb250ZXh0VXJpID0gX2NvbnRleHQudXJpO1xyXG4gICAgICAgICAgICB0aGlzLmFkZENvbnRleHRUb0xpc3QoX2NvbnRleHQpO1xyXG4gICAgICAgICAgICB0aGlzLnNldENvbnRleHQoX2NvbnRleHQpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kZWZhdWx0Q29udGV4dElkJC5uZXh0KHVuZGVmaW5lZCk7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZENvbnRleHQodGhpcy5kZWZhdWx0Q29udGV4dFVyaSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmxvYWRDb250ZXh0KHRoaXMuZGVmYXVsdENvbnRleHRVcmkpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG5cclxuICAgIGlmICh0aGlzLnJvdXRlICYmIHRoaXMucm91dGUub3B0aW9ucy5jb250ZXh0S2V5KSB7XHJcbiAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMucGlwZShkZWJvdW5jZVRpbWUoMTAwKSkuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcclxuICAgICAgICBjb25zdCBjb250ZXh0UGFyYW0gPSBwYXJhbXNbdGhpcy5yb3V0ZS5vcHRpb25zLmNvbnRleHRLZXkgYXMgc3RyaW5nXTtcclxuICAgICAgICBsZXQgZGlyZWN0ID0gZmFsc2U7XHJcbiAgICAgICAgaWYgKGNvbnRleHRQYXJhbSkge1xyXG4gICAgICAgICAgdGhpcy5kZWZhdWx0Q29udGV4dFVyaSA9IGNvbnRleHRQYXJhbTtcclxuICAgICAgICAgIGRpcmVjdCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGxvYWRGY3QoZGlyZWN0KTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsb2FkRmN0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsb2FkQ29udGV4dCh1cmk6IHN0cmluZykge1xyXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuY29udGV4dCQudmFsdWU7XHJcblxyXG4gICAgaWYgKGNvbnRleHQgJiYgY29udGV4dC51cmkgPT09IHVyaSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5nZXRDb250ZXh0QnlVcmkodXJpKVxyXG4gICAgICAucGlwZShmaXJzdCgpKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIChfY29udGV4dDogRGV0YWlsZWRDb250ZXh0KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmFkZENvbnRleHRUb0xpc3QoX2NvbnRleHQpO1xyXG4gICAgICAgICAgdGhpcy5zZXRDb250ZXh0KF9jb250ZXh0KTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIChlcnIpID0+IHtcclxuICAgICAgICAgIGlmICh1cmkgIT09IHRoaXMub3B0aW9ucy5kZWZhdWx0Q29udGV4dFVyaSkge1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRDb250ZXh0KHRoaXMub3B0aW9ucy5kZWZhdWx0Q29udGV4dFVyaSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgc2V0Q29udGV4dChjb250ZXh0OiBEZXRhaWxlZENvbnRleHQpIHtcclxuICAgIHRoaXMuaGFuZGxlQ29udGV4dE1lc3NhZ2UoY29udGV4dCk7XHJcbiAgICBjb25zdCBjdXJyZW50Q29udGV4dCA9IHRoaXMuY29udGV4dCQudmFsdWU7XHJcbiAgICBpZiAoY3VycmVudENvbnRleHQgJiYgY29udGV4dCAmJiBjb250ZXh0LmlkID09PSBjdXJyZW50Q29udGV4dC5pZCkge1xyXG4gICAgICBpZiAoY29udGV4dC5tYXAudmlldy5rZWVwQ3VycmVudFZpZXcgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIGNvbnRleHQubWFwLnZpZXcua2VlcEN1cnJlbnRWaWV3ID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvbnRleHQkLm5leHQoY29udGV4dCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoIWNvbnRleHQubWFwKSB7XHJcbiAgICAgIGNvbnRleHQubWFwID0geyB2aWV3OiB7fSB9O1xyXG4gICAgfVxyXG5cclxuICAgIE9iamVjdC5hc3NpZ24oY29udGV4dC5tYXAudmlldywgdGhpcy5tYXBWaWV3RnJvbVJvdXRlKTtcclxuXHJcbiAgICB0aGlzLmNvbnRleHQkLm5leHQoY29udGV4dCk7XHJcbiAgfVxyXG5cclxuICBsb2FkRWRpdGVkQ29udGV4dCh1cmk6IHN0cmluZykge1xyXG4gICAgdGhpcy5nZXRDb250ZXh0QnlVcmkodXJpKS5zdWJzY3JpYmUoKF9jb250ZXh0OiBEZXRhaWxlZENvbnRleHQpID0+IHtcclxuICAgICAgdGhpcy5zZXRFZGl0ZWRDb250ZXh0KF9jb250ZXh0KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0RWRpdGVkQ29udGV4dChjb250ZXh0OiBEZXRhaWxlZENvbnRleHQpIHtcclxuICAgIHRoaXMuZWRpdGVkQ29udGV4dCQubmV4dChjb250ZXh0KTtcclxuICB9XHJcblxyXG4gIGdldENvbnRleHRGcm9tTWFwKGlnb01hcDogSWdvTWFwLCBlbXB0eT86IGJvb2xlYW4pOiBEZXRhaWxlZENvbnRleHQge1xyXG4gICAgY29uc3QgdmlldyA9IGlnb01hcC5vbC5nZXRWaWV3KCk7XHJcbiAgICBjb25zdCBwcm9qID0gdmlldy5nZXRQcm9qZWN0aW9uKCkuZ2V0Q29kZSgpO1xyXG4gICAgY29uc3QgY2VudGVyOiBhbnkgPSBuZXcgb2xQb2ludCh2aWV3LmdldENlbnRlcigpKS50cmFuc2Zvcm0oXHJcbiAgICAgIHByb2osXHJcbiAgICAgICdFUFNHOjQzMjYnXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IGNvbnRleHQgPSB7XHJcbiAgICAgIHVyaTogdXVpZCgpLFxyXG4gICAgICB0aXRsZTogJycsXHJcbiAgICAgIHNjb3BlOiAncHJpdmF0ZScsXHJcbiAgICAgIG1hcDoge1xyXG4gICAgICAgIHZpZXc6IHtcclxuICAgICAgICAgIGNlbnRlcjogY2VudGVyLmdldENvb3JkaW5hdGVzKCksXHJcbiAgICAgICAgICB6b29tOiB2aWV3LmdldFpvb20oKSxcclxuICAgICAgICAgIHByb2plY3Rpb246IHByb2osXHJcbiAgICAgICAgICBtYXhab29tT25FeHRlbnQ6IGlnb01hcC52aWV3Q29udHJvbGxlci5tYXhab29tT25FeHRlbnRcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGxheWVyczogW10sXHJcbiAgICAgIHRvb2xzOiBbXVxyXG4gICAgfTtcclxuXHJcbiAgICBsZXQgbGF5ZXJzID0gW107XHJcbiAgICBpZiAoZW1wdHkgPT09IHRydWUpIHtcclxuICAgICAgbGF5ZXJzID0gaWdvTWFwLmxheWVycyRcclxuICAgICAgICAuZ2V0VmFsdWUoKVxyXG4gICAgICAgIC5maWx0ZXIoXHJcbiAgICAgICAgICAobGF5KSA9PlxyXG4gICAgICAgICAgICBsYXkuYmFzZUxheWVyID09PSB0cnVlIHx8XHJcbiAgICAgICAgICAgIGxheS5vcHRpb25zLmlkID09PSAnc2VhcmNoUG9pbnRlclN1bW1hcnlJZCdcclxuICAgICAgICApXHJcbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEuekluZGV4IC0gYi56SW5kZXgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGF5ZXJzID0gaWdvTWFwLmxheWVycyRcclxuICAgICAgICAuZ2V0VmFsdWUoKVxyXG4gICAgICAgIC5maWx0ZXIoKGxheSkgPT4gIWxheS5pZC5pbmNsdWRlcygnV2ZzV29ya3NwYWNlVGFibGVEZXN0JykpXHJcbiAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEuekluZGV4IC0gYi56SW5kZXgpO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBpID0gMDtcclxuICAgIGZvciAoY29uc3QgbCBvZiBsYXllcnMpIHtcclxuICAgICAgY29uc3QgbGF5ZXI6IGFueSA9IGw7XHJcbiAgICAgIGNvbnN0IG9wdHMgPSB7XHJcbiAgICAgICAgaWQ6IGxheWVyLm9wdGlvbnMuaWQgPyBTdHJpbmcobGF5ZXIub3B0aW9ucy5pZCkgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgbGF5ZXJPcHRpb25zOiB7XHJcbiAgICAgICAgICB0aXRsZTogbGF5ZXIub3B0aW9ucy50aXRsZSxcclxuICAgICAgICAgIHpJbmRleDogKytpLFxyXG4gICAgICAgICAgdmlzaWJsZTogbGF5ZXIudmlzaWJsZSxcclxuICAgICAgICAgIHNlY3VyaXR5OiBsYXllci5zZWN1cml0eVxyXG4gICAgICAgIH0gYXMgTGF5ZXJPcHRpb25zLFxyXG4gICAgICAgIHNvdXJjZU9wdGlvbnM6IHtcclxuICAgICAgICAgIHR5cGU6IGxheWVyLmRhdGFTb3VyY2Uub3B0aW9ucy50eXBlLFxyXG4gICAgICAgICAgcGFyYW1zOiBsYXllci5kYXRhU291cmNlLm9wdGlvbnMucGFyYW1zLFxyXG4gICAgICAgICAgdXJsOiBsYXllci5kYXRhU291cmNlLm9wdGlvbnMudXJsLFxyXG4gICAgICAgICAgcXVlcnlhYmxlOiBsYXllci5xdWVyeWFibGVcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIGlmIChvcHRzLnNvdXJjZU9wdGlvbnMudHlwZSkge1xyXG4gICAgICAgIGNvbnRleHQubGF5ZXJzLnB1c2gob3B0cyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjb250ZXh0LnRvb2xzID0gdGhpcy50b29scy5tYXAoKHRvb2wpID0+IHtcclxuICAgICAgcmV0dXJuIHsgaWQ6IFN0cmluZyh0b29sLmlkKSwgZ2xvYmFsOiB0b29sLmdsb2JhbCB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIGNvbnRleHQ7XHJcbiAgfVxyXG5cclxuICBnZXRDb250ZXh0RnJvbUxheWVycyhcclxuICAgIGlnb01hcDogSWdvTWFwLFxyXG4gICAgbGF5ZXJzOiBMYXllcltdLFxyXG4gICAgbmFtZTogc3RyaW5nLFxyXG4gICAga2VlcEN1cnJlbnRWaWV3PzogYm9vbGVhblxyXG4gICk6IERldGFpbGVkQ29udGV4dCB7XHJcbiAgICBjb25zdCBjdXJyZW50Q29udGV4dCA9IHRoaXMuY29udGV4dCQuZ2V0VmFsdWUoKTtcclxuICAgIGNvbnN0IHZpZXcgPSBpZ29NYXAub2wuZ2V0VmlldygpO1xyXG4gICAgY29uc3QgcHJvaiA9IHZpZXcuZ2V0UHJvamVjdGlvbigpLmdldENvZGUoKTtcclxuICAgIGNvbnN0IGNlbnRlcjogYW55ID0gbmV3IG9sUG9pbnQodmlldy5nZXRDZW50ZXIoKSkudHJhbnNmb3JtKFxyXG4gICAgICBwcm9qLFxyXG4gICAgICAnRVBTRzo0MzI2J1xyXG4gICAgKTtcclxuXHJcbiAgICBjb25zdCBjb250ZXh0OiBEZXRhaWxlZENvbnRleHQgPSB7XHJcbiAgICAgIHVyaTogbmFtZSxcclxuICAgICAgdGl0bGU6IG5hbWUsXHJcbiAgICAgIG1hcDoge1xyXG4gICAgICAgIHZpZXc6IHtcclxuICAgICAgICAgIGNlbnRlcjogY2VudGVyLmdldENvb3JkaW5hdGVzKCksXHJcbiAgICAgICAgICB6b29tOiB2aWV3LmdldFpvb20oKSxcclxuICAgICAgICAgIHByb2plY3Rpb246IHByb2osXHJcbiAgICAgICAgICBrZWVwQ3VycmVudFZpZXdcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGxheWVyczogW10sXHJcbiAgICAgIHRvb2xiYXI6IFtdLFxyXG4gICAgICB0b29sczogW10sXHJcbiAgICAgIGV4dHJhRmVhdHVyZXM6IFtdXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGN1cnJlbnRMYXllcnMgPSBpZ29NYXAubGF5ZXJzJC5nZXRWYWx1ZSgpO1xyXG4gICAgY29udGV4dC5sYXllcnMgPSBjdXJyZW50TGF5ZXJzXHJcbiAgICAgIC5maWx0ZXIoKGwpID0+IGwuYmFzZUxheWVyKVxyXG4gICAgICAubWFwKChsKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIGJhc2VMYXllcjogdHJ1ZSxcclxuICAgICAgICAgIHNvdXJjZU9wdGlvbnM6IGwub3B0aW9ucy5zb3VyY2VPcHRpb25zLFxyXG4gICAgICAgICAgdGl0bGU6IGwub3B0aW9ucy50aXRsZSxcclxuICAgICAgICAgIHZpc2libGU6IGwudmlzaWJsZVxyXG4gICAgICAgIH07XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIGxheWVycy5mb3JFYWNoKChsYXllcikgPT4ge1xyXG4gICAgICAvLyBEbyBub3Qgc2VlbSB0byB3b3JrIHByb3Blcmx5LiBsYXllckZvdW5kIGlzIGFsd2F5cyB1bmRlZmluZWQuXHJcbiAgICAgIGNvbnN0IGxheWVyRm91bmQgPSBjdXJyZW50Q29udGV4dC5sYXllcnMuZmluZCgoY29udGV4dExheWVyKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc291cmNlID0gY29udGV4dExheWVyLnNvdXJjZTtcclxuICAgICAgICByZXR1cm4gc291cmNlICYmIGxheWVyLmlkID09PSBzb3VyY2UuaWQgJiYgIWNvbnRleHRMYXllci5iYXNlTGF5ZXI7XHJcbiAgICAgIH0pO1xyXG4gICAgICBpZiAobGF5ZXJGb3VuZCkge1xyXG4gICAgICAgIGxldCBsYXllckZvdW5kQXMgPSBsYXllckZvdW5kIGFzXHJcbiAgICAgICAgICB8IFZlY3RvckxheWVyT3B0aW9uc1xyXG4gICAgICAgICAgfCBWZWN0b3JUaWxlTGF5ZXJPcHRpb25zO1xyXG4gICAgICAgIGxldCBsYXllclN0eWxlID0gbGF5ZXJGb3VuZEFzLnN0eWxlO1xyXG4gICAgICAgIGlmIChsYXllckZvdW5kQXMuaWdvU3R5bGU/LnN0eWxlQnlBdHRyaWJ1dGUpIHtcclxuICAgICAgICAgIGxheWVyU3R5bGUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgfSBlbHNlIGlmIChsYXllckZvdW5kQXMuaWdvU3R5bGU/LmNsdXN0ZXJCYXNlU3R5bGUpIHtcclxuICAgICAgICAgIGxheWVyU3R5bGUgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICBkZWxldGUgbGF5ZXJGb3VuZC5zb3VyY2VPcHRpb25zW2Bzb3VyY2VgXTtcclxuICAgICAgICAgIGRlbGV0ZSBsYXllckZvdW5kLnNvdXJjZU9wdGlvbnNbYGZvcm1hdGBdO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBvcHRzID0ge1xyXG4gICAgICAgICAgYmFzZUxheWVyOiBsYXllckZvdW5kLmJhc2VMYXllcixcclxuICAgICAgICAgIHRpdGxlOiBsYXllci5vcHRpb25zLnRpdGxlLFxyXG4gICAgICAgICAgekluZGV4OiBsYXllci56SW5kZXgsXHJcbiAgICAgICAgICBpZ29TdHlsZToge1xyXG4gICAgICAgICAgICBzdHlsZUJ5QXR0cmlidXRlOiBsYXllckZvdW5kQXMuaWdvU3R5bGU/LnN0eWxlQnlBdHRyaWJ1dGUsXHJcbiAgICAgICAgICAgIGNsdXN0ZXJCYXNlU3R5bGU6IGxheWVyRm91bmRBcy5pZ29TdHlsZT8uY2x1c3RlckJhc2VTdHlsZVxyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHN0eWxlOiBsYXllclN0eWxlLFxyXG4gICAgICAgICAgY2x1c3RlclBhcmFtOiBsYXllckZvdW5kW2BjbHVzdGVyUGFyYW1gXSxcclxuICAgICAgICAgIHZpc2libGU6IGxheWVyLnZpc2libGUsXHJcbiAgICAgICAgICBvcGFjaXR5OiBsYXllci5vcGFjaXR5LFxyXG4gICAgICAgICAgc291cmNlT3B0aW9uczogbGF5ZXJGb3VuZC5zb3VyY2VPcHRpb25zXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb250ZXh0LmxheWVycy5wdXNoKG9wdHMpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICghKGxheWVyLm9sLmdldFNvdXJjZSgpIGluc3RhbmNlb2Ygb2xWZWN0b3JTb3VyY2UpKSB7XHJcbiAgICAgICAgICBjb25zdCBjYXRhbG9nTGF5ZXIgPSBsYXllci5vcHRpb25zO1xyXG4gICAgICAgICAgY2F0YWxvZ0xheWVyLnpJbmRleCA9IGxheWVyLnpJbmRleDtcclxuICAgICAgICAgIChjYXRhbG9nTGF5ZXIudmlzaWJsZSA9IGxheWVyLnZpc2libGUpLFxyXG4gICAgICAgICAgICAoY2F0YWxvZ0xheWVyLm9wYWNpdHkgPSBsYXllci5vcGFjaXR5KTtcclxuICAgICAgICAgIGRlbGV0ZSBjYXRhbG9nTGF5ZXIuc291cmNlO1xyXG4gICAgICAgICAgY29udGV4dC5sYXllcnMucHVzaChjYXRhbG9nTGF5ZXIpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb25zdCBleHRyYUZlYXR1cmVzID0gdGhpcy5nZXRFeHRyYUZlYXR1cmVzKGxheWVyKTtcclxuICAgICAgICAgIGV4dHJhRmVhdHVyZXMubmFtZSA9IGxheWVyLm9wdGlvbnMudGl0bGU7XHJcbiAgICAgICAgICBleHRyYUZlYXR1cmVzLm9wYWNpdHkgPSBsYXllci5vcGFjaXR5O1xyXG4gICAgICAgICAgZXh0cmFGZWF0dXJlcy52aXNpYmxlID0gbGF5ZXIudmlzaWJsZTtcclxuICAgICAgICAgIGNvbnRleHQuZXh0cmFGZWF0dXJlcy5wdXNoKGV4dHJhRmVhdHVyZXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29udGV4dC50b29sYmFyID0gdGhpcy50b29sYmFyO1xyXG4gICAgY29udGV4dC50b29scyA9IHRoaXMudG9vbHM7XHJcblxyXG4gICAgcmV0dXJuIGNvbnRleHQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEV4dHJhRmVhdHVyZXMobGF5ZXI6IExheWVyKTogRXh0cmFGZWF0dXJlcyB7XHJcbiAgICBjb25zdCB3cml0ZXIgPSBuZXcgR2VvSlNPTigpO1xyXG4gICAgbGV0IG9sRmVhdHVyZXM6IEZlYXR1cmU8R2VvbWV0cnk+W107XHJcbiAgICBpZiAobGF5ZXIub2wuZ2V0U291cmNlKCkgaW5zdGFuY2VvZiBDbHVzdGVyKSB7XHJcbiAgICAgIGNvbnN0IGNsdXN0ZXJTb3VyY2UgPSBsYXllci5vbC5nZXRTb3VyY2UoKSBhcyBDbHVzdGVyO1xyXG4gICAgICBvbEZlYXR1cmVzID0gY2x1c3RlclNvdXJjZS5nZXRGZWF0dXJlcygpO1xyXG4gICAgICBvbEZlYXR1cmVzID0gKG9sRmVhdHVyZXMgYXMgYW55KS5mbGF0TWFwKChjbHVzdGVyOiBhbnkpID0+XHJcbiAgICAgICAgY2x1c3Rlci5nZXQoJ2ZlYXR1cmVzJylcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHNvdXJjZSA9IGxheWVyLm9sLmdldFNvdXJjZSgpIGFzIG9sVmVjdG9yU291cmNlO1xyXG4gICAgICBvbEZlYXR1cmVzID0gc291cmNlLmdldEZlYXR1cmVzKCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBjbGVhbmVkT2xGZWF0dXJlcyA9IHRoaXMuZXhwb3J0U2VydmljZS5nZW5lcmF0ZUZlYXR1cmUoXHJcbiAgICAgIG9sRmVhdHVyZXMsXHJcbiAgICAgICdHZW9KU09OJyxcclxuICAgICAgJ19mZWF0dXJlU3RvcmUnXHJcbiAgICApO1xyXG4gICAgY29uc3QgZmVhdHVyZXMgPSB3cml0ZXIud3JpdGVGZWF0dXJlcyhjbGVhbmVkT2xGZWF0dXJlcywge1xyXG4gICAgICBkYXRhUHJvamVjdGlvbjogJ0VQU0c6NDMyNicsXHJcbiAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiAnRVBTRzozODU3J1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZShmZWF0dXJlcyk7XHJcbiAgfVxyXG5cclxuICBzZXRUb29scyh0b29sczogVG9vbFtdKSB7XHJcbiAgICB0aGlzLnRvb2xzID0gdG9vbHM7XHJcbiAgfVxyXG5cclxuICBzZXRUb29sYmFyKHRvb2xiYXI6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLnRvb2xiYXIgPSB0b29sYmFyO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVDb250ZXh0TWVzc2FnZShjb250ZXh0OiBEZXRhaWxlZENvbnRleHQpIHtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5jb250ZXh0JC52YWx1ZSAmJlxyXG4gICAgICBjb250ZXh0LnVyaSAmJlxyXG4gICAgICB0aGlzLmNvbnRleHQkLnZhbHVlLnVyaSAhPT0gY29udGV4dC51cmlcclxuICAgICkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLnJlbW92ZUFsbEFyZU5vdEVycm9yKCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29udGV4dC5tZXNzYWdlcyA9IGNvbnRleHQubWVzc2FnZXMgPyBjb250ZXh0Lm1lc3NhZ2VzIDogW107XHJcbiAgICBjb250ZXh0Lm1lc3NhZ2VzLnB1c2goY29udGV4dC5tZXNzYWdlKTtcclxuICAgIGNvbnRleHQubWVzc2FnZXMubWFwKChtZXNzYWdlKSA9PiB7XHJcbiAgICAgIGlmIChtZXNzYWdlKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5tZXNzYWdlKG1lc3NhZ2UgYXMgTWVzc2FnZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRDb250ZXh0QnlVcmkodXJpOiBzdHJpbmcpOiBPYnNlcnZhYmxlPERldGFpbGVkQ29udGV4dD4ge1xyXG4gICAgaWYgKHRoaXMuYmFzZVVybCkge1xyXG4gICAgICBsZXQgY29udGV4dFRvTG9hZDtcclxuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXModGhpcy5jb250ZXh0cyQudmFsdWUpKSB7XHJcbiAgICAgICAgY29udGV4dFRvTG9hZCA9IHRoaXMuY29udGV4dHMkLnZhbHVlW2tleV0uZmluZCgoYykgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIGMudXJpID09PSB1cmk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgaWYgKGNvbnRleHRUb0xvYWQpIHtcclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGNvbnRleHRUb0xvYWQgJiYgY29udGV4dFRvTG9hZC5pbXBvcnRlZCkge1xyXG4gICAgICAgIHJldHVybiBvZihjb250ZXh0VG9Mb2FkKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gVE9ETyA6IHVzZSBhbHdheXMgaWQgb3IgdXJpXHJcbiAgICAgIGNvbnN0IGlkID0gY29udGV4dFRvTG9hZCA/IGNvbnRleHRUb0xvYWQuaWQgOiB1cmk7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldERldGFpbHMoaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGltcG9ydGVkQ29udGV4dCA9IHRoaXMuY29udGV4dHMkLnZhbHVlLm91cnMuZmluZCgoY3VycmVudENvbnRleHQpID0+IHtcclxuICAgICAgcmV0dXJuIGN1cnJlbnRDb250ZXh0LnVyaSA9PT0gdXJpICYmIGN1cnJlbnRDb250ZXh0LmltcG9ydGVkID09PSB0cnVlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGltcG9ydGVkQ29udGV4dCkge1xyXG4gICAgICByZXR1cm4gb2YoaW1wb3J0ZWRDb250ZXh0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmdldExvY2FsQ29udGV4dCh1cmkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0Q29udGV4dExheWVycyhpZ29NYXA6IElnb01hcCkge1xyXG4gICAgY29uc3QgbGF5ZXJzOiBMYXllcltdID0gW107XHJcbiAgICBjb25zdCBtYXBMYXllcnMgPSBpZ29NYXAubGF5ZXJzJC5nZXRWYWx1ZSgpO1xyXG4gICAgbWFwTGF5ZXJzLmZvckVhY2goKGxheWVyKSA9PiB7XHJcbiAgICAgIGlmICghbGF5ZXIuYmFzZUxheWVyICYmIGxheWVyLm9wdGlvbnMuaWQgIT09ICdzZWFyY2hQb2ludGVyU3VtbWFyeUlkJykge1xyXG4gICAgICAgIGxheWVycy5wdXNoKGxheWVyKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbGF5ZXJzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkUGFyYW1zRnJvbVJvdXRlKCkge1xyXG4gICAgaWYgKCF0aGlzLnJvdXRlKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJvdXRlLnF1ZXJ5UGFyYW1zLnN1YnNjcmliZSgocGFyYW1zKSA9PiB7XHJcbiAgICAgIGNvbnN0IGNlbnRlcktleSA9IHRoaXMucm91dGUub3B0aW9ucy5jZW50ZXJLZXk7XHJcbiAgICAgIGlmIChjZW50ZXJLZXkgJiYgcGFyYW1zW2NlbnRlcktleSBhcyBzdHJpbmddKSB7XHJcbiAgICAgICAgY29uc3QgY2VudGVyUGFyYW1zID0gcGFyYW1zW2NlbnRlcktleSBhcyBzdHJpbmddO1xyXG4gICAgICAgIHRoaXMubWFwVmlld0Zyb21Sb3V0ZS5jZW50ZXIgPSBjZW50ZXJQYXJhbXMuc3BsaXQoJywnKS5tYXAoTnVtYmVyKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3QgcHJvamVjdGlvbktleSA9IHRoaXMucm91dGUub3B0aW9ucy5wcm9qZWN0aW9uS2V5O1xyXG4gICAgICBpZiAocHJvamVjdGlvbktleSAmJiBwYXJhbXNbcHJvamVjdGlvbktleSBhcyBzdHJpbmddKSB7XHJcbiAgICAgICAgY29uc3QgcHJvamVjdGlvblBhcmFtID0gcGFyYW1zW3Byb2plY3Rpb25LZXkgYXMgc3RyaW5nXTtcclxuICAgICAgICB0aGlzLm1hcFZpZXdGcm9tUm91dGUucHJvamVjdGlvbiA9IHByb2plY3Rpb25QYXJhbTtcclxuICAgICAgfVxyXG5cclxuICAgICAgY29uc3Qgem9vbUtleSA9IHRoaXMucm91dGUub3B0aW9ucy56b29tS2V5O1xyXG4gICAgICBpZiAoem9vbUtleSAmJiBwYXJhbXNbem9vbUtleSBhcyBzdHJpbmddKSB7XHJcbiAgICAgICAgY29uc3Qgem9vbVBhcmFtID0gcGFyYW1zW3pvb21LZXkgYXMgc3RyaW5nXTtcclxuICAgICAgICB0aGlzLm1hcFZpZXdGcm9tUm91dGUuem9vbSA9IE51bWJlcih6b29tUGFyYW0pO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UGF0aChmaWxlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGJhc2VQYXRoID0gdGhpcy5vcHRpb25zLmJhc2VQYXRoLnJlcGxhY2UoL1xcLyQvLCAnJyk7XHJcblxyXG4gICAgcmV0dXJuIGAke2Jhc2VQYXRofS8ke2ZpbGV9YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoXHJcbiAgICBlcnJvcjogSHR0cEVycm9yUmVzcG9uc2UsXHJcbiAgICB1cmk6IHN0cmluZyxcclxuICAgIHBlcm1pc3Npb25FcnJvcj86IGJvb2xlYW5cclxuICApIHtcclxuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNvbnRleHRzJC52YWx1ZS5vdXJzLmZpbmQoKG9iaikgPT4gb2JqLnVyaSA9PT0gdXJpKTtcclxuICAgIGNvbnN0IHRpdGxlQ29udGV4dCA9IGNvbnRleHQgPyBjb250ZXh0LnRpdGxlIDogdXJpO1xyXG4gICAgZXJyb3IuZXJyb3IudGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmludmFsaWQudGl0bGUnXHJcbiAgICApO1xyXG5cclxuICAgIGVycm9yLmVycm9yLm1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmludmFsaWQudGV4dCcsXHJcbiAgICAgIHsgdmFsdWU6IHRpdGxlQ29udGV4dCB9XHJcbiAgICApO1xyXG5cclxuICAgIGVycm9yLmVycm9yLnRvRGlzcGxheSA9IHRydWU7XHJcblxyXG4gICAgaWYgKHBlcm1pc3Npb25FcnJvcikge1xyXG4gICAgICBlcnJvci5lcnJvci50aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICdpZ28uY29udGV4dC5jb250ZXh0TWFuYWdlci5lcnJvcnMuYWRkUGVybWlzc2lvblRpdGxlJ1xyXG4gICAgICApO1xyXG4gICAgICBlcnJvci5lcnJvci5tZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmVycm9ycy5hZGRQZXJtaXNzaW9uJ1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICAgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmVycm9ycy5hZGRQZXJtaXNzaW9uJyxcclxuICAgICAgJ2lnby5jb250ZXh0LmNvbnRleHRNYW5hZ2VyLmVycm9ycy5hZGRQZXJtaXNzaW9uVGl0bGUnXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVDb250ZXh0c0NoYW5nZShrZWVwQ3VycmVudENvbnRleHQgPSB0cnVlKSB7XHJcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0JC52YWx1ZTtcclxuICAgIGNvbnN0IGVkaXRlZENvbnRleHQgPSB0aGlzLmVkaXRlZENvbnRleHQkLnZhbHVlO1xyXG4gICAgaWYgKCFjb250ZXh0IHx8IGNvbnRleHQudXJpID09PSB0aGlzLm9wdGlvbnMuZGVmYXVsdENvbnRleHRVcmkpIHtcclxuICAgICAga2VlcEN1cnJlbnRDb250ZXh0ID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgICBpZiAoIWtlZXBDdXJyZW50Q29udGV4dCB8fCAhdGhpcy5maW5kQ29udGV4dChjb250ZXh0KSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb250ZXh0VXJpID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLmxvYWREZWZhdWx0Q29udGV4dCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5nZXRDb250ZXh0QnlVcmkoY29udGV4dC51cmkpXHJcbiAgICAgICAgLnBpcGUoZmlyc3QoKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChuZXdDb250ZXh0OiBEZXRhaWxlZENvbnRleHQpID0+IHtcclxuICAgICAgICAgIHRoaXMudG9vbHNDaGFuZ2VkJC5uZXh0KG5ld0NvbnRleHQpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgaWYgKHRoaXMuYmFzZVVybCAmJiB0aGlzLmF1dGhTZXJ2aWNlLmF1dGhlbnRpY2F0ZWQpIHtcclxuICAgICAgICB0aGlzLmdldERlZmF1bHQoKS5zdWJzY3JpYmUoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgY29uc3QgZWRpdGVkRm91bmQgPSB0aGlzLmZpbmRDb250ZXh0KGVkaXRlZENvbnRleHQpO1xyXG4gICAgaWYgKCFlZGl0ZWRGb3VuZCB8fCBlZGl0ZWRGb3VuZC5wZXJtaXNzaW9uICE9PSAnd3JpdGUnKSB7XHJcbiAgICAgIHRoaXMuc2V0RWRpdGVkQ29udGV4dCh1bmRlZmluZWQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRDb250ZXh0VG9MaXN0KGNvbnRleHQ6IENvbnRleHQpIHtcclxuICAgIGNvbnN0IGNvbnRleHRGb3VuZCA9IHRoaXMuZmluZENvbnRleHQoY29udGV4dCk7XHJcbiAgICBpZiAoIWNvbnRleHRGb3VuZCkge1xyXG4gICAgICBjb25zdCBjb250ZXh0U2ltcGxpZmllID0ge1xyXG4gICAgICAgIGlkOiBjb250ZXh0LmlkLFxyXG4gICAgICAgIHVyaTogY29udGV4dC51cmksXHJcbiAgICAgICAgdGl0bGU6IGNvbnRleHQudGl0bGUsXHJcbiAgICAgICAgc2NvcGU6IGNvbnRleHQuc2NvcGUsXHJcbiAgICAgICAgcGVybWlzc2lvbjogVHlwZVBlcm1pc3Npb25bVHlwZVBlcm1pc3Npb24ucmVhZF1cclxuICAgICAgfTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmNvbnRleHRzJC52YWx1ZSAmJiB0aGlzLmNvbnRleHRzJC52YWx1ZS5wdWJsaWMpIHtcclxuICAgICAgICB0aGlzLmNvbnRleHRzJC52YWx1ZS5wdWJsaWMucHVzaChjb250ZXh0U2ltcGxpZmllKTtcclxuICAgICAgICB0aGlzLmNvbnRleHRzJC5uZXh0KHRoaXMuY29udGV4dHMkLnZhbHVlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kQ29udGV4dChjb250ZXh0OiBDb250ZXh0KSB7XHJcbiAgICBpZiAoIWNvbnRleHQpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGNvbnRleHRzID0gdGhpcy5jb250ZXh0cyQudmFsdWU7XHJcbiAgICBsZXQgZm91bmQ7XHJcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhjb250ZXh0cykpIHtcclxuICAgICAgY29uc3QgdmFsdWUgPSBjb250ZXh0c1trZXldO1xyXG4gICAgICBmb3VuZCA9IHZhbHVlLmZpbmQoXHJcbiAgICAgICAgKGMpID0+XHJcbiAgICAgICAgICAoY29udGV4dC5pZCAmJiBjLmlkID09PSBjb250ZXh0LmlkKSB8fFxyXG4gICAgICAgICAgKGNvbnRleHQudXJpICYmIGMudXJpID09PSBjb250ZXh0LnVyaSlcclxuICAgICAgKTtcclxuICAgICAgaWYgKGZvdW5kKSB7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZm91bmQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,11 +1,11 @@
1
- import { Directive, Optional, Input } from '@angular/core';
1
+ import { Directive, Input, Optional } from '@angular/core';
2
+ import { ConfigService, RouteService } from '@igo2/core';
3
+ import { LayerService, MapBrowserComponent, StyleListService, StyleService } from '@igo2/geo';
4
+ import { ObjectUtils } from '@igo2/utils';
2
5
  import { merge } from 'rxjs';
3
6
  import { buffer, debounceTime, filter, first } from 'rxjs/operators';
4
- import { RouteService, ConfigService } from '@igo2/core';
5
- import { MapBrowserComponent, LayerService, StyleListService, StyleService } from '@igo2/geo';
6
- import { ObjectUtils } from '@igo2/utils';
7
+ import { addImportedFeaturesStyledToMap, addImportedFeaturesToMap } from '../../context-import-export/shared/context-import.utils';
7
8
  import { ContextService } from './context.service';
8
- import { addImportedFeaturesToMap, addImportedFeaturesStyledToMap } from '../../context-import-export/shared/context-import.utils';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "@igo2/geo";
11
11
  import * as i2 from "./context.service";
@@ -73,22 +73,10 @@ export class LayerContextDirective {
73
73
  if (context.extraFeatures) {
74
74
  context.extraFeatures.forEach((featureCollection) => {
75
75
  const importExportOptions = this.configService.getConfig('importExport');
76
- const importWithStyle = importExportOptions?.importWithStyle ||
77
- this.configService.getConfig('importWithStyle');
78
- if (this.configService.getConfig('importWithStyle')) {
79
- console.warn(`
80
- The location of this config importWithStyle is deprecated.
81
- Please move this property within importExport configuration.
82
- Ex: importWithStyle: true/false must be transfered to importExport: { importWithStyle: true/false }
83
- Refer to environnement.ts OR config/config.json
84
- This legacy conversion will be deleted in 2024.
85
- `);
86
- }
87
- if (!importWithStyle) {
76
+ if (!importExportOptions?.importWithStyle) {
88
77
  addImportedFeaturesToMap(featureCollection, this.map);
89
78
  }
90
79
  else {
91
- console.log('importWithStyle', importWithStyle);
92
80
  addImportedFeaturesStyledToMap(featureCollection, this.map, this.styleListService, this.styleService);
93
81
  }
94
82
  });
@@ -169,4 +157,4 @@ export class LayerContextDirective {
169
157
  }] }]; }, { removeLayersOnContextChange: [{
170
158
  type: Input
171
159
  }] }); })();
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItY29udGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL3NoYXJlZC9sYXllci1jb250ZXh0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlFLE9BQU8sRUFBZ0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6RCxPQUFPLEVBQ0wsbUJBQW1CLEVBRW5CLFlBQVksRUFFWixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNiLE1BQU0sV0FBVyxDQUFDO0FBRW5CLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsOEJBQThCLEVBQy9CLE1BQU0seURBQXlELENBQUM7Ozs7O0FBS2pFLE1BQU0sT0FBTyxxQkFBcUI7SUFhdEI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ1k7SUFsQmQsU0FBUyxDQUFlO0lBQ3hCLFdBQVcsQ0FBTTtJQUVqQixhQUFhLEdBQVksRUFBRSxDQUFDO0lBRTNCLDJCQUEyQixHQUFZLElBQUksQ0FBQztJQUVyRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUNVLFNBQThCLEVBQzlCLGNBQThCLEVBQzlCLFlBQTBCLEVB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Y2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIE9uSW5pdCwgT25EZXN0cm95LCBPcHRpb25hbCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgbWVyZ2UgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgYnVmZmVyLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBSb3V0ZVNlcnZpY2UsIENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuaW1wb3J0IHtcclxuICBNYXBCcm93c2VyQ29tcG9uZW50LFxyXG4gIExheWVyLFxyXG4gIExheWVyU2VydmljZSxcclxuICBMYXllck9wdGlvbnMsXHJcbiAgU3R5bGVMaXN0U2VydmljZSxcclxuICBTdHlsZVNlcnZpY2VcclxufSBmcm9tICdAaWdvMi9nZW8nO1xyXG5pbXBvcnQgdHlwZSB7IElnb01hcCB9IGZyb20gJ0BpZ28yL2dlbyc7XHJcbmltcG9ydCB7IE9iamVjdFV0aWxzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5cclxuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuL2NvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IERldGFpbGVkQ29udGV4dCB9IGZyb20gJy4vY29udGV4dC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge1xyXG4gIGFkZEltcG9ydGVkRmVhdHVyZXNUb01hcCxcclxuICBhZGRJbXBvcnRlZEZlYXR1cmVzU3R5bGVkVG9NYXBcclxufSBmcm9tICcuLi8uLi9jb250ZXh0LWltcG9ydC1leHBvcnQvc2hhcmVkL2NvbnRleHQtaW1wb3J0LnV0aWxzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2lnb0xheWVyQ29udGV4dF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYXllckNvbnRleHREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBjb250ZXh0JCQ6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIHF1ZXJ5UGFyYW1zOiBhbnk7XHJcblxyXG4gIHByaXZhdGUgY29udGV4dExheWVyczogTGF5ZXJbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSByZW1vdmVMYXllcnNPbkNvbnRleHRDaGFuZ2U6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBnZXQgbWFwKCk6IElnb01hcCB7XHJcbiAgICByZXR1cm4gdGhpcy5jb21wb25lbnQubWFwO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNvbXBvbmVudDogTWFwQnJvd3NlckNvbXBvbmVudCxcclxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBsYXllclNlcnZpY2U6IExheWVyU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgc3R5bGVMaXN0U2VydmljZTogU3R5bGVMaXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgc3R5bGVTZXJ2aWNlOiBTdHlsZVNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJvdXRlOiBSb3V0ZVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5jb250ZXh0JCQgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmNvbnRleHQkXHJcbiAgICAgIC5waXBlKGZpbHRlcigoY29udGV4dCkgPT4gY29udGV4dCAhPT0gdW5kZWZpbmVkKSlcclxuICAgICAgLnN1YnNjcmliZSgoY29udGV4dCkgPT4gdGhpcy5oYW5kbGVDb250ZXh0Q2hhbmdlKGNvbnRleHQpKTtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMucm91dGUgJiZcclxuICAgICAgdGhpcy5yb3V0ZS5vcHRpb25zLnZpc2libGVPbkxheWVyc0tleSAmJlxyXG4gICAgICB0aGlzLnJvdXRlLm9wdGlvbnMudmlzaWJsZU9mZkxheWVyc0tleSAmJlxyXG4gICAgICB0aGlzLnJvdXRlLm9wdGlvbnMuY29udGV4dEtleVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXNcclxuICAgICAgICAucGlwZShmaXJzdCgocGFyYW1zKSA9PiAhT2JqZWN0VXRpbHMuaXNFbXB0eShwYXJhbXMpKSlcclxuICAgICAgICAuc3Vic2NyaWJlKChwYXJhbXMpID0+IHtcclxuICAgICAgICAgIHRoaXMucXVlcnlQYXJhbXMgPSBwYXJhbXM7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuY29udGV4dCQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUNvbnRleHRDaGFuZ2UoY29udGV4dDogRGV0YWlsZWRDb250ZXh0KSB7XHJcbiAgICBpZiAoY29udGV4dC5sYXllcnMgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5yZW1vdmVMYXllcnNPbkNvbnRleHRDaGFuZ2UgPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5tYXAucmVtb3ZlQWxsTGF5ZXJzKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1hcC5yZW1vdmVMYXllcnModGhpcy5jb250ZXh0TGF5ZXJzKTtcclxuICAgIH1cclxuICAgIHRoaXMuY29udGV4dExheWVycyA9IFtdO1xyXG5cclxuICAgIGNvbnN0IGxheWVyc0FuZEluZGV4JCA9IG1lcmdlKFxyXG4gICAgICAuLi5jb250ZXh0LmxheWVycy5tYXAoKGxheWVyT3B0aW9uczogTGF5ZXJPcHRpb25zLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubGF5ZXJTZXJ2aWNlLmNyZWF0ZUFzeW5jTGF5ZXIobGF5ZXJPcHRpb25zLCBjb250ZXh0LnVyaSk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICAgIGxheWVyc0FuZEluZGV4JFxyXG4gICAgICAucGlwZShidWZmZXIobGF5ZXJzQW5kSW5kZXgkLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpKSlcclxuICAgICAgLnN1YnNjcmliZSgobGF5ZXJzOiBMYXllcltdKSA9PiB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVBZGRMYXllcnMobGF5ZXJzKTtcclxuXHJcbiAgICAgICAgaWYgKGNvbnRleHQuZXh0cmFGZWF0dXJlcykge1xyXG4gICAgICAgICAgY29udGV4dC5leHRyYUZlYXR1cmVzLmZvckVhY2goKGZlYXR1cmVDb2xsZWN0aW9uKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGltcG9ydEV4cG9ydE9wdGlvbnMgPVxyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoJ2ltcG9ydEV4cG9ydCcpO1xyXG4gICAgICAgICAgICBjb25zdCBpbXBvcnRXaXRoU3R5bGUgPVxyXG4gICAgICAgICAgICAgIGltcG9ydEV4cG9ydE9wdGlvbnM/LmltcG9ydFdpdGhTdHlsZSB8fFxyXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnU2VydmljZS5nZXRDb25maWcoJ2ltcG9ydFdpdGhTdHlsZScpO1xyXG4gICAgICAgICAgICBpZiAodGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZygnaW1wb3J0V2l0aFN0eWxlJykpIHtcclxuICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFxyXG4gICAgICAgICAgICAgIFRoZSBsb2NhdGlvbiBvZiB0aGlzIGNvbmZpZyBpbXBvcnRXaXRoU3R5bGUgaXMgZGVwcmVjYXRlZC5cclxuICAgICAgICAgICAgICBQbGVhc2UgbW92ZSB0aGlzIHByb3BlcnR5IHdpdGhpbiBpbXBvcnRFeHBvcnQgY29uZmlndXJhdGlvbi5cclxuICAgICAgICAgICAgICBFeDogaW1wb3J0V2l0aFN0eWxlOiB0cnVlL2ZhbHNlIG11c3QgYmUgdHJhbnNmZXJlZCB0byBpbXBvcnRFeHBvcnQ6IHsgaW1wb3J0V2l0aFN0eWxlOiB0cnVlL2ZhbHNlIH1cclxuICAgICAgICAgICAgICBSZWZlciB0byBlbnZpcm9ubmVtZW50LnRzIE9SIGNvbmZpZy9jb25maWcuanNvblxyXG4gICAgICAgICAgICAgIFRoaXMgbGVnYWN5IGNvbnZlcnNpb24gd2lsbCBiZSBkZWxldGVkIGluIDIwMjQuXHJcbiAgICAgICAgICAgICAgYCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFpbXBvcnRXaXRoU3R5bGUpIHtcclxuICAgICAgICAgICAgICBhZGRJbXBvcnRlZEZlYXR1cmVzVG9NYXAoZmVhdHVyZUNvbGxlY3Rpb24sIHRoaXMubWFwKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICBjb25zb2xlLmxvZygnaW1wb3J0V2l0aFN0eWxlJywgaW1wb3J0V2l0aFN0eWxlKTtcclxuICAgICAgICAgICAgICBhZGRJbXBvcnRlZEZlYXR1cmVzU3R5bGVkVG9NYXAoXHJcbiAgICAgICAgICAgICAgICBmZWF0dXJlQ29sbGVjdGlvbixcclxuICAgICAgICAgICAgICAgIHRoaXMubWFwLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZUxpc3RTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZVNlcnZpY2VcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMubGF5ZXJTZXJ2aWNlXHJcbiAgICAgIC5jcmVhdGVBc3luY0lkYkxheWVycyhjb250ZXh0LnVyaSlcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwMCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGxheWVyczogTGF5ZXJbXSkgPT4gdGhpcy5oYW5kbGVBZGRMYXllcnMobGF5ZXJzKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUFkZExheWVycyhsYXllcnM6IExheWVyW10pIHtcclxuICAgIGxheWVycyA9IGxheWVyc1xyXG4gICAgICAuZmlsdGVyKChsYXllcjogTGF5ZXIpID0+IGxheWVyICE9PSB1bmRlZmluZWQpXHJcbiAgICAgIC5tYXAoKGxheWVyKSA9PiB7XHJcbiAgICAgICAgbGF5ZXIudmlzaWJsZSA9IHRoaXMuY29tcHV0ZUxheWVyVmlzaWJpbGl0eUZyb21VcmwobGF5ZXIpO1xyXG4gICAgICAgIGxheWVyLnpJbmRleCA9IGxheWVyLnpJbmRleDtcclxuXHJcbiAgICAgICAgcmV0dXJuIGxheWVyO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuY29udGV4dExheWVycy5jb25jYXQobGF5ZXJzKTtcclxuICAgIHRoaXMubWFwLmFkZExheWVycyhsYXllcnMpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjb21wdXRlTGF5ZXJWaXNpYmlsaXR5RnJvbVVybChsYXllcjogTGF5ZXIpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMucXVlcnlQYXJhbXM7XHJcbiAgICBjb25zdCBjdXJyZW50Q29udGV4dCA9IHRoaXMuY29udGV4dFNlcnZpY2UuY29udGV4dCQudmFsdWUudXJpO1xyXG4gICAgY29uc3QgY3VycmVudExheWVyaWQ6IHN0cmluZyA9IGxheWVyLmlkO1xyXG5cclxuICAgIGxldCB2aXNpYmxlID0gbGF5ZXIudmlzaWJsZTtcclxuICAgIGlmICghcGFyYW1zIHx8ICFjdXJyZW50TGF5ZXJpZCkge1xyXG4gICAgICByZXR1cm4gdmlzaWJsZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjb250ZXh0UGFyYW1zID0gcGFyYW1zW3RoaXMucm91dGUub3B0aW9ucy5jb250ZXh0S2V5IGFzIHN0cmluZ107XHJcbiAgICBpZiAoY29udGV4dFBhcmFtcyA9PT0gY3VycmVudENvbnRleHQgfHwgIWNvbnRleHRQYXJhbXMpIHtcclxuICAgICAgbGV0IHZpc2libGVPbkxheWVyc1BhcmFtcyA9ICcnO1xyXG4gICAgICBsZXQgdmlzaWJsZU9mZkxheWVyc1BhcmFtcyA9ICcnO1xyXG4gICAgICBsZXQgdmlzaWJsZWxheWVyczogc3RyaW5nW10gPSBbXTtcclxuICAgICAgbGV0IGludmlzaWJsZWxheWVyczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICB0aGlzLnJvdXRlLm9wdGlvbnMudmlzaWJsZU9uTGF5ZXJzS2V5ICYmXHJcbiAgICAgICAgcGFyYW1zW3RoaXMucm91dGUub3B0aW9ucy52aXNpYmxlT25MYXllcnNLZXkgYXMgc3RyaW5nXVxyXG4gICAgICApIHtcclxuICAgICAgICB2aXNpYmxlT25MYXllcnNQYXJhbXMgPVxyXG4gICAgICAgICAgcGFyYW1zW3RoaXMucm91dGUub3B0aW9ucy52aXNpYmxlT25MYXllcnNLZXkgYXMgc3RyaW5nXTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5yb3V0ZS5vcHRpb25zLnZpc2libGVPZmZMYXllcnNLZXkgJiZcclxuICAgICAgICBwYXJhbXNbdGhpcy5yb3V0ZS5vcHRpb25zLnZpc2libGVPZmZMYXllcnNLZXkgYXMgc3RyaW5nXVxyXG4gICAgICApIHtcclxuICAgICAgICB2aXNpYmxlT2ZmTGF5ZXJzUGFyYW1zID1cclxuICAgICAgICAgIHBhcmFtc1t0aGlzLnJvdXRlLm9wdGlvbnMudmlzaWJsZU9mZkxheWVyc0tleSBhcyBzdHJpbmddO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAvKiBUaGlzIG9yZGVyIGlzIGltcG9ydGFudCBiZWNhdXNlIHRvIGNvbnRyb2wgd2hpY2hldmVyXHJcbiAgICAgICB0aGUgb3JkZXIgb2YgKiBwYXJhbS4gRmlyc3Qgd2hlIG9wZW4gYW5kIGNsb3NlIGV2ZXJ5dGhpbmcuKi9cclxuICAgICAgaWYgKHZpc2libGVPbkxheWVyc1BhcmFtcyA9PT0gJyonKSB7XHJcbiAgICAgICAgdmlzaWJsZSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHZpc2libGVPZmZMYXllcnNQYXJhbXMgPT09ICcqJykge1xyXG4gICAgICAgIHZpc2libGUgPSBmYWxzZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLy8gQWZ0ZXIsIG1hbmFnaW5nIG5hbWVkIGxheWVyIGJ5IGlkIChjb250ZXh0Lmpzb24gT1IgaWQgZnJvbSBkYXRhc291cmNlKVxyXG4gICAgICB2aXNpYmxlbGF5ZXJzID0gdmlzaWJsZU9uTGF5ZXJzUGFyYW1zLnNwbGl0KCcsJyk7XHJcbiAgICAgIGludmlzaWJsZWxheWVycyA9IHZpc2libGVPZmZMYXllcnNQYXJhbXMuc3BsaXQoJywnKTtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIHZpc2libGVsYXllcnMuaW5kZXhPZihjdXJyZW50TGF5ZXJpZCkgPiAtMSB8fFxyXG4gICAgICAgIHZpc2libGVsYXllcnMuaW5kZXhPZihjdXJyZW50TGF5ZXJpZC50b1N0cmluZygpKSA+IC0xXHJcbiAgICAgICkge1xyXG4gICAgICAgIHZpc2libGUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChcclxuICAgICAgICBpbnZpc2libGVsYXllcnMuaW5kZXhPZihjdXJyZW50TGF5ZXJpZCkgPiAtMSB8fFxyXG4gICAgICAgIGludmlzaWJsZWxheWVycy5pbmRleE9mKGN1cnJlbnRMYXllcmlkLnRvU3RyaW5nKCkpID4gLTFcclxuICAgICAgKSB7XHJcbiAgICAgICAgdmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHZpc2libGU7XHJcbiAgfVxyXG59XHJcbiJdfQ==
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXItY29udGV4dC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYW5hZ2VyL3NoYXJlZC9sYXllci1jb250ZXh0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlFLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pELE9BQU8sRUFHTCxZQUFZLEVBQ1osbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixZQUFZLEVBQ2IsTUFBTSxXQUFXLENBQUM7QUFFbkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxQyxPQUFPLEVBQWdCLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckUsT0FBTyxFQUNMLDhCQUE4QixFQUM5Qix3QkFBd0IsRUFDekIsTUFBTSx5REFBeUQsQ0FBQztBQUVqRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7Ozs7O0FBS25ELE1BQU0sT0FBTyxxQkFBcUI7SUFhdEI7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ1k7SUFsQmQsU0FBUyxDQUFlO0lBQ3hCLFdBQVcsQ0FBTTtJQUVqQixhQUFhLEdBQVksRUFBRSxDQUFDO0lBRTNCLDJCQUEyQixHQUFZLElBQUksQ0FBQztJQUVyRCxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUNVLFNBQThCLEVBQzlCLGNBQThCLEVBQzlCLFlBQTBCLEVB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QUssR0FBRyxFQUFFO2dCQUNsQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2FBQ2pCO1lBRUQseUVBQXlFO1lBQ3pFLGFBQWEsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakQsZUFBZSxHQUFHLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwRCxJQUNFLGFBQWEsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMxQyxhQUFhLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUNyRDtnQkFDQSxPQUFPLEdBQUcsSUFBSSxDQUFDO2FBQ2hCO1lBQ0QsSUFDRSxlQUFlLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDNUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFDdkQ7Z0JBQ0EsT0FBTyxHQUFHLEtBQUssQ0FBQzthQUNqQjtTQUNGO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzsrRUFuS1UscUJBQXFCOzZEQUFyQixxQkFBcUI7O3VGQUFyQixxQkFBcUI7Y0FIakMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxtQkFBbUI7YUFDOUI7O3NCQW9CSSxRQUFRO3dCQWJGLDJCQUEyQjtrQkFBbkMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSwgUm91dGVTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgTGF5ZXIsXHJcbiAgTGF5ZXJPcHRpb25zLFxyXG4gIExheWVyU2VydmljZSxcclxuICBNYXBCcm93c2VyQ29tcG9uZW50LFxyXG4gIFN0eWxlTGlzdFNlcnZpY2UsXHJcbiAgU3R5bGVTZXJ2aWNlXHJcbn0gZnJvbSAnQGlnbzIvZ2VvJztcclxuaW1wb3J0IHR5cGUgeyBJZ29NYXAgfSBmcm9tICdAaWdvMi9nZW8nO1xyXG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuXHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiwgbWVyZ2UgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgYnVmZmVyLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQge1xyXG4gIGFkZEltcG9ydGVkRmVhdHVyZXNTdHlsZWRUb01hcCxcclxuICBhZGRJbXBvcnRlZEZlYXR1cmVzVG9NYXBcclxufSBmcm9tICcuLi8uLi9jb250ZXh0LWltcG9ydC1leHBvcnQvc2hhcmVkL2NvbnRleHQtaW1wb3J0LnV0aWxzJztcclxuaW1wb3J0IHsgRGV0YWlsZWRDb250ZXh0IH0gZnJvbSAnLi9jb250ZXh0LmludGVyZmFjZSc7XHJcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9jb250ZXh0LnNlcnZpY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbaWdvTGF5ZXJDb250ZXh0XSdcclxufSlcclxuZXhwb3J0IGNsYXNzIExheWVyQ29udGV4dERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIGNvbnRleHQkJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgcXVlcnlQYXJhbXM6IGFueTtcclxuXHJcbiAgcHJpdmF0ZSBjb250ZXh0TGF5ZXJzOiBMYXllcltdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHJlbW92ZUxheWVyc09uQ29udGV4dENoYW5nZTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIGdldCBtYXAoKTogSWdvTWFwIHtcclxuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudC5tYXA7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29tcG9uZW50OiBNYXBCcm93c2VyQ29tcG9uZW50LFxyXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxheWVyU2VydmljZTogTGF5ZXJTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzdHlsZUxpc3RTZXJ2aWNlOiBTdHlsZUxpc3RTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzdHlsZVNlcnZpY2U6IFN0eWxlU2VydmljZSxcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcm91dGU6IFJvdXRlU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNvbnRleHQkJCA9IHRoaXMuY29udGV4dFNlcnZpY2UuY29udGV4dCRcclxuICAgICAgLnBpcGUoZmlsdGVyKChjb250ZXh0KSA9PiBjb250ZXh0ICE9PSB1bmRlZmluZWQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChjb250ZXh0KSA9PiB0aGlzLmhhbmRsZUNvbnRleHRDaGFuZ2UoY29udGV4dCkpO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5yb3V0ZSAmJlxyXG4gICAgICB0aGlzLnJvdXRlLm9wdGlvbnMudmlzaWJsZU9uTGF5ZXJzS2V5ICYmXHJcbiAgICAgIHRoaXMucm91dGUub3B0aW9ucy52aXNpYmxlT2ZmTGF5ZXJzS2V5ICYmXHJcbiAgICAgIHRoaXMucm91dGUub3B0aW9ucy5jb250ZXh0S2V5XHJcbiAgICApIHtcclxuICAgICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtc1xyXG4gICAgICAgIC5waXBlKGZpcnN0KChwYXJhbXMpID0+ICFPYmplY3RVdGlscy5pc0VtcHR5KHBhcmFtcykpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKHBhcmFtcykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5xdWVyeVBhcmFtcyA9IHBhcmFtcztcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5jb250ZXh0JCQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlQ29udGV4dENoYW5nZShjb250ZXh0OiBEZXRhaWxlZENvbnRleHQpIHtcclxuICAgIGlmIChjb250ZXh0LmxheWVycyA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnJlbW92ZUxheWVyc09uQ29udGV4dENoYW5nZSA9PT0gdHJ1ZSkge1xyXG4gICAgICB0aGlzLm1hcC5yZW1vdmVBbGxMYXllcnMoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubWFwLnJlbW92ZUxheWVycyh0aGlzLmNvbnRleHRMYXllcnMpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb250ZXh0TGF5ZXJzID0gW107XHJcblxyXG4gICAgY29uc3QgbGF5ZXJzQW5kSW5kZXgkID0gbWVyZ2UoXHJcbiAgICAgIC4uLmNvbnRleHQubGF5ZXJzLm1hcCgobGF5ZXJPcHRpb25zOiBMYXllck9wdGlvbnMsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sYXllclNlcnZpY2UuY3JlYXRlQXN5bmNMYXllcihsYXllck9wdGlvbnMsIGNvbnRleHQudXJpKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gICAgbGF5ZXJzQW5kSW5kZXgkXHJcbiAgICAgIC5waXBlKGJ1ZmZlcihsYXllcnNBbmRJbmRleCQucGlwZShkZWJvdW5jZVRpbWUoNTAwKSkpKVxyXG4gICAgICAuc3Vic2NyaWJlKChsYXllcnM6IExheWVyW10pID0+IHtcclxuICAgICAgICB0aGlzLmhhbmRsZUFkZExheWVycyhsYXllcnMpO1xyXG5cclxuICAgICAgICBpZiAoY29udGV4dC5leHRyYUZlYXR1cmVzKSB7XHJcbiAgICAgICAgICBjb250ZXh0LmV4dHJhRmVhdHVyZXMuZm9yRWFjaCgoZmVhdHVyZUNvbGxlY3Rpb24pID0+IHtcclxuICAgICAgICAgICAgY29uc3QgaW1wb3J0RXhwb3J0T3B0aW9ucyA9XHJcbiAgICAgICAgICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZygnaW1wb3J0RXhwb3J0Jyk7XHJcbiAgICAgICAgICAgIGlmICghaW1wb3J0RXhwb3J0T3B0aW9ucz8uaW1wb3J0V2l0aFN0eWxlKSB7XHJcbiAgICAgICAgICAgICAgYWRkSW1wb3J0ZWRGZWF0dXJlc1RvTWFwKGZlYXR1cmVDb2xsZWN0aW9uLCB0aGlzLm1hcCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgYWRkSW1wb3J0ZWRGZWF0dXJlc1N0eWxlZFRvTWFwKFxyXG4gICAgICAgICAgICAgICAgZmVhdHVyZUNvbGxlY3Rpb24sXHJcbiAgICAgICAgICAgICAgICB0aGlzLm1hcCxcclxuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVMaXN0U2VydmljZSxcclxuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLmxheWVyU2VydmljZVxyXG4gICAgICAuY3JlYXRlQXN5bmNJZGJMYXllcnMoY29udGV4dC51cmkpXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSg1MDApKVxyXG4gICAgICAuc3Vic2NyaWJlKChsYXllcnM6IExheWVyW10pID0+IHRoaXMuaGFuZGxlQWRkTGF5ZXJzKGxheWVycykpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVBZGRMYXllcnMobGF5ZXJzOiBMYXllcltdKSB7XHJcbiAgICBsYXllcnMgPSBsYXllcnNcclxuICAgICAgLmZpbHRlcigobGF5ZXI6IExheWVyKSA9PiBsYXllciAhPT0gdW5kZWZpbmVkKVxyXG4gICAgICAubWFwKChsYXllcikgPT4ge1xyXG4gICAgICAgIGxheWVyLnZpc2libGUgPSB0aGlzLmNvbXB1dGVMYXllclZpc2liaWxpdHlGcm9tVXJsKGxheWVyKTtcclxuICAgICAgICBsYXllci56SW5kZXggPSBsYXllci56SW5kZXg7XHJcblxyXG4gICAgICAgIHJldHVybiBsYXllcjtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLmNvbnRleHRMYXllcnMuY29uY2F0KGxheWVycyk7XHJcbiAgICB0aGlzLm1hcC5hZGRMYXllcnMobGF5ZXJzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY29tcHV0ZUxheWVyVmlzaWJpbGl0eUZyb21VcmwobGF5ZXI6IExheWVyKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLnF1ZXJ5UGFyYW1zO1xyXG4gICAgY29uc3QgY3VycmVudENvbnRleHQgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmNvbnRleHQkLnZhbHVlLnVyaTtcclxuICAgIGNvbnN0IGN1cnJlbnRMYXllcmlkOiBzdHJpbmcgPSBsYXllci5pZDtcclxuXHJcbiAgICBsZXQgdmlzaWJsZSA9IGxheWVyLnZpc2libGU7XHJcbiAgICBpZiAoIXBhcmFtcyB8fCAhY3VycmVudExheWVyaWQpIHtcclxuICAgICAgcmV0dXJuIHZpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgY29udGV4dFBhcmFtcyA9IHBhcmFtc1t0aGlzLnJvdXRlLm9wdGlvbnMuY29udGV4dEtleSBhcyBzdHJpbmddO1xyXG4gICAgaWYgKGNvbnRleHRQYXJhbXMgPT09IGN1cnJlbnRDb250ZXh0IHx8ICFjb250ZXh0UGFyYW1zKSB7XHJcbiAgICAgIGxldCB2aXNpYmxlT25MYXllcnNQYXJhbXMgPSAnJztcclxuICAgICAgbGV0IHZpc2libGVPZmZMYXllcnNQYXJhbXMgPSAnJztcclxuICAgICAgbGV0IHZpc2libGVsYXllcnM6IHN0cmluZ1tdID0gW107XHJcbiAgICAgIGxldCBpbnZpc2libGVsYXllcnM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5yb3V0ZS5vcHRpb25zLnZpc2libGVPbkxheWVyc0tleSAmJlxyXG4gICAgICAgIHBhcmFtc1t0aGlzLnJvdXRlLm9wdGlvbnMudmlzaWJsZU9uTGF5ZXJzS2V5IGFzIHN0cmluZ11cclxuICAgICAgKSB7XHJcbiAgICAgICAgdmlzaWJsZU9uTGF5ZXJzUGFyYW1zID1cclxuICAgICAgICAgIHBhcmFtc1t0aGlzLnJvdXRlLm9wdGlvbnMudmlzaWJsZU9uTGF5ZXJzS2V5IGFzIHN0cmluZ107XHJcbiAgICAgIH1cclxuICAgICAgaWYgKFxyXG4gICAgICAgIHRoaXMucm91dGUub3B0aW9ucy52aXNpYmxlT2ZmTGF5ZXJzS2V5ICYmXHJcbiAgICAgICAgcGFyYW1zW3RoaXMucm91dGUub3B0aW9ucy52aXNpYmxlT2ZmTGF5ZXJzS2V5IGFzIHN0cmluZ11cclxuICAgICAgKSB7XHJcbiAgICAgICAgdmlzaWJsZU9mZkxheWVyc1BhcmFtcyA9XHJcbiAgICAgICAgICBwYXJhbXNbdGhpcy5yb3V0ZS5vcHRpb25zLnZpc2libGVPZmZMYXllcnNLZXkgYXMgc3RyaW5nXTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLyogVGhpcyBvcmRlciBpcyBpbXBvcnRhbnQgYmVjYXVzZSB0byBjb250cm9sIHdoaWNoZXZlclxyXG4gICAgICAgdGhlIG9yZGVyIG9mICogcGFyYW0uIEZpcnN0IHdoZSBvcGVuIGFuZCBjbG9zZSBldmVyeXRoaW5nLiovXHJcbiAgICAgIGlmICh2aXNpYmxlT25MYXllcnNQYXJhbXMgPT09ICcqJykge1xyXG4gICAgICAgIHZpc2libGUgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh2aXNpYmxlT2ZmTGF5ZXJzUGFyYW1zID09PSAnKicpIHtcclxuICAgICAgICB2aXNpYmxlID0gZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vIEFmdGVyLCBtYW5hZ2luZyBuYW1lZCBsYXllciBieSBpZCAoY29udGV4dC5qc29uIE9SIGlkIGZyb20gZGF0YXNvdXJjZSlcclxuICAgICAgdmlzaWJsZWxheWVycyA9IHZpc2libGVPbkxheWVyc1BhcmFtcy5zcGxpdCgnLCcpO1xyXG4gICAgICBpbnZpc2libGVsYXllcnMgPSB2aXNpYmxlT2ZmTGF5ZXJzUGFyYW1zLnNwbGl0KCcsJyk7XHJcbiAgICAgIGlmIChcclxuICAgICAgICB2aXNpYmxlbGF5ZXJzLmluZGV4T2YoY3VycmVudExheWVyaWQpID4gLTEgfHxcclxuICAgICAgICB2aXNpYmxlbGF5ZXJzLmluZGV4T2YoY3VycmVudExheWVyaWQudG9TdHJpbmcoKSkgPiAtMVxyXG4gICAgICApIHtcclxuICAgICAgICB2aXNpYmxlID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoXHJcbiAgICAgICAgaW52aXNpYmxlbGF5ZXJzLmluZGV4T2YoY3VycmVudExheWVyaWQpID4gLTEgfHxcclxuICAgICAgICBpbnZpc2libGVsYXllcnMuaW5kZXhPZihjdXJyZW50TGF5ZXJpZC50b1N0cmluZygpKSA+IC0xXHJcbiAgICAgICkge1xyXG4gICAgICAgIHZpc2libGUgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2aXNpYmxlO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,8 +1,8 @@
1
1
  import { Directive } from '@angular/core';
2
- import { filter } from 'rxjs/operators';
2
+ import { MediaService } from '@igo2/core';
3
3
  import { MapBrowserComponent } from '@igo2/geo';
4
+ import { filter } from 'rxjs/operators';
4
5
  import { ContextService } from './context.service';
5
- import { MediaService } from '@igo2/core';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@igo2/geo";
8
8
  import * as i2 from "./context.service";
@@ -76,4 +76,4 @@ export class MapContextDirective {
76
76
  selector: '[igoMapContext]'
77
77
  }]
78
78
  }], function () { return [{ type: i1.MapBrowserComponent }, { type: i2.ContextService }, { type: i3.MediaService }]; }, null); })();
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbnRleHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29udGV4dC9zcmMvbGliL2NvbnRleHQtbWFuYWdlci9zaGFyZWQvbWFwLWNvbnRleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QyxPQUFPLEVBRUwsbUJBQW1CLEVBR3BCLE1BQU0sV0FBVyxDQUFDO0FBR25CLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDOzs7OztBQUsxQyxNQUFNLE9BQU8sbUJBQW1CO0lBVXBCO0lBQ0E7SUFWRixTQUFTLENBQXNCO0lBQy9CLFNBQVMsQ0FBZTtJQUVoQyxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUNFLFNBQThCLEVBQ3RCLGNBQThCLEVBQzlCLFlBQTBCO1FBRDFCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUVsQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRO2FBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsQ0FBQzthQUNoRCxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU8sbUJBQW1CLENBQUMsT0FBd0I7UUFDbEQsSUFBSSxPQUFPLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRTtZQUM3QixPQUFPO1NBQ1I7UUFFRCxpRUFBaUU7UUFDakUsb0VBQW9FO1FBQ3BFLHlFQUF5RTtRQUN6RSwyRUFBMkU7UUFDM0Usa0VBQWtFO1FBQ2xFLHVFQUF1RTtRQUN2RSxzRUFBc0U7UUFDdEUsV0FBVztRQUVYLG9EQUFvRDtRQUNwRCw4Q0FBOEM7UUFDOUMsNkJBQTZCO1FBQzdCLDJDQUEyQztRQUUzQyxNQUFNLFdBQVcsR0FBbUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDckQsSUFDRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSTtZQUNwQixXQUFXLENBQUMsZUFBZSxLQUFLLElBQUk7WUFDcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUNuRDtZQUNBLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLFdBQTZCLENBQUM7U0FDckQ7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFO1lBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLHdCQUF3QixDQUMvRCxXQUFXLENBQ1osQ0FBQztTQUNIO1FBRUQsTUFBTSxlQUFlLEdBQXVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsSUFBSSxlQUFlLEVBQUU7WUFDL0MsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNoQyxJQUFJLE9BQU8sZUFBZSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUU7b0JBQ2xELE1BQU0sZUFBZSxHQUNuQixlQUFlLENBQUMsU0FBZ0MsQ0FBQztvQkFDbkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUU7d0JBQzdCLGVBQWUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUNsRSxlQUFlLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQztxQkFDN0M7aUJBQ0Y7YUFDRjtZQUNELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQztTQUMzQztJQUNILENBQUM7NkVBekVVLG1CQUFtQjs2REFBbkIsbUJBQW1COzt1RkFBbkIsbUJBQW1CO2NBSC9CLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2FBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkluaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7XHJcbiAgTWFwVmlld09wdGlvbnMsXHJcbiAgTWFwQnJvd3NlckNvbXBvbmVudCxcclxuICBNYXBDb250cm9sc09wdGlvbnMsXHJcbiAgTWFwU2NhbGVMaW5lT3B0aW9uc1xyXG59IGZyb20gJ0BpZ28yL2dlbyc7XHJcbmltcG9ydCB0eXBlIHsgSWdvTWFwIH0gZnJvbSAnQGlnbzIvZ2VvJztcclxuXHJcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9jb250ZXh0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEZXRhaWxlZENvbnRleHQsIENvbnRleHRNYXBWaWV3IH0gZnJvbSAnLi9jb250ZXh0LmludGVyZmFjZSc7XHJcbmltcG9ydCB7IE1lZGlhU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbaWdvTWFwQ29udGV4dF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXBDb250ZXh0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgY29tcG9uZW50OiBNYXBCcm93c2VyQ29tcG9uZW50O1xyXG4gIHByaXZhdGUgY29udGV4dCQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGdldCBtYXAoKTogSWdvTWFwIHtcclxuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudC5tYXA7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGNvbXBvbmVudDogTWFwQnJvd3NlckNvbXBvbmVudCxcclxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZWRpYVNlcnZpY2U6IE1lZGlhU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5jb21wb25lbnQgPSBjb21wb25lbnQ7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY29udGV4dCQkID0gdGhpcy5jb250ZXh0U2VydmljZS5jb250ZXh0JFxyXG4gICAgICAucGlwZShmaWx0ZXIoKGNvbnRleHQpID0+IGNvbnRleHQgIT09IHVuZGVmaW5lZCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGNvbnRleHQpID0+IHRoaXMuaGFuZGxlQ29udGV4dENoYW5nZShjb250ZXh0KSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuY29udGV4dCQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUNvbnRleHRDaGFuZ2UoY29udGV4dDogRGV0YWlsZWRDb250ZXh0KSB7XHJcbiAgICBpZiAoY29udGV4dC5tYXAgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVGhpcyBjcmVhdGVzIGEgbmV3IG9sLk1hcCB3aGVuIHRoZSBjb250ZXh0IGNoYW5nZXMuIERvaW5nIHRoYXRcclxuICAgIC8vIGFsbG93cyB0aGUgcHJpbnQgdG9vbCB0byB3b3JrIHByb3Blcmx5IGV2ZW4gd2hlbiB0aGUgbWFwJ3MgY2FudmFzXHJcbiAgICAvLyBoYXMgYmVlbiB0YWludGVkIChDT1JTKSB3aXRoIHRoZSBsYXllcnMgb2YgYW5vdGhlciBjb250ZXh0LiBUaGlzIGNvdWxkXHJcbiAgICAvLyBoYXZlIHNvbWUgc2lkZSBlZmZlY3RzIHN1Y2ggYXMgdW5iaW5kaW5nIGFsbCBsaXN0ZW5lcnMgb24gdGhlIGZpcnN0IG1hcC5cclxuICAgIC8vIEEgYmV0dGVyIHNvbHV0aW9uIHdvdWxkIGJlIHRvIGNyZWF0ZSBhIG5ldyBtYXAgKHByZXZpZXcpIGJlZm9yZVxyXG4gICAgLy8gcHJpbnRpbmcgYW5kIGF2b2lkIHRoZSB0YWludGVkIGNhbnZhcyBpc3N1ZS4gVGhpcyB3aWxsIGNvbWUgbGF0ZXIgc29cclxuICAgIC8vIHRoaXMgc25pcHBldCBvZiBjb2RlIGlzIGtlcHQgaGVyZSBpbiBjYXNlIGl0IHRha2VzIHRvbyBsb25nIGJlY29tZXNcclxuICAgIC8vIGFuIGlzc3VlXHJcblxyXG4gICAgLy8gY29uc3QgdGFyZ2V0ID0gdGhpcy5jb21wb25lbnQubWFwLm9sLmdldFRhcmdldCgpO1xyXG4gICAgLy8gdGhpcy5jb21wb25lbnQubWFwLm9sLnNldFRhcmdldCh1bmRlZmluZWQpO1xyXG4gICAgLy8gdGhpcy5jb21wb25lbnQubWFwLmluaXQoKTtcclxuICAgIC8vIHRoaXMuY29tcG9uZW50Lm1hcC5vbC5zZXRUYXJnZXQodGFyZ2V0KTtcclxuXHJcbiAgICBjb25zdCB2aWV3Q29udGV4dDogQ29udGV4dE1hcFZpZXcgPSBjb250ZXh0Lm1hcC52aWV3O1xyXG4gICAgaWYgKFxyXG4gICAgICAhdGhpcy5jb21wb25lbnQudmlldyB8fFxyXG4gICAgICB2aWV3Q29udGV4dC5rZWVwQ3VycmVudFZpZXcgIT09IHRydWUgfHxcclxuICAgICAgY29udGV4dC5tYXAudmlldy5wcm9qZWN0aW9uICE9PSB0aGlzLm1hcC5wcm9qZWN0aW9uXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5jb21wb25lbnQudmlldyA9IHZpZXdDb250ZXh0IGFzIE1hcFZpZXdPcHRpb25zO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY29tcG9uZW50Lm1hcC5nZW9sb2NhdGlvbkNvbnRyb2xsZXIpIHtcclxuICAgICAgdGhpcy5jb21wb25lbnQubWFwLmdlb2xvY2F0aW9uQ29udHJvbGxlci51cGRhdGVHZW9sb2NhdGlvbk9wdGlvbnMoXHJcbiAgICAgICAgdmlld0NvbnRleHRcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjb250cm9sc0NvbnRleHQ6IE1hcENvbnRyb2xzT3B0aW9ucyA9IGNvbnRleHQubWFwLmNvbnRyb2xzO1xyXG4gICAgaWYgKCF0aGlzLmNvbXBvbmVudC5jb250cm9scyAmJiBjb250cm9sc0NvbnRleHQpIHtcclxuICAgICAgaWYgKHRoaXMubWVkaWFTZXJ2aWNlLmlzTW9iaWxlKCkpIHtcclxuICAgICAgICBpZiAodHlwZW9mIGNvbnRyb2xzQ29udGV4dC5zY2FsZUxpbmUgIT09ICdib29sZWFuJykge1xyXG4gICAgICAgICAgY29uc3Qgc2NhbGVMaW5lT3B0aW9uID1cclxuICAgICAgICAgICAgY29udHJvbHNDb250ZXh0LnNjYWxlTGluZSBhcyBNYXBTY2FsZUxpbmVPcHRpb25zO1xyXG4gICAgICAgICAgaWYgKCFzY2FsZUxpbmVPcHRpb24ubWluV2lkdGgpIHtcclxuICAgICAgICAgICAgc2NhbGVMaW5lT3B0aW9uLm1pbldpZHRoID0gTWF0aC5taW4oNjQsIHNjYWxlTGluZU9wdGlvbi5taW5XaWR0aCk7XHJcbiAgICAgICAgICAgIGNvbnRyb2xzQ29udGV4dC5zY2FsZUxpbmUgPSBzY2FsZUxpbmVPcHRpb247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29tcG9uZW50LmNvbnRyb2xzID0gY29udHJvbHNDb250ZXh0O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFwLWNvbnRleHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29udGV4dC9zcmMvbGliL2NvbnRleHQtbWFuYWdlci9zaGFyZWQvbWFwLWNvbnRleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUMsT0FBTyxFQUNMLG1CQUFtQixFQUlwQixNQUFNLFdBQVcsQ0FBQztBQUluQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7OztBQUtuRCxNQUFNLE9BQU8sbUJBQW1CO0lBVXBCO0lBQ0E7SUFWRixTQUFTLENBQXNCO0lBQy9CLFNBQVMsQ0FBZTtJQUVoQyxJQUFJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO0lBQzVCLENBQUM7SUFFRCxZQUNFLFNBQThCLEVBQ3RCLGNBQThCLEVBQzlCLFlBQTBCO1FBRDFCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUVsQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRO2FBQzFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sS0FBSyxTQUFTLENBQUMsQ0FBQzthQUNoRCxTQUFTLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRU8sbUJBQW1CLENBQUMsT0FBd0I7UUFDbEQsSUFBSSxPQUFPLENBQUMsR0FBRyxLQUFLLFNBQVMsRUFBRTtZQUM3QixPQUFPO1NBQ1I7UUFFRCxpRUFBaUU7UUFDakUsb0VBQW9FO1FBQ3BFLHlFQUF5RTtRQUN6RSwyRUFBMkU7UUFDM0Usa0VBQWtFO1FBQ2xFLHVFQUF1RTtRQUN2RSxzRUFBc0U7UUFDdEUsV0FBVztRQUVYLG9EQUFvRDtRQUNwRCw4Q0FBOEM7UUFDOUMsNkJBQTZCO1FBQzdCLDJDQUEyQztRQUUzQyxNQUFNLFdBQVcsR0FBbUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDckQsSUFDRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSTtZQUNwQixXQUFXLENBQUMsZUFBZSxLQUFLLElBQUk7WUFDcEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUNuRDtZQUNBLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLFdBQTZCLENBQUM7U0FDckQ7UUFDRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFO1lBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLHdCQUF3QixDQUMvRCxXQUFXLENBQ1osQ0FBQztTQUNIO1FBRUQsTUFBTSxlQUFlLEdBQXVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsSUFBSSxlQUFlLEVBQUU7WUFDL0MsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNoQyxJQUFJLE9BQU8sZUFBZSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUU7b0JBQ2xELE1BQU0sZUFBZSxHQUNuQixlQUFlLENBQUMsU0FBZ0MsQ0FBQztvQkFDbkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUU7d0JBQzdCLGVBQWUsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3dCQUNsRSxlQUFlLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQztxQkFDN0M7aUJBQ0Y7YUFDRjtZQUNELElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxHQUFHLGVBQWUsQ0FBQztTQUMzQztJQUNILENBQUM7NkVBekVVLG1CQUFtQjs2REFBbkIsbUJBQW1COzt1RkFBbkIsbUJBQW1CO2NBSC9CLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2FBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTWVkaWFTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgTWFwQnJvd3NlckNvbXBvbmVudCxcclxuICBNYXBDb250cm9sc09wdGlvbnMsXHJcbiAgTWFwU2NhbGVMaW5lT3B0aW9ucyxcclxuICBNYXBWaWV3T3B0aW9uc1xyXG59IGZyb20gJ0BpZ28yL2dlbyc7XHJcbmltcG9ydCB0eXBlIHsgSWdvTWFwIH0gZnJvbSAnQGlnbzIvZ2VvJztcclxuXHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBDb250ZXh0TWFwVmlldywgRGV0YWlsZWRDb250ZXh0IH0gZnJvbSAnLi9jb250ZXh0LmludGVyZmFjZSc7XHJcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9jb250ZXh0LnNlcnZpY2UnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbaWdvTWFwQ29udGV4dF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXBDb250ZXh0RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgY29tcG9uZW50OiBNYXBCcm93c2VyQ29tcG9uZW50O1xyXG4gIHByaXZhdGUgY29udGV4dCQkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGdldCBtYXAoKTogSWdvTWFwIHtcclxuICAgIHJldHVybiB0aGlzLmNvbXBvbmVudC5tYXA7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIGNvbXBvbmVudDogTWFwQnJvd3NlckNvbXBvbmVudCxcclxuICAgIHByaXZhdGUgY29udGV4dFNlcnZpY2U6IENvbnRleHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZWRpYVNlcnZpY2U6IE1lZGlhU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5jb21wb25lbnQgPSBjb21wb25lbnQ7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY29udGV4dCQkID0gdGhpcy5jb250ZXh0U2VydmljZS5jb250ZXh0JFxyXG4gICAgICAucGlwZShmaWx0ZXIoKGNvbnRleHQpID0+IGNvbnRleHQgIT09IHVuZGVmaW5lZCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKGNvbnRleHQpID0+IHRoaXMuaGFuZGxlQ29udGV4dENoYW5nZShjb250ZXh0KSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuY29udGV4dCQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUNvbnRleHRDaGFuZ2UoY29udGV4dDogRGV0YWlsZWRDb250ZXh0KSB7XHJcbiAgICBpZiAoY29udGV4dC5tYXAgPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgLy8gVGhpcyBjcmVhdGVzIGEgbmV3IG9sLk1hcCB3aGVuIHRoZSBjb250ZXh0IGNoYW5nZXMuIERvaW5nIHRoYXRcclxuICAgIC8vIGFsbG93cyB0aGUgcHJpbnQgdG9vbCB0byB3b3JrIHByb3Blcmx5IGV2ZW4gd2hlbiB0aGUgbWFwJ3MgY2FudmFzXHJcbiAgICAvLyBoYXMgYmVlbiB0YWludGVkIChDT1JTKSB3aXRoIHRoZSBsYXllcnMgb2YgYW5vdGhlciBjb250ZXh0LiBUaGlzIGNvdWxkXHJcbiAgICAvLyBoYXZlIHNvbWUgc2lkZSBlZmZlY3RzIHN1Y2ggYXMgdW5iaW5kaW5nIGFsbCBsaXN0ZW5lcnMgb24gdGhlIGZpcnN0IG1hcC5cclxuICAgIC8vIEEgYmV0dGVyIHNvbHV0aW9uIHdvdWxkIGJlIHRvIGNyZWF0ZSBhIG5ldyBtYXAgKHByZXZpZXcpIGJlZm9yZVxyXG4gICAgLy8gcHJpbnRpbmcgYW5kIGF2b2lkIHRoZSB0YWludGVkIGNhbnZhcyBpc3N1ZS4gVGhpcyB3aWxsIGNvbWUgbGF0ZXIgc29cclxuICAgIC8vIHRoaXMgc25pcHBldCBvZiBjb2RlIGlzIGtlcHQgaGVyZSBpbiBjYXNlIGl0IHRha2VzIHRvbyBsb25nIGJlY29tZXNcclxuICAgIC8vIGFuIGlzc3VlXHJcblxyXG4gICAgLy8gY29uc3QgdGFyZ2V0ID0gdGhpcy5jb21wb25lbnQubWFwLm9sLmdldFRhcmdldCgpO1xyXG4gICAgLy8gdGhpcy5jb21wb25lbnQubWFwLm9sLnNldFRhcmdldCh1bmRlZmluZWQpO1xyXG4gICAgLy8gdGhpcy5jb21wb25lbnQubWFwLmluaXQoKTtcclxuICAgIC8vIHRoaXMuY29tcG9uZW50Lm1hcC5vbC5zZXRUYXJnZXQodGFyZ2V0KTtcclxuXHJcbiAgICBjb25zdCB2aWV3Q29udGV4dDogQ29udGV4dE1hcFZpZXcgPSBjb250ZXh0Lm1hcC52aWV3O1xyXG4gICAgaWYgKFxyXG4gICAgICAhdGhpcy5jb21wb25lbnQudmlldyB8fFxyXG4gICAgICB2aWV3Q29udGV4dC5rZWVwQ3VycmVudFZpZXcgIT09IHRydWUgfHxcclxuICAgICAgY29udGV4dC5tYXAudmlldy5wcm9qZWN0aW9uICE9PSB0aGlzLm1hcC5wcm9qZWN0aW9uXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5jb21wb25lbnQudmlldyA9IHZpZXdDb250ZXh0IGFzIE1hcFZpZXdPcHRpb25zO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY29tcG9uZW50Lm1hcC5nZW9sb2NhdGlvbkNvbnRyb2xsZXIpIHtcclxuICAgICAgdGhpcy5jb21wb25lbnQubWFwLmdlb2xvY2F0aW9uQ29udHJvbGxlci51cGRhdGVHZW9sb2NhdGlvbk9wdGlvbnMoXHJcbiAgICAgICAgdmlld0NvbnRleHRcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjb250cm9sc0NvbnRleHQ6IE1hcENvbnRyb2xzT3B0aW9ucyA9IGNvbnRleHQubWFwLmNvbnRyb2xzO1xyXG4gICAgaWYgKCF0aGlzLmNvbXBvbmVudC5jb250cm9scyAmJiBjb250cm9sc0NvbnRleHQpIHtcclxuICAgICAgaWYgKHRoaXMubWVkaWFTZXJ2aWNlLmlzTW9iaWxlKCkpIHtcclxuICAgICAgICBpZiAodHlwZW9mIGNvbnRyb2xzQ29udGV4dC5zY2FsZUxpbmUgIT09ICdib29sZWFuJykge1xyXG4gICAgICAgICAgY29uc3Qgc2NhbGVMaW5lT3B0aW9uID1cclxuICAgICAgICAgICAgY29udHJvbHNDb250ZXh0LnNjYWxlTGluZSBhcyBNYXBTY2FsZUxpbmVPcHRpb25zO1xyXG4gICAgICAgICAgaWYgKCFzY2FsZUxpbmVPcHRpb24ubWluV2lkdGgpIHtcclxuICAgICAgICAgICAgc2NhbGVMaW5lT3B0aW9uLm1pbldpZHRoID0gTWF0aC5taW4oNjQsIHNjYWxlTGluZU9wdGlvbi5taW5XaWR0aCk7XHJcbiAgICAgICAgICAgIGNvbnRyb2xzQ29udGV4dC5zY2FsZUxpbmUgPSBzY2FsZUxpbmVPcHRpb247XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuY29tcG9uZW50LmNvbnRyb2xzID0gY29udHJvbHNDb250ZXh0O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,7 +1,7 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import { MatDialog } from '@angular/material/dialog';
3
- import { take } from 'rxjs/operators';
4
3
  import { MessageService } from '@igo2/core';
4
+ import { take } from 'rxjs/operators';
5
5
  import { ContextService } from '../../context-manager/shared/context.service';
6
6
  import { BookmarkDialogComponent } from './bookmark-dialog.component';
7
7
  import * as i0 from "@angular/core";
@@ -65,10 +65,10 @@ export class BookmarkButtonComponent {
65
65
  }
66
66
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BookmarkButtonComponent, [{
67
67
  type: Component,
68
- args: [{ selector: 'igo-bookmark-button', template: "<div class=\"igo-bookmark-button-container\">\r\n <button\r\n mat-icon-button\r\n [matTooltip]=\"'igo.context.bookmarkButton.create' | translate\"\r\n matTooltipPosition=\"above\"\r\n [color]=\"color\"\r\n (click)=\"createContext()\"\r\n >\r\n <mat-icon svgIcon=\"star\"></mat-icon>\r\n </button>\r\n</div>\r\n", styles: [":host button{border-radius:0!important}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}:host .igo-bookmark-button-container{width:40px}:host .igo-bookmark-button-container button{background-color:#fff}:host .igo-bookmark-button-container button:hover{background-color:#efefef}\n"] }]
68
+ args: [{ selector: 'igo-bookmark-button', template: "<div class=\"igo-bookmark-button-container\">\n <button\n mat-icon-button\n [matTooltip]=\"'igo.context.bookmarkButton.create' | translate\"\n matTooltipPosition=\"above\"\n [color]=\"color\"\n (click)=\"createContext()\"\n >\n <mat-icon svgIcon=\"star\"></mat-icon>\n </button>\n</div>\n", styles: [":host button{border-radius:0!important}:host button .mat-ripple,:host button .mdc-icon-button__ripple{border-radius:0!important}:host .igo-bookmark-button-container{width:40px}:host .igo-bookmark-button-container button{background-color:#fff}:host .igo-bookmark-button-container button:hover{background-color:#efefef}\n"] }]
69
69
  }], function () { return [{ type: i1.MatDialog }, { type: i2.ContextService }, { type: i3.MessageService }]; }, { map: [{
70
70
  type: Input
71
71
  }], color: [{
72
72
  type: Input
73
73
  }] }); })();
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va21hcmstYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbnRleHQvc3JjL2xpYi9jb250ZXh0LW1hcC1idXR0b24vYm9va21hcmstYnV0dG9uL2Jvb2ttYXJrLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYXAtYnV0dG9uL2Jvb2ttYXJrLWJ1dHRvbi9ib29rbWFyay1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7O0FBT3RFLE1BQU0sT0FBTyx1QkFBdUI7SUFvQnhCO0lBQ0E7SUFDQTtJQXJCVixJQUNJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQUksR0FBRyxDQUFDLEtBQWE7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNPLElBQUksQ0FBUztJQUVyQixJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUNPLE1BQU0sQ0FBUztJQUV2QixZQUNVLE1BQWlCLEVBQ2pCLGNBQThCLEVBQzlCLGNBQThCO1FBRjlCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUNyQyxDQUFDO0lBRUosYUFBYTtRQUNYLElBQUksQ0FBQyxNQUFNO2FBQ1IsSUFBSSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQ3RELFdBQVcsRUFBRTthQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixJQUFJLEtBQUssRUFBRTtnQkFDVCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDaEUsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ2pELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUN6Qiw2Q0FBNkMsRUFDN0MsK0NBQStDLEVBQy9DLFNBQVMsRUFDVCxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQ3pCLENBQUM7b0JBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQyxDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO2lGQTdDVSx1QkFBdUI7NkRBQXZCLHVCQUF1QjtZQ2ZwQyw4QkFBMkMsZ0JBQUE7WUFNdkMsb0dBQVMsbUJBQWUsSUFBQzs7WUFFekIsOEJBQW9DO1lBQ3RDLGlCQUFTLEVBQUE7O1lBTlAsZUFBOEQ7WUFBOUQsc0ZBQThELG9CQUFBOzs7dUZEWXJELHVCQUF1QjtjQUxuQyxTQUFTOzJCQUNFLHFCQUFxQjtzSEFNM0IsR0FBRztrQkFETixLQUFLO1lBVUYsS0FBSztrQkFEUixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuaW1wb3J0IHR5cGUgeyBJZ29NYXAgfSBmcm9tICdAaWdvMi9nZW8nO1xyXG5cclxuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb250ZXh0LW1hbmFnZXIvc2hhcmVkL2NvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IEJvb2ttYXJrRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9ib29rbWFyay1kaWFsb2cuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWJvb2ttYXJrLWJ1dHRvbicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Jvb2ttYXJrLWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYm9va21hcmstYnV0dG9uLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEJvb2ttYXJrQnV0dG9uQ29tcG9uZW50IHtcclxuICBASW5wdXQoKVxyXG4gIGdldCBtYXAoKTogSWdvTWFwIHtcclxuICAgIHJldHVybiB0aGlzLl9tYXA7XHJcbiAgfVxyXG4gIHNldCBtYXAodmFsdWU6IElnb01hcCkge1xyXG4gICAgdGhpcy5fbWFwID0gdmFsdWU7XHJcbiAgfVxyXG4gIHByaXZhdGUgX21hcDogSWdvTWFwO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGdldCBjb2xvcigpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xyXG4gIH1cclxuICBzZXQgY29sb3IodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fY29sb3IgPSB2YWx1ZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfY29sb3I6IHN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgcHJpdmF0ZSBjb250ZXh0U2VydmljZTogQ29udGV4dFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgY3JlYXRlQ29udGV4dCgpIHtcclxuICAgIHRoaXMuZGlhbG9nXHJcbiAgICAgIC5vcGVuKEJvb2ttYXJrRGlhbG9nQ29tcG9uZW50LCB7IGRpc2FibGVDbG9zZTogZmFsc2UgfSlcclxuICAgICAgLmFmdGVyQ2xvc2VkKClcclxuICAgICAgLnBpcGUodGFrZSgxKSlcclxuICAgICAgLnN1YnNjcmliZSgodGl0bGUpID0+IHtcclxuICAgICAgICBpZiAodGl0bGUpIHtcclxuICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmdldENvbnRleHRGcm9tTWFwKHRoaXMubWFwKTtcclxuICAgICAgICAgIGNvbnRleHQudGl0bGUgPSB0aXRsZTtcclxuICAgICAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UuY3JlYXRlKGNvbnRleHQpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2Uuc3VjY2VzcyhcclxuICAgICAgICAgICAgICAnaWdvLmNvbnRleHQuYm9va21hcmtCdXR0b24uZGlhbG9nLmNyZWF0ZU1zZycsXHJcbiAgICAgICAgICAgICAgJ2lnby5jb250ZXh0LmJvb2ttYXJrQnV0dG9uLmRpYWxvZy5jcmVhdGVUaXRsZScsXHJcbiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgIHsgdmFsdWU6IGNvbnRleHQudGl0bGUgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aGlzLmNvbnRleHRTZXJ2aWNlLmxvYWRDb250ZXh0KGNvbnRleHQudXJpKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpZ28tYm9va21hcmstYnV0dG9uLWNvbnRhaW5lclwiPlxyXG4gIDxidXR0b25cclxuICAgIG1hdC1pY29uLWJ1dHRvblxyXG4gICAgW21hdFRvb2x0aXBdPVwiJ2lnby5jb250ZXh0LmJvb2ttYXJrQnV0dG9uLmNyZWF0ZScgfCB0cmFuc2xhdGVcIlxyXG4gICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxyXG4gICAgW2NvbG9yXT1cImNvbG9yXCJcclxuICAgIChjbGljayk9XCJjcmVhdGVDb250ZXh0KClcIlxyXG4gID5cclxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwic3RhclwiPjwvbWF0LWljb24+XHJcbiAgPC9idXR0b24+XHJcbjwvZGl2PlxyXG4iXX0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va21hcmstYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbnRleHQvc3JjL2xpYi9jb250ZXh0LW1hcC1idXR0b24vYm9va21hcmstYnV0dG9uL2Jvb2ttYXJrLWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYXAtYnV0dG9uL2Jvb2ttYXJrLWJ1dHRvbi9ib29rbWFyay1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXJELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXRDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7Ozs7O0FBT3RFLE1BQU0sT0FBTyx1QkFBdUI7SUFvQnhCO0lBQ0E7SUFDQTtJQXJCVixJQUNJLEdBQUc7UUFDTCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUNELElBQUksR0FBRyxDQUFDLEtBQWE7UUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNPLElBQUksQ0FBUztJQUVyQixJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUNPLE1BQU0sQ0FBUztJQUV2QixZQUNVLE1BQWlCLEVBQ2pCLGNBQThCLEVBQzlCLGNBQThCO1FBRjlCLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUNyQyxDQUFDO0lBRUosYUFBYTtRQUNYLElBQUksQ0FBQyxNQUFNO2FBQ1IsSUFBSSxDQUFDLHVCQUF1QixFQUFFLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDO2FBQ3RELFdBQVcsRUFBRTthQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNuQixJQUFJLEtBQUssRUFBRTtnQkFDVCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDaEUsT0FBTyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7b0JBQ2pELElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUN6Qiw2Q0FBNkMsRUFDN0MsK0NBQStDLEVBQy9DLFNBQVMsRUFDVCxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQ3pCLENBQUM7b0JBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMvQyxDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO2lGQTdDVSx1QkFBdUI7NkRBQXZCLHVCQUF1QjtZQ2hCcEMsOEJBQTJDLGdCQUFBO1lBTXZDLG9HQUFTLG1CQUFlLElBQUM7O1lBRXpCLDhCQUFvQztZQUN0QyxpQkFBUyxFQUFBOztZQU5QLGVBQThEO1lBQTlELHNGQUE4RCxvQkFBQTs7O3VGRGFyRCx1QkFBdUI7Y0FMbkMsU0FBUzsyQkFDRSxxQkFBcUI7c0hBTTNCLEdBQUc7a0JBRE4sS0FBSztZQVVGLEtBQUs7a0JBRFIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuXHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB0eXBlIHsgSWdvTWFwIH0gZnJvbSAnQGlnbzIvZ2VvJztcclxuXHJcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSB9IGZyb20gJy4uLy4uL2NvbnRleHQtbWFuYWdlci9zaGFyZWQvY29udGV4dC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQm9va21hcmtEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuL2Jvb2ttYXJrLWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tYm9va21hcmstYnV0dG9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYm9va21hcmstYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9ib29rbWFyay1idXR0b24uY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQm9va21hcmtCdXR0b25Db21wb25lbnQge1xyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IG1hcCgpOiBJZ29NYXAge1xyXG4gICAgcmV0dXJuIHRoaXMuX21hcDtcclxuICB9XHJcbiAgc2V0IG1hcCh2YWx1ZTogSWdvTWFwKSB7XHJcbiAgICB0aGlzLl9tYXAgPSB2YWx1ZTtcclxuICB9XHJcbiAgcHJpdmF0ZSBfbWFwOiBJZ29NYXA7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZ2V0IGNvbG9yKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fY29sb3I7XHJcbiAgfVxyXG4gIHNldCBjb2xvcih2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9jb2xvciA9IHZhbHVlO1xyXG4gIH1cclxuICBwcml2YXRlIF9jb2xvcjogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIGNvbnRleHRTZXJ2aWNlOiBDb250ZXh0U2VydmljZSxcclxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBjcmVhdGVDb250ZXh0KCkge1xyXG4gICAgdGhpcy5kaWFsb2dcclxuICAgICAgLm9wZW4oQm9va21hcmtEaWFsb2dDb21wb25lbnQsIHsgZGlzYWJsZUNsb3NlOiBmYWxzZSB9KVxyXG4gICAgICAuYWZ0ZXJDbG9zZWQoKVxyXG4gICAgICAucGlwZSh0YWtlKDEpKVxyXG4gICAgICAuc3Vic2NyaWJlKCh0aXRsZSkgPT4ge1xyXG4gICAgICAgIGlmICh0aXRsZSkge1xyXG4gICAgICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuY29udGV4dFNlcnZpY2UuZ2V0Q29udGV4dEZyb21NYXAodGhpcy5tYXApO1xyXG4gICAgICAgICAgY29udGV4dC50aXRsZSA9IHRpdGxlO1xyXG4gICAgICAgICAgdGhpcy5jb250ZXh0U2VydmljZS5jcmVhdGUoY29udGV4dCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5zdWNjZXNzKFxyXG4gICAgICAgICAgICAgICdpZ28uY29udGV4dC5ib29rbWFya0J1dHRvbi5kaWFsb2cuY3JlYXRlTXNnJyxcclxuICAgICAgICAgICAgICAnaWdvLmNvbnRleHQuYm9va21hcmtCdXR0b24uZGlhbG9nLmNyZWF0ZVRpdGxlJyxcclxuICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgeyB2YWx1ZTogY29udGV4dC50aXRsZSB9XHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dFNlcnZpY2UubG9hZENvbnRleHQoY29udGV4dC51cmkpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImlnby1ib29rbWFyay1idXR0b24tY29udGFpbmVyXCI+XG4gIDxidXR0b25cbiAgICBtYXQtaWNvbi1idXR0b25cbiAgICBbbWF0VG9vbHRpcF09XCInaWdvLmNvbnRleHQuYm9va21hcmtCdXR0b24uY3JlYXRlJyB8IHRyYW5zbGF0ZVwiXG4gICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgKGNsaWNrKT1cImNyZWF0ZUNvbnRleHQoKVwiXG4gID5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cInN0YXJcIj48L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvZGl2PlxuIl19
@@ -48,6 +48,6 @@ export class BookmarkDialogComponent {
48
48
  }
49
49
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BookmarkDialogComponent, [{
50
50
  type: Component,
51
- args: [{ selector: 'igo-bookmark-dialog', template: "<h1 mat-dialog-title class=\"mat-typography\">\r\n {{ 'igo.context.bookmarkButton.dialog.title' | translate }}\r\n</h1>\r\n<div mat-dialog-content class=\"mat-typography\">\r\n <mat-form-field>\r\n <input\r\n matInput\r\n required\r\n autocomplete=\"off\"\r\n maxlength=\"128\"\r\n [placeholder]=\"\r\n 'igo.context.bookmarkButton.dialog.placeholder' | translate\r\n \"\r\n [(ngModel)]=\"title\"\r\n />\r\n </mat-form-field>\r\n</div>\r\n<div mat-dialog-actions>\r\n <button\r\n mat-button\r\n color=\"primary\"\r\n [disabled]=\"!title\"\r\n (click)=\"dialogRef.close(title)\"\r\n >\r\n {{ 'igo.common.confirmDialog.confirmBtn' | translate }}\r\n </button>\r\n <button mat-button (click)=\"dialogRef.close(false)\">\r\n {{ 'igo.common.confirmDialog.cancelBtn' | translate }}\r\n </button>\r\n</div>\r\n" }]
51
+ args: [{ selector: 'igo-bookmark-dialog', template: "<h1 mat-dialog-title class=\"mat-typography\">\n {{ 'igo.context.bookmarkButton.dialog.title' | translate }}\n</h1>\n<div mat-dialog-content class=\"mat-typography\">\n <mat-form-field>\n <input\n matInput\n required\n autocomplete=\"off\"\n maxlength=\"128\"\n [placeholder]=\"\n 'igo.context.bookmarkButton.dialog.placeholder' | translate\n \"\n [(ngModel)]=\"title\"\n />\n </mat-form-field>\n</div>\n<div mat-dialog-actions>\n <button\n mat-button\n color=\"primary\"\n [disabled]=\"!title\"\n (click)=\"dialogRef.close(title)\"\n >\n {{ 'igo.common.confirmDialog.confirmBtn' | translate }}\n </button>\n <button mat-button (click)=\"dialogRef.close(false)\">\n {{ 'igo.common.confirmDialog.cancelBtn' | translate }}\n </button>\n</div>\n" }]
52
52
  }], function () { return [{ type: i1.MatDialogRef }]; }, null); })();
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va21hcmstZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbnRleHQvc3JjL2xpYi9jb250ZXh0LW1hcC1idXR0b24vYm9va21hcmstYnV0dG9uL2Jvb2ttYXJrLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYXAtYnV0dG9uL2Jvb2ttYXJrLWJ1dHRvbi9ib29rbWFyay1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7O0FBTXhELE1BQU0sT0FBTyx1QkFBdUI7SUFHZjtJQUZaLEtBQUssQ0FBUztJQUVyQixZQUFtQixTQUFnRDtRQUFoRCxjQUFTLEdBQVQsU0FBUyxDQUF1QztJQUFHLENBQUM7aUZBSDVELHVCQUF1Qjs2REFBdkIsdUJBQXVCO1lDUHBDLDZCQUE0QztZQUMxQyxZQUNGOztZQUFBLGlCQUFLO1lBQ0wsOEJBQStDLHFCQUFBLGVBQUE7WUFVekMsK0lBQW1COztZQVJyQixpQkFTRSxFQUFBLEVBQUE7WUFHTiw4QkFBd0IsZ0JBQUE7WUFLcEIsb0dBQVMsOEJBQXNCLElBQUM7WUFFaEMsWUFDRjs7WUFBQSxpQkFBUztZQUNULGtDQUFvRDtZQUFqQyxxR0FBUyxvQkFBZ0IsS0FBSyxDQUFDLElBQUM7WUFDakQsYUFDRjs7WUFBQSxpQkFBUyxFQUFBOztZQTNCVCxlQUNGO1lBREUsaUdBQ0Y7WUFRTSxlQUVDO1lBRkQsbUdBRUMsc0JBQUE7WUFTSCxlQUFtQjtZQUFuQixxQ0FBbUI7WUFHbkIsZUFDRjtZQURFLDhGQUNGO1lBRUUsZUFDRjtZQURFLDZGQUNGOzs7dUZEckJXLHVCQUF1QjtjQUpuQyxTQUFTOzJCQUNFLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLWJvb2ttYXJrLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9ib29rbWFyay1kaWFsb2cuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEJvb2ttYXJrRGlhbG9nQ29tcG9uZW50IHtcbiAgcHVibGljIHRpdGxlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEJvb2ttYXJrRGlhbG9nQ29tcG9uZW50Pikge31cbn1cbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5cclxuICB7eyAnaWdvLmNvbnRleHQuYm9va21hcmtCdXR0b24uZGlhbG9nLnRpdGxlJyB8IHRyYW5zbGF0ZSB9fVxyXG48L2gxPlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+XHJcbiAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgPGlucHV0XHJcbiAgICAgIG1hdElucHV0XHJcbiAgICAgIHJlcXVpcmVkXHJcbiAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgIG1heGxlbmd0aD1cIjEyOFwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJcclxuICAgICAgICAnaWdvLmNvbnRleHQuYm9va21hcmtCdXR0b24uZGlhbG9nLnBsYWNlaG9sZGVyJyB8IHRyYW5zbGF0ZVxyXG4gICAgICBcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInRpdGxlXCJcclxuICAgIC8+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuPC9kaXY+XHJcbjxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zPlxyXG4gIDxidXR0b25cclxuICAgIG1hdC1idXR0b25cclxuICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiIXRpdGxlXCJcclxuICAgIChjbGljayk9XCJkaWFsb2dSZWYuY2xvc2UodGl0bGUpXCJcclxuICA+XHJcbiAgICB7eyAnaWdvLmNvbW1vbi5jb25maXJtRGlhbG9nLmNvbmZpcm1CdG4nIHwgdHJhbnNsYXRlIH19XHJcbiAgPC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtYnV0dG9uIChjbGljayk9XCJkaWFsb2dSZWYuY2xvc2UoZmFsc2UpXCI+XHJcbiAgICB7eyAnaWdvLmNvbW1vbi5jb25maXJtRGlhbG9nLmNhbmNlbEJ0bicgfCB0cmFuc2xhdGUgfX1cclxuICA8L2J1dHRvbj5cclxuPC9kaXY+XHJcbiJdfQ==
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va21hcmstZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbnRleHQvc3JjL2xpYi9jb250ZXh0LW1hcC1idXR0b24vYm9va21hcmstYnV0dG9uL2Jvb2ttYXJrLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb250ZXh0L3NyYy9saWIvY29udGV4dC1tYXAtYnV0dG9uL2Jvb2ttYXJrLWJ1dHRvbi9ib29rbWFyay1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7O0FBTXhELE1BQU0sT0FBTyx1QkFBdUI7SUFHZjtJQUZaLEtBQUssQ0FBUztJQUVyQixZQUFtQixTQUFnRDtRQUFoRCxjQUFTLEdBQVQsU0FBUyxDQUF1QztJQUFHLENBQUM7aUZBSDVELHVCQUF1Qjs2REFBdkIsdUJBQXVCO1lDUHBDLDZCQUE0QztZQUMxQyxZQUNGOztZQUFBLGlCQUFLO1lBQ0wsOEJBQStDLHFCQUFBLGVBQUE7WUFVekMsK0lBQW1COztZQVJyQixpQkFTRSxFQUFBLEVBQUE7WUFHTiw4QkFBd0IsZ0JBQUE7WUFLcEIsb0dBQVMsOEJBQXNCLElBQUM7WUFFaEMsWUFDRjs7WUFBQSxpQkFBUztZQUNULGtDQUFvRDtZQUFqQyxxR0FBUyxvQkFBZ0IsS0FBSyxDQUFDLElBQUM7WUFDakQsYUFDRjs7WUFBQSxpQkFBUyxFQUFBOztZQTNCVCxlQUNGO1lBREUsaUdBQ0Y7WUFRTSxlQUVDO1lBRkQsbUdBRUMsc0JBQUE7WUFTSCxlQUFtQjtZQUFuQixxQ0FBbUI7WUFHbkIsZUFDRjtZQURFLDhGQUNGO1lBRUUsZUFDRjtZQURFLDZGQUNGOzs7dUZEckJXLHVCQUF1QjtjQUpuQyxTQUFTOzJCQUNFLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWdvLWJvb2ttYXJrLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9ib29rbWFyay1kaWFsb2cuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEJvb2ttYXJrRGlhbG9nQ29tcG9uZW50IHtcbiAgcHVibGljIHRpdGxlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEJvb2ttYXJrRGlhbG9nQ29tcG9uZW50Pikge31cbn1cbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5cbiAge3sgJ2lnby5jb250ZXh0LmJvb2ttYXJrQnV0dG9uLmRpYWxvZy50aXRsZScgfCB0cmFuc2xhdGUgfX1cbjwvaDE+XG48ZGl2IG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+XG4gIDxtYXQtZm9ybS1maWVsZD5cbiAgICA8aW5wdXRcbiAgICAgIG1hdElucHV0XG4gICAgICByZXF1aXJlZFxuICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgIG1heGxlbmd0aD1cIjEyOFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiXG4gICAgICAgICdpZ28uY29udGV4dC5ib29rbWFya0J1dHRvbi5kaWFsb2cucGxhY2Vob2xkZXInIHwgdHJhbnNsYXRlXG4gICAgICBcIlxuICAgICAgWyhuZ01vZGVsKV09XCJ0aXRsZVwiXG4gICAgLz5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbjwvZGl2PlxuPGRpdiBtYXQtZGlhbG9nLWFjdGlvbnM+XG4gIDxidXR0b25cbiAgICBtYXQtYnV0dG9uXG4gICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICBbZGlzYWJsZWRdPVwiIXRpdGxlXCJcbiAgICAoY2xpY2spPVwiZGlhbG9nUmVmLmNsb3NlKHRpdGxlKVwiXG4gID5cbiAgICB7eyAnaWdvLmNvbW1vbi5jb25maXJtRGlhbG9nLmNvbmZpcm1CdG4nIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIG1hdC1idXR0b24gKGNsaWNrKT1cImRpYWxvZ1JlZi5jbG9zZShmYWxzZSlcIj5cbiAgICB7eyAnaWdvLmNvbW1vbi5jb25maXJtRGlhbG9nLmNhbmNlbEJ0bicgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==