barsa-sap-ui 2.2.11 → 2.2.13

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.
@@ -1,25 +1,30 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import { BaseViewItemPropsComponent, UploadService } from 'barsa-novin-ray-core';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@fundamental-ngx/core/bar";
5
- import * as i2 from "../fullscreen-files.directive";
6
- import * as i3 from "../download-files.directive";
4
+ import * as i1 from "barsa-novin-ray-core";
5
+ import * as i2 from "@fundamental-ngx/core/bar";
6
+ import * as i3 from "../fullscreen-files.directive";
7
+ import * as i4 from "../download-files.directive";
7
8
  export class BarsaBarDownloadFileComponent extends BaseViewItemPropsComponent {
8
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaBarDownloadFileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
9
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaBarDownloadFileComponent, selector: "bsu-barsa-bar-download-file", inputs: { popover: "popover", files: "files", hideFullScreen: "hideFullScreen", isMobile: "isMobile", deviceSize: "deviceSize" }, providers: [UploadService], usesInheritance: true, ngImport: i0, template: "<div fd-bar barDesign=\"footer\">\r\n <div fd-bar-right>\r\n <fd-button-bar\r\n fdType=\"transparent\"\r\n glyph=\"download\"\r\n downloadFiles\r\n [files]=\"files\"\r\n (click)=\"popover.close()\"\r\n ></fd-button-bar>\r\n @if (!isMobile && !hideFullScreen) {\r\n <fd-button-bar\r\n fdType=\"transparent\"\r\n glyph=\"resize\"\r\n fullscreenFiles\r\n [deviceSize]=\"deviceSize\"\r\n [files]=\"files\"\r\n (click)=\"popover.close()\"\r\n ></fd-button-bar>\r\n }\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "component", type: i1.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i1.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i1.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "directive", type: i2.FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "directive", type: i3.DownloadFilesDirective, selector: "[downloadFiles]", inputs: ["files"] }] }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: BarsaBarDownloadFileComponent, selector: "bsu-barsa-bar-download-file", inputs: { popover: "popover", file: "file", files: "files", hideFullScreen: "hideFullScreen", isMobile: "isMobile", canPrint: "canPrint", deviceSize: "deviceSize" }, providers: [UploadService], usesInheritance: true, ngImport: i0, template: "<div fd-bar barDesign=\"footer\">\r\n <div fd-bar-right>\r\n <fd-button-bar\r\n fdType=\"transparent\"\r\n glyph=\"download\"\r\n downloadFiles\r\n [files]=\"file ? [file] : files\"\r\n (click)=\"popover.close()\"\r\n ></fd-button-bar>\r\n @if (!isMobile && !hideFullScreen) {\r\n <fd-button-bar\r\n fdType=\"transparent\"\r\n glyph=\"resize\"\r\n fullscreenFiles\r\n [deviceSize]=\"deviceSize\"\r\n [files]=\"files\"\r\n (click)=\"popover.close()\"\r\n ></fd-button-bar>\r\n } @if (canPrint) {\r\n <fd-button-bar\r\n fdType=\"transparent\"\r\n glyph=\"print\"\r\n printFiles\r\n [deviceSize]=\"deviceSize\"\r\n [files]=\"files\"\r\n (click)=\"popover.close()\"\r\n ></fd-button-bar>\r\n }\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.PrintFilesDirective, selector: "[printFiles]", inputs: ["files", "file", "isImageGallery", "component"] }, { kind: "component", type: i2.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i2.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "directive", type: i3.FullscreenFilesDirective, selector: "[fullscreenFiles]", inputs: ["files", "title", "deviceSize", "isImageGallery", "component"] }, { kind: "directive", type: i4.DownloadFilesDirective, selector: "[downloadFiles]", inputs: ["files"] }] }); }
10
11
  }
11
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BarsaBarDownloadFileComponent, decorators: [{
12
13
  type: Component,
13
- args: [{ selector: 'bsu-barsa-bar-download-file', providers: [UploadService], standalone: false, template: "<div fd-bar barDesign=\"footer\">\r\n <div fd-bar-right>\r\n <fd-button-bar\r\n fdType=\"transparent\"\r\n glyph=\"download\"\r\n downloadFiles\r\n [files]=\"files\"\r\n (click)=\"popover.close()\"\r\n ></fd-button-bar>\r\n @if (!isMobile && !hideFullScreen) {\r\n <fd-button-bar\r\n fdType=\"transparent\"\r\n glyph=\"resize\"\r\n fullscreenFiles\r\n [deviceSize]=\"deviceSize\"\r\n [files]=\"files\"\r\n (click)=\"popover.close()\"\r\n ></fd-button-bar>\r\n }\r\n </div>\r\n</div>\r\n" }]
14
+ args: [{ selector: 'bsu-barsa-bar-download-file', providers: [UploadService], standalone: false, template: "<div fd-bar barDesign=\"footer\">\r\n <div fd-bar-right>\r\n <fd-button-bar\r\n fdType=\"transparent\"\r\n glyph=\"download\"\r\n downloadFiles\r\n [files]=\"file ? [file] : files\"\r\n (click)=\"popover.close()\"\r\n ></fd-button-bar>\r\n @if (!isMobile && !hideFullScreen) {\r\n <fd-button-bar\r\n fdType=\"transparent\"\r\n glyph=\"resize\"\r\n fullscreenFiles\r\n [deviceSize]=\"deviceSize\"\r\n [files]=\"files\"\r\n (click)=\"popover.close()\"\r\n ></fd-button-bar>\r\n } @if (canPrint) {\r\n <fd-button-bar\r\n fdType=\"transparent\"\r\n glyph=\"print\"\r\n printFiles\r\n [deviceSize]=\"deviceSize\"\r\n [files]=\"files\"\r\n (click)=\"popover.close()\"\r\n ></fd-button-bar>\r\n }\r\n </div>\r\n</div>\r\n" }]
14
15
  }], propDecorators: { popover: [{
15
16
  type: Input
17
+ }], file: [{
18
+ type: Input
16
19
  }], files: [{
17
20
  type: Input
18
21
  }], hideFullScreen: [{
19
22
  type: Input
20
23
  }], isMobile: [{
21
24
  type: Input
25
+ }], canPrint: [{
26
+ type: Input
22
27
  }], deviceSize: [{
23
28
  type: Input
24
29
  }] } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtYmFyLWRvd25sb2FkLWZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtYmFyLWRvd25sb2FkLWZpbGUvYmFyc2EtYmFyLWRvd25sb2FkLWZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtYmFyLWRvd25sb2FkLWZpbGUvYmFyc2EtYmFyLWRvd25sb2FkLWZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUNILDBCQUEwQixFQUUxQixhQUFhLEVBRWhCLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBUzlCLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSwwQkFBMEI7K0dBQWhFLDZCQUE2QjttR0FBN0IsNkJBQTZCLHdMQUgzQixDQUFDLGFBQWEsQ0FBQyxpRENaOUIsaXBCQXFCQTs7NEZETmEsNkJBQTZCO2tCQVB6QyxTQUFTOytCQUNJLDZCQUE2QixhQUc1QixDQUFDLGFBQWEsQ0FBQyxjQUNkLEtBQUs7OEJBR1IsT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIEJhc2VWaWV3SXRlbVByb3BzQ29tcG9uZW50LFxyXG4gICAgRmlsZUF0dGFjaG1lbnRJbmZvLFxyXG4gICAgVXBsb2FkU2VydmljZSxcclxuICAgIEFiYnJldmF0aW9uRGV2aWNlU2l6ZVxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtYmFyLWRvd25sb2FkLWZpbGUnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLWJhci1kb3dubG9hZC1maWxlLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLWJhci1kb3dubG9hZC1maWxlLmNvbXBvbmVudC5jc3MnXSxcclxuICAgIHByb3ZpZGVyczogW1VwbG9hZFNlcnZpY2VdLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhcnNhQmFyRG93bmxvYWRGaWxlQ29tcG9uZW50IGV4dGVuZHMgQmFzZVZpZXdJdGVtUHJvcHNDb21wb25lbnQge1xyXG4gICAgQElucHV0KCkgcG9wb3ZlcjogYW55O1xyXG4gICAgQElucHV0KCkgZmlsZXM6IEZpbGVBdHRhY2htZW50SW5mb1tdO1xyXG4gICAgQElucHV0KCkgaGlkZUZ1bGxTY3JlZW46IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBpc01vYmlsZTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcclxufVxyXG4iLCI8ZGl2IGZkLWJhciBiYXJEZXNpZ249XCJmb290ZXJcIj5cclxuICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxyXG4gICAgICAgIDxmZC1idXR0b24tYmFyXHJcbiAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgZ2x5cGg9XCJkb3dubG9hZFwiXHJcbiAgICAgICAgICAgIGRvd25sb2FkRmlsZXNcclxuICAgICAgICAgICAgW2ZpbGVzXT1cImZpbGVzXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInBvcG92ZXIuY2xvc2UoKVwiXHJcbiAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cclxuICAgICAgICBAaWYgKCFpc01vYmlsZSAmJiAhaGlkZUZ1bGxTY3JlZW4pIHtcclxuICAgICAgICA8ZmQtYnV0dG9uLWJhclxyXG4gICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgIGdseXBoPVwicmVzaXplXCJcclxuICAgICAgICAgICAgZnVsbHNjcmVlbkZpbGVzXHJcbiAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICBbZmlsZXNdPVwiZmlsZXNcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicG9wb3Zlci5jbG9zZSgpXCJcclxuICAgICAgICA+PC9mZC1idXR0b24tYmFyPlxyXG4gICAgICAgIH1cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtYmFyLWRvd25sb2FkLWZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtYmFyLWRvd25sb2FkLWZpbGUvYmFyc2EtYmFyLWRvd25sb2FkLWZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtYmFyLWRvd25sb2FkLWZpbGUvYmFyc2EtYmFyLWRvd25sb2FkLWZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUNILDBCQUEwQixFQUUxQixhQUFhLEVBRWhCLE1BQU0sc0JBQXNCLENBQUM7Ozs7OztBQVM5QixNQUFNLE9BQU8sNkJBQThCLFNBQVEsMEJBQTBCOytHQUFoRSw2QkFBNkI7bUdBQTdCLDZCQUE2Qiw0TkFIM0IsQ0FBQyxhQUFhLENBQUMsaURDWjlCLDQ4QkE4QkE7OzRGRGZhLDZCQUE2QjtrQkFQekMsU0FBUzsrQkFDSSw2QkFBNkIsYUFHNUIsQ0FBQyxhQUFhLENBQUMsY0FDZCxLQUFLOzhCQUdSLE9BQU87c0JBQWYsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBCYXNlVmlld0l0ZW1Qcm9wc0NvbXBvbmVudCxcclxuICAgIEZpbGVBdHRhY2htZW50SW5mbyxcclxuICAgIFVwbG9hZFNlcnZpY2UsXHJcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemVcclxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWJhcnNhLWJhci1kb3dubG9hZC1maWxlJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9iYXJzYS1iYXItZG93bmxvYWQtZmlsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9iYXJzYS1iYXItZG93bmxvYWQtZmlsZS5jb21wb25lbnQuY3NzJ10sXHJcbiAgICBwcm92aWRlcnM6IFtVcGxvYWRTZXJ2aWNlXSxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYXJzYUJhckRvd25sb2FkRmlsZUNvbXBvbmVudCBleHRlbmRzIEJhc2VWaWV3SXRlbVByb3BzQ29tcG9uZW50IHtcclxuICAgIEBJbnB1dCgpIHBvcG92ZXI6IGFueTtcclxuICAgIEBJbnB1dCgpIGZpbGU6IEZpbGVBdHRhY2htZW50SW5mbztcclxuICAgIEBJbnB1dCgpIGZpbGVzOiBGaWxlQXR0YWNobWVudEluZm9bXTtcclxuICAgIEBJbnB1dCgpIGhpZGVGdWxsU2NyZWVuOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgaXNNb2JpbGU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjYW5QcmludDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZTtcclxufVxyXG4iLCI8ZGl2IGZkLWJhciBiYXJEZXNpZ249XCJmb290ZXJcIj5cclxuICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxyXG4gICAgICAgIDxmZC1idXR0b24tYmFyXHJcbiAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgZ2x5cGg9XCJkb3dubG9hZFwiXHJcbiAgICAgICAgICAgIGRvd25sb2FkRmlsZXNcclxuICAgICAgICAgICAgW2ZpbGVzXT1cImZpbGUgPyBbZmlsZV0gOiBmaWxlc1wiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJwb3BvdmVyLmNsb3NlKClcIlxyXG4gICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XHJcbiAgICAgICAgQGlmICghaXNNb2JpbGUgJiYgIWhpZGVGdWxsU2NyZWVuKSB7XHJcbiAgICAgICAgPGZkLWJ1dHRvbi1iYXJcclxuICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICBnbHlwaD1cInJlc2l6ZVwiXHJcbiAgICAgICAgICAgIGZ1bGxzY3JlZW5GaWxlc1xyXG4gICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgICAgICAgICAgW2ZpbGVzXT1cImZpbGVzXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInBvcG92ZXIuY2xvc2UoKVwiXHJcbiAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cclxuICAgICAgICB9IEBpZiAoY2FuUHJpbnQpIHtcclxuICAgICAgICA8ZmQtYnV0dG9uLWJhclxyXG4gICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgIGdseXBoPVwicHJpbnRcIlxyXG4gICAgICAgICAgICBwcmludEZpbGVzXHJcbiAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxyXG4gICAgICAgICAgICBbZmlsZXNdPVwiZmlsZXNcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicG9wb3Zlci5jbG9zZSgpXCJcclxuICAgICAgICA+PC9mZC1idXR0b24tYmFyPlxyXG4gICAgICAgIH1cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -80,7 +80,7 @@ export class BarsaTinyemceComponent extends BaseComponent {
80
80
  this.tinyMCEConfig.promotion = false;
81
81
  this.tinyMCEConfig.skin = 'oxide';
82
82
  this.tinyMCEConfig.paste_data_images = true;
83
- this.tinyMCEConfig.defaultFontName = 'BarsaFont';
83
+ this.tinyMCEConfig.defaultFontName = 'B-Font';
84
84
  this.tinyMCEConfig.defaultFontSize = '12px';
85
85
  this.tinyMCEConfig.statusbar = false;
86
86
  this.tinyMCEConfig.resize = false;
@@ -415,4 +415,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
415
415
  }], tinyInit: [{
416
416
  type: Output
417
417
  }] } });
418
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGlueWVtY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGlueWVtY2UvYmFyc2EtdGlueWVtY2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGlueWVtY2UvYmFyc2EtdGlueWVtY2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBYyxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU3RCxPQUFPLEVBQ0gsYUFBYSxFQUNiLFFBQVEsRUFDUixXQUFXLEVBQ1gsVUFBVSxFQUNWLGFBQWEsRUFFaEIsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQWM5QixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsYUFBYTtJQW1CckQsWUFBc0IsY0FBNkIsRUFBWSxHQUFlO1FBQzFFLEtBQUssRUFBRSxDQUFDO1FBRFUsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBWSxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBWnBFLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN0QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxlQUFVLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDeEMsa0JBQWEsR0FBUSxFQUFFLENBQUM7UUF5WmhCLGtCQUFhLEdBQUcsR0FBUyxFQUFFO1lBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUM5QiwyQ0FBMkM7WUFDM0MseURBQXlE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QyxDQUFDLGFBQWEsQ0FBQyxjQUNkLEtBQUs7MkdBR00sU0FBUztzQkFBL0IsU0FBUzt1QkFBQyxVQUFVO2dCQUNaLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE91dHB1dCxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY29uY2F0TWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEJhc2VDb21wb25lbnQsXHJcbiAgICBCYXJzYUFwaSxcclxuICAgIGdldFVuaXF1ZUlkLFxyXG4gICAgaXNGdW5jdGlvbixcclxuICAgIFVwbG9hZFNlcnZpY2UsXHJcbiAgICBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbFxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbmRlY2xhcmUgY29uc3Qgd2luZG93OiBhbnk7XHJcbmRlY2xhcmUgY29uc3QgdGlueW1jZTogYW55O1xyXG5kZWNsYXJlIGNvbnN0IGhlYWQ6IGFueTtcclxuZGVjbGFyZSBjb25zdCAkOiBhbnk7XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtdGlueWVtY2UnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLXRpbnllbWNlLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXRpbnllbWNlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHByb3ZpZGVyczogW1VwbG9hZFNlcnZpY2VdLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhcnNhVGlueWVtY2VDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xyXG4gICAgQFZpZXdDaGlsZCgndXBsb2FkZXInKSBfdXBsb2FkZXI6IEZpbGVVcGxvYWRlckNvbXBvbmVudDtcclxuICAgIEBJbnB1dCgpIFNldHRpbmc6IEdlbmVyYWxDb250cm9sSW5mb01vZGVsO1xyXG4gICAgQElucHV0KCkgaXNSZWFkb25seTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHZhbHVlOiBhbnk7XHJcbiAgICBASW5wdXQoKSBJc0lubGluZTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGRlZmF1bHRWZXJiczogeyBUaXRsZTogc3RyaW5nOyBIdG1sOiBzdHJpbmcgfVtdO1xyXG4gICAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBAT3V0cHV0KCkgdGlueUluaXQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICB0aW55SG9zdElkID0gdGhpcy5fZ2VuZXJhdGVUaW55SG9zdElkKCk7XHJcbiAgICB0aW55TUNFQ29uZmlnOiBhbnkgPSB7fTtcclxuICAgIGVkaXRvcjogYW55O1xyXG4gICAgd3lzaXd5Z0ludGlhbGl6ZWQ6IGJvb2xlYW47XHJcbiAgICBpbnRpYWxpemF0aW9uSW5Qcm9ncmVzczogYm9vbGVhbjtcclxuICAgIGVkaXRvclZhbHVlOiBzdHJpbmc7XHJcblxyXG4gICAgaWZyYW1Cb2R5SW5uZXJIdG1sOiBzdHJpbmc7XHJcbiAgICBoZWlnaHQ6IG51bWJlcjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3VwbG9hZFNlcnZpY2U6IFVwbG9hZFNlcnZpY2UsIHByb3RlY3RlZCBfZWw6IEVsZW1lbnRSZWYpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG4gICAgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZXMpO1xyXG4gICAgICAgIGlmIChzaW1wbGVDaGFuZ2VzLnZhbHVlICYmICFzaW1wbGVDaGFuZ2VzLnZhbHVlLmZpcnN0Q2hhbmdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUoc2ltcGxlQ2hhbmdlcy52YWx1ZS5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoc2ltcGxlQ2hhbmdlcy5kaXNhYmxlICYmICFzaW1wbGVDaGFuZ2VzLmRpc2FibGUuZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICAgICAgY29uc3QgZGlzYmFsZSA9IHNpbXBsZUNoYW5nZXMuZGlzYWJsZS5jdXJyZW50VmFsdWU7XHJcbiAgICAgICAgICAgIGlmIChkaXNiYWxlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERpc2FibGUoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RW5hYmxlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZXMucmVhZG9ubHkgJiYgIXNpbXBsZUNoYW5nZXMucmVhZG9ubHkuZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRSZWFkT25seShzaW1wbGVDaGFuZ2VzLnJlYWRvbmx5LmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLmhlaWdodCA9ICh0aGlzLl9lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5jbGllbnRIZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3lUaW55bWNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25GaWxlU2VsZWN0aW9uKGZpbGVzOiBGaWxlW10pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnVwbG9hZEZpbGUoZmlsZXMpLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIGxvYWRUaW55TWNlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5TZXR0aW5nLklzSHRtbFZpZXdlcikge1xyXG4gICAgICAgICAgICBoZWFkLmxvYWQoWydMaWIvdGlueW1jZS90aW55bWNlLm1pbi5qcyddLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmUoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBvblZpc2liaWxpdHlDaGFuZ2UoZSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChlID09PSAnVmlzaWJsZScpIHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkVGlueU1jZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGluaXRpbGl6ZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy50aW55TUNFQ29uZmlnLnNldHVwKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLmhlaWdodCA9ICcxMDAlJztcclxuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcud2lkdGggPSAnMTAwJSc7XHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnNlbGVjdG9yID0gJyMnICsgdGhpcy50aW55SG9zdElkO1xyXG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5wbGFjZWhvbGRlciA9IHRoaXMuU2V0dGluZy5Db250cm9sRmllbGRDYXB0aW9uVHJhbnNsYXRlZDtcclxuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcuY29udGVudF9jc3MgPSAnYXNzZXRzL1Jlc291cmNlcy9mb250cy9JcmFuLmNzcyc7XHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLmRpcmVjdGlvbmFsaXR5ID0gJ3J0bCc7XHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLmxhbmd1YWdlID0gJ2ZhX0lSJztcclxuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcucHJvbW90aW9uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnNraW4gPSAnb3hpZGUnO1xyXG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5wYXN0ZV9kYXRhX2ltYWdlcyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLmRlZmF1bHRGb250TmFtZSA9ICdCYXJzYUZvbnQnO1xyXG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5kZWZhdWx0Rm9udFNpemUgPSAnMTJweCc7XHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnN0YXR1c2JhciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5yZXNpemUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLmlubGluZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5tZW51YmFyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnRvb2xiYXJfbG9jYXRpb24gPSAndG9wJztcclxuXHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnRvb2xiYXJfbW9kZSA9ICdmbG9hdGluZyc7XHJcbiAgICAgICAgLy8gdGhpcy50aW55TUNFQ29uZmlnLnRvb2xiYXJfc3RpY2t5ID0gdHJ1ZTtcclxuICAgICAgICAvLyB0aGlzLnRpbnlNQ0VDb25maWcudG9vbGJhcl9zdGlja3lfb2Zmc2V0ID0gMTAwO1xyXG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5mb250X2ZhbWlseV9mb3JtYXRzID1cclxuICAgICAgICAgICAgJ0JhcnNhRm9udD1CYXJzYUZvbnQ7QXJpYWw9YXJpYWwsaGVsdmV0aWNhLHNhbnMtc2VyaWY7IENvdXJpZXIgTmV3PWNvdXJpZXIgbmV3LGNvdXJpZXIsbW9ub3NwYWNlOyc7XHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLmZvbnRfc2l6ZV9mb3JtYXRzID0gJzhwdCAxMHB0IDEycHQgMTRwdCAxOHB0IDI0cHQgMzZwdCc7XHJcblxyXG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5wbHVnaW5zID0gW1xyXG4gICAgICAgICAgICAnYWR2bGlzdCcsXHJcbiAgICAgICAgICAgICdhbmNob3InLFxyXG4gICAgICAgICAgICAnYXV0b2xpbmsnLFxyXG4gICAgICAgICAgICAnYXV0b3NhdmUnLFxyXG4gICAgICAgICAgICAnY2hhcm1hcCcsXHJcbiAgICAgICAgICAgICdjb2RlJyxcclxuICAgICAgICAgICAgJ2NvZGVzYW1wbGUnLFxyXG4gICAgICAgICAgICAnZGlyZWN0aW9uYWxpdHknLFxyXG4gICAgICAgICAgICAnZW1vdGljb25zJyxcclxuICAgICAgICAgICAgJ2Z1bGxzY3JlZW4nLFxyXG4gICAgICAgICAgICAnaGVscCcsXHJcbiAgICAgICAgICAgICdpbWFnZScsXHJcbiAgICAgICAgICAgICdpbXBvcnRjc3MnLFxyXG4gICAgICAgICAgICAnaW5zZXJ0ZGF0ZXRpbWUnLFxyXG4gICAgICAgICAgICAnbGluaycsXHJcbiAgICAgICAgICAgICdsaXN0cycsXHJcbiAgICAgICAgICAgICdtZWRpYScsXHJcbiAgICAgICAgICAgICdub25icmVha2luZycsXHJcbiAgICAgICAgICAgICdwYWdlYnJlYWsnLFxyXG4gICAgICAgICAgICAncHJldmlldycsXHJcbiAgICAgICAgICAgICdxdWlja2JhcnMnLFxyXG4gICAgICAgICAgICAnc2F2ZScsXHJcbiAgICAgICAgICAgICdzZWFyY2hyZXBsYWNlJyxcclxuICAgICAgICAgICAgJ3RhYmxlJyxcclxuICAgICAgICAgICAgJ3RlbXBsYXRlJyxcclxuICAgICAgICAgICAgJ3Zpc3VhbGJsb2NrcycsXHJcbiAgICAgICAgICAgICd2aXN1YWxjaGFycycsXHJcbiAgICAgICAgICAgICd3b3JkY291bnQnLFxyXG4gICAgICAgICAgICAnYXV0b3Jlc2l6ZSdcclxuICAgICAgICBdO1xyXG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy50b29sYmFyID1cclxuICAgICAgICAgICAgYGRlZmF1bHRWZXJicyBiYXJzYUltYWdlIHwgaW5zZXJ0IHwgZm9yZWNvbG9yIGJhY2tjb2xvciBmb250ZmFtaWx5IGZvbnRzaXplIHwgYnVsbGlzdCBudW1saXN0IG91dGRlbnQgaW5kZW50IHwgcmVtb3ZlZm9ybWF0YCArXHJcbiAgICAgICAgICAgIGAgfCB1bmRvIHJlZG8gfCBjb3B5IGN1dCBwYXN0ZSB8IGJsb2NrcyB8IGJvbGQgaXRhbGljIHwgYWxpZ25sZWZ0IGFsaWduY2VudGVyIGFsaWducmlnaHQgYWxpZ25qdXN0aWZ5IGx0ciBydGxgO1xyXG5cclxuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcucXVpY2tiYXJzX3NlbGVjdGlvbl90b29sYmFyID1cclxuICAgICAgICAgICAgJ2JvbGQgaXRhbGljIGZvbnRzaXplIHwgZm9yZWNvbG9yIGJhY2tjb2xvcnxkZWZhdWx0VmVyYnMgYmFyc2FJbWFnZSc7XHJcbiAgICAgICAgY29uc3QgdGlueW1jZVNldHRpbmdzR2xvYmFsID0gd2luZG93LnRpbnltY2VTZXR0aW5ncztcclxuICAgICAgICBsZXQgdGlueW1jZVNldHRpbmdzID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5TZXR0aW5nLCAnSnNvbkV4dHJhUHJvcC50aW55bWNlU2V0dGluZ3MnKTtcclxuICAgICAgICB0aW55bWNlU2V0dGluZ3MgPSBCYXJzYUFwaS5Db21tb24uTWVyZ2VyLk1lcmdlKHRpbnltY2VTZXR0aW5nc0dsb2JhbCwgdGlueW1jZVNldHRpbmdzKTtcclxuICAgICAgICBpZiAoIXRpbnltY2VTZXR0aW5ncyAmJiBBcnJheS5pc0FycmF5KHRpbnltY2VTZXR0aW5ncykpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRpbnltY2VTZXR0aW5ncykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnW2l0ZW0ua2V5XSA9IGl0ZW0udmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzUmVhZG9ubHkpIHtcclxuICAgICAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLm1lbnViYXIgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnN0YXR1c2JhciA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcucGx1Z2lucyA9IFsnYXV0b3Jlc2l6ZSddO1xyXG4gICAgICAgICAgICAvLyB0aGlzLnRpbnlNQ0VDb25maWcucGx1Z2lucyA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcudG9vbGJhciA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHVzZXJTZXR1cDogKGVkaXRvcjogYW55KSA9PiB2b2lkO1xyXG5cclxuICAgICAgICBpZiAodGhpcy50aW55TUNFQ29uZmlnLnNldHVwKSB7XHJcbiAgICAgICAgICAgIHVzZXJTZXR1cCA9IHRoaXMudGlueU1DRUNvbmZpZy5zZXR1cDtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGRlZmF1bHRWZXJic01lbnU6IGFueSA9IFtdO1xyXG5cclxuICAgICAgICAvLyBCRUdJTjogc2V0dXBcclxuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcuc2V0dXAgPSAoZWQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5lZGl0b3IgPSBlZDtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzUmVhZG9ubHkpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlZmF1bHRWZXJicykge1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWZXJic01lbnUgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRWZXJicy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWZXJic01lbnUucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbS5IdG1sLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ21lbnVpdGVtJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGl0ZW0uVGl0bGUgfHwgaXRlbS5IdG1sLnJlcGxhY2UoLzxiclxccypcXC8/Pi9naSwgJyAnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQWN0aW9uOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWQuZXhlY0NvbW1hbmQoJ21jZUluc2VydFJhd0hUTUwnLCBmYWxzZSwgaXRlbS5IdG1sKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZC5pbnNlcnRDb250ZW50KGl0ZW0uSHRtbCwgeyBmb3JtYXQ6ICdyYXcnIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVkLnVpLnJlZ2lzdHJ5LmFkZFNwbGl0QnV0dG9uKCdiYXJzYUltYWdlJywge1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICdpbnNlcnQnLFxyXG4gICAgICAgICAgICAgICAgICAgIGljb246ICdpbWFnZScsXHJcbiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcDogJ0luc2VydCBJbWFnZSBBcyBCYXNlNjQnLFxyXG4gICAgICAgICAgICAgICAgICAgIG9uQWN0aW9uOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5Bc3luYy5XYXRlcmZhbGwoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVGluZW1jZS5FbWJlZEltYWdlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuRmlsZURpYWxvZzogdGhpcy5TaG93T3BlbkZpbGVEaWFsb2cuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRCYXNlNjQ6IHRoaXMuSW5zZXJ0QmFzZTY0LmJpbmQodGhpcylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyLCByZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYXJzYUFwaS5Db21tb24uQXN5bmMuRmluYWxpemUoZXJyLCByZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgb25JdGVtQWN0aW9uOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5Bc3luYy5XYXRlcmZhbGwoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVGluZW1jZS5VcGxvYWRUb0RhdGFiYXNlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuRmlsZURpYWxvZzogdGhpcy5TaG93VXBsb2FkV2luZG93LmJpbmQodGhpcylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyLCByZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYXJzYUFwaS5Db21tb24uQXN5bmMuRmluYWxpemUoZXJyLCByZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmV0Y2g6IChjYWxsYmFjaykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnY2hvaWNlaXRlbScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogJ3VwbG9hZCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2ltYWdlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwOiAnVXBsb2FkIEltYWdlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ3VwbG9hZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soaXRlbXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIGVkLnVpLnJlZ2lzdHJ5LmFkZE1lbnVCdXR0b24oJ2RlZmF1bHRWZXJicycsIHtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAn2LnYqNin2LHYqtmH2KfbjCDZvtuM2LQg2YHYsdi2JyxcclxuICAgICAgICAgICAgICAgICAgICBmZXRjaDogKGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGRlZmF1bHRWZXJic01lbnUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24od2luZG93LnRpbnltY2VTZXR1cCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cudGlueW1jZVNldHVwLmNhbGwodGhpcywgdGhpcywgZWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCBoYXNJbml0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGVkLm9uKCdpbml0JywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy53eXNpd3lnSW50aWFsaXplZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmludGlhbGl6YXRpb25JblByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMudmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRpbnlNQ0VDb25maWcuZGVmYXVsdEZvbnROYW1lKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWQuZXhlY0NvbW1hbmQoJ0ZvbnROYW1lJywgZmFsc2UsIHRoaXMudGlueU1DRUNvbmZpZy5kZWZhdWx0Rm9udE5hbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGlueU1DRUNvbmZpZy5kZWZhdWx0Rm9udFNpemUpIHtcclxuICAgICAgICAgICAgICAgICAgICBlZC5leGVjQ29tbWFuZCgnRm9udFNpemUnLCBmYWxzZSwgdGhpcy50aW55TUNFQ29uZmlnLmRlZmF1bHRGb250U2l6ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1JlYWRvbmx5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRSZWFkT25seSh0aGlzLmlzUmVhZG9ubHkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gVGhpcyBwaWVjZSBvZiBjb2RlIHNvbHZlcyB0aGUgcHJvYmxlbSBvZiBjaGFuZ2UgcHJvcGFnYXRpb24gc28gdGhhdFxyXG4gICAgICAgICAgICAgICAgLy8gdGhlcmUgaXMgbm8gbmVlZCB0byBjYWxsIHRyaWdnZXJTYXZlXHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRDb250ZW50ID0gZWQuc2V0Q29udGVudDtcclxuICAgICAgICAgICAgICAgIGVkLnNldENvbnRlbnQgPSAoLi4uYXJncykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNldENvbnRlbnQuYXBwbHkoZWQsIGFyZ3MpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVkLmRpc3BhdGNoKCdjaGFuZ2UnLCB7fSk7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgaGFzSW5pdCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRpbnlJbml0LmVtaXQoKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGlmcmFtRWw6IEhUTUxJRnJhbWVFbGVtZW50ID0gZWQuaWZyYW1lRWxlbWVudDtcclxuICAgICAgICAgICAgICAgIGlmIChpZnJhbUVsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWZyYW1FbC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgdGhpcy5fb25Mb2FkSWZyYW1lKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAvLyBDYXRjaCBhbmQgcHJvcGFnYXRlIHRoZSBjaGFuZ2UgZXZlbnRcclxuICAgICAgICAgICAgbGV0IG9sZENvbnRlbnQgPSBudWxsO1xyXG4gICAgICAgICAgICBlZC5vbignY2hhbmdlIGtleXVwJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3dmFsID0gZWQuZ2V0Q29udGVudCgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5ld3ZhbCA9PT0gb2xkQ29udGVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBvbGRDb250ZW50ID0gbmV3dmFsO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFoYXNJbml0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGVkLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9yVmFsdWUgPSBuZXd2YWw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQobmV3dmFsKTtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ2NoYW5nZScsIHRoaXMsIG5ld3ZhbCwgb2xkdmFsLCB7fSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgZWQub24oJ2ZvY3VzJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gVE9ET1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGlmICh1c2VyU2V0dXApIHtcclxuICAgICAgICAgICAgICAgIHVzZXJTZXR1cChlZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIFNob3dVcGxvYWRXaW5kb3coKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdXBsb2FkZXIub3BlbigpO1xyXG4gICAgfVxyXG4gICAgU2hvd09wZW5GaWxlRGlhbG9nKGRvUmV0dXJuKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5wdXQ6IGFueSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XHJcbiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2ZpbGUnKTtcclxuICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ2FjY2VwdCcsICdpbWFnZS8qJyk7XHJcblxyXG4gICAgICAgIGlucHV0Lm9uY2hhbmdlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBmaWxlID0gaW5wdXQuZmlsZXNbMF07XHJcblxyXG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IGJhc2U2NCA9IHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICAgICAgYmFzZTY0ID0gYmFzZTY0LnNwbGl0KCcsJylbMV07XHJcbiAgICAgICAgICAgICAgICBkb1JldHVybihudWxsLCBiYXNlNjQpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpbnB1dC5jbGljaygpO1xyXG4gICAgfVxyXG4gICAgSW5zZXJ0QmFzZTY0KGJhc2U2NCwgZG9SZXR1cm4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVkaXRvci5leGVjQ29tbWFuZCgnbWNlSW5zZXJ0Q29udGVudCcsIGZhbHNlLCAnPGltZyBzcmM9ZGF0YTppbWFnZS9wbmc7YmFzZTY0LCcgKyBiYXNlNjQgKyAnIC8+Jyk7XHJcbiAgICAgICAgZG9SZXR1cm4oKTtcclxuICAgIH1cclxuICAgIGdldFZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIGxldCByZXMgPSBudWxsO1xyXG4gICAgICAgIGlmICh0aGlzLnd5c2l3eWdJbnRpYWxpemVkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVkID0gdGlueW1jZS5nZXQodGhpcy50aW55SG9zdElkKTtcclxuICAgICAgICAgICAgaWYgKGVkKSB7XHJcbiAgICAgICAgICAgICAgICByZXMgPSBlZC5nZXRDb250ZW50KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiByZXM7XHJcbiAgICB9XHJcbiAgICBzZXRWYWx1ZSh2YWx1ZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLnNldFZhbHVlVGlueSgpO1xyXG4gICAgfVxyXG4gICAgc2V0VmFsdWVUaW55KCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRoaXMud3lzaXd5Z0ludGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgY29uc3QgZWQgPSB0aW55bWNlLmdldCh0aGlzLnRpbnlIb3N0SWQpO1xyXG4gICAgICAgICAgICBpZiAoZWQpIHtcclxuICAgICAgICAgICAgICAgIGVkLnNldENvbnRlbnQodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XHJcbiAgICB9XHJcbiAgICBmb2N1cygpOiBhbnkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzUmVhZG9ubHkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy53eXNpd3lnSW50aWFsaXplZCkge1xyXG4gICAgICAgICAgICB0aW55bWNlLmV4ZWNDb21tYW5kKCdtY2VGb2N1cycsIGZhbHNlLCAnaWRfb2ZfdGV4dGFyZWEnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RW5hYmxlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnd5c2l3eWdJbnRpYWxpemVkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVkID0gdGlueW1jZS5nZXQodGhpcy50aW55SG9zdElkKTtcclxuICAgICAgICAgICAgZWQuZ2V0Qm9keSgpLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgdHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldERpc2FibGUoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMud3lzaXd5Z0ludGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgY29uc3QgZWQgPSB0aW55bWNlLmdldCh0aGlzLnRpbnlIb3N0SWQpO1xyXG4gICAgICAgICAgICBlZC5nZXRCb2R5KCkuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgc2V0UmVhZE9ubHkocmVhZE9ubHkpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy53eXNpd3lnSW50aWFsaXplZCkge1xyXG4gICAgICAgICAgICBjb25zdCBlZCA9IHRpbnltY2UuZ2V0KHRoaXMudGlueUhvc3RJZCk7XHJcbiAgICAgICAgICAgIGVkLmdldEJvZHkoKS5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICFyZWFkT25seSk7XHJcbiAgICAgICAgICAgIGlmIChyZWFkT25seSkge1xyXG4gICAgICAgICAgICAgICAgJCgnLnRveC1lZGl0b3ItaGVhZGVyJykuaGlkZSgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgJCgnLnRveC1lZGl0b3ItaGVhZGVyJykuaGlkZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRlc3Ryb3lUaW55bWNlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLlNldHRpbmcuSXNIdG1sVmlld2VyIHx8ICF0aGlzLnd5c2l3eWdJbnRpYWxpemVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZWQgPSB0aW55bWNlLmdldCh0aGlzLnRpbnlIb3N0SWQpO1xyXG4gICAgICAgIGlmIChlZCkge1xyXG4gICAgICAgICAgICAvLyB0aW55bWNlLmV4ZWNDb21tYW5kKCdtY2VSZW1vdmVDb250cm9sJywgdHJ1ZSwgdGhpcy50aW55SG9zdElkKTtcclxuICAgICAgICAgICAgaWYgKGVkLmlmcmFtZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIGVkLmlmcmFtZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbG9hZCcsIHRoaXMuX29uTG9hZElmcmFtZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWQuZGVzdHJveShmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSB1cGxvYWRGaWxlKGZpbGVzOiBGaWxlW10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91cGxvYWRTZXJ2aWNlLmNvbXByZXNzRmlsZXMkKGZpbGVzKS5waXBlKFxyXG4gICAgICAgICAgICBjb25jYXRNYXAoKGZvcm1EYXRhOiBGb3JtRGF0YSkgPT5cclxuICAgICAgICAgICAgICAgIHRoaXMuX3VwbG9hZFNlcnZpY2UudXBsb2FkKGZvcm1EYXRhLCB0aGlzLlNldHRpbmcuU3RvcmFnZUZpbGVGaWVsZElkKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgIHRhcCgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlcykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBpY3R1cmUgPSByZXNbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGljdHVyZS5FcnJvck1zZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkJ3Lk1zZy5FcnJvcihwaWN0dXJlLkVycm9yTXNnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5waWN0dXJlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVJZDogcGljdHVyZS5GaWxlSWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZGRJbWFnZXModmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9hZGRJbWFnZXMoZmlsZTogeyBGaWxlSWQ6IHN0cmluZyB9KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gJy9JSC5hc2h4P3R5PVN0b3JhZ2VGaWxlJmtleT0nICsgZmlsZS5GaWxlSWQ7XHJcbiAgICAgICAgY29uc3QgaHRtbCA9ICc8aW1nIHNyYz0nICsgdXJsICsgJyAvPic7XHJcblxyXG4gICAgICAgIHRoaXMuZWRpdG9yLmV4ZWNDb21tYW5kKCdtY2VJbnNlcnRDb250ZW50JywgZmFsc2UsIGh0bWwpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBwcmVwYXJlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5pdGlsaXplKCk7XHJcbiAgICAgICAgdGlueW1jZS5pbml0KHRoaXMudGlueU1DRUNvbmZpZyk7XHJcbiAgICAgICAgdGhpcy5pbnRpYWxpemF0aW9uSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMud3lzaXd5Z0ludGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfb25Mb2FkSWZyYW1lID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmVkaXRvclZhbHVlO1xyXG4gICAgICAgIC8vIGNvbnN0IGVkID0gdGlueW1jZS5nZXQodGhpcy50aW55SG9zdElkKTtcclxuICAgICAgICAvLyBlZC5leGVjQ29tbWFuZCgnbWNlSW5zZXJ0Q29udGVudCcsIGZhbHNlLCB0aGlzLnZhbHVlKTtcclxuXHJcbiAgICAgICAgLy8gZWQuaW5zZXJ0Q29udGVudCh0aGlzLnZhbHVlLCB7IGZvcm1hdDogJ3JhdycgfSk7XHJcbiAgICAgICAgLy8gdGhpcy5fcmVtb3ZlT3ZlcmZsb3coZWQpO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveVRpbnltY2UoKTtcclxuICAgICAgICB0aGlzLnByZXBhcmUoKTtcclxuICAgIH07XHJcbiAgICBwcml2YXRlIF9nZW5lcmF0ZVRpbnlIb3N0SWQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gYGFfJHtnZXRVbmlxdWVJZCgyKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3JlbW92ZU92ZXJmbG93KGVkOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBodG1sID0gZWQuaWZyYW1lRWxlbWVudD8uY29udGVudERvY3VtZW50Py5xdWVyeVNlbGVjdG9yKCdodG1sJyk7XHJcbiAgICAgICAgaWYgKGh0bWwpIHtcclxuICAgICAgICAgICAgaHRtbC5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgICBjbGFzcz1cImZkLWlucHV0IHRpbnl3cmFwcGVyXCJcclxuICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImhlaWdodFwiXHJcbiAgICBbaWRdPVwidGlueUhvc3RJZFwiXHJcbiAgICBpbnRlcnNlY3Rpb25PYnNlcnZlclxyXG4gICAgW2ludGVyc2VjdGlvblRocmVzaG9sZF09XCIwLjFcIlxyXG4gICAgKHZpc2liaWxpdHlDaGFuZ2UpPVwib25WaXNpYmlsaXR5Q2hhbmdlKCRldmVudClcIlxyXG4+PC9kaXY+XHJcbjxmZC1maWxlLXVwbG9hZGVyXHJcbiAgICAjdXBsb2FkZXJcclxuICAgIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiXHJcbiAgICBbYWNjZXB0XT1cIicnXCJcclxuICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXHJcbiAgICAoc2VsZWN0ZWRGaWxlc0NoYW5nZWQpPVwib25GaWxlU2VsZWN0aW9uKCRldmVudClcIlxyXG4+PC9mZC1maWxlLXVwbG9hZGVyPlxyXG48IS0tIDx0ZXh0YXJlYSBbaWRdPVwidGlueUhvc3RJZFwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyB2aXNpYmlsaXR5OiBoaWRkZW5cIj48L3RleHRhcmVhPiAtLT5cclxuIl19
418
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFyc2EtdGlueWVtY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGlueWVtY2UvYmFyc2EtdGlueWVtY2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvYmFyc2EtdGlueWVtY2UvYmFyc2EtdGlueWVtY2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBYyxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUU3RCxPQUFPLEVBQ0gsYUFBYSxFQUNiLFFBQVEsRUFDUixXQUFXLEVBQ1gsVUFBVSxFQUNWLGFBQWEsRUFFaEIsTUFBTSxzQkFBc0IsQ0FBQzs7OztBQWM5QixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsYUFBYTtJQW1CckQsWUFBc0IsY0FBNkIsRUFBWSxHQUFlO1FBQzFFLEtBQUssRUFBRSxDQUFDO1FBRFUsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBWSxRQUFHLEdBQUgsR0FBRyxDQUFZO1FBWnBFLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN0QyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4QyxlQUFVLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDeEMsa0JBQWEsR0FBUSxFQUFFLENBQUM7UUF5WmhCLGtCQUFhLEdBQUcsR0FBUyxFQUFFO1lBQy9CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUM5QiwyQ0FBMkM7WUFDM0MseURBQXlEO1lBRXpELG1EQUFtRDtZQUNuRCw0QkFBNEI7WUFDNUIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNuQixDQUFDLENBQUM7SUF2WkYsQ0FBQztJQUNELFdBQVcsQ0FBQyxhQUE0QjtRQUNwQyxLQUFLLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pDLElBQUksYUFBYSxDQUFDLEtBQUssSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDMUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFDRCxJQUFJLGFBQWEsQ0FBQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzlELE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO1lBQ25ELElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3RCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDckIsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLGFBQWEsQ0FBQyxRQUFRLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2hFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxRCxDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQTZCLENBQUMsWUFBWSxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsZUFBZSxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFDRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLDRCQUE0QixDQUFDLEVBQUUsR0FBRyxFQUFFO2dCQUMzQyxVQUFVLENBQUMsR0FBRyxFQUFFO29CQUNaLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDbkIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDTCxDQUFDO0lBQ0Qsa0JBQWtCLENBQUMsQ0FBQztRQUNoQixJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNMLENBQUM7SUFDRCxTQUFTO1FBQ0wsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNwRCxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLDZCQUE2QixDQUFDO1FBQzVFLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLGlDQUFpQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxhQUFhLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUMxQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUM1QyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDO1FBQzVDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUNyQyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFFbEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztRQUU1QyxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUM7UUFDN0MsNENBQTRDO1FBQzVDLGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQjtZQUNsQyxrR0FBa0csQ0FBQztRQUN2RyxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixHQUFHLG1DQUFtQyxDQUFDO1FBRTNFLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHO1lBQ3pCLFNBQVM7WUFDVCxRQUFRO1lBQ1IsVUFBVTtZQUNWLFVBQVU7WUFDVixTQUFTO1lBQ1QsTUFBTTtZQUNOLFlBQVk7WUFDWixnQkFBZ0I7WUFDaEIsV0FBVztZQUNYLFlBQVk7WUFDWixNQUFNO1lBQ04sT0FBTztZQUNQLFdBQVc7WUFDWCxnQkFBZ0I7WUFDaEIsTUFBTTtZQUNOLE9BQU87WUFDUCxPQUFPO1lBQ1AsYUFBYTtZQUNiLFdBQVc7WUFDWCxTQUFTO1lBQ1QsV0FBVztZQUNYLE1BQU07WUFDTixlQUFlO1lBQ2YsT0FBTztZQUNQLFVBQVU7WUFDVixjQUFjO1lBQ2QsYUFBYTtZQUNiLFdBQVc7WUFDWCxZQUFZO1NBQ2YsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTztZQUN0Qiw0SEFBNEg7Z0JBQzVILDhHQUE4RyxDQUFDO1FBRW5ILElBQUksQ0FBQyxhQUFhLENBQUMsMkJBQTJCO1lBQzFDLG9FQUFvRSxDQUFDO1FBQ3pFLE1BQU0scUJBQXFCLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQztRQUNyRCxJQUFJLGVBQWUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO1FBQ3RHLGVBQWUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMscUJBQXFCLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLGVBQWUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDckQsS0FBSyxNQUFNLElBQUksSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUM5QyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNuQyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDckMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM1QyxtQ0FBbUM7WUFDbkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3ZDLENBQUM7UUFFRCxJQUFJLFNBQWdDLENBQUM7UUFFckMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQzNCLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQztRQUN6QyxDQUFDO1FBQ0QsSUFBSSxnQkFBZ0IsR0FBUSxFQUFFLENBQUM7UUFFL0IsZUFBZTtRQUNmLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUU7WUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7b0JBQ3BCLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztvQkFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTt3QkFDL0IsZ0JBQWdCLENBQUMsSUFBSSxDQUFDOzRCQUNsQixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUk7NEJBQ2hCLElBQUksRUFBRSxVQUFVOzRCQUNoQixJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsR0FBRyxDQUFDOzRCQUMxRCxRQUFRLEVBQUUsR0FBRyxFQUFFO2dDQUNYLHdEQUF3RDtnQ0FDeEQsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7NEJBQ25ELENBQUM7eUJBQ0osQ0FBQyxDQUFDO29CQUNQLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUM7Z0JBQ0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRTtvQkFDeEMsSUFBSSxFQUFFLFFBQVE7b0JBQ2QsSUFBSSxFQUFFLE9BQU87b0JBQ2IsT0FBTyxFQUFFLHdCQUF3QjtvQkFDakMsUUFBUSxFQUFFLEdBQUcsRUFBRTt3QkFDWCxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQzNCLG9CQUFvQixFQUNwQjs0QkFDSSxjQUFjLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7NEJBQ2xELFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7eUJBQzdDLEVBQ0QsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLEVBQUU7NEJBQ1osUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQzt3QkFDaEQsQ0FBQyxDQUNKLENBQUM7b0JBQ04sQ0FBQztvQkFDRCxZQUFZLEVBQUUsR0FBRyxFQUFFO3dCQUNmLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FDM0IsMEJBQTBCLEVBQzFCOzRCQUNJLGNBQWMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzt5QkFDbkQsRUFDRCxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsRUFBRTs0QkFDWixRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO3dCQUNoRCxDQUFDLENBQ0osQ0FBQztvQkFDTixDQUFDO29CQUNELEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxFQUFFO3dCQUNoQixNQUFNLEtBQUssR0FBRzs0QkFDVjtnQ0FDSSxJQUFJLEVBQUUsWUFBWTtnQ0FDbEIsSUFBSSxFQUFFLFFBQVE7Z0NBQ2QsSUFBSSxFQUFFLE9BQU87Z0NBQ2IsT0FBTyxFQUFFLGNBQWM7Z0NBQ3ZCLEtBQUssRUFBRSxRQUFROzZCQUNsQjt5QkFDSixDQUFDO3dCQUNGLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDcEIsQ0FBQztpQkFDSixDQUFDLENBQUM7Z0JBRUgsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGNBQWMsRUFBRTtvQkFDekMsSUFBSSxFQUFFLGtCQUFrQjtvQkFDeEIsS0FBSyxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUU7d0JBQ2hCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO29CQUMvQixDQUFDO2lCQUNKLENBQUMsQ0FBQztnQkFDSCxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztvQkFDbEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDN0MsQ0FBQztZQUNMLENBQUM7WUFDRCxJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDcEIsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFO2dCQUNmLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7Z0JBQzlCLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUM7Z0JBQ3JDLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLFdBQVcsRUFBRSxDQUFDO29CQUNwQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDOUIsQ0FBQztnQkFDRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxFQUFFLENBQUM7b0JBQ3JDLEVBQUUsQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUMxRSxDQUFDO2dCQUNELElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDckMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7Z0JBQzFFLENBQUM7Z0JBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ2xCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2dCQUN0QyxDQUFDO2dCQUNELHNFQUFzRTtnQkFDdEUsdUNBQXVDO2dCQUN2QyxNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUMsVUFBVSxDQUFDO2dCQUNqQyxFQUFFLENBQUMsVUFBVSxHQUFHLENBQUMsR0FBRyxJQUFJLEVBQUUsRUFBRTtvQkFDeEIsVUFBVSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQzNCLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUM5QixDQUFDLENBQUM7Z0JBQ0YsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDZixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNyQixNQUFNLE9BQU8sR0FBc0IsRUFBRSxDQUFDLGFBQWEsQ0FBQztnQkFDcEQsSUFBSSxPQUFPLEVBQUUsQ0FBQztvQkFDVixPQUFPLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDekQsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1lBRUgsdUNBQXVDO1lBQ3ZDLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQztZQUN0QixFQUFFLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRSxHQUFHLEVBQUU7Z0JBQ3ZCLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDL0IsSUFBSSxNQUFNLEtBQUssVUFBVSxFQUFFLENBQUM7b0JBQ3hCLE9BQU87Z0JBQ1gsQ0FBQztnQkFFRCxVQUFVLEdBQUcsTUFBTSxDQUFDO2dCQUNwQixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7b0JBQ1gsT0FBTztnQkFDWCxDQUFDO2dCQUVELEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDVixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzlCLDhEQUE4RDtZQUNsRSxDQUFDLENBQUMsQ0FBQztZQUVILEVBQUUsQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRTtnQkFDaEIsT0FBTztZQUNYLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDWixTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEIsQ0FBQztRQUNMLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxnQkFBZ0I7UUFDWixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFDRCxrQkFBa0IsQ0FBQyxRQUFRO1FBQ3ZCLE1BQU0sS0FBSyxHQUFRLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkQsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDbkMsS0FBSyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFeEMsS0FBSyxDQUFDLFFBQVEsR0FBRyxHQUFHLEVBQUU7WUFDbEIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUU1QixNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO2dCQUNqQixJQUFJLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBZ0IsQ0FBQztnQkFDckMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzlCLFFBQVEsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDM0IsQ0FBQyxDQUFDO1lBQ0YsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixDQUFDLENBQUM7UUFFRixLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUNELFlBQVksQ0FBQyxNQUFNLEVBQUUsUUFBUTtRQUN6QixJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsaUNBQWlDLEdBQUcsTUFBTSxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ3ZHLFFBQVEsRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUNELFFBQVE7UUFDSixJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUM7UUFDZixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3hDLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ0wsR0FBRyxHQUFHLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMxQixDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUNELFFBQVEsQ0FBQyxLQUFLO1FBQ1YsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFDRCxZQUFZO1FBQ1IsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN4QyxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUNMLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlCLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFDRCxLQUFLO1FBQ0QsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxTQUFTO1FBQ0wsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN4QyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3ZELENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDeEMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4RCxDQUFDO0lBQ0wsQ0FBQztJQUNELFdBQVcsQ0FBQyxRQUFRO1FBQ2hCLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsTUFBTSxFQUFFLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDeEMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3hELElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ1gsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbkMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ25DLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7UUFDVixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDdkQsT0FBTztRQUNYLENBQUM7UUFDRCxNQUFNLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ0wsa0VBQWtFO1lBQ2xFLElBQUksRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNuQixFQUFFLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDckUsQ0FBQztZQUNELEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEIsQ0FBQztJQUNMLENBQUM7SUFDTyxVQUFVLENBQUMsS0FBYTtRQUM1QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FDakQsU0FBUyxDQUFDLENBQUMsUUFBa0IsRUFBRSxFQUFFLENBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUMsSUFBSSxDQUN0RSxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNSLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNyQixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZCLElBQUksT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNuQixRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO29CQUN4QyxPQUFPO2dCQUNYLENBQUM7Z0JBQ0QsTUFBTSxLQUFLLEdBQUc7b0JBQ1YsR0FBRyxPQUFPO29CQUNWLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtpQkFDekIsQ0FBQztnQkFDRixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNCLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FDTCxDQUNKLENBQ0osQ0FBQztJQUNOLENBQUM7SUFDTyxVQUFVLENBQUMsSUFBd0I7UUFDdkMsTUFBTSxHQUFHLEdBQUcsOEJBQThCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN6RCxNQUFNLElBQUksR0FBRyxXQUFXLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUV2QyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNPLE9BQU87UUFDWCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQztRQUNyQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBQ2xDLENBQUM7SUFXTyxtQkFBbUI7UUFDdkIsT0FBTyxLQUFLLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTyxlQUFlLENBQUMsRUFBTztRQUMzQixNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsYUFBYSxFQUFFLGVBQWUsRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdEUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNQLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUNuQyxDQUFDO0lBQ0wsQ0FBQzsrR0F0YlEsc0JBQXNCO21HQUF0QixzQkFBc0IsME9BSHBCLENBQUMsYUFBYSxDQUFDLDZLQ2xDOUIsd2lCQWdCQTs7NEZEcUJhLHNCQUFzQjtrQkFSbEMsU0FBUzsrQkFDSSxvQkFBb0IsbUJBR2IsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGFBQWEsQ0FBQyxjQUNkLEtBQUs7MkdBR00sU0FBUztzQkFBL0IsU0FBUzt1QkFBQyxVQUFVO2dCQUNaLE9BQU87c0JBQWYsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE91dHB1dCxcclxuICAgIFNpbXBsZUNoYW5nZXMsXHJcbiAgICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRmlsZVVwbG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgY29uY2F0TWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtcclxuICAgIEJhc2VDb21wb25lbnQsXHJcbiAgICBCYXJzYUFwaSxcclxuICAgIGdldFVuaXF1ZUlkLFxyXG4gICAgaXNGdW5jdGlvbixcclxuICAgIFVwbG9hZFNlcnZpY2UsXHJcbiAgICBHZW5lcmFsQ29udHJvbEluZm9Nb2RlbFxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbmRlY2xhcmUgY29uc3Qgd2luZG93OiBhbnk7XHJcbmRlY2xhcmUgY29uc3QgdGlueW1jZTogYW55O1xyXG5kZWNsYXJlIGNvbnN0IGhlYWQ6IGFueTtcclxuZGVjbGFyZSBjb25zdCAkOiBhbnk7XHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtYmFyc2EtdGlueWVtY2UnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JhcnNhLXRpbnllbWNlLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2JhcnNhLXRpbnllbWNlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHByb3ZpZGVyczogW1VwbG9hZFNlcnZpY2VdLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhcnNhVGlueWVtY2VDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xyXG4gICAgQFZpZXdDaGlsZCgndXBsb2FkZXInKSBfdXBsb2FkZXI6IEZpbGVVcGxvYWRlckNvbXBvbmVudDtcclxuICAgIEBJbnB1dCgpIFNldHRpbmc6IEdlbmVyYWxDb250cm9sSW5mb01vZGVsO1xyXG4gICAgQElucHV0KCkgaXNSZWFkb25seTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIHZhbHVlOiBhbnk7XHJcbiAgICBASW5wdXQoKSBJc0lubGluZTogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGRlZmF1bHRWZXJiczogeyBUaXRsZTogc3RyaW5nOyBIdG1sOiBzdHJpbmcgfVtdO1xyXG4gICAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBAT3V0cHV0KCkgdGlueUluaXQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgICB0aW55SG9zdElkID0gdGhpcy5fZ2VuZXJhdGVUaW55SG9zdElkKCk7XHJcbiAgICB0aW55TUNFQ29uZmlnOiBhbnkgPSB7fTtcclxuICAgIGVkaXRvcjogYW55O1xyXG4gICAgd3lzaXd5Z0ludGlhbGl6ZWQ6IGJvb2xlYW47XHJcbiAgICBpbnRpYWxpemF0aW9uSW5Qcm9ncmVzczogYm9vbGVhbjtcclxuICAgIGVkaXRvclZhbHVlOiBzdHJpbmc7XHJcblxyXG4gICAgaWZyYW1Cb2R5SW5uZXJIdG1sOiBzdHJpbmc7XHJcbiAgICBoZWlnaHQ6IG51bWJlcjtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3VwbG9hZFNlcnZpY2U6IFVwbG9hZFNlcnZpY2UsIHByb3RlY3RlZCBfZWw6IEVsZW1lbnRSZWYpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgfVxyXG4gICAgbmdPbkNoYW5nZXMoc2ltcGxlQ2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25DaGFuZ2VzKHNpbXBsZUNoYW5nZXMpO1xyXG4gICAgICAgIGlmIChzaW1wbGVDaGFuZ2VzLnZhbHVlICYmICFzaW1wbGVDaGFuZ2VzLnZhbHVlLmZpcnN0Q2hhbmdlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0VmFsdWUoc2ltcGxlQ2hhbmdlcy52YWx1ZS5jdXJyZW50VmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoc2ltcGxlQ2hhbmdlcy5kaXNhYmxlICYmICFzaW1wbGVDaGFuZ2VzLmRpc2FibGUuZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICAgICAgY29uc3QgZGlzYmFsZSA9IHNpbXBsZUNoYW5nZXMuZGlzYWJsZS5jdXJyZW50VmFsdWU7XHJcbiAgICAgICAgICAgIGlmIChkaXNiYWxlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldERpc2FibGUoKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2V0RW5hYmxlKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNpbXBsZUNoYW5nZXMucmVhZG9ubHkgJiYgIXNpbXBsZUNoYW5nZXMucmVhZG9ubHkuZmlyc3RDaGFuZ2UpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRSZWFkT25seShzaW1wbGVDaGFuZ2VzLnJlYWRvbmx5LmN1cnJlbnRWYWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLmhlaWdodCA9ICh0aGlzLl9lbC5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5jbGllbnRIZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3lUaW55bWNlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgb25GaWxlU2VsZWN0aW9uKGZpbGVzOiBGaWxlW10pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnVwbG9hZEZpbGUoZmlsZXMpLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICAgIGxvYWRUaW55TWNlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5TZXR0aW5nLklzSHRtbFZpZXdlcikge1xyXG4gICAgICAgICAgICBoZWFkLmxvYWQoWydMaWIvdGlueW1jZS90aW55bWNlLm1pbi5qcyddLCAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmUoKTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBvblZpc2liaWxpdHlDaGFuZ2UoZSk6IHZvaWQge1xyXG4gICAgICAgIGlmIChlID09PSAnVmlzaWJsZScpIHtcclxuICAgICAgICAgICAgdGhpcy5sb2FkVGlueU1jZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIGluaXRpbGl6ZSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy50aW55TUNFQ29uZmlnLnNldHVwKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLmhlaWdodCA9ICcxMDAlJztcclxuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcud2lkdGggPSAnMTAwJSc7XHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnNlbGVjdG9yID0gJyMnICsgdGhpcy50aW55SG9zdElkO1xyXG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5wbGFjZWhvbGRlciA9IHRoaXMuU2V0dGluZy5Db250cm9sRmllbGRDYXB0aW9uVHJhbnNsYXRlZDtcclxuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcuY29udGVudF9jc3MgPSAnYXNzZXRzL1Jlc291cmNlcy9mb250cy9JcmFuLmNzcyc7XHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLmRpcmVjdGlvbmFsaXR5ID0gJ3J0bCc7XHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLmxhbmd1YWdlID0gJ2ZhX0lSJztcclxuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcucHJvbW90aW9uID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnNraW4gPSAnb3hpZGUnO1xyXG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5wYXN0ZV9kYXRhX2ltYWdlcyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLmRlZmF1bHRGb250TmFtZSA9ICdCLUZvbnQnO1xyXG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5kZWZhdWx0Rm9udFNpemUgPSAnMTJweCc7XHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnN0YXR1c2JhciA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5yZXNpemUgPSBmYWxzZTtcclxuXHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLmlubGluZSA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5tZW51YmFyID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnRvb2xiYXJfbG9jYXRpb24gPSAndG9wJztcclxuXHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnRvb2xiYXJfbW9kZSA9ICdmbG9hdGluZyc7XHJcbiAgICAgICAgLy8gdGhpcy50aW55TUNFQ29uZmlnLnRvb2xiYXJfc3RpY2t5ID0gdHJ1ZTtcclxuICAgICAgICAvLyB0aGlzLnRpbnlNQ0VDb25maWcudG9vbGJhcl9zdGlja3lfb2Zmc2V0ID0gMTAwO1xyXG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5mb250X2ZhbWlseV9mb3JtYXRzID1cclxuICAgICAgICAgICAgJ0JhcnNhRm9udD1CYXJzYUZvbnQ7QXJpYWw9YXJpYWwsaGVsdmV0aWNhLHNhbnMtc2VyaWY7IENvdXJpZXIgTmV3PWNvdXJpZXIgbmV3LGNvdXJpZXIsbW9ub3NwYWNlOyc7XHJcbiAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLmZvbnRfc2l6ZV9mb3JtYXRzID0gJzhwdCAxMHB0IDEycHQgMTRwdCAxOHB0IDI0cHQgMzZwdCc7XHJcblxyXG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy5wbHVnaW5zID0gW1xyXG4gICAgICAgICAgICAnYWR2bGlzdCcsXHJcbiAgICAgICAgICAgICdhbmNob3InLFxyXG4gICAgICAgICAgICAnYXV0b2xpbmsnLFxyXG4gICAgICAgICAgICAnYXV0b3NhdmUnLFxyXG4gICAgICAgICAgICAnY2hhcm1hcCcsXHJcbiAgICAgICAgICAgICdjb2RlJyxcclxuICAgICAgICAgICAgJ2NvZGVzYW1wbGUnLFxyXG4gICAgICAgICAgICAnZGlyZWN0aW9uYWxpdHknLFxyXG4gICAgICAgICAgICAnZW1vdGljb25zJyxcclxuICAgICAgICAgICAgJ2Z1bGxzY3JlZW4nLFxyXG4gICAgICAgICAgICAnaGVscCcsXHJcbiAgICAgICAgICAgICdpbWFnZScsXHJcbiAgICAgICAgICAgICdpbXBvcnRjc3MnLFxyXG4gICAgICAgICAgICAnaW5zZXJ0ZGF0ZXRpbWUnLFxyXG4gICAgICAgICAgICAnbGluaycsXHJcbiAgICAgICAgICAgICdsaXN0cycsXHJcbiAgICAgICAgICAgICdtZWRpYScsXHJcbiAgICAgICAgICAgICdub25icmVha2luZycsXHJcbiAgICAgICAgICAgICdwYWdlYnJlYWsnLFxyXG4gICAgICAgICAgICAncHJldmlldycsXHJcbiAgICAgICAgICAgICdxdWlja2JhcnMnLFxyXG4gICAgICAgICAgICAnc2F2ZScsXHJcbiAgICAgICAgICAgICdzZWFyY2hyZXBsYWNlJyxcclxuICAgICAgICAgICAgJ3RhYmxlJyxcclxuICAgICAgICAgICAgJ3RlbXBsYXRlJyxcclxuICAgICAgICAgICAgJ3Zpc3VhbGJsb2NrcycsXHJcbiAgICAgICAgICAgICd2aXN1YWxjaGFycycsXHJcbiAgICAgICAgICAgICd3b3JkY291bnQnLFxyXG4gICAgICAgICAgICAnYXV0b3Jlc2l6ZSdcclxuICAgICAgICBdO1xyXG4gICAgICAgIHRoaXMudGlueU1DRUNvbmZpZy50b29sYmFyID1cclxuICAgICAgICAgICAgYGRlZmF1bHRWZXJicyBiYXJzYUltYWdlIHwgaW5zZXJ0IHwgZm9yZWNvbG9yIGJhY2tjb2xvciBmb250ZmFtaWx5IGZvbnRzaXplIHwgYnVsbGlzdCBudW1saXN0IG91dGRlbnQgaW5kZW50IHwgcmVtb3ZlZm9ybWF0YCArXHJcbiAgICAgICAgICAgIGAgfCB1bmRvIHJlZG8gfCBjb3B5IGN1dCBwYXN0ZSB8IGJsb2NrcyB8IGJvbGQgaXRhbGljIHwgYWxpZ25sZWZ0IGFsaWduY2VudGVyIGFsaWducmlnaHQgYWxpZ25qdXN0aWZ5IGx0ciBydGxgO1xyXG5cclxuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcucXVpY2tiYXJzX3NlbGVjdGlvbl90b29sYmFyID1cclxuICAgICAgICAgICAgJ2JvbGQgaXRhbGljIGZvbnRzaXplIHwgZm9yZWNvbG9yIGJhY2tjb2xvcnxkZWZhdWx0VmVyYnMgYmFyc2FJbWFnZSc7XHJcbiAgICAgICAgY29uc3QgdGlueW1jZVNldHRpbmdzR2xvYmFsID0gd2luZG93LnRpbnltY2VTZXR0aW5ncztcclxuICAgICAgICBsZXQgdGlueW1jZVNldHRpbmdzID0gQmFyc2FBcGkuQ29tbW9uLlV0aWwuVHJ5R2V0VmFsdWUodGhpcy5TZXR0aW5nLCAnSnNvbkV4dHJhUHJvcC50aW55bWNlU2V0dGluZ3MnKTtcclxuICAgICAgICB0aW55bWNlU2V0dGluZ3MgPSBCYXJzYUFwaS5Db21tb24uTWVyZ2VyLk1lcmdlKHRpbnltY2VTZXR0aW5nc0dsb2JhbCwgdGlueW1jZVNldHRpbmdzKTtcclxuICAgICAgICBpZiAoIXRpbnltY2VTZXR0aW5ncyAmJiBBcnJheS5pc0FycmF5KHRpbnltY2VTZXR0aW5ncykpIHtcclxuICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRpbnltY2VTZXR0aW5ncykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnW2l0ZW0ua2V5XSA9IGl0ZW0udmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzUmVhZG9ubHkpIHtcclxuICAgICAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLm1lbnViYXIgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy50aW55TUNFQ29uZmlnLnN0YXR1c2JhciA9IGZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcucGx1Z2lucyA9IFsnYXV0b3Jlc2l6ZSddO1xyXG4gICAgICAgICAgICAvLyB0aGlzLnRpbnlNQ0VDb25maWcucGx1Z2lucyA9IFtdO1xyXG4gICAgICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcudG9vbGJhciA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHVzZXJTZXR1cDogKGVkaXRvcjogYW55KSA9PiB2b2lkO1xyXG5cclxuICAgICAgICBpZiAodGhpcy50aW55TUNFQ29uZmlnLnNldHVwKSB7XHJcbiAgICAgICAgICAgIHVzZXJTZXR1cCA9IHRoaXMudGlueU1DRUNvbmZpZy5zZXR1cDtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGV0IGRlZmF1bHRWZXJic01lbnU6IGFueSA9IFtdO1xyXG5cclxuICAgICAgICAvLyBCRUdJTjogc2V0dXBcclxuICAgICAgICB0aGlzLnRpbnlNQ0VDb25maWcuc2V0dXAgPSAoZWQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5lZGl0b3IgPSBlZDtcclxuICAgICAgICAgICAgaWYgKCF0aGlzLmlzUmVhZG9ubHkpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRlZmF1bHRWZXJicykge1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWZXJic01lbnUgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRlZmF1bHRWZXJicy5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWZXJic01lbnUucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaXRlbS5IdG1sLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ21lbnVpdGVtJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRleHQ6IGl0ZW0uVGl0bGUgfHwgaXRlbS5IdG1sLnJlcGxhY2UoLzxiclxccypcXC8/Pi9naSwgJyAnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQWN0aW9uOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZWQuZXhlY0NvbW1hbmQoJ21jZUluc2VydFJhd0hUTUwnLCBmYWxzZSwgaXRlbS5IdG1sKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlZC5pbnNlcnRDb250ZW50KGl0ZW0uSHRtbCwgeyBmb3JtYXQ6ICdyYXcnIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGVkLnVpLnJlZ2lzdHJ5LmFkZFNwbGl0QnV0dG9uKCdiYXJzYUltYWdlJywge1xyXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6ICdpbnNlcnQnLFxyXG4gICAgICAgICAgICAgICAgICAgIGljb246ICdpbWFnZScsXHJcbiAgICAgICAgICAgICAgICAgICAgdG9vbHRpcDogJ0luc2VydCBJbWFnZSBBcyBCYXNlNjQnLFxyXG4gICAgICAgICAgICAgICAgICAgIG9uQWN0aW9uOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5Bc3luYy5XYXRlcmZhbGwoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVGluZW1jZS5FbWJlZEltYWdlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuRmlsZURpYWxvZzogdGhpcy5TaG93T3BlbkZpbGVEaWFsb2cuYmluZCh0aGlzKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnNlcnRCYXNlNjQ6IHRoaXMuSW5zZXJ0QmFzZTY0LmJpbmQodGhpcylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyLCByZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYXJzYUFwaS5Db21tb24uQXN5bmMuRmluYWxpemUoZXJyLCByZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgb25JdGVtQWN0aW9uOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkNvbW1vbi5Bc3luYy5XYXRlcmZhbGwoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVGluZW1jZS5VcGxvYWRUb0RhdGFiYXNlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuRmlsZURpYWxvZzogdGhpcy5TaG93VXBsb2FkV2luZG93LmJpbmQodGhpcylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXJyLCByZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCYXJzYUFwaS5Db21tb24uQXN5bmMuRmluYWxpemUoZXJyLCByZXN1bHQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmV0Y2g6IChjYWxsYmFjaykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBpdGVtcyA9IFtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnY2hvaWNlaXRlbScsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogJ3VwbG9hZCcsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogJ2ltYWdlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b29sdGlwOiAnVXBsb2FkIEltYWdlJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogJ3VwbG9hZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soaXRlbXMpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgICAgIGVkLnVpLnJlZ2lzdHJ5LmFkZE1lbnVCdXR0b24oJ2RlZmF1bHRWZXJicycsIHtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiAn2LnYqNin2LHYqtmH2KfbjCDZvtuM2LQg2YHYsdi2JyxcclxuICAgICAgICAgICAgICAgICAgICBmZXRjaDogKGNhbGxiYWNrKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrKGRlZmF1bHRWZXJic01lbnUpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24od2luZG93LnRpbnltY2VTZXR1cCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cudGlueW1jZVNldHVwLmNhbGwodGhpcywgdGhpcywgZWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGxldCBoYXNJbml0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgIGVkLm9uKCdpbml0JywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy53eXNpd3lnSW50aWFsaXplZCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmludGlhbGl6YXRpb25JblByb2dyZXNzID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHRoaXMudmFsdWUgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRWYWx1ZSh0aGlzLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRpbnlNQ0VDb25maWcuZGVmYXVsdEZvbnROYW1lKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZWQuZXhlY0NvbW1hbmQoJ0ZvbnROYW1lJywgZmFsc2UsIHRoaXMudGlueU1DRUNvbmZpZy5kZWZhdWx0Rm9udE5hbWUpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGlueU1DRUNvbmZpZy5kZWZhdWx0Rm9udFNpemUpIHtcclxuICAgICAgICAgICAgICAgICAgICBlZC5leGVjQ29tbWFuZCgnRm9udFNpemUnLCBmYWxzZSwgdGhpcy50aW55TUNFQ29uZmlnLmRlZmF1bHRGb250U2l6ZSk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1JlYWRvbmx5KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRSZWFkT25seSh0aGlzLmlzUmVhZG9ubHkpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgLy8gVGhpcyBwaWVjZSBvZiBjb2RlIHNvbHZlcyB0aGUgcHJvYmxlbSBvZiBjaGFuZ2UgcHJvcGFnYXRpb24gc28gdGhhdFxyXG4gICAgICAgICAgICAgICAgLy8gdGhlcmUgaXMgbm8gbmVlZCB0byBjYWxsIHRyaWdnZXJTYXZlXHJcbiAgICAgICAgICAgICAgICBjb25zdCBzZXRDb250ZW50ID0gZWQuc2V0Q29udGVudDtcclxuICAgICAgICAgICAgICAgIGVkLnNldENvbnRlbnQgPSAoLi4uYXJncykgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHNldENvbnRlbnQuYXBwbHkoZWQsIGFyZ3MpO1xyXG4gICAgICAgICAgICAgICAgICAgIGVkLmRpc3BhdGNoKCdjaGFuZ2UnLCB7fSk7XHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICAgICAgaGFzSW5pdCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRpbnlJbml0LmVtaXQoKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGlmcmFtRWw6IEhUTUxJRnJhbWVFbGVtZW50ID0gZWQuaWZyYW1lRWxlbWVudDtcclxuICAgICAgICAgICAgICAgIGlmIChpZnJhbUVsKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWZyYW1FbC5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgdGhpcy5fb25Mb2FkSWZyYW1lKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgICAvLyBDYXRjaCBhbmQgcHJvcGFnYXRlIHRoZSBjaGFuZ2UgZXZlbnRcclxuICAgICAgICAgICAgbGV0IG9sZENvbnRlbnQgPSBudWxsO1xyXG4gICAgICAgICAgICBlZC5vbignY2hhbmdlIGtleXVwJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbmV3dmFsID0gZWQuZ2V0Q29udGVudCgpO1xyXG4gICAgICAgICAgICAgICAgaWYgKG5ld3ZhbCA9PT0gb2xkQ29udGVudCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBvbGRDb250ZW50ID0gbmV3dmFsO1xyXG4gICAgICAgICAgICAgICAgaWYgKCFoYXNJbml0KSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGVkLnNhdmUoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9yVmFsdWUgPSBuZXd2YWw7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQobmV3dmFsKTtcclxuICAgICAgICAgICAgICAgIC8vIHRoaXMuY29udGV4dC5maXJlRXZlbnQoJ2NoYW5nZScsIHRoaXMsIG5ld3ZhbCwgb2xkdmFsLCB7fSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgZWQub24oJ2ZvY3VzJywgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgLy8gVE9ET1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIGlmICh1c2VyU2V0dXApIHtcclxuICAgICAgICAgICAgICAgIHVzZXJTZXR1cChlZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIFNob3dVcGxvYWRXaW5kb3coKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdXBsb2FkZXIub3BlbigpO1xyXG4gICAgfVxyXG4gICAgU2hvd09wZW5GaWxlRGlhbG9nKGRvUmV0dXJuKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5wdXQ6IGFueSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lucHV0Jyk7XHJcbiAgICAgICAgaW5wdXQuc2V0QXR0cmlidXRlKCd0eXBlJywgJ2ZpbGUnKTtcclxuICAgICAgICBpbnB1dC5zZXRBdHRyaWJ1dGUoJ2FjY2VwdCcsICdpbWFnZS8qJyk7XHJcblxyXG4gICAgICAgIGlucHV0Lm9uY2hhbmdlID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBmaWxlID0gaW5wdXQuZmlsZXNbMF07XHJcblxyXG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xyXG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IGJhc2U2NCA9IHJlYWRlci5yZXN1bHQgYXMgc3RyaW5nO1xyXG4gICAgICAgICAgICAgICAgYmFzZTY0ID0gYmFzZTY0LnNwbGl0KCcsJylbMV07XHJcbiAgICAgICAgICAgICAgICBkb1JldHVybihudWxsLCBiYXNlNjQpO1xyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpbnB1dC5jbGljaygpO1xyXG4gICAgfVxyXG4gICAgSW5zZXJ0QmFzZTY0KGJhc2U2NCwgZG9SZXR1cm4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVkaXRvci5leGVjQ29tbWFuZCgnbWNlSW5zZXJ0Q29udGVudCcsIGZhbHNlLCAnPGltZyBzcmM9ZGF0YTppbWFnZS9wbmc7YmFzZTY0LCcgKyBiYXNlNjQgKyAnIC8+Jyk7XHJcbiAgICAgICAgZG9SZXR1cm4oKTtcclxuICAgIH1cclxuICAgIGdldFZhbHVlKCk6IHN0cmluZyB8IG51bGwge1xyXG4gICAgICAgIGxldCByZXMgPSBudWxsO1xyXG4gICAgICAgIGlmICh0aGlzLnd5c2l3eWdJbnRpYWxpemVkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVkID0gdGlueW1jZS5nZXQodGhpcy50aW55SG9zdElkKTtcclxuICAgICAgICAgICAgaWYgKGVkKSB7XHJcbiAgICAgICAgICAgICAgICByZXMgPSBlZC5nZXRDb250ZW50KCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiByZXM7XHJcbiAgICB9XHJcbiAgICBzZXRWYWx1ZSh2YWx1ZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLnNldFZhbHVlVGlueSgpO1xyXG4gICAgfVxyXG4gICAgc2V0VmFsdWVUaW55KCk6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHRoaXMud3lzaXd5Z0ludGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgY29uc3QgZWQgPSB0aW55bWNlLmdldCh0aGlzLnRpbnlIb3N0SWQpO1xyXG4gICAgICAgICAgICBpZiAoZWQpIHtcclxuICAgICAgICAgICAgICAgIGVkLnNldENvbnRlbnQodGhpcy52YWx1ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XHJcbiAgICB9XHJcbiAgICBmb2N1cygpOiBhbnkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzUmVhZG9ubHkpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy53eXNpd3lnSW50aWFsaXplZCkge1xyXG4gICAgICAgICAgICB0aW55bWNlLmV4ZWNDb21tYW5kKCdtY2VGb2N1cycsIGZhbHNlLCAnaWRfb2ZfdGV4dGFyZWEnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0RW5hYmxlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnd5c2l3eWdJbnRpYWxpemVkKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGVkID0gdGlueW1jZS5nZXQodGhpcy50aW55SG9zdElkKTtcclxuICAgICAgICAgICAgZWQuZ2V0Qm9keSgpLnNldEF0dHJpYnV0ZSgnY29udGVudGVkaXRhYmxlJywgdHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldERpc2FibGUoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMud3lzaXd5Z0ludGlhbGl6ZWQpIHtcclxuICAgICAgICAgICAgY29uc3QgZWQgPSB0aW55bWNlLmdldCh0aGlzLnRpbnlIb3N0SWQpO1xyXG4gICAgICAgICAgICBlZC5nZXRCb2R5KCkuc2V0QXR0cmlidXRlKCdjb250ZW50ZWRpdGFibGUnLCBmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgc2V0UmVhZE9ubHkocmVhZE9ubHkpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy53eXNpd3lnSW50aWFsaXplZCkge1xyXG4gICAgICAgICAgICBjb25zdCBlZCA9IHRpbnltY2UuZ2V0KHRoaXMudGlueUhvc3RJZCk7XHJcbiAgICAgICAgICAgIGVkLmdldEJvZHkoKS5zZXRBdHRyaWJ1dGUoJ2NvbnRlbnRlZGl0YWJsZScsICFyZWFkT25seSk7XHJcbiAgICAgICAgICAgIGlmIChyZWFkT25seSkge1xyXG4gICAgICAgICAgICAgICAgJCgnLnRveC1lZGl0b3ItaGVhZGVyJykuaGlkZSgpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgJCgnLnRveC1lZGl0b3ItaGVhZGVyJykuaGlkZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGRlc3Ryb3lUaW55bWNlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLlNldHRpbmcuSXNIdG1sVmlld2VyIHx8ICF0aGlzLnd5c2l3eWdJbnRpYWxpemVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZWQgPSB0aW55bWNlLmdldCh0aGlzLnRpbnlIb3N0SWQpO1xyXG4gICAgICAgIGlmIChlZCkge1xyXG4gICAgICAgICAgICAvLyB0aW55bWNlLmV4ZWNDb21tYW5kKCdtY2VSZW1vdmVDb250cm9sJywgdHJ1ZSwgdGhpcy50aW55SG9zdElkKTtcclxuICAgICAgICAgICAgaWYgKGVkLmlmcmFtZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIGVkLmlmcmFtZUVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbG9hZCcsIHRoaXMuX29uTG9hZElmcmFtZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWQuZGVzdHJveShmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSB1cGxvYWRGaWxlKGZpbGVzOiBGaWxlW10pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91cGxvYWRTZXJ2aWNlLmNvbXByZXNzRmlsZXMkKGZpbGVzKS5waXBlKFxyXG4gICAgICAgICAgICBjb25jYXRNYXAoKGZvcm1EYXRhOiBGb3JtRGF0YSkgPT5cclxuICAgICAgICAgICAgICAgIHRoaXMuX3VwbG9hZFNlcnZpY2UudXBsb2FkKGZvcm1EYXRhLCB0aGlzLlNldHRpbmcuU3RvcmFnZUZpbGVGaWVsZElkKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgIHRhcCgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlcykpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBpY3R1cmUgPSByZXNbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocGljdHVyZS5FcnJvck1zZykge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJhcnNhQXBpLkJ3Lk1zZy5FcnJvcihwaWN0dXJlLkVycm9yTXNnKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5waWN0dXJlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZpbGVJZDogcGljdHVyZS5GaWxlSWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9hZGRJbWFnZXModmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9hZGRJbWFnZXMoZmlsZTogeyBGaWxlSWQ6IHN0cmluZyB9KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gJy9JSC5hc2h4P3R5PVN0b3JhZ2VGaWxlJmtleT0nICsgZmlsZS5GaWxlSWQ7XHJcbiAgICAgICAgY29uc3QgaHRtbCA9ICc8aW1nIHNyYz0nICsgdXJsICsgJyAvPic7XHJcblxyXG4gICAgICAgIHRoaXMuZWRpdG9yLmV4ZWNDb21tYW5kKCdtY2VJbnNlcnRDb250ZW50JywgZmFsc2UsIGh0bWwpO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBwcmVwYXJlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5pdGlsaXplKCk7XHJcbiAgICAgICAgdGlueW1jZS5pbml0KHRoaXMudGlueU1DRUNvbmZpZyk7XHJcbiAgICAgICAgdGhpcy5pbnRpYWxpemF0aW9uSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMud3lzaXd5Z0ludGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfb25Mb2FkSWZyYW1lID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmVkaXRvclZhbHVlO1xyXG4gICAgICAgIC8vIGNvbnN0IGVkID0gdGlueW1jZS5nZXQodGhpcy50aW55SG9zdElkKTtcclxuICAgICAgICAvLyBlZC5leGVjQ29tbWFuZCgnbWNlSW5zZXJ0Q29udGVudCcsIGZhbHNlLCB0aGlzLnZhbHVlKTtcclxuXHJcbiAgICAgICAgLy8gZWQuaW5zZXJ0Q29udGVudCh0aGlzLnZhbHVlLCB7IGZvcm1hdDogJ3JhdycgfSk7XHJcbiAgICAgICAgLy8gdGhpcy5fcmVtb3ZlT3ZlcmZsb3coZWQpO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveVRpbnltY2UoKTtcclxuICAgICAgICB0aGlzLnByZXBhcmUoKTtcclxuICAgIH07XHJcbiAgICBwcml2YXRlIF9nZW5lcmF0ZVRpbnlIb3N0SWQoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gYGFfJHtnZXRVbmlxdWVJZCgyKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3JlbW92ZU92ZXJmbG93KGVkOiBhbnkpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBodG1sID0gZWQuaWZyYW1lRWxlbWVudD8uY29udGVudERvY3VtZW50Py5xdWVyeVNlbGVjdG9yKCdodG1sJyk7XHJcbiAgICAgICAgaWYgKGh0bWwpIHtcclxuICAgICAgICAgICAgaHRtbC5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgICBjbGFzcz1cImZkLWlucHV0IHRpbnl3cmFwcGVyXCJcclxuICAgIFtzdHlsZS5taW4taGVpZ2h0LnB4XT1cImhlaWdodFwiXHJcbiAgICBbaWRdPVwidGlueUhvc3RJZFwiXHJcbiAgICBpbnRlcnNlY3Rpb25PYnNlcnZlclxyXG4gICAgW2ludGVyc2VjdGlvblRocmVzaG9sZF09XCIwLjFcIlxyXG4gICAgKHZpc2liaWxpdHlDaGFuZ2UpPVwib25WaXNpYmlsaXR5Q2hhbmdlKCRldmVudClcIlxyXG4+PC9kaXY+XHJcbjxmZC1maWxlLXVwbG9hZGVyXHJcbiAgICAjdXBsb2FkZXJcclxuICAgIFtzdHlsZS5kaXNwbGF5XT1cIidub25lJ1wiXHJcbiAgICBbYWNjZXB0XT1cIicnXCJcclxuICAgIFttdWx0aXBsZV09XCJmYWxzZVwiXHJcbiAgICAoc2VsZWN0ZWRGaWxlc0NoYW5nZWQpPVwib25GaWxlU2VsZWN0aW9uKCRldmVudClcIlxyXG4+PC9mZC1maWxlLXVwbG9hZGVyPlxyXG48IS0tIDx0ZXh0YXJlYSBbaWRdPVwidGlueUhvc3RJZFwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlOyB2aXNpYmlsaXR5OiBoaWRkZW5cIj48L3RleHRhcmVhPiAtLT5cclxuIl19
@@ -3,13 +3,13 @@ import { BaseComponent } from 'barsa-novin-ray-core';
3
3
  import * as i0 from "@angular/core";
4
4
  import * as i1 from "@fundamental-ngx/core";
5
5
  import * as i2 from "@angular/common";
6
- import * as i3 from "@fundamental-ngx/core/bar";
7
- import * as i4 from "@fundamental-ngx/core/layout-grid";
8
- import * as i5 from "@fundamental-ngx/core/dialog";
9
- import * as i6 from "@fundamental-ngx/cdk/utils";
10
- import * as i7 from "@fundamental-ngx/core/title";
11
- import * as i8 from "../file-viewer-content/file-viewer-content.component";
12
- import * as i9 from "barsa-novin-ray-core";
6
+ import * as i3 from "barsa-novin-ray-core";
7
+ import * as i4 from "@fundamental-ngx/core/bar";
8
+ import * as i5 from "@fundamental-ngx/core/layout-grid";
9
+ import * as i6 from "@fundamental-ngx/core/dialog";
10
+ import * as i7 from "@fundamental-ngx/cdk/utils";
11
+ import * as i8 from "@fundamental-ngx/core/title";
12
+ import * as i9 from "../file-viewer-content/file-viewer-content.component";
13
13
  export class FileViewerComponent extends BaseComponent {
14
14
  constructor(_dialogRef) {
15
15
  super();
@@ -35,13 +35,13 @@ export class FileViewerComponent extends BaseComponent {
35
35
  this._dialogRef.close();
36
36
  }
37
37
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileViewerComponent, deps: [{ token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
38
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FileViewerComponent, selector: "bsu-file-viewer", viewQueries: [{ propertyName: "gallery", first: true, predicate: ["gallery"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fd-dialog #dialogTpl class=\"vertical\">\r\n <fd-dialog-header>\r\n <ng-template fdkTemplate=\"header\">\r\n <div fd-bar-left>\r\n <fd-bar-element>\r\n <h3 fd-title>{{ title | bbbTranslate }}</h3>\r\n </fd-bar-element>\r\n </div>\r\n <div fd-bar-right>\r\n <fd-button-bar\r\n ariaLabel=\"Fit image size\"\r\n [glyph]=\"'resize'\"\r\n [fdType]=\"fillWidth ? 'emphasized' : 'transparent'\"\r\n (click)=\"fillWidth = !fillWidth\"\r\n ></fd-button-bar>\r\n <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"onClose()\"></fd-button-bar>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-header>\r\n <fd-dialog-body #fdbody>\r\n @if (isImageGallery) {\r\n <div #gallery class=\"gallery inDialog\">\r\n @for (media of files; track media; let i = $index) {\r\n <bsu-file-viewer-content\r\n [deviceSize]=\"deviceSize\"\r\n [file]=\"selectedFile\"\r\n [imageOnly]=\"true\"\r\n [fillWidth]=\"fillWidth\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n }\r\n </div>\r\n } @if (!isImageGallery) {\r\n <div class=\"gallery\">\r\n @if (selectedFile) {\r\n <bsu-file-viewer-content\r\n [deviceSize]=\"deviceSize\"\r\n [fillWidth]=\"fillWidth\"\r\n [file]=\"selectedFile\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n }\r\n </div>\r\n } @if (deviceSize !== 's') {\r\n <div class=\"thumbnail\" style=\"flex-shrink: 1\">\r\n <ng-cotainer *ngTemplateOutlet=\"layoutGridTpl; context: { $implicit: files }\"></ng-cotainer>\r\n </div>\r\n }\r\n </fd-dialog-body>\r\n</fd-dialog>\r\n<ng-template #layoutGridTpl let-files>\r\n <fd-layout-grid>\r\n @if (files) {\r\n <div fdLayoutGridRow>\r\n @for (file of files; track file; let i = $index) {\r\n <div [fdLayoutGridCol]=\"6\" [colMd]=\"3\" [colLg]=\"2\" [colXl]=\"2\" (click)=\"onMedaiClick(file, i)\">\r\n <bsu-file-viewer-content\r\n [cardMode]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [file]=\"file\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </fd-layout-grid>\r\n</ng-template>\r\n", styles: ["fd-dialog .gallery{overflow:auto}fd-dialog .gallery .pics{position:relative}fd-dialog fd-dialog-body{display:flex}fd-dialog.horizontal fd-dialog-body{flex-direction:column}fd-dialog.horizontal .gallery{flex-direction:row}fd-dialog.horizontal .thumbnail{border-top:1px solid #ccc;overflow-x:auto}fd-dialog.vertical fd-dialog-body{flex-direction:row-reverse;padding:0}fd-dialog.vertical .gallery{flex-direction:column;height:100%;flex:1}fd-dialog.vertical .thumbnail{border:1px solid #ccc;height:100%;width:200px;overflow-y:auto}fd-dialog.vertical .thumbnail ::ng-deep .fd-row>div{width:100%;min-width:100%}fd-card.media fd-card-footer button{border:none}fd-card.inDialog fd-card-header{padding-top:5px;padding-bottom:5px}.fd-col{min-width:165px}\n"], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i3.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i3.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i3.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i4.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i4.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "directive", type: i4.LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "component", type: i5.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i5.DialogBodyComponent, selector: "fd-dialog-body", inputs: ["disablePaddings"] }, { kind: "component", type: i5.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i6.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i7.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i8.FileViewerContentComponent, selector: "bsu-file-viewer-content", inputs: ["fillWidth", "imageOnly", "isImageGallery", "cardMode", "showFooter", "showContent", "width", "deviceSize", "cardContentHeight", "file"], outputs: ["cantView"] }, { kind: "pipe", type: i9.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FileViewerComponent, selector: "bsu-file-viewer", viewQueries: [{ propertyName: "gallery", first: true, predicate: ["gallery"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fd-dialog #dialogTpl class=\"vertical\">\r\n <fd-dialog-header>\r\n <ng-template fdkTemplate=\"header\">\r\n <div fd-bar-left>\r\n <fd-bar-element>\r\n <h3 fd-title>{{ title | bbbTranslate }}</h3>\r\n </fd-bar-element>\r\n </div>\r\n <div fd-bar-right>\r\n <fd-button-bar\r\n ariaLabel=\"Print\"\r\n glyph=\"print\"\r\n fdType=\"transparent\"\r\n printFiles\r\n [files]=\"files\"\r\n ></fd-button-bar>\r\n <fd-button-bar\r\n ariaLabel=\"Fit image size\"\r\n [glyph]=\"'resize'\"\r\n [fdType]=\"fillWidth ? 'emphasized' : 'transparent'\"\r\n (click)=\"fillWidth = !fillWidth\"\r\n ></fd-button-bar>\r\n <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"onClose()\"></fd-button-bar>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-header>\r\n <fd-dialog-body #fdbody>\r\n @if (isImageGallery) {\r\n <div #gallery class=\"gallery inDialog\">\r\n @for (media of files; track media; let i = $index) {\r\n <bsu-file-viewer-content\r\n [deviceSize]=\"deviceSize\"\r\n [file]=\"selectedFile\"\r\n [imageOnly]=\"true\"\r\n [fillWidth]=\"fillWidth\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n }\r\n </div>\r\n } @if (!isImageGallery) {\r\n <div class=\"gallery\">\r\n @if (selectedFile) {\r\n <bsu-file-viewer-content\r\n [deviceSize]=\"deviceSize\"\r\n [fillWidth]=\"fillWidth\"\r\n [file]=\"selectedFile\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n }\r\n </div>\r\n } @if (deviceSize !== 's') {\r\n <div class=\"thumbnail\" style=\"flex-shrink: 1\">\r\n <ng-cotainer *ngTemplateOutlet=\"layoutGridTpl; context: { $implicit: files }\"></ng-cotainer>\r\n </div>\r\n }\r\n </fd-dialog-body>\r\n</fd-dialog>\r\n<ng-template #layoutGridTpl let-files>\r\n <fd-layout-grid>\r\n @if (files) {\r\n <div fdLayoutGridRow>\r\n @for (file of files; track file; let i = $index) {\r\n <div [fdLayoutGridCol]=\"6\" [colMd]=\"3\" [colLg]=\"2\" [colXl]=\"2\" (click)=\"onMedaiClick(file, i)\">\r\n <bsu-file-viewer-content\r\n [cardMode]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [file]=\"file\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </fd-layout-grid>\r\n</ng-template>\r\n", styles: ["fd-dialog .gallery{overflow:auto}fd-dialog .gallery .pics{position:relative}fd-dialog fd-dialog-body{display:flex}fd-dialog.horizontal fd-dialog-body{flex-direction:column}fd-dialog.horizontal .gallery{flex-direction:row}fd-dialog.horizontal .thumbnail{border-top:1px solid #ccc;overflow-x:auto}fd-dialog.vertical fd-dialog-body{flex-direction:row-reverse;padding:0}fd-dialog.vertical .gallery{flex-direction:column;height:100%;flex:1}fd-dialog.vertical .thumbnail{border:1px solid #ccc;height:100%;width:200px;overflow-y:auto}fd-dialog.vertical .thumbnail ::ng-deep .fd-row>div{width:100%;min-width:100%}fd-card.media fd-card-footer button{border:none}fd-card.inDialog fd-card-header{padding-top:5px;padding-bottom:5px}.fd-col{min-width:165px}\n"], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.PrintFilesDirective, selector: "[printFiles]", inputs: ["files", "file", "isImageGallery", "component"] }, { kind: "directive", type: i4.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i4.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i4.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i4.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i5.LayoutGridComponent, selector: "fd-layout-grid, [fdLayoutGrid]", inputs: ["class", "noGap", "noHorizontalGap", "noVerticalGap"] }, { kind: "directive", type: i5.LayoutGridColDirective, selector: "[fd-layout-grid-col], [fdLayoutGridCol]", inputs: ["fdLayoutGridCol", "colGrow", "colMd", "colLg", "colXl", "colOffset", "colOffsetMd", "colOffsetLg", "colOffsetXl", "class"] }, { kind: "directive", type: i5.LayoutGridRowDirective, selector: "[fd-layout-grid-row], [fdLayoutGridRow]" }, { kind: "component", type: i6.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i6.DialogBodyComponent, selector: "fd-dialog-body", inputs: ["disablePaddings"] }, { kind: "component", type: i6.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "directive", type: i7.TemplateDirective, selector: "[fdkTemplate]", inputs: ["fdkTemplate"] }, { kind: "component", type: i8.TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: i9.FileViewerContentComponent, selector: "bsu-file-viewer-content", inputs: ["fillWidth", "imageOnly", "isImageGallery", "cardMode", "showFooter", "showContent", "width", "deviceSize", "cardContentHeight", "file"], outputs: ["cantView"] }, { kind: "pipe", type: i3.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
39
39
  }
40
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileViewerComponent, decorators: [{
41
41
  type: Component,
42
- args: [{ selector: 'bsu-file-viewer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<fd-dialog #dialogTpl class=\"vertical\">\r\n <fd-dialog-header>\r\n <ng-template fdkTemplate=\"header\">\r\n <div fd-bar-left>\r\n <fd-bar-element>\r\n <h3 fd-title>{{ title | bbbTranslate }}</h3>\r\n </fd-bar-element>\r\n </div>\r\n <div fd-bar-right>\r\n <fd-button-bar\r\n ariaLabel=\"Fit image size\"\r\n [glyph]=\"'resize'\"\r\n [fdType]=\"fillWidth ? 'emphasized' : 'transparent'\"\r\n (click)=\"fillWidth = !fillWidth\"\r\n ></fd-button-bar>\r\n <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"onClose()\"></fd-button-bar>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-header>\r\n <fd-dialog-body #fdbody>\r\n @if (isImageGallery) {\r\n <div #gallery class=\"gallery inDialog\">\r\n @for (media of files; track media; let i = $index) {\r\n <bsu-file-viewer-content\r\n [deviceSize]=\"deviceSize\"\r\n [file]=\"selectedFile\"\r\n [imageOnly]=\"true\"\r\n [fillWidth]=\"fillWidth\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n }\r\n </div>\r\n } @if (!isImageGallery) {\r\n <div class=\"gallery\">\r\n @if (selectedFile) {\r\n <bsu-file-viewer-content\r\n [deviceSize]=\"deviceSize\"\r\n [fillWidth]=\"fillWidth\"\r\n [file]=\"selectedFile\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n }\r\n </div>\r\n } @if (deviceSize !== 's') {\r\n <div class=\"thumbnail\" style=\"flex-shrink: 1\">\r\n <ng-cotainer *ngTemplateOutlet=\"layoutGridTpl; context: { $implicit: files }\"></ng-cotainer>\r\n </div>\r\n }\r\n </fd-dialog-body>\r\n</fd-dialog>\r\n<ng-template #layoutGridTpl let-files>\r\n <fd-layout-grid>\r\n @if (files) {\r\n <div fdLayoutGridRow>\r\n @for (file of files; track file; let i = $index) {\r\n <div [fdLayoutGridCol]=\"6\" [colMd]=\"3\" [colLg]=\"2\" [colXl]=\"2\" (click)=\"onMedaiClick(file, i)\">\r\n <bsu-file-viewer-content\r\n [cardMode]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [file]=\"file\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </fd-layout-grid>\r\n</ng-template>\r\n", styles: ["fd-dialog .gallery{overflow:auto}fd-dialog .gallery .pics{position:relative}fd-dialog fd-dialog-body{display:flex}fd-dialog.horizontal fd-dialog-body{flex-direction:column}fd-dialog.horizontal .gallery{flex-direction:row}fd-dialog.horizontal .thumbnail{border-top:1px solid #ccc;overflow-x:auto}fd-dialog.vertical fd-dialog-body{flex-direction:row-reverse;padding:0}fd-dialog.vertical .gallery{flex-direction:column;height:100%;flex:1}fd-dialog.vertical .thumbnail{border:1px solid #ccc;height:100%;width:200px;overflow-y:auto}fd-dialog.vertical .thumbnail ::ng-deep .fd-row>div{width:100%;min-width:100%}fd-card.media fd-card-footer button{border:none}fd-card.inDialog fd-card-header{padding-top:5px;padding-bottom:5px}.fd-col{min-width:165px}\n"] }]
42
+ args: [{ selector: 'bsu-file-viewer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<fd-dialog #dialogTpl class=\"vertical\">\r\n <fd-dialog-header>\r\n <ng-template fdkTemplate=\"header\">\r\n <div fd-bar-left>\r\n <fd-bar-element>\r\n <h3 fd-title>{{ title | bbbTranslate }}</h3>\r\n </fd-bar-element>\r\n </div>\r\n <div fd-bar-right>\r\n <fd-button-bar\r\n ariaLabel=\"Print\"\r\n glyph=\"print\"\r\n fdType=\"transparent\"\r\n printFiles\r\n [files]=\"files\"\r\n ></fd-button-bar>\r\n <fd-button-bar\r\n ariaLabel=\"Fit image size\"\r\n [glyph]=\"'resize'\"\r\n [fdType]=\"fillWidth ? 'emphasized' : 'transparent'\"\r\n (click)=\"fillWidth = !fillWidth\"\r\n ></fd-button-bar>\r\n <fd-button-bar ariaLabel=\"close\" glyph=\"decline\" (click)=\"onClose()\"></fd-button-bar>\r\n </div>\r\n </ng-template>\r\n </fd-dialog-header>\r\n <fd-dialog-body #fdbody>\r\n @if (isImageGallery) {\r\n <div #gallery class=\"gallery inDialog\">\r\n @for (media of files; track media; let i = $index) {\r\n <bsu-file-viewer-content\r\n [deviceSize]=\"deviceSize\"\r\n [file]=\"selectedFile\"\r\n [imageOnly]=\"true\"\r\n [fillWidth]=\"fillWidth\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n }\r\n </div>\r\n } @if (!isImageGallery) {\r\n <div class=\"gallery\">\r\n @if (selectedFile) {\r\n <bsu-file-viewer-content\r\n [deviceSize]=\"deviceSize\"\r\n [fillWidth]=\"fillWidth\"\r\n [file]=\"selectedFile\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n }\r\n </div>\r\n } @if (deviceSize !== 's') {\r\n <div class=\"thumbnail\" style=\"flex-shrink: 1\">\r\n <ng-cotainer *ngTemplateOutlet=\"layoutGridTpl; context: { $implicit: files }\"></ng-cotainer>\r\n </div>\r\n }\r\n </fd-dialog-body>\r\n</fd-dialog>\r\n<ng-template #layoutGridTpl let-files>\r\n <fd-layout-grid>\r\n @if (files) {\r\n <div fdLayoutGridRow>\r\n @for (file of files; track file; let i = $index) {\r\n <div [fdLayoutGridCol]=\"6\" [colMd]=\"3\" [colLg]=\"2\" [colXl]=\"2\" (click)=\"onMedaiClick(file, i)\">\r\n <bsu-file-viewer-content\r\n [cardMode]=\"true\"\r\n [deviceSize]=\"deviceSize\"\r\n [file]=\"file\"\r\n [isImageGallery]=\"isImageGallery\"\r\n ></bsu-file-viewer-content>\r\n </div>\r\n }\r\n </div>\r\n }\r\n </fd-layout-grid>\r\n</ng-template>\r\n", styles: ["fd-dialog .gallery{overflow:auto}fd-dialog .gallery .pics{position:relative}fd-dialog fd-dialog-body{display:flex}fd-dialog.horizontal fd-dialog-body{flex-direction:column}fd-dialog.horizontal .gallery{flex-direction:row}fd-dialog.horizontal .thumbnail{border-top:1px solid #ccc;overflow-x:auto}fd-dialog.vertical fd-dialog-body{flex-direction:row-reverse;padding:0}fd-dialog.vertical .gallery{flex-direction:column;height:100%;flex:1}fd-dialog.vertical .thumbnail{border:1px solid #ccc;height:100%;width:200px;overflow-y:auto}fd-dialog.vertical .thumbnail ::ng-deep .fd-row>div{width:100%;min-width:100%}fd-card.media fd-card-footer button{border:none}fd-card.inDialog fd-card-header{padding-top:5px;padding-bottom:5px}.fd-col{min-width:165px}\n"] }]
43
43
  }], ctorParameters: () => [{ type: i1.DialogRef }], propDecorators: { gallery: [{
44
44
  type: ViewChild,
45
45
  args: ['gallery']
46
46
  }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZmlsZS12aWV3ZXIvZmlsZS12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZmlsZS12aWV3ZXIvZmlsZS12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBc0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxHLE9BQU8sRUFBeUIsYUFBYSxFQUFzQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7OztBQVNoRyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQVVsRCxZQUFvQixVQUFxQjtRQUNyQyxLQUFLLEVBQUUsQ0FBQztRQURRLGVBQVUsR0FBVixVQUFVLENBQVc7UUFFckMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUNwRyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLElBQUksR0FBRyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxJQUFJLFNBQVMsQ0FBQztRQUNsRCxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBQ0QsWUFBWSxDQUFDLEtBQXlCLEVBQUUsS0FBSztRQUN6QyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkcsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1QixDQUFDOytHQWhDUSxtQkFBbUI7bUdBQW5CLG1CQUFtQixrTENYaEMsNnRGQW9FQTs7NEZEekRhLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDSSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLOzhFQUdLLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5LCBEaWFsb2dSZWYgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5pbXBvcnQgeyBBYmJyZXZhdGlvbkRldmljZVNpemUsIEJhc2VDb21wb25lbnQsIEZpbGVBdHRhY2htZW50SW5mbyB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtZmlsZS12aWV3ZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdmlld2VyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2ZpbGUtdmlld2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlVmlld2VyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKCdnYWxsZXJ5JykgZ2FsbGVyeSE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gICAgZmlsbFdpZHRoOiBib29sZWFuO1xyXG4gICAgZGV2aWNlU2l6ZTogQWJicmV2YXRpb25EZXZpY2VTaXplO1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIGZpbGVzOiBGaWxlQXR0YWNobWVudEluZm9bXTtcclxuICAgIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eTtcclxuICAgIGlzSW1hZ2VHYWxsZXJ5OiBib29sZWFuO1xyXG4gICAgc2VsZWN0ZWRGaWxlOiBGaWxlQXR0YWNobWVudEluZm87XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGlhbG9nUmVmOiBEaWFsb2dSZWYpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGNvbnN0IHsgdGl0bGUsIGZpbGVzLCBzZWxlY3RlZEluZGV4LCBkZXZpY2VTaXplLCBjb250ZW50RGVuc2l0eSwgaXNJbWFnZUdhbGxlcnkgfSA9IF9kaWFsb2dSZWYuZGF0YTtcclxuICAgICAgICB0aGlzLnRpdGxlID0gdGl0bGU7XHJcbiAgICAgICAgdGhpcy5maWxlcyA9IGZpbGVzO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gZmlsZXNbc2VsZWN0ZWRJbmRleCB8fCAwXTtcclxuICAgICAgICB0aGlzLmRldmljZVNpemUgPSBkZXZpY2VTaXplIHx8ICdsJztcclxuICAgICAgICB0aGlzLmNvbnRlbnREZW5zaXR5ID0gY29udGVudERlbnNpdHkgfHwgJ2NvbXBhY3QnO1xyXG4gICAgICAgIHRoaXMuaXNJbWFnZUdhbGxlcnkgPSBpc0ltYWdlR2FsbGVyeTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgfVxyXG4gICAgb25NZWRhaUNsaWNrKG1lZGlhOiBGaWxlQXR0YWNobWVudEluZm8sIGluZGV4KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZpbGUgPSBtZWRpYTtcclxuICAgICAgICBpZiAodGhpcy5pc0ltYWdlR2FsbGVyeSkge1xyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnkubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdbaWQ9XCInICsgU3RyaW5nKGluZGV4KSArICdcIl0nKT8uc2Nyb2xsSW50b1ZpZXcodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25DbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgIH1cclxufVxyXG4iLCI8ZmQtZGlhbG9nICNkaWFsb2dUcGwgY2xhc3M9XCJ2ZXJ0aWNhbFwiPlxyXG4gICAgPGZkLWRpYWxvZy1oZWFkZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XHJcbiAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgzIGZkLXRpdGxlPnt7IHRpdGxlIHwgYmJiVHJhbnNsYXRlIH19PC9oMz5cclxuICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cclxuICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXHJcbiAgICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiRml0IGltYWdlIHNpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtnbHlwaF09XCIncmVzaXplJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2ZkVHlwZV09XCJmaWxsV2lkdGggPyAnZW1waGFzaXplZCcgOiAndHJhbnNwYXJlbnQnXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZmlsbFdpZHRoID0gIWZpbGxXaWR0aFwiXHJcbiAgICAgICAgICAgICAgICA+PC9mZC1idXR0b24tYmFyPlxyXG4gICAgICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXIgYXJpYUxhYmVsPVwiY2xvc2VcIiBnbHlwaD1cImRlY2xpbmVcIiAoY2xpY2spPVwib25DbG9zZSgpXCI+PC9mZC1idXR0b24tYmFyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9mZC1kaWFsb2ctaGVhZGVyPlxyXG4gICAgPGZkLWRpYWxvZy1ib2R5ICNmZGJvZHk+XHJcbiAgICAgICAgQGlmIChpc0ltYWdlR2FsbGVyeSkge1xyXG4gICAgICAgIDxkaXYgI2dhbGxlcnkgY2xhc3M9XCJnYWxsZXJ5IGluRGlhbG9nXCI+XHJcbiAgICAgICAgICAgIEBmb3IgKG1lZGlhIG9mIGZpbGVzOyB0cmFjayBtZWRpYTsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgICAgICAgICAgPGJzdS1maWxlLXZpZXdlci1jb250ZW50XHJcbiAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgICAgICAgICAgICAgIFtmaWxlXT1cInNlbGVjdGVkRmlsZVwiXHJcbiAgICAgICAgICAgICAgICBbaW1hZ2VPbmx5XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgW2ZpbGxXaWR0aF09XCJmaWxsV2lkdGhcIlxyXG4gICAgICAgICAgICAgICAgW2lzSW1hZ2VHYWxsZXJ5XT1cImlzSW1hZ2VHYWxsZXJ5XCJcclxuICAgICAgICAgICAgPjwvYnN1LWZpbGUtdmlld2VyLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9IEBpZiAoIWlzSW1hZ2VHYWxsZXJ5KSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImdhbGxlcnlcIj5cclxuICAgICAgICAgICAgQGlmIChzZWxlY3RlZEZpbGUpIHtcclxuICAgICAgICAgICAgPGJzdS1maWxlLXZpZXdlci1jb250ZW50XHJcbiAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgICAgICAgICAgICAgIFtmaWxsV2lkdGhdPVwiZmlsbFdpZHRoXCJcclxuICAgICAgICAgICAgICAgIFtmaWxlXT1cInNlbGVjdGVkRmlsZVwiXHJcbiAgICAgICAgICAgICAgICBbaXNJbWFnZUdhbGxlcnldPVwiaXNJbWFnZUdhbGxlcnlcIlxyXG4gICAgICAgICAgICA+PC9ic3UtZmlsZS12aWV3ZXItY29udGVudD5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH0gQGlmIChkZXZpY2VTaXplICE9PSAncycpIHtcclxuICAgICAgICA8ZGl2IGNsYXNzPVwidGh1bWJuYWlsXCIgc3R5bGU9XCJmbGV4LXNocmluazogMVwiPlxyXG4gICAgICAgICAgICA8bmctY290YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsYXlvdXRHcmlkVHBsOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogZmlsZXMgfVwiPjwvbmctY290YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgPC9mZC1kaWFsb2ctYm9keT5cclxuPC9mZC1kaWFsb2c+XHJcbjxuZy10ZW1wbGF0ZSAjbGF5b3V0R3JpZFRwbCBsZXQtZmlsZXM+XHJcbiAgICA8ZmQtbGF5b3V0LWdyaWQ+XHJcbiAgICAgICAgQGlmIChmaWxlcykge1xyXG4gICAgICAgIDxkaXYgZmRMYXlvdXRHcmlkUm93PlxyXG4gICAgICAgICAgICBAZm9yIChmaWxlIG9mIGZpbGVzOyB0cmFjayBmaWxlOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICAgICAgICA8ZGl2IFtmZExheW91dEdyaWRDb2xdPVwiNlwiIFtjb2xNZF09XCIzXCIgW2NvbExnXT1cIjJcIiBbY29sWGxdPVwiMlwiIChjbGljayk9XCJvbk1lZGFpQ2xpY2soZmlsZSwgaSlcIj5cclxuICAgICAgICAgICAgICAgIDxic3UtZmlsZS12aWV3ZXItY29udGVudFxyXG4gICAgICAgICAgICAgICAgICAgIFtjYXJkTW9kZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplXCJcclxuICAgICAgICAgICAgICAgICAgICBbZmlsZV09XCJmaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICBbaXNJbWFnZUdhbGxlcnldPVwiaXNJbWFnZUdhbGxlcnlcIlxyXG4gICAgICAgICAgICAgICAgPjwvYnN1LWZpbGUtdmlld2VyLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfVxyXG4gICAgPC9mZC1sYXlvdXQtZ3JpZD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS12aWV3ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZmlsZS12aWV3ZXIvZmlsZS12aWV3ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZmlsZS12aWV3ZXIvZmlsZS12aWV3ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBc0IsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxHLE9BQU8sRUFBeUIsYUFBYSxFQUFzQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7Ozs7OztBQVNoRyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBYTtJQVVsRCxZQUFvQixVQUFxQjtRQUNyQyxLQUFLLEVBQUUsQ0FBQztRQURRLGVBQVUsR0FBVixVQUFVLENBQVc7UUFFckMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsY0FBYyxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUNwRyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDOUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLElBQUksR0FBRyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxJQUFJLFNBQVMsQ0FBQztRQUNsRCxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsUUFBUTtRQUNKLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBQ0QsWUFBWSxDQUFDLEtBQXlCLEVBQUUsS0FBSztRQUN6QyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUMxQixJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkcsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1QixDQUFDOytHQWhDUSxtQkFBbUI7bUdBQW5CLG1CQUFtQixrTENYaEMsKytGQTJFQTs7NEZEaEVhLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDSSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLOzhFQUdLLE9BQU87c0JBQTVCLFNBQVM7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5LCBEaWFsb2dSZWYgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5pbXBvcnQgeyBBYmJyZXZhdGlvbkRldmljZVNpemUsIEJhc2VDb21wb25lbnQsIEZpbGVBdHRhY2htZW50SW5mbyB9IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdic3UtZmlsZS12aWV3ZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdmlld2VyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2ZpbGUtdmlld2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlVmlld2VyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKCdnYWxsZXJ5JykgZ2FsbGVyeSE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gICAgZmlsbFdpZHRoOiBib29sZWFuO1xyXG4gICAgZGV2aWNlU2l6ZTogQWJicmV2YXRpb25EZXZpY2VTaXplO1xyXG4gICAgdGl0bGU6IHN0cmluZztcclxuICAgIGZpbGVzOiBGaWxlQXR0YWNobWVudEluZm9bXTtcclxuICAgIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eTtcclxuICAgIGlzSW1hZ2VHYWxsZXJ5OiBib29sZWFuO1xyXG4gICAgc2VsZWN0ZWRGaWxlOiBGaWxlQXR0YWNobWVudEluZm87XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGlhbG9nUmVmOiBEaWFsb2dSZWYpIHtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGNvbnN0IHsgdGl0bGUsIGZpbGVzLCBzZWxlY3RlZEluZGV4LCBkZXZpY2VTaXplLCBjb250ZW50RGVuc2l0eSwgaXNJbWFnZUdhbGxlcnkgfSA9IF9kaWFsb2dSZWYuZGF0YTtcclxuICAgICAgICB0aGlzLnRpdGxlID0gdGl0bGU7XHJcbiAgICAgICAgdGhpcy5maWxlcyA9IGZpbGVzO1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gZmlsZXNbc2VsZWN0ZWRJbmRleCB8fCAwXTtcclxuICAgICAgICB0aGlzLmRldmljZVNpemUgPSBkZXZpY2VTaXplIHx8ICdsJztcclxuICAgICAgICB0aGlzLmNvbnRlbnREZW5zaXR5ID0gY29udGVudERlbnNpdHkgfHwgJ2NvbXBhY3QnO1xyXG4gICAgICAgIHRoaXMuaXNJbWFnZUdhbGxlcnkgPSBpc0ltYWdlR2FsbGVyeTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgfVxyXG4gICAgb25NZWRhaUNsaWNrKG1lZGlhOiBGaWxlQXR0YWNobWVudEluZm8sIGluZGV4KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZEZpbGUgPSBtZWRpYTtcclxuICAgICAgICBpZiAodGhpcy5pc0ltYWdlR2FsbGVyeSkge1xyXG4gICAgICAgICAgICB0aGlzLmdhbGxlcnkubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdbaWQ9XCInICsgU3RyaW5nKGluZGV4KSArICdcIl0nKT8uc2Nyb2xsSW50b1ZpZXcodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25DbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgIH1cclxufVxyXG4iLCI8ZmQtZGlhbG9nICNkaWFsb2dUcGwgY2xhc3M9XCJ2ZXJ0aWNhbFwiPlxyXG4gICAgPGZkLWRpYWxvZy1oZWFkZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlIGZka1RlbXBsYXRlPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgICAgIDxkaXYgZmQtYmFyLWxlZnQ+XHJcbiAgICAgICAgICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgzIGZkLXRpdGxlPnt7IHRpdGxlIHwgYmJiVHJhbnNsYXRlIH19PC9oMz5cclxuICAgICAgICAgICAgICAgIDwvZmQtYmFyLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGZkLWJhci1yaWdodD5cclxuICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXHJcbiAgICAgICAgICAgICAgICAgICAgYXJpYUxhYmVsPVwiUHJpbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGdseXBoPVwicHJpbnRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgICAgICAgICBwcmludEZpbGVzXHJcbiAgICAgICAgICAgICAgICAgICAgW2ZpbGVzXT1cImZpbGVzXCJcclxuICAgICAgICAgICAgICAgID48L2ZkLWJ1dHRvbi1iYXI+XHJcbiAgICAgICAgICAgICAgICA8ZmQtYnV0dG9uLWJhclxyXG4gICAgICAgICAgICAgICAgICAgIGFyaWFMYWJlbD1cIkZpdCBpbWFnZSBzaXplXCJcclxuICAgICAgICAgICAgICAgICAgICBbZ2x5cGhdPVwiJ3Jlc2l6ZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiZmlsbFdpZHRoID8gJ2VtcGhhc2l6ZWQnIDogJ3RyYW5zcGFyZW50J1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImZpbGxXaWR0aCA9ICFmaWxsV2lkdGhcIlxyXG4gICAgICAgICAgICAgICAgPjwvZmQtYnV0dG9uLWJhcj5cclxuICAgICAgICAgICAgICAgIDxmZC1idXR0b24tYmFyIGFyaWFMYWJlbD1cImNsb3NlXCIgZ2x5cGg9XCJkZWNsaW5lXCIgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiPjwvZmQtYnV0dG9uLWJhcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cclxuICAgIDxmZC1kaWFsb2ctYm9keSAjZmRib2R5PlxyXG4gICAgICAgIEBpZiAoaXNJbWFnZUdhbGxlcnkpIHtcclxuICAgICAgICA8ZGl2ICNnYWxsZXJ5IGNsYXNzPVwiZ2FsbGVyeSBpbkRpYWxvZ1wiPlxyXG4gICAgICAgICAgICBAZm9yIChtZWRpYSBvZiBmaWxlczsgdHJhY2sgbWVkaWE7IGxldCBpID0gJGluZGV4KSB7XHJcbiAgICAgICAgICAgIDxic3UtZmlsZS12aWV3ZXItY29udGVudFxyXG4gICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgICAgICAgICBbZmlsZV09XCJzZWxlY3RlZEZpbGVcIlxyXG4gICAgICAgICAgICAgICAgW2ltYWdlT25seV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIFtmaWxsV2lkdGhdPVwiZmlsbFdpZHRoXCJcclxuICAgICAgICAgICAgICAgIFtpc0ltYWdlR2FsbGVyeV09XCJpc0ltYWdlR2FsbGVyeVwiXHJcbiAgICAgICAgICAgID48L2JzdS1maWxlLXZpZXdlci1jb250ZW50PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgfSBAaWYgKCFpc0ltYWdlR2FsbGVyeSkge1xyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJnYWxsZXJ5XCI+XHJcbiAgICAgICAgICAgIEBpZiAoc2VsZWN0ZWRGaWxlKSB7XHJcbiAgICAgICAgICAgIDxic3UtZmlsZS12aWV3ZXItY29udGVudFxyXG4gICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgICAgICAgICBbZmlsbFdpZHRoXT1cImZpbGxXaWR0aFwiXHJcbiAgICAgICAgICAgICAgICBbZmlsZV09XCJzZWxlY3RlZEZpbGVcIlxyXG4gICAgICAgICAgICAgICAgW2lzSW1hZ2VHYWxsZXJ5XT1cImlzSW1hZ2VHYWxsZXJ5XCJcclxuICAgICAgICAgICAgPjwvYnN1LWZpbGUtdmlld2VyLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICB9IEBpZiAoZGV2aWNlU2l6ZSAhPT0gJ3MnKSB7XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRodW1ibmFpbFwiIHN0eWxlPVwiZmxleC1zaHJpbms6IDFcIj5cclxuICAgICAgICAgICAgPG5nLWNvdGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGF5b3V0R3JpZFRwbDsgY29udGV4dDogeyAkaW1wbGljaXQ6IGZpbGVzIH1cIj48L25nLWNvdGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgIDwvZmQtZGlhbG9nLWJvZHk+XHJcbjwvZmQtZGlhbG9nPlxyXG48bmctdGVtcGxhdGUgI2xheW91dEdyaWRUcGwgbGV0LWZpbGVzPlxyXG4gICAgPGZkLWxheW91dC1ncmlkPlxyXG4gICAgICAgIEBpZiAoZmlsZXMpIHtcclxuICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZFJvdz5cclxuICAgICAgICAgICAgQGZvciAoZmlsZSBvZiBmaWxlczsgdHJhY2sgZmlsZTsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgICAgICAgICAgPGRpdiBbZmRMYXlvdXRHcmlkQ29sXT1cIjZcIiBbY29sTWRdPVwiM1wiIFtjb2xMZ109XCIyXCIgW2NvbFhsXT1cIjJcIiAoY2xpY2spPVwib25NZWRhaUNsaWNrKGZpbGUsIGkpXCI+XHJcbiAgICAgICAgICAgICAgICA8YnN1LWZpbGUtdmlld2VyLWNvbnRlbnRcclxuICAgICAgICAgICAgICAgICAgICBbY2FyZE1vZGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2ZpbGVdPVwiZmlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2lzSW1hZ2VHYWxsZXJ5XT1cImlzSW1hZ2VHYWxsZXJ5XCJcclxuICAgICAgICAgICAgICAgID48L2JzdS1maWxlLXZpZXdlci1jb250ZW50PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIH1cclxuICAgIDwvZmQtbGF5b3V0LWdyaWQ+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -15,11 +15,11 @@ export class FileViewerPopoverComponent extends BaseComponent {
15
15
  this.popoverOpened = false;
16
16
  }
17
17
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileViewerPopoverComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
18
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: { files: "files", file: "file", deviceSize: "deviceSize", canDownload: "canDownload", disableRemove: "disableRemove", fdType: "fdType" }, outputs: { remove: "remove" }, usesInheritance: true, ngImport: i0, template: "<!-- <div class=\"box\" #divRef (mouseover)=\"divRef.classList.add('onside')\" (mouseout)=\"divRef.classList.remove('onside')\">\r\n<div class=\"box-content\">\r\n <fd-icon [glyph]=\"'pdf-attachment'\"></fd-icon>\r\n</div>\r\n<div class=\"box-file-download\">\r\n <div class=\"icon\">\r\n <img\r\n id=\":1wy\"\r\n class=\"aSM\"\r\n src=\"//ssl.gstatic.com/docs/doclist/images/mediatype/icon_2_archive_x16.png\"\r\n title=\"Compressed Archive\"\r\n />\r\n </div>\r\n <div class=\"filename-wrapper\">\r\n <span class=\"filename\">build.rar</span>\r\n </div>\r\n </div>\r\n <div class=\"download-wrapper\">\r\n <button fd-button glyph=\"download\" fdType=\"transparent\"></button>\r\n <button fd-button glyph=\"download\" fdType=\"transparent\"></button>\r\n </div>\r\n</div> -->\r\n\r\n<div style=\"display: flex; align-items: center; column-gap: 1px\">\r\n <button\r\n fd-button\r\n [fdPopoverTrigger]=\"deviceSize === 's' ? popoverMobile : popoverLarge\"\r\n [label]=\"file.FileName || ''\"\r\n [title]=\"file.FileName || ''\"\r\n glyph=\"attachment\"\r\n [fdMenu]=\"true\"\r\n [fdType]=\"fdType\"\r\n class=\"btn-actionsheet\"\r\n (click)=\"popoverOpened = true\"\r\n ></button>\r\n <fd-popover\r\n #popoverMobile\r\n [mobile]=\"true\"\r\n [mobileConfig]=\"{ title: file?.FileName || 'ShowFiles' | bbbTranslate, hasCloseButton: true }\"\r\n >\r\n <ng-template #popoverBodyContent>\r\n @if(popoverOpened){\r\n <ng-container\r\n *ngTemplateOutlet=\"popoverbodyTpl; context: { $implicit: popoverMobile, mobile: true }\"\r\n ></ng-container>\r\n }\r\n </ng-template>\r\n </fd-popover>\r\n <fd-popover #popoverLarge>\r\n <fd-popover-body>\r\n @if(popoverOpened){\r\n <ng-container\r\n *ngTemplateOutlet=\"popoverbodyTpl; context: { $implicit: popoverLarge, mobile: false }\"\r\n ></ng-container>\r\n }\r\n </fd-popover-body>\r\n </fd-popover>\r\n\r\n @if (!disableRemove) {\r\n <button fd-button glyph=\"delete\" (click)=\"remove.emit()\"></button>\r\n }\r\n</div>\r\n\r\n<ng-template #popoverbodyTpl let-popover let-mobile=\"mobile\">\r\n <!-- <div fd-popover-body-header>\r\n <div fd-bar [cozy]=\"true\" id=\"popover-bar-header-3\">\r\n <div fd-bar-left>\r\n <fd-bar-element>{{ file.FileName }}</fd-bar-element>\r\n </div>\r\n </div>\r\n </div> -->\r\n <bsu-file-viewer-content\r\n [file]=\"file\"\r\n [width]=\"mobile ? '100vw' : '30vw'\"\r\n [cardMode]=\"true\"\r\n [showContent]=\"true\"\r\n [showFooter]=\"true\"\r\n [deviceSize]=\"deviceSize || 's'\"\r\n (cantView)=\"hideFullScreen = true\"\r\n [class.mobile]=\"mobile\"\r\n ></bsu-file-viewer-content>\r\n @if (canDownload) {\r\n <div fd-popover-body-footer>\r\n <bsu-barsa-bar-download-file\r\n [isMobile]=\"mobile\"\r\n [popover]=\"popover\"\r\n [files]=\"files?.length ? files : [file]\"\r\n [deviceSize]=\"deviceSize || 's'\"\r\n [hideFullScreen]=\"hideFullScreen\"\r\n ></bsu-barsa-bar-download-file>\r\n </div>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:block}.btn-actionsheet{width:100%!important;max-width:100%!important}.box{display:flex;flex-direction:column;width:175px;height:120px;position:relative;border:1px solid #ccc}.box .box-content{height:85px;text-align:center;display:flex;align-items:center;justify-content:center}.box .box-content fd-icon{font-size:1.825rem;color:#e5e5e5}.box .box-file-download{background-color:#f5f5f5;border-top:1px solid #e5e5e5;display:flex;gap:.285rem}.box .box-file-download .icon{align-items:center;float:left;display:-webkit-box;display:-webkit-flex;display:flex;height:32px;-webkit-justify-content:center;justify-content:center;width:32px}.box .box-file-download .filename-wrapper{display:flex;overflow:hidden}.box .box-file-download .filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777;font-size:12px;font-weight:700;line-height:16px;margin-top:8px;word-wrap:normal}.box .download-wrapper{display:none}.box.onside{background:#f5f5f5}.box.onside .box-content{display:none}.box.onside .box-file-download{border-top:none;height:85px}.box.onside .download-wrapper{display:flex;gap:.285rem;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: i4.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i4.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "directive", type: i4.PopoverTriggerDirective, selector: "[fdPopoverTrigger], [fd-popover-trigger]", inputs: ["fdPopoverTrigger"] }, { kind: "component", type: i5.BarsaBarDownloadFileComponent, selector: "bsu-barsa-bar-download-file", inputs: ["popover", "files", "hideFullScreen", "isMobile", "deviceSize"] }, { kind: "component", type: i6.FileViewerContentComponent, selector: "bsu-file-viewer-content", inputs: ["fillWidth", "imageOnly", "isImageGallery", "cardMode", "showFooter", "showContent", "width", "deviceSize", "cardContentHeight", "file"], outputs: ["cantView"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
18
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FileViewerPopoverComponent, selector: "bsu-file-viewer-popover", inputs: { files: "files", file: "file", deviceSize: "deviceSize", canDownload: "canDownload", disableRemove: "disableRemove", fdType: "fdType" }, outputs: { remove: "remove" }, usesInheritance: true, ngImport: i0, template: "<!-- <div class=\"box\" #divRef (mouseover)=\"divRef.classList.add('onside')\" (mouseout)=\"divRef.classList.remove('onside')\">\r\n<div class=\"box-content\">\r\n <fd-icon [glyph]=\"'pdf-attachment'\"></fd-icon>\r\n</div>\r\n<div class=\"box-file-download\">\r\n <div class=\"icon\">\r\n <img\r\n id=\":1wy\"\r\n class=\"aSM\"\r\n src=\"//ssl.gstatic.com/docs/doclist/images/mediatype/icon_2_archive_x16.png\"\r\n title=\"Compressed Archive\"\r\n />\r\n </div>\r\n <div class=\"filename-wrapper\">\r\n <span class=\"filename\">build.rar</span>\r\n </div>\r\n </div>\r\n <div class=\"download-wrapper\">\r\n <button fd-button glyph=\"download\" fdType=\"transparent\"></button>\r\n <button fd-button glyph=\"download\" fdType=\"transparent\"></button>\r\n </div>\r\n</div> -->\r\n\r\n<div style=\"display: flex; align-items: center; column-gap: 1px\">\r\n <button\r\n fd-button\r\n [fdPopoverTrigger]=\"deviceSize === 's' ? popoverMobile : popoverLarge\"\r\n [label]=\"file.FileName || ''\"\r\n [title]=\"file.FileName || ''\"\r\n glyph=\"attachment\"\r\n [fdMenu]=\"true\"\r\n [fdType]=\"fdType\"\r\n class=\"btn-actionsheet\"\r\n (click)=\"popoverOpened = true\"\r\n ></button>\r\n <fd-popover\r\n #popoverMobile\r\n [mobile]=\"true\"\r\n [mobileConfig]=\"{ title: file?.FileName || 'ShowFiles' | bbbTranslate, hasCloseButton: true }\"\r\n >\r\n <ng-template #popoverBodyContent>\r\n @if(popoverOpened){\r\n <ng-container\r\n *ngTemplateOutlet=\"popoverbodyTpl; context: { $implicit: popoverMobile, mobile: true }\"\r\n ></ng-container>\r\n }\r\n </ng-template>\r\n </fd-popover>\r\n <fd-popover #popoverLarge>\r\n <fd-popover-body>\r\n @if(popoverOpened){\r\n <ng-container\r\n *ngTemplateOutlet=\"popoverbodyTpl; context: { $implicit: popoverLarge, mobile: false }\"\r\n ></ng-container>\r\n }\r\n </fd-popover-body>\r\n </fd-popover>\r\n\r\n @if (!disableRemove) {\r\n <button fd-button glyph=\"delete\" (click)=\"remove.emit()\"></button>\r\n }\r\n</div>\r\n\r\n<ng-template #popoverbodyTpl let-popover let-mobile=\"mobile\">\r\n <!-- <div fd-popover-body-header>\r\n <div fd-bar [cozy]=\"true\" id=\"popover-bar-header-3\">\r\n <div fd-bar-left>\r\n <fd-bar-element>{{ file.FileName }}</fd-bar-element>\r\n </div>\r\n </div>\r\n </div> -->\r\n <bsu-file-viewer-content\r\n [file]=\"file\"\r\n [width]=\"mobile ? '100vw' : '30vw'\"\r\n [cardMode]=\"true\"\r\n [showContent]=\"true\"\r\n [showFooter]=\"true\"\r\n [deviceSize]=\"deviceSize || 's'\"\r\n (cantView)=\"hideFullScreen = true\"\r\n [class.mobile]=\"mobile\"\r\n ></bsu-file-viewer-content>\r\n @if (canDownload) {\r\n <div fd-popover-body-footer>\r\n <bsu-barsa-bar-download-file\r\n [isMobile]=\"mobile\"\r\n [popover]=\"popover\"\r\n [files]=\"files?.length ? files : [file]\"\r\n [file]=\"file\"\r\n [deviceSize]=\"deviceSize || 's'\"\r\n [hideFullScreen]=\"hideFullScreen\"\r\n ></bsu-barsa-bar-download-file>\r\n </div>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:block}.btn-actionsheet{width:100%!important;max-width:100%!important}.box{display:flex;flex-direction:column;width:175px;height:120px;position:relative;border:1px solid #ccc}.box .box-content{height:85px;text-align:center;display:flex;align-items:center;justify-content:center}.box .box-content fd-icon{font-size:1.825rem;color:#e5e5e5}.box .box-file-download{background-color:#f5f5f5;border-top:1px solid #e5e5e5;display:flex;gap:.285rem}.box .box-file-download .icon{align-items:center;float:left;display:-webkit-box;display:-webkit-flex;display:flex;height:32px;-webkit-justify-content:center;justify-content:center;width:32px}.box .box-file-download .filename-wrapper{display:flex;overflow:hidden}.box .box-file-download .filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777;font-size:12px;font-weight:700;line-height:16px;margin-top:8px;word-wrap:normal}.box .download-wrapper{display:none}.box.onside{background:#f5f5f5}.box.onside .box-content{display:none}.box.onside .box-file-download{border-top:none;height:85px}.box.onside .download-wrapper{display:flex;gap:.285rem;justify-content:center}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.MobileDirective, selector: "[mobile]" }, { kind: "component", type: i3.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i4.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: i4.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i4.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "directive", type: i4.PopoverTriggerDirective, selector: "[fdPopoverTrigger], [fd-popover-trigger]", inputs: ["fdPopoverTrigger"] }, { kind: "component", type: i5.BarsaBarDownloadFileComponent, selector: "bsu-barsa-bar-download-file", inputs: ["popover", "file", "files", "hideFullScreen", "isMobile", "canPrint", "deviceSize"] }, { kind: "component", type: i6.FileViewerContentComponent, selector: "bsu-file-viewer-content", inputs: ["fillWidth", "imageOnly", "isImageGallery", "cardMode", "showFooter", "showContent", "width", "deviceSize", "cardContentHeight", "file"], outputs: ["cantView"] }, { kind: "pipe", type: i2.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
19
19
  }
20
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileViewerPopoverComponent, decorators: [{
21
21
  type: Component,
22
- args: [{ selector: 'bsu-file-viewer-popover', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<!-- <div class=\"box\" #divRef (mouseover)=\"divRef.classList.add('onside')\" (mouseout)=\"divRef.classList.remove('onside')\">\r\n<div class=\"box-content\">\r\n <fd-icon [glyph]=\"'pdf-attachment'\"></fd-icon>\r\n</div>\r\n<div class=\"box-file-download\">\r\n <div class=\"icon\">\r\n <img\r\n id=\":1wy\"\r\n class=\"aSM\"\r\n src=\"//ssl.gstatic.com/docs/doclist/images/mediatype/icon_2_archive_x16.png\"\r\n title=\"Compressed Archive\"\r\n />\r\n </div>\r\n <div class=\"filename-wrapper\">\r\n <span class=\"filename\">build.rar</span>\r\n </div>\r\n </div>\r\n <div class=\"download-wrapper\">\r\n <button fd-button glyph=\"download\" fdType=\"transparent\"></button>\r\n <button fd-button glyph=\"download\" fdType=\"transparent\"></button>\r\n </div>\r\n</div> -->\r\n\r\n<div style=\"display: flex; align-items: center; column-gap: 1px\">\r\n <button\r\n fd-button\r\n [fdPopoverTrigger]=\"deviceSize === 's' ? popoverMobile : popoverLarge\"\r\n [label]=\"file.FileName || ''\"\r\n [title]=\"file.FileName || ''\"\r\n glyph=\"attachment\"\r\n [fdMenu]=\"true\"\r\n [fdType]=\"fdType\"\r\n class=\"btn-actionsheet\"\r\n (click)=\"popoverOpened = true\"\r\n ></button>\r\n <fd-popover\r\n #popoverMobile\r\n [mobile]=\"true\"\r\n [mobileConfig]=\"{ title: file?.FileName || 'ShowFiles' | bbbTranslate, hasCloseButton: true }\"\r\n >\r\n <ng-template #popoverBodyContent>\r\n @if(popoverOpened){\r\n <ng-container\r\n *ngTemplateOutlet=\"popoverbodyTpl; context: { $implicit: popoverMobile, mobile: true }\"\r\n ></ng-container>\r\n }\r\n </ng-template>\r\n </fd-popover>\r\n <fd-popover #popoverLarge>\r\n <fd-popover-body>\r\n @if(popoverOpened){\r\n <ng-container\r\n *ngTemplateOutlet=\"popoverbodyTpl; context: { $implicit: popoverLarge, mobile: false }\"\r\n ></ng-container>\r\n }\r\n </fd-popover-body>\r\n </fd-popover>\r\n\r\n @if (!disableRemove) {\r\n <button fd-button glyph=\"delete\" (click)=\"remove.emit()\"></button>\r\n }\r\n</div>\r\n\r\n<ng-template #popoverbodyTpl let-popover let-mobile=\"mobile\">\r\n <!-- <div fd-popover-body-header>\r\n <div fd-bar [cozy]=\"true\" id=\"popover-bar-header-3\">\r\n <div fd-bar-left>\r\n <fd-bar-element>{{ file.FileName }}</fd-bar-element>\r\n </div>\r\n </div>\r\n </div> -->\r\n <bsu-file-viewer-content\r\n [file]=\"file\"\r\n [width]=\"mobile ? '100vw' : '30vw'\"\r\n [cardMode]=\"true\"\r\n [showContent]=\"true\"\r\n [showFooter]=\"true\"\r\n [deviceSize]=\"deviceSize || 's'\"\r\n (cantView)=\"hideFullScreen = true\"\r\n [class.mobile]=\"mobile\"\r\n ></bsu-file-viewer-content>\r\n @if (canDownload) {\r\n <div fd-popover-body-footer>\r\n <bsu-barsa-bar-download-file\r\n [isMobile]=\"mobile\"\r\n [popover]=\"popover\"\r\n [files]=\"files?.length ? files : [file]\"\r\n [deviceSize]=\"deviceSize || 's'\"\r\n [hideFullScreen]=\"hideFullScreen\"\r\n ></bsu-barsa-bar-download-file>\r\n </div>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:block}.btn-actionsheet{width:100%!important;max-width:100%!important}.box{display:flex;flex-direction:column;width:175px;height:120px;position:relative;border:1px solid #ccc}.box .box-content{height:85px;text-align:center;display:flex;align-items:center;justify-content:center}.box .box-content fd-icon{font-size:1.825rem;color:#e5e5e5}.box .box-file-download{background-color:#f5f5f5;border-top:1px solid #e5e5e5;display:flex;gap:.285rem}.box .box-file-download .icon{align-items:center;float:left;display:-webkit-box;display:-webkit-flex;display:flex;height:32px;-webkit-justify-content:center;justify-content:center;width:32px}.box .box-file-download .filename-wrapper{display:flex;overflow:hidden}.box .box-file-download .filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777;font-size:12px;font-weight:700;line-height:16px;margin-top:8px;word-wrap:normal}.box .download-wrapper{display:none}.box.onside{background:#f5f5f5}.box.onside .box-content{display:none}.box.onside .box-file-download{border-top:none;height:85px}.box.onside .download-wrapper{display:flex;gap:.285rem;justify-content:center}\n"] }]
22
+ args: [{ selector: 'bsu-file-viewer-popover', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<!-- <div class=\"box\" #divRef (mouseover)=\"divRef.classList.add('onside')\" (mouseout)=\"divRef.classList.remove('onside')\">\r\n<div class=\"box-content\">\r\n <fd-icon [glyph]=\"'pdf-attachment'\"></fd-icon>\r\n</div>\r\n<div class=\"box-file-download\">\r\n <div class=\"icon\">\r\n <img\r\n id=\":1wy\"\r\n class=\"aSM\"\r\n src=\"//ssl.gstatic.com/docs/doclist/images/mediatype/icon_2_archive_x16.png\"\r\n title=\"Compressed Archive\"\r\n />\r\n </div>\r\n <div class=\"filename-wrapper\">\r\n <span class=\"filename\">build.rar</span>\r\n </div>\r\n </div>\r\n <div class=\"download-wrapper\">\r\n <button fd-button glyph=\"download\" fdType=\"transparent\"></button>\r\n <button fd-button glyph=\"download\" fdType=\"transparent\"></button>\r\n </div>\r\n</div> -->\r\n\r\n<div style=\"display: flex; align-items: center; column-gap: 1px\">\r\n <button\r\n fd-button\r\n [fdPopoverTrigger]=\"deviceSize === 's' ? popoverMobile : popoverLarge\"\r\n [label]=\"file.FileName || ''\"\r\n [title]=\"file.FileName || ''\"\r\n glyph=\"attachment\"\r\n [fdMenu]=\"true\"\r\n [fdType]=\"fdType\"\r\n class=\"btn-actionsheet\"\r\n (click)=\"popoverOpened = true\"\r\n ></button>\r\n <fd-popover\r\n #popoverMobile\r\n [mobile]=\"true\"\r\n [mobileConfig]=\"{ title: file?.FileName || 'ShowFiles' | bbbTranslate, hasCloseButton: true }\"\r\n >\r\n <ng-template #popoverBodyContent>\r\n @if(popoverOpened){\r\n <ng-container\r\n *ngTemplateOutlet=\"popoverbodyTpl; context: { $implicit: popoverMobile, mobile: true }\"\r\n ></ng-container>\r\n }\r\n </ng-template>\r\n </fd-popover>\r\n <fd-popover #popoverLarge>\r\n <fd-popover-body>\r\n @if(popoverOpened){\r\n <ng-container\r\n *ngTemplateOutlet=\"popoverbodyTpl; context: { $implicit: popoverLarge, mobile: false }\"\r\n ></ng-container>\r\n }\r\n </fd-popover-body>\r\n </fd-popover>\r\n\r\n @if (!disableRemove) {\r\n <button fd-button glyph=\"delete\" (click)=\"remove.emit()\"></button>\r\n }\r\n</div>\r\n\r\n<ng-template #popoverbodyTpl let-popover let-mobile=\"mobile\">\r\n <!-- <div fd-popover-body-header>\r\n <div fd-bar [cozy]=\"true\" id=\"popover-bar-header-3\">\r\n <div fd-bar-left>\r\n <fd-bar-element>{{ file.FileName }}</fd-bar-element>\r\n </div>\r\n </div>\r\n </div> -->\r\n <bsu-file-viewer-content\r\n [file]=\"file\"\r\n [width]=\"mobile ? '100vw' : '30vw'\"\r\n [cardMode]=\"true\"\r\n [showContent]=\"true\"\r\n [showFooter]=\"true\"\r\n [deviceSize]=\"deviceSize || 's'\"\r\n (cantView)=\"hideFullScreen = true\"\r\n [class.mobile]=\"mobile\"\r\n ></bsu-file-viewer-content>\r\n @if (canDownload) {\r\n <div fd-popover-body-footer>\r\n <bsu-barsa-bar-download-file\r\n [isMobile]=\"mobile\"\r\n [popover]=\"popover\"\r\n [files]=\"files?.length ? files : [file]\"\r\n [file]=\"file\"\r\n [deviceSize]=\"deviceSize || 's'\"\r\n [hideFullScreen]=\"hideFullScreen\"\r\n ></bsu-barsa-bar-download-file>\r\n </div>\r\n }\r\n</ng-template>\r\n", styles: [":host{display:block}.btn-actionsheet{width:100%!important;max-width:100%!important}.box{display:flex;flex-direction:column;width:175px;height:120px;position:relative;border:1px solid #ccc}.box .box-content{height:85px;text-align:center;display:flex;align-items:center;justify-content:center}.box .box-content fd-icon{font-size:1.825rem;color:#e5e5e5}.box .box-file-download{background-color:#f5f5f5;border-top:1px solid #e5e5e5;display:flex;gap:.285rem}.box .box-file-download .icon{align-items:center;float:left;display:-webkit-box;display:-webkit-flex;display:flex;height:32px;-webkit-justify-content:center;justify-content:center;width:32px}.box .box-file-download .filename-wrapper{display:flex;overflow:hidden}.box .box-file-download .filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#777;font-size:12px;font-weight:700;line-height:16px;margin-top:8px;word-wrap:normal}.box .download-wrapper{display:none}.box.onside{background:#f5f5f5}.box.onside .box-content{display:none}.box.onside .box-file-download{border-top:none;height:85px}.box.onside .download-wrapper{display:flex;gap:.285rem;justify-content:center}\n"] }]
23
23
  }], propDecorators: { files: [{
24
24
  type: Input
25
25
  }], file: [{
@@ -35,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
35
35
  }], remove: [{
36
36
  type: Output
37
37
  }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS12aWV3ZXItcG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9maWxlLXZpZXdlci1wb3BvdmVyL2ZpbGUtdmlld2VyLXBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZmlsZS12aWV3ZXItcG9wb3Zlci9maWxlLXZpZXdlci1wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUF5QixhQUFhLEVBQXNCLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7O0FBU2hHLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxhQUFhO0lBUDdEOztRQWNjLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzVDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0tBQ3pCOytHQVZZLDBCQUEwQjttR0FBMUIsMEJBQTBCLHVRQ1h2QyxzMUdBNkZBOzs0RkRsRmEsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUNJLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLOzhCQUdSLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCdXR0b25UeXBlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuaW1wb3J0IHsgQWJicmV2YXRpb25EZXZpY2VTaXplLCBCYXNlQ29tcG9uZW50LCBGaWxlQXR0YWNobWVudEluZm8gfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWZpbGUtdmlld2VyLXBvcG92ZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdmlld2VyLXBvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZmlsZS12aWV3ZXItcG9wb3Zlci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZVZpZXdlclBvcG92ZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcclxuICAgIEBJbnB1dCgpIGZpbGVzOiBGaWxlQXR0YWNobWVudEluZm9bXTtcclxuICAgIEBJbnB1dCgpIGZpbGU6IEZpbGVBdHRhY2htZW50SW5mbztcclxuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZSB8IG51bGw7XHJcbiAgICBASW5wdXQoKSBjYW5Eb3dubG9hZDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGRpc2FibGVSZW1vdmU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBmZFR5cGU6IEJ1dHRvblR5cGU7XHJcbiAgICBAT3V0cHV0KCkgcmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgaGlkZUZ1bGxTY3JlZW4gPSBmYWxzZTtcclxuICAgIHBvcG92ZXJPcGVuZWQgPSBmYWxzZTtcclxufVxyXG4iLCI8IS0tIDxkaXYgY2xhc3M9XCJib3hcIiAjZGl2UmVmIChtb3VzZW92ZXIpPVwiZGl2UmVmLmNsYXNzTGlzdC5hZGQoJ29uc2lkZScpXCIgKG1vdXNlb3V0KT1cImRpdlJlZi5jbGFzc0xpc3QucmVtb3ZlKCdvbnNpZGUnKVwiPlxyXG48ZGl2IGNsYXNzPVwiYm94LWNvbnRlbnRcIj5cclxuICA8ZmQtaWNvbiBbZ2x5cGhdPVwiJ3BkZi1hdHRhY2htZW50J1wiPjwvZmQtaWNvbj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJib3gtZmlsZS1kb3dubG9hZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJpY29uXCI+XHJcbiAgICA8aW1nXHJcbiAgICAgIGlkPVwiOjF3eVwiXHJcbiAgICAgIGNsYXNzPVwiYVNNXCJcclxuICAgICAgc3JjPVwiLy9zc2wuZ3N0YXRpYy5jb20vZG9jcy9kb2NsaXN0L2ltYWdlcy9tZWRpYXR5cGUvaWNvbl8yX2FyY2hpdmVfeDE2LnBuZ1wiXHJcbiAgICAgIHRpdGxlPVwiQ29tcHJlc3NlZCBBcmNoaXZlXCJcclxuICAgICAgLz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZpbGVuYW1lLXdyYXBwZXJcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlbmFtZVwiPmJ1aWxkLnJhcjwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJkb3dubG9hZC13cmFwcGVyXCI+XHJcbiAgICA8YnV0dG9uIGZkLWJ1dHRvbiBnbHlwaD1cImRvd25sb2FkXCIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIj48L2J1dHRvbj5cclxuICAgIDxidXR0b24gZmQtYnV0dG9uIGdseXBoPVwiZG93bmxvYWRcIiBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiPjwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4gLS0+XHJcblxyXG48ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgY29sdW1uLWdhcDogMXB4XCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgW2ZkUG9wb3ZlclRyaWdnZXJdPVwiZGV2aWNlU2l6ZSA9PT0gJ3MnID8gcG9wb3Zlck1vYmlsZSA6IHBvcG92ZXJMYXJnZVwiXHJcbiAgICAgICAgW2xhYmVsXT1cImZpbGUuRmlsZU5hbWUgfHwgJydcIlxyXG4gICAgICAgIFt0aXRsZV09XCJmaWxlLkZpbGVOYW1lIHx8ICcnXCJcclxuICAgICAgICBnbHlwaD1cImF0dGFjaG1lbnRcIlxyXG4gICAgICAgIFtmZE1lbnVdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2ZkVHlwZV09XCJmZFR5cGVcIlxyXG4gICAgICAgIGNsYXNzPVwiYnRuLWFjdGlvbnNoZWV0XCJcclxuICAgICAgICAoY2xpY2spPVwicG9wb3Zlck9wZW5lZCA9IHRydWVcIlxyXG4gICAgPjwvYnV0dG9uPlxyXG4gICAgPGZkLXBvcG92ZXJcclxuICAgICAgICAjcG9wb3Zlck1vYmlsZVxyXG4gICAgICAgIFttb2JpbGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgW21vYmlsZUNvbmZpZ109XCJ7IHRpdGxlOiBmaWxlPy5GaWxlTmFtZSB8fCAnU2hvd0ZpbGVzJyB8IGJiYlRyYW5zbGF0ZSwgaGFzQ2xvc2VCdXR0b246IHRydWUgfVwiXHJcbiAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNwb3BvdmVyQm9keUNvbnRlbnQ+XHJcbiAgICAgICAgICAgIEBpZihwb3BvdmVyT3BlbmVkKXtcclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwb3BvdmVyYm9keVRwbDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHBvcG92ZXJNb2JpbGUsIG1vYmlsZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZmQtcG9wb3Zlcj5cclxuICAgIDxmZC1wb3BvdmVyICNwb3BvdmVyTGFyZ2U+XHJcbiAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cclxuICAgICAgICAgICAgQGlmKHBvcG92ZXJPcGVuZWQpe1xyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInBvcG92ZXJib2R5VHBsOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogcG9wb3ZlckxhcmdlLCBtb2JpbGU6IGZhbHNlIH1cIlxyXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cclxuICAgIDwvZmQtcG9wb3Zlcj5cclxuXHJcbiAgICBAaWYgKCFkaXNhYmxlUmVtb3ZlKSB7XHJcbiAgICA8YnV0dG9uIGZkLWJ1dHRvbiBnbHlwaD1cImRlbGV0ZVwiIChjbGljayk9XCJyZW1vdmUuZW1pdCgpXCI+PC9idXR0b24+XHJcbiAgICB9XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNwb3BvdmVyYm9keVRwbCBsZXQtcG9wb3ZlciBsZXQtbW9iaWxlPVwibW9iaWxlXCI+XHJcbiAgICA8IS0tIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWhlYWRlcj5cclxuICAgICAgICA8ZGl2IGZkLWJhciBbY296eV09XCJ0cnVlXCIgaWQ9XCJwb3BvdmVyLWJhci1oZWFkZXItM1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxyXG4gICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50Pnt7IGZpbGUuRmlsZU5hbWUgfX08L2ZkLWJhci1lbGVtZW50PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PiAtLT5cclxuICAgIDxic3UtZmlsZS12aWV3ZXItY29udGVudFxyXG4gICAgICAgIFtmaWxlXT1cImZpbGVcIlxyXG4gICAgICAgIFt3aWR0aF09XCJtb2JpbGUgPyAnMTAwdncnIDogJzMwdncnXCJcclxuICAgICAgICBbY2FyZE1vZGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3Nob3dDb250ZW50XT1cInRydWVcIlxyXG4gICAgICAgIFtzaG93Rm9vdGVyXT1cInRydWVcIlxyXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemUgfHwgJ3MnXCJcclxuICAgICAgICAoY2FudFZpZXcpPVwiaGlkZUZ1bGxTY3JlZW4gPSB0cnVlXCJcclxuICAgICAgICBbY2xhc3MubW9iaWxlXT1cIm1vYmlsZVwiXHJcbiAgICA+PC9ic3UtZmlsZS12aWV3ZXItY29udGVudD5cclxuICAgIEBpZiAoY2FuRG93bmxvYWQpIHtcclxuICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWZvb3Rlcj5cclxuICAgICAgICA8YnN1LWJhcnNhLWJhci1kb3dubG9hZC1maWxlXHJcbiAgICAgICAgICAgIFtpc01vYmlsZV09XCJtb2JpbGVcIlxyXG4gICAgICAgICAgICBbcG9wb3Zlcl09XCJwb3BvdmVyXCJcclxuICAgICAgICAgICAgW2ZpbGVzXT1cImZpbGVzPy5sZW5ndGggPyBmaWxlcyA6IFtmaWxlXVwiXHJcbiAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemUgfHwgJ3MnXCJcclxuICAgICAgICAgICAgW2hpZGVGdWxsU2NyZWVuXT1cImhpZGVGdWxsU2NyZWVuXCJcclxuICAgICAgICA+PC9ic3UtYmFyc2EtYmFyLWRvd25sb2FkLWZpbGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS12aWV3ZXItcG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9maWxlLXZpZXdlci1wb3BvdmVyL2ZpbGUtdmlld2VyLXBvcG92ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvZmlsZS12aWV3ZXItcG9wb3Zlci9maWxlLXZpZXdlci1wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUF5QixhQUFhLEVBQXNCLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7O0FBU2hHLE1BQU0sT0FBTywwQkFBMkIsU0FBUSxhQUFhO0lBUDdEOztRQWNjLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQzVDLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO0tBQ3pCOytHQVZZLDBCQUEwQjttR0FBMUIsMEJBQTBCLHVRQ1h2QyxxM0dBOEZBOzs0RkRuRmEsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUNJLHlCQUF5QixtQkFHbEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLOzhCQUdSLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCdXR0b25UeXBlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuaW1wb3J0IHsgQWJicmV2YXRpb25EZXZpY2VTaXplLCBCYXNlQ29tcG9uZW50LCBGaWxlQXR0YWNobWVudEluZm8gfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LWZpbGUtdmlld2VyLXBvcG92ZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdmlld2VyLXBvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZmlsZS12aWV3ZXItcG9wb3Zlci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsZVZpZXdlclBvcG92ZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcclxuICAgIEBJbnB1dCgpIGZpbGVzOiBGaWxlQXR0YWNobWVudEluZm9bXTtcclxuICAgIEBJbnB1dCgpIGZpbGU6IEZpbGVBdHRhY2htZW50SW5mbztcclxuICAgIEBJbnB1dCgpIGRldmljZVNpemU6IEFiYnJldmF0aW9uRGV2aWNlU2l6ZSB8IG51bGw7XHJcbiAgICBASW5wdXQoKSBjYW5Eb3dubG9hZDogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGRpc2FibGVSZW1vdmU6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBmZFR5cGU6IEJ1dHRvblR5cGU7XHJcbiAgICBAT3V0cHV0KCkgcmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gICAgaGlkZUZ1bGxTY3JlZW4gPSBmYWxzZTtcclxuICAgIHBvcG92ZXJPcGVuZWQgPSBmYWxzZTtcclxufVxyXG4iLCI8IS0tIDxkaXYgY2xhc3M9XCJib3hcIiAjZGl2UmVmIChtb3VzZW92ZXIpPVwiZGl2UmVmLmNsYXNzTGlzdC5hZGQoJ29uc2lkZScpXCIgKG1vdXNlb3V0KT1cImRpdlJlZi5jbGFzc0xpc3QucmVtb3ZlKCdvbnNpZGUnKVwiPlxyXG48ZGl2IGNsYXNzPVwiYm94LWNvbnRlbnRcIj5cclxuICA8ZmQtaWNvbiBbZ2x5cGhdPVwiJ3BkZi1hdHRhY2htZW50J1wiPjwvZmQtaWNvbj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJib3gtZmlsZS1kb3dubG9hZFwiPlxyXG4gIDxkaXYgY2xhc3M9XCJpY29uXCI+XHJcbiAgICA8aW1nXHJcbiAgICAgIGlkPVwiOjF3eVwiXHJcbiAgICAgIGNsYXNzPVwiYVNNXCJcclxuICAgICAgc3JjPVwiLy9zc2wuZ3N0YXRpYy5jb20vZG9jcy9kb2NsaXN0L2ltYWdlcy9tZWRpYXR5cGUvaWNvbl8yX2FyY2hpdmVfeDE2LnBuZ1wiXHJcbiAgICAgIHRpdGxlPVwiQ29tcHJlc3NlZCBBcmNoaXZlXCJcclxuICAgICAgLz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImZpbGVuYW1lLXdyYXBwZXJcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJmaWxlbmFtZVwiPmJ1aWxkLnJhcjwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJkb3dubG9hZC13cmFwcGVyXCI+XHJcbiAgICA8YnV0dG9uIGZkLWJ1dHRvbiBnbHlwaD1cImRvd25sb2FkXCIgZmRUeXBlPVwidHJhbnNwYXJlbnRcIj48L2J1dHRvbj5cclxuICAgIDxidXR0b24gZmQtYnV0dG9uIGdseXBoPVwiZG93bmxvYWRcIiBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiPjwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4gLS0+XHJcblxyXG48ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgYWxpZ24taXRlbXM6IGNlbnRlcjsgY29sdW1uLWdhcDogMXB4XCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgW2ZkUG9wb3ZlclRyaWdnZXJdPVwiZGV2aWNlU2l6ZSA9PT0gJ3MnID8gcG9wb3Zlck1vYmlsZSA6IHBvcG92ZXJMYXJnZVwiXHJcbiAgICAgICAgW2xhYmVsXT1cImZpbGUuRmlsZU5hbWUgfHwgJydcIlxyXG4gICAgICAgIFt0aXRsZV09XCJmaWxlLkZpbGVOYW1lIHx8ICcnXCJcclxuICAgICAgICBnbHlwaD1cImF0dGFjaG1lbnRcIlxyXG4gICAgICAgIFtmZE1lbnVdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2ZkVHlwZV09XCJmZFR5cGVcIlxyXG4gICAgICAgIGNsYXNzPVwiYnRuLWFjdGlvbnNoZWV0XCJcclxuICAgICAgICAoY2xpY2spPVwicG9wb3Zlck9wZW5lZCA9IHRydWVcIlxyXG4gICAgPjwvYnV0dG9uPlxyXG4gICAgPGZkLXBvcG92ZXJcclxuICAgICAgICAjcG9wb3Zlck1vYmlsZVxyXG4gICAgICAgIFttb2JpbGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgW21vYmlsZUNvbmZpZ109XCJ7IHRpdGxlOiBmaWxlPy5GaWxlTmFtZSB8fCAnU2hvd0ZpbGVzJyB8IGJiYlRyYW5zbGF0ZSwgaGFzQ2xvc2VCdXR0b246IHRydWUgfVwiXHJcbiAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNwb3BvdmVyQm9keUNvbnRlbnQ+XHJcbiAgICAgICAgICAgIEBpZihwb3BvdmVyT3BlbmVkKXtcclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwb3BvdmVyYm9keVRwbDsgY29udGV4dDogeyAkaW1wbGljaXQ6IHBvcG92ZXJNb2JpbGUsIG1vYmlsZTogdHJ1ZSB9XCJcclxuICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZmQtcG9wb3Zlcj5cclxuICAgIDxmZC1wb3BvdmVyICNwb3BvdmVyTGFyZ2U+XHJcbiAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cclxuICAgICAgICAgICAgQGlmKHBvcG92ZXJPcGVuZWQpe1xyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInBvcG92ZXJib2R5VHBsOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogcG9wb3ZlckxhcmdlLCBtb2JpbGU6IGZhbHNlIH1cIlxyXG4gICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cclxuICAgIDwvZmQtcG9wb3Zlcj5cclxuXHJcbiAgICBAaWYgKCFkaXNhYmxlUmVtb3ZlKSB7XHJcbiAgICA8YnV0dG9uIGZkLWJ1dHRvbiBnbHlwaD1cImRlbGV0ZVwiIChjbGljayk9XCJyZW1vdmUuZW1pdCgpXCI+PC9idXR0b24+XHJcbiAgICB9XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNwb3BvdmVyYm9keVRwbCBsZXQtcG9wb3ZlciBsZXQtbW9iaWxlPVwibW9iaWxlXCI+XHJcbiAgICA8IS0tIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWhlYWRlcj5cclxuICAgICAgICA8ZGl2IGZkLWJhciBbY296eV09XCJ0cnVlXCIgaWQ9XCJwb3BvdmVyLWJhci1oZWFkZXItM1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGZkLWJhci1sZWZ0PlxyXG4gICAgICAgICAgICAgICAgPGZkLWJhci1lbGVtZW50Pnt7IGZpbGUuRmlsZU5hbWUgfX08L2ZkLWJhci1lbGVtZW50PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PiAtLT5cclxuICAgIDxic3UtZmlsZS12aWV3ZXItY29udGVudFxyXG4gICAgICAgIFtmaWxlXT1cImZpbGVcIlxyXG4gICAgICAgIFt3aWR0aF09XCJtb2JpbGUgPyAnMTAwdncnIDogJzMwdncnXCJcclxuICAgICAgICBbY2FyZE1vZGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgW3Nob3dDb250ZW50XT1cInRydWVcIlxyXG4gICAgICAgIFtzaG93Rm9vdGVyXT1cInRydWVcIlxyXG4gICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemUgfHwgJ3MnXCJcclxuICAgICAgICAoY2FudFZpZXcpPVwiaGlkZUZ1bGxTY3JlZW4gPSB0cnVlXCJcclxuICAgICAgICBbY2xhc3MubW9iaWxlXT1cIm1vYmlsZVwiXHJcbiAgICA+PC9ic3UtZmlsZS12aWV3ZXItY29udGVudD5cclxuICAgIEBpZiAoY2FuRG93bmxvYWQpIHtcclxuICAgIDxkaXYgZmQtcG9wb3Zlci1ib2R5LWZvb3Rlcj5cclxuICAgICAgICA8YnN1LWJhcnNhLWJhci1kb3dubG9hZC1maWxlXHJcbiAgICAgICAgICAgIFtpc01vYmlsZV09XCJtb2JpbGVcIlxyXG4gICAgICAgICAgICBbcG9wb3Zlcl09XCJwb3BvdmVyXCJcclxuICAgICAgICAgICAgW2ZpbGVzXT1cImZpbGVzPy5sZW5ndGggPyBmaWxlcyA6IFtmaWxlXVwiXHJcbiAgICAgICAgICAgIFtmaWxlXT1cImZpbGVcIlxyXG4gICAgICAgICAgICBbZGV2aWNlU2l6ZV09XCJkZXZpY2VTaXplIHx8ICdzJ1wiXHJcbiAgICAgICAgICAgIFtoaWRlRnVsbFNjcmVlbl09XCJoaWRlRnVsbFNjcmVlblwiXHJcbiAgICAgICAgPjwvYnN1LWJhcnNhLWJhci1kb3dubG9hZC1maWxlPlxyXG4gICAgPC9kaXY+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==