@c8y/ngx-components 1017.0.31 → 1017.0.32

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 (38) hide show
  1. package/ecosystem/application-plugins/application-plugins.component.d.ts +54 -3
  2. package/ecosystem/application-plugins/plugin-list.component.d.ts +5 -3
  3. package/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.d.ts +4 -2
  4. package/ecosystem/application-properties/application-properties.component.d.ts +5 -3
  5. package/ecosystem/packages/deploy-application/deploy-application.component.d.ts +5 -4
  6. package/ecosystem/packages/package-availability.service.d.ts +4 -2
  7. package/ecosystem/packages/package-versions/package-versions-list/package-versions-list.component.d.ts +4 -2
  8. package/ecosystem/shared/application-card.component.d.ts +5 -3
  9. package/ecosystem/shared/duplicate-application/duplicate-application-properties/duplicate-application-properties.component.d.ts +4 -2
  10. package/ecosystem/shared/ecosystem.model.d.ts +49 -0
  11. package/esm2020/core/help/help.component.mjs +3 -3
  12. package/esm2020/ecosystem/application-plugins/application-plugins.component.mjs +32 -9
  13. package/esm2020/ecosystem/application-plugins/plugin-list.component.mjs +18 -6
  14. package/esm2020/ecosystem/application-plugins/update-plugin-of-app/update-plugin-of-app.component.mjs +20 -5
  15. package/esm2020/ecosystem/application-properties/application-properties.component.mjs +13 -6
  16. package/esm2020/ecosystem/packages/deploy-application/deploy-application.component.mjs +20 -7
  17. package/esm2020/ecosystem/packages/package-availability.service.mjs +18 -5
  18. package/esm2020/ecosystem/packages/package-versions/package-versions-list/package-versions-list.component.mjs +43 -6
  19. package/esm2020/ecosystem/shared/application-card.component.mjs +28 -5
  20. package/esm2020/ecosystem/shared/duplicate-application/duplicate-application-properties/duplicate-application-properties.component.mjs +21 -8
  21. package/esm2020/ecosystem/shared/ecosystem.model.mjs +50 -1
  22. package/fesm2015/c8y-ngx-components-ecosystem-application-plugins.mjs +61 -12
  23. package/fesm2015/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  24. package/fesm2015/c8y-ngx-components-ecosystem-shared.mjs +90 -7
  25. package/fesm2015/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
  26. package/fesm2015/c8y-ngx-components-ecosystem.mjs +143 -24
  27. package/fesm2015/c8y-ngx-components-ecosystem.mjs.map +1 -1
  28. package/fesm2015/c8y-ngx-components.mjs +2 -2
  29. package/fesm2015/c8y-ngx-components.mjs.map +1 -1
  30. package/fesm2020/c8y-ngx-components-ecosystem-application-plugins.mjs +61 -12
  31. package/fesm2020/c8y-ngx-components-ecosystem-application-plugins.mjs.map +1 -1
  32. package/fesm2020/c8y-ngx-components-ecosystem-shared.mjs +90 -7
  33. package/fesm2020/c8y-ngx-components-ecosystem-shared.mjs.map +1 -1
  34. package/fesm2020/c8y-ngx-components-ecosystem.mjs +143 -24
  35. package/fesm2020/c8y-ngx-components-ecosystem.mjs.map +1 -1
  36. package/fesm2020/c8y-ngx-components.mjs +2 -2
  37. package/fesm2020/c8y-ngx-components.mjs.map +1 -1
  38. package/package.json +2 -2
@@ -1,9 +1,10 @@
1
1
  import { Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { Router } from '@angular/router';
3
3
  import { ApplicationService } from '@c8y/client';
4
- import { AlertService, gettext, WizardModalService } from '@c8y/ngx-components';
4
+ import { AlertService, GainsightService, WizardModalService, gettext } from '@c8y/ngx-components';
5
5
  import { get } from 'lodash';
6
6
  import { BehaviorSubject } from 'rxjs';
7
+ import { PRODUCT_EXPERIENCE } from './ecosystem.model';
7
8
  import { EcosystemService } from './ecosystem.service';
8
9
  import * as i0 from "@angular/core";
9
10
  import * as i1 from "@c8y/client";
@@ -14,13 +15,15 @@ import * as i5 from "@angular/common";
14
15
  import * as i6 from "ngx-bootstrap/dropdown";
15
16
  import * as i7 from "ngx-bootstrap/tooltip";
16
17
  export class ApplicationCardComponent {
17
- constructor(applicationService, ecosystemService, alertService, router, wizardModalService, alert) {
18
+ constructor(applicationService, ecosystemService, alertService, router, wizardModalService, alert, gainsightService) {
18
19
  this.applicationService = applicationService;
19
20
  this.ecosystemService = ecosystemService;
20
21
  this.alertService = alertService;
21
22
  this.router = router;
22
23
  this.wizardModalService = wizardModalService;
23
24
  this.alert = alert;
25
+ this.gainsightService = gainsightService;
26
+ this.CURRENT_LOCATION = location.href;
24
27
  this.canEdit = true;
25
28
  this.onAppDeleted = new EventEmitter();
26
29
  this.onAppCloned = new EventEmitter();
@@ -56,6 +59,11 @@ export class ApplicationCardComponent {
56
59
  this.isMicroservice
57
60
  ? this.router.navigateByUrl(`/microservices/${this.app.id}`)
58
61
  : this.router.navigateByUrl(`/ecosystem/application/${this.app.id}`);
62
+ this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.APPLICATION_CARD, {
63
+ component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.APPLICATION_CARD,
64
+ action: PRODUCT_EXPERIENCE.APPLICATIONS.ACTIONS.EDIT,
65
+ url: this.CURRENT_LOCATION
66
+ });
59
67
  }
60
68
  openApp() {
61
69
  this.ecosystemService.openApp(this.app);
@@ -64,10 +72,20 @@ export class ApplicationCardComponent {
64
72
  try {
65
73
  await this.ecosystemService.deleteApp(this.app);
66
74
  this.onAppDeleted.emit();
75
+ this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.APPLICATION_CARD, {
76
+ component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.APPLICATION_CARD,
77
+ action: PRODUCT_EXPERIENCE.APPLICATIONS.ACTIONS.DELETE,
78
+ url: this.CURRENT_LOCATION
79
+ });
67
80
  }
68
81
  catch (ex) {
69
82
  if (ex) {
70
83
  this.alertService.addServerFailure(ex);
84
+ this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.APPLICATION_CARD, {
85
+ component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.APPLICATION_CARD,
86
+ result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.SERVER_FAILURE,
87
+ url: this.CURRENT_LOCATION
88
+ });
71
89
  }
72
90
  }
73
91
  }
@@ -88,6 +106,11 @@ export class ApplicationCardComponent {
88
106
  modalRef.content.onClose.subscribe(() => {
89
107
  this.onAppCloned.next();
90
108
  });
109
+ this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.APPLICATION_CARD, {
110
+ component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.APPLICATION_CARD,
111
+ action: PRODUCT_EXPERIENCE.APPLICATIONS.ACTIONS.CLONE,
112
+ url: this.CURRENT_LOCATION
113
+ });
91
114
  }
92
115
  isOwnedByManagement() {
93
116
  const appOwner = get(this.app, 'owner.tenant.id');
@@ -109,12 +132,12 @@ export class ApplicationCardComponent {
109
132
  }
110
133
  }
111
134
  }
112
- ApplicationCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ApplicationCardComponent, deps: [{ token: i1.ApplicationService }, { token: i2.EcosystemService }, { token: i3.AlertService }, { token: i4.Router }, { token: i3.WizardModalService }, { token: i3.AlertService }], target: i0.ɵɵFactoryTarget.Component });
135
+ ApplicationCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ApplicationCardComponent, deps: [{ token: i1.ApplicationService }, { token: i2.EcosystemService }, { token: i3.AlertService }, { token: i4.Router }, { token: i3.WizardModalService }, { token: i3.AlertService }, { token: i3.GainsightService }], target: i0.ɵɵFactoryTarget.Component });
113
136
  ApplicationCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ApplicationCardComponent, selector: "c8y-application-card", inputs: { app: "app", canEdit: "canEdit" }, outputs: { onAppDeleted: "onAppDeleted", onAppCloned: "onAppCloned" }, ngImport: i0, template: "<div class=\"card pointer card--d-col\" *ngIf=\"!isFeature\">\n <div (click)=\"detail()\" class=\"card-block text-center card-column-40\">\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i *ngIf=\"isPackage\" c8yIcon=\"big-parcel\"></i>\n <i *ngIf=\"isMicroservice\" c8yIcon=\"microchip\"></i>\n <i *ngIf=\"isExternal\" c8yIcon=\"globe1\"></i>\n </div>\n <div>\n <p class=\"e2e-appCardName text-medium\" title=\"{{ app | humanizeAppName | async }}\">\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <i\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n [tooltip]=\"'Update available' | translate\"\n c8yIcon=\"exclamation-triangle\"\n class=\"text-warning m-l-4\"\n ></i>\n </p>\n </ng-container>\n </div>\n </div>\n <div (click)=\"detail()\" class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\">\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div *ngIf=\"app.description || app.manifest?.description\" class=\"text-center-grid\">\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p class=\"small l-h-tight p-b-8 p-l-0 p-r-0\">\n {{ app.description || app.manifest?.description | translate }}\n </p>\n </div>\n </div>\n <div\n *ngIf=\"!app.label\"\n class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\"\n >\n <span [ngClass]=\"appState.class\" class=\"label\">\n {{ isUnpacked ? ('Unpacked' | translate) : (appState.label | translate) }}\n </span>\n </div>\n <div\n *ngIf=\"app.label\"\n class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\"\n >\n <span [ngClass]=\"appState.class\" class=\"label text-warning\">\n {{ isOwnedByManagementTenant ? app.label : ('COMMUNITY' | translate) }}\n </span>\n </div>\n <div class=\"card-footer no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <div class=\"p-b-16 card-hidden-list\"></div>\n <button\n (click)=\"openApp(); $event.stopPropagation()\"\n *ngIf=\"canOpenInBrowser\"\n [disabled]=\"disableOpenInBrowser\"\n class=\"btn btn-sm btn-default\"\n [title]=\"openButtonTitle | translate\"\n >\n <i c8yIcon=\"external-link\" class=\"m-r-4\"></i>\n {{ 'Open' | translate }}\n </button>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n </div>\n <div class=\"p-r-40 card-hidden-grid\"></div>\n <div *ngIf=\"canEdit || canOpenInBrowser || canDelete\" class=\"card-actions m-t-0\">\n <div class=\"dropdown\" dropdown>\n <button\n class=\"dropdown-toggle c8y-dropdown\"\n dropdownToggle\n title=\"{{ 'Settings' | translate }}\"\n >\n <i c8yIcon=\"ellipsis-v\"></i>\n </button>\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right\">\n <li *ngIf=\"canEdit\">\n <button (click)=\"detail()\" title=\"{{ 'Edit' | translate }}\">\n <i c8yIcon=\"pencil\" class=\"m-r-4\"></i>\n {{ 'Edit' | translate }}\n </button>\n </li>\n <ng-container *c8yIfAllowed=\"['ROLE_APPLICATION_MANAGEMENT_ADMIN']\">\n <li>\n <button\n (click)=\"delete()\"\n type=\"button\"\n [title]=\"canDelete ? ('Delete' | translate) : (CANNOT_DELETE_HINT | translate)\"\n [disabled]=\"!canDelete\"\n >\n <i c8yIcon=\"delete\" class=\"m-r-4\"></i>\n {{ 'Delete' | translate }}\n </button>\n </li>\n <li *ngIf=\"canClone\">\n <button\n *ngIf=\"isPackage\"\n (click)=\"clone()\"\n type=\"button\"\n [title]=\"'Clone`package`' | translate\"\n >\n <i c8yIcon=\"copy\" class=\"m-r-4\"></i>\n {{ 'Clone`package`' | translate }}\n </button>\n <button\n *ngIf=\"!isPackage\"\n (click)=\"clone()\"\n type=\"button\"\n [title]=\"'Clone`application`' | translate\"\n >\n <i c8yIcon=\"copy\" class=\"m-r-4\"></i>\n {{ 'Clone`application`' | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n</div>\n\n<button (click)=\"detail()\" class=\"card pointer card--d-col\" *ngIf=\"isFeature\">\n <div class=\"card-block text-center card-column-40\">\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i c8yIcon=\"tab\"></i>\n </div>\n <div>\n <p class=\"e2e-appCardName text-medium\" title=\"{{ app | humanizeAppName | async }}\">\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <i\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n [tooltip]=\"'Update available' | translate\"\n c8yIcon=\"exclamation-triangle\"\n class=\"text-warning m-l-4\"\n ></i>\n </p>\n </ng-container>\n </div>\n </div>\n <div class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\">\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div *ngIf=\"app.description || app.manifest?.description\" class=\"text-center-grid\">\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p class=\"small l-h-tight p-b-8 p-l-0 p-r-0\">\n {{ app.description || app.manifest?.description | translate }}\n </p>\n </div>\n </div>\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <span [ngClass]=\"appState.class\" class=\"label\">\n {{ isUnpacked ? ('Unpacked' | translate) : (appState.label | translate) }}\n </span>\n </div>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n</button>\n", dependencies: [{ kind: "directive", type: i3.IconDirective, selector: "[c8yIcon]", inputs: ["c8yIcon"] }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.IfAllowedDirective, selector: "[c8yIfAllowed]", inputs: ["c8yIfAllowed", "c8yIfAllowedAllowAny"] }, { kind: "component", type: i3.AppIconComponent, selector: "c8y-app-icon", inputs: ["contextPath", "name", "app"] }, { kind: "directive", type: i6.BsDropdownMenuDirective, selector: "[bsDropdownMenu],[dropdownMenu]", exportAs: ["bs-dropdown-menu"] }, { kind: "directive", type: i6.BsDropdownToggleDirective, selector: "[bsDropdownToggle],[dropdownToggle]", exportAs: ["bs-dropdown-toggle"] }, { kind: "directive", type: i6.BsDropdownDirective, selector: "[bsDropdown], [dropdown]", inputs: ["placement", "triggers", "container", "dropup", "autoClose", "isAnimated", "insideClick", "isDisabled", "isOpen"], outputs: ["isOpenChange", "onShown", "onHidden"], exportAs: ["bs-dropdown"] }, { kind: "directive", type: i7.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "pipe", type: i3.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.HumanizeAppNamePipe, name: "humanizeAppName" }] });
114
137
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ApplicationCardComponent, decorators: [{
115
138
  type: Component,
116
139
  args: [{ selector: 'c8y-application-card', template: "<div class=\"card pointer card--d-col\" *ngIf=\"!isFeature\">\n <div (click)=\"detail()\" class=\"card-block text-center card-column-40\">\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i *ngIf=\"isPackage\" c8yIcon=\"big-parcel\"></i>\n <i *ngIf=\"isMicroservice\" c8yIcon=\"microchip\"></i>\n <i *ngIf=\"isExternal\" c8yIcon=\"globe1\"></i>\n </div>\n <div>\n <p class=\"e2e-appCardName text-medium\" title=\"{{ app | humanizeAppName | async }}\">\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <i\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n [tooltip]=\"'Update available' | translate\"\n c8yIcon=\"exclamation-triangle\"\n class=\"text-warning m-l-4\"\n ></i>\n </p>\n </ng-container>\n </div>\n </div>\n <div (click)=\"detail()\" class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\">\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div *ngIf=\"app.description || app.manifest?.description\" class=\"text-center-grid\">\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p class=\"small l-h-tight p-b-8 p-l-0 p-r-0\">\n {{ app.description || app.manifest?.description | translate }}\n </p>\n </div>\n </div>\n <div\n *ngIf=\"!app.label\"\n class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\"\n >\n <span [ngClass]=\"appState.class\" class=\"label\">\n {{ isUnpacked ? ('Unpacked' | translate) : (appState.label | translate) }}\n </span>\n </div>\n <div\n *ngIf=\"app.label\"\n class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\"\n >\n <span [ngClass]=\"appState.class\" class=\"label text-warning\">\n {{ isOwnedByManagementTenant ? app.label : ('COMMUNITY' | translate) }}\n </span>\n </div>\n <div class=\"card-footer no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <div class=\"p-b-16 card-hidden-list\"></div>\n <button\n (click)=\"openApp(); $event.stopPropagation()\"\n *ngIf=\"canOpenInBrowser\"\n [disabled]=\"disableOpenInBrowser\"\n class=\"btn btn-sm btn-default\"\n [title]=\"openButtonTitle | translate\"\n >\n <i c8yIcon=\"external-link\" class=\"m-r-4\"></i>\n {{ 'Open' | translate }}\n </button>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n </div>\n <div class=\"p-r-40 card-hidden-grid\"></div>\n <div *ngIf=\"canEdit || canOpenInBrowser || canDelete\" class=\"card-actions m-t-0\">\n <div class=\"dropdown\" dropdown>\n <button\n class=\"dropdown-toggle c8y-dropdown\"\n dropdownToggle\n title=\"{{ 'Settings' | translate }}\"\n >\n <i c8yIcon=\"ellipsis-v\"></i>\n </button>\n <ul *dropdownMenu class=\"dropdown-menu dropdown-menu-right\">\n <li *ngIf=\"canEdit\">\n <button (click)=\"detail()\" title=\"{{ 'Edit' | translate }}\">\n <i c8yIcon=\"pencil\" class=\"m-r-4\"></i>\n {{ 'Edit' | translate }}\n </button>\n </li>\n <ng-container *c8yIfAllowed=\"['ROLE_APPLICATION_MANAGEMENT_ADMIN']\">\n <li>\n <button\n (click)=\"delete()\"\n type=\"button\"\n [title]=\"canDelete ? ('Delete' | translate) : (CANNOT_DELETE_HINT | translate)\"\n [disabled]=\"!canDelete\"\n >\n <i c8yIcon=\"delete\" class=\"m-r-4\"></i>\n {{ 'Delete' | translate }}\n </button>\n </li>\n <li *ngIf=\"canClone\">\n <button\n *ngIf=\"isPackage\"\n (click)=\"clone()\"\n type=\"button\"\n [title]=\"'Clone`package`' | translate\"\n >\n <i c8yIcon=\"copy\" class=\"m-r-4\"></i>\n {{ 'Clone`package`' | translate }}\n </button>\n <button\n *ngIf=\"!isPackage\"\n (click)=\"clone()\"\n type=\"button\"\n [title]=\"'Clone`application`' | translate\"\n >\n <i c8yIcon=\"copy\" class=\"m-r-4\"></i>\n {{ 'Clone`application`' | translate }}\n </button>\n </li>\n </ng-container>\n </ul>\n </div>\n </div>\n</div>\n\n<button (click)=\"detail()\" class=\"card pointer card--d-col\" *ngIf=\"isFeature\">\n <div class=\"card-block text-center card-column-40\">\n <div class=\"card-appicon\">\n <c8y-app-icon\n *ngIf=\"!isPackage && !isFeature && !isMicroservice && !isExternal\"\n [app]=\"app\"\n [contextPath]=\"app.contextPath\"\n [name]=\"app.name\"\n ></c8y-app-icon>\n <i c8yIcon=\"tab\"></i>\n </div>\n <div>\n <p class=\"e2e-appCardName text-medium\" title=\"{{ app | humanizeAppName | async }}\">\n {{ app | humanizeAppName | async }}\n </p>\n <ng-container *ngIf=\"isShowVersion\">\n <p class=\"small text-muted\">\n <em>{{ app.manifest.version }}</em>\n <i\n *ngIf=\"shouldUpgradePackage && isUnpacked\"\n [tooltip]=\"'Update available' | translate\"\n c8yIcon=\"exclamation-triangle\"\n class=\"text-warning m-l-4\"\n ></i>\n </p>\n </ng-container>\n </div>\n </div>\n <div class=\"card-block p-0 no-min-height card--d-col card-column-80 flex-grow\">\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-80\">\n <div *ngIf=\"app.description || app.manifest?.description\" class=\"text-center-grid\">\n <div class=\"p-b-8 card-hidden-grid\"></div>\n <p class=\"small l-h-tight p-b-8 p-l-0 p-r-0\">\n {{ app.description || app.manifest?.description | translate }}\n </p>\n </div>\n </div>\n <div class=\"card-block no-min-height p-t-0 p-b-0 card-column-20 text-center-grid\">\n <span [ngClass]=\"appState.class\" class=\"label\">\n {{ isUnpacked ? ('Unpacked' | translate) : (appState.label | translate) }}\n </span>\n </div>\n <div class=\"p-b-32 card-hidden-list\"></div>\n </div>\n</button>\n" }]
117
- }], ctorParameters: function () { return [{ type: i1.ApplicationService }, { type: i2.EcosystemService }, { type: i3.AlertService }, { type: i4.Router }, { type: i3.WizardModalService }, { type: i3.AlertService }]; }, propDecorators: { app: [{
140
+ }], ctorParameters: function () { return [{ type: i1.ApplicationService }, { type: i2.EcosystemService }, { type: i3.AlertService }, { type: i4.Router }, { type: i3.WizardModalService }, { type: i3.AlertService }, { type: i3.GainsightService }]; }, propDecorators: { app: [{
118
141
  type: Input
119
142
  }], canEdit: [{
120
143
  type: Input
@@ -123,4 +146,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
123
146
  }], onAppCloned: [{
124
147
  type: Output
125
148
  }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9lY29zeXN0ZW0vc2hhcmVkL2FwcGxpY2F0aW9uLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL3NoYXJlZC9hcHBsaWNhdGlvbi1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBcUMsTUFBTSxhQUFhLENBQUM7QUFDcEYsT0FBTyxFQUNMLFlBQVksRUFDWixPQUFPLEVBSVAsa0JBQWtCLEVBQ25CLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUU3QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7Ozs7QUFRdkQsTUFBTSxPQUFPLHdCQUF3QjtJQStCbkMsWUFDVSxrQkFBc0MsRUFDdEMsZ0JBQWtDLEVBQ2xDLFlBQTBCLEVBQzFCLE1BQWMsRUFDZCxrQkFBc0MsRUFDdEMsS0FBbUI7UUFMbkIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLFVBQUssR0FBTCxLQUFLLENBQWM7UUFuQ3BCLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFDdkIsaUJBQVks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ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uU2VydmljZSwgSUFwcGxpY2F0aW9uLCBJQXBwbGljYXRpb25WZXJzaW9uIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQWxlcnRTZXJ2aWNlLFxuICBnZXR0ZXh0LFxuICBXaXphcmQsXG4gIFdpemFyZENvbXBvbmVudCxcbiAgV2l6YXJkQ29uZmlnLFxuICBXaXphcmRNb2RhbFNlcnZpY2Vcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgTW9kYWxPcHRpb25zIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEVjb3N5c3RlbVNlcnZpY2UgfSBmcm9tICcuL2Vjb3N5c3RlbS5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uU3RhdGUgfSBmcm9tICcuL2Vjb3N5c3RlbS5tb2RlbCc7XG5pbXBvcnQgeyBEdXBsaWNhdGVBcHBsaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vZHVwbGljYXRlLWFwcGxpY2F0aW9uL2R1cGxpY2F0ZS1hcHBsaWNhdGlvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjOHktYXBwbGljYXRpb24tY2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHBsaWNhdGlvbi1jYXJkLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbkNhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBhcHA6IElBcHBsaWNhdGlvbjtcbiAgQElucHV0KCkgY2FuRWRpdDogYm9vbGVhbiA9IHRydWU7XG4gIEBPdXRwdXQoKSBvbkFwcERlbGV0ZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uQXBwQ2xvbmVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIGFwcFN0YXRlOiBBcHBsaWNhdGlvblN0YXRlO1xuICBjYW5PcGVuSW5Ccm93c2VyOiBib29sZWFuO1xuICBkaXNhYmxlT3BlbkluQnJvd3NlcjogYm9vbGVhbjtcbiAgY2FuRGVsZXRlOiBib29sZWFuO1xuICBpc1BhY2thZ2U6IGJvb2xlYW47XG4gIGlzUGx1Z2luOiBib29sZWFuO1xuICBpc0ZlYXR1cmU6IGJvb2xlYW47XG4gIGlzRXh0ZXJuYWw6IGJvb2xlYW47XG4gIGlzTWljcm9zZXJ2aWNlOiBib29sZWFuO1xuICBjYW5DbG9uZTogYm9vbGVhbjtcbiAgaXNVbnBhY2tlZDogYm9vbGVhbjtcbiAgc2hvdWxkVXBncmFkZVBhY2thZ2U6IGJvb2xlYW47XG4gIGJsdWVwcmludEFwcGxpY2F0aW9uVmVyc2lvbjogSUFwcGxpY2F0aW9uVmVyc2lvbltdO1xuICBsYXRlc3RBcHBsaWNhdGlvblZlcnNpb246IElBcHBsaWNhdGlvblZlcnNpb247XG4gIGlzU2hvd1ZlcnNpb246IGJvb2xlYW47XG4gIGlzT3duZWRCeU1hbmFnZW1lbnRUZW5hbnQ6IGJvb2xlYW47XG4gIGdldCBvcGVuQnV0dG9uVGl0bGUoKSB7XG4gICAgcmV0dXJuICF0aGlzLmRpc2FibGVPcGVuSW5Ccm93c2VyXG4gICAgICA/IGdldHRleHQoJ09wZW4nKVxuICAgICAgOiBnZXR0ZXh0KCdUaGlzIGFwcGxpY2F0aW9uIGlzIG92ZXJyaWRkZW4uJyk7XG4gIH1cblxuICByZWFkb25seSBDQU5OT1RfREVMRVRFX0hJTlQgPSBnZXR0ZXh0KFxuICAgIGBTdWJzY3JpYmVkIG9yIGN1cnJlbnQgYXBwbGljYXRpb25zIGNhbid0IGJlIGRlbGV0ZWQuIERlbGV0ZSB0aGUgYXBwbGljYXRpb24gb24gdGhlIHBhcmVudCB0ZW5hbnQgb3IgdW5zdWJzY3JpYmUgaXQgZnJvbSB0aGUgY3VycmVudC5gXG4gICk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhcHBsaWNhdGlvblNlcnZpY2U6IEFwcGxpY2F0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIGVjb3N5c3RlbVNlcnZpY2U6IEVjb3N5c3RlbVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydFNlcnZpY2U6IEFsZXJ0U2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgd2l6YXJkTW9kYWxTZXJ2aWNlOiBXaXphcmRNb2RhbFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhbGVydDogQWxlcnRTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFwcFN0YXRlID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmdldEFwcFN0YXRlKHRoaXMuYXBwKTtcbiAgICB0aGlzLmNhbk9wZW5JbkJyb3dzZXIgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuY2FuT3BlbkFwcEluQnJvd3Nlcih0aGlzLmFwcCk7XG4gICAgdGhpcy5kaXNhYmxlT3BlbkluQnJvd3NlciA9XG4gICAgICB0aGlzLmNhbk9wZW5JbkJyb3dzZXIgJiYgKGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5pc092ZXJ3cml0dGVuQnlDdXN0b21BcHAodGhpcy5hcHApKTtcbiAgICB0aGlzLmNhbkRlbGV0ZSA9IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5jYW5EZWxldGVBcHAodGhpcy5hcHApO1xuICAgIHRoaXMuaXNPd25lZEJ5TWFuYWdlbWVudFRlbmFudCA9IGF3YWl0IHRoaXMuaXNPd25lZEJ5TWFuYWdlbWVudCgpO1xuICAgIHRoaXMuaXNQYWNrYWdlID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzUGFja2FnZSh0aGlzLmFwcCk7XG4gICAgdGhpcy5pc1BsdWdpbiA9IHRoaXMuZWNvc3lzdGVtU2VydmljZS5pc1BsdWdpbih0aGlzLmFwcCk7XG4gICAgdGhpcy5pc0ZlYXR1cmUgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNGZWF0dXJlKHRoaXMuYXBwKTtcbiAgICB0aGlzLmlzTWljcm9zZXJ2aWNlID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzTWljcm9zZXJ2aWNlKHRoaXMuYXBwKTtcbiAgICB0aGlzLmlzRXh0ZXJuYWwgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNFeHRlcm5hbCh0aGlzLmFwcCk7XG4gICAgdGhpcy5jYW5DbG9uZSA9ICF0aGlzLmlzTWljcm9zZXJ2aWNlICYmICF0aGlzLmlzUGx1Z2luO1xuICAgIHRoaXMuaXNVbnBhY2tlZCA9IHRoaXMuZWNvc3lzdGVtU2VydmljZS5pc1VucGFja2VkKHRoaXMuYXBwKTtcbiAgICB0aGlzLmlzU2hvd1ZlcnNpb24gPSB0aGlzLnNob3VsZFNob3dWZXJzaW9uKCk7XG4gICAgYXdhaXQgdGhpcy5hcHBsaWNhdGlvblVwZGF0ZUNoZWNrKCk7XG4gIH1cblxuICBzaG91bGRTaG93VmVyc2lvbigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5hcHAubWFuaWZlc3Q/LnZlcnNpb24gJiZcbiAgICAgICghIXRoaXMuYXBwLm1hbmlmZXN0Py5pc1BhY2thZ2UgfHwgdGhpcy5pc01pY3Jvc2VydmljZSB8fCAhIXRoaXMuYXBwLm1hbmlmZXN0Py5zb3VyY2UpXG4gICAgKTtcbiAgfVxuXG4gIGRldGFpbCgpIHtcbiAgICB0aGlzLmlzTWljcm9zZXJ2aWNlXG4gICAgICA/IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYC9taWNyb3NlcnZpY2VzLyR7dGhpcy5hcHAuaWR9YClcbiAgICAgIDogdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChgL2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi8ke3RoaXMuYXBwLmlkfWApO1xuICB9XG5cbiAgb3BlbkFwcCgpIHtcbiAgICB0aGlzLmVjb3N5c3RlbVNlcnZpY2Uub3BlbkFwcCh0aGlzLmFwcCk7XG4gIH1cblxuICBhc3luYyBkZWxldGUoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5kZWxldGVBcHAodGhpcy5hcHApO1xuICAgICAgdGhpcy5vbkFwcERlbGV0ZWQuZW1pdCgpO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICBpZiAoZXgpIHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShleCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYXN5bmMgY2xvbmUoKSB7XG4gICAgY29uc3Qgd2l6YXJkQ29uZmlnOiBXaXphcmRDb25maWcgPSB7XG4gICAgICBoZWFkZXJUZXh0OiAnQWRkIEFwcGxpY2F0aW9uJyxcbiAgICAgIGhlYWRlckljb246ICdjOHktYXRvbSdcbiAgICB9O1xuXG4gICAgY29uc3QgaW5pdGlhbFN0YXRlOiBXaXphcmQ8RHVwbGljYXRlQXBwbGljYXRpb25Db21wb25lbnQ+ID0ge1xuICAgICAgd2l6YXJkQ29uZmlnLFxuICAgICAgY29tcG9uZW50SW5pdGlhbFN0YXRlOiB7XG4gICAgICAgIHNlbGVjdGVkQXBwOiBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMuYXBwKVxuICAgICAgfSxcbiAgICAgIGlkOiAnZHVwbGljYXRlQXBwbGljYXRpb24nXG4gICAgfTtcblxuICAgIGNvbnN0IG1vZGFsT3B0aW9uczogTW9kYWxPcHRpb25zPFdpemFyZENvbXBvbmVudD4gPSB7IGluaXRpYWxTdGF0ZSB9O1xuXG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLndpemFyZE1vZGFsU2VydmljZS5zaG93KG1vZGFsT3B0aW9ucyk7XG4gICAgbW9kYWxSZWYuY29udGVudC5vbkNsb3NlLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLm9uQXBwQ2xvbmVkLm5leHQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNPd25lZEJ5TWFuYWdlbWVudCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBhcHBPd25lciA9IGdldCh0aGlzLmFwcCwgJ293bmVyLnRlbmFudC5pZCcpO1xuICAgIHJldHVybiBhcHBPd25lciA9PT0gJ21hbmFnZW1lbnQnO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBhcHBsaWNhdGlvblVwZGF0ZUNoZWNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmFwcC5tYW5pZmVzdD8uc291cmNlKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLmJsdWVwcmludEFwcGxpY2F0aW9uVmVyc2lvbiA9IChcbiAgICAgICAgICBhd2FpdCB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS5saXN0VmVyc2lvbnModGhpcy5hcHAubWFuaWZlc3Q/LnNvdXJjZSlcbiAgICAgICAgKS5kYXRhO1xuXG4gICAgICAgIHRoaXMubGF0ZXN0QXBwbGljYXRpb25WZXJzaW9uID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmdldEFwcGxpY2F0aW9uVmVyc2lvbk9iamVjdEJ5VGFnKFxuICAgICAgICAgIHRoaXMuYmx1ZXByaW50QXBwbGljYXRpb25WZXJzaW9uLFxuICAgICAgICAgICdsYXRlc3QnXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2hvdWxkVXBncmFkZVBhY2thZ2UgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2Uuc2hvdWxkVXBncmFkZVBhY2thZ2UoXG4gICAgICAgICAgdGhpcy5hcHAubWFuaWZlc3Q/LnZlcnNpb24sXG4gICAgICAgICAgdGhpcy5sYXRlc3RBcHBsaWNhdGlvblZlcnNpb25cbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmICghdGhpcy5ibHVlcHJpbnRBcHBsaWNhdGlvblZlcnNpb24pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkIHBvaW50ZXIgY2FyZC0tZC1jb2xcIiAqbmdJZj1cIiFpc0ZlYXR1cmVcIj5cbiAgPGRpdiAoY2xpY2spPVwiZGV0YWlsKClcIiBjbGFzcz1cImNhcmQtYmxvY2sgdGV4dC1jZW50ZXIgY2FyZC1jb2x1bW4tNDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1hcHBpY29uXCI+XG4gICAgICA8Yzh5LWFwcC1pY29uXG4gICAgICAgICpuZ0lmPVwiIWlzUGFja2FnZSAmJiAhaXNGZWF0dXJlICYmICFpc01pY3Jvc2VydmljZSAmJiAhaXNFeHRlcm5hbFwiXG4gICAgICAgIFthcHBdPVwiYXBwXCJcbiAgICAgICAgW2NvbnRleHRQYXRoXT1cImFwcC5jb250ZXh0UGF0aFwiXG4gICAgICAgIFtuYW1lXT1cImFwcC5uYW1lXCJcbiAgICAgID48L2M4eS1hcHAtaWNvbj5cbiAgICAgIDxpICpuZ0lmPVwiaXNQYWNrYWdlXCIgYzh5SWNvbj1cImJpZy1wYXJjZWxcIj48L2k+XG4gICAgICA8aSAqbmdJZj1cImlzTWljcm9zZXJ2aWNlXCIgYzh5SWNvbj1cIm1pY3JvY2hpcFwiPjwvaT5cbiAgICAgIDxpICpuZ0lmPVwiaXNFeHRlcm5hbFwiIGM4eUljb249XCJnbG9iZTFcIj48L2k+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxwIGNsYXNzPVwiZTJlLWFwcENhcmROYW1lIHRleHQtbWVkaXVtXCIgdGl0bGU9XCJ7eyBhcHAgfCBodW1hbml6ZUFwcE5hbWUgfCBhc3luYyB9fVwiPlxuICAgICAgICB7eyBhcHAgfCBodW1hbml6ZUFwcE5hbWUgfCBhc3luYyB9fVxuICAgICAgPC9wPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2hvd1ZlcnNpb25cIj5cbiAgICAgICAgPHAgY2xhc3M9XCJzbWFsbCB0ZXh0LW11dGVkXCI+XG4gICAgICAgICAgPGVtPnt7IGFwcC5tYW5pZmVzdC52ZXJzaW9uIH19PC9lbT5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgKm5nSWY9XCJzaG91bGRVcGdyYWRlUGFja2FnZSAmJiBpc1VucGFja2VkXCJcbiAgICAgICAgICAgIFt0b29sdGlwXT1cIidVcGRhdGUgYXZhaWxhYmxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBjOHlJY29uPVwiZXhjbGFtYXRpb24tdHJpYW5nbGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXdhcm5pbmcgbS1sLTRcIlxuICAgICAgICAgID48L2k+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAoY2xpY2spPVwiZGV0YWlsKClcIiBjbGFzcz1cImNhcmQtYmxvY2sgcC0wIG5vLW1pbi1oZWlnaHQgY2FyZC0tZC1jb2wgY2FyZC1jb2x1bW4tODAgZmxleC1ncm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgbm8tbWluLWhlaWdodCBwLXQtMCBwLWItMCBjYXJkLWNvbHVtbi04MFwiPlxuICAgICAgPGRpdiAqbmdJZj1cImFwcC5kZXNjcmlwdGlvbiB8fCBhcHAubWFuaWZlc3Q/LmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJ0ZXh0LWNlbnRlci1ncmlkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLWItOCBjYXJkLWhpZGRlbi1ncmlkXCI+PC9kaXY+XG4gICAgICAgIDxwIGNsYXNzPVwic21hbGwgbC1oLXRpZ2h0IHAtYi04IHAtbC0wIHAtci0wXCI+XG4gICAgICAgICAge3sgYXBwLmRlc2NyaXB0aW9uIHx8IGFwcC5tYW5pZmVzdD8uZGVzY3JpcHRpb24gfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCIhYXBwLmxhYmVsXCJcbiAgICAgIGNsYXNzPVwiY2FyZC1ibG9jayBuby1taW4taGVpZ2h0IHAtdC0wIHAtYi0wIGNhcmQtY29sdW1uLTIwIHRleHQtY2VudGVyLWdyaWRcIlxuICAgID5cbiAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cImFwcFN0YXRlLmNsYXNzXCIgY2xhc3M9XCJsYWJlbFwiPlxuICAgICAgICB7eyBpc1VucGFja2VkID8gKCdVbnBhY2tlZCcgfCB0cmFuc2xhdGUpIDogKGFwcFN0YXRlLmxhYmVsIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiYXBwLmxhYmVsXCJcbiAgICAgIGNsYXNzPVwiY2FyZC1ibG9jayBuby1taW4taGVpZ2h0IHAtdC0wIHAtYi0wIGNhcmQtY29sdW1uLTIwIHRleHQtY2VudGVyLWdyaWRcIlxuICAgID5cbiAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cImFwcFN0YXRlLmNsYXNzXCIgY2xhc3M9XCJsYWJlbCB0ZXh0LXdhcm5pbmdcIj5cbiAgICAgICAge3sgaXNPd25lZEJ5TWFuYWdlbWVudFRlbmFudCA/IGFwcC5sYWJlbCA6ICgnQ09NTVVOSVRZJyB8IHRyYW5zbGF0ZSkgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgbm8tbWluLWhlaWdodCBwLXQtMCBwLWItMCBjYXJkLWNvbHVtbi0yMCB0ZXh0LWNlbnRlci1ncmlkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicC1iLTE2IGNhcmQtaGlkZGVuLWxpc3RcIj48L2Rpdj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cIm9wZW5BcHAoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgKm5nSWY9XCJjYW5PcGVuSW5Ccm93c2VyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVPcGVuSW5Ccm93c2VyXCJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1kZWZhdWx0XCJcbiAgICAgICAgW3RpdGxlXT1cIm9wZW5CdXR0b25UaXRsZSB8IHRyYW5zbGF0ZVwiXG4gICAgICA+XG4gICAgICAgIDxpIGM4eUljb249XCJleHRlcm5hbC1saW5rXCIgY2xhc3M9XCJtLXItNFwiPjwvaT5cbiAgICAgICAge3sgJ09wZW4nIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwLWItMzIgY2FyZC1oaWRkZW4tbGlzdFwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInAtci00MCBjYXJkLWhpZGRlbi1ncmlkXCI+PC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJjYW5FZGl0IHx8IGNhbk9wZW5JbkJyb3dzZXIgfHwgY2FuRGVsZXRlXCIgY2xhc3M9XCJjYXJkLWFjdGlvbnMgbS10LTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd25cIiBkcm9wZG93bj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJkcm9wZG93bi10b2dnbGUgYzh5LWRyb3Bkb3duXCJcbiAgICAgICAgZHJvcGRvd25Ub2dnbGVcbiAgICAgICAgdGl0bGU9XCJ7eyAnU2V0dGluZ3MnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgID5cbiAgICAgICAgPGkgYzh5SWNvbj1cImVsbGlwc2lzLXZcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDx1bCAqZHJvcGRvd25NZW51IGNsYXNzPVwiZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51LXJpZ2h0XCI+XG4gICAgICAgIDxsaSAqbmdJZj1cImNhbkVkaXRcIj5cbiAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJkZXRhaWwoKVwiIHRpdGxlPVwie3sgJ0VkaXQnIHwgdHJhbnNsYXRlIH19XCI+XG4gICAgICAgICAgICA8aSBjOHlJY29uPVwicGVuY2lsXCIgY2xhc3M9XCJtLXItNFwiPjwvaT5cbiAgICAgICAgICAgIHt7ICdFZGl0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bmctY29udGFpbmVyICpjOHlJZkFsbG93ZWQ9XCJbJ1JPTEVfQVBQTElDQVRJT05fTUFOQUdFTUVOVF9BRE1JTiddXCI+XG4gICAgICAgICAgPGxpPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlKClcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cImNhbkRlbGV0ZSA/ICgnRGVsZXRlJyB8IHRyYW5zbGF0ZSkgOiAoQ0FOTk9UX0RFTEVURV9ISU5UIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhY2FuRGVsZXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cImRlbGV0ZVwiIGNsYXNzPVwibS1yLTRcIj48L2k+XG4gICAgICAgICAgICAgIHt7ICdEZWxldGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDxsaSAqbmdJZj1cImNhbkNsb25lXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXNQYWNrYWdlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb25lKClcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cIidDbG9uZWBwYWNrYWdlYCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aSBjOHlJY29uPVwiY29weVwiIGNsYXNzPVwibS1yLTRcIj48L2k+XG4gICAgICAgICAgICAgIHt7ICdDbG9uZWBwYWNrYWdlYCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cIiFpc1BhY2thZ2VcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvbmUoKVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0Nsb25lYGFwcGxpY2F0aW9uYCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aSBjOHlJY29uPVwiY29weVwiIGNsYXNzPVwibS1yLTRcIj48L2k+XG4gICAgICAgICAgICAgIHt7ICdDbG9uZWBhcHBsaWNhdGlvbmAnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxidXR0b24gKGNsaWNrKT1cImRldGFpbCgpXCIgY2xhc3M9XCJjYXJkIHBvaW50ZXIgY2FyZC0tZC1jb2xcIiAqbmdJZj1cImlzRmVhdHVyZVwiPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayB0ZXh0LWNlbnRlciBjYXJkLWNvbHVtbi00MFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWFwcGljb25cIj5cbiAgICAgIDxjOHktYXBwLWljb25cbiAgICAgICAgKm5nSWY9XCIhaXNQYWNrYWdlICYmICFpc0ZlYXR1cmUgJiYgIWlzTWljcm9zZXJ2aWNlICYmICFpc0V4dGVybmFsXCJcbiAgICAgICAgW2FwcF09XCJhcHBcIlxuICAgICAgICBbY29udGV4dFBhdGhdPVwiYXBwLmNvbnRleHRQYXRoXCJcbiAgICAgICAgW25hbWVdPVwiYXBwLm5hbWVcIlxuICAgICAgPjwvYzh5LWFwcC1pY29uPlxuICAgICAgPGkgYzh5SWNvbj1cInRhYlwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPHAgY2xhc3M9XCJlMmUtYXBwQ2FyZE5hbWUgdGV4dC1tZWRpdW1cIiB0aXRsZT1cInt7IGFwcCB8IGh1bWFuaXplQXBwTmFtZSB8IGFzeW5jIH19XCI+XG4gICAgICAgIHt7IGFwcCB8IGh1bWFuaXplQXBwTmFtZSB8IGFzeW5jIH19XG4gICAgICA8L3A+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTaG93VmVyc2lvblwiPlxuICAgICAgICA8cCBjbGFzcz1cInNtYWxsIHRleHQtbXV0ZWRcIj5cbiAgICAgICAgICA8ZW0+e3sgYXBwLm1hbmlmZXN0LnZlcnNpb24gfX08L2VtPlxuICAgICAgICAgIDxpXG4gICAgICAgICAgICAqbmdJZj1cInNob3VsZFVwZ3JhZGVQYWNrYWdlICYmIGlzVW5wYWNrZWRcIlxuICAgICAgICAgICAgW3Rvb2x0aXBdPVwiJ1VwZGF0ZSBhdmFpbGFibGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIGM4eUljb249XCJleGNsYW1hdGlvbi10cmlhbmdsZVwiXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtd2FybmluZyBtLWwtNFwiXG4gICAgICAgICAgPjwvaT5cbiAgICAgICAgPC9wPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBwLTAgbm8tbWluLWhlaWdodCBjYXJkLS1kLWNvbCBjYXJkLWNvbHVtbi04MCBmbGV4LWdyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBuby1taW4taGVpZ2h0IHAtdC0wIHAtYi0wIGNhcmQtY29sdW1uLTgwXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXBwLmRlc2NyaXB0aW9uIHx8IGFwcC5tYW5pZmVzdD8uZGVzY3JpcHRpb25cIiBjbGFzcz1cInRleHQtY2VudGVyLWdyaWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtYi04IGNhcmQtaGlkZGVuLWdyaWRcIj48L2Rpdj5cbiAgICAgICAgPHAgY2xhc3M9XCJzbWFsbCBsLWgtdGlnaHQgcC1iLTggcC1sLTAgcC1yLTBcIj5cbiAgICAgICAgICB7eyBhcHAuZGVzY3JpcHRpb24gfHwgYXBwLm1hbmlmZXN0Py5kZXNjcmlwdGlvbiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBuby1taW4taGVpZ2h0IHAtdC0wIHAtYi0wIGNhcmQtY29sdW1uLTIwIHRleHQtY2VudGVyLWdyaWRcIj5cbiAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cImFwcFN0YXRlLmNsYXNzXCIgY2xhc3M9XCJsYWJlbFwiPlxuICAgICAgICB7eyBpc1VucGFja2VkID8gKCdVbnBhY2tlZCcgfCB0cmFuc2xhdGUpIDogKGFwcFN0YXRlLmxhYmVsIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwLWItMzIgY2FyZC1oaWRkZW4tbGlzdFwiPjwvZGl2PlxuICA8L2Rpdj5cbjwvYnV0dG9uPlxuIl19
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwbGljYXRpb24tY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9lY29zeXN0ZW0vc2hhcmVkL2FwcGxpY2F0aW9uLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL3NoYXJlZC9hcHBsaWNhdGlvbi1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxrQkFBa0IsRUFBcUMsTUFBTSxhQUFhLENBQUM7QUFDcEYsT0FBTyxFQUNMLFlBQVksRUFDWixnQkFBZ0IsRUFJaEIsa0JBQWtCLEVBQ2xCLE9BQU8sRUFDUixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUV2QyxPQUFPLEVBQW9CLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDekUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7OztBQU12RCxNQUFNLE9BQU8sd0JBQXdCO0lBaUNuQyxZQUNVLGtCQUFzQyxFQUN0QyxnQkFBa0MsRUFDbEMsWUFBMEIsRUFDMUIsTUFBYyxFQUNkLGtCQUFzQyxFQUN0QyxLQUFtQixFQUNuQixnQkFBa0M7UUFObEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUN0QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLFVBQUssR0FBTCxLQUFLLENBQWM7UUFDbkIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQXZDNUMscUJBQWdCLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztRQUd4QixZQUFPLEdBQVksSUFBSSxDQUFDO1FBQ3ZCLGlCQUFZLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdEQsZ0JBQVcsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQXVCdEQsdUJBQWtCLEdBQUcsT0FBTyxDQUNuQyxzSUFBc0ksQ0FDdkksQ0FBQztJQVVDLENBQUM7SUFsQkosSUFBSSxlQUFlO1FBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsb0JBQW9CO1lBQy9CLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxPQUFPLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBZ0JELEtBQUssQ0FBQyxRQUFRO1FBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsb0JBQW9CO1lBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLGdCQUFnQixDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzVGLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMseUJBQXlCLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUNsRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzRCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM5QyxNQUFNLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLENBQ0wsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTztZQUMxQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxTQUFTLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQ3ZGLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxjQUFjO1lBQ2pCLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUM1RCxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsMEJBQTBCLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUU7WUFDMUYsU0FBUyxFQUFFLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCO1lBQ3RFLE1BQU0sRUFBRSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUk7WUFDcEQsR0FBRyxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7U0FDM0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU07UUFDVixJQUFJO1lBQ0YsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRTtnQkFDMUYsU0FBUyxFQUFFLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCO2dCQUN0RSxNQUFNLEVBQUUsa0JBQWtCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNO2dCQUN0RCxHQUFHLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjthQUMzQixDQUFDLENBQUM7U0FDSjtRQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ1gsSUFBSSxFQUFFLEVBQUU7Z0JBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FDaEMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFDdkQ7b0JBQ0UsU0FBUyxFQUFFLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCO29CQUN0RSxNQUFNLEVBQUUsa0JBQWtCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxjQUFjO29CQUM5RCxHQUFHLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtpQkFDM0IsQ0FDRixDQUFDO2FBQ0g7U0FDRjtJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsS0FBSztRQUNULE1BQU0sWUFBWSxHQUFpQjtZQUNqQyxVQUFVLEVBQUUsaUJBQWlCO1lBQzdCLFVBQVUsRUFBRSxVQUFVO1NBQ3ZCLENBQUM7UUFFRixNQUFNLFlBQVksR0FBMEM7WUFDMUQsWUFBWTtZQUNaLHFCQUFxQixFQUFFO2dCQUNyQixXQUFXLEVBQUUsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQzthQUMzQztZQUNELEVBQUUsRUFBRSxzQkFBc0I7U0FDM0IsQ0FBQztRQUVGLE1BQU0sWUFBWSxHQUFrQyxFQUFFLFlBQVksRUFBRSxDQUFDO1FBRXJFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDNUQsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFO1lBQzFGLFNBQVMsRUFBRSxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLGdCQUFnQjtZQUN0RSxNQUFNLEVBQUUsa0JBQWtCLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLO1lBQ3JELEdBQUcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1NBQzNCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxtQkFBbUI7UUFDekIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUNsRCxPQUFPLFFBQVEsS0FBSyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUVPLEtBQUssQ0FBQyxzQkFBc0I7UUFDbEMsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUU7WUFDN0IsSUFBSTtnQkFDRixJQUFJLENBQUMsMkJBQTJCLEdBQUcsQ0FDakMsTUFBTSxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUN0RSxDQUFDLElBQUksQ0FBQztnQkFFUCxJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdDQUFnQyxDQUNwRixJQUFJLENBQUMsMkJBQTJCLEVBQ2hDLFFBQVEsQ0FDVCxDQUFDO2dCQUNGLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsb0JBQW9CLENBQ3BFLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFDMUIsSUFBSSxDQUFDLHdCQUF3QixDQUM5QixDQUFDO2FBQ0g7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFO29CQUNyQyxPQUFPO2lCQUNSO2dCQUNELElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDcEM7U0FDRjtJQUNILENBQUM7O3FIQWpLVSx3QkFBd0I7eUdBQXhCLHdCQUF3QiwrS0N2QnJDLGcvTUEwS0E7MkZEbkphLHdCQUF3QjtrQkFKcEMsU0FBUzsrQkFDRSxzQkFBc0I7bVJBTXZCLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uU2VydmljZSwgSUFwcGxpY2F0aW9uLCBJQXBwbGljYXRpb25WZXJzaW9uIH0gZnJvbSAnQGM4eS9jbGllbnQnO1xuaW1wb3J0IHtcbiAgQWxlcnRTZXJ2aWNlLFxuICBHYWluc2lnaHRTZXJ2aWNlLFxuICBXaXphcmQsXG4gIFdpemFyZENvbXBvbmVudCxcbiAgV2l6YXJkQ29uZmlnLFxuICBXaXphcmRNb2RhbFNlcnZpY2UsXG4gIGdldHRleHRcbn0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgTW9kYWxPcHRpb25zIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IER1cGxpY2F0ZUFwcGxpY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9kdXBsaWNhdGUtYXBwbGljYXRpb24vZHVwbGljYXRlLWFwcGxpY2F0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblN0YXRlLCBQUk9EVUNUX0VYUEVSSUVOQ0UgfSBmcm9tICcuL2Vjb3N5c3RlbS5tb2RlbCc7XG5pbXBvcnQgeyBFY29zeXN0ZW1TZXJ2aWNlIH0gZnJvbSAnLi9lY29zeXN0ZW0uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1hcHBsaWNhdGlvbi1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FwcGxpY2F0aW9uLWNhcmQuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFwcGxpY2F0aW9uQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIENVUlJFTlRfTE9DQVRJT04gPSBsb2NhdGlvbi5ocmVmO1xuXG4gIEBJbnB1dCgpIGFwcDogSUFwcGxpY2F0aW9uO1xuICBASW5wdXQoKSBjYW5FZGl0OiBib29sZWFuID0gdHJ1ZTtcbiAgQE91dHB1dCgpIG9uQXBwRGVsZXRlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25BcHBDbG9uZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgYXBwU3RhdGU6IEFwcGxpY2F0aW9uU3RhdGU7XG4gIGNhbk9wZW5JbkJyb3dzZXI6IGJvb2xlYW47XG4gIGRpc2FibGVPcGVuSW5Ccm93c2VyOiBib29sZWFuO1xuICBjYW5EZWxldGU6IGJvb2xlYW47XG4gIGlzUGFja2FnZTogYm9vbGVhbjtcbiAgaXNQbHVnaW46IGJvb2xlYW47XG4gIGlzRmVhdHVyZTogYm9vbGVhbjtcbiAgaXNFeHRlcm5hbDogYm9vbGVhbjtcbiAgaXNNaWNyb3NlcnZpY2U6IGJvb2xlYW47XG4gIGNhbkNsb25lOiBib29sZWFuO1xuICBpc1VucGFja2VkOiBib29sZWFuO1xuICBzaG91bGRVcGdyYWRlUGFja2FnZTogYm9vbGVhbjtcbiAgYmx1ZXByaW50QXBwbGljYXRpb25WZXJzaW9uOiBJQXBwbGljYXRpb25WZXJzaW9uW107XG4gIGxhdGVzdEFwcGxpY2F0aW9uVmVyc2lvbjogSUFwcGxpY2F0aW9uVmVyc2lvbjtcbiAgaXNTaG93VmVyc2lvbjogYm9vbGVhbjtcbiAgaXNPd25lZEJ5TWFuYWdlbWVudFRlbmFudDogYm9vbGVhbjtcbiAgZ2V0IG9wZW5CdXR0b25UaXRsZSgpIHtcbiAgICByZXR1cm4gIXRoaXMuZGlzYWJsZU9wZW5JbkJyb3dzZXJcbiAgICAgID8gZ2V0dGV4dCgnT3BlbicpXG4gICAgICA6IGdldHRleHQoJ1RoaXMgYXBwbGljYXRpb24gaXMgb3ZlcnJpZGRlbi4nKTtcbiAgfVxuXG4gIHJlYWRvbmx5IENBTk5PVF9ERUxFVEVfSElOVCA9IGdldHRleHQoXG4gICAgYFN1YnNjcmliZWQgb3IgY3VycmVudCBhcHBsaWNhdGlvbnMgY2FuJ3QgYmUgZGVsZXRlZC4gRGVsZXRlIHRoZSBhcHBsaWNhdGlvbiBvbiB0aGUgcGFyZW50IHRlbmFudCBvciB1bnN1YnNjcmliZSBpdCBmcm9tIHRoZSBjdXJyZW50LmBcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGFwcGxpY2F0aW9uU2VydmljZTogQXBwbGljYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZWNvc3lzdGVtU2VydmljZTogRWNvc3lzdGVtU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0U2VydmljZTogQWxlcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSB3aXphcmRNb2RhbFNlcnZpY2U6IFdpemFyZE1vZGFsU2VydmljZSxcbiAgICBwcml2YXRlIGFsZXJ0OiBBbGVydFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBnYWluc2lnaHRTZXJ2aWNlOiBHYWluc2lnaHRTZXJ2aWNlXG4gICkge31cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmFwcFN0YXRlID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmdldEFwcFN0YXRlKHRoaXMuYXBwKTtcbiAgICB0aGlzLmNhbk9wZW5JbkJyb3dzZXIgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuY2FuT3BlbkFwcEluQnJvd3Nlcih0aGlzLmFwcCk7XG4gICAgdGhpcy5kaXNhYmxlT3BlbkluQnJvd3NlciA9XG4gICAgICB0aGlzLmNhbk9wZW5JbkJyb3dzZXIgJiYgKGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5pc092ZXJ3cml0dGVuQnlDdXN0b21BcHAodGhpcy5hcHApKTtcbiAgICB0aGlzLmNhbkRlbGV0ZSA9IGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5jYW5EZWxldGVBcHAodGhpcy5hcHApO1xuICAgIHRoaXMuaXNPd25lZEJ5TWFuYWdlbWVudFRlbmFudCA9IGF3YWl0IHRoaXMuaXNPd25lZEJ5TWFuYWdlbWVudCgpO1xuICAgIHRoaXMuaXNQYWNrYWdlID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzUGFja2FnZSh0aGlzLmFwcCk7XG4gICAgdGhpcy5pc1BsdWdpbiA9IHRoaXMuZWNvc3lzdGVtU2VydmljZS5pc1BsdWdpbih0aGlzLmFwcCk7XG4gICAgdGhpcy5pc0ZlYXR1cmUgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNGZWF0dXJlKHRoaXMuYXBwKTtcbiAgICB0aGlzLmlzTWljcm9zZXJ2aWNlID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmlzTWljcm9zZXJ2aWNlKHRoaXMuYXBwKTtcbiAgICB0aGlzLmlzRXh0ZXJuYWwgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuaXNFeHRlcm5hbCh0aGlzLmFwcCk7XG4gICAgdGhpcy5jYW5DbG9uZSA9ICF0aGlzLmlzTWljcm9zZXJ2aWNlICYmICF0aGlzLmlzUGx1Z2luO1xuICAgIHRoaXMuaXNVbnBhY2tlZCA9IHRoaXMuZWNvc3lzdGVtU2VydmljZS5pc1VucGFja2VkKHRoaXMuYXBwKTtcbiAgICB0aGlzLmlzU2hvd1ZlcnNpb24gPSB0aGlzLnNob3VsZFNob3dWZXJzaW9uKCk7XG4gICAgYXdhaXQgdGhpcy5hcHBsaWNhdGlvblVwZGF0ZUNoZWNrKCk7XG4gIH1cblxuICBzaG91bGRTaG93VmVyc2lvbigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5hcHAubWFuaWZlc3Q/LnZlcnNpb24gJiZcbiAgICAgICghIXRoaXMuYXBwLm1hbmlmZXN0Py5pc1BhY2thZ2UgfHwgdGhpcy5pc01pY3Jvc2VydmljZSB8fCAhIXRoaXMuYXBwLm1hbmlmZXN0Py5zb3VyY2UpXG4gICAgKTtcbiAgfVxuXG4gIGRldGFpbCgpIHtcbiAgICB0aGlzLmlzTWljcm9zZXJ2aWNlXG4gICAgICA/IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYC9taWNyb3NlcnZpY2VzLyR7dGhpcy5hcHAuaWR9YClcbiAgICAgIDogdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChgL2Vjb3N5c3RlbS9hcHBsaWNhdGlvbi8ke3RoaXMuYXBwLmlkfWApO1xuICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5FVkVOVFMuQVBQTElDQVRJT05fQ0FSRCwge1xuICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkNPTVBPTkVOVFMuQVBQTElDQVRJT05fQ0FSRCxcbiAgICAgIGFjdGlvbjogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5BQ1RJT05TLkVESVQsXG4gICAgICB1cmw6IHRoaXMuQ1VSUkVOVF9MT0NBVElPTlxuICAgIH0pO1xuICB9XG5cbiAgb3BlbkFwcCgpIHtcbiAgICB0aGlzLmVjb3N5c3RlbVNlcnZpY2Uub3BlbkFwcCh0aGlzLmFwcCk7XG4gIH1cblxuICBhc3luYyBkZWxldGUoKSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuZWNvc3lzdGVtU2VydmljZS5kZWxldGVBcHAodGhpcy5hcHApO1xuICAgICAgdGhpcy5vbkFwcERlbGV0ZWQuZW1pdCgpO1xuICAgICAgdGhpcy5nYWluc2lnaHRTZXJ2aWNlLnRyaWdnZXJFdmVudChQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkVWRU5UUy5BUFBMSUNBVElPTl9DQVJELCB7XG4gICAgICAgIGNvbXBvbmVudDogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5DT01QT05FTlRTLkFQUExJQ0FUSU9OX0NBUkQsXG4gICAgICAgIGFjdGlvbjogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5BQ1RJT05TLkRFTEVURSxcbiAgICAgICAgdXJsOiB0aGlzLkNVUlJFTlRfTE9DQVRJT05cbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGV4KSB7XG4gICAgICBpZiAoZXgpIHtcbiAgICAgICAgdGhpcy5hbGVydFNlcnZpY2UuYWRkU2VydmVyRmFpbHVyZShleCk7XG4gICAgICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoXG4gICAgICAgICAgUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5FVkVOVFMuQVBQTElDQVRJT05fQ0FSRCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuQ09NUE9ORU5UUy5BUFBMSUNBVElPTl9DQVJELFxuICAgICAgICAgICAgcmVzdWx0OiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLlJFU1VMVFMuU0VSVkVSX0ZBSUxVUkUsXG4gICAgICAgICAgICB1cmw6IHRoaXMuQ1VSUkVOVF9MT0NBVElPTlxuICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhc3luYyBjbG9uZSgpIHtcbiAgICBjb25zdCB3aXphcmRDb25maWc6IFdpemFyZENvbmZpZyA9IHtcbiAgICAgIGhlYWRlclRleHQ6ICdBZGQgQXBwbGljYXRpb24nLFxuICAgICAgaGVhZGVySWNvbjogJ2M4eS1hdG9tJ1xuICAgIH07XG5cbiAgICBjb25zdCBpbml0aWFsU3RhdGU6IFdpemFyZDxEdXBsaWNhdGVBcHBsaWNhdGlvbkNvbXBvbmVudD4gPSB7XG4gICAgICB3aXphcmRDb25maWcsXG4gICAgICBjb21wb25lbnRJbml0aWFsU3RhdGU6IHtcbiAgICAgICAgc2VsZWN0ZWRBcHA6IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5hcHApXG4gICAgICB9LFxuICAgICAgaWQ6ICdkdXBsaWNhdGVBcHBsaWNhdGlvbidcbiAgICB9O1xuXG4gICAgY29uc3QgbW9kYWxPcHRpb25zOiBNb2RhbE9wdGlvbnM8V2l6YXJkQ29tcG9uZW50PiA9IHsgaW5pdGlhbFN0YXRlIH07XG5cbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMud2l6YXJkTW9kYWxTZXJ2aWNlLnNob3cobW9kYWxPcHRpb25zKTtcbiAgICBtb2RhbFJlZi5jb250ZW50Lm9uQ2xvc2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMub25BcHBDbG9uZWQubmV4dCgpO1xuICAgIH0pO1xuICAgIHRoaXMuZ2FpbnNpZ2h0U2VydmljZS50cmlnZ2VyRXZlbnQoUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5FVkVOVFMuQVBQTElDQVRJT05fQ0FSRCwge1xuICAgICAgY29tcG9uZW50OiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkNPTVBPTkVOVFMuQVBQTElDQVRJT05fQ0FSRCxcbiAgICAgIGFjdGlvbjogUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5BQ1RJT05TLkNMT05FLFxuICAgICAgdXJsOiB0aGlzLkNVUlJFTlRfTE9DQVRJT05cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNPd25lZEJ5TWFuYWdlbWVudCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBhcHBPd25lciA9IGdldCh0aGlzLmFwcCwgJ293bmVyLnRlbmFudC5pZCcpO1xuICAgIHJldHVybiBhcHBPd25lciA9PT0gJ21hbmFnZW1lbnQnO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBhcHBsaWNhdGlvblVwZGF0ZUNoZWNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmFwcC5tYW5pZmVzdD8uc291cmNlKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLmJsdWVwcmludEFwcGxpY2F0aW9uVmVyc2lvbiA9IChcbiAgICAgICAgICBhd2FpdCB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS5saXN0VmVyc2lvbnModGhpcy5hcHAubWFuaWZlc3Q/LnNvdXJjZSlcbiAgICAgICAgKS5kYXRhO1xuXG4gICAgICAgIHRoaXMubGF0ZXN0QXBwbGljYXRpb25WZXJzaW9uID0gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmdldEFwcGxpY2F0aW9uVmVyc2lvbk9iamVjdEJ5VGFnKFxuICAgICAgICAgIHRoaXMuYmx1ZXByaW50QXBwbGljYXRpb25WZXJzaW9uLFxuICAgICAgICAgICdsYXRlc3QnXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc2hvdWxkVXBncmFkZVBhY2thZ2UgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2Uuc2hvdWxkVXBncmFkZVBhY2thZ2UoXG4gICAgICAgICAgdGhpcy5hcHAubWFuaWZlc3Q/LnZlcnNpb24sXG4gICAgICAgICAgdGhpcy5sYXRlc3RBcHBsaWNhdGlvblZlcnNpb25cbiAgICAgICAgKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGlmICghdGhpcy5ibHVlcHJpbnRBcHBsaWNhdGlvblZlcnNpb24pIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hbGVydC5hZGRTZXJ2ZXJGYWlsdXJlKGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkIHBvaW50ZXIgY2FyZC0tZC1jb2xcIiAqbmdJZj1cIiFpc0ZlYXR1cmVcIj5cbiAgPGRpdiAoY2xpY2spPVwiZGV0YWlsKClcIiBjbGFzcz1cImNhcmQtYmxvY2sgdGV4dC1jZW50ZXIgY2FyZC1jb2x1bW4tNDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1hcHBpY29uXCI+XG4gICAgICA8Yzh5LWFwcC1pY29uXG4gICAgICAgICpuZ0lmPVwiIWlzUGFja2FnZSAmJiAhaXNGZWF0dXJlICYmICFpc01pY3Jvc2VydmljZSAmJiAhaXNFeHRlcm5hbFwiXG4gICAgICAgIFthcHBdPVwiYXBwXCJcbiAgICAgICAgW2NvbnRleHRQYXRoXT1cImFwcC5jb250ZXh0UGF0aFwiXG4gICAgICAgIFtuYW1lXT1cImFwcC5uYW1lXCJcbiAgICAgID48L2M4eS1hcHAtaWNvbj5cbiAgICAgIDxpICpuZ0lmPVwiaXNQYWNrYWdlXCIgYzh5SWNvbj1cImJpZy1wYXJjZWxcIj48L2k+XG4gICAgICA8aSAqbmdJZj1cImlzTWljcm9zZXJ2aWNlXCIgYzh5SWNvbj1cIm1pY3JvY2hpcFwiPjwvaT5cbiAgICAgIDxpICpuZ0lmPVwiaXNFeHRlcm5hbFwiIGM4eUljb249XCJnbG9iZTFcIj48L2k+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgIDxwIGNsYXNzPVwiZTJlLWFwcENhcmROYW1lIHRleHQtbWVkaXVtXCIgdGl0bGU9XCJ7eyBhcHAgfCBodW1hbml6ZUFwcE5hbWUgfCBhc3luYyB9fVwiPlxuICAgICAgICB7eyBhcHAgfCBodW1hbml6ZUFwcE5hbWUgfCBhc3luYyB9fVxuICAgICAgPC9wPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzU2hvd1ZlcnNpb25cIj5cbiAgICAgICAgPHAgY2xhc3M9XCJzbWFsbCB0ZXh0LW11dGVkXCI+XG4gICAgICAgICAgPGVtPnt7IGFwcC5tYW5pZmVzdC52ZXJzaW9uIH19PC9lbT5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgKm5nSWY9XCJzaG91bGRVcGdyYWRlUGFja2FnZSAmJiBpc1VucGFja2VkXCJcbiAgICAgICAgICAgIFt0b29sdGlwXT1cIidVcGRhdGUgYXZhaWxhYmxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBjOHlJY29uPVwiZXhjbGFtYXRpb24tdHJpYW5nbGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXdhcm5pbmcgbS1sLTRcIlxuICAgICAgICAgID48L2k+XG4gICAgICAgIDwvcD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiAoY2xpY2spPVwiZGV0YWlsKClcIiBjbGFzcz1cImNhcmQtYmxvY2sgcC0wIG5vLW1pbi1oZWlnaHQgY2FyZC0tZC1jb2wgY2FyZC1jb2x1bW4tODAgZmxleC1ncm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYmxvY2sgbm8tbWluLWhlaWdodCBwLXQtMCBwLWItMCBjYXJkLWNvbHVtbi04MFwiPlxuICAgICAgPGRpdiAqbmdJZj1cImFwcC5kZXNjcmlwdGlvbiB8fCBhcHAubWFuaWZlc3Q/LmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJ0ZXh0LWNlbnRlci1ncmlkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwLWItOCBjYXJkLWhpZGRlbi1ncmlkXCI+PC9kaXY+XG4gICAgICAgIDxwIGNsYXNzPVwic21hbGwgbC1oLXRpZ2h0IHAtYi04IHAtbC0wIHAtci0wXCI+XG4gICAgICAgICAge3sgYXBwLmRlc2NyaXB0aW9uIHx8IGFwcC5tYW5pZmVzdD8uZGVzY3JpcHRpb24gfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9wPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCIhYXBwLmxhYmVsXCJcbiAgICAgIGNsYXNzPVwiY2FyZC1ibG9jayBuby1taW4taGVpZ2h0IHAtdC0wIHAtYi0wIGNhcmQtY29sdW1uLTIwIHRleHQtY2VudGVyLWdyaWRcIlxuICAgID5cbiAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cImFwcFN0YXRlLmNsYXNzXCIgY2xhc3M9XCJsYWJlbFwiPlxuICAgICAgICB7eyBpc1VucGFja2VkID8gKCdVbnBhY2tlZCcgfCB0cmFuc2xhdGUpIDogKGFwcFN0YXRlLmxhYmVsIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXZcbiAgICAgICpuZ0lmPVwiYXBwLmxhYmVsXCJcbiAgICAgIGNsYXNzPVwiY2FyZC1ibG9jayBuby1taW4taGVpZ2h0IHAtdC0wIHAtYi0wIGNhcmQtY29sdW1uLTIwIHRleHQtY2VudGVyLWdyaWRcIlxuICAgID5cbiAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cImFwcFN0YXRlLmNsYXNzXCIgY2xhc3M9XCJsYWJlbCB0ZXh0LXdhcm5pbmdcIj5cbiAgICAgICAge3sgaXNPd25lZEJ5TWFuYWdlbWVudFRlbmFudCA/IGFwcC5sYWJlbCA6ICgnQ09NTVVOSVRZJyB8IHRyYW5zbGF0ZSkgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1mb290ZXIgbm8tbWluLWhlaWdodCBwLXQtMCBwLWItMCBjYXJkLWNvbHVtbi0yMCB0ZXh0LWNlbnRlci1ncmlkXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicC1iLTE2IGNhcmQtaGlkZGVuLWxpc3RcIj48L2Rpdj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKGNsaWNrKT1cIm9wZW5BcHAoKTsgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgKm5nSWY9XCJjYW5PcGVuSW5Ccm93c2VyXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVPcGVuSW5Ccm93c2VyXCJcbiAgICAgICAgY2xhc3M9XCJidG4gYnRuLXNtIGJ0bi1kZWZhdWx0XCJcbiAgICAgICAgW3RpdGxlXT1cIm9wZW5CdXR0b25UaXRsZSB8IHRyYW5zbGF0ZVwiXG4gICAgICA+XG4gICAgICAgIDxpIGM4eUljb249XCJleHRlcm5hbC1saW5rXCIgY2xhc3M9XCJtLXItNFwiPjwvaT5cbiAgICAgICAge3sgJ09wZW4nIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwLWItMzIgY2FyZC1oaWRkZW4tbGlzdFwiPjwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInAtci00MCBjYXJkLWhpZGRlbi1ncmlkXCI+PC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJjYW5FZGl0IHx8IGNhbk9wZW5JbkJyb3dzZXIgfHwgY2FuRGVsZXRlXCIgY2xhc3M9XCJjYXJkLWFjdGlvbnMgbS10LTBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd25cIiBkcm9wZG93bj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJkcm9wZG93bi10b2dnbGUgYzh5LWRyb3Bkb3duXCJcbiAgICAgICAgZHJvcGRvd25Ub2dnbGVcbiAgICAgICAgdGl0bGU9XCJ7eyAnU2V0dGluZ3MnIHwgdHJhbnNsYXRlIH19XCJcbiAgICAgID5cbiAgICAgICAgPGkgYzh5SWNvbj1cImVsbGlwc2lzLXZcIj48L2k+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDx1bCAqZHJvcGRvd25NZW51IGNsYXNzPVwiZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51LXJpZ2h0XCI+XG4gICAgICAgIDxsaSAqbmdJZj1cImNhbkVkaXRcIj5cbiAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJkZXRhaWwoKVwiIHRpdGxlPVwie3sgJ0VkaXQnIHwgdHJhbnNsYXRlIH19XCI+XG4gICAgICAgICAgICA8aSBjOHlJY29uPVwicGVuY2lsXCIgY2xhc3M9XCJtLXItNFwiPjwvaT5cbiAgICAgICAgICAgIHt7ICdFZGl0JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2xpPlxuICAgICAgICA8bmctY29udGFpbmVyICpjOHlJZkFsbG93ZWQ9XCJbJ1JPTEVfQVBQTElDQVRJT05fTUFOQUdFTUVOVF9BRE1JTiddXCI+XG4gICAgICAgICAgPGxpPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlKClcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cImNhbkRlbGV0ZSA/ICgnRGVsZXRlJyB8IHRyYW5zbGF0ZSkgOiAoQ0FOTk9UX0RFTEVURV9ISU5UIHwgdHJhbnNsYXRlKVwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhY2FuRGVsZXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGkgYzh5SWNvbj1cImRlbGV0ZVwiIGNsYXNzPVwibS1yLTRcIj48L2k+XG4gICAgICAgICAgICAgIHt7ICdEZWxldGUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICAgIDxsaSAqbmdJZj1cImNhbkNsb25lXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXNQYWNrYWdlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb25lKClcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cIidDbG9uZWBwYWNrYWdlYCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aSBjOHlJY29uPVwiY29weVwiIGNsYXNzPVwibS1yLTRcIj48L2k+XG4gICAgICAgICAgICAgIHt7ICdDbG9uZWBwYWNrYWdlYCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdJZj1cIiFpc1BhY2thZ2VcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvbmUoKVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0Nsb25lYGFwcGxpY2F0aW9uYCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8aSBjOHlJY29uPVwiY29weVwiIGNsYXNzPVwibS1yLTRcIj48L2k+XG4gICAgICAgICAgICAgIHt7ICdDbG9uZWBhcHBsaWNhdGlvbmAnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxidXR0b24gKGNsaWNrKT1cImRldGFpbCgpXCIgY2xhc3M9XCJjYXJkIHBvaW50ZXIgY2FyZC0tZC1jb2xcIiAqbmdJZj1cImlzRmVhdHVyZVwiPlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayB0ZXh0LWNlbnRlciBjYXJkLWNvbHVtbi00MFwiPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWFwcGljb25cIj5cbiAgICAgIDxjOHktYXBwLWljb25cbiAgICAgICAgKm5nSWY9XCIhaXNQYWNrYWdlICYmICFpc0ZlYXR1cmUgJiYgIWlzTWljcm9zZXJ2aWNlICYmICFpc0V4dGVybmFsXCJcbiAgICAgICAgW2FwcF09XCJhcHBcIlxuICAgICAgICBbY29udGV4dFBhdGhdPVwiYXBwLmNvbnRleHRQYXRoXCJcbiAgICAgICAgW25hbWVdPVwiYXBwLm5hbWVcIlxuICAgICAgPjwvYzh5LWFwcC1pY29uPlxuICAgICAgPGkgYzh5SWNvbj1cInRhYlwiPjwvaT5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPHAgY2xhc3M9XCJlMmUtYXBwQ2FyZE5hbWUgdGV4dC1tZWRpdW1cIiB0aXRsZT1cInt7IGFwcCB8IGh1bWFuaXplQXBwTmFtZSB8IGFzeW5jIH19XCI+XG4gICAgICAgIHt7IGFwcCB8IGh1bWFuaXplQXBwTmFtZSB8IGFzeW5jIH19XG4gICAgICA8L3A+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNTaG93VmVyc2lvblwiPlxuICAgICAgICA8cCBjbGFzcz1cInNtYWxsIHRleHQtbXV0ZWRcIj5cbiAgICAgICAgICA8ZW0+e3sgYXBwLm1hbmlmZXN0LnZlcnNpb24gfX08L2VtPlxuICAgICAgICAgIDxpXG4gICAgICAgICAgICAqbmdJZj1cInNob3VsZFVwZ3JhZGVQYWNrYWdlICYmIGlzVW5wYWNrZWRcIlxuICAgICAgICAgICAgW3Rvb2x0aXBdPVwiJ1VwZGF0ZSBhdmFpbGFibGUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIGM4eUljb249XCJleGNsYW1hdGlvbi10cmlhbmdsZVwiXG4gICAgICAgICAgICBjbGFzcz1cInRleHQtd2FybmluZyBtLWwtNFwiXG4gICAgICAgICAgPjwvaT5cbiAgICAgICAgPC9wPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBwLTAgbm8tbWluLWhlaWdodCBjYXJkLS1kLWNvbCBjYXJkLWNvbHVtbi04MCBmbGV4LWdyb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBuby1taW4taGVpZ2h0IHAtdC0wIHAtYi0wIGNhcmQtY29sdW1uLTgwXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwiYXBwLmRlc2NyaXB0aW9uIHx8IGFwcC5tYW5pZmVzdD8uZGVzY3JpcHRpb25cIiBjbGFzcz1cInRleHQtY2VudGVyLWdyaWRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInAtYi04IGNhcmQtaGlkZGVuLWdyaWRcIj48L2Rpdj5cbiAgICAgICAgPHAgY2xhc3M9XCJzbWFsbCBsLWgtdGlnaHQgcC1iLTggcC1sLTAgcC1yLTBcIj5cbiAgICAgICAgICB7eyBhcHAuZGVzY3JpcHRpb24gfHwgYXBwLm1hbmlmZXN0Py5kZXNjcmlwdGlvbiB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9jayBuby1taW4taGVpZ2h0IHAtdC0wIHAtYi0wIGNhcmQtY29sdW1uLTIwIHRleHQtY2VudGVyLWdyaWRcIj5cbiAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cImFwcFN0YXRlLmNsYXNzXCIgY2xhc3M9XCJsYWJlbFwiPlxuICAgICAgICB7eyBpc1VucGFja2VkID8gKCdVbnBhY2tlZCcgfCB0cmFuc2xhdGUpIDogKGFwcFN0YXRlLmxhYmVsIHwgdHJhbnNsYXRlKSB9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwLWItMzIgY2FyZC1oaWRkZW4tbGlzdFwiPjwvZGl2PlxuICA8L2Rpdj5cbjwvYnV0dG9uPlxuIl19
@@ -1,25 +1,28 @@
1
1
  import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
2
  import { ApplicationService } from '@c8y/client';
3
- import { C8yStepper } from '@c8y/ngx-components';
3
+ import { C8yStepper, GainsightService } from '@c8y/ngx-components';
4
4
  import { BsModalRef } from 'ngx-bootstrap/modal';
5
5
  import { BehaviorSubject } from 'rxjs';
6
6
  import { distinctUntilKeyChanged, map, tap } from 'rxjs/operators';
7
7
  import { APP_STATE } from '../../ecosystem.constants';
8
8
  import { EcosystemService } from '../../ecosystem.service';
9
9
  import { ApplicationPropertiesFormComponent } from '../../../shared/application-properties-form.component';
10
+ import { PRODUCT_EXPERIENCE } from '../../ecosystem.model';
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "ngx-bootstrap/modal";
12
13
  import * as i2 from "../../ecosystem.service";
13
14
  import * as i3 from "@c8y/client";
14
- import * as i4 from "@angular/common";
15
- import * as i5 from "@c8y/ngx-components";
15
+ import * as i4 from "@c8y/ngx-components";
16
+ import * as i5 from "@angular/common";
16
17
  import * as i6 from "@angular/forms";
17
18
  import * as i7 from "../../application-properties-form.component";
18
19
  export class DuplicateApplicationPropertiesComponent {
19
- constructor(bsModalRef, ecosystemService, applicationService) {
20
+ constructor(bsModalRef, ecosystemService, applicationService, gainsightService) {
20
21
  this.bsModalRef = bsModalRef;
21
22
  this.ecosystemService = ecosystemService;
22
23
  this.applicationService = applicationService;
24
+ this.gainsightService = gainsightService;
25
+ this.CURRENT_LOCATION = location.href;
23
26
  this.isFirstStep = false;
24
27
  this.duplicatedApp = new EventEmitter();
25
28
  this.disableForm = false;
@@ -42,9 +45,19 @@ export class DuplicateApplicationPropertiesComponent {
42
45
  delete clonedApp.type;
43
46
  await this.updateApp(clonedApp);
44
47
  this.inProgress = false;
48
+ this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.DUPLICATE_APPLICATION, {
49
+ component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.DUPLICATE_APPLICATION_PROPERTIES,
50
+ result: PRODUCT_EXPERIENCE.APPLICATIONS.RESULTS.DUPLICATED,
51
+ url: this.CURRENT_LOCATION
52
+ });
45
53
  }
46
54
  cancel() {
47
55
  this.bsModalRef.hide();
56
+ this.gainsightService.triggerEvent(PRODUCT_EXPERIENCE.APPLICATIONS.EVENTS.DUPLICATE_APPLICATION, {
57
+ component: PRODUCT_EXPERIENCE.APPLICATIONS.COMPONENTS.DUPLICATE_APPLICATION_PROPERTIES,
58
+ action: PRODUCT_EXPERIENCE.APPLICATIONS.ACTIONS.CANCEL,
59
+ url: this.CURRENT_LOCATION
60
+ });
48
61
  }
49
62
  back() {
50
63
  this.stepper.previous();
@@ -95,12 +108,12 @@ export class DuplicateApplicationPropertiesComponent {
95
108
  }
96
109
  }
97
110
  }
98
- DuplicateApplicationPropertiesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DuplicateApplicationPropertiesComponent, deps: [{ token: i1.BsModalRef }, { token: i2.EcosystemService }, { token: i3.ApplicationService }], target: i0.ɵɵFactoryTarget.Component });
99
- DuplicateApplicationPropertiesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DuplicateApplicationPropertiesComponent, selector: "c8y-duplicate-application-properties", inputs: { stepper: "stepper", existingApps: "existingApps", selectedApp: "selectedApp", isFirstStep: "isFirstStep" }, outputs: { duplicatedApp: "duplicatedApp" }, viewQueries: [{ propertyName: "applicationPropertiesForm", first: true, predicate: ApplicationPropertiesFormComponent, descendants: true }], ngImport: i0, template: "<p\n class=\"p-16 text-center text-medium separator-bottom sticky-top bg-level-0 fit-w\"\n *ngIf=\"!inProgress\"\n>\n {{ 'Provide application details' | translate }}\n</p>\n\n<ng-container *ngIf=\"!inProgress\">\n <label class=\"c8y-switch\" *ngIf=\"isSubscribedApp$ | async\">\n <input type=\"checkbox\" [(ngModel)]=\"disableForm\" (change)=\"getAppConfig()\" />\n <span></span> {{ 'Overrule subscribed application' | translate }}\n </label>\n\n <c8y-application-properties-form\n [application]=\"newAppConfig\"\n class=\"d-block fit-w\"\n [disabled]=\"disableForm\"\n ></c8y-application-properties-form>\n</ng-container>\n<c8y-progress-bar\n *ngIf=\"inProgress\"\n [message]=\"'Duplicating\u2026' | translate\"\n class=\"text-center d-block\"\n></c8y-progress-bar>\n\n<c8y-wizard-footer>\n <button\n *ngIf=\"!isFirstStep\"\n (click)=\"back()\"\n [disabled]=\"inProgress\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Back' | translate }}\"\n >\n {{ 'Back' | translate }}\n </button>\n <button (click)=\"cancel()\" class=\"btn btn-default\" title=\"{{ 'Cancel' | translate }}\">\n {{ 'Cancel' | translate }}\n </button>\n <button\n (click)=\"duplicateApp()\"\n [disabled]=\"inProgress\"\n class=\"btn btn-primary\"\n type=\"button\"\n title=\"{{ 'Duplicate' | translate }}\"\n >\n {{ 'Duplicate' | translate }}\n </button>\n</c8y-wizard-footer>\n", dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.ProgressBarComponent, selector: "c8y-progress-bar", inputs: ["message", "progress"] }, { kind: "directive", type: i6.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.WizardFooterComponent, selector: "c8y-wizard-footer" }, { kind: "component", type: i7.ApplicationPropertiesFormComponent, selector: "c8y-application-properties-form", inputs: ["application", "disabled"] }, { kind: "pipe", type: i5.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
111
+ DuplicateApplicationPropertiesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DuplicateApplicationPropertiesComponent, deps: [{ token: i1.BsModalRef }, { token: i2.EcosystemService }, { token: i3.ApplicationService }, { token: i4.GainsightService }], target: i0.ɵɵFactoryTarget.Component });
112
+ DuplicateApplicationPropertiesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: DuplicateApplicationPropertiesComponent, selector: "c8y-duplicate-application-properties", inputs: { stepper: "stepper", existingApps: "existingApps", selectedApp: "selectedApp", isFirstStep: "isFirstStep" }, outputs: { duplicatedApp: "duplicatedApp" }, viewQueries: [{ propertyName: "applicationPropertiesForm", first: true, predicate: ApplicationPropertiesFormComponent, descendants: true }], ngImport: i0, template: "<p\n class=\"p-16 text-center text-medium separator-bottom sticky-top bg-level-0 fit-w\"\n *ngIf=\"!inProgress\"\n>\n {{ 'Provide application details' | translate }}\n</p>\n\n<ng-container *ngIf=\"!inProgress\">\n <label class=\"c8y-switch\" *ngIf=\"isSubscribedApp$ | async\">\n <input type=\"checkbox\" [(ngModel)]=\"disableForm\" (change)=\"getAppConfig()\" />\n <span></span> {{ 'Overrule subscribed application' | translate }}\n </label>\n\n <c8y-application-properties-form\n [application]=\"newAppConfig\"\n class=\"d-block fit-w\"\n [disabled]=\"disableForm\"\n ></c8y-application-properties-form>\n</ng-container>\n<c8y-progress-bar\n *ngIf=\"inProgress\"\n [message]=\"'Duplicating\u2026' | translate\"\n class=\"text-center d-block\"\n></c8y-progress-bar>\n\n<c8y-wizard-footer>\n <button\n *ngIf=\"!isFirstStep\"\n (click)=\"back()\"\n [disabled]=\"inProgress\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Back' | translate }}\"\n >\n {{ 'Back' | translate }}\n </button>\n <button (click)=\"cancel()\" class=\"btn btn-default\" title=\"{{ 'Cancel' | translate }}\">\n {{ 'Cancel' | translate }}\n </button>\n <button\n (click)=\"duplicateApp()\"\n [disabled]=\"inProgress\"\n class=\"btn btn-primary\"\n type=\"button\"\n title=\"{{ 'Duplicate' | translate }}\"\n >\n {{ 'Duplicate' | translate }}\n </button>\n</c8y-wizard-footer>\n", dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.ProgressBarComponent, selector: "c8y-progress-bar", inputs: ["message", "progress"] }, { kind: "directive", type: i6.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.WizardFooterComponent, selector: "c8y-wizard-footer" }, { kind: "component", type: i7.ApplicationPropertiesFormComponent, selector: "c8y-application-properties-form", inputs: ["application", "disabled"] }, { kind: "pipe", type: i4.C8yTranslatePipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }] });
100
113
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: DuplicateApplicationPropertiesComponent, decorators: [{
101
114
  type: Component,
102
115
  args: [{ selector: 'c8y-duplicate-application-properties', template: "<p\n class=\"p-16 text-center text-medium separator-bottom sticky-top bg-level-0 fit-w\"\n *ngIf=\"!inProgress\"\n>\n {{ 'Provide application details' | translate }}\n</p>\n\n<ng-container *ngIf=\"!inProgress\">\n <label class=\"c8y-switch\" *ngIf=\"isSubscribedApp$ | async\">\n <input type=\"checkbox\" [(ngModel)]=\"disableForm\" (change)=\"getAppConfig()\" />\n <span></span> {{ 'Overrule subscribed application' | translate }}\n </label>\n\n <c8y-application-properties-form\n [application]=\"newAppConfig\"\n class=\"d-block fit-w\"\n [disabled]=\"disableForm\"\n ></c8y-application-properties-form>\n</ng-container>\n<c8y-progress-bar\n *ngIf=\"inProgress\"\n [message]=\"'Duplicating\u2026' | translate\"\n class=\"text-center d-block\"\n></c8y-progress-bar>\n\n<c8y-wizard-footer>\n <button\n *ngIf=\"!isFirstStep\"\n (click)=\"back()\"\n [disabled]=\"inProgress\"\n class=\"btn btn-default\"\n type=\"button\"\n title=\"{{ 'Back' | translate }}\"\n >\n {{ 'Back' | translate }}\n </button>\n <button (click)=\"cancel()\" class=\"btn btn-default\" title=\"{{ 'Cancel' | translate }}\">\n {{ 'Cancel' | translate }}\n </button>\n <button\n (click)=\"duplicateApp()\"\n [disabled]=\"inProgress\"\n class=\"btn btn-primary\"\n type=\"button\"\n title=\"{{ 'Duplicate' | translate }}\"\n >\n {{ 'Duplicate' | translate }}\n </button>\n</c8y-wizard-footer>\n" }]
103
- }], ctorParameters: function () { return [{ type: i1.BsModalRef }, { type: i2.EcosystemService }, { type: i3.ApplicationService }]; }, propDecorators: { stepper: [{
116
+ }], ctorParameters: function () { return [{ type: i1.BsModalRef }, { type: i2.EcosystemService }, { type: i3.ApplicationService }, { type: i4.GainsightService }]; }, propDecorators: { stepper: [{
104
117
  type: Input
105
118
  }], existingApps: [{
106
119
  type: Input
@@ -114,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImpor
114
127
  type: ViewChild,
115
128
  args: [ApplicationPropertiesFormComponent]
116
129
  }] } });
117
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVwbGljYXRlLWFwcGxpY2F0aW9uLXByb3BlcnRpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vZWNvc3lzdGVtL3NoYXJlZC9kdXBsaWNhdGUtYXBwbGljYXRpb24vZHVwbGljYXRlLWFwcGxpY2F0aW9uLXByb3BlcnRpZXMvZHVwbGljYXRlLWFwcGxpY2F0aW9uLXByb3BlcnRpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vZWNvc3lzdGVtL3NoYXJlZC9kdXBsaWNhdGUtYXBwbGljYXRpb24vZHVwbGljYXRlLWFwcGxpY2F0aW9uLXByb3BlcnRpZXMvZHVwbGljYXRlLWFwcGxpY2F0aW9uLXByb3BlcnRpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFnQixNQUFNLGFBQWEsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sdURBQXVELENBQUM7Ozs7Ozs7OztBQU0zRyxNQUFNLE9BQU8sdUNBQXVDO0lBY2xELFlBQ1UsVUFBc0IsRUFDdEIs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O1lBQ1gsT0FBTztTQUNSO0lBQ0gsQ0FBQzs7b0lBdEdVLHVDQUF1Qzt3SEFBdkMsdUNBQXVDLDBTQU12QyxrQ0FBa0MsZ0RDcEIvQywrNUNBaURBOzJGRG5DYSx1Q0FBdUM7a0JBSm5ELFNBQVM7K0JBQ0Usc0NBQXNDO2lLQUl2QyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0ksYUFBYTtzQkFBdEIsTUFBTTtnQkFFUCx5QkFBeUI7c0JBRHhCLFNBQVM7dUJBQUMsa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25TZXJ2aWNlLCBJQXBwbGljYXRpb24gfSBmcm9tICdAYzh5L2NsaWVudCc7XG5pbXBvcnQgeyBDOHlTdGVwcGVyIH0gZnJvbSAnQGM4eS9uZ3gtY29tcG9uZW50cyc7XG5pbXBvcnQgeyBCc01vZGFsUmVmIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxLZXlDaGFuZ2VkLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEFQUF9TVEFURSB9IGZyb20gJy4uLy4uL2Vjb3N5c3RlbS5jb25zdGFudHMnO1xuaW1wb3J0IHsgRWNvc3lzdGVtU2VydmljZSB9IGZyb20gJy4uLy4uL2Vjb3N5c3RlbS5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uUHJvcGVydGllc0Zvcm1Db21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvYXBwbGljYXRpb24tcHJvcGVydGllcy1mb3JtLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kdXBsaWNhdGUtYXBwbGljYXRpb24tcHJvcGVydGllcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kdXBsaWNhdGUtYXBwbGljYXRpb24tcHJvcGVydGllcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRHVwbGljYXRlQXBwbGljYXRpb25Qcm9wZXJ0aWVzQ29tcG9uZW50IHtcbiAgQElucHV0KCkgc3RlcHBlcjogQzh5U3RlcHBlcjtcbiAgQElucHV0KCkgZXhpc3RpbmdBcHBzOiBJQXBwbGljYXRpb25bXTtcbiAgQElucHV0KCkgc2VsZWN0ZWRBcHA6IEJlaGF2aW9yU3ViamVjdDxJQXBwbGljYXRpb24+O1xuICBASW5wdXQoKSBpc0ZpcnN0U3RlcDogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgZHVwbGljYXRlZEFwcCA9IG5ldyBFdmVudEVtaXR0ZXI8SUFwcGxpY2F0aW9uPigpO1xuICBAVmlld0NoaWxkKEFwcGxpY2F0aW9uUHJvcGVydGllc0Zvcm1Db21wb25lbnQpXG4gIGFwcGxpY2F0aW9uUHJvcGVydGllc0Zvcm06IEFwcGxpY2F0aW9uUHJvcGVydGllc0Zvcm1Db21wb25lbnQ7XG4gIG5ld0FwcENvbmZpZzogSUFwcGxpY2F0aW9uO1xuICBkaXNhYmxlRm9ybSA9IGZhbHNlO1xuICBpc1N1YnNjcmliZWRBcHAkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGluUHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYsXG4gICAgcHJpdmF0ZSBlY29zeXN0ZW1TZXJ2aWNlOiBFY29zeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwbGljYXRpb25TZXJ2aWNlOiBBcHBsaWNhdGlvblNlcnZpY2VcbiAgKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaXNTdWJzY3JpYmVkQXBwJCA9IHRoaXMuc2VsZWN0ZWRBcHAucGlwZShcbiAgICAgIGRpc3RpbmN0VW50aWxLZXlDaGFuZ2VkKCdpZCcpLFxuICAgICAgbWFwKGFwcCA9PiAoYXBwID8gdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLmdldEFwcFN0YXRlKGFwcCkgPT09IEFQUF9TVEFURS5TVUJTQ1JJQkVEIDogdHJ1ZSkpLFxuICAgICAgdGFwKGlzU3Vic2NyaWJlZCA9PiB7XG4gICAgICAgIHRoaXMuZGlzYWJsZUZvcm0gPSBpc1N1YnNjcmliZWQ7XG4gICAgICAgIHRoaXMuZ2V0QXBwQ29uZmlnKCk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5nZXRBcHBDb25maWcoKTtcbiAgfVxuXG4gIGFzeW5jIGR1cGxpY2F0ZUFwcCgpIHtcbiAgICBjb25zdCBmb3JtR3JvdXBWYWx1ZSA9IHRoaXMuYXBwbGljYXRpb25Qcm9wZXJ0aWVzRm9ybS5mb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKTtcbiAgICB0aGlzLmluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgIGxldCB7IGRhdGE6IGNsb25lZEFwcCB9ID0gYXdhaXQgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UuY2xvbmUodGhpcy5zZWxlY3RlZEFwcC52YWx1ZSk7XG4gICAgLy8gVE9ETzogcmVtb3ZlIG9uY2UgTVRNLTQ4NDc0IGhhcyBiZWVuIG1lcmdlZFxuICAgIGNsb25lZEFwcCA9IHRoaXMuZWNvc3lzdGVtU2VydmljZS5zZXRBdmFpbGFiaWxpdHlUb1ByaXZhdGVJZk5vdFNldEFscmVhZHkoY2xvbmVkQXBwKTtcblxuICAgIE9iamVjdC5hc3NpZ24oY2xvbmVkQXBwLCBmb3JtR3JvdXBWYWx1ZSk7XG4gICAgZGVsZXRlIGNsb25lZEFwcC50eXBlO1xuXG4gICAgYXdhaXQgdGhpcy51cGRhdGVBcHAoY2xvbmVkQXBwKTtcbiAgICB0aGlzLmluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgfVxuXG4gIGNhbmNlbCgpIHtcbiAgICB0aGlzLmJzTW9kYWxSZWYuaGlkZSgpO1xuICB9XG5cbiAgYmFjaygpIHtcbiAgICB0aGlzLnN0ZXBwZXIucHJldmlvdXMoKTtcbiAgfVxuXG4gIGdldEFwcENvbmZpZygpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlRm9ybSkge1xuICAgICAgY29uc3QgeyBuYW1lLCBrZXksIGNvbnRleHRQYXRoIH0gPSB0aGlzLnNlbGVjdGVkQXBwLnZhbHVlO1xuICAgICAgdGhpcy5uZXdBcHBDb25maWcgPSB7IG5hbWUsIGtleSwgY29udGV4dFBhdGggfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5uZXdBcHBDb25maWcgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2UuZ2V0VW5pcXVlQXBwQ29uZmlnKFxuICAgICAgICB0aGlzLnNlbGVjdGVkQXBwLnZhbHVlLFxuICAgICAgICB0aGlzLmV4aXN0aW5nQXBwc1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZUFwcChjbG9uZWRBcHBDb25maWc6IFBhcnRpYWw8SUFwcGxpY2F0aW9uPikge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGRhdGE6IGFwcCB9ID0gYXdhaXQgdGhpcy5lY29zeXN0ZW1TZXJ2aWNlLnVwZGF0ZUFwcChjbG9uZWRBcHBDb25maWcsIHRydWUpO1xuICAgICAgY29uc3QgbWFuaWZlc3QgPSBhd2FpdCB0aGlzLmdldEFwcE1hbmlmZXN0KGFwcCk7XG4gICAgICBpZiAobWFuaWZlc3QpIHtcbiAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVNYW5pZmVzdChhcHAsIG1hbmlmZXN0KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5kdXBsaWNhdGVkQXBwLmVtaXQoYXBwKTtcbiAgICAgIHRoaXMuc3RlcHBlci5uZXh0KCk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmluUHJvZ3Jlc3MgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZU1hbmlmZXN0KGFwcDogSUFwcGxpY2F0aW9uLCBtYW5pZmVzdDogYW55KSB7XG4gICAgY29uc3Qga2V5c1RvVXBkYXRlOiBBcnJheTxrZXlvZiBJQXBwbGljYXRpb24+ID0gWyduYW1lJywgJ2tleScsICdjb250ZXh0UGF0aCddO1xuICAgIGNvbnN0IHNvbWVLZXlEaWZmZXJzID0ga2V5c1RvVXBkYXRlLnNvbWUoa2V5ID0+IGFwcFtrZXldICE9PSBtYW5pZmVzdFtrZXldKTtcbiAgICBpZiAoc29tZUtleURpZmZlcnMpIHtcbiAgICAgIGtleXNUb1VwZGF0ZS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIG1hbmlmZXN0W2tleV0gPSBhcHBba2V5XTtcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2Uuc3RvcmVBcHBNYW5pZmVzdChhcHAsIG1hbmlmZXN0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdldEFwcE1hbmlmZXN0KGFwcDogSUFwcGxpY2F0aW9uKSB7XG4gICAgaWYgKCFhcHA/LmNvbnRleHRQYXRoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBjb25zdCBtYW5pZmVzdCA9IGF3YWl0IHRoaXMuYXBwbGljYXRpb25TZXJ2aWNlLmdldEFwcE1hbmlmZXN0KGFwcCk7XG4gICAgICByZXR1cm4gbWFuaWZlc3Q7XG4gICAgfSBjYXRjaCAoZXgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbn1cbiIsIjxwXG4gIGNsYXNzPVwicC0xNiB0ZXh0LWNlbnRlciB0ZXh0LW1lZGl1bSBzZXBhcmF0b3ItYm90dG9tIHN0aWNreS10b3AgYmctbGV2ZWwtMCBmaXQtd1wiXG4gICpuZ0lmPVwiIWluUHJvZ3Jlc3NcIlxuPlxuICB7eyAnUHJvdmlkZSBhcHBsaWNhdGlvbiBkZXRhaWxzJyB8IHRyYW5zbGF0ZSB9fVxuPC9wPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiIWluUHJvZ3Jlc3NcIj5cbiAgPGxhYmVsIGNsYXNzPVwiYzh5LXN3aXRjaFwiICpuZ0lmPVwiaXNTdWJzY3JpYmVkQXBwJCB8IGFzeW5jXCI+XG4gICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFsobmdNb2RlbCldPVwiZGlzYWJsZUZvcm1cIiAoY2hhbmdlKT1cImdldEFwcENvbmZpZygpXCIgLz5cbiAgICA8c3Bhbj48L3NwYW4+IHt7ICdPdmVycnVsZSBzdWJzY3JpYmVkIGFwcGxpY2F0aW9uJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2xhYmVsPlxuXG4gIDxjOHktYXBwbGljYXRpb24tcHJvcGVydGllcy1mb3JtXG4gICAgW2FwcGxpY2F0aW9uXT1cIm5ld0FwcENvbmZpZ1wiXG4gICAgY2xhc3M9XCJkLWJsb2NrIGZpdC13XCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUZvcm1cIlxuICA+PC9jOHktYXBwbGljYXRpb24tcHJvcGVydGllcy1mb3JtPlxuPC9uZy1jb250YWluZXI+XG48Yzh5LXByb2dyZXNzLWJhclxuICAqbmdJZj1cImluUHJvZ3Jlc3NcIlxuICBbbWVzc2FnZV09XCInRHVwbGljYXRpbmfigKYnIHwgdHJhbnNsYXRlXCJcbiAgY2xhc3M9XCJ0ZXh0LWNlbnRlciBkLWJsb2NrXCJcbj48L2M4eS1wcm9ncmVzcy1iYXI+XG5cbjxjOHktd2l6YXJkLWZvb3Rlcj5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwiIWlzRmlyc3RTdGVwXCJcbiAgICAoY2xpY2spPVwiYmFjaygpXCJcbiAgICBbZGlzYWJsZWRdPVwiaW5Qcm9ncmVzc1wiXG4gICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIHRpdGxlPVwie3sgJ0JhY2snIHwgdHJhbnNsYXRlIH19XCJcbiAgPlxuICAgIHt7ICdCYWNrJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwiY2FuY2VsKClcIiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiIHRpdGxlPVwie3sgJ0NhbmNlbCcgfCB0cmFuc2xhdGUgfX1cIj5cbiAgICB7eyAnQ2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgIChjbGljayk9XCJkdXBsaWNhdGVBcHAoKVwiXG4gICAgW2Rpc2FibGVkXT1cImluUHJvZ3Jlc3NcIlxuICAgIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICB0aXRsZT1cInt7ICdEdXBsaWNhdGUnIHwgdHJhbnNsYXRlIH19XCJcbiAgPlxuICAgIHt7ICdEdXBsaWNhdGUnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuPC9jOHktd2l6YXJkLWZvb3Rlcj5cbiJdfQ==
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHVwbGljYXRlLWFwcGxpY2F0aW9uLXByb3BlcnRpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vZWNvc3lzdGVtL3NoYXJlZC9kdXBsaWNhdGUtYXBwbGljYXRpb24vZHVwbGljYXRlLWFwcGxpY2F0aW9uLXByb3BlcnRpZXMvZHVwbGljYXRlLWFwcGxpY2F0aW9uLXByb3BlcnRpZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vZWNvc3lzdGVtL3NoYXJlZC9kdXBsaWNhdGUtYXBwbGljYXRpb24vZHVwbGljYXRlLWFwcGxpY2F0aW9uLXByb3BlcnRpZXMvZHVwbGljYXRlLWFwcGxpY2F0aW9uLXByb3BlcnRpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFnQixNQUFNLGFBQWEsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDM0csT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENB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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvblNlcnZpY2UsIElBcHBsaWNhdGlvbiB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEM4eVN0ZXBwZXIsIEdhaW5zaWdodFNlcnZpY2UgfSBmcm9tICdAYzh5L25neC1jb21wb25lbnRzJztcbmltcG9ydCB7IEJzTW9kYWxSZWYgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbEtleUNoYW5nZWQsIG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQVBQX1NUQVRFIH0gZnJvbSAnLi4vLi4vZWNvc3lzdGVtLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBFY29zeXN0ZW1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZWNvc3lzdGVtLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25Qcm9wZXJ0aWVzRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9hcHBsaWNhdGlvbi1wcm9wZXJ0aWVzLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IFBST0RVQ1RfRVhQRVJJRU5DRSB9IGZyb20gJy4uLy4uL2Vjb3N5c3RlbS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS1kdXBsaWNhdGUtYXBwbGljYXRpb24tcHJvcGVydGllcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9kdXBsaWNhdGUtYXBwbGljYXRpb24tcHJvcGVydGllcy5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgRHVwbGljYXRlQXBwbGljYXRpb25Qcm9wZXJ0aWVzQ29tcG9uZW50IHtcbiAgQ1VSUkVOVF9MT0NBVElPTiA9IGxvY2F0aW9uLmhyZWY7XG5cbiAgQElucHV0KCkgc3RlcHBlcjogQzh5U3RlcHBlcjtcbiAgQElucHV0KCkgZXhpc3RpbmdBcHBzOiBJQXBwbGljYXRpb25bXTtcbiAgQElucHV0KCkgc2VsZWN0ZWRBcHA6IEJlaGF2aW9yU3ViamVjdDxJQXBwbGljYXRpb24+O1xuICBASW5wdXQoKSBpc0ZpcnN0U3RlcDogYm9vbGVhbiA9IGZhbHNlO1xuICBAT3V0cHV0KCkgZHVwbGljYXRlZEFwcCA9IG5ldyBFdmVudEVtaXR0ZXI8SUFwcGxpY2F0aW9uPigpO1xuICBAVmlld0NoaWxkKEFwcGxpY2F0aW9uUHJvcGVydGllc0Zvcm1Db21wb25lbnQpXG4gIGFwcGxpY2F0aW9uUHJvcGVydGllc0Zvcm06IEFwcGxpY2F0aW9uUHJvcGVydGllc0Zvcm1Db21wb25lbnQ7XG4gIG5ld0FwcENvbmZpZzogSUFwcGxpY2F0aW9uO1xuICBkaXNhYmxlRm9ybSA9IGZhbHNlO1xuICBpc1N1YnNjcmliZWRBcHAkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIGluUHJvZ3Jlc3M6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGJzTW9kYWxSZWY6IEJzTW9kYWxSZWYsXG4gICAgcHJpdmF0ZSBlY29zeXN0ZW1TZXJ2aWNlOiBFY29zeXN0ZW1TZXJ2aWNlLFxuICAgIHByaXZhdGUgYXBwbGljYXRpb25TZXJ2aWNlOiBBcHBsaWNhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBnYWluc2lnaHRTZXJ2aWNlOiBHYWluc2lnaHRTZXJ2aWNlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmlzU3Vic2NyaWJlZEFwcCQgPSB0aGlzLnNlbGVjdGVkQXBwLnBpcGUoXG4gICAgICBkaXN0aW5jdFVudGlsS2V5Q2hhbmdlZCgnaWQnKSxcbiAgICAgIG1hcChhcHAgPT4gKGFwcCA/IHRoaXMuZWNvc3lzdGVtU2VydmljZS5nZXRBcHBTdGF0ZShhcHApID09PSBBUFBfU1RBVEUuU1VCU0NSSUJFRCA6IHRydWUpKSxcbiAgICAgIHRhcChpc1N1YnNjcmliZWQgPT4ge1xuICAgICAgICB0aGlzLmRpc2FibGVGb3JtID0gaXNTdWJzY3JpYmVkO1xuICAgICAgICB0aGlzLmdldEFwcENvbmZpZygpO1xuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMuZ2V0QXBwQ29uZmlnKCk7XG4gIH1cblxuICBhc3luYyBkdXBsaWNhdGVBcHAoKSB7XG4gICAgY29uc3QgZm9ybUdyb3VwVmFsdWUgPSB0aGlzLmFwcGxpY2F0aW9uUHJvcGVydGllc0Zvcm0uZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XG4gICAgdGhpcy5pblByb2dyZXNzID0gdHJ1ZTtcbiAgICBsZXQgeyBkYXRhOiBjbG9uZWRBcHAgfSA9IGF3YWl0IHRoaXMuYXBwbGljYXRpb25TZXJ2aWNlLmNsb25lKHRoaXMuc2VsZWN0ZWRBcHAudmFsdWUpO1xuICAgIC8vIFRPRE86IHJlbW92ZSBvbmNlIE1UTS00ODQ3NCBoYXMgYmVlbiBtZXJnZWRcbiAgICBjbG9uZWRBcHAgPSB0aGlzLmVjb3N5c3RlbVNlcnZpY2Uuc2V0QXZhaWxhYmlsaXR5VG9Qcml2YXRlSWZOb3RTZXRBbHJlYWR5KGNsb25lZEFwcCk7XG5cbiAgICBPYmplY3QuYXNzaWduKGNsb25lZEFwcCwgZm9ybUdyb3VwVmFsdWUpO1xuICAgIGRlbGV0ZSBjbG9uZWRBcHAudHlwZTtcblxuICAgIGF3YWl0IHRoaXMudXBkYXRlQXBwKGNsb25lZEFwcCk7XG4gICAgdGhpcy5pblByb2dyZXNzID0gZmFsc2U7XG5cbiAgICB0aGlzLmdhaW5zaWdodFNlcnZpY2UudHJpZ2dlckV2ZW50KFxuICAgICAgUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5FVkVOVFMuRFVQTElDQVRFX0FQUExJQ0FUSU9OLFxuICAgICAge1xuICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuQ09NUE9ORU5UUy5EVVBMSUNBVEVfQVBQTElDQVRJT05fUFJPUEVSVElFUyxcbiAgICAgICAgcmVzdWx0OiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLlJFU1VMVFMuRFVQTElDQVRFRCxcbiAgICAgICAgdXJsOiB0aGlzLkNVUlJFTlRfTE9DQVRJT05cbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgY2FuY2VsKCkge1xuICAgIHRoaXMuYnNNb2RhbFJlZi5oaWRlKCk7XG5cbiAgICB0aGlzLmdhaW5zaWdodFNlcnZpY2UudHJpZ2dlckV2ZW50KFxuICAgICAgUFJPRFVDVF9FWFBFUklFTkNFLkFQUExJQ0FUSU9OUy5FVkVOVFMuRFVQTElDQVRFX0FQUExJQ0FUSU9OLFxuICAgICAge1xuICAgICAgICBjb21wb25lbnQ6IFBST0RVQ1RfRVhQRVJJRU5DRS5BUFBMSUNBVElPTlMuQ09NUE9ORU5UUy5EVVBMSUNBVEVfQVBQTElDQVRJT05fUFJPUEVSVElFUyxcbiAgICAgICAgYWN0aW9uOiBQUk9EVUNUX0VYUEVSSUVOQ0UuQVBQTElDQVRJT05TLkFDVElPTlMuQ0FOQ0VMLFxuICAgICAgICB1cmw6IHRoaXMuQ1VSUkVOVF9MT0NBVElPTlxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBiYWNrKCkge1xuICAgIHRoaXMuc3RlcHBlci5wcmV2aW91cygpO1xuICB9XG5cbiAgZ2V0QXBwQ29uZmlnKCkge1xuICAgIGlmICh0aGlzLmRpc2FibGVGb3JtKSB7XG4gICAgICBjb25zdCB7IG5hbWUsIGtleSwgY29udGV4dFBhdGggfSA9IHRoaXMuc2VsZWN0ZWRBcHAudmFsdWU7XG4gICAgICB0aGlzLm5ld0FwcENvbmZpZyA9IHsgbmFtZSwga2V5LCBjb250ZXh0UGF0aCB9O1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5ld0FwcENvbmZpZyA9IHRoaXMuZWNvc3lzdGVtU2VydmljZS5nZXRVbmlxdWVBcHBDb25maWcoXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRBcHAudmFsdWUsXG4gICAgICAgIHRoaXMuZXhpc3RpbmdBcHBzXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlQXBwKGNsb25lZEFwcENvbmZpZzogUGFydGlhbDxJQXBwbGljYXRpb24+KSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgZGF0YTogYXBwIH0gPSBhd2FpdCB0aGlzLmVjb3N5c3RlbVNlcnZpY2UudXBkYXRlQXBwKGNsb25lZEFwcENvbmZpZywgdHJ1ZSk7XG4gICAgICBjb25zdCBtYW5pZmVzdCA9IGF3YWl0IHRoaXMuZ2V0QXBwTWFuaWZlc3QoYXBwKTtcbiAgICAgIGlmIChtYW5pZmVzdCkge1xuICAgICAgICBhd2FpdCB0aGlzLnVwZGF0ZU1hbmlmZXN0KGFwcCwgbWFuaWZlc3QpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmR1cGxpY2F0ZWRBcHAuZW1pdChhcHApO1xuICAgICAgdGhpcy5zdGVwcGVyLm5leHQoKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuaW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlTWFuaWZlc3QoYXBwOiBJQXBwbGljYXRpb24sIG1hbmlmZXN0OiBhbnkpIHtcbiAgICBjb25zdCBrZXlzVG9VcGRhdGU6IEFycmF5PGtleW9mIElBcHBsaWNhdGlvbj4gPSBbJ25hbWUnLCAna2V5JywgJ2NvbnRleHRQYXRoJ107XG4gICAgY29uc3Qgc29tZUtleURpZmZlcnMgPSBrZXlzVG9VcGRhdGUuc29tZShrZXkgPT4gYXBwW2tleV0gIT09IG1hbmlmZXN0W2tleV0pO1xuICAgIGlmIChzb21lS2V5RGlmZmVycykge1xuICAgICAga2V5c1RvVXBkYXRlLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgbWFuaWZlc3Rba2V5XSA9IGFwcFtrZXldO1xuICAgICAgfSk7XG4gICAgICBhd2FpdCB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS5zdG9yZUFwcE1hbmlmZXN0KGFwcCwgbWFuaWZlc3QpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0QXBwTWFuaWZlc3QoYXBwOiBJQXBwbGljYXRpb24pIHtcbiAgICBpZiAoIWFwcD8uY29udGV4dFBhdGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1hbmlmZXN0ID0gYXdhaXQgdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UuZ2V0QXBwTWFuaWZlc3QoYXBwKTtcbiAgICAgIHJldHVybiBtYW5pZmVzdDtcbiAgICB9IGNhdGNoIChleCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxufVxuIiwiPHBcbiAgY2xhc3M9XCJwLTE2IHRleHQtY2VudGVyIHRleHQtbWVkaXVtIHNlcGFyYXRvci1ib3R0b20gc3RpY2t5LXRvcCBiZy1sZXZlbC0wIGZpdC13XCJcbiAgKm5nSWY9XCIhaW5Qcm9ncmVzc1wiXG4+XG4gIHt7ICdQcm92aWRlIGFwcGxpY2F0aW9uIGRldGFpbHMnIHwgdHJhbnNsYXRlIH19XG48L3A+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCIhaW5Qcm9ncmVzc1wiPlxuICA8bGFiZWwgY2xhc3M9XCJjOHktc3dpdGNoXCIgKm5nSWY9XCJpc1N1YnNjcmliZWRBcHAkIHwgYXN5bmNcIj5cbiAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgWyhuZ01vZGVsKV09XCJkaXNhYmxlRm9ybVwiIChjaGFuZ2UpPVwiZ2V0QXBwQ29uZmlnKClcIiAvPlxuICAgIDxzcGFuPjwvc3Bhbj4ge3sgJ092ZXJydWxlIHN1YnNjcmliZWQgYXBwbGljYXRpb24nIHwgdHJhbnNsYXRlIH19XG4gIDwvbGFiZWw+XG5cbiAgPGM4eS1hcHBsaWNhdGlvbi1wcm9wZXJ0aWVzLWZvcm1cbiAgICBbYXBwbGljYXRpb25dPVwibmV3QXBwQ29uZmlnXCJcbiAgICBjbGFzcz1cImQtYmxvY2sgZml0LXdcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlRm9ybVwiXG4gID48L2M4eS1hcHBsaWNhdGlvbi1wcm9wZXJ0aWVzLWZvcm0+XG48L25nLWNvbnRhaW5lcj5cbjxjOHktcHJvZ3Jlc3MtYmFyXG4gICpuZ0lmPVwiaW5Qcm9ncmVzc1wiXG4gIFttZXNzYWdlXT1cIidEdXBsaWNhdGluZ+KApicgfCB0cmFuc2xhdGVcIlxuICBjbGFzcz1cInRleHQtY2VudGVyIGQtYmxvY2tcIlxuPjwvYzh5LXByb2dyZXNzLWJhcj5cblxuPGM4eS13aXphcmQtZm9vdGVyPlxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCIhaXNGaXJzdFN0ZXBcIlxuICAgIChjbGljayk9XCJiYWNrKClcIlxuICAgIFtkaXNhYmxlZF09XCJpblByb2dyZXNzXCJcbiAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdFwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgdGl0bGU9XCJ7eyAnQmFjaycgfCB0cmFuc2xhdGUgfX1cIlxuICA+XG4gICAge3sgJ0JhY2snIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uIChjbGljayk9XCJjYW5jZWwoKVwiIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCIgdGl0bGU9XCJ7eyAnQ2FuY2VsJyB8IHRyYW5zbGF0ZSB9fVwiPlxuICAgIHt7ICdDYW5jZWwnIHwgdHJhbnNsYXRlIH19XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uXG4gICAgKGNsaWNrKT1cImR1cGxpY2F0ZUFwcCgpXCJcbiAgICBbZGlzYWJsZWRdPVwiaW5Qcm9ncmVzc1wiXG4gICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIHRpdGxlPVwie3sgJ0R1cGxpY2F0ZScgfCB0cmFuc2xhdGUgfX1cIlxuICA+XG4gICAge3sgJ0R1cGxpY2F0ZScgfCB0cmFuc2xhdGUgfX1cbiAgPC9idXR0b24+XG48L2M4eS13aXphcmQtZm9vdGVyPlxuIl19
@@ -14,4 +14,53 @@ export var ERROR_TYPE;
14
14
  ERROR_TYPE["INVALID_APPLICATION"] = "INVALID_APPLICATION";
15
15
  ERROR_TYPE["MICROSERVICE_NAME_TOO_LONG"] = "MICROSERVICE_NAME_TOO_LONG";
16
16
  })(ERROR_TYPE || (ERROR_TYPE = {}));
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNvc3lzdGVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL3NoYXJlZC9lY29zeXN0ZW0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0Esb0JBQW9CO0FBQ3BCLE1BQU0sQ0FBTixJQUFZLE9BR1g7QUFIRCxXQUFZLE9BQU87SUFDakIsbURBQXdDLENBQUE7SUFDeEMscURBQTBDLENBQUE7QUFDNUMsQ0FBQyxFQUhXLE9BQU8sS0FBUCxPQUFPLFFBR2xCO0FBRUQsTUFBTSxDQUFOLElBQVksVUFRWDtBQVJELFdBQVksVUFBVTtJQUNwQixpREFBbUMsQ0FBQTtJQUNuQyx1REFBeUMsQ0FBQTtJQUN6QywrQ0FBaUMsQ0FBQTtJQUNqQyxtREFBcUMsQ0FBQTtJQUNyQyxpREFBbUMsQ0FBQTtJQUNuQyx5REFBMkMsQ0FBQTtJQUMzQyx1RUFBeUQsQ0FBQTtBQUMzRCxDQUFDLEVBUlcsVUFBVSxLQUFWLFVBQVUsUUFRckIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uU3RhdGUge1xuICBsYWJlbDogc3RyaW5nO1xuICBjbGFzczogc3RyaW5nO1xufVxuXG4vKiogV2l6YXJkIHR5cGVzICAqL1xuZXhwb3J0IGVudW0gV2l6YXJkcyB7XG4gIEFQUExJQ0FUSU9OX1VQTE9BRCA9ICdhcHBsaWNhdGlvblVwbG9hZCcsXG4gIE1JQ1JPU0VSVklDRV9VUExPQUQgPSAnbWljcm9zZXJ2aWNlVXBsb2FkJ1xufVxuXG5leHBvcnQgZW51bSBFUlJPUl9UWVBFIHtcbiAgVFlQRV9WQUxJREFUSU9OID0gJ1RZUEVfVkFMSURBVElPTicsXG4gIEFMUkVBRFlfU1VCU0NSSUJFRCA9ICdBTFJFQURZX1NVQlNDUklCRUQnLFxuICBJTlRFUk5BTF9FUlJPUiA9ICdJTlRFUk5BTF9FUlJPUicsXG4gIE5PX01BTklGRVNUX0ZJTEUgPSAnTk9fTUFOSUZFU1RfRklMRScsXG4gIElOVkFMSURfUEFDS0FHRSA9ICdJTlZBTElEX1BBQ0tBR0UnLFxuICBJTlZBTElEX0FQUExJQ0FUSU9OID0gJ0lOVkFMSURfQVBQTElDQVRJT04nLFxuICBNSUNST1NFUlZJQ0VfTkFNRV9UT09fTE9ORyA9ICdNSUNST1NFUlZJQ0VfTkFNRV9UT09fTE9ORydcbn1cbiJdfQ==
17
+ export const PRODUCT_EXPERIENCE = {
18
+ APPLICATIONS: {
19
+ EVENTS: {
20
+ AVAILABILITY: 'availability',
21
+ APPLICATION_CARD: 'applicationCard',
22
+ APPLICATION_PROPERTIES: 'applicationProperties',
23
+ DEPLOY_APPLICATION: 'deployApplication',
24
+ DUPLICATE_APPLICATION: 'duplicateApplication',
25
+ INSTALLED_PLUGINS: 'installedPlugins',
26
+ PACKAGE_PLUGINS: 'packagePlugins',
27
+ PACKAGE_VERSIONS: 'packageVersions'
28
+ },
29
+ COMPONENTS: {
30
+ APPLICATION_CARD: 'application-card',
31
+ APPLICATION_PLUGINS: 'application-plugins',
32
+ APPLICATION_PROPERTIES: 'application-properties',
33
+ DEPLOY_APPLICATION: 'deploy-application',
34
+ DUPLICATE_APPLICATION_PROPERTIES: 'duplicate-application-properties',
35
+ PLUGIN_LIST: 'plugin-list',
36
+ PACKAGE_VERSIONS: 'package-versions-list',
37
+ UPDATE_PLUGIN_OF_APP: 'update-plugin-of-app'
38
+ },
39
+ ACTIONS: {
40
+ AVAILABILITY_CHANGE: 'availabilityChange',
41
+ CANCEL: 'cancel',
42
+ CLONE: 'clone',
43
+ CHANGE_PLUGIN_VERSION: 'changePluginVersion',
44
+ DELETE: 'delete',
45
+ DOWNLOAD: 'download',
46
+ DEPLOY_APPLICATION: 'deployApplication',
47
+ EDIT: 'edit',
48
+ INSTALL_PLUGIN: 'installPlugin',
49
+ INSTALL_PLUGINS: 'installPlugins',
50
+ SELECT_VERSION: 'selectVersion',
51
+ SET_AS_LATEST: 'setAsLatest',
52
+ UPDATE_AVAILABLE: 'updateAvailable',
53
+ UPLOAD: 'upload'
54
+ },
55
+ RESULTS: {
56
+ DEPLOYED: 'deployed',
57
+ DUPLICATED: 'duplicated',
58
+ PLUGIN_INSTALLED: 'pluginInstalled',
59
+ PLUGIN_REMOVED: 'pluginRemoved',
60
+ PLUGIN_VERSION_CHANGED: 'pluginVersionChanged',
61
+ SERVER_FAILURE: 'serverFailure',
62
+ SUCCESS: 'success'
63
+ }
64
+ }
65
+ };
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNvc3lzdGVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vZWNvc3lzdGVtL3NoYXJlZC9lY29zeXN0ZW0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBS0Esb0JBQW9CO0FBQ3BCLE1BQU0sQ0FBTixJQUFZLE9BR1g7QUFIRCxXQUFZLE9BQU87SUFDakIsbURBQXdDLENBQUE7SUFDeEMscURBQTBDLENBQUE7QUFDNUMsQ0FBQyxFQUhXLE9BQU8sS0FBUCxPQUFPLFFBR2xCO0FBRUQsTUFBTSxDQUFOLElBQVksVUFRWDtBQVJELFdBQVksVUFBVTtJQUNwQixpREFBbUMsQ0FBQTtJQUNuQyx1REFBeUMsQ0FBQTtJQUN6QywrQ0FBaUMsQ0FBQTtJQUNqQyxtREFBcUMsQ0FBQTtJQUNyQyxpREFBbUMsQ0FBQTtJQUNuQyx5REFBMkMsQ0FBQTtJQUMzQyx1RUFBeUQsQ0FBQTtBQUMzRCxDQUFDLEVBUlcsVUFBVSxLQUFWLFVBQVUsUUFRckI7QUFFRCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUNoQyxZQUFZLEVBQUU7UUFDWixNQUFNLEVBQUU7WUFDTixZQUFZLEVBQUUsY0FBYztZQUM1QixnQkFBZ0IsRUFBRSxpQkFBaUI7WUFDbkMsc0JBQXNCLEVBQUUsdUJBQXVCO1lBQy9DLGtCQUFrQixFQUFFLG1CQUFtQjtZQUN2QyxxQkFBcUIsRUFBRSxzQkFBc0I7WUFDN0MsaUJBQWlCLEVBQUUsa0JBQWtCO1lBQ3JDLGVBQWUsRUFBRSxnQkFBZ0I7WUFDakMsZ0JBQWdCLEVBQUUsaUJBQWlCO1NBQ3BDO1FBQ0QsVUFBVSxFQUFFO1lBQ1YsZ0JBQWdCLEVBQUUsa0JBQWtCO1lBQ3BDLG1CQUFtQixFQUFFLHFCQUFxQjtZQUMxQyxzQkFBc0IsRUFBRSx3QkFBd0I7WUFDaEQsa0JBQWtCLEVBQUUsb0JBQW9CO1lBQ3hDLGdDQUFnQyxFQUFFLGtDQUFrQztZQUNwRSxXQUFXLEVBQUUsYUFBYTtZQUMxQixnQkFBZ0IsRUFBRSx1QkFBdUI7WUFDekMsb0JBQW9CLEVBQUUsc0JBQXNCO1NBQzdDO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsbUJBQW1CLEVBQUUsb0JBQW9CO1lBQ3pDLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLEtBQUssRUFBRSxPQUFPO1lBQ2QscUJBQXFCLEVBQUUscUJBQXFCO1lBQzVDLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLGtCQUFrQixFQUFFLG1CQUFtQjtZQUN2QyxJQUFJLEVBQUUsTUFBTTtZQUNaLGNBQWMsRUFBRSxlQUFlO1lBQy9CLGVBQWUsRUFBRSxnQkFBZ0I7WUFDakMsY0FBYyxFQUFFLGVBQWU7WUFDL0IsYUFBYSxFQUFFLGFBQWE7WUFDNUIsZ0JBQWdCLEVBQUUsaUJBQWlCO1lBQ25DLE1BQU0sRUFBRSxRQUFRO1NBQ2pCO1FBQ0QsT0FBTyxFQUFFO1lBQ1AsUUFBUSxFQUFFLFVBQVU7WUFDcEIsVUFBVSxFQUFFLFlBQVk7WUFDeEIsZ0JBQWdCLEVBQUUsaUJBQWlCO1lBQ25DLGNBQWMsRUFBRSxlQUFlO1lBQy9CLHNCQUFzQixFQUFFLHNCQUFzQjtZQUM5QyxjQUFjLEVBQUUsZUFBZTtZQUMvQixPQUFPLEVBQUUsU0FBUztTQUNuQjtLQUNGO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25TdGF0ZSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIGNsYXNzOiBzdHJpbmc7XG59XG5cbi8qKiBXaXphcmQgdHlwZXMgICovXG5leHBvcnQgZW51bSBXaXphcmRzIHtcbiAgQVBQTElDQVRJT05fVVBMT0FEID0gJ2FwcGxpY2F0aW9uVXBsb2FkJyxcbiAgTUlDUk9TRVJWSUNFX1VQTE9BRCA9ICdtaWNyb3NlcnZpY2VVcGxvYWQnXG59XG5cbmV4cG9ydCBlbnVtIEVSUk9SX1RZUEUge1xuICBUWVBFX1ZBTElEQVRJT04gPSAnVFlQRV9WQUxJREFUSU9OJyxcbiAgQUxSRUFEWV9TVUJTQ1JJQkVEID0gJ0FMUkVBRFlfU1VCU0NSSUJFRCcsXG4gIElOVEVSTkFMX0VSUk9SID0gJ0lOVEVSTkFMX0VSUk9SJyxcbiAgTk9fTUFOSUZFU1RfRklMRSA9ICdOT19NQU5JRkVTVF9GSUxFJyxcbiAgSU5WQUxJRF9QQUNLQUdFID0gJ0lOVkFMSURfUEFDS0FHRScsXG4gIElOVkFMSURfQVBQTElDQVRJT04gPSAnSU5WQUxJRF9BUFBMSUNBVElPTicsXG4gIE1JQ1JPU0VSVklDRV9OQU1FX1RPT19MT05HID0gJ01JQ1JPU0VSVklDRV9OQU1FX1RPT19MT05HJ1xufVxuXG5leHBvcnQgY29uc3QgUFJPRFVDVF9FWFBFUklFTkNFID0ge1xuICBBUFBMSUNBVElPTlM6IHtcbiAgICBFVkVOVFM6IHtcbiAgICAgIEFWQUlMQUJJTElUWTogJ2F2YWlsYWJpbGl0eScsXG4gICAgICBBUFBMSUNBVElPTl9DQVJEOiAnYXBwbGljYXRpb25DYXJkJyxcbiAgICAgIEFQUExJQ0FUSU9OX1BST1BFUlRJRVM6ICdhcHBsaWNhdGlvblByb3BlcnRpZXMnLFxuICAgICAgREVQTE9ZX0FQUExJQ0FUSU9OOiAnZGVwbG95QXBwbGljYXRpb24nLFxuICAgICAgRFVQTElDQVRFX0FQUExJQ0FUSU9OOiAnZHVwbGljYXRlQXBwbGljYXRpb24nLFxuICAgICAgSU5TVEFMTEVEX1BMVUdJTlM6ICdpbnN0YWxsZWRQbHVnaW5zJyxcbiAgICAgIFBBQ0tBR0VfUExVR0lOUzogJ3BhY2thZ2VQbHVnaW5zJyxcbiAgICAgIFBBQ0tBR0VfVkVSU0lPTlM6ICdwYWNrYWdlVmVyc2lvbnMnXG4gICAgfSxcbiAgICBDT01QT05FTlRTOiB7XG4gICAgICBBUFBMSUNBVElPTl9DQVJEOiAnYXBwbGljYXRpb24tY2FyZCcsXG4gICAgICBBUFBMSUNBVElPTl9QTFVHSU5TOiAnYXBwbGljYXRpb24tcGx1Z2lucycsXG4gICAgICBBUFBMSUNBVElPTl9QUk9QRVJUSUVTOiAnYXBwbGljYXRpb24tcHJvcGVydGllcycsXG4gICAgICBERVBMT1lfQVBQTElDQVRJT046ICdkZXBsb3ktYXBwbGljYXRpb24nLFxuICAgICAgRFVQTElDQVRFX0FQUExJQ0FUSU9OX1BST1BFUlRJRVM6ICdkdXBsaWNhdGUtYXBwbGljYXRpb24tcHJvcGVydGllcycsXG4gICAgICBQTFVHSU5fTElTVDogJ3BsdWdpbi1saXN0JyxcbiAgICAgIFBBQ0tBR0VfVkVSU0lPTlM6ICdwYWNrYWdlLXZlcnNpb25zLWxpc3QnLFxuICAgICAgVVBEQVRFX1BMVUdJTl9PRl9BUFA6ICd1cGRhdGUtcGx1Z2luLW9mLWFwcCdcbiAgICB9LFxuICAgIEFDVElPTlM6IHtcbiAgICAgIEFWQUlMQUJJTElUWV9DSEFOR0U6ICdhdmFpbGFiaWxpdHlDaGFuZ2UnLFxuICAgICAgQ0FOQ0VMOiAnY2FuY2VsJyxcbiAgICAgIENMT05FOiAnY2xvbmUnLFxuICAgICAgQ0hBTkdFX1BMVUdJTl9WRVJTSU9OOiAnY2hhbmdlUGx1Z2luVmVyc2lvbicsXG4gICAgICBERUxFVEU6ICdkZWxldGUnLFxuICAgICAgRE9XTkxPQUQ6ICdkb3dubG9hZCcsXG4gICAgICBERVBMT1lfQVBQTElDQVRJT046ICdkZXBsb3lBcHBsaWNhdGlvbicsXG4gICAgICBFRElUOiAnZWRpdCcsXG4gICAgICBJTlNUQUxMX1BMVUdJTjogJ2luc3RhbGxQbHVnaW4nLFxuICAgICAgSU5TVEFMTF9QTFVHSU5TOiAnaW5zdGFsbFBsdWdpbnMnLFxuICAgICAgU0VMRUNUX1ZFUlNJT046ICdzZWxlY3RWZXJzaW9uJyxcbiAgICAgIFNFVF9BU19MQVRFU1Q6ICdzZXRBc0xhdGVzdCcsXG4gICAgICBVUERBVEVfQVZBSUxBQkxFOiAndXBkYXRlQXZhaWxhYmxlJyxcbiAgICAgIFVQTE9BRDogJ3VwbG9hZCdcbiAgICB9LFxuICAgIFJFU1VMVFM6IHtcbiAgICAgIERFUExPWUVEOiAnZGVwbG95ZWQnLFxuICAgICAgRFVQTElDQVRFRDogJ2R1cGxpY2F0ZWQnLFxuICAgICAgUExVR0lOX0lOU1RBTExFRDogJ3BsdWdpbkluc3RhbGxlZCcsXG4gICAgICBQTFVHSU5fUkVNT1ZFRDogJ3BsdWdpblJlbW92ZWQnLFxuICAgICAgUExVR0lOX1ZFUlNJT05fQ0hBTkdFRDogJ3BsdWdpblZlcnNpb25DaGFuZ2VkJyxcbiAgICAgIFNFUlZFUl9GQUlMVVJFOiAnc2VydmVyRmFpbHVyZScsXG4gICAgICBTVUNDRVNTOiAnc3VjY2VzcydcbiAgICB9XG4gIH1cbn07XG4iXX0=