@c8y/ngx-components 1018.0.215 → 1018.0.222

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 (40) hide show
  1. package/assets-navigator/asset-node.service.d.ts +5 -2
  2. package/ecosystem/application-plugins/plugin-list.component.d.ts +1 -0
  3. package/esm2020/assets-navigator/asset-node.mjs +7 -2
  4. package/esm2020/assets-navigator/asset-node.service.mjs +14 -5
  5. package/esm2020/core/header/title/title-outlet.component.mjs +3 -3
  6. package/esm2020/device-grid/columns/registration-date.device-grid-column.mjs +4 -10
  7. package/esm2020/ecosystem/application-plugins/application-plugins.component.mjs +34 -13
  8. package/esm2020/ecosystem/application-plugins/plugin-list.component.mjs +27 -13
  9. package/esm2020/ecosystem/packages/deploy-application/deploy-application.component.mjs +14 -3
  10. package/esm2020/repository/shared/repository.service.mjs +4 -4
  11. package/esm2020/services/services-device-tab/columns/last-updated-date.device-grid-column.mjs +4 -10
  12. package/fesm2015/c8y-ngx-components-assets-navigator.mjs +24 -12
  13. package/fesm2015/c8y-ngx-components-assets-navigator.mjs.map +1 -1
  14. package/fesm2015/c8y-ngx-components-device-grid.mjs +3 -9
  15. package/fesm2015/c8y-ngx-components-device-grid.mjs.map +1 -1
  16. package/fesm2015/c8y-ngx-components-ecosystem-application-plugins.mjs +44 -25
  17. package/fesm2015/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  18. package/fesm2015/c8y-ngx-components-ecosystem.mjs +55 -32
  19. package/fesm2015/c8y-ngx-components-ecosystem.mjs.map +1 -1
  20. package/fesm2015/c8y-ngx-components-repository-shared.mjs +3 -3
  21. package/fesm2015/c8y-ngx-components-repository-shared.mjs.map +1 -1
  22. package/fesm2015/c8y-ngx-components-services.mjs +3 -9
  23. package/fesm2015/c8y-ngx-components-services.mjs.map +1 -1
  24. package/fesm2015/c8y-ngx-components.mjs +2 -2
  25. package/fesm2015/c8y-ngx-components.mjs.map +1 -1
  26. package/fesm2020/c8y-ngx-components-assets-navigator.mjs +24 -12
  27. package/fesm2020/c8y-ngx-components-assets-navigator.mjs.map +1 -1
  28. package/fesm2020/c8y-ngx-components-device-grid.mjs +3 -9
  29. package/fesm2020/c8y-ngx-components-device-grid.mjs.map +1 -1
  30. package/fesm2020/c8y-ngx-components-ecosystem-application-plugins.mjs +58 -25
  31. package/fesm2020/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  32. package/fesm2020/c8y-ngx-components-ecosystem.mjs +70 -27
  33. package/fesm2020/c8y-ngx-components-ecosystem.mjs.map +1 -1
  34. package/fesm2020/c8y-ngx-components-repository-shared.mjs +3 -3
  35. package/fesm2020/c8y-ngx-components-repository-shared.mjs.map +1 -1
  36. package/fesm2020/c8y-ngx-components-services.mjs +3 -9
  37. package/fesm2020/c8y-ngx-components-services.mjs.map +1 -1
  38. package/fesm2020/c8y-ngx-components.mjs +2 -2
  39. package/fesm2020/c8y-ngx-components.mjs.map +1 -1
  40. package/package.json +1 -1
@@ -3,6 +3,7 @@ import { Router } from '@angular/router';
3
3
  import { GainsightService, PluginsService, ViewContext, WizardComponent, gettext } from '@c8y/ngx-components';
4
4
  import { ApplicationPropertiesFormComponent, EcosystemService, PRODUCT_EXPERIENCE } from '@c8y/ngx-components/ecosystem/shared';
5
5
  import { TranslateService } from '@ngx-translate/core';
6
+ import { pick } from 'lodash-es';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@c8y/ngx-components/ecosystem/shared";
8
9
  import * as i2 from "@c8y/ngx-components";
@@ -61,12 +62,21 @@ export class DeployApplicationComponent {
61
62
  }
62
63
  try {
63
64
  this.deployedApp = await this.ecosystemService.deployApp(this.package, formGroupValue, this.model);
65
+ const applicationCustomEventInfo = pick(this.package, [
66
+ 'id',
67
+ 'name',
68
+ 'contextPath',
69
+ 'label',
70
+ 'key'
71
+ ]);
64
72
  this.deployedWithSuccess = true;
65
73
  this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.DEPLOY_APPLICATION, {
66
74
  component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.DEPLOY_APPLICATION,
67
75
  action: PRODUCT_EXPERIENCE.APPLICATIONS.ACTIONS.DEPLOY_APPLICATION,
68
76
  result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.DEPLOYED,
69
- url: this.CURRENT_LOCATION
77
+ url: this.CURRENT_LOCATION,
78
+ ...applicationCustomEventInfo,
79
+ package: this.deployedApp?.manifest?.package ?? null
70
80
  });
71
81
  }
72
82
  catch (error) {
@@ -75,7 +85,8 @@ export class DeployApplicationComponent {
75
85
  component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.DEPLOY_APPLICATION,
76
86
  action: PRODUCT_EXPERIENCE.APPLICATIONS.ACTIONS.DEPLOY_APPLICATION,
77
87
  result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.SERVER_FAILURE,
78
- url: this.CURRENT_LOCATION
88
+ url: this.CURRENT_LOCATION,
89
+ error
79
90
  });
80
91
  }
81
92
  finally {
@@ -114,4 +125,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
114
125
  type: ViewChild,
115
126
  args: [ApplicationPropertiesFormComponent]
116
127
  }] } });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LWFwcGxpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9wYWNrYWdlcy9kZXBsb3ktYXBwbGljYXRpb24vZGVwbG95LWFwcGxpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9wYWNrYWdlcy9kZXBsb3ktYXBwbGljYXRpb24vZGVwbG95LWFwcGxpY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxXQUFXLEVBQ1gsZUFBZSxFQUNmLE9BQU8sRUFDUixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCxrQ0FBa0MsRUFDbEMsZ0JBQWdCLEVBRWhCLGtCQUFrQixFQUNuQixNQUFNLHNDQUFzQyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7OztBQU12RCxNQUFNLE9BQU8sMEJBQTBCO0lBOEJyQyxZQUNVLGdCQUFrQyxFQUNsQyxlQUFnQyxFQUNoQyxTQUEyQixFQUMzQixhQUE2QixFQUM3QixnQkFBa0MsRUFDbEMsTUFBYztRQUxkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQUM3QixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFuQ3hCLHFCQUFnQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFF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VUFBVSxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRU8sYUFBYTtRQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUN0RCxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJO1NBQy9CLENBQUMsQ0FBQztJQUNMLENBQUM7O3VIQTlIVSwwQkFBMEI7MkdBQTFCLDBCQUEwQix5SEFtQjFCLGtDQUFrQyxnREN6Qy9DLGl3R0F3R0E7MkZEbEZhLDBCQUEwQjtrQkFKdEMsU0FBUzsrQkFDRSx3QkFBd0I7cVBBdUJsQyx5QkFBeUI7c0JBRHhCLFNBQVM7dUJBQUMsa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IElBcHBsaWNhdGlvbiwgSUFwcGxpY2F0aW9uVmVyc2lvbiB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7XG4gIEdhaW5zaWdodFNlcnZpY2UsXG4gIFBsdWdpbnNTZXJ2aWNlLFxuICBWaWV3Q29udGV4dCxcbiAgV2l6YXJkQ29tcG9uZW50LFxuICBnZXR0ZXh0XG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25Qcm9wZXJ0aWVzRm9ybUNvbXBvbmVudCxcbiAgRWNvc3lzdGVtU2VydmljZSxcbiAgTGljZW5zZWRBcHBsaWNhdGlvblBsdWdpbixcbiAgUFJPRFVDVF9FWFBFUklFTkNFXG59IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMvZWNvc3lzdGVtL3NoYXJlZCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kZXBsb3ktYXBwbGljYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGVwbG95LWFwcGxpY2F0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBEZXBsb3lBcHBsaWNhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIENVUlJFTlRfTE9DQVRJT04gPSBsb2NhdGlvbi5ocmVmO1xuXG4gIGluUHJvZ3Jlc3MgPSB0cnVlO1xuICBwYWNrYWdlOiBJQXBwbGljYXRpb247XG4gIGlzRGVwbG95ZWQgPSBmYWxzZTtcbiAgZGVwbG95ZWRXaXRoU3VjY2VzcyA9IGZhbHNlO1xuICBuZXdBcHBDb25maWc6IElBcHBsaWNhdGlvbjtcbiAgZGVwbG95ZWRBcHA6IElBcHBsaWNhdGlvbjtcbiAgYXBwbGljYXRpb25IcmVmOiBzdHJpbmc7XG5cbiAgbW9kZWwgPSB7XG4gICAgc2VsZWN0ZWQ6IHVuZGVmaW5lZCxcbiAgICBiaW5hcnk6IHtcbiAgICAgIGlkOiB1bmRlZmluZWRcbiAgICB9XG4gIH07XG4gIGNhbkRlcGxveSA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoQXBwbGljYXRpb25Qcm9wZXJ0aWVzRm9ybUNvbXBvbmVudClcbiAgYXBwbGljYXRpb25Qcm9wZXJ0aWVzRm9ybTogQXBwbGljYXRpb25Qcm9wZXJ0aWVzRm9ybUNvbXBvbmVudDtcblxuICByZWFkb25seSBkZXNjcmlwdGlvblRlbXBsYXRlOiBzdHJpbmcgPSBnZXR0ZXh0KFxuICAgICdEZXBsb3kgYXBwbGljYXRpb24gdXNpbmcgXCJ7eyBwYWNrYWdlTmFtZSB9fVwiIHBhY2thZ2UnXG4gICk7XG4gIHJlYWRvbmx5IHN1Y2Nlc3NNZXNzYWdlVGVtcGxhdGUgPSBnZXR0ZXh0KCdBcHBsaWNhdGlvbiBcInt7IHBhY2thZ2VOYW1lIH19XCIgY3JlYXRlZCcpO1xuICByZWFkb25seSBkb25lTGFiZWwgPSBnZXR0ZXh0KCdEb25lJyk7XG4gIHJlYWRvbmx5IGNhbmNlbExhYmVsID0gZ2V0dGV4dCgnQ2FuY2VsJyk7XG4gIGhlYWRlclRleHQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVjb3N5c3RlbVNlcnZpY2U6IEVjb3N5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB3aXphcmRDb21wb25lbnQ6IFdpemFyZENvbXBvbmVudCxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHBsdWdpblNlcnZpY2U6IFBsdWdpbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ2FpbnNpZ2h0U2VydmljZTogR2FpbnNpZ2h0U2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge1xuICAgIHRoaXMucGFja2FnZSA9ICh0aGlzLndpemFyZENvbXBvbmVudCBhcyBhbnkpLnBhY2thZ2U7XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBhcHBzID0gYXdhaXQgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmdldEhvc3RlZEFuZFBhY2thZ2VBcHBsaWNhdGlvbnMoKTtcbiAgICB0aGlzLm5ld0FwcENvbmZpZyA9IHRoaXMuZWNvc3lzdGVtU2VydmljZS5nZXRVbmlxdWVBcHBDb25maWcodGhpcy5wYWNrYWdlLCBhcHBzKTtcbiAgICB0aGlzLmhlYWRlclRleHQgPSB0aGlzLmdldEhlYWRlclRleHQoKTtcbiAgICB0aGlzLmluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgfVxuXG4gIGFzeW5jIGRlcGxveUFwcCgpIHtcbiAgICB0aGlzLmluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgIGNvbnN0IGZvcm1Hcm91cFZhbHVlID0gdGhpcy5hcHBsaWNhdGlvblByb3BlcnRpZXNGb3JtLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xuICAgIHRoaXMucGFja2FnZS5tYW5pZmVzdC52ZXJzaW9uID0gdGhpcy5tb2RlbC5zZWxlY3RlZC52ZXJzaW9uO1xuXG4gICAgY29uc3QgeyBjb250ZXh0UGF0aCwgbGljZW5zZSwgbmFtZSwgbWFuaWZlc3QgfSA9IHRoaXMucGFja2FnZTtcbiAgICBjb25zdCB0eXBlID0gdGhpcy5wbHVnaW5TZXJ2aWNlLmdldFBhY2thZ2VUeXBlKHRoaXMucGFja2FnZSk7XG4gICAgY29uc3QgbGljZW5zZWRBcHA6IExpY2Vuc2VkQXBwbGljYXRpb25QbHVnaW4gPSB7XG4gICAgICBjb250ZXh0UGF0aCxcbiAgICAgIGxpY2Vuc2U6IGxpY2Vuc2UgfHwgbWFuaWZlc3QubGljZW5zZSxcbiAgICAgIG5hbWUsXG4gICAgICB0eXBlLFxuICAgICAgdmVyc2lvbjogdGhpcy5tb2RlbC5zZWxlY3RlZC52ZXJzaW9uXG4gICAgfTtcblxuICAgIGNvbnN0IGxpY2Vuc2VzVmVyaWZpZWRCeVVzZXIgPSBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UudmVyaWZ5TGljZW5zZXMoW2xpY2Vuc2VkQXBwXSk7XG4gICAgaWYgKCFsaWNlbnNlc1ZlcmlmaWVkQnlVc2VyKSB7XG4gICAgICB0aGlzLmNhbmNlbCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLmRlcGxveWVkQXBwID0gYXdhaXQgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmRlcGxveUFwcChcbiAgICAgICAgdGhpcy5wYWNrYWdlLFxuICAgICAgICBmb3JtR3JvdXBWYWx1ZSxcbiAgICAgICAgdGhpcy5tb2RlbFxuICAgICAgKTtcbiAgICAgIHRoaXMuZGVwbG95ZWRXaXRoU3VjY2VzcyA9IHRydWU7XG4gICAgICB0aGlzLmdhaW5zaWdodFNlcnZpY2UudHJpZ2dlckV2ZW50KFxuICAgICAgICBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkVWRU5UUy5ERVBMT1lfQVBQTElDQVRJT04sXG4gICAgICAgIHtcbiAgICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuQ09NUE9ORU5UUy5ERVBMT1lfQVBQTElDQVRJT04sXG4gICAgICAgICAgYWN0aW9uOiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkFDVElPTlMuREVQTE9ZX0FQUExJQ0FUSU9OLFxuICAgICAgICAgIHJlc3VsdDogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5SRVNVTFRTLkRFUExPWUVELFxuICAgICAgICAgIHVybDogdGhpcy5DVVJSRU5UX0xPQ0FUSU9OXG4gICAgICAgIH1cbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuZWNvc3lzdGVtU2VydmljZS5hbGVydEVycm9yKGVycm9yKTtcbiAgICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoXG4gICAgICAgIFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuRVZFTlRTLkRFUExPWV9BUFBMSUNBVElPTixcbiAgICAgICAge1xuICAgICAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5DT01QT05FTlRTLkRFUExPWV9BUFBMSUNBVElPTixcbiAgICAgICAgICBhY3Rpb246IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuQUNUSU9OUy5ERVBMT1lfQVBQTElDQVRJT04sXG4gICAgICAgICAgcmVzdWx0OiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLlJFU1VMVFMuU0VSVkVSX0ZBSUxVUkUsXG4gICAgICAgICAgdXJsOiB0aGlzLkNVUlJFTlRfTE9DQVRJT05cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5tYXJrQXNEZXBsb3llZCgpO1xuICAgIH1cbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLndpemFyZENvbXBvbmVudC5jbG9zZSgpO1xuICB9XG5cbiAgb25BcHBWZXJzaW9uU2VsZWN0KGFwcFZlcnNpb246IElBcHBsaWNhdGlvblZlcnNpb24pIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMubW9kZWwsIHtcbiAgICAgIHNlbGVjdGVkOiBhcHBWZXJzaW9uXG4gICAgfSk7XG4gICAgdGhpcy5jYW5EZXBsb3kgPSB0cnVlO1xuICB9XG5cbiAgb3BlbigpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKFZpZXdDb250ZXh0LkFwcGxpY2F0aW9uLnJlcGxhY2UoJzppZCcsIGAke3RoaXMuZGVwbG95ZWRBcHAuaWR9YCkpO1xuICAgIHRoaXMuY2FuY2VsKCk7XG4gIH1cblxuICBwcml2YXRlIG1hcmtBc0RlcGxveWVkKCkge1xuICAgIHRoaXMuaXNEZXBsb3llZCA9IHRydWU7XG4gICAgdGhpcy5pblByb2dyZXNzID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIGdldEhlYWRlclRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlLmluc3RhbnQodGhpcy5kZXNjcmlwdGlvblRlbXBsYXRlLCB7XG4gICAgICBwYWNrYWdlTmFtZTogdGhpcy5wYWNrYWdlLm5hbWVcbiAgICB9KTtcbiAgfVxufVxuIiwiPGM4eS13aXphcmQtaGVhZGVyPlxuICA8ZGl2IGNsYXNzPVwibW9kYWwtaGVhZGVyIGRpYWxvZy1oZWFkZXJcIj5cbiAgICA8aSBjOHlJY29uPVwib3V0cHV0XCI+PC9pPlxuICAgIDxoNCBpZD1cIm1vZGFsLXRpdGxlXCI+e3sgJ0RlcGxveSBhcHBsaWNhdGlvbicgfCB0cmFuc2xhdGUgfX08L2g0PlxuICA8L2Rpdj5cbjwvYzh5LXdpemFyZC1oZWFkZXI+XG5cbjxjOHktd2l6YXJkLWJvZHkgaWQ9XCJtb2RhbC1ib2R5XCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNEZXBsb3llZFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmYWRlSW4gYW5pbWF0ZWQgZC1mbGV4IGEtaS1jZW50ZXIgai1jLWNlbnRlciBkLWNvbFwiIHN0eWxlPVwibWluLWhlaWdodDogMzA5cHhcIj5cbiAgICAgIDxwXG4gICAgICAgIGNsYXNzPVwiYmctbGV2ZWwtMCBmaXQtdyBwLTE2IHRleHQtY2VudGVyIHRleHQtbWVkaXVtIHN0aWNreS10b3AgYmctbGV2ZWwtMCBzZXBhcmF0b3ItYm90dG9tXCJcbiAgICAgICAgKm5nSWY9XCIhaW5Qcm9ncmVzc1wiXG4gICAgICA+XG4gICAgICAgIHt7IGhlYWRlclRleHQgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvcD5cbiAgICAgIDxjOHktYXBwbGljYXRpb24tcHJvcGVydGllcy1mb3JtXG4gICAgICAgICpuZ0lmPVwiIWluUHJvZ3Jlc3NcIlxuICAgICAgICBbYXBwbGljYXRpb25dPVwibmV3QXBwQ29uZmlnXCJcbiAgICAgICAgY2xhc3M9XCJkLWJsb2NrIGZpdC13IGJnLWxldmVsLTFcIlxuICAgICAgPjwvYzh5LWFwcGxpY2F0aW9uLXByb3BlcnRpZXMtZm9ybT5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpblByb2dyZXNzXCI+XG4gICAgICAgIDxkaXYgW25nU3R5bGVdPVwieyBwYWRkaW5nOiAnMCAxNnB4JyB9XCIgY2xhc3M9XCJkLWJsb2NrIGZpdC13IGJnLWdyYXktd2hpdGVcIj5cbiAgICAgICAgICA8Yzh5LXBhY2thZ2UtdmVyc2lvbi1zZWxlY3RcbiAgICAgICAgICAgIFtuZ01vZGVsXT1cIm1vZGVsLnNlbGVjdGVkXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uQXBwVmVyc2lvblNlbGVjdCgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtwYWNrYWdlSWRdPVwicGFja2FnZT8uaWRcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidVc2UgZXh0ZW5zaW9uIHBhY2thZ2UgdmVyc2lvbicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgID48L2M4eS1wYWNrYWdlLXZlcnNpb24tc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8Yzh5LXByb2dyZXNzLWJhclxuICAgICAgICAqbmdJZj1cImluUHJvZ3Jlc3NcIlxuICAgICAgICBbbWVzc2FnZV09XCInRGVwbG95aW5n4oCmJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIGNsYXNzPVwidGV4dC1jZW50ZXJcIlxuICAgICAgPjwvYzh5LXByb2dyZXNzLWJhcj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRGVwbG95ZWRcIj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImRlcGxveWVkV2l0aFN1Y2Nlc3M7IGVsc2UgZmFpbGVkRGVwbG95XCJcbiAgICAgIGNsYXNzPVwibW9kYWwtYm9keSBmYWRlSW4gYW5pbWF0ZWRcIlxuICAgICAgc3R5bGU9XCJtaW4taGVpZ2h0OiAzMDlweFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhLWktY2VudGVyIGotYy1jZW50ZXIgZC1jb2xcIj5cbiAgICAgICAgPGM4eS1vcGVyYXRpb24tcmVzdWx0XG4gICAgICAgICAgdHlwZT1cInN1Y2Nlc3NcIlxuICAgICAgICAgIFtzaXplXT1cIjg0XCJcbiAgICAgICAgICBbdmVydGljYWxdPVwidHJ1ZVwiXG4gICAgICAgICAgW3RleHRdPVwic3VjY2Vzc01lc3NhZ2VUZW1wbGF0ZSB8IHRyYW5zbGF0ZTogeyBwYWNrYWdlTmFtZTogcGFja2FnZS5uYW1lIH1cIlxuICAgICAgICAgIGNsYXNzPVwibGVhZCBkLWJsb2NrIG0tYi0xNlwiXG4gICAgICAgID48L2M4eS1vcGVyYXRpb24tcmVzdWx0PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLXRlbXBsYXRlICNmYWlsZWREZXBsb3k+XG4gICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBmYWRlSW4gYW5pbWF0ZWQgdGV4dC1jZW50ZXJcIiBzdHlsZT1cIm1pbi1oZWlnaHQ6IDI1N3B4XCI+XG4gICAgICAgIDxjOHktb3BlcmF0aW9uLXJlc3VsdFxuICAgICAgICAgIHR5cGU9XCJlcnJvclwiXG4gICAgICAgICAgW3NpemVdPVwiODRcIlxuICAgICAgICAgIFt2ZXJ0aWNhbF09XCJ0cnVlXCJcbiAgICAgICAgICB0ZXh0PVwie3sgJ0FwcGxpY2F0aW9uIGNyZWF0aW9uIGZhaWxlZCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgIGNsYXNzPVwibGVhZFwiXG4gICAgICAgID48L2M4eS1vcGVyYXRpb24tcmVzdWx0PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG48L2M4eS13aXphcmQtYm9keT5cblxuPGM4eS13aXphcmQtZm9vdGVyPlxuICA8YnV0dG9uXG4gICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgdGl0bGU9XCJ7eyAoaXNEZXBsb3llZCAmJiBkZXBsb3llZFdpdGhTdWNjZXNzID8gZG9uZUxhYmVsIDogY2FuY2VsTGFiZWwpIHwgdHJhbnNsYXRlIH19XCJcbiAgPlxuICAgIHt7IChpc0RlcGxveWVkICYmIGRlcGxveWVkV2l0aFN1Y2Nlc3MgPyBkb25lTGFiZWwgOiBjYW5jZWxMYWJlbCkgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG5cbiAgPGJ1dHRvblxuICAgIChjbGljayk9XCJkZXBsb3lBcHAoKVwiXG4gICAgKm5nSWY9XCIhaXNEZXBsb3llZFwiXG4gICAgW2Rpc2FibGVkXT1cImluUHJvZ3Jlc3MgfHwgIWNhbkRlcGxveVwiXG4gICAgW25nQ2xhc3NdPVwieyAnYnRuLXBlbmRpbmcnOiBpblByb2dyZXNzIH1cIlxuICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICB0aXRsZT1cInt7ICdEZXBsb3knIHwgdHJhbnNsYXRlIH19XCJcbiAgPlxuICAgIHt7ICdEZXBsb3knIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuXG4gIDxidXR0b25cbiAgICAoY2xpY2spPVwib3BlbigpXCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiXG4gICAgKm5nSWY9XCJpc0RlcGxveWVkICYmIGRlcGxveWVkV2l0aFN1Y2Nlc3NcIlxuICAgIHRpdGxlPVwie3sgJ09wZW4gdGhlIGFwcGxpY2F0aW9uIGRldGFpbHMnIHwgdHJhbnNsYXRlIH19XCJcbiAgICB0cmFuc2xhdGVcbiAgPlxuICAgIE9wZW5cbiAgPC9idXR0b24+XG48L2M4eS13aXphcmQtZm9vdGVyPlxuIl19
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LWFwcGxpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9wYWNrYWdlcy9kZXBsb3ktYXBwbGljYXRpb24vZGVwbG95LWFwcGxpY2F0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2Vjb3N5c3RlbS9wYWNrYWdlcy9kZXBsb3ktYXBwbGljYXRpb24vZGVwbG95LWFwcGxpY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxXQUFXLEVBQ1gsZUFBZSxFQUNmLE9BQU8sRUFDUixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFDTCxrQ0FBa0MsRUFDbEMsZ0JBQWdCLEVBRWhCLGtCQUFrQixFQUNuQixNQUFNLHNDQUFzQyxDQUFDO0FBQzlDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7Ozs7Ozs7O0FBTWpDLE1BQU0sT0FBTywwQkFBMEI7SUE4QnJDLFlBQ1UsZ0JBQWtDLEVBQ2xDLGVBQWdDLEVBQ2hDLFNBQTJCLEVBQzNCLGFBQTZCLEVBQzdCLGdCQUFrQyxFQUNsQyxNQUFjO1FBTGQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0Isa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBQzdCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtR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QyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM1RixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQUVPLGNBQWM7UUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDMUIsQ0FBQztJQUVPLGFBQWE7UUFDbkIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUU7WUFDdEQsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTtTQUMvQixDQUFDLENBQUM7SUFDTCxDQUFDOzt1SEF6SVUsMEJBQTBCOzJHQUExQiwwQkFBMEIseUhBbUIxQixrQ0FBa0MsZ0RDMUMvQyxpd0dBd0dBOzJGRGpGYSwwQkFBMEI7a0JBSnRDLFNBQVM7K0JBQ0Usd0JBQXdCO3FQQXVCbEMseUJBQXlCO3NCQUR4QixTQUFTO3VCQUFDLGtDQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBJQXBwbGljYXRpb24sIElBcHBsaWNhdGlvblZlcnNpb24gfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQge1xuICBHYWluc2lnaHRTZXJ2aWNlLFxuICBQbHVnaW5zU2VydmljZSxcbiAgVmlld0NvbnRleHQsXG4gIFdpemFyZENvbXBvbmVudCxcbiAgZ2V0dGV4dFxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIEFwcGxpY2F0aW9uUHJvcGVydGllc0Zvcm1Db21wb25lbnQsXG4gIEVjb3N5c3RlbVNlcnZpY2UsXG4gIExpY2Vuc2VkQXBwbGljYXRpb25QbHVnaW4sXG4gIFBST0RVQ1RfRVhQRVJJRU5DRVxufSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzL2Vjb3N5c3RlbS9zaGFyZWQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgcGljayB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kZXBsb3ktYXBwbGljYXRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vZGVwbG95LWFwcGxpY2F0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBEZXBsb3lBcHBsaWNhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIENVUlJFTlRfTE9DQVRJT04gPSBsb2NhdGlvbi5ocmVmO1xuXG4gIGluUHJvZ3Jlc3MgPSB0cnVlO1xuICBwYWNrYWdlOiBJQXBwbGljYXRpb247XG4gIGlzRGVwbG95ZWQgPSBmYWxzZTtcbiAgZGVwbG95ZWRXaXRoU3VjY2VzcyA9IGZhbHNlO1xuICBuZXdBcHBDb25maWc6IElBcHBsaWNhdGlvbjtcbiAgZGVwbG95ZWRBcHA6IElBcHBsaWNhdGlvbjtcbiAgYXBwbGljYXRpb25IcmVmOiBzdHJpbmc7XG5cbiAgbW9kZWwgPSB7XG4gICAgc2VsZWN0ZWQ6IHVuZGVmaW5lZCxcbiAgICBiaW5hcnk6IHtcbiAgICAgIGlkOiB1bmRlZmluZWRcbiAgICB9XG4gIH07XG4gIGNhbkRlcGxveSA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoQXBwbGljYXRpb25Qcm9wZXJ0aWVzRm9ybUNvbXBvbmVudClcbiAgYXBwbGljYXRpb25Qcm9wZXJ0aWVzRm9ybTogQXBwbGljYXRpb25Qcm9wZXJ0aWVzRm9ybUNvbXBvbmVudDtcblxuICByZWFkb25seSBkZXNjcmlwdGlvblRlbXBsYXRlOiBzdHJpbmcgPSBnZXR0ZXh0KFxuICAgICdEZXBsb3kgYXBwbGljYXRpb24gdXNpbmcgXCJ7eyBwYWNrYWdlTmFtZSB9fVwiIHBhY2thZ2UnXG4gICk7XG4gIHJlYWRvbmx5IHN1Y2Nlc3NNZXNzYWdlVGVtcGxhdGUgPSBnZXR0ZXh0KCdBcHBsaWNhdGlvbiBcInt7IHBhY2thZ2VOYW1lIH19XCIgY3JlYXRlZCcpO1xuICByZWFkb25seSBkb25lTGFiZWwgPSBnZXR0ZXh0KCdEb25lJyk7XG4gIHJlYWRvbmx5IGNhbmNlbExhYmVsID0gZ2V0dGV4dCgnQ2FuY2VsJyk7XG4gIGhlYWRlclRleHQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVjb3N5c3RlbVNlcnZpY2U6IEVjb3N5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSB3aXphcmRDb21wb25lbnQ6IFdpemFyZENvbXBvbmVudCxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIHBsdWdpblNlcnZpY2U6IFBsdWdpbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZ2FpbnNpZ2h0U2VydmljZTogR2FpbnNpZ2h0U2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge1xuICAgIHRoaXMucGFja2FnZSA9ICh0aGlzLndpemFyZENvbXBvbmVudCBhcyBhbnkpLnBhY2thZ2U7XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBhcHBzID0gYXdhaXQgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmdldEhvc3RlZEFuZFBhY2thZ2VBcHBsaWNhdGlvbnMoKTtcbiAgICB0aGlzLm5ld0FwcENvbmZpZyA9IHRoaXMuZWNvc3lzdGVtU2VydmljZS5nZXRVbmlxdWVBcHBDb25maWcodGhpcy5wYWNrYWdlLCBhcHBzKTtcbiAgICB0aGlzLmhlYWRlclRleHQgPSB0aGlzLmdldEhlYWRlclRleHQoKTtcbiAgICB0aGlzLmluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgfVxuXG4gIGFzeW5jIGRlcGxveUFwcCgpIHtcbiAgICB0aGlzLmluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgIGNvbnN0IGZvcm1Hcm91cFZhbHVlID0gdGhpcy5hcHBsaWNhdGlvblByb3BlcnRpZXNGb3JtLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xuICAgIHRoaXMucGFja2FnZS5tYW5pZmVzdC52ZXJzaW9uID0gdGhpcy5tb2RlbC5zZWxlY3RlZC52ZXJzaW9uO1xuXG4gICAgY29uc3QgeyBjb250ZXh0UGF0aCwgbGljZW5zZSwgbmFtZSwgbWFuaWZlc3QgfSA9IHRoaXMucGFja2FnZTtcbiAgICBjb25zdCB0eXBlID0gdGhpcy5wbHVnaW5TZXJ2aWNlLmdldFBhY2thZ2VUeXBlKHRoaXMucGFja2FnZSk7XG4gICAgY29uc3QgbGljZW5zZWRBcHA6IExpY2Vuc2VkQXBwbGljYXRpb25QbHVnaW4gPSB7XG4gICAgICBjb250ZXh0UGF0aCxcbiAgICAgIGxpY2Vuc2U6IGxpY2Vuc2UgfHwgbWFuaWZlc3QubGljZW5zZSxcbiAgICAgIG5hbWUsXG4gICAgICB0eXBlLFxuICAgICAgdmVyc2lvbjogdGhpcy5tb2RlbC5zZWxlY3RlZC52ZXJzaW9uXG4gICAgfTtcblxuICAgIGNvbnN0IGxpY2Vuc2VzVmVyaWZpZWRCeVVzZXIgPSBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UudmVyaWZ5TGljZW5zZXMoW2xpY2Vuc2VkQXBwXSk7XG4gICAgaWYgKCFsaWNlbnNlc1ZlcmlmaWVkQnlVc2VyKSB7XG4gICAgICB0aGlzLmNhbmNlbCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB0aGlzLmRlcGxveWVkQXBwID0gYXdhaXQgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmRlcGxveUFwcChcbiAgICAgICAgdGhpcy5wYWNrYWdlLFxuICAgICAgICBmb3JtR3JvdXBWYWx1ZSxcbiAgICAgICAgdGhpcy5tb2RlbFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGFwcGxpY2F0aW9uQ3VzdG9tRXZlbnRJbmZvID0gcGljayh0aGlzLnBhY2thZ2UsIFtcbiAgICAgICAgJ2lkJyxcbiAgICAgICAgJ25hbWUnLFxuICAgICAgICAnY29udGV4dFBhdGgnLFxuICAgICAgICAnbGFiZWwnLFxuICAgICAgICAna2V5J1xuICAgICAgXSk7XG5cbiAgICAgIHRoaXMuZGVwbG95ZWRXaXRoU3VjY2VzcyA9IHRydWU7XG4gICAgICB0aGlzLmdhaW5zaWdodFNlcnZpY2UudHJpZ2dlckV2ZW50KFxuICAgICAgICBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkVWRU5UUy5ERVBMT1lfQVBQTElDQVRJT04sXG4gICAgICAgIHtcbiAgICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuQ09NUE9ORU5UUy5ERVBMT1lfQVBQTElDQVRJT04sXG4gICAgICAgICAgYWN0aW9uOiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkFDVElPTlMuREVQTE9ZX0FQUExJQ0FUSU9OLFxuICAgICAgICAgIHJlc3VsdDogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5SRVNVTFRTLkRFUExPWUVELFxuICAgICAgICAgIHVybDogdGhpcy5DVVJSRU5UX0xPQ0FUSU9OLFxuICAgICAgICAgIC4uLmFwcGxpY2F0aW9uQ3VzdG9tRXZlbnRJbmZvLFxuICAgICAgICAgIHBhY2thZ2U6IHRoaXMuZGVwbG95ZWRBcHA/Lm1hbmlmZXN0Py5wYWNrYWdlID8/IG51bGxcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmFsZXJ0RXJyb3IoZXJyb3IpO1xuICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChcbiAgICAgICAgUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5FVkVOVFMuREVQTE9ZX0FQUExJQ0FUSU9OLFxuICAgICAgICB7XG4gICAgICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkNPTVBPTkVOVFMuREVQTE9ZX0FQUExJQ0FUSU9OLFxuICAgICAgICAgIGFjdGlvbjogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5BQ1RJT05TLkRFUExPWV9BUFBMSUNBVElPTixcbiAgICAgICAgICByZXN1bHQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuUkVTVUxUUy5TRVJWRVJfRkFJTFVSRSxcbiAgICAgICAgICB1cmw6IHRoaXMuQ1VSUkVOVF9MT0NBVElPTixcbiAgICAgICAgICBlcnJvclxuICAgICAgICB9XG4gICAgICApO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLm1hcmtBc0RlcGxveWVkKCk7XG4gICAgfVxuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMud2l6YXJkQ29tcG9uZW50LmNsb3NlKCk7XG4gIH1cblxuICBvbkFwcFZlcnNpb25TZWxlY3QoYXBwVmVyc2lvbjogSUFwcGxpY2F0aW9uVmVyc2lvbikge1xuICAgIE9iamVjdC5hc3NpZ24odGhpcy5tb2RlbCwge1xuICAgICAgc2VsZWN0ZWQ6IGFwcFZlcnNpb25cbiAgICB9KTtcbiAgICB0aGlzLmNhbkRlcGxveSA9IHRydWU7XG4gIH1cblxuICBvcGVuKCkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoVmlld0NvbnRleHQuQXBwbGljYXRpb24ucmVwbGFjZSgnOmlkJywgYCR7dGhpcy5kZXBsb3llZEFwcC5pZH1gKSk7XG4gICAgdGhpcy5jYW5jZWwoKTtcbiAgfVxuXG4gIHByaXZhdGUgbWFya0FzRGVwbG95ZWQoKSB7XG4gICAgdGhpcy5pc0RlcGxveWVkID0gdHJ1ZTtcbiAgICB0aGlzLmluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SGVhZGVyVGV4dCgpIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudCh0aGlzLmRlc2NyaXB0aW9uVGVtcGxhdGUsIHtcbiAgICAgIHBhY2thZ2VOYW1lOiB0aGlzLnBhY2thZ2UubmFtZVxuICAgIH0pO1xuICB9XG59XG4iLCI8Yzh5LXdpemFyZC1oZWFkZXI+XG4gIDxkaXYgY2xhc3M9XCJtb2RhbC1oZWFkZXIgZGlhbG9nLWhlYWRlclwiPlxuICAgIDxpIGM4eUljb249XCJvdXRwdXRcIj48L2k+XG4gICAgPGg0IGlkPVwibW9kYWwtdGl0bGVcIj57eyAnRGVwbG95IGFwcGxpY2F0aW9uJyB8IHRyYW5zbGF0ZSB9fTwvaDQ+XG4gIDwvZGl2PlxuPC9jOHktd2l6YXJkLWhlYWRlcj5cblxuPGM4eS13aXphcmQtYm9keSBpZD1cIm1vZGFsLWJvZHlcIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0RlcGxveWVkXCI+XG4gICAgPGRpdiBjbGFzcz1cImZhZGVJbiBhbmltYXRlZCBkLWZsZXggYS1pLWNlbnRlciBqLWMtY2VudGVyIGQtY29sXCIgc3R5bGU9XCJtaW4taGVpZ2h0OiAzMDlweFwiPlxuICAgICAgPHBcbiAgICAgICAgY2xhc3M9XCJiZy1sZXZlbC0wIGZpdC13IHAtMTYgdGV4dC1jZW50ZXIgdGV4dC1tZWRpdW0gc3RpY2t5LXRvcCBiZy1sZXZlbC0wIHNlcGFyYXRvci1ib3R0b21cIlxuICAgICAgICAqbmdJZj1cIiFpblByb2dyZXNzXCJcbiAgICAgID5cbiAgICAgICAge3sgaGVhZGVyVGV4dCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgPC9wPlxuICAgICAgPGM4eS1hcHBsaWNhdGlvbi1wcm9wZXJ0aWVzLWZvcm1cbiAgICAgICAgKm5nSWY9XCIhaW5Qcm9ncmVzc1wiXG4gICAgICAgIFthcHBsaWNhdGlvbl09XCJuZXdBcHBDb25maWdcIlxuICAgICAgICBjbGFzcz1cImQtYmxvY2sgZml0LXcgYmctbGV2ZWwtMVwiXG4gICAgICA+PC9jOHktYXBwbGljYXRpb24tcHJvcGVydGllcy1mb3JtPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWluUHJvZ3Jlc3NcIj5cbiAgICAgICAgPGRpdiBbbmdTdHlsZV09XCJ7IHBhZGRpbmc6ICcwIDE2cHgnIH1cIiBjbGFzcz1cImQtYmxvY2sgZml0LXcgYmctZ3JheS13aGl0ZVwiPlxuICAgICAgICAgIDxjOHktcGFja2FnZS12ZXJzaW9uLXNlbGVjdFxuICAgICAgICAgICAgW25nTW9kZWxdPVwibW9kZWwuc2VsZWN0ZWRcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25BcHBWZXJzaW9uU2VsZWN0KCRldmVudClcIlxuICAgICAgICAgICAgW3BhY2thZ2VJZF09XCJwYWNrYWdlPy5pZFwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ1VzZSBleHRlbnNpb24gcGFja2FnZSB2ZXJzaW9uJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgPjwvYzh5LXBhY2thZ2UtdmVyc2lvbi1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDxjOHktcHJvZ3Jlc3MtYmFyXG4gICAgICAgICpuZ0lmPVwiaW5Qcm9ncmVzc1wiXG4gICAgICAgIFttZXNzYWdlXT1cIidEZXBsb3lpbmfigKYnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiXG4gICAgICA+PC9jOHktcHJvZ3Jlc3MtYmFyPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNEZXBsb3llZFwiPlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiZGVwbG95ZWRXaXRoU3VjY2VzczsgZWxzZSBmYWlsZWREZXBsb3lcIlxuICAgICAgY2xhc3M9XCJtb2RhbC1ib2R5IGZhZGVJbiBhbmltYXRlZFwiXG4gICAgICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDMwOXB4XCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGEtaS1jZW50ZXIgai1jLWNlbnRlciBkLWNvbFwiPlxuICAgICAgICA8Yzh5LW9wZXJhdGlvbi1yZXN1bHRcbiAgICAgICAgICB0eXBlPVwic3VjY2Vzc1wiXG4gICAgICAgICAgW3NpemVdPVwiODRcIlxuICAgICAgICAgIFt2ZXJ0aWNhbF09XCJ0cnVlXCJcbiAgICAgICAgICBbdGV4dF09XCJzdWNjZXNzTWVzc2FnZVRlbXBsYXRlIHwgdHJhbnNsYXRlOiB7IHBhY2thZ2VOYW1lOiBwYWNrYWdlLm5hbWUgfVwiXG4gICAgICAgICAgY2xhc3M9XCJsZWFkIGQtYmxvY2sgbS1iLTE2XCJcbiAgICAgICAgPjwvYzh5LW9wZXJhdGlvbi1yZXN1bHQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8bmctdGVtcGxhdGUgI2ZhaWxlZERlcGxveT5cbiAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1ib2R5IGZhZGVJbiBhbmltYXRlZCB0ZXh0LWNlbnRlclwiIHN0eWxlPVwibWluLWhlaWdodDogMjU3cHhcIj5cbiAgICAgICAgPGM4eS1vcGVyYXRpb24tcmVzdWx0XG4gICAgICAgICAgdHlwZT1cImVycm9yXCJcbiAgICAgICAgICBbc2l6ZV09XCI4NFwiXG4gICAgICAgICAgW3ZlcnRpY2FsXT1cInRydWVcIlxuICAgICAgICAgIHRleHQ9XCJ7eyAnQXBwbGljYXRpb24gY3JlYXRpb24gZmFpbGVkJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgY2xhc3M9XCJsZWFkXCJcbiAgICAgICAgPjwvYzh5LW9wZXJhdGlvbi1yZXN1bHQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvYzh5LXdpemFyZC1ib2R5PlxuXG48Yzh5LXdpemFyZC1mb290ZXI+XG4gIDxidXR0b25cbiAgICAoY2xpY2spPVwiY2FuY2VsKClcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICB0aXRsZT1cInt7IChpc0RlcGxveWVkICYmIGRlcGxveWVkV2l0aFN1Y2Nlc3MgPyBkb25lTGFiZWwgOiBjYW5jZWxMYWJlbCkgfCB0cmFuc2xhdGUgfX1cIlxuICA+XG4gICAge3sgKGlzRGVwbG95ZWQgJiYgZGVwbG95ZWRXaXRoU3VjY2VzcyA/IGRvbmVMYWJlbCA6IGNhbmNlbExhYmVsKSB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cblxuICA8YnV0dG9uXG4gICAgKGNsaWNrKT1cImRlcGxveUFwcCgpXCJcbiAgICAqbmdJZj1cIiFpc0RlcGxveWVkXCJcbiAgICBbZGlzYWJsZWRdPVwiaW5Qcm9ncmVzcyB8fCAhY2FuRGVwbG95XCJcbiAgICBbbmdDbGFzc109XCJ7ICdidG4tcGVuZGluZyc6IGluUHJvZ3Jlc3MgfVwiXG4gICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIHRpdGxlPVwie3sgJ0RlcGxveScgfCB0cmFuc2xhdGUgfX1cIlxuICA+XG4gICAge3sgJ0RlcGxveScgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG5cbiAgPGJ1dHRvblxuICAgIChjbGljayk9XCJvcGVuKClcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAqbmdJZj1cImlzRGVwbG95ZWQgJiYgZGVwbG95ZWRXaXRoU3VjY2Vzc1wiXG4gICAgdGl0bGU9XCJ7eyAnT3BlbiB0aGUgYXBwbGljYXRpb24gZGV0YWlscycgfCB0cmFuc2xhdGUgfX1cIlxuICAgIHRyYW5zbGF0ZVxuICA+XG4gICAgT3BlblxuICA8L2J1dHRvbj5cbjwvYzh5LXdpemFyZC1mb290ZXI+XG4iXX0=