@lowcodeunit/applications-flow-common 1.36.20-krakyn-app → 1.36.23-integration

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.
@@ -6,7 +6,8 @@ import * as i3 from "@angular/material/icon";
6
6
  import * as i4 from "@angular/material/button";
7
7
  import * as i5 from "@angular/flex-layout/flex";
8
8
  import * as i6 from "@angular/common";
9
- import * as i7 from "skeleton-elements/angular";
9
+ import * as i7 from "@angular/material/tooltip";
10
+ import * as i8 from "skeleton-elements/angular";
10
11
  export class SlottedCardComponent {
11
12
  constructor(eacSvc) {
12
13
  this.eacSvc = eacSvc;
@@ -25,10 +26,10 @@ export class SlottedCardComponent {
25
26
  }
26
27
  }
27
28
  SlottedCardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SlottedCardComponent, deps: [{ token: i1.EaCService }], target: i0.ɵɵFactoryTarget.Component });
28
- SlottedCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: SlottedCardComponent, selector: "lcu-slotted-card", inputs: { ActionText: ["action-text", "ActionText"], ActionPath: ["action-path", "ActionPath"], Icon: ["icon", "Icon"], MainSlotDescription: ["main-slot-description", "MainSlotDescription"], MainIcon: ["main-icon", "MainIcon"], ShowMainIcon: ["show-main-icon", "ShowMainIcon"], CardTitle: ["card-title", "CardTitle"], SecondarySlotDescription: ["secondary-slot-description", "SecondarySlotDescription"] }, outputs: { MainActionClicked: "main-action-clicked" }, ngImport: i0, template: "<mat-card class=\"col-info-card\">\n <mat-card-header\n class=\"slotted-card-header\"\n fxLayoutAlign=\"space-between center\"\n >\n <div mat-card-avatar fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"header-icon\">{{ Icon }}</mat-icon>\n <div class=\"card-title\">{{ CardTitle }}</div>\n </div>\n\n <mat-icon\n *ngIf=\"!ActionPath && !State?.Loading && ShowMainIcon\"\n class=\"header-icon pointer\"\n (click)=\"MainActionClickEvent()\"\n >\n {{ MainIcon }}\n </mat-icon>\n\n <mat-icon\n *ngIf=\"State?.Loading\"\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"header-icon\"\n >\n add\n </mat-icon>\n </mat-card-header>\n\n <!-- SKELETON CONTENT -->\n\n <ng-container *ngIf=\"State?.Loading\">\n <mat-card-content>\n <div class=\"slot-main-container\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"header-description\">\n Descrption text\n </div>\n\n <div class=\"slot-main\">\n <ng-content skeleton-block [effect]=\"SkeletonEffect\"></ng-content>\n </div>\n </div>\n\n <div\n class=\"slot-secondary\"\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n >\n <div class=\"slot-header-container\">\n <div class=\"slot-header\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\n Name of the content\n </div>\n </div>\n\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\n Description\n </div>\n </div>\n\n <div class=\"slot-actions-container\" fxLayout=\"row\">\n <mat-icon\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >\n edit\n </mat-icon>\n </div>\n </div>\n\n <div *ngIf=\"SecondarySlotDescription\" class=\"slot-secondary-container\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"header-description\">\n {{ SecondarySlotDescription }}\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\n {{ ActionText }}\n </div>\n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON CONTENT -->\n\n <!-- ACTUAL CONTENT -->\n\n <ng-container *ngIf=\"!State?.Loading\">\n <mat-card-content>\n <div class=\"slot-main-container\">\n <div class=\"header-description\">{{ MainSlotDescription }}</div>\n\n <div class=\"slot-main\">\n <ng-content></ng-content>\n </div>\n </div>\n\n <div *ngIf=\"SecondarySlotDescription\" class=\"slot-secondary-container\">\n <div class=\"header-description\">{{ SecondarySlotDescription }}</div>\n\n <div class=\"slot-secondary\">\n <ng-content select=\"[secondary]\"></ng-content>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions *ngIf=\"ActionText\" fxLayoutAlign=\"center\">\n <a\n mat-button\n *ngIf=\"ActionPath\"\n class=\"slotted-card-action-btn\"\n [href]=\"ActionPath\"\n color=\"primary\"\n >{{ ActionText }}\n </a>\n\n <a\n mat-button\n *ngIf=\"!ActionPath\"\n class=\"slotted-card-action-btn\"\n (click)=\"MainActionClickEvent()\"\n color=\"primary\"\n >\n {{ ActionText }}\n </a>\n </mat-card-actions>\n </ng-container>\n</mat-card>\n", styles: [".col-info-card{margin:20px;padding:0}.slotted-card-header{padding:5px}.header-icon{height:30px;width:30px;font-size:30px}.card-title{font-size:22px;margin-bottom:0!important}.pointer{cursor:pointer}.header-description{background-color:#b9dddd;padding:10px}mat-card-actions{margin-bottom:0!important;margin-left:-1px!important;margin-right:0!important}.slotted-card-action-btn{width:100%}.skeleton-item{margin:10px}.mat-card-avatar{width:75%!important}\n"], components: [{ type: i2.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i2.MatCardHeader, selector: "mat-card-header" }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }], directives: [{ type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i2.MatCardAvatar, selector: "[mat-card-avatar], [matCardAvatar]" }, { type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.SkeletonTextDirective, selector: "[skeleton-text]", inputs: ["effect"] }, { type: i2.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i2.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }] });
29
+ SlottedCardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: SlottedCardComponent, selector: "lcu-slotted-card", inputs: { ActionText: ["action-text", "ActionText"], ActionPath: ["action-path", "ActionPath"], Icon: ["icon", "Icon"], MainSlotDescription: ["main-slot-description", "MainSlotDescription"], MainIcon: ["main-icon", "MainIcon"], ShowMainIcon: ["show-main-icon", "ShowMainIcon"], CardTitle: ["card-title", "CardTitle"], SecondarySlotDescription: ["secondary-slot-description", "SecondarySlotDescription"] }, outputs: { MainActionClicked: "main-action-clicked" }, ngImport: i0, template: "<mat-card class=\"col-info-card\">\n <mat-card-header\n class=\"slotted-card-header\"\n fxLayoutAlign=\"space-between center\"\n >\n <div mat-card-avatar fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"header-icon\">{{ Icon }}</mat-icon>\n <div class=\"card-title\">{{ CardTitle }}</div>\n </div>\n\n <mat-icon\n *ngIf=\"!ActionPath && !State?.Loading && ShowMainIcon\"\n class=\"header-icon pointer\"\n (click)=\"MainActionClickEvent()\"\n matTooltip=\"Edit {{CardTitle}}\"\n >\n {{ MainIcon }}\n </mat-icon>\n\n <mat-icon\n *ngIf=\"State?.Loading\"\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"header-icon\"\n >\n add\n </mat-icon>\n </mat-card-header>\n\n <!-- SKELETON CONTENT -->\n\n <ng-container *ngIf=\"State?.Loading\">\n <mat-card-content>\n <div class=\"slot-main-container\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"header-description\">\n Descrption text\n </div>\n\n <div class=\"slot-main\">\n <ng-content skeleton-block [effect]=\"SkeletonEffect\"></ng-content>\n </div>\n </div>\n\n <div\n class=\"slot-secondary\"\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n >\n <div class=\"slot-header-container\">\n <div class=\"slot-header\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\n Name of the content\n </div>\n </div>\n\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\n Description\n </div>\n </div>\n\n <div class=\"slot-actions-container\" fxLayout=\"row\">\n <mat-icon\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >\n edit\n </mat-icon>\n </div>\n </div>\n\n <div *ngIf=\"SecondarySlotDescription\" class=\"slot-secondary-container\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"header-description\">\n {{ SecondarySlotDescription }}\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\n {{ ActionText }}\n </div>\n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON CONTENT -->\n\n <!-- ACTUAL CONTENT -->\n\n <ng-container *ngIf=\"!State?.Loading\">\n <mat-card-content>\n <div class=\"slot-main-container\">\n <div class=\"header-description\">{{ MainSlotDescription }}</div>\n\n <div class=\"slot-main\">\n <ng-content></ng-content>\n </div>\n </div>\n\n <div *ngIf=\"SecondarySlotDescription\" class=\"slot-secondary-container\">\n <div class=\"header-description\">{{ SecondarySlotDescription }}</div>\n\n <div class=\"slot-secondary\">\n <ng-content select=\"[secondary]\"></ng-content>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions *ngIf=\"ActionText\" fxLayoutAlign=\"center\">\n <a\n mat-button\n *ngIf=\"ActionPath\"\n class=\"slotted-card-action-btn\"\n [href]=\"ActionPath\"\n color=\"primary\"\n >{{ ActionText }}\n </a>\n\n <a\n mat-button\n *ngIf=\"!ActionPath\"\n class=\"slotted-card-action-btn\"\n (click)=\"MainActionClickEvent()\"\n color=\"primary\"\n >\n {{ ActionText }}\n </a>\n </mat-card-actions>\n </ng-container>\n</mat-card>\n", styles: [".col-info-card{margin:20px;padding:0}.slotted-card-header{padding:5px}.header-icon{height:30px;width:30px;font-size:30px}.card-title{font-size:22px;margin-bottom:0!important}.pointer{cursor:pointer}.header-description{background-color:#b9dddd;padding:10px}mat-card-actions{margin-bottom:0!important;margin-left:-1px!important;margin-right:0!important}.slotted-card-action-btn{width:100%}.skeleton-item{margin:10px}.mat-card-avatar{width:75%!important}\n"], components: [{ type: i2.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i2.MatCardHeader, selector: "mat-card-header" }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }], directives: [{ type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i2.MatCardAvatar, selector: "[mat-card-avatar], [matCardAvatar]" }, { type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i8.SkeletonTextDirective, selector: "[skeleton-text]", inputs: ["effect"] }, { type: i2.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i2.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }] });
29
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SlottedCardComponent, decorators: [{
30
31
  type: Component,
31
- args: [{ selector: 'lcu-slotted-card', template: "<mat-card class=\"col-info-card\">\n <mat-card-header\n class=\"slotted-card-header\"\n fxLayoutAlign=\"space-between center\"\n >\n <div mat-card-avatar fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"header-icon\">{{ Icon }}</mat-icon>\n <div class=\"card-title\">{{ CardTitle }}</div>\n </div>\n\n <mat-icon\n *ngIf=\"!ActionPath && !State?.Loading && ShowMainIcon\"\n class=\"header-icon pointer\"\n (click)=\"MainActionClickEvent()\"\n >\n {{ MainIcon }}\n </mat-icon>\n\n <mat-icon\n *ngIf=\"State?.Loading\"\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"header-icon\"\n >\n add\n </mat-icon>\n </mat-card-header>\n\n <!-- SKELETON CONTENT -->\n\n <ng-container *ngIf=\"State?.Loading\">\n <mat-card-content>\n <div class=\"slot-main-container\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"header-description\">\n Descrption text\n </div>\n\n <div class=\"slot-main\">\n <ng-content skeleton-block [effect]=\"SkeletonEffect\"></ng-content>\n </div>\n </div>\n\n <div\n class=\"slot-secondary\"\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n >\n <div class=\"slot-header-container\">\n <div class=\"slot-header\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\n Name of the content\n </div>\n </div>\n\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\n Description\n </div>\n </div>\n\n <div class=\"slot-actions-container\" fxLayout=\"row\">\n <mat-icon\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >\n edit\n </mat-icon>\n </div>\n </div>\n\n <div *ngIf=\"SecondarySlotDescription\" class=\"slot-secondary-container\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"header-description\">\n {{ SecondarySlotDescription }}\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\n {{ ActionText }}\n </div>\n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON CONTENT -->\n\n <!-- ACTUAL CONTENT -->\n\n <ng-container *ngIf=\"!State?.Loading\">\n <mat-card-content>\n <div class=\"slot-main-container\">\n <div class=\"header-description\">{{ MainSlotDescription }}</div>\n\n <div class=\"slot-main\">\n <ng-content></ng-content>\n </div>\n </div>\n\n <div *ngIf=\"SecondarySlotDescription\" class=\"slot-secondary-container\">\n <div class=\"header-description\">{{ SecondarySlotDescription }}</div>\n\n <div class=\"slot-secondary\">\n <ng-content select=\"[secondary]\"></ng-content>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions *ngIf=\"ActionText\" fxLayoutAlign=\"center\">\n <a\n mat-button\n *ngIf=\"ActionPath\"\n class=\"slotted-card-action-btn\"\n [href]=\"ActionPath\"\n color=\"primary\"\n >{{ ActionText }}\n </a>\n\n <a\n mat-button\n *ngIf=\"!ActionPath\"\n class=\"slotted-card-action-btn\"\n (click)=\"MainActionClickEvent()\"\n color=\"primary\"\n >\n {{ ActionText }}\n </a>\n </mat-card-actions>\n </ng-container>\n</mat-card>\n", styles: [".col-info-card{margin:20px;padding:0}.slotted-card-header{padding:5px}.header-icon{height:30px;width:30px;font-size:30px}.card-title{font-size:22px;margin-bottom:0!important}.pointer{cursor:pointer}.header-description{background-color:#b9dddd;padding:10px}mat-card-actions{margin-bottom:0!important;margin-left:-1px!important;margin-right:0!important}.slotted-card-action-btn{width:100%}.skeleton-item{margin:10px}.mat-card-avatar{width:75%!important}\n"] }]
32
+ args: [{ selector: 'lcu-slotted-card', template: "<mat-card class=\"col-info-card\">\n <mat-card-header\n class=\"slotted-card-header\"\n fxLayoutAlign=\"space-between center\"\n >\n <div mat-card-avatar fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon class=\"header-icon\">{{ Icon }}</mat-icon>\n <div class=\"card-title\">{{ CardTitle }}</div>\n </div>\n\n <mat-icon\n *ngIf=\"!ActionPath && !State?.Loading && ShowMainIcon\"\n class=\"header-icon pointer\"\n (click)=\"MainActionClickEvent()\"\n matTooltip=\"Edit {{CardTitle}}\"\n >\n {{ MainIcon }}\n </mat-icon>\n\n <mat-icon\n *ngIf=\"State?.Loading\"\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"header-icon\"\n >\n add\n </mat-icon>\n </mat-card-header>\n\n <!-- SKELETON CONTENT -->\n\n <ng-container *ngIf=\"State?.Loading\">\n <mat-card-content>\n <div class=\"slot-main-container\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"header-description\">\n Descrption text\n </div>\n\n <div class=\"slot-main\">\n <ng-content skeleton-block [effect]=\"SkeletonEffect\"></ng-content>\n </div>\n </div>\n\n <div\n class=\"slot-secondary\"\n fxLayout=\"row\"\n fxLayoutAlign=\"space-between center\"\n >\n <div class=\"slot-header-container\">\n <div class=\"slot-header\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\n Name of the content\n </div>\n </div>\n\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\n Description\n </div>\n </div>\n\n <div class=\"slot-actions-container\" fxLayout=\"row\">\n <mat-icon\n skeleton-text\n [effect]=\"SkeletonEffect\"\n class=\"skeleton-item\"\n >\n edit\n </mat-icon>\n </div>\n </div>\n\n <div *ngIf=\"SecondarySlotDescription\" class=\"slot-secondary-container\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"header-description\">\n {{ SecondarySlotDescription }}\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <div skeleton-text [effect]=\"SkeletonEffect\" class=\"skeleton-item\">\n {{ ActionText }}\n </div>\n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON CONTENT -->\n\n <!-- ACTUAL CONTENT -->\n\n <ng-container *ngIf=\"!State?.Loading\">\n <mat-card-content>\n <div class=\"slot-main-container\">\n <div class=\"header-description\">{{ MainSlotDescription }}</div>\n\n <div class=\"slot-main\">\n <ng-content></ng-content>\n </div>\n </div>\n\n <div *ngIf=\"SecondarySlotDescription\" class=\"slot-secondary-container\">\n <div class=\"header-description\">{{ SecondarySlotDescription }}</div>\n\n <div class=\"slot-secondary\">\n <ng-content select=\"[secondary]\"></ng-content>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions *ngIf=\"ActionText\" fxLayoutAlign=\"center\">\n <a\n mat-button\n *ngIf=\"ActionPath\"\n class=\"slotted-card-action-btn\"\n [href]=\"ActionPath\"\n color=\"primary\"\n >{{ ActionText }}\n </a>\n\n <a\n mat-button\n *ngIf=\"!ActionPath\"\n class=\"slotted-card-action-btn\"\n (click)=\"MainActionClickEvent()\"\n color=\"primary\"\n >\n {{ ActionText }}\n </a>\n </mat-card-actions>\n </ng-container>\n</mat-card>\n", styles: [".col-info-card{margin:20px;padding:0}.slotted-card-header{padding:5px}.header-icon{height:30px;width:30px;font-size:30px}.card-title{font-size:22px;margin-bottom:0!important}.pointer{cursor:pointer}.header-description{background-color:#b9dddd;padding:10px}mat-card-actions{margin-bottom:0!important;margin-left:-1px!important;margin-right:0!important}.slotted-card-action-btn{width:100%}.skeleton-item{margin:10px}.mat-card-avatar{width:75%!important}\n"] }]
32
33
  }], ctorParameters: function () { return [{ type: i1.EaCService }]; }, propDecorators: { ActionText: [{
33
34
  type: Input,
34
35
  args: ['action-text']
@@ -57,4 +58,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
57
58
  type: Output,
58
59
  args: ['main-action-clicked']
59
60
  }] } });
60
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xvdHRlZC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL2VsZW1lbnRzL3Nsb3R0ZWQtY2FyZC9zbG90dGVkLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvc2xvdHRlZC1jYXJkL3Nsb3R0ZWQtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFTL0UsTUFBTSxPQUFPLG9CQUFvQjtJQW9DL0IsWUFBc0IsTUFBa0I7UUFBbEIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUN0QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxZQUFZLENBQUM7UUFDMUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUM7UUFFN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFFdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDM0IsQ0FBQztJQWRELElBQVcsS0FBSztRQUNkLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQWNNLFFBQVE7SUFDZixDQUFDO0lBRU0sb0JBQW9CO1FBQ3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQzs7aUhBbERVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHFnQkNUakMsMmxIQWdJQTsyRkR2SGEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjtpR0FPckIsVUFBVTtzQkFEaEIsS0FBSzt1QkFBQyxhQUFhO2dCQUliLFVBQVU7c0JBRGhCLEtBQUs7dUJBQUMsYUFBYTtnQkFJYixJQUFJO3NCQURWLEtBQUs7dUJBQUMsTUFBTTtnQkFJTixtQkFBbUI7c0JBRHpCLEtBQUs7dUJBQUMsdUJBQXVCO2dCQUl2QixRQUFRO3NCQURkLEtBQUs7dUJBQUMsV0FBVztnQkFJWCxZQUFZO3NCQURsQixLQUFLO3VCQUFDLGdCQUFnQjtnQkFJaEIsU0FBUztzQkFEZixLQUFLO3VCQUFDLFlBQVk7Z0JBSVosd0JBQXdCO3NCQUQ5QixLQUFLO3VCQUFDLDRCQUE0QjtnQkFJNUIsaUJBQWlCO3NCQUR2QixNQUFNO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVhQ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBsaWNhdGlvbnNGbG93U3RhdGUgfSBmcm9tICcuLi8uLi9zdGF0ZS9hcHBsaWNhdGlvbnMtZmxvdy5zdGF0ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xjdS1zbG90dGVkLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2xvdHRlZC1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2xvdHRlZC1jYXJkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2xvdHRlZENhcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgnYWN0aW9uLXRleHQnKSBcbiAgcHVibGljIEFjdGlvblRleHQ6IHN0cmluZztcblxuICBASW5wdXQoJ2FjdGlvbi1wYXRoJylcbiAgcHVibGljIEFjdGlvblBhdGg6IHN0cmluZztcblxuICBASW5wdXQoJ2ljb24nKSBcbiAgcHVibGljIEljb246IHN0cmluZztcblxuICBASW5wdXQoJ21haW4tc2xvdC1kZXNjcmlwdGlvbicpIFxuICBwdWJsaWMgTWFpblNsb3REZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIEBJbnB1dCgnbWFpbi1pY29uJykgXG4gIHB1YmxpYyBNYWluSWNvbjogc3RyaW5nO1xuXG4gIEBJbnB1dCgnc2hvdy1tYWluLWljb24nKSBcbiAgcHVibGljIFNob3dNYWluSWNvbjogYm9vbGVhbjtcblxuICBASW5wdXQoJ2NhcmQtdGl0bGUnKSBcbiAgcHVibGljIENhcmRUaXRsZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgnc2Vjb25kYXJ5LXNsb3QtZGVzY3JpcHRpb24nKSBcbiAgcHVibGljIFNlY29uZGFyeVNsb3REZXNjcmlwdGlvbjogc3RyaW5nO1xuXG4gIEBPdXRwdXQoJ21haW4tYWN0aW9uLWNsaWNrZWQnKSBcbiAgcHVibGljIE1haW5BY3Rpb25DbGlja2VkOiBFdmVudEVtaXR0ZXI8e30+O1xuXG4gIHB1YmxpYyBnZXQgU3RhdGUoKTogQXBwbGljYXRpb25zRmxvd1N0YXRle1xuICAgIHJldHVybiB0aGlzLmVhY1N2Yy5TdGF0ZTtcbiAgfVxuXG4gIHB1YmxpYyBTa2VsZXRvbkVmZmVjdDogc3RyaW5nO1xuXG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGVhY1N2YzogRWFDU2VydmljZSkgeyBcbiAgICB0aGlzLk1haW5BY3Rpb25DbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjtcbiAgICB0aGlzLlNrZWxldG9uRWZmZWN0ID0gJ3dhdmUnO1xuXG4gICAgdGhpcy5NYWluSWNvbiA9ICdhZGQnO1xuXG4gICAgdGhpcy5TaG93TWFpbkljb24gPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgcHVibGljIE1haW5BY3Rpb25DbGlja0V2ZW50KCl7XG4gICAgdGhpcy5NYWluQWN0aW9uQ2xpY2tlZC5lbWl0KHt9KTtcbiAgfVxuXG59XG4iLCI8bWF0LWNhcmQgY2xhc3M9XCJjb2wtaW5mby1jYXJkXCI+XG4gIDxtYXQtY2FyZC1oZWFkZXJcbiAgICBjbGFzcz1cInNsb3R0ZWQtY2FyZC1oZWFkZXJcIlxuICAgIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiXG4gID5cbiAgICA8ZGl2IG1hdC1jYXJkLWF2YXRhciBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCJzdGFydCBjZW50ZXJcIj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImhlYWRlci1pY29uXCI+e3sgSWNvbiB9fTwvbWF0LWljb24+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZVwiPnt7IENhcmRUaXRsZSB9fTwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPG1hdC1pY29uXG4gICAgICAqbmdJZj1cIiFBY3Rpb25QYXRoICYmICFTdGF0ZT8uTG9hZGluZyAmJiBTaG93TWFpbkljb25cIlxuICAgICAgY2xhc3M9XCJoZWFkZXItaWNvbiBwb2ludGVyXCJcbiAgICAgIChjbGljayk9XCJNYWluQWN0aW9uQ2xpY2tFdmVudCgpXCJcbiAgICA+XG4gICAgICB7eyBNYWluSWNvbiB9fVxuICAgIDwvbWF0LWljb24+XG5cbiAgICA8bWF0LWljb25cbiAgICAgICpuZ0lmPVwiU3RhdGU/LkxvYWRpbmdcIlxuICAgICAgc2tlbGV0b24tdGV4dFxuICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiXG4gICAgICBjbGFzcz1cImhlYWRlci1pY29uXCJcbiAgICA+XG4gICAgICBhZGRcbiAgICA8L21hdC1pY29uPlxuICA8L21hdC1jYXJkLWhlYWRlcj5cblxuICA8IS0tIFNLRUxFVE9OIENPTlRFTlQgLS0+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlN0YXRlPy5Mb2FkaW5nXCI+XG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwic2xvdC1tYWluLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IHNrZWxldG9uLXRleHQgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiIGNsYXNzPVwiaGVhZGVyLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgRGVzY3JwdGlvbiB0ZXh0XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbG90LW1haW5cIj5cbiAgICAgICAgICA8bmctY29udGVudCBza2VsZXRvbi1ibG9jayBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic2xvdC1zZWNvbmRhcnlcIlxuICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbG90LWhlYWRlci1jb250YWluZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2xvdC1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCIgY2xhc3M9XCJza2VsZXRvbi1pdGVtXCI+XG4gICAgICAgICAgICAgIE5hbWUgb2YgdGhlIGNvbnRlbnRcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBza2VsZXRvbi10ZXh0IFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIiBjbGFzcz1cInNrZWxldG9uLWl0ZW1cIj5cbiAgICAgICAgICAgIERlc2NyaXB0aW9uXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbG90LWFjdGlvbnMtY29udGFpbmVyXCIgZnhMYXlvdXQ9XCJyb3dcIj5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIHNrZWxldG9uLXRleHRcbiAgICAgICAgICAgIFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIlxuICAgICAgICAgICAgY2xhc3M9XCJza2VsZXRvbi1pdGVtXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBlZGl0XG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cIlNlY29uZGFyeVNsb3REZXNjcmlwdGlvblwiIGNsYXNzPVwic2xvdC1zZWNvbmRhcnktY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCIgY2xhc3M9XCJoZWFkZXItZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICB7eyBTZWNvbmRhcnlTbG90RGVzY3JpcHRpb24gfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG5cbiAgICA8bWF0LWNhcmQtYWN0aW9ucyBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgICAgPGRpdiBza2VsZXRvbi10ZXh0IFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIiBjbGFzcz1cInNrZWxldG9uLWl0ZW1cIj5cbiAgICAgICAge3sgQWN0aW9uVGV4dCB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPCEtLSBFTkQgU0tFTEVUT04gQ09OVEVOVCAtLT5cblxuICA8IS0tIEFDVFVBTCBDT05URU5UIC0tPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhU3RhdGU/LkxvYWRpbmdcIj5cbiAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgIDxkaXYgY2xhc3M9XCJzbG90LW1haW4tY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItZGVzY3JpcHRpb25cIj57eyBNYWluU2xvdERlc2NyaXB0aW9uIH19PC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNsb3QtbWFpblwiPlxuICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cIlNlY29uZGFyeVNsb3REZXNjcmlwdGlvblwiIGNsYXNzPVwic2xvdC1zZWNvbmRhcnktY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItZGVzY3JpcHRpb25cIj57eyBTZWNvbmRhcnlTbG90RGVzY3JpcHRpb24gfX08L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwic2xvdC1zZWNvbmRhcnlcIj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2Vjb25kYXJ5XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG5cbiAgICA8bWF0LWNhcmQtYWN0aW9ucyAqbmdJZj1cIkFjdGlvblRleHRcIiBmeExheW91dEFsaWduPVwiY2VudGVyXCI+XG4gICAgICA8YVxuICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICpuZ0lmPVwiQWN0aW9uUGF0aFwiXG4gICAgICAgIGNsYXNzPVwic2xvdHRlZC1jYXJkLWFjdGlvbi1idG5cIlxuICAgICAgICBbaHJlZl09XCJBY3Rpb25QYXRoXCJcbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgPnt7IEFjdGlvblRleHQgfX1cbiAgICAgIDwvYT5cblxuICAgICAgPGFcbiAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAqbmdJZj1cIiFBY3Rpb25QYXRoXCJcbiAgICAgICAgY2xhc3M9XCJzbG90dGVkLWNhcmQtYWN0aW9uLWJ0blwiXG4gICAgICAgIChjbGljayk9XCJNYWluQWN0aW9uQ2xpY2tFdmVudCgpXCJcbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgID5cbiAgICAgICAge3sgQWN0aW9uVGV4dCB9fVxuICAgICAgPC9hPlxuICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cbiAgPC9uZy1jb250YWluZXI+XG48L21hdC1jYXJkPlxuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xvdHRlZC1jYXJkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL2VsZW1lbnRzL3Nsb3R0ZWQtY2FyZC9zbG90dGVkLWNhcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvZWxlbWVudHMvc2xvdHRlZC1jYXJkL3Nsb3R0ZWQtY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7O0FBUy9FLE1BQU0sT0FBTyxvQkFBb0I7SUFvQy9CLFlBQXNCLE1BQWtCO1FBQWxCLFdBQU0sR0FBTixNQUFNLENBQVk7UUFDdEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksWUFBWSxDQUFDO1FBQzFDLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO1FBRTdCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBRXRCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFkRCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFjTSxRQUFRO0lBQ2YsQ0FBQztJQUVNLG9CQUFvQjtRQUN6QixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7O2lIQWxEVSxvQkFBb0I7cUdBQXBCLG9CQUFvQixxZ0JDVGpDLG9vSEFpSUE7MkZEeEhhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxrQkFBa0I7aUdBT3JCLFVBQVU7c0JBRGhCLEtBQUs7dUJBQUMsYUFBYTtnQkFJYixVQUFVO3NCQURoQixLQUFLO3VCQUFDLGFBQWE7Z0JBSWIsSUFBSTtzQkFEVixLQUFLO3VCQUFDLE1BQU07Z0JBSU4sbUJBQW1CO3NCQUR6QixLQUFLO3VCQUFDLHVCQUF1QjtnQkFJdkIsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLFdBQVc7Z0JBSVgsWUFBWTtzQkFEbEIsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBSWhCLFNBQVM7c0JBRGYsS0FBSzt1QkFBQyxZQUFZO2dCQUlaLHdCQUF3QjtzQkFEOUIsS0FBSzt1QkFBQyw0QkFBNEI7Z0JBSTVCLGlCQUFpQjtzQkFEdkIsTUFBTTt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFYUNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZWFjLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwbGljYXRpb25zRmxvd1N0YXRlIH0gZnJvbSAnLi4vLi4vc3RhdGUvYXBwbGljYXRpb25zLWZsb3cuc3RhdGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsY3Utc2xvdHRlZC1jYXJkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Nsb3R0ZWQtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3Nsb3R0ZWQtY2FyZC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNsb3R0ZWRDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoJ2FjdGlvbi10ZXh0JykgXG4gIHB1YmxpYyBBY3Rpb25UZXh0OiBzdHJpbmc7XG5cbiAgQElucHV0KCdhY3Rpb24tcGF0aCcpXG4gIHB1YmxpYyBBY3Rpb25QYXRoOiBzdHJpbmc7XG5cbiAgQElucHV0KCdpY29uJykgXG4gIHB1YmxpYyBJY29uOiBzdHJpbmc7XG5cbiAgQElucHV0KCdtYWluLXNsb3QtZGVzY3JpcHRpb24nKSBcbiAgcHVibGljIE1haW5TbG90RGVzY3JpcHRpb246IHN0cmluZztcblxuICBASW5wdXQoJ21haW4taWNvbicpIFxuICBwdWJsaWMgTWFpbkljb246IHN0cmluZztcblxuICBASW5wdXQoJ3Nob3ctbWFpbi1pY29uJykgXG4gIHB1YmxpYyBTaG93TWFpbkljb246IGJvb2xlYW47XG5cbiAgQElucHV0KCdjYXJkLXRpdGxlJykgXG4gIHB1YmxpYyBDYXJkVGl0bGU6IHN0cmluZztcblxuICBASW5wdXQoJ3NlY29uZGFyeS1zbG90LWRlc2NyaXB0aW9uJykgXG4gIHB1YmxpYyBTZWNvbmRhcnlTbG90RGVzY3JpcHRpb246IHN0cmluZztcblxuICBAT3V0cHV0KCdtYWluLWFjdGlvbi1jbGlja2VkJykgXG4gIHB1YmxpYyBNYWluQWN0aW9uQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHt9PjtcblxuICBwdWJsaWMgZ2V0IFN0YXRlKCk6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZXtcbiAgICByZXR1cm4gdGhpcy5lYWNTdmMuU3RhdGU7XG4gIH1cblxuICBwdWJsaWMgU2tlbGV0b25FZmZlY3Q6IHN0cmluZztcblxuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBlYWNTdmM6IEVhQ1NlcnZpY2UpIHsgXG4gICAgdGhpcy5NYWluQWN0aW9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI7XG4gICAgdGhpcy5Ta2VsZXRvbkVmZmVjdCA9ICd3YXZlJztcblxuICAgIHRoaXMuTWFpbkljb24gPSAnYWRkJztcblxuICAgIHRoaXMuU2hvd01haW5JY29uID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIHB1YmxpYyBNYWluQWN0aW9uQ2xpY2tFdmVudCgpe1xuICAgIHRoaXMuTWFpbkFjdGlvbkNsaWNrZWQuZW1pdCh7fSk7XG4gIH1cblxufVxuIiwiPG1hdC1jYXJkIGNsYXNzPVwiY29sLWluZm8tY2FyZFwiPlxuICA8bWF0LWNhcmQtaGVhZGVyXG4gICAgY2xhc3M9XCJzbG90dGVkLWNhcmQtaGVhZGVyXCJcbiAgICBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIlxuICA+XG4gICAgPGRpdiBtYXQtY2FyZC1hdmF0YXIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJoZWFkZXItaWNvblwiPnt7IEljb24gfX08L21hdC1pY29uPlxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGl0bGVcIj57eyBDYXJkVGl0bGUgfX08L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxtYXQtaWNvblxuICAgICAgKm5nSWY9XCIhQWN0aW9uUGF0aCAmJiAhU3RhdGU/LkxvYWRpbmcgJiYgU2hvd01haW5JY29uXCJcbiAgICAgIGNsYXNzPVwiaGVhZGVyLWljb24gcG9pbnRlclwiXG4gICAgICAoY2xpY2spPVwiTWFpbkFjdGlvbkNsaWNrRXZlbnQoKVwiXG4gICAgICBtYXRUb29sdGlwPVwiRWRpdCB7e0NhcmRUaXRsZX19XCJcbiAgICA+XG4gICAgICB7eyBNYWluSWNvbiB9fVxuICAgIDwvbWF0LWljb24+XG5cbiAgICA8bWF0LWljb25cbiAgICAgICpuZ0lmPVwiU3RhdGU/LkxvYWRpbmdcIlxuICAgICAgc2tlbGV0b24tdGV4dFxuICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiXG4gICAgICBjbGFzcz1cImhlYWRlci1pY29uXCJcbiAgICA+XG4gICAgICBhZGRcbiAgICA8L21hdC1pY29uPlxuICA8L21hdC1jYXJkLWhlYWRlcj5cblxuICA8IS0tIFNLRUxFVE9OIENPTlRFTlQgLS0+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIlN0YXRlPy5Mb2FkaW5nXCI+XG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICA8ZGl2IGNsYXNzPVwic2xvdC1tYWluLWNvbnRhaW5lclwiPlxuICAgICAgICA8ZGl2IHNrZWxldG9uLXRleHQgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiIGNsYXNzPVwiaGVhZGVyLWRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgRGVzY3JwdGlvbiB0ZXh0XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbG90LW1haW5cIj5cbiAgICAgICAgICA8bmctY29udGVudCBza2VsZXRvbi1ibG9jayBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic2xvdC1zZWNvbmRhcnlcIlxuICAgICAgICBmeExheW91dD1cInJvd1wiXG4gICAgICAgIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbG90LWhlYWRlci1jb250YWluZXJcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2xvdC1oZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCIgY2xhc3M9XCJza2VsZXRvbi1pdGVtXCI+XG4gICAgICAgICAgICAgIE5hbWUgb2YgdGhlIGNvbnRlbnRcbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBza2VsZXRvbi10ZXh0IFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIiBjbGFzcz1cInNrZWxldG9uLWl0ZW1cIj5cbiAgICAgICAgICAgIERlc2NyaXB0aW9uXG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzbG90LWFjdGlvbnMtY29udGFpbmVyXCIgZnhMYXlvdXQ9XCJyb3dcIj5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIHNrZWxldG9uLXRleHRcbiAgICAgICAgICAgIFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIlxuICAgICAgICAgICAgY2xhc3M9XCJza2VsZXRvbi1pdGVtXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBlZGl0XG4gICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cIlNlY29uZGFyeVNsb3REZXNjcmlwdGlvblwiIGNsYXNzPVwic2xvdC1zZWNvbmRhcnktY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCIgY2xhc3M9XCJoZWFkZXItZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICB7eyBTZWNvbmRhcnlTbG90RGVzY3JpcHRpb24gfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG5cbiAgICA8bWF0LWNhcmQtYWN0aW9ucyBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgICAgPGRpdiBza2VsZXRvbi10ZXh0IFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIiBjbGFzcz1cInNrZWxldG9uLWl0ZW1cIj5cbiAgICAgICAge3sgQWN0aW9uVGV4dCB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPCEtLSBFTkQgU0tFTEVUT04gQ09OVEVOVCAtLT5cblxuICA8IS0tIEFDVFVBTCBDT05URU5UIC0tPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhU3RhdGU/LkxvYWRpbmdcIj5cbiAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgIDxkaXYgY2xhc3M9XCJzbG90LW1haW4tY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItZGVzY3JpcHRpb25cIj57eyBNYWluU2xvdERlc2NyaXB0aW9uIH19PC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNsb3QtbWFpblwiPlxuICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cIlNlY29uZGFyeVNsb3REZXNjcmlwdGlvblwiIGNsYXNzPVwic2xvdC1zZWNvbmRhcnktY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItZGVzY3JpcHRpb25cIj57eyBTZWNvbmRhcnlTbG90RGVzY3JpcHRpb24gfX08L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwic2xvdC1zZWNvbmRhcnlcIj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2Vjb25kYXJ5XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG5cbiAgICA8bWF0LWNhcmQtYWN0aW9ucyAqbmdJZj1cIkFjdGlvblRleHRcIiBmeExheW91dEFsaWduPVwiY2VudGVyXCI+XG4gICAgICA8YVxuICAgICAgICBtYXQtYnV0dG9uXG4gICAgICAgICpuZ0lmPVwiQWN0aW9uUGF0aFwiXG4gICAgICAgIGNsYXNzPVwic2xvdHRlZC1jYXJkLWFjdGlvbi1idG5cIlxuICAgICAgICBbaHJlZl09XCJBY3Rpb25QYXRoXCJcbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgPnt7IEFjdGlvblRleHQgfX1cbiAgICAgIDwvYT5cblxuICAgICAgPGFcbiAgICAgICAgbWF0LWJ1dHRvblxuICAgICAgICAqbmdJZj1cIiFBY3Rpb25QYXRoXCJcbiAgICAgICAgY2xhc3M9XCJzbG90dGVkLWNhcmQtYWN0aW9uLWJ0blwiXG4gICAgICAgIChjbGljayk9XCJNYWluQWN0aW9uQ2xpY2tFdmVudCgpXCJcbiAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgID5cbiAgICAgICAge3sgQWN0aW9uVGV4dCB9fVxuICAgICAgPC9hPlxuICAgIDwvbWF0LWNhcmQtYWN0aW9ucz5cbiAgPC9uZy1jb250YWluZXI+XG48L21hdC1jYXJkPlxuIl19
@@ -5,11 +5,6 @@ import * as i1 from "./project.service";
5
5
  import * as i2 from "@angular/common/http";
6
6
  export class SaveApplicationAsCodeEventRequest {
7
7
  }
8
- // export class SaveDFSModifierForApplicationEventRequest {
9
- // public Modifier: EaCDFSModifier;
10
- // public ModifierLookup: string;
11
- // public ApplicationLookup?: string;
12
- // }
13
8
  export class SaveDFSModifierEventRequest {
14
9
  }
15
10
  export class SaveEnvironmentAsCodeEventRequest {
@@ -182,9 +177,6 @@ export class EaCService {
182
177
  if (req.Application) {
183
178
  saveEaC.Applications[req.ApplicationLookup] = req.Application;
184
179
  }
185
- if (req.DataToken) {
186
- saveEaC.Applications[req.ApplicationLookup].DataTokens[req.DataTokenLookup] = req.DataToken;
187
- }
188
180
  return await this.projectService.SaveEnterpriseAsCode(this.State, saveEaC);
189
181
  }
190
182
  async handleSaveDFSModifier(req) {
@@ -256,4 +248,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
256
248
  providedIn: 'root',
257
249
  }]
258
250
  }], ctorParameters: function () { return [{ type: i1.ProjectService }, { type: i2.HttpClient }]; } });
259
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWFjLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9lYWMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFDTCxxQkFBcUIsR0FFdEIsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQWUxQyxNQUFNLE9BQU8saUNBQWlDO0NBVTdDO0FBRUQsMkRBQTJEO0FBQzNELHFDQUFxQztBQUVyQyxtQ0FBbUM7QUFFbkMsdUNBQXVDO0FBQ3ZDLElBQUk7QUFFSixNQUFNLE9BQU8sMkJBQTJCO0NBUXZDO0FBRUQsTUFBTSxPQUFPLGlDQUFpQztDQU03QztBQUVELE1BQU0sT0FBTyw2QkFBNkI7Q0FJekM7QUFLRCxNQUFNLE9BQU8sVUFBVTtJQVlyQixnQkFBZ0I7SUFDaEIsWUFDWSxjQUE4QixFQUM5QixJQUFnQjtRQURoQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUUxQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUkscUJBQXFCLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBakJELGNBQWM7SUFDZCxJQUFXLG9CQUFvQjtRQUM3QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDO0lBQzdDLENBQUM7SUFZRCxlQUFlO0lBQ1IsaUJBQWlCLENBQUMsUUFBa0I7UUFDekMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxpQkFBaUIsQ0FDNUIsU0FBaUIsRUFDakIsT0FBZTtRQUVmLElBQUksT0FBTyxDQUFDLGdEQUFnRCxPQUFPLElBQUksQ0FBQyxFQUFFO1lBQ3hFLE1BQU0sR0FBRyxHQUFxQjtnQkFDNUIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO2dCQUNqRCxZQUFZLEVBQUUsRUFBRTthQUNqQixDQUFDO1lBRUYsR0FBRyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRztnQkFDNUIsV0FBVyxFQUFFLEVBQUU7YUFDaEIsQ0FBQztZQUVGLE9BQU8sTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLHdCQUF3QixDQUN2RCxJQUFJLENBQUMsS0FBSyxFQUNWLEdBQUcsQ0FDSixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLGtCQUFrQixDQUM3QixTQUFpQixFQUNqQixPQUFlO1FBRWYsSUFDRSxPQUFPLENBQUMsbURBQW1ELE9BQU8sSUFBSSxDQUFDLEVBQ3ZFO1lBQ0EsTUFBTSxHQUFHLEdBQXFCO2dCQUM1QixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7Z0JBQ2pELFlBQVksRUFBRSxFQUFFO2FBQ2pCLENBQUM7WUFFRixHQUFHLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHO2dCQUMvRCxhQUFhLEVBQUUsRUFBRTthQUNsQixDQUFDO1lBRUYsR0FBRyxDQUFDLFlBQVksQ0FDZCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQzdDLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUVoQyxPQUFPLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FDdkQsSUFBSSxDQUFDLEtBQUssRUFDVixHQUFHLENBQ0osQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxjQUFjLENBQ3pCLGNBQXNCLEVBQ3RCLFlBQW9CO1FBRXBCLElBQ0UsT0FBTyxDQUFDLDZDQUE2QyxZQUFZLElBQUksQ0FBQyxFQUN0RTtZQUNBLE1BQU0sR0FBRyxHQUFxQjtnQkFDNUIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO2dCQUNqRCxTQUFTLEVBQUUsRUFBRTthQUNkLENBQUM7WUFFRixHQUFHLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUVuQyxPQUFPLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FDdkQsSUFBSSxDQUFDLEtBQUssRUFDVixHQUFHLENBQ0osQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxhQUFhLENBQ3hCLGFBQXFCLEVBQ3JCLFdBQW1CO1FBRW5CLElBQUksT0FBTyxDQUFDLDRDQUE0QyxXQUFXLElBQUksQ0FBQyxFQUFFO1lBQ3hFLE1BQU0sR0FBRyxHQUFxQjtnQkFDNUIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO2dCQUNqRCxRQUFRLEVBQUUsRUFBRTthQUNiLENBQUM7WUFFRixHQUFHLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxHQUFHO2dCQUM1QixPQUFPLEVBQUUsRUFBRTthQUNaLENBQUM7WUFFRixPQUFPLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FDdkQsSUFBSSxDQUFDLEtBQUssRUFDVixHQUFHLENBQ0osQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxtQkFBbUIsQ0FDOUIsU0FBaUIsRUFDakIsT0FBZTtRQUVmLElBQ0UsT0FBTyxDQUFDLG1EQUFtRCxPQUFPLElBQUksQ0FBQyxFQUN2RTtZQUNBLE1BQU0sR0FBRyxHQUFxQjtnQkFDNUIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsZ0JBQWdCO2dCQUNqRCxZQUFZLEVBQUUsRUFBRTthQUNqQixDQUFDO1lBRUYsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsR0FBRztnQkFDL0QsT0FBTyxFQUFFLEVBQUU7YUFDWixDQUFDO1lBRUYsR0FBRyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxPQUFPLENBQ3BFLFNBQVMsQ0FDVixHQUFHLEVBQUUsQ0FBQztZQUVQLE9BQU8sTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLHdCQUF3QixDQUN2RCxJQUFJLENBQUMsS0FBSyxFQUNWLEdBQUcsQ0FDSixDQUFDO1NBQ0g7SUFDSCxDQUFDO0lBRUQsMkVBQTJFO0lBQzNFLGdFQUFnRTtJQUNoRSxNQUFNO0lBRUMsS0FBSyxDQUFDLG9CQUFvQjtRQUMvQixNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFTSxLQUFLLENBQUMsd0JBQXdCLENBQ25DLEdBQXFCO1FBRXJCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTSxLQUFLLENBQUMsbUJBQW1CO1FBQzlCLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVNLEtBQUssQ0FBQyxZQUFZLENBQ3ZCLElBQVksRUFDWixRQUFnQixFQUNoQixXQUFvQixLQUFLO1FBRXpCLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQ3BDLElBQUksRUFDSixRQUFRLEVBQ1IsUUFBUSxFQUNSLElBQUksQ0FBQyxLQUFLLENBQ1gsQ0FBQztJQUNKLENBQUM7SUFFTSwwQkFBMEIsQ0FBQyxZQUVqQztRQUdDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQywwQkFBMEIsQ0FDbkQsWUFBWSxFQUNaLElBQUksQ0FBQyxLQUFLLENBQ1gsQ0FBQztJQUNKLENBQUM7SUFFTSxLQUFLLENBQUMsa0JBQWtCO1FBQzdCLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVNLEtBQUssQ0FBQyxlQUFlO1FBQzFCLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxLQUFLLENBQUMsb0JBQW9CO1FBQy9CLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFFO1lBQ3hCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUU3QyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7WUFFdEQsSUFBSSxDQUFDLEtBQUssQ0FBQyx3QkFBd0I7Z0JBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDO1NBQzdDO1FBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO0lBQzlCLENBQUM7SUFFTSxLQUFLLENBQUMscUJBQXFCLENBQ2hDLEdBQXNDO1FBRXRDLE9BQU8sTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLEtBQUssQ0FBQyxlQUFlLENBQzFCLEdBQWdDO1FBRWhDLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxLQUFLLENBQUMsb0JBQW9CLENBQUMsR0FBcUI7UUFDckQsT0FBTyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sS0FBSyxDQUFDLHFCQUFxQixDQUNoQyxHQUFzQztRQUV0QyxPQUFPLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTSxLQUFLLENBQUMsaUJBQWlCLENBQzVCLEdBQWtDO1FBRWxDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTSxLQUFLLENBQUMsbUJBQW1CLENBQUMsU0FBYztRQUM3QyxJQUFJLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVNLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxlQUF3QjtRQUN0RCxJQUFJLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTSxLQUFLLENBQUMsc0JBQXNCLENBQUMsYUFBcUI7UUFDdkQsTUFBTSxJQUFJLENBQUMsY0FBYyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVNLEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBZ0I7UUFDM0MsT0FBTyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVNLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUE2QjtRQUMxRCxJQUNFLE9BQU8sQ0FDTCxnREFBZ0QsR0FBRyxDQUFDLGVBQWUsbUJBQW1CLEdBQUcsQ0FBQyxPQUFPLElBQUksQ0FDdEcsRUFDRDtZQUNBLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1NBQzlEO0lBQ0gsQ0FBQztJQUVELFdBQVc7SUFDRCxLQUFLLENBQUMscUJBQXFCLENBQ25DLEdBQXNDO1FBRXRDLE1BQU0sT0FBTyxHQUFxQjtZQUNoQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7WUFDakQsWUFBWSxFQUFFLEVBQUU7WUFDaEIsUUFBUSxFQUFFLEVBQUU7U0FDYixDQUFDO1FBRUYsTUFBTSxZQUFZLEdBQUc7WUFDbkIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztTQUM5QyxDQUFDO1FBRUYsSUFBSSxZQUFZLENBQUMsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUN2RSxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFO2dCQUNwQyxZQUFZLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO2FBQ3RDO1lBRUQsWUFBWSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUU1RCxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxZQUFZLENBQUM7U0FDcEQ7UUFFRCxJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUU7WUFDbkIsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsR0FBRyxHQUFHLENBQUMsV0FBVyxDQUFDO1NBQy9EO1FBRUQsSUFBSSxHQUFHLENBQUMsU0FBUyxFQUFFO1lBQ2pCLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsVUFBVSxDQUNwRCxHQUFHLENBQUMsZUFBZSxDQUNwQixHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUM7U0FDbkI7UUFFRCxPQUFPLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFUyxLQUFLLENBQUMscUJBQXFCLENBQ25DLEdBQWdDO1FBRWhDLE1BQU0sT0FBTyxHQUFxQjtZQUNoQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7WUFDakQsU0FBUyxFQUFFLEVBQUU7WUFDYixRQUFRLEVBQUUsRUFBRTtZQUNaLFlBQVksRUFBRSxFQUFFO1NBQ2pCLENBQUM7UUFFRixJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUU7WUFDaEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQztTQUMxRDtRQUVELElBQUksR0FBRyxDQUFDLGNBQWMsRUFBRTtZQUN0QixHQUFHLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUNwQyxPQUFPLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHO29CQUN6QixlQUFlLEVBQUUsR0FBRyxDQUFDLGVBQWU7aUJBQ3JDLENBQUM7WUFDSixDQUFDLENBQUMsQ0FBQztTQUNKO1FBRUQsSUFBSSxHQUFHLENBQUMsaUJBQWlCLEVBQUU7WUFDekIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDbEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDbEMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsR0FBRztnQkFDNUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxlQUFlO2FBQ3JDLENBQUM7U0FDSDtRQUVELE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFUyxLQUFLLENBQUMscUJBQXFCLENBQ25DLEdBQXNDO1FBRXRDLE1BQU0sT0FBTyxHQUFxQjtZQUNoQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxnQkFBZ0I7WUFDbkQsVUFBVSxFQUFFLEVBQUU7WUFDZCxZQUFZLEVBQUUsRUFBRTtTQUNqQixDQUFDO1FBRUYsSUFBSSxHQUFHLENBQUMsV0FBVyxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQztTQUMvRDtRQUVELElBQUksR0FBRyxDQUFDLG9CQUFvQixFQUFFO1lBQzVCLE9BQU8sQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLG9CQUFvQixDQUFDO1NBQy9DO1FBRUQsT0FBTyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBRVMsS0FBSyxDQUFDLGlCQUFpQixDQUMvQixhQUFxQixFQUNyQixPQUF5QjtRQUV6QixNQUFNLFNBQVMsR0FBa0MsRUFBRSxDQUFDO1FBRXBELE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDcEMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sT0FBTyxHQUFxQjtZQUNoQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0I7WUFDakQsVUFBVSxFQUFFO2dCQUNWLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsVUFBVTtnQkFDNUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2FBQzlCO1lBQ0QsS0FBSyxFQUFFLFNBQVM7WUFDaEIseUdBQXlHO1lBQ3pHLFFBQVEsRUFBRSxFQUFFO1NBQ2IsQ0FBQztRQUVGLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBRTFDLElBQUksTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxvQkFBb0IsQ0FDekQsSUFBSSxDQUFDLEtBQUssRUFDVixPQUFPLENBQ1IsQ0FBQztRQUVGLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUUzQyxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzt1R0FoWVUsVUFBVTsyR0FBVixVQUFVLGNBRlQsTUFBTTsyRkFFUCxVQUFVO2tCQUh0QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb2plY3RTZXJ2aWNlIH0gZnJvbSAnLi9wcm9qZWN0LnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQXBwbGljYXRpb25zRmxvd1N0YXRlLFxuICBVbnBhY2tMb3dDb2RlVW5pdFJlcXVlc3QsXG59IGZyb20gJy4uL3N0YXRlL2FwcGxpY2F0aW9ucy1mbG93LnN0YXRlJztcbmltcG9ydCB7XG4gIEVhQ0FwcGxpY2F0aW9uQXNDb2RlLFxuICBFYUNEYXRhVG9rZW4sXG4gIEVhQ0RGU01vZGlmaWVyLFxuICBFYUNFbnZpcm9ubWVudEFzQ29kZSxcbiAgRWFDSG9zdCxcbiAgRWFDUHJvamVjdEFzQ29kZSxcbiAgRW50ZXJwcmlzZUFzQ29kZSxcbn0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7IEZlZWRFbnRyeSwgRmVlZEl0ZW0gfSBmcm9tICcuLi9tb2RlbHMvdXNlci1mZWVkLm1vZGVsJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBTdGF0dXMgfSBmcm9tICdAbGN1L2NvbW1vbic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBTYXZlQXBwbGljYXRpb25Bc0NvZGVFdmVudFJlcXVlc3Qge1xuICBwdWJsaWMgQXBwbGljYXRpb24/OiBFYUNBcHBsaWNhdGlvbkFzQ29kZTtcblxuICBwdWJsaWMgQXBwbGljYXRpb25Mb29rdXA/OiBzdHJpbmc7XG5cbiAgcHVibGljIERhdGFUb2tlbj86IEVhQ0RhdGFUb2tlbjtcblxuICBwdWJsaWMgRGF0YVRva2VuTG9va3VwPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBQcm9qZWN0TG9va3VwPzogc3RyaW5nO1xufVxuXG4vLyBleHBvcnQgY2xhc3MgU2F2ZURGU01vZGlmaWVyRm9yQXBwbGljYXRpb25FdmVudFJlcXVlc3Qge1xuLy8gICBwdWJsaWMgTW9kaWZpZXI6IEVhQ0RGU01vZGlmaWVyO1xuXG4vLyAgIHB1YmxpYyBNb2RpZmllckxvb2t1cDogc3RyaW5nO1xuXG4vLyAgIHB1YmxpYyBBcHBsaWNhdGlvbkxvb2t1cD86IHN0cmluZztcbi8vIH1cblxuZXhwb3J0IGNsYXNzIFNhdmVERlNNb2RpZmllckV2ZW50UmVxdWVzdCB7XG4gIHB1YmxpYyBBcHBsaWNhdGlvbkxvb2t1cD86IHN0cmluZztcblxuICBwdWJsaWMgTW9kaWZpZXI/OiBFYUNERlNNb2RpZmllcjtcblxuICBwdWJsaWMgTW9kaWZpZXJMb29rdXBzPzogQXJyYXk8c3RyaW5nPjtcblxuICBwdWJsaWMgUHJvamVjdExvb2t1cHM/OiBBcnJheTxzdHJpbmc+O1xufVxuXG5leHBvcnQgY2xhc3MgU2F2ZUVudmlyb25tZW50QXNDb2RlRXZlbnRSZXF1ZXN0IHtcbiAgcHVibGljIEVudGVycHJpc2VEYXRhVG9rZW5zPzogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNEYXRhVG9rZW4gfTtcblxuICBwdWJsaWMgRW52aXJvbm1lbnQ/OiBFYUNFbnZpcm9ubWVudEFzQ29kZTtcblxuICBwdWJsaWMgRW52aXJvbm1lbnRMb29rdXA/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBTYXZlUHJvamVjdEFzQ29kZUV2ZW50UmVxdWVzdCB7XG4gIHB1YmxpYyBQcm9qZWN0PzogRWFDUHJvamVjdEFzQ29kZTtcblxuICBwdWJsaWMgUHJvamVjdExvb2t1cD86IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEVhQ1NlcnZpY2Uge1xuICAvLyAgUHJvcGVydGllc1xuICBwdWJsaWMgZ2V0IEVkaXRpbmdQcm9qZWN0TG9va3VwKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvamVjdFNlcnZpY2UuRWRpdGluZ1Byb2plY3RMb29rdXA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IENyZWF0aW5nUHJvamVjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0U2VydmljZS5DcmVhdGluZ1Byb2plY3Q7XG4gIH1cblxuICBwdWJsaWMgU3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZTtcblxuICAvLyAgQ29uc3RydWN0b3JzXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnRcbiAgKSB7XG4gICAgdGhpcy5TdGF0ZSA9IG5ldyBBcHBsaWNhdGlvbnNGbG93U3RhdGUoKTtcbiAgfVxuXG4gIC8vICBBUEkgTWV0aG9kc1xuICBwdWJsaWMgQ2hlY2tVc2VyRmVlZEl0ZW0oZmVlZEl0ZW06IEZlZWRJdGVtKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChmZWVkSXRlbS5SZWZyZXNoTGluayk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgRGVsZXRlQXBwbGljYXRpb24oXG4gICAgYXBwTG9va3VwOiBzdHJpbmcsXG4gICAgYXBwTmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgaWYgKGNvbmZpcm0oYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgYXBwbGljYXRpb24gJyR7YXBwTmFtZX0nP2ApKSB7XG4gICAgICBjb25zdCBlYWM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICAgIEVudGVycHJpc2VMb29rdXA6IHRoaXMuU3RhdGUuRWFDLkVudGVycHJpc2VMb29rdXAsXG4gICAgICAgIEFwcGxpY2F0aW9uczoge30sXG4gICAgICB9O1xuXG4gICAgICBlYWMuQXBwbGljYXRpb25zW2FwcExvb2t1cF0gPSB7XG4gICAgICAgIEFwcGxpY2F0aW9uOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICAgICAgdGhpcy5TdGF0ZSxcbiAgICAgICAgZWFjXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBEZWxldGVEZXZPcHNBY3Rpb24oXG4gICAgZG9hTG9va3VwOiBzdHJpbmcsXG4gICAgZG9hTmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgaWYgKFxuICAgICAgY29uZmlybShgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBCdWlsZCBQaXBlbGluZSAnJHtkb2FOYW1lfSc/YClcbiAgICApIHtcbiAgICAgIGNvbnN0IGVhYzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgICAgRW52aXJvbm1lbnRzOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIGVhYy5FbnZpcm9ubWVudHNbdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZS5QcmltYXJ5RW52aXJvbm1lbnRdID0ge1xuICAgICAgICBEZXZPcHNBY3Rpb25zOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIGVhYy5FbnZpcm9ubWVudHNbXG4gICAgICAgIHRoaXMuU3RhdGUuRWFDLkVudGVycHJpc2UuUHJpbWFyeUVudmlyb25tZW50XG4gICAgICBdLkRldk9wc0FjdGlvbnNbZG9hTG9va3VwXSA9IHt9O1xuXG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHMoXG4gICAgICAgIHRoaXMuU3RhdGUsXG4gICAgICAgIGVhY1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgRGVsZXRlTW9kaWZpZXIoXG4gICAgbW9kaWZpZXJMb29rdXA6IHN0cmluZyxcbiAgICBtb2RpZmllck5hbWU6IHN0cmluZ1xuICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIGlmIChcbiAgICAgIGNvbmZpcm0oYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgTW9kaWZpZXIgJyR7bW9kaWZpZXJOYW1lfSc/YClcbiAgICApIHtcbiAgICAgIGNvbnN0IGVhYzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgICAgTW9kaWZpZXJzOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIGVhYy5Nb2RpZmllcnNbbW9kaWZpZXJMb29rdXBdID0ge307XG5cbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICAgICAgdGhpcy5TdGF0ZSxcbiAgICAgICAgZWFjXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBEZWxldGVQcm9qZWN0KFxuICAgIHByb2plY3RMb29rdXA6IHN0cmluZyxcbiAgICBwcm9qZWN0TmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgaWYgKGNvbmZpcm0oYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgUHJvamVjdCAnJHtwcm9qZWN0TmFtZX0nP2ApKSB7XG4gICAgICBjb25zdCBlYWM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICAgIEVudGVycHJpc2VMb29rdXA6IHRoaXMuU3RhdGUuRWFDLkVudGVycHJpc2VMb29rdXAsXG4gICAgICAgIFByb2plY3RzOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIGVhYy5Qcm9qZWN0c1twcm9qZWN0TG9va3VwXSA9IHtcbiAgICAgICAgUHJvamVjdDoge30sXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHMoXG4gICAgICAgIHRoaXMuU3RhdGUsXG4gICAgICAgIGVhY1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgRGVsZXRlU291cmNlQ29udHJvbChcbiAgICBzcmNMb29rdXA6IHN0cmluZyxcbiAgICBzcmNOYW1lOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICBpZiAoXG4gICAgICBjb25maXJtKGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIFNvdXJjZSBDb250cm9sICcke3NyY05hbWV9Jz9gKVxuICAgICkge1xuICAgICAgY29uc3QgZWFjOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICBFbnZpcm9ubWVudHM6IHt9LFxuICAgICAgfTtcblxuICAgICAgZWFjLkVudmlyb25tZW50c1t0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlLlByaW1hcnlFbnZpcm9ubWVudF0gPSB7XG4gICAgICAgIFNvdXJjZXM6IHt9LFxuICAgICAgfTtcblxuICAgICAgZWFjLkVudmlyb25tZW50c1t0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlLlByaW1hcnlFbnZpcm9ubWVudF0uU291cmNlc1tcbiAgICAgICAgc3JjTG9va3VwXG4gICAgICBdID0ge307XG5cbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICAgICAgdGhpcy5TdGF0ZSxcbiAgICAgICAgZWFjXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIHRoaXMuYXBwc0Zsb3dFdmVudHNTdmMuRW5zdXJlVXNlckVudGVycHJpc2VFdmVudC5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xuICAvLyAgIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuRW5zdXJlVXNlckVudGVycHJpc2UodGhpcy5TdGF0ZSk7XG4gIC8vIH0pO1xuXG4gIHB1YmxpYyBhc3luYyBFbnN1cmVVc2VyRW50ZXJwcmlzZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVuc3VyZVVzZXJFbnRlcnByaXNlKHRoaXMuU3RhdGUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIEVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICBlYWM6IEVudGVycHJpc2VBc0NvZGVcbiAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHModGhpcy5TdGF0ZSwgZWFjKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBHZXRBY3RpdmVFbnRlcnByaXNlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuR2V0QWN0aXZlRW50ZXJwcmlzZSh0aGlzLlN0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBMb2FkVXNlckZlZWQoXG4gICAgcGFnZTogbnVtYmVyLFxuICAgIHBhZ2VTaXplOiBudW1iZXIsXG4gICAgZm9yQ2hlY2s6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkxvYWRVc2VyRmVlZChcbiAgICAgIHBhZ2UsXG4gICAgICBwYWdlU2l6ZSxcbiAgICAgIGZvckNoZWNrLFxuICAgICAgdGhpcy5TdGF0ZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgR2VuZXJhdGVSb3V0ZWRBcHBsaWNhdGlvbnMoYXBwbGljYXRpb25zOiB7XG4gICAgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGU7XG4gIH0pOiB7XG4gICAgW3JvdXRlOiBzdHJpbmddOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH07XG4gIH0ge1xuICAgIHJldHVybiB0aGlzLnByb2plY3RTZXJ2aWNlLkdlbmVyYXRlUm91dGVkQXBwbGljYXRpb25zKFxuICAgICAgYXBwbGljYXRpb25zLFxuICAgICAgdGhpcy5TdGF0ZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgSGFzVmFsaWRDb25uZWN0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuSGFzVmFsaWRDb25uZWN0aW9uKHRoaXMuU3RhdGUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIExpc3RFbnRlcnByaXNlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkxpc3RFbnRlcnByaXNlcyh0aGlzLlN0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBMb2FkRW50ZXJwcmlzZUFzQ29kZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkxvYWRFbnRlcnByaXNlQXNDb2RlKHRoaXMuU3RhdGUpO1xuICB9XG5cbiAgcHVibGljIFJlbG9hZEZlZWQoKSB7XG4gICAgaWYgKHRoaXMuU3RhdGUuRmVlZENoZWNrKSB7XG4gICAgICB0aGlzLlN0YXRlLkZlZWQgPSB0aGlzLlN0YXRlLkZlZWRDaGVjay5JdGVtcztcblxuICAgICAgdGhpcy5TdGF0ZS5GZWVkQWN0aW9ucyA9IHRoaXMuU3RhdGUuRmVlZENoZWNrLkFjdGlvbnM7XG5cbiAgICAgIHRoaXMuU3RhdGUuRmVlZFNvdXJjZUNvbnRyb2xMb29rdXBzID1cbiAgICAgICAgdGhpcy5TdGF0ZS5GZWVkQ2hlY2suU291cmNlQ29udHJvbExvb2t1cHM7XG4gICAgfVxuXG4gICAgdGhpcy5TdGF0ZS5GZWVkQ2hlY2sgPSBudWxsO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFNhdmVBcHBsaWNhdGlvbkFzQ29kZShcbiAgICByZXE6IFNhdmVBcHBsaWNhdGlvbkFzQ29kZUV2ZW50UmVxdWVzdFxuICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmhhbmRsZVNhdmVBcHBsaWNhdGlvbihyZXEpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFNhdmVERlNNb2RpZmllcihcbiAgICByZXE6IFNhdmVERlNNb2RpZmllckV2ZW50UmVxdWVzdFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmhhbmRsZVNhdmVERlNNb2RpZmllcihyZXEpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFNhdmVFbnRlcnByaXNlQXNDb2RlKGVhYzogRW50ZXJwcmlzZUFzQ29kZSk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuU2F2ZUVudGVycHJpc2VBc0NvZGUodGhpcy5TdGF0ZSwgZWFjKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBTYXZlRW52aXJvbm1lbnRBc0NvZGUoXG4gICAgcmVxOiBTYXZlRW52aXJvbm1lbnRBc0NvZGVFdmVudFJlcXVlc3RcbiAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVTYXZlRW52aXJvbm1lbnQocmVxKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBTYXZlUHJvamVjdEFzQ29kZShcbiAgICByZXE6IFNhdmVQcm9qZWN0QXNDb2RlRXZlbnRSZXF1ZXN0XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuaGFuZGxlU2F2ZVByb2plY3QocmVxLlByb2plY3RMb29rdXAsIHJlcS5Qcm9qZWN0KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBTZXRBY3RpdmVFbnRlcnByaXNlKGVudExvb2t1cDogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5wcm9qZWN0U2VydmljZS5TZXRBY3RpdmVFbnRlcnByaXNlKHRoaXMuU3RhdGUsIGVudExvb2t1cCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgU2V0Q3JlYXRpbmdQcm9qZWN0KGNyZWF0aW5nUHJvamVjdDogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMucHJvamVjdFNlcnZpY2UuU2V0Q3JlYXRpbmdQcm9qZWN0KGNyZWF0aW5nUHJvamVjdCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgU2V0RWRpdFByb2plY3RTZXR0aW5ncyhwcm9qZWN0TG9va3VwOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNldEVkaXRQcm9qZWN0U2V0dGluZ3ModGhpcy5TdGF0ZSwgcHJvamVjdExvb2t1cCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgU3VibWl0RmVlZEVudHJ5KGVudHJ5OiBGZWVkRW50cnkpOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlN1Ym1pdEZlZWRFbnRyeSh0aGlzLlN0YXRlLCBlbnRyeSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgVW5wYWNrTG93Q29kZVVuaXQocmVxOiBVbnBhY2tMb3dDb2RlVW5pdFJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoXG4gICAgICBjb25maXJtKFxuICAgICAgICBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHVucGFjayBhcHBsaWNhdGlvbiAnJHtyZXEuQXBwbGljYXRpb25OYW1lfScgd2l0aCB2ZXJzaW9uICcke3JlcS5WZXJzaW9ufSc/YFxuICAgICAgKVxuICAgICkge1xuICAgICAgYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5VbnBhY2tMb3dDb2RlVW5pdCh0aGlzLlN0YXRlLCByZXEpO1xuICAgIH1cbiAgfVxuXG4gIC8vICBIZWxwZXJzXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTYXZlQXBwbGljYXRpb24oXG4gICAgcmVxOiBTYXZlQXBwbGljYXRpb25Bc0NvZGVFdmVudFJlcXVlc3RcbiAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICBjb25zdCBzYXZlRWFDOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgIEFwcGxpY2F0aW9uczoge30sXG4gICAgICBQcm9qZWN0czoge30sXG4gICAgfTtcblxuICAgIGNvbnN0IGV4aXN0aW5nUHJvaiA9IHtcbiAgICAgIC4uLnRoaXMuU3RhdGUuRWFDLlByb2plY3RzW3JlcS5Qcm9qZWN0TG9va3VwXSxcbiAgICB9O1xuXG4gICAgaWYgKGV4aXN0aW5nUHJvai5BcHBsaWNhdGlvbkxvb2t1cHM/LmluZGV4T2YocmVxLkFwcGxpY2F0aW9uTG9va3VwKSA8IDApIHtcbiAgICAgIGlmICghZXhpc3RpbmdQcm9qLkFwcGxpY2F0aW9uTG9va3Vwcykge1xuICAgICAgICBleGlzdGluZ1Byb2ouQXBwbGljYXRpb25Mb29rdXBzID0gW107XG4gICAgICB9XG5cbiAgICAgIGV4aXN0aW5nUHJvai5BcHBsaWNhdGlvbkxvb2t1cHMucHVzaChyZXEuQXBwbGljYXRpb25Mb29rdXApO1xuXG4gICAgICBzYXZlRWFDLlByb2plY3RzW3JlcS5Qcm9qZWN0TG9va3VwXSA9IGV4aXN0aW5nUHJvajtcbiAgICB9XG5cbiAgICBpZiAocmVxLkFwcGxpY2F0aW9uKSB7XG4gICAgICBzYXZlRWFDLkFwcGxpY2F0aW9uc1tyZXEuQXBwbGljYXRpb25Mb29rdXBdID0gcmVxLkFwcGxpY2F0aW9uO1xuICAgIH1cblxuICAgIGlmIChyZXEuRGF0YVRva2VuKSB7XG4gICAgICBzYXZlRWFDLkFwcGxpY2F0aW9uc1tyZXEuQXBwbGljYXRpb25Mb29rdXBdLkRhdGFUb2tlbnNbXG4gICAgICAgIHJlcS5EYXRhVG9rZW5Mb29rdXBcbiAgICAgIF0gPSByZXEuRGF0YVRva2VuO1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNhdmVFbnRlcnByaXNlQXNDb2RlKHRoaXMuU3RhdGUsIHNhdmVFYUMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNhdmVERlNNb2RpZmllcihcbiAgICByZXE6IFNhdmVERlNNb2RpZmllckV2ZW50UmVxdWVzdFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBzYXZlRWFDOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgIE1vZGlmaWVyczoge30sXG4gICAgICBQcm9qZWN0czoge30sXG4gICAgICBBcHBsaWNhdGlvbnM6IHt9LFxuICAgIH07XG5cbiAgICBpZiAocmVxLk1vZGlmaWVyKSB7XG4gICAgICBzYXZlRWFDLk1vZGlmaWVyc1tyZXEuTW9kaWZpZXJMb29rdXBzWzBdXSA9IHJlcS5Nb2RpZmllcjtcbiAgICB9XG5cbiAgICBpZiAocmVxLlByb2plY3RMb29rdXBzKSB7XG4gICAgICByZXEuUHJvamVjdExvb2t1cHMuZm9yRWFjaCgobG9va3VwKSA9PiB7XG4gICAgICAgIHNhdmVFYUMuUHJvamVjdHNbbG9va3VwXSA9IHtcbiAgICAgICAgICBNb2RpZmllckxvb2t1cHM6IHJlcS5Nb2RpZmllckxvb2t1cHMsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAocmVxLkFwcGxpY2F0aW9uTG9va3VwKSB7XG4gICAgICBjb25zb2xlLmxvZygnQVBQTE9va3VwOiAnLCByZXEuQXBwbGljYXRpb25Mb29rdXApO1xuICAgICAgY29uc29sZS5sb2coJ3NhdmVFQUM6ICcsIHNhdmVFYUMpO1xuICAgICAgc2F2ZUVhQy5BcHBsaWNhdGlvbnNbcmVxLkFwcGxpY2F0aW9uTG9va3VwXSA9IHtcbiAgICAgICAgTW9kaWZpZXJMb29rdXBzOiByZXEuTW9kaWZpZXJMb29rdXBzLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNhdmVFbnRlcnByaXNlQXNDb2RlKHRoaXMuU3RhdGUsIHNhdmVFYUMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNhdmVFbnZpcm9ubWVudChcbiAgICByZXE6IFNhdmVFbnZpcm9ubWVudEFzQ29kZUV2ZW50UmVxdWVzdFxuICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIGNvbnN0IHNhdmVFYUM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlPy5FYUM/LkVudGVycHJpc2VMb29rdXAsXG4gICAgICBEYXRhVG9rZW5zOiB7fSxcbiAgICAgIEVudmlyb25tZW50czoge30sXG4gICAgfTtcblxuICAgIGlmIChyZXEuRW52aXJvbm1lbnQpIHtcbiAgICAgIHNhdmVFYUMuRW52aXJvbm1lbnRzW3JlcS5FbnZpcm9ubWVudExvb2t1cF0gPSByZXEuRW52aXJvbm1lbnQ7XG4gICAgfVxuXG4gICAgaWYgKHJlcS5FbnRlcnByaXNlRGF0YVRva2Vucykge1xuICAgICAgc2F2ZUVhQy5EYXRhVG9rZW5zID0gcmVxLkVudGVycHJpc2VEYXRhVG9rZW5zO1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNhdmVFbnRlcnByaXNlQXNDb2RlKHRoaXMuU3RhdGUsIHNhdmVFYUMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNhdmVQcm9qZWN0KFxuICAgIHByb2plY3RMb29rdXA6IHN0cmluZyxcbiAgICBwcm9qZWN0OiBFYUNQcm9qZWN0QXNDb2RlXG4gICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgY29uc3QgcHJvakhvc3RzOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0hvc3QgfSA9IHt9O1xuXG4gICAgcHJvamVjdD8uSG9zdHM/LmZvckVhY2goKGhvc3Q6IGFueSkgPT4ge1xuICAgICAgcHJvakhvc3RzW2hvc3RdID0gdGhpcy5TdGF0ZS5FYUMuSG9zdHNbaG9zdF07XG4gICAgfSk7XG5cbiAgICBjb25zdCBzYXZlRWFDOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgIEVudGVycHJpc2U6IHtcbiAgICAgICAgLi4udGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZSxcbiAgICAgICAgUHJpbWFyeUhvc3Q6IHByb2plY3QuSG9zdHNbMF0sXG4gICAgICB9LFxuICAgICAgSG9zdHM6IHByb2pIb3N0cyxcbiAgICAgIC8vIFByb3ZpZGVyczogdGhpcy5TdGF0ZS5FYUMuUHJvdmlkZXJzLCAgLy8gIFRPRE86ICBSZW1vdmUgYWZ0ZXIgYWxsIHByb3ZpZGVycyBBREIyQydzIGhhdmUgYmVlbiB1cGdyYWRlZFxuICAgICAgUHJvamVjdHM6IHt9LFxuICAgIH07XG5cbiAgICBzYXZlRWFDLlByb2plY3RzW3Byb2plY3RMb29rdXBdID0gcHJvamVjdDtcblxuICAgIGxldCBzdGF0dXMgPSBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNhdmVFbnRlcnByaXNlQXNDb2RlKFxuICAgICAgdGhpcy5TdGF0ZSxcbiAgICAgIHNhdmVFYUNcbiAgICApO1xuXG4gICAgdGhpcy5TZXRFZGl0UHJvamVjdFNldHRpbmdzKHByb2plY3RMb29rdXApO1xuXG4gICAgcmV0dXJuIHN0YXR1cztcbiAgfVxufVxuIl19
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWFjLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21tb24vc3JjL2xpYi9zZXJ2aWNlcy9lYWMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFDTCxxQkFBcUIsR0FFdEIsTUFBTSxrQ0FBa0MsQ0FBQzs7OztBQWUxQyxNQUFNLE9BQU8saUNBQWlDO0NBTTdDO0FBRUQsTUFBTSxPQUFPLDJCQUEyQjtDQVF2QztBQUVELE1BQU0sT0FBTyxpQ0FBaUM7Q0FNN0M7QUFFRCxNQUFNLE9BQU8sNkJBQTZCO0NBSXpDO0FBS0QsTUFBTSxPQUFPLFVBQVU7SUFZckIsZ0JBQWdCO0lBQ2hCLFlBQ1ksY0FBOEIsRUFDOUIsSUFBZ0I7UUFEaEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLFNBQUksR0FBSixJQUFJLENBQVk7UUFFMUIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7SUFDM0MsQ0FBQztJQWpCRCxjQUFjO0lBQ2QsSUFBVyxvQkFBb0I7UUFDN0IsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLG9CQUFvQixDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQztJQUM3QyxDQUFDO0lBWUQsZUFBZTtJQUNSLGlCQUFpQixDQUFDLFFBQWtCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFTSxLQUFLLENBQUMsaUJBQWlCLENBQzVCLFNBQWlCLEVBQ2pCLE9BQWU7UUFFZixJQUFJLE9BQU8sQ0FBQyxnREFBZ0QsT0FBTyxJQUFJLENBQUMsRUFBRTtZQUN4RSxNQUFNLEdBQUcsR0FB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RCxJQUFJLENBQUMsS0FBSyxFQUNWLE9BQU8sQ0FDUixDQUFDO1FBRUYsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTNDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O3VHQTFYVSxVQUFVOzJHQUFWLFVBQVUsY0FGVCxNQUFNOzJGQUVQLFVBQVU7a0JBSHRCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJvamVjdFNlcnZpY2UgfSBmcm9tICcuL3Byb2plY3Quc2VydmljZSc7XG5pbXBvcnQge1xuICBBcHBsaWNhdGlvbnNGbG93U3RhdGUsXG4gIFVucGFja0xvd0NvZGVVbml0UmVxdWVzdCxcbn0gZnJvbSAnLi4vc3RhdGUvYXBwbGljYXRpb25zLWZsb3cuc3RhdGUnO1xuaW1wb3J0IHtcbiAgRWFDQXBwbGljYXRpb25Bc0NvZGUsXG4gIEVhQ0RhdGFUb2tlbixcbiAgRWFDREZTTW9kaWZpZXIsXG4gIEVhQ0Vudmlyb25tZW50QXNDb2RlLFxuICBFYUNIb3N0LFxuICBFYUNQcm9qZWN0QXNDb2RlLFxuICBFbnRlcnByaXNlQXNDb2RlLFxufSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHsgRmVlZEVudHJ5LCBGZWVkSXRlbSB9IGZyb20gJy4uL21vZGVscy91c2VyLWZlZWQubW9kZWwnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFN0YXR1cyB9IGZyb20gJ0BsY3UvY29tbW9uJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNsYXNzIFNhdmVBcHBsaWNhdGlvbkFzQ29kZUV2ZW50UmVxdWVzdCB7XG4gIHB1YmxpYyBBcHBsaWNhdGlvbj86IEVhQ0FwcGxpY2F0aW9uQXNDb2RlO1xuXG4gIHB1YmxpYyBBcHBsaWNhdGlvbkxvb2t1cD86IHN0cmluZztcblxuICBwdWJsaWMgUHJvamVjdExvb2t1cD86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFNhdmVERlNNb2RpZmllckV2ZW50UmVxdWVzdCB7XG4gIHB1YmxpYyBBcHBsaWNhdGlvbkxvb2t1cD86IHN0cmluZztcblxuICBwdWJsaWMgTW9kaWZpZXI/OiBFYUNERlNNb2RpZmllcjtcblxuICBwdWJsaWMgTW9kaWZpZXJMb29rdXBzPzogQXJyYXk8c3RyaW5nPjtcblxuICBwdWJsaWMgUHJvamVjdExvb2t1cHM/OiBBcnJheTxzdHJpbmc+O1xufVxuXG5leHBvcnQgY2xhc3MgU2F2ZUVudmlyb25tZW50QXNDb2RlRXZlbnRSZXF1ZXN0IHtcbiAgcHVibGljIEVudGVycHJpc2VEYXRhVG9rZW5zPzogeyBbbG9va3VwOiBzdHJpbmddOiBFYUNEYXRhVG9rZW4gfTtcblxuICBwdWJsaWMgRW52aXJvbm1lbnQ/OiBFYUNFbnZpcm9ubWVudEFzQ29kZTtcblxuICBwdWJsaWMgRW52aXJvbm1lbnRMb29rdXA/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBTYXZlUHJvamVjdEFzQ29kZUV2ZW50UmVxdWVzdCB7XG4gIHB1YmxpYyBQcm9qZWN0PzogRWFDUHJvamVjdEFzQ29kZTtcblxuICBwdWJsaWMgUHJvamVjdExvb2t1cD86IHN0cmluZztcbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEVhQ1NlcnZpY2Uge1xuICAvLyAgUHJvcGVydGllc1xuICBwdWJsaWMgZ2V0IEVkaXRpbmdQcm9qZWN0TG9va3VwKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucHJvamVjdFNlcnZpY2UuRWRpdGluZ1Byb2plY3RMb29rdXA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IENyZWF0aW5nUHJvamVjdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0U2VydmljZS5DcmVhdGluZ1Byb2plY3Q7XG4gIH1cblxuICBwdWJsaWMgU3RhdGU6IEFwcGxpY2F0aW9uc0Zsb3dTdGF0ZTtcblxuICAvLyAgQ29uc3RydWN0b3JzXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBwcm9qZWN0U2VydmljZTogUHJvamVjdFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnRcbiAgKSB7XG4gICAgdGhpcy5TdGF0ZSA9IG5ldyBBcHBsaWNhdGlvbnNGbG93U3RhdGUoKTtcbiAgfVxuXG4gIC8vICBBUEkgTWV0aG9kc1xuICBwdWJsaWMgQ2hlY2tVc2VyRmVlZEl0ZW0oZmVlZEl0ZW06IEZlZWRJdGVtKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChmZWVkSXRlbS5SZWZyZXNoTGluayk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgRGVsZXRlQXBwbGljYXRpb24oXG4gICAgYXBwTG9va3VwOiBzdHJpbmcsXG4gICAgYXBwTmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgaWYgKGNvbmZpcm0oYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgYXBwbGljYXRpb24gJyR7YXBwTmFtZX0nP2ApKSB7XG4gICAgICBjb25zdCBlYWM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICAgIEVudGVycHJpc2VMb29rdXA6IHRoaXMuU3RhdGUuRWFDLkVudGVycHJpc2VMb29rdXAsXG4gICAgICAgIEFwcGxpY2F0aW9uczoge30sXG4gICAgICB9O1xuXG4gICAgICBlYWMuQXBwbGljYXRpb25zW2FwcExvb2t1cF0gPSB7XG4gICAgICAgIEFwcGxpY2F0aW9uOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICAgICAgdGhpcy5TdGF0ZSxcbiAgICAgICAgZWFjXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBEZWxldGVEZXZPcHNBY3Rpb24oXG4gICAgZG9hTG9va3VwOiBzdHJpbmcsXG4gICAgZG9hTmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgaWYgKFxuICAgICAgY29uZmlybShgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSBCdWlsZCBQaXBlbGluZSAnJHtkb2FOYW1lfSc/YClcbiAgICApIHtcbiAgICAgIGNvbnN0IGVhYzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgICAgRW52aXJvbm1lbnRzOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIGVhYy5FbnZpcm9ubWVudHNbdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZS5QcmltYXJ5RW52aXJvbm1lbnRdID0ge1xuICAgICAgICBEZXZPcHNBY3Rpb25zOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIGVhYy5FbnZpcm9ubWVudHNbXG4gICAgICAgIHRoaXMuU3RhdGUuRWFDLkVudGVycHJpc2UuUHJpbWFyeUVudmlyb25tZW50XG4gICAgICBdLkRldk9wc0FjdGlvbnNbZG9hTG9va3VwXSA9IHt9O1xuXG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHMoXG4gICAgICAgIHRoaXMuU3RhdGUsXG4gICAgICAgIGVhY1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgRGVsZXRlTW9kaWZpZXIoXG4gICAgbW9kaWZpZXJMb29rdXA6IHN0cmluZyxcbiAgICBtb2RpZmllck5hbWU6IHN0cmluZ1xuICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIGlmIChcbiAgICAgIGNvbmZpcm0oYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgTW9kaWZpZXIgJyR7bW9kaWZpZXJOYW1lfSc/YClcbiAgICApIHtcbiAgICAgIGNvbnN0IGVhYzogRW50ZXJwcmlzZUFzQ29kZSA9IHtcbiAgICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgICAgTW9kaWZpZXJzOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIGVhYy5Nb2RpZmllcnNbbW9kaWZpZXJMb29rdXBdID0ge307XG5cbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICAgICAgdGhpcy5TdGF0ZSxcbiAgICAgICAgZWFjXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBEZWxldGVQcm9qZWN0KFxuICAgIHByb2plY3RMb29rdXA6IHN0cmluZyxcbiAgICBwcm9qZWN0TmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgaWYgKGNvbmZpcm0oYEFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgUHJvamVjdCAnJHtwcm9qZWN0TmFtZX0nP2ApKSB7XG4gICAgICBjb25zdCBlYWM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICAgIEVudGVycHJpc2VMb29rdXA6IHRoaXMuU3RhdGUuRWFDLkVudGVycHJpc2VMb29rdXAsXG4gICAgICAgIFByb2plY3RzOiB7fSxcbiAgICAgIH07XG5cbiAgICAgIGVhYy5Qcm9qZWN0c1twcm9qZWN0TG9va3VwXSA9IHtcbiAgICAgICAgUHJvamVjdDoge30sXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHMoXG4gICAgICAgIHRoaXMuU3RhdGUsXG4gICAgICAgIGVhY1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgRGVsZXRlU291cmNlQ29udHJvbChcbiAgICBzcmNMb29rdXA6IHN0cmluZyxcbiAgICBzcmNOYW1lOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICBpZiAoXG4gICAgICBjb25maXJtKGBBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGVsZXRlIFNvdXJjZSBDb250cm9sICcke3NyY05hbWV9Jz9gKVxuICAgICkge1xuICAgICAgY29uc3QgZWFjOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlTG9va3VwLFxuICAgICAgICBFbnZpcm9ubWVudHM6IHt9LFxuICAgICAgfTtcblxuICAgICAgZWFjLkVudmlyb25tZW50c1t0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlLlByaW1hcnlFbnZpcm9ubWVudF0gPSB7XG4gICAgICAgIFNvdXJjZXM6IHt9LFxuICAgICAgfTtcblxuICAgICAgZWFjLkVudmlyb25tZW50c1t0aGlzLlN0YXRlLkVhQy5FbnRlcnByaXNlLlByaW1hcnlFbnZpcm9ubWVudF0uU291cmNlc1tcbiAgICAgICAgc3JjTG9va3VwXG4gICAgICBdID0ge307XG5cbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICAgICAgdGhpcy5TdGF0ZSxcbiAgICAgICAgZWFjXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8vIHRoaXMuYXBwc0Zsb3dFdmVudHNTdmMuRW5zdXJlVXNlckVudGVycHJpc2VFdmVudC5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xuICAvLyAgIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuRW5zdXJlVXNlckVudGVycHJpc2UodGhpcy5TdGF0ZSk7XG4gIC8vIH0pO1xuXG4gIHB1YmxpYyBhc3luYyBFbnN1cmVVc2VyRW50ZXJwcmlzZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkVuc3VyZVVzZXJFbnRlcnByaXNlKHRoaXMuU3RhdGUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIEVudGVycHJpc2VBc0NvZGVSZW1vdmFscyhcbiAgICBlYWM6IEVudGVycHJpc2VBc0NvZGVcbiAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9qZWN0U2VydmljZS5FbnRlcnByaXNlQXNDb2RlUmVtb3ZhbHModGhpcy5TdGF0ZSwgZWFjKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBHZXRBY3RpdmVFbnRlcnByaXNlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuR2V0QWN0aXZlRW50ZXJwcmlzZSh0aGlzLlN0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBMb2FkVXNlckZlZWQoXG4gICAgcGFnZTogbnVtYmVyLFxuICAgIHBhZ2VTaXplOiBudW1iZXIsXG4gICAgZm9yQ2hlY2s6IGJvb2xlYW4gPSBmYWxzZVxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkxvYWRVc2VyRmVlZChcbiAgICAgIHBhZ2UsXG4gICAgICBwYWdlU2l6ZSxcbiAgICAgIGZvckNoZWNrLFxuICAgICAgdGhpcy5TdGF0ZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgR2VuZXJhdGVSb3V0ZWRBcHBsaWNhdGlvbnMoYXBwbGljYXRpb25zOiB7XG4gICAgW2xvb2t1cDogc3RyaW5nXTogRWFDQXBwbGljYXRpb25Bc0NvZGU7XG4gIH0pOiB7XG4gICAgW3JvdXRlOiBzdHJpbmddOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH07XG4gIH0ge1xuICAgIHJldHVybiB0aGlzLnByb2plY3RTZXJ2aWNlLkdlbmVyYXRlUm91dGVkQXBwbGljYXRpb25zKFxuICAgICAgYXBwbGljYXRpb25zLFxuICAgICAgdGhpcy5TdGF0ZVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgSGFzVmFsaWRDb25uZWN0aW9uKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuSGFzVmFsaWRDb25uZWN0aW9uKHRoaXMuU3RhdGUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIExpc3RFbnRlcnByaXNlcygpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkxpc3RFbnRlcnByaXNlcyh0aGlzLlN0YXRlKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBMb2FkRW50ZXJwcmlzZUFzQ29kZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLkxvYWRFbnRlcnByaXNlQXNDb2RlKHRoaXMuU3RhdGUpO1xuICB9XG5cbiAgcHVibGljIFJlbG9hZEZlZWQoKSB7XG4gICAgaWYgKHRoaXMuU3RhdGUuRmVlZENoZWNrKSB7XG4gICAgICB0aGlzLlN0YXRlLkZlZWQgPSB0aGlzLlN0YXRlLkZlZWRDaGVjay5JdGVtcztcblxuICAgICAgdGhpcy5TdGF0ZS5GZWVkQWN0aW9ucyA9IHRoaXMuU3RhdGUuRmVlZENoZWNrLkFjdGlvbnM7XG5cbiAgICAgIHRoaXMuU3RhdGUuRmVlZFNvdXJjZUNvbnRyb2xMb29rdXBzID1cbiAgICAgICAgdGhpcy5TdGF0ZS5GZWVkQ2hlY2suU291cmNlQ29udHJvbExvb2t1cHM7XG4gICAgfVxuXG4gICAgdGhpcy5TdGF0ZS5GZWVkQ2hlY2sgPSBudWxsO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFNhdmVBcHBsaWNhdGlvbkFzQ29kZShcbiAgICByZXE6IFNhdmVBcHBsaWNhdGlvbkFzQ29kZUV2ZW50UmVxdWVzdFxuICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmhhbmRsZVNhdmVBcHBsaWNhdGlvbihyZXEpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFNhdmVERlNNb2RpZmllcihcbiAgICByZXE6IFNhdmVERlNNb2RpZmllckV2ZW50UmVxdWVzdFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLmhhbmRsZVNhdmVERlNNb2RpZmllcihyZXEpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIFNhdmVFbnRlcnByaXNlQXNDb2RlKGVhYzogRW50ZXJwcmlzZUFzQ29kZSk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJvamVjdFNlcnZpY2UuU2F2ZUVudGVycHJpc2VBc0NvZGUodGhpcy5TdGF0ZSwgZWFjKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBTYXZlRW52aXJvbm1lbnRBc0NvZGUoXG4gICAgcmVxOiBTYXZlRW52aXJvbm1lbnRBc0NvZGVFdmVudFJlcXVlc3RcbiAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5oYW5kbGVTYXZlRW52aXJvbm1lbnQocmVxKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBTYXZlUHJvamVjdEFzQ29kZShcbiAgICByZXE6IFNhdmVQcm9qZWN0QXNDb2RlRXZlbnRSZXF1ZXN0XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuaGFuZGxlU2F2ZVByb2plY3QocmVxLlByb2plY3RMb29rdXAsIHJlcS5Qcm9qZWN0KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBTZXRBY3RpdmVFbnRlcnByaXNlKGVudExvb2t1cDogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5wcm9qZWN0U2VydmljZS5TZXRBY3RpdmVFbnRlcnByaXNlKHRoaXMuU3RhdGUsIGVudExvb2t1cCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgU2V0Q3JlYXRpbmdQcm9qZWN0KGNyZWF0aW5nUHJvamVjdDogYm9vbGVhbik6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMucHJvamVjdFNlcnZpY2UuU2V0Q3JlYXRpbmdQcm9qZWN0KGNyZWF0aW5nUHJvamVjdCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgU2V0RWRpdFByb2plY3RTZXR0aW5ncyhwcm9qZWN0TG9va3VwOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNldEVkaXRQcm9qZWN0U2V0dGluZ3ModGhpcy5TdGF0ZSwgcHJvamVjdExvb2t1cCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgU3VibWl0RmVlZEVudHJ5KGVudHJ5OiBGZWVkRW50cnkpOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlN1Ym1pdEZlZWRFbnRyeSh0aGlzLlN0YXRlLCBlbnRyeSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgVW5wYWNrTG93Q29kZVVuaXQocmVxOiBVbnBhY2tMb3dDb2RlVW5pdFJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoXG4gICAgICBjb25maXJtKFxuICAgICAgICBgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHVucGFjayBhcHBsaWNhdGlvbiAnJHtyZXEuQXBwbGljYXRpb25OYW1lfScgd2l0aCB2ZXJzaW9uICcke3JlcS5WZXJzaW9ufSc/YFxuICAgICAgKVxuICAgICkge1xuICAgICAgYXdhaXQgdGhpcy5wcm9qZWN0U2VydmljZS5VbnBhY2tMb3dDb2RlVW5pdCh0aGlzLlN0YXRlLCByZXEpO1xuICAgIH1cbiAgfVxuXG4gIC8vICBIZWxwZXJzXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTYXZlQXBwbGljYXRpb24oXG4gICAgcmVxOiBTYXZlQXBwbGljYXRpb25Bc0NvZGVFdmVudFJlcXVlc3RcbiAgKTogUHJvbWlzZTxTdGF0dXM+IHtcbiAgICBjb25zdCBzYXZlRWFDOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgIEFwcGxpY2F0aW9uczoge30sXG4gICAgICBQcm9qZWN0czoge30sXG4gICAgfTtcblxuICAgIGNvbnN0IGV4aXN0aW5nUHJvaiA9IHtcbiAgICAgIC4uLnRoaXMuU3RhdGUuRWFDLlByb2plY3RzW3JlcS5Qcm9qZWN0TG9va3VwXSxcbiAgICB9O1xuXG4gICAgaWYgKGV4aXN0aW5nUHJvai5BcHBsaWNhdGlvbkxvb2t1cHM/LmluZGV4T2YocmVxLkFwcGxpY2F0aW9uTG9va3VwKSA8IDApIHtcbiAgICAgIGlmICghZXhpc3RpbmdQcm9qLkFwcGxpY2F0aW9uTG9va3Vwcykge1xuICAgICAgICBleGlzdGluZ1Byb2ouQXBwbGljYXRpb25Mb29rdXBzID0gW107XG4gICAgICB9XG5cbiAgICAgIGV4aXN0aW5nUHJvai5BcHBsaWNhdGlvbkxvb2t1cHMucHVzaChyZXEuQXBwbGljYXRpb25Mb29rdXApO1xuXG4gICAgICBzYXZlRWFDLlByb2plY3RzW3JlcS5Qcm9qZWN0TG9va3VwXSA9IGV4aXN0aW5nUHJvajtcbiAgICB9XG5cbiAgICBpZiAocmVxLkFwcGxpY2F0aW9uKSB7XG4gICAgICBzYXZlRWFDLkFwcGxpY2F0aW9uc1tyZXEuQXBwbGljYXRpb25Mb29rdXBdID0gcmVxLkFwcGxpY2F0aW9uO1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNhdmVFbnRlcnByaXNlQXNDb2RlKHRoaXMuU3RhdGUsIHNhdmVFYUMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNhdmVERlNNb2RpZmllcihcbiAgICByZXE6IFNhdmVERlNNb2RpZmllckV2ZW50UmVxdWVzdFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBzYXZlRWFDOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgIE1vZGlmaWVyczoge30sXG4gICAgICBQcm9qZWN0czoge30sXG4gICAgICBBcHBsaWNhdGlvbnM6IHt9LFxuICAgIH07XG5cbiAgICBpZiAocmVxLk1vZGlmaWVyKSB7XG4gICAgICBzYXZlRWFDLk1vZGlmaWVyc1tyZXEuTW9kaWZpZXJMb29rdXBzWzBdXSA9IHJlcS5Nb2RpZmllcjtcbiAgICB9XG5cbiAgICBpZiAocmVxLlByb2plY3RMb29rdXBzKSB7XG4gICAgICByZXEuUHJvamVjdExvb2t1cHMuZm9yRWFjaCgobG9va3VwKSA9PiB7XG4gICAgICAgIHNhdmVFYUMuUHJvamVjdHNbbG9va3VwXSA9IHtcbiAgICAgICAgICBNb2RpZmllckxvb2t1cHM6IHJlcS5Nb2RpZmllckxvb2t1cHMsXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAocmVxLkFwcGxpY2F0aW9uTG9va3VwKSB7XG4gICAgICBjb25zb2xlLmxvZygnQVBQTE9va3VwOiAnLCByZXEuQXBwbGljYXRpb25Mb29rdXApO1xuICAgICAgY29uc29sZS5sb2coJ3NhdmVFQUM6ICcsIHNhdmVFYUMpO1xuICAgICAgc2F2ZUVhQy5BcHBsaWNhdGlvbnNbcmVxLkFwcGxpY2F0aW9uTG9va3VwXSA9IHtcbiAgICAgICAgTW9kaWZpZXJMb29rdXBzOiByZXEuTW9kaWZpZXJMb29rdXBzLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNhdmVFbnRlcnByaXNlQXNDb2RlKHRoaXMuU3RhdGUsIHNhdmVFYUMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNhdmVFbnZpcm9ubWVudChcbiAgICByZXE6IFNhdmVFbnZpcm9ubWVudEFzQ29kZUV2ZW50UmVxdWVzdFxuICApOiBQcm9taXNlPFN0YXR1cz4ge1xuICAgIGNvbnN0IHNhdmVFYUM6IEVudGVycHJpc2VBc0NvZGUgPSB7XG4gICAgICBFbnRlcnByaXNlTG9va3VwOiB0aGlzLlN0YXRlPy5FYUM/LkVudGVycHJpc2VMb29rdXAsXG4gICAgICBEYXRhVG9rZW5zOiB7fSxcbiAgICAgIEVudmlyb25tZW50czoge30sXG4gICAgfTtcblxuICAgIGlmIChyZXEuRW52aXJvbm1lbnQpIHtcbiAgICAgIHNhdmVFYUMuRW52aXJvbm1lbnRzW3JlcS5FbnZpcm9ubWVudExvb2t1cF0gPSByZXEuRW52aXJvbm1lbnQ7XG4gICAgfVxuXG4gICAgaWYgKHJlcS5FbnRlcnByaXNlRGF0YVRva2Vucykge1xuICAgICAgc2F2ZUVhQy5EYXRhVG9rZW5zID0gcmVxLkVudGVycHJpc2VEYXRhVG9rZW5zO1xuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNhdmVFbnRlcnByaXNlQXNDb2RlKHRoaXMuU3RhdGUsIHNhdmVFYUMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNhdmVQcm9qZWN0KFxuICAgIHByb2plY3RMb29rdXA6IHN0cmluZyxcbiAgICBwcm9qZWN0OiBFYUNQcm9qZWN0QXNDb2RlXG4gICk6IFByb21pc2U8U3RhdHVzPiB7XG4gICAgY29uc3QgcHJvakhvc3RzOiB7IFtsb29rdXA6IHN0cmluZ106IEVhQ0hvc3QgfSA9IHt9O1xuXG4gICAgcHJvamVjdD8uSG9zdHM/LmZvckVhY2goKGhvc3Q6IGFueSkgPT4ge1xuICAgICAgcHJvakhvc3RzW2hvc3RdID0gdGhpcy5TdGF0ZS5FYUMuSG9zdHNbaG9zdF07XG4gICAgfSk7XG5cbiAgICBjb25zdCBzYXZlRWFDOiBFbnRlcnByaXNlQXNDb2RlID0ge1xuICAgICAgRW50ZXJwcmlzZUxvb2t1cDogdGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZUxvb2t1cCxcbiAgICAgIEVudGVycHJpc2U6IHtcbiAgICAgICAgLi4udGhpcy5TdGF0ZS5FYUMuRW50ZXJwcmlzZSxcbiAgICAgICAgUHJpbWFyeUhvc3Q6IHByb2plY3QuSG9zdHNbMF0sXG4gICAgICB9LFxuICAgICAgSG9zdHM6IHByb2pIb3N0cyxcbiAgICAgIC8vIFByb3ZpZGVyczogdGhpcy5TdGF0ZS5FYUMuUHJvdmlkZXJzLCAgLy8gIFRPRE86ICBSZW1vdmUgYWZ0ZXIgYWxsIHByb3ZpZGVycyBBREIyQydzIGhhdmUgYmVlbiB1cGdyYWRlZFxuICAgICAgUHJvamVjdHM6IHt9LFxuICAgIH07XG5cbiAgICBzYXZlRWFDLlByb2plY3RzW3Byb2plY3RMb29rdXBdID0gcHJvamVjdDtcblxuICAgIGxldCBzdGF0dXMgPSBhd2FpdCB0aGlzLnByb2plY3RTZXJ2aWNlLlNhdmVFbnRlcnByaXNlQXNDb2RlKFxuICAgICAgdGhpcy5TdGF0ZSxcbiAgICAgIHNhdmVFYUNcbiAgICApO1xuXG4gICAgdGhpcy5TZXRFZGl0UHJvamVjdFNldHRpbmdzKHByb2plY3RMb29rdXApO1xuXG4gICAgcmV0dXJuIHN0YXR1cztcbiAgfVxufVxuIl19