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.
@@ -43,11 +43,11 @@ export class NotificationItemActionsComponent extends BaseComponent {
43
43
  this._portalService.ExecuteNotificationAction(this.mo.Tag, title);
44
44
  }
45
45
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NotificationItemActionsComponent, deps: [{ token: i1.PortalService, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
46
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: NotificationItemActionsComponent, selector: "bsu-notification-item-actions", inputs: { deviceSize: "deviceSize", showCloseButton: "showCloseButton", setting: "setting", mo: "mo" }, outputs: { events: "events", viewed: "viewed", remove: "remove", actionClick: "actionClick", showEvent: "showEvent", closeEvent: "closeEvent" }, host: { properties: { "class": "this._deviceSize" } }, usesInheritance: true, ngImport: i0, template: "@if (overflowButtons()) {\r\n<fd-action-sheet #sheet>\r\n <fd-action-sheet-control>\r\n @if (uiActions().length) {\r\n <button\r\n role=\"menu\"\r\n [ariaLabel]=\"'More' | bbbTranslate\"\r\n [title]=\"'More' | bbbTranslate\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"overflow\"\r\n ></button>\r\n }\r\n </fd-action-sheet-control>\r\n <fd-action-sheet-body>\r\n @for (btn of uiActions(); track btn) {\r\n <li\r\n fd-action-sheet-item\r\n bodyClick\r\n [glyph]=\"btn.Icon\"\r\n [label]=\"btn.Title | bbbTranslate\"\r\n (click)=\"sheet.close(); onAction(btn.Title)\"\r\n ></li>\r\n }\r\n </fd-action-sheet-body>\r\n</fd-action-sheet>\r\n} @else { @for (btn of uiActions(); track btn) {\r\n<button\r\n fd-button\r\n [glyph]=\"btn.Icon\"\r\n [fdType]=\"btn.Status\"\r\n [label]=\"btn.Title | bbbTranslate\"\r\n [title]=\"btn.Title | bbbTranslate\"\r\n bodyClick\r\n fdCompact\r\n (click)=\"onAction(btn.Title)\"\r\n></button>\r\n} } @if (hideShowButton() === false && mo.RelatedMo) {\r\n<button\r\n fd-button\r\n fdType=\"transparent\"\r\n [ariaLabel]=\"'Show' | bbbTranslate\"\r\n [title]=\"'Show' | bbbTranslate\"\r\n bodyClick\r\n glyph=\"show\"\r\n (click)=\"events.emit({ title: 'btnClick', data: { itemId: 'Show' } })\"\r\n></button>\r\n} @if (hideDeleteButton() === false) {\r\n<button\r\n fd-button\r\n fdType=\"transparent\"\r\n [ariaLabel]=\"'Delete' | bbbTranslate\"\r\n [title]=\"'Delete' | bbbTranslate\"\r\n glyph=\"decline\"\r\n (click)=\"events.emit({ title: 'btnClick', data: { itemId: 'Delete' } })\"\r\n></button>\r\n} @if (showCloseButton) {\r\n<button\r\n fd-button\r\n fdType=\"transparent\"\r\n [ariaLabel]=\"'close' | bbbTranslate\"\r\n [title]=\"'close' | bbbTranslate\"\r\n bodyClick\r\n glyph=\"decline\"\r\n (click)=\"closeEvent.emit()\"\r\n></button>\r\n}\r\n", styles: ["fd-notification-content{min-width:320px}fd-notification-content p{max-height:3rem}:host.s fd-notification-content{min-width:auto!important}fd-notification-actions{max-width:200px}\n"], dependencies: [{ kind: "directive", type: i1.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "component", type: i2.ActionSheetComponent, selector: "fd-action-sheet", inputs: ["mobile", "placement", "noArrow", "isOpen", "keyboardSupport", "triggers"], outputs: ["focusEscapeList", "isOpenChange"] }, { kind: "component", type: i2.ActionSheetControlComponent, selector: "fd-action-sheet-control", outputs: ["clicked"] }, { kind: "component", type: i2.ActionSheetItemComponent, selector: "[fd-action-sheet-item]", inputs: ["label", "glyph", "glyphFont", "negative", "isCloseButton", "disabled"], outputs: ["keyDown"] }, { kind: "component", type: i2.ActionSheetBodyComponent, selector: "fd-action-sheet-body", inputs: ["actionSheetBodyId", "mobile", "ariaLabel", "ariaLabelledby"] }, { kind: "directive", type: i3.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
46
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: NotificationItemActionsComponent, selector: "bsu-notification-item-actions", inputs: { deviceSize: "deviceSize", showCloseButton: "showCloseButton", setting: "setting", mo: "mo" }, outputs: { events: "events", viewed: "viewed", remove: "remove", actionClick: "actionClick", showEvent: "showEvent", closeEvent: "closeEvent" }, host: { properties: { "class": "this._deviceSize" } }, usesInheritance: true, ngImport: i0, template: "@if (overflowButtons()) {\r\n<fd-action-sheet #sheet>\r\n <fd-action-sheet-control>\r\n @if (uiActions().length) {\r\n <button\r\n role=\"menu\"\r\n [ariaLabel]=\"'More' | bbbTranslate\"\r\n [title]=\"'More' | bbbTranslate\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"overflow\"\r\n ></button>\r\n }\r\n </fd-action-sheet-control>\r\n <fd-action-sheet-body>\r\n @for (btn of uiActions(); track btn) {\r\n <li\r\n fd-action-sheet-item\r\n bodyClick\r\n [glyph]=\"btn.Icon\"\r\n [label]=\"btn.Title | bbbTranslate\"\r\n (click)=\"sheet.close(); onAction(btn.Title)\"\r\n ></li>\r\n }\r\n </fd-action-sheet-body>\r\n</fd-action-sheet>\r\n} @else { @for (btn of uiActions(); track btn) {\r\n<button\r\n fd-button\r\n [glyph]=\"btn.Icon\"\r\n [fdType]=\"btn.Status\"\r\n [label]=\"btn.Title | bbbTranslate\"\r\n [title]=\"btn.Title | bbbTranslate\"\r\n bodyClick\r\n fdCompact\r\n (click)=\"onAction(btn.Title)\"\r\n></button>\r\n} } @if (mo.RelatedMo) {\r\n<button\r\n fd-button\r\n fdType=\"transparent\"\r\n [ariaLabel]=\"'Show' | bbbTranslate\"\r\n [title]=\"'Show' | bbbTranslate\"\r\n bodyClick\r\n glyph=\"show\"\r\n (click)=\"events.emit({ title: 'btnClick', data: { itemId: 'Show' } })\"\r\n></button>\r\n} \r\n<button\r\n fd-button\r\n fdType=\"transparent\"\r\n [ariaLabel]=\"'Delete' | bbbTranslate\"\r\n [title]=\"'Delete' | bbbTranslate\"\r\n glyph=\"decline\"\r\n (click)=\"events.emit({ title: 'btnClick', data: { itemId: 'Delete' } })\"\r\n></button>\r\n@if (showCloseButton) {\r\n<button\r\n fd-button\r\n fdType=\"transparent\"\r\n [ariaLabel]=\"'close' | bbbTranslate\"\r\n [title]=\"'close' | bbbTranslate\"\r\n bodyClick\r\n glyph=\"decline\"\r\n (click)=\"closeEvent.emit()\"\r\n></button>\r\n}\r\n", styles: ["fd-notification-content{min-width:320px}fd-notification-content p{max-height:3rem}:host.s fd-notification-content{min-width:auto!important}fd-notification-actions{max-width:200px}\n"], dependencies: [{ kind: "directive", type: i1.BodyClickDirective, selector: "[bodyClick]", inputs: ["disableBodyClick"] }, { kind: "component", type: i2.ActionSheetComponent, selector: "fd-action-sheet", inputs: ["mobile", "placement", "noArrow", "isOpen", "keyboardSupport", "triggers"], outputs: ["focusEscapeList", "isOpenChange"] }, { kind: "component", type: i2.ActionSheetControlComponent, selector: "fd-action-sheet-control", outputs: ["clicked"] }, { kind: "component", type: i2.ActionSheetItemComponent, selector: "[fd-action-sheet-item]", inputs: ["label", "glyph", "glyphFont", "negative", "isCloseButton", "disabled"], outputs: ["keyDown"] }, { kind: "component", type: i2.ActionSheetBodyComponent, selector: "fd-action-sheet-body", inputs: ["actionSheetBodyId", "mobile", "ariaLabel", "ariaLabelledby"] }, { kind: "directive", type: i3.ContentDensityDirective, selector: "[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])", inputs: ["fdContentDensity", "fdCompact", "fdCondensed", "fdCozy"], exportAs: ["fdContentDensity"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
47
47
  }
48
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NotificationItemActionsComponent, decorators: [{
49
49
  type: Component,
50
- args: [{ selector: 'bsu-notification-item-actions', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (overflowButtons()) {\r\n<fd-action-sheet #sheet>\r\n <fd-action-sheet-control>\r\n @if (uiActions().length) {\r\n <button\r\n role=\"menu\"\r\n [ariaLabel]=\"'More' | bbbTranslate\"\r\n [title]=\"'More' | bbbTranslate\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"overflow\"\r\n ></button>\r\n }\r\n </fd-action-sheet-control>\r\n <fd-action-sheet-body>\r\n @for (btn of uiActions(); track btn) {\r\n <li\r\n fd-action-sheet-item\r\n bodyClick\r\n [glyph]=\"btn.Icon\"\r\n [label]=\"btn.Title | bbbTranslate\"\r\n (click)=\"sheet.close(); onAction(btn.Title)\"\r\n ></li>\r\n }\r\n </fd-action-sheet-body>\r\n</fd-action-sheet>\r\n} @else { @for (btn of uiActions(); track btn) {\r\n<button\r\n fd-button\r\n [glyph]=\"btn.Icon\"\r\n [fdType]=\"btn.Status\"\r\n [label]=\"btn.Title | bbbTranslate\"\r\n [title]=\"btn.Title | bbbTranslate\"\r\n bodyClick\r\n fdCompact\r\n (click)=\"onAction(btn.Title)\"\r\n></button>\r\n} } @if (hideShowButton() === false && mo.RelatedMo) {\r\n<button\r\n fd-button\r\n fdType=\"transparent\"\r\n [ariaLabel]=\"'Show' | bbbTranslate\"\r\n [title]=\"'Show' | bbbTranslate\"\r\n bodyClick\r\n glyph=\"show\"\r\n (click)=\"events.emit({ title: 'btnClick', data: { itemId: 'Show' } })\"\r\n></button>\r\n} @if (hideDeleteButton() === false) {\r\n<button\r\n fd-button\r\n fdType=\"transparent\"\r\n [ariaLabel]=\"'Delete' | bbbTranslate\"\r\n [title]=\"'Delete' | bbbTranslate\"\r\n glyph=\"decline\"\r\n (click)=\"events.emit({ title: 'btnClick', data: { itemId: 'Delete' } })\"\r\n></button>\r\n} @if (showCloseButton) {\r\n<button\r\n fd-button\r\n fdType=\"transparent\"\r\n [ariaLabel]=\"'close' | bbbTranslate\"\r\n [title]=\"'close' | bbbTranslate\"\r\n bodyClick\r\n glyph=\"decline\"\r\n (click)=\"closeEvent.emit()\"\r\n></button>\r\n}\r\n", styles: ["fd-notification-content{min-width:320px}fd-notification-content p{max-height:3rem}:host.s fd-notification-content{min-width:auto!important}fd-notification-actions{max-width:200px}\n"] }]
50
+ args: [{ selector: 'bsu-notification-item-actions', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (overflowButtons()) {\r\n<fd-action-sheet #sheet>\r\n <fd-action-sheet-control>\r\n @if (uiActions().length) {\r\n <button\r\n role=\"menu\"\r\n [ariaLabel]=\"'More' | bbbTranslate\"\r\n [title]=\"'More' | bbbTranslate\"\r\n fd-button\r\n fdType=\"transparent\"\r\n glyph=\"overflow\"\r\n ></button>\r\n }\r\n </fd-action-sheet-control>\r\n <fd-action-sheet-body>\r\n @for (btn of uiActions(); track btn) {\r\n <li\r\n fd-action-sheet-item\r\n bodyClick\r\n [glyph]=\"btn.Icon\"\r\n [label]=\"btn.Title | bbbTranslate\"\r\n (click)=\"sheet.close(); onAction(btn.Title)\"\r\n ></li>\r\n }\r\n </fd-action-sheet-body>\r\n</fd-action-sheet>\r\n} @else { @for (btn of uiActions(); track btn) {\r\n<button\r\n fd-button\r\n [glyph]=\"btn.Icon\"\r\n [fdType]=\"btn.Status\"\r\n [label]=\"btn.Title | bbbTranslate\"\r\n [title]=\"btn.Title | bbbTranslate\"\r\n bodyClick\r\n fdCompact\r\n (click)=\"onAction(btn.Title)\"\r\n></button>\r\n} } @if (mo.RelatedMo) {\r\n<button\r\n fd-button\r\n fdType=\"transparent\"\r\n [ariaLabel]=\"'Show' | bbbTranslate\"\r\n [title]=\"'Show' | bbbTranslate\"\r\n bodyClick\r\n glyph=\"show\"\r\n (click)=\"events.emit({ title: 'btnClick', data: { itemId: 'Show' } })\"\r\n></button>\r\n} \r\n<button\r\n fd-button\r\n fdType=\"transparent\"\r\n [ariaLabel]=\"'Delete' | bbbTranslate\"\r\n [title]=\"'Delete' | bbbTranslate\"\r\n glyph=\"decline\"\r\n (click)=\"events.emit({ title: 'btnClick', data: { itemId: 'Delete' } })\"\r\n></button>\r\n@if (showCloseButton) {\r\n<button\r\n fd-button\r\n fdType=\"transparent\"\r\n [ariaLabel]=\"'close' | bbbTranslate\"\r\n [title]=\"'close' | bbbTranslate\"\r\n bodyClick\r\n glyph=\"decline\"\r\n (click)=\"closeEvent.emit()\"\r\n></button>\r\n}\r\n", styles: ["fd-notification-content{min-width:320px}fd-notification-content p{max-height:3rem}:host.s fd-notification-content{min-width:auto!important}fd-notification-actions{max-width:200px}\n"] }]
51
51
  }], ctorParameters: () => [{ type: i1.PortalService, decorators: [{
52
52
  type: SkipSelf
53
53
  }, {
@@ -76,4 +76,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
76
76
  }], closeEvent: [{
77
77
  type: Output
78
78
  }] } });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWl0ZW0tYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9ub3RpZmljYXRpb24taXRlbS1hY3Rpb25zL25vdGlmaWNhdGlvbi1pdGVtLWFjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbm90aWZpY2F0aW9uLWl0ZW0tYWN0aW9ucy9ub3RpZmljYXRpb24taXRlbS1hY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsYUFBYSxFQUtoQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFTOUIsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLGFBQWE7SUFxQi9EOztPQUVHO0lBQ0gsWUFBNEMsY0FBNkI7UUFDckUsS0FBSyxFQUFFLENBQUM7UUFEZ0MsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUF2Qi9ELFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBaUMsQ0FBQztRQVEvQyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUM3QixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDakQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFxRCxDQUFDO1FBQy9FLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQTBELENBQUM7UUFDekYsY0FBUyxHQUFHLElBQUksWUFBWSxFQUEwRCxDQUFDO1FBQ3ZGLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzFDLGNBQVMsR0FBRyxNQUFNLENBQVEsRUFBRSxDQUFDLENBQUM7UUFDOUIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqQixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixvQkFBZSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsU0FBSSxHQUFHLEtBQUssQ0FBQztJQU1iLENBQUM7SUFDRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNwRSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVEsQ0FBQyxLQUFhO1FBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEUsQ0FBQzsrR0ExQ1EsZ0NBQWdDO21HQUFoQyxnQ0FBZ0MsNFlDM0I3QyxxaEVBbUVBOzs0RkR4Q2EsZ0NBQWdDO2tCQVA1QyxTQUFTOytCQUNJLCtCQUErQixtQkFHeEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLOzswQkEwQkosUUFBUTs7MEJBQUksUUFBUTt5Q0F2QnZCLE1BQU07c0JBQWYsTUFBTTtnQkFFRSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFFZ0IsV0FBVztzQkFBaEMsV0FBVzt1QkFBQyxPQUFPO2dCQUNWLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBIb3N0QmluZGluZyxcclxuICAgIElucHV0LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3B0aW9uYWwsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBzaWduYWwsXHJcbiAgICBTa2lwU2VsZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgQmFzZUNvbXBvbmVudCxcclxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXHJcbiAgICBOb3RpZmljYXRpb25BY3Rpb24sXHJcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemUsXHJcbiAgICBQb3J0YWxTZXJ2aWNlXHJcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS1ub3RpZmljYXRpb24taXRlbS1hY3Rpb25zJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb24taXRlbS1hY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbi1pdGVtLWFjdGlvbnMuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkl0ZW1BY3Rpb25zQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAT3V0cHV0KCkgZXZlbnRzID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRpdGxlOiBzdHJpbmc7IGRhdGE/OiBhbnkgfT4oKTtcclxuXHJcbiAgICBASW5wdXQoKSBkZXZpY2VTaXplOiBBYmJyZXZhdGlvbkRldmljZVNpemU7XHJcbiAgICBASW5wdXQoKSBzaG93Q2xvc2VCdXR0b246IGJvb2xlYW47XHJcblxyXG4gICAgQElucHV0KCkgc2V0dGluZzogTWV0YW9iamVjdERhdGFNb2RlbDtcclxuICAgIEBJbnB1dCgpIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBfZGV2aWNlU2l6ZSA9ICcnO1xyXG4gICAgQE91dHB1dCgpIHZpZXdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TWV0YW9iamVjdERhdGFNb2RlbD4oKTtcclxuICAgIEBPdXRwdXQoKSByZW1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXRlbXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXTsgc2lsZW50OiBib29sZWFuIH0+KCk7XHJcbiAgICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXRlbTogTWV0YW9iamVjdERhdGFNb2RlbDsgYnRuOiBOb3RpZmljYXRpb25BY3Rpb24gfT4oKTtcclxuICAgIEBPdXRwdXQoKSBzaG93RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdGFnOiBzdHJpbmc7IG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsOyBuYW1hOiBzdHJpbmcgfT4oKTtcclxuICAgIEBPdXRwdXQoKSBjbG9zZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgdWlBY3Rpb25zID0gc2lnbmFsPGFueVtdPihbXSk7XHJcbiAgICB0YWcgPSBzaWduYWwoJycpO1xyXG4gICAgaGlkZVNob3dCdXR0b24gPSBzaWduYWwoZmFsc2UpO1xyXG4gICAgb3ZlcmZsb3dCdXR0b25zID0gc2lnbmFsKGZhbHNlKTtcclxuICAgIGhpZGVEZWxldGVCdXR0b24gPSBzaWduYWwoZmFsc2UpO1xyXG4gICAgaGlkZSA9IGZhbHNlO1xyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihAU2tpcFNlbGYoKSBAT3B0aW9uYWwoKSBwcml2YXRlIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgY29uc3QgbW8gPSB0aGlzLm1vO1xyXG4gICAgICAgIHRoaXMudGFnLnNldCh0aGlzLm1vLlRhZyk7XHJcbiAgICAgICAgY29uc3Qgdmlld1NldHRpbmcgPSB0aGlzLnNldHRpbmc7XHJcbiAgICAgICAgdGhpcy5oaWRlRGVsZXRlQnV0dG9uLnNldChtb1t2aWV3U2V0dGluZy5IaWRlRGVsZXRlQnV0dG9uXSk7XHJcbiAgICAgICAgdGhpcy5oaWRlU2hvd0J1dHRvbi5zZXQobW9bdmlld1NldHRpbmcuSGlkZVNob3dCdXR0b25dKTtcclxuICAgICAgICB0aGlzLm92ZXJmbG93QnV0dG9ucy5zZXQobW9bdmlld1NldHRpbmcuSGlkZVNob3dCdXR0b25dKTtcclxuICAgICAgICB0aGlzLnVpQWN0aW9ucy5zZXQoIW1vPy5VaUFjdGlvbnMgPyBbXSA6IEpTT04ucGFyc2UobW8/LlVpQWN0aW9ucykpO1xyXG4gICAgICAgIGlmICh0aGlzLnVpQWN0aW9ucygpLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLm92ZXJmbG93QnV0dG9ucy5zZXQodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25BY3Rpb24odGl0bGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3BvcnRhbFNlcnZpY2UuRXhlY3V0ZU5vdGlmaWNhdGlvbkFjdGlvbih0aGlzLm1vLlRhZywgdGl0bGUpO1xyXG4gICAgfVxyXG59XHJcbiIsIkBpZiAob3ZlcmZsb3dCdXR0b25zKCkpIHtcclxuPGZkLWFjdGlvbi1zaGVldCAjc2hlZXQ+XHJcbiAgICA8ZmQtYWN0aW9uLXNoZWV0LWNvbnRyb2w+XHJcbiAgICAgICAgQGlmICh1aUFjdGlvbnMoKS5sZW5ndGgpIHtcclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIHJvbGU9XCJtZW51XCJcclxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCInTW9yZScgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICBbdGl0bGVdPVwiJ01vcmUnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgZ2x5cGg9XCJvdmVyZmxvd1wiXHJcbiAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgIDwvZmQtYWN0aW9uLXNoZWV0LWNvbnRyb2w+XHJcbiAgICA8ZmQtYWN0aW9uLXNoZWV0LWJvZHk+XHJcbiAgICAgICAgQGZvciAoYnRuIG9mIHVpQWN0aW9ucygpOyB0cmFjayBidG4pIHtcclxuICAgICAgICA8bGlcclxuICAgICAgICAgICAgZmQtYWN0aW9uLXNoZWV0LWl0ZW1cclxuICAgICAgICAgICAgYm9keUNsaWNrXHJcbiAgICAgICAgICAgIFtnbHlwaF09XCJidG4uSWNvblwiXHJcbiAgICAgICAgICAgIFtsYWJlbF09XCJidG4uVGl0bGUgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2hlZXQuY2xvc2UoKTsgb25BY3Rpb24oYnRuLlRpdGxlKVwiXHJcbiAgICAgICAgPjwvbGk+XHJcbiAgICAgICAgfVxyXG4gICAgPC9mZC1hY3Rpb24tc2hlZXQtYm9keT5cclxuPC9mZC1hY3Rpb24tc2hlZXQ+XHJcbn0gQGVsc2UgeyBAZm9yIChidG4gb2YgdWlBY3Rpb25zKCk7IHRyYWNrIGJ0bikge1xyXG48YnV0dG9uXHJcbiAgICBmZC1idXR0b25cclxuICAgIFtnbHlwaF09XCJidG4uSWNvblwiXHJcbiAgICBbZmRUeXBlXT1cImJ0bi5TdGF0dXNcIlxyXG4gICAgW2xhYmVsXT1cImJ0bi5UaXRsZSB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICBbdGl0bGVdPVwiYnRuLlRpdGxlIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgIGJvZHlDbGlja1xyXG4gICAgZmRDb21wYWN0XHJcbiAgICAoY2xpY2spPVwib25BY3Rpb24oYnRuLlRpdGxlKVwiXHJcbj48L2J1dHRvbj5cclxufSB9IEBpZiAoaGlkZVNob3dCdXR0b24oKSA9PT0gZmFsc2UgJiYgbW8uUmVsYXRlZE1vKSB7XHJcbjxidXR0b25cclxuICAgIGZkLWJ1dHRvblxyXG4gICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgW2FyaWFMYWJlbF09XCInU2hvdycgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgW3RpdGxlXT1cIidTaG93JyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICBib2R5Q2xpY2tcclxuICAgIGdseXBoPVwic2hvd1wiXHJcbiAgICAoY2xpY2spPVwiZXZlbnRzLmVtaXQoeyB0aXRsZTogJ2J0bkNsaWNrJywgZGF0YTogeyBpdGVtSWQ6ICdTaG93JyB9IH0pXCJcclxuPjwvYnV0dG9uPlxyXG59IEBpZiAoaGlkZURlbGV0ZUJ1dHRvbigpID09PSBmYWxzZSkge1xyXG48YnV0dG9uXHJcbiAgICBmZC1idXR0b25cclxuICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgIFthcmlhTGFiZWxdPVwiJ0RlbGV0ZScgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgW3RpdGxlXT1cIidEZWxldGUnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgIGdseXBoPVwiZGVjbGluZVwiXHJcbiAgICAoY2xpY2spPVwiZXZlbnRzLmVtaXQoeyB0aXRsZTogJ2J0bkNsaWNrJywgZGF0YTogeyBpdGVtSWQ6ICdEZWxldGUnIH0gfSlcIlxyXG4+PC9idXR0b24+XHJcbn0gQGlmIChzaG93Q2xvc2VCdXR0b24pIHtcclxuPGJ1dHRvblxyXG4gICAgZmQtYnV0dG9uXHJcbiAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICBbYXJpYUxhYmVsXT1cIidjbG9zZScgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgW3RpdGxlXT1cIidjbG9zZScgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgYm9keUNsaWNrXHJcbiAgICBnbHlwaD1cImRlY2xpbmVcIlxyXG4gICAgKGNsaWNrKT1cImNsb3NlRXZlbnQuZW1pdCgpXCJcclxuPjwvYnV0dG9uPlxyXG59XHJcbiJdfQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLWl0ZW0tYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1zYXAtdWkvc3JjL2xpYi9ub3RpZmljYXRpb24taXRlbS1hY3Rpb25zL25vdGlmaWNhdGlvbi1pdGVtLWFjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvbm90aWZpY2F0aW9uLWl0ZW0tYWN0aW9ucy9ub3RpZmljYXRpb24taXRlbS1hY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixXQUFXLEVBQ1gsS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLFFBQVEsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsYUFBYSxFQUtoQixNQUFNLHNCQUFzQixDQUFDOzs7Ozs7QUFTOUIsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLGFBQWE7SUFxQi9EOztPQUVHO0lBQ0gsWUFBNEMsY0FBNkI7UUFDckUsS0FBSyxFQUFFLENBQUM7UUFEZ0MsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUF2Qi9ELFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBaUMsQ0FBQztRQVEvQyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUM3QixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQXVCLENBQUM7UUFDakQsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFxRCxDQUFDO1FBQy9FLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQTBELENBQUM7UUFDekYsY0FBUyxHQUFHLElBQUksWUFBWSxFQUEwRCxDQUFDO1FBQ3ZGLGVBQVUsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzFDLGNBQVMsR0FBRyxNQUFNLENBQVEsRUFBRSxDQUFDLENBQUM7UUFDOUIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqQixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQixvQkFBZSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsU0FBSSxHQUFHLEtBQUssQ0FBQztJQU1iLENBQUM7SUFDRCxRQUFRO1FBQ0osS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQztRQUNwRSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNuQyxDQUFDO0lBQ0wsQ0FBQztJQUNELFFBQVEsQ0FBQyxLQUFhO1FBQ2xCLElBQUksQ0FBQyxjQUFjLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDdEUsQ0FBQzsrR0ExQ1EsZ0NBQWdDO21HQUFoQyxnQ0FBZ0MsNFlDM0I3QyxpOURBbUVBOzs0RkR4Q2EsZ0NBQWdDO2tCQVA1QyxTQUFTOytCQUNJLCtCQUErQixtQkFHeEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLOzswQkEwQkosUUFBUTs7MEJBQUksUUFBUTt5Q0F2QnZCLE1BQU07c0JBQWYsTUFBTTtnQkFFRSxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBRUcsT0FBTztzQkFBZixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFFZ0IsV0FBVztzQkFBaEMsV0FBVzt1QkFBQyxPQUFPO2dCQUNWLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBFdmVudEVtaXR0ZXIsXHJcbiAgICBIb3N0QmluZGluZyxcclxuICAgIElucHV0LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3B0aW9uYWwsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBzaWduYWwsXHJcbiAgICBTa2lwU2VsZlxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgQmFzZUNvbXBvbmVudCxcclxuICAgIE1ldGFvYmplY3REYXRhTW9kZWwsXHJcbiAgICBOb3RpZmljYXRpb25BY3Rpb24sXHJcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemUsXHJcbiAgICBQb3J0YWxTZXJ2aWNlXHJcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JzdS1ub3RpZmljYXRpb24taXRlbS1hY3Rpb25zJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb24taXRlbS1hY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL25vdGlmaWNhdGlvbi1pdGVtLWFjdGlvbnMuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkl0ZW1BY3Rpb25zQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAT3V0cHV0KCkgZXZlbnRzID0gbmV3IEV2ZW50RW1pdHRlcjx7IHRpdGxlOiBzdHJpbmc7IGRhdGE/OiBhbnkgfT4oKTtcclxuXHJcbiAgICBASW5wdXQoKSBkZXZpY2VTaXplOiBBYmJyZXZhdGlvbkRldmljZVNpemU7XHJcbiAgICBASW5wdXQoKSBzaG93Q2xvc2VCdXR0b246IGJvb2xlYW47XHJcblxyXG4gICAgQElucHV0KCkgc2V0dGluZzogTWV0YW9iamVjdERhdGFNb2RlbDtcclxuICAgIEBJbnB1dCgpIG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsO1xyXG5cclxuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBfZGV2aWNlU2l6ZSA9ICcnO1xyXG4gICAgQE91dHB1dCgpIHZpZXdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TWV0YW9iamVjdERhdGFNb2RlbD4oKTtcclxuICAgIEBPdXRwdXQoKSByZW1vdmUgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXRlbXM6IE1ldGFvYmplY3REYXRhTW9kZWxbXTsgc2lsZW50OiBib29sZWFuIH0+KCk7XHJcbiAgICBAT3V0cHV0KCkgYWN0aW9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXRlbTogTWV0YW9iamVjdERhdGFNb2RlbDsgYnRuOiBOb3RpZmljYXRpb25BY3Rpb24gfT4oKTtcclxuICAgIEBPdXRwdXQoKSBzaG93RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgdGFnOiBzdHJpbmc7IG1vOiBNZXRhb2JqZWN0RGF0YU1vZGVsOyBuYW1hOiBzdHJpbmcgfT4oKTtcclxuICAgIEBPdXRwdXQoKSBjbG9zZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgdWlBY3Rpb25zID0gc2lnbmFsPGFueVtdPihbXSk7XHJcbiAgICB0YWcgPSBzaWduYWwoJycpO1xyXG4gICAgaGlkZVNob3dCdXR0b24gPSBzaWduYWwoZmFsc2UpO1xyXG4gICAgb3ZlcmZsb3dCdXR0b25zID0gc2lnbmFsKGZhbHNlKTtcclxuICAgIGhpZGVEZWxldGVCdXR0b24gPSBzaWduYWwoZmFsc2UpO1xyXG4gICAgaGlkZSA9IGZhbHNlO1xyXG4gICAgLyoqXHJcbiAgICAgKlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihAU2tpcFNlbGYoKSBAT3B0aW9uYWwoKSBwcml2YXRlIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgY29uc3QgbW8gPSB0aGlzLm1vO1xyXG4gICAgICAgIHRoaXMudGFnLnNldCh0aGlzLm1vLlRhZyk7XHJcbiAgICAgICAgY29uc3Qgdmlld1NldHRpbmcgPSB0aGlzLnNldHRpbmc7XHJcbiAgICAgICAgdGhpcy5oaWRlRGVsZXRlQnV0dG9uLnNldChtb1t2aWV3U2V0dGluZy5IaWRlRGVsZXRlQnV0dG9uXSk7XHJcbiAgICAgICAgdGhpcy5oaWRlU2hvd0J1dHRvbi5zZXQobW9bdmlld1NldHRpbmcuSGlkZVNob3dCdXR0b25dKTtcclxuICAgICAgICB0aGlzLm92ZXJmbG93QnV0dG9ucy5zZXQobW9bdmlld1NldHRpbmcuSGlkZVNob3dCdXR0b25dKTtcclxuICAgICAgICB0aGlzLnVpQWN0aW9ucy5zZXQoIW1vPy5VaUFjdGlvbnMgPyBbXSA6IEpTT04ucGFyc2UobW8/LlVpQWN0aW9ucykpO1xyXG4gICAgICAgIGlmICh0aGlzLnVpQWN0aW9ucygpLmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLm92ZXJmbG93QnV0dG9ucy5zZXQodHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgb25BY3Rpb24odGl0bGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3BvcnRhbFNlcnZpY2UuRXhlY3V0ZU5vdGlmaWNhdGlvbkFjdGlvbih0aGlzLm1vLlRhZywgdGl0bGUpO1xyXG4gICAgfVxyXG59XHJcbiIsIkBpZiAob3ZlcmZsb3dCdXR0b25zKCkpIHtcclxuPGZkLWFjdGlvbi1zaGVldCAjc2hlZXQ+XHJcbiAgICA8ZmQtYWN0aW9uLXNoZWV0LWNvbnRyb2w+XHJcbiAgICAgICAgQGlmICh1aUFjdGlvbnMoKS5sZW5ndGgpIHtcclxuICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIHJvbGU9XCJtZW51XCJcclxuICAgICAgICAgICAgW2FyaWFMYWJlbF09XCInTW9yZScgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICBbdGl0bGVdPVwiJ01vcmUnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgZ2x5cGg9XCJvdmVyZmxvd1wiXHJcbiAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgIH1cclxuICAgIDwvZmQtYWN0aW9uLXNoZWV0LWNvbnRyb2w+XHJcbiAgICA8ZmQtYWN0aW9uLXNoZWV0LWJvZHk+XHJcbiAgICAgICAgQGZvciAoYnRuIG9mIHVpQWN0aW9ucygpOyB0cmFjayBidG4pIHtcclxuICAgICAgICA8bGlcclxuICAgICAgICAgICAgZmQtYWN0aW9uLXNoZWV0LWl0ZW1cclxuICAgICAgICAgICAgYm9keUNsaWNrXHJcbiAgICAgICAgICAgIFtnbHlwaF09XCJidG4uSWNvblwiXHJcbiAgICAgICAgICAgIFtsYWJlbF09XCJidG4uVGl0bGUgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwic2hlZXQuY2xvc2UoKTsgb25BY3Rpb24oYnRuLlRpdGxlKVwiXHJcbiAgICAgICAgPjwvbGk+XHJcbiAgICAgICAgfVxyXG4gICAgPC9mZC1hY3Rpb24tc2hlZXQtYm9keT5cclxuPC9mZC1hY3Rpb24tc2hlZXQ+XHJcbn0gQGVsc2UgeyBAZm9yIChidG4gb2YgdWlBY3Rpb25zKCk7IHRyYWNrIGJ0bikge1xyXG48YnV0dG9uXHJcbiAgICBmZC1idXR0b25cclxuICAgIFtnbHlwaF09XCJidG4uSWNvblwiXHJcbiAgICBbZmRUeXBlXT1cImJ0bi5TdGF0dXNcIlxyXG4gICAgW2xhYmVsXT1cImJ0bi5UaXRsZSB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICBbdGl0bGVdPVwiYnRuLlRpdGxlIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgIGJvZHlDbGlja1xyXG4gICAgZmRDb21wYWN0XHJcbiAgICAoY2xpY2spPVwib25BY3Rpb24oYnRuLlRpdGxlKVwiXHJcbj48L2J1dHRvbj5cclxufSB9IEBpZiAobW8uUmVsYXRlZE1vKSB7XHJcbjxidXR0b25cclxuICAgIGZkLWJ1dHRvblxyXG4gICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgW2FyaWFMYWJlbF09XCInU2hvdycgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgW3RpdGxlXT1cIidTaG93JyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICBib2R5Q2xpY2tcclxuICAgIGdseXBoPVwic2hvd1wiXHJcbiAgICAoY2xpY2spPVwiZXZlbnRzLmVtaXQoeyB0aXRsZTogJ2J0bkNsaWNrJywgZGF0YTogeyBpdGVtSWQ6ICdTaG93JyB9IH0pXCJcclxuPjwvYnV0dG9uPlxyXG59IFxyXG48YnV0dG9uXHJcbiAgICBmZC1idXR0b25cclxuICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgIFthcmlhTGFiZWxdPVwiJ0RlbGV0ZScgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgW3RpdGxlXT1cIidEZWxldGUnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgIGdseXBoPVwiZGVjbGluZVwiXHJcbiAgICAoY2xpY2spPVwiZXZlbnRzLmVtaXQoeyB0aXRsZTogJ2J0bkNsaWNrJywgZGF0YTogeyBpdGVtSWQ6ICdEZWxldGUnIH0gfSlcIlxyXG4+PC9idXR0b24+XHJcbkBpZiAoc2hvd0Nsb3NlQnV0dG9uKSB7XHJcbjxidXR0b25cclxuICAgIGZkLWJ1dHRvblxyXG4gICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgW2FyaWFMYWJlbF09XCInY2xvc2UnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgIFt0aXRsZV09XCInY2xvc2UnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgIGJvZHlDbGlja1xyXG4gICAgZ2x5cGg9XCJkZWNsaW5lXCJcclxuICAgIChjbGljayk9XCJjbG9zZUV2ZW50LmVtaXQoKVwiXHJcbj48L2J1dHRvbj5cclxufVxyXG4iXX0=
@@ -110,15 +110,15 @@ export class UiFileLinearListBoxComponent extends DeviceInfoFieldBaseComponent {
110
110
  this._fileCountSource.next(value.filter((c) => !c.IsDeleted).length);
111
111
  }
112
112
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiFileLinearListBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
113
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiFileLinearListBoxComponent, selector: "bsu-ui-file-linear-list-box", inputs: { value: "value" }, providers: [UploadService], viewQueries: [{ propertyName: "fileUploadComponent", first: true, predicate: FileUploaderComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (value) {\r\n<div class=\"token-container\">\r\n <div class=\"token-wrapper\">\r\n @for (file of value; track trackById($index, file)) { @if (!file.IsDeleted) {\r\n <fd-popover #popover>\r\n <fd-popover-control>\r\n <fd-token (onCloseClick)=\"onFileDeleted(file.Id)\" [readOnly]=\"(disableOrReadonly$ | async)!!\"\r\n >{{ file.FileName }}\r\n @if (file.IsNew) { @if (valueExtra$ | async; as valueExtra) { @if (valueExtra[file.Id].UploadState\r\n !== 'Complete') {\r\n <span\r\n fd-object-status\r\n [status]=\"file.Id | uploadFileStatus: valueExtra\"\r\n [label]=\"valueExtra[file.Id]?.UploadState || ''\"\r\n [title]=\"valueExtra[file.Id]?.UploadState\"\r\n [aria-label]=\"'File Upload Status Is ' + valueExtra[file.Id]?.UploadState\"\r\n ></span>\r\n } @if (valueExtra[file.Id].Progress) {\r\n <fd-object-number\r\n [number]=\"valueExtra[file.Id].Progress || 0\"\r\n unit=\"%\"\r\n status=\"informative\"\r\n ></fd-object-number>\r\n } @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <fd-busy-indicator [loading]=\"true\" [size]=\"'s'\"></fd-busy-indicator>\r\n } } }\r\n </fd-token>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n @if (valueExtra$ | async; as valueExtra) { @if ( valueExtra[file.Id].UploadState !== 'Error' ||\r\n valueExtra[file.Id].UploadState === 'Complete' ) {\r\n <bsu-file-viewer-content\r\n [file]=\"file\"\r\n [width]=\"isMobile ? '100vw' : '30vw'\"\r\n [cardMode]=\"true\"\r\n [showContent]=\"true\"\r\n [showFooter]=\"true\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-file-viewer-content>\r\n <div fd-popover-body-footer>\r\n <bsu-barsa-bar-download-file\r\n [isMobile]=\"false\"\r\n [popover]=\"popover\"\r\n [files]=\"[file]\"\r\n [hideFullScreen]=\"false\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-barsa-bar-download-file>\r\n </div>\r\n <!-- <ul fd-list>\r\n <li fd-list-item>\r\n <a fd-list-link (click)=\"onDownloadFile(file)\">\r\n <i fd-list-icon glyph=\"download\"></i>\r\n <span fd-list-title>\r\n {{ 'Download' | bbbTranslate }}\r\n </span>\r\n <fd-busy-indicator [loading]=\"fileDownloading\" [size]=\"'s'\"></fd-busy-indicator>\r\n </a>\r\n </li>\r\n </ul> -->\r\n } }\r\n </fd-popover-body>\r\n </fd-popover>\r\n } }\r\n <div style=\"display: flex\">\r\n @if (loading) {\r\n <div style=\"position: relative; width: 3rem\">\r\n <bsu-mask [size]=\"'s'\" style=\"background: transparent\"></bsu-mask>\r\n </div>\r\n } @if ((fileCount$ | async) | canUploadFile: maxFileCount:(disable$ | async)===true:(readonly$ |\r\n async)===true) {\r\n <fd-file-uploader\r\n class=\"file-linear-upload\"\r\n fd-toolbar-item\r\n [id]=\"id\"\r\n [name]=\"'linear_' + id\"\r\n [placeholder]=\"'AttachFile' | bbbTranslate\"\r\n [buttonLabel]=\"'AttachFile' | bbbTranslate\"\r\n [buttonAriaLabel]=\"'AttachFile' | bbbTranslate\"\r\n [accept]=\"validExtension\"\r\n [multiple]=\"maxFileCount > 1 || Setting.IsMultiSelect\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n ></fd-file-uploader>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .fd-slider__handle{display:none}:host ::ng-deep .fd-file-uploader input{display:none}:host.isMobile ::ng-deep fd-token>span{-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:pre-wrap;height:auto;text-align:right}:host.isMobile ::ng-deep body[dir=ltr] fd-token>span{text-align:left}.token-container{background:transparent;padding:3px;display:flex}.token-wrapper{align-items:center;flex-grow:1;display:flex;flex-wrap:wrap}.token-wrapper fd-token,.token-wrapper .file-linear-upload{padding:4px}\n"], dependencies: [{ kind: "component", type: i1.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i2.FileUploaderComponent, selector: "fd-file-uploader", inputs: ["disabled", "required", "multiple", "accept", "dragndrop", "maxFileSize", "minFileSize", "id", "ariaLabel", "ariaLabelledBy", "placeholder", "buttonLabel", "buttonAriaLabel", "state", "fileLimit", "inputHidden", "width"], outputs: ["selectedFilesChanged", "selectedInvalidFiles", "onDragEnter", "onDragLeave"] }, { kind: "component", type: i3.ObjectNumberComponent, selector: "fd-object-number", inputs: ["number", "decimal", "unit", "emphasized", "large", "status", "class", "ariaLabelledBy", "ariaLabel"] }, { kind: "component", type: i4.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "glyphFont", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "component", type: i5.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i5.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: i5.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i5.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "directive", type: i6.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i7.TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown", "elementFocused"] }, { kind: "component", type: i8.BarsaBarDownloadFileComponent, selector: "bsu-barsa-bar-download-file", inputs: ["popover", "files", "hideFullScreen", "isMobile", "deviceSize"] }, { kind: "component", type: i9.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i10.FileViewerContentComponent, selector: "bsu-file-viewer-content", inputs: ["fillWidth", "imageOnly", "isImageGallery", "cardMode", "showFooter", "showContent", "width", "deviceSize", "cardContentHeight", "file"], outputs: ["cantView"] }, { kind: "pipe", type: i11.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.CanUploadFilePipe, name: "canUploadFile" }, { kind: "pipe", type: i12.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i13.UploadFileStatusPipe, name: "uploadFileStatus" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
113
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UiFileLinearListBoxComponent, selector: "bsu-ui-file-linear-list-box", inputs: { value: "value" }, providers: [UploadService], viewQueries: [{ propertyName: "fileUploadComponent", first: true, predicate: FileUploaderComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@if (value) {\r\n<div class=\"token-container\">\r\n <div class=\"token-wrapper\">\r\n @for (file of value; track trackById($index, file)) { @if (!file.IsDeleted) {\r\n <fd-popover #popover>\r\n <fd-popover-control>\r\n <fd-token (onCloseClick)=\"onFileDeleted(file.Id)\" [readOnly]=\"(disableOrReadonly$ | async)!!\"\r\n >{{ file.FileName }}\r\n @if (file.IsNew) { @if (valueExtra$ | async; as valueExtra) { @if (valueExtra[file.Id].UploadState\r\n !== 'Complete') {\r\n <span\r\n fd-object-status\r\n [status]=\"file.Id | uploadFileStatus: valueExtra\"\r\n [label]=\"valueExtra[file.Id]?.UploadState || ''\"\r\n [title]=\"valueExtra[file.Id]?.UploadState\"\r\n [aria-label]=\"'File Upload Status Is ' + valueExtra[file.Id]?.UploadState\"\r\n ></span>\r\n } @if (valueExtra[file.Id].Progress) {\r\n <fd-object-number\r\n [number]=\"valueExtra[file.Id].Progress || 0\"\r\n unit=\"%\"\r\n status=\"informative\"\r\n ></fd-object-number>\r\n } @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <fd-busy-indicator [loading]=\"true\" [size]=\"'s'\"></fd-busy-indicator>\r\n } } }\r\n </fd-token>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n @if (valueExtra$ | async; as valueExtra) { @if ( valueExtra[file.Id].UploadState !== 'Error' ||\r\n valueExtra[file.Id].UploadState === 'Complete' ) {\r\n <bsu-file-viewer-content\r\n [file]=\"file\"\r\n [width]=\"isMobile ? '100vw' : '30vw'\"\r\n [cardMode]=\"true\"\r\n [showContent]=\"true\"\r\n [showFooter]=\"true\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-file-viewer-content>\r\n <div fd-popover-body-footer>\r\n <bsu-barsa-bar-download-file\r\n [isMobile]=\"false\"\r\n [popover]=\"popover\"\r\n [canPrint]=\"file.Type | isImageType\"\r\n [files]=\"[file]\"\r\n [hideFullScreen]=\"false\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-barsa-bar-download-file>\r\n </div>\r\n <!-- <ul fd-list>\r\n <li fd-list-item>\r\n <a fd-list-link (click)=\"onDownloadFile(file)\">\r\n <i fd-list-icon glyph=\"download\"></i>\r\n <span fd-list-title>\r\n {{ 'Download' | bbbTranslate }}\r\n </span>\r\n <fd-busy-indicator [loading]=\"fileDownloading\" [size]=\"'s'\"></fd-busy-indicator>\r\n </a>\r\n </li>\r\n </ul> -->\r\n } }\r\n </fd-popover-body>\r\n </fd-popover>\r\n } }\r\n <div style=\"display: flex\">\r\n @if (loading) {\r\n <div style=\"position: relative; width: 3rem\">\r\n <bsu-mask [size]=\"'s'\" style=\"background: transparent\"></bsu-mask>\r\n </div>\r\n } @if ((fileCount$ | async) | canUploadFile: maxFileCount:(disable$ | async)===true:(readonly$ |\r\n async)===true) {\r\n <fd-file-uploader\r\n class=\"file-linear-upload\"\r\n fd-toolbar-item\r\n [id]=\"id\"\r\n [name]=\"'linear_' + id\"\r\n [placeholder]=\"'AttachFile' | bbbTranslate\"\r\n [buttonLabel]=\"'AttachFile' | bbbTranslate\"\r\n [buttonAriaLabel]=\"'AttachFile' | bbbTranslate\"\r\n [accept]=\"validExtension\"\r\n [multiple]=\"maxFileCount > 1 || Setting.IsMultiSelect\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n ></fd-file-uploader>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .fd-slider__handle{display:none}:host ::ng-deep .fd-file-uploader input{display:none}:host.isMobile ::ng-deep fd-token>span{-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:pre-wrap;height:auto;text-align:right}:host.isMobile ::ng-deep body[dir=ltr] fd-token>span{text-align:left}.token-container{background:transparent;padding:3px;display:flex}.token-wrapper{align-items:center;flex-grow:1;display:flex;flex-wrap:wrap}.token-wrapper fd-token,.token-wrapper .file-linear-upload{padding:4px}\n"], dependencies: [{ kind: "component", type: i1.BusyIndicatorComponent, selector: "fd-busy-indicator", inputs: ["loading", "size", "block", "ariaLabel", "title", "label", "ariaLive"] }, { kind: "component", type: i2.FileUploaderComponent, selector: "fd-file-uploader", inputs: ["disabled", "required", "multiple", "accept", "dragndrop", "maxFileSize", "minFileSize", "id", "ariaLabel", "ariaLabelledBy", "placeholder", "buttonLabel", "buttonAriaLabel", "state", "fileLimit", "inputHidden", "width"], outputs: ["selectedFilesChanged", "selectedInvalidFiles", "onDragEnter", "onDragLeave"] }, { kind: "component", type: i3.ObjectNumberComponent, selector: "fd-object-number", inputs: ["number", "decimal", "unit", "emphasized", "large", "status", "class", "ariaLabelledBy", "ariaLabel"] }, { kind: "component", type: i4.ObjectStatusComponent, selector: "[fd-object-status]", inputs: ["class", "status", "glyph", "glyphFont", "label", "glyphAriaLabel", "indicationColor", "clickable", "inverted", "large", "secondaryIndication", "textTemplate"] }, { kind: "component", type: i5.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i5.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "directive", type: i5.PopoverBodyFooterDirective, selector: "[fdPopoverBodyFooter], [fd-popover-body-footer]" }, { kind: "component", type: i5.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "directive", type: i6.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "component", type: i7.TokenComponent, selector: "fd-token", inputs: ["disabled", "selected", "readOnly"], outputs: ["onCloseClick", "onRemove", "onTokenClick", "onTokenKeydown", "elementFocused"] }, { kind: "component", type: i8.BarsaBarDownloadFileComponent, selector: "bsu-barsa-bar-download-file", inputs: ["popover", "file", "files", "hideFullScreen", "isMobile", "canPrint", "deviceSize"] }, { kind: "component", type: i9.MaskComponent, selector: "bsu-mask", inputs: ["size", "top"] }, { kind: "component", type: i10.FileViewerContentComponent, selector: "bsu-file-viewer-content", inputs: ["fillWidth", "imageOnly", "isImageGallery", "cardMode", "showFooter", "showContent", "width", "deviceSize", "cardContentHeight", "file"], outputs: ["cantView"] }, { kind: "pipe", type: i11.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.CanUploadFilePipe, name: "canUploadFile" }, { kind: "pipe", type: i12.BbbTranslatePipe, name: "bbbTranslate" }, { kind: "pipe", type: i12.IsImagePipe, name: "isImageType" }, { kind: "pipe", type: i13.UploadFileStatusPipe, name: "uploadFileStatus" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
114
114
  }
115
115
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UiFileLinearListBoxComponent, decorators: [{
116
116
  type: Component,
117
- args: [{ selector: 'bsu-ui-file-linear-list-box', providers: [UploadService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (value) {\r\n<div class=\"token-container\">\r\n <div class=\"token-wrapper\">\r\n @for (file of value; track trackById($index, file)) { @if (!file.IsDeleted) {\r\n <fd-popover #popover>\r\n <fd-popover-control>\r\n <fd-token (onCloseClick)=\"onFileDeleted(file.Id)\" [readOnly]=\"(disableOrReadonly$ | async)!!\"\r\n >{{ file.FileName }}\r\n @if (file.IsNew) { @if (valueExtra$ | async; as valueExtra) { @if (valueExtra[file.Id].UploadState\r\n !== 'Complete') {\r\n <span\r\n fd-object-status\r\n [status]=\"file.Id | uploadFileStatus: valueExtra\"\r\n [label]=\"valueExtra[file.Id]?.UploadState || ''\"\r\n [title]=\"valueExtra[file.Id]?.UploadState\"\r\n [aria-label]=\"'File Upload Status Is ' + valueExtra[file.Id]?.UploadState\"\r\n ></span>\r\n } @if (valueExtra[file.Id].Progress) {\r\n <fd-object-number\r\n [number]=\"valueExtra[file.Id].Progress || 0\"\r\n unit=\"%\"\r\n status=\"informative\"\r\n ></fd-object-number>\r\n } @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <fd-busy-indicator [loading]=\"true\" [size]=\"'s'\"></fd-busy-indicator>\r\n } } }\r\n </fd-token>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n @if (valueExtra$ | async; as valueExtra) { @if ( valueExtra[file.Id].UploadState !== 'Error' ||\r\n valueExtra[file.Id].UploadState === 'Complete' ) {\r\n <bsu-file-viewer-content\r\n [file]=\"file\"\r\n [width]=\"isMobile ? '100vw' : '30vw'\"\r\n [cardMode]=\"true\"\r\n [showContent]=\"true\"\r\n [showFooter]=\"true\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-file-viewer-content>\r\n <div fd-popover-body-footer>\r\n <bsu-barsa-bar-download-file\r\n [isMobile]=\"false\"\r\n [popover]=\"popover\"\r\n [files]=\"[file]\"\r\n [hideFullScreen]=\"false\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-barsa-bar-download-file>\r\n </div>\r\n <!-- <ul fd-list>\r\n <li fd-list-item>\r\n <a fd-list-link (click)=\"onDownloadFile(file)\">\r\n <i fd-list-icon glyph=\"download\"></i>\r\n <span fd-list-title>\r\n {{ 'Download' | bbbTranslate }}\r\n </span>\r\n <fd-busy-indicator [loading]=\"fileDownloading\" [size]=\"'s'\"></fd-busy-indicator>\r\n </a>\r\n </li>\r\n </ul> -->\r\n } }\r\n </fd-popover-body>\r\n </fd-popover>\r\n } }\r\n <div style=\"display: flex\">\r\n @if (loading) {\r\n <div style=\"position: relative; width: 3rem\">\r\n <bsu-mask [size]=\"'s'\" style=\"background: transparent\"></bsu-mask>\r\n </div>\r\n } @if ((fileCount$ | async) | canUploadFile: maxFileCount:(disable$ | async)===true:(readonly$ |\r\n async)===true) {\r\n <fd-file-uploader\r\n class=\"file-linear-upload\"\r\n fd-toolbar-item\r\n [id]=\"id\"\r\n [name]=\"'linear_' + id\"\r\n [placeholder]=\"'AttachFile' | bbbTranslate\"\r\n [buttonLabel]=\"'AttachFile' | bbbTranslate\"\r\n [buttonAriaLabel]=\"'AttachFile' | bbbTranslate\"\r\n [accept]=\"validExtension\"\r\n [multiple]=\"maxFileCount > 1 || Setting.IsMultiSelect\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n ></fd-file-uploader>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .fd-slider__handle{display:none}:host ::ng-deep .fd-file-uploader input{display:none}:host.isMobile ::ng-deep fd-token>span{-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:pre-wrap;height:auto;text-align:right}:host.isMobile ::ng-deep body[dir=ltr] fd-token>span{text-align:left}.token-container{background:transparent;padding:3px;display:flex}.token-wrapper{align-items:center;flex-grow:1;display:flex;flex-wrap:wrap}.token-wrapper fd-token,.token-wrapper .file-linear-upload{padding:4px}\n"] }]
117
+ args: [{ selector: 'bsu-ui-file-linear-list-box', providers: [UploadService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (value) {\r\n<div class=\"token-container\">\r\n <div class=\"token-wrapper\">\r\n @for (file of value; track trackById($index, file)) { @if (!file.IsDeleted) {\r\n <fd-popover #popover>\r\n <fd-popover-control>\r\n <fd-token (onCloseClick)=\"onFileDeleted(file.Id)\" [readOnly]=\"(disableOrReadonly$ | async)!!\"\r\n >{{ file.FileName }}\r\n @if (file.IsNew) { @if (valueExtra$ | async; as valueExtra) { @if (valueExtra[file.Id].UploadState\r\n !== 'Complete') {\r\n <span\r\n fd-object-status\r\n [status]=\"file.Id | uploadFileStatus: valueExtra\"\r\n [label]=\"valueExtra[file.Id]?.UploadState || ''\"\r\n [title]=\"valueExtra[file.Id]?.UploadState\"\r\n [aria-label]=\"'File Upload Status Is ' + valueExtra[file.Id]?.UploadState\"\r\n ></span>\r\n } @if (valueExtra[file.Id].Progress) {\r\n <fd-object-number\r\n [number]=\"valueExtra[file.Id].Progress || 0\"\r\n unit=\"%\"\r\n status=\"informative\"\r\n ></fd-object-number>\r\n } @if (valueExtra[file.Id].UploadState === 'Uploading') {\r\n <fd-busy-indicator [loading]=\"true\" [size]=\"'s'\"></fd-busy-indicator>\r\n } } }\r\n </fd-token>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n @if (valueExtra$ | async; as valueExtra) { @if ( valueExtra[file.Id].UploadState !== 'Error' ||\r\n valueExtra[file.Id].UploadState === 'Complete' ) {\r\n <bsu-file-viewer-content\r\n [file]=\"file\"\r\n [width]=\"isMobile ? '100vw' : '30vw'\"\r\n [cardMode]=\"true\"\r\n [showContent]=\"true\"\r\n [showFooter]=\"true\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-file-viewer-content>\r\n <div fd-popover-body-footer>\r\n <bsu-barsa-bar-download-file\r\n [isMobile]=\"false\"\r\n [popover]=\"popover\"\r\n [canPrint]=\"file.Type | isImageType\"\r\n [files]=\"[file]\"\r\n [hideFullScreen]=\"false\"\r\n [deviceSize]=\"(deviceSize$ | async) || 's'\"\r\n ></bsu-barsa-bar-download-file>\r\n </div>\r\n <!-- <ul fd-list>\r\n <li fd-list-item>\r\n <a fd-list-link (click)=\"onDownloadFile(file)\">\r\n <i fd-list-icon glyph=\"download\"></i>\r\n <span fd-list-title>\r\n {{ 'Download' | bbbTranslate }}\r\n </span>\r\n <fd-busy-indicator [loading]=\"fileDownloading\" [size]=\"'s'\"></fd-busy-indicator>\r\n </a>\r\n </li>\r\n </ul> -->\r\n } }\r\n </fd-popover-body>\r\n </fd-popover>\r\n } }\r\n <div style=\"display: flex\">\r\n @if (loading) {\r\n <div style=\"position: relative; width: 3rem\">\r\n <bsu-mask [size]=\"'s'\" style=\"background: transparent\"></bsu-mask>\r\n </div>\r\n } @if ((fileCount$ | async) | canUploadFile: maxFileCount:(disable$ | async)===true:(readonly$ |\r\n async)===true) {\r\n <fd-file-uploader\r\n class=\"file-linear-upload\"\r\n fd-toolbar-item\r\n [id]=\"id\"\r\n [name]=\"'linear_' + id\"\r\n [placeholder]=\"'AttachFile' | bbbTranslate\"\r\n [buttonLabel]=\"'AttachFile' | bbbTranslate\"\r\n [buttonAriaLabel]=\"'AttachFile' | bbbTranslate\"\r\n [accept]=\"validExtension\"\r\n [multiple]=\"maxFileCount > 1 || Setting.IsMultiSelect\"\r\n (selectedFilesChanged)=\"onFileSelection($event)\"\r\n [contentDensity]=\"(contentDensity$ | async)!!\"\r\n ></fd-file-uploader>\r\n }\r\n </div>\r\n </div>\r\n</div>\r\n}\r\n", styles: [":host{display:block;width:100%;height:100%}:host ::ng-deep .fd-slider__handle{display:none}:host ::ng-deep .fd-file-uploader input{display:none}:host.isMobile ::ng-deep fd-token>span{-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:pre-wrap;height:auto;text-align:right}:host.isMobile ::ng-deep body[dir=ltr] fd-token>span{text-align:left}.token-container{background:transparent;padding:3px;display:flex}.token-wrapper{align-items:center;flex-grow:1;display:flex;flex-wrap:wrap}.token-wrapper fd-token,.token-wrapper .file-linear-upload{padding:4px}\n"] }]
118
118
  }], propDecorators: { fileUploadComponent: [{
119
119
  type: ViewChild,
120
120
  args: [FileUploaderComponent, { static: false }]
121
121
  }], value: [{
122
122
  type: Input
123
123
  }] } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZmlsZS1saW5lYXItbGlzdC1ib3gvdWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZmlsZS1saW5lYXItbGlzdC1ib3gvdWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBVyxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFrQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlFLE9BQU8sRUFDSCxhQUFhLEVBQ2IscUJBQXFCLEVBRXJCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDbkIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBV3pFLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSw0QkFBNEI7SUFSOUU7O1FBYUksZUFBVSxHQUFHLElBQUksVUFBVSxFQUFtQixDQUFDO1FBSy9DLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXBCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFHUixxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztLQStGN0Q7SUE5RkcsUUFBUTtRQUNKLEtBQUss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QUFFO2dCQUMxQyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29udGVudERlbnNpdHksIEZpbGVVcGxvYWRlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgVXBsb2FkU2VydmljZSxcclxuICAgIEZpbGVzVmFsaWRhdGlvbkhlbHBlcixcclxuICAgIEZpbGVBdHRhY2htZW50SW5mbyxcclxuICAgIGdldFZhbGlkRXh0ZW5zaW9uLFxyXG4gICAgTGluZWFyTGlzdEhlbHBlclxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgRGV2aWNlSW5mb0ZpZWxkQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2RldmljZS1pbmZvLWZpZWxkLWJhc2UnO1xyXG5pbXBvcnQgeyBJVXBsb2FkaW5nU3RhdGUgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LXVpLWZpbGUtbGluZWFyLWxpc3QtYm94JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1maWxlLWxpbmVhci1saXN0LWJveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91aS1maWxlLWxpbmVhci1saXN0LWJveC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbVXBsb2FkU2VydmljZV0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaUZpbGVMaW5lYXJMaXN0Qm94Q29tcG9uZW50IGV4dGVuZHMgRGV2aWNlSW5mb0ZpZWxkQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBWaWV3Q2hpbGQoRmlsZVVwbG9hZGVyQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgZmlsZVVwbG9hZENvbXBvbmVudDogRmlsZVVwbG9hZGVyQ29tcG9uZW50O1xyXG4gICAgQElucHV0KCkgdmFsdWU6IEZpbGVBdHRhY2htZW50SW5mb1tdO1xyXG5cclxuICAgIGZpbGVDb3VudCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcclxuICAgIHVwbG9hZGluZyQgPSBuZXcgT2JzZXJ2YWJsZTxJVXBsb2FkaW5nU3RhdGU+KCk7XHJcblxyXG4gICAgdmFsdWVFeHRyYSQ6IE9ic2VydmFibGU8eyBba2V5OiBzdHJpbmddOiBVcGxvYWRGaWxlUHJvcHMgfT47XHJcbiAgICBjb250ZW50RGVuc2l0eSQ6IE9ic2VydmFibGU8Q29udGVudERlbnNpdHk+O1xyXG4gICAgZmlsZURvd25sb2FkaW5nOiBib29sZWFuO1xyXG4gICAgdmFsaWRFeHRlbnNpb24gPSAnJztcclxuICAgIG1heEZpbGVDb3VudDogbnVtYmVyO1xyXG4gICAgbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgcHJvdGVjdGVkIF9saW5lYXJIZWxwZXI6IExpbmVhckxpc3RIZWxwZXI7XHJcbiAgICBwcm90ZWN0ZWQgX2ZpbGVzVmFsaWRhdGlvbkhlbHBlcjogRmlsZXNWYWxpZGF0aW9uSGVscGVyO1xyXG4gICAgcHJpdmF0ZSBfZmlsZUNvdW50U291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLmNvbnRleHQub24oe1xyXG4gICAgICAgICAgICBTaG93VXBsb2FkV2luZG93OiB0aGlzLl9zaG93VXBsb2FkV2luZG93LmJpbmQodGhpcylcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9maWxlc1ZhbGlkYXRpb25IZWxwZXIgPSBuZXcgRmlsZXNWYWxpZGF0aW9uSGVscGVyKFxyXG4gICAgICAgICAgICB0aGlzLlNldHRpbmcuTWF4RmlsZUNvdW50LFxyXG4gICAgICAgICAgICB0aGlzLlNldHRpbmcuTWF4RmlsZVNpemVLYixcclxuICAgICAgICAgICAgdGhpcy5TZXR0aW5nLk1heFRvdGFsRmlsZVNpemVLYlxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyID0gbmV3IExpbmVhckxpc3RIZWxwZXIoXHJcbiAgICAgICAgICAgIHRoaXMuX3VwbG9hZFNlcnZpY2UsXHJcbiAgICAgICAgICAgIHRoaXMuX2ZpbGVzVmFsaWRhdGlvbkhlbHBlcixcclxuICAgICAgICAgICAgdGhpcy5TZXR0aW5nLkZpZWxkRGVmSWRcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmlsZUNvdW50JCA9IHRoaXMuX2ZpbGVDb3VudFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xyXG4gICAgICAgIHRoaXMudmFsdWVFeHRyYSQgPSB0aGlzLl9saW5lYXJIZWxwZXIudmFsdWVFeHRyYSQ7XHJcbiAgICAgICAgdGhpcy51cGxvYWRpbmckID0gdGhpcy5fbGluZWFySGVscGVyLnVwbG9hZGluZyQ7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyLmRlbGV0ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoZmlsZUF0dGFjaG1lbnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fZGVsZXRlRmlsZUF0dGFjaG1lbnQoZmlsZUF0dGFjaG1lbnQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX2xpbmVhckhlbHBlci5uZXdGaWxlVXBsb2FkZWQkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKGZpbGVBdHRhY2htZW50KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX25ld0ZpbGVVcGxvYWRlZChmaWxlQXR0YWNobWVudCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy52YWx1ZSAmJlxyXG4gICAgICAgICAgICB0aGlzLnZhbHVlLmZvckVhY2goKGMpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2xpbmVhckhlbHBlci5pbml0KGMpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLlNldHRpbmcuSXNNdWx0aVNlbGVjdCkge1xyXG4gICAgICAgICAgICB0aGlzLl9maWxlc1ZhbGlkYXRpb25IZWxwZXIubWF4RmlsZUNvdW50ID0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tYXhGaWxlQ291bnQgPSB0aGlzLl9maWxlc1ZhbGlkYXRpb25IZWxwZXIubWF4RmlsZUNvdW50O1xyXG4gICAgICAgIHRoaXMudmFsaWRFeHRlbnNpb24gPSBnZXRWYWxpZEV4dGVuc2lvbih0aGlzLlNldHRpbmcuVmFsaWRFeHRlbnNpb25zKTtcclxuICAgICAgICB0aGlzLl9zZXRGaWxlQ291bnQodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICAvLyB0aGlzLnZhbHVlRXh0cmEgPSB7fTtcclxuICAgICAgICB0aGlzLmNvbnRleHQudW4oJ1Nob3dVcGxvYWRXaW5kb3cnLCB0aGlzLl9zaG93VXBsb2FkV2luZG93KTtcclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgfVxyXG4gICAgb25Eb3dubG9hZEZpbGUoZmlsZTogRmlsZUF0dGFjaG1lbnRJbmZvKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFmaWxlLklzTmV3IHx8IGZpbGUuVXBsb2FkU3RhdGUgPT09ICdDb21wbGV0ZScgfHwgIWZpbGUuVXBsb2FkU3RhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5maXJlQ29udGV4dEV2ZW50KCdDb21tYW5kUmVxdWVzdCcsIHRoaXMuY29udGV4dCwgJ0Rvd25sb2FkJywgZmlsZS5JZCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZURvd25sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVEb3dubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG9uRmlsZURlbGV0ZWQoZmlsZUlkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZmlsZURlbGV0ZShmaWxlSWQpO1xyXG4gICAgfVxyXG4gICAgb25UZXJtaW5hdGUoZmlsZUF0dGFjaG1lbnQ6IEZpbGVBdHRhY2htZW50SW5mbyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlyZUNvbnRleHRFdmVudCgnQ29tbWFuZFJlcXVlc3QnLCB0aGlzLmNvbnRleHQsICdEZWxldGUnLCBmaWxlQXR0YWNobWVudC5JZCk7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyLmNhbmNlbChmaWxlQXR0YWNobWVudCk7XHJcbiAgICB9XHJcbiAgICBvbkZpbGVTZWxlY3Rpb24oZmlsZXM6IEZpbGVbXSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2xpbmVhckhlbHBlci51cGxvYWRUb1NlcnZlcihmaWxlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhY2tCeUlkKGZpbGUsIGluZGV4KTogc3RyaW5nIHwgbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gZmlsZSA/IGZpbGUuSWQgOiBpbmRleDtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCByZXRyeShmaWxlQXR0YWNobWVudDogRmlsZUF0dGFjaG1lbnRJbmZvKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyLnJldHJ5KGZpbGVBdHRhY2htZW50KTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfc2V0VmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLl9zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5fc2V0RmlsZUNvdW50KHZhbHVlKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfc2hvd1VwbG9hZFdpbmRvdygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpbGVVcGxvYWRDb21wb25lbnQub3BlbigpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9maWxlRGVsZXRlKGlkKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZmlsZUF0dGFjaG1lbnQgPSB0aGlzLnZhbHVlLmZpbmQoKGMpID0+IGMuSWQgPT09IGlkKTtcclxuICAgICAgICBpZiAoZmlsZUF0dGFjaG1lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5fZGVsZXRlRmlsZUF0dGFjaG1lbnQoZmlsZUF0dGFjaG1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfZGVsZXRlRmlsZUF0dGFjaG1lbnQoZmlsZUF0dGFjaG1lbnQ6IEZpbGVBdHRhY2htZW50SW5mbyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlyZUNvbnRleHRFdmVudCgnQ29tbWFuZFJlcXVlc3QnLCB0aGlzLmNvbnRleHQsICdEZWxldGUnLCBmaWxlQXR0YWNobWVudC5JZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF9zZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBsb2FkaW5nO1xyXG4gICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfbmV3RmlsZVVwbG9hZGVkKG5ld0ZpbGVBdHRhY2htZW50OiBGaWxlQXR0YWNobWVudEluZm8pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpcmVDb250ZXh0RXZlbnQoJ0NvbW1hbmRSZXF1ZXN0JywgdGhpcy5jb250ZXh0LCAnRmlsZVVwbG9hZCcsIG5ld0ZpbGVBdHRhY2htZW50KTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfc2V0RmlsZUNvdW50KHZhbHVlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZmlsZUNvdW50U291cmNlLm5leHQodmFsdWUuZmlsdGVyKChjKSA9PiAhYy5Jc0RlbGV0ZWQpLmxlbmd0aCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBVcGxvYWRGaWxlUHJvcHMge1xyXG4gICAgRmlsZVVybD86IHN0cmluZztcclxuICAgIGNhbmNlbGF0aW9uJD86IFN1YmplY3Q8dm9pZD47XHJcbiAgICBiaW5hcnk/OiBhbnk7XHJcbiAgICBVcGxvYWRTdGF0ZT86IHN0cmluZztcclxuICAgIFByb2dyZXNzPzogbnVtYmVyO1xyXG4gICAgSXNJY29uPzogYm9vbGVhbjtcclxufVxyXG4iLCJAaWYgKHZhbHVlKSB7XHJcbjxkaXYgY2xhc3M9XCJ0b2tlbi1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b2tlbi13cmFwcGVyXCI+XHJcbiAgICAgICAgQGZvciAoZmlsZSBvZiB2YWx1ZTsgdHJhY2sgdHJhY2tCeUlkKCRpbmRleCwgZmlsZSkpIHsgQGlmICghZmlsZS5Jc0RlbGV0ZWQpIHtcclxuICAgICAgICA8ZmQtcG9wb3ZlciAjcG9wb3Zlcj5cclxuICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICAgICAgICAgIDxmZC10b2tlbiAob25DbG9zZUNsaWNrKT1cIm9uRmlsZURlbGV0ZWQoZmlsZS5JZClcIiBbcmVhZE9ubHldPVwiKGRpc2FibGVPclJlYWRvbmx5JCB8IGFzeW5jKSEhXCJcclxuICAgICAgICAgICAgICAgICAgICA+e3sgZmlsZS5GaWxlTmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZmlsZS5Jc05ldykgeyBAaWYgKHZhbHVlRXh0cmEkIHwgYXN5bmM7IGFzIHZhbHVlRXh0cmEpIHsgQGlmICh2YWx1ZUV4dHJhW2ZpbGUuSWRdLlVwbG9hZFN0YXRlXHJcbiAgICAgICAgICAgICAgICAgICAgIT09ICdDb21wbGV0ZScpIHtcclxuICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPVwiZmlsZS5JZCB8IHVwbG9hZEZpbGVTdGF0dXM6IHZhbHVlRXh0cmFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwidmFsdWVFeHRyYVtmaWxlLklkXT8uVXBsb2FkU3RhdGUgfHwgJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwidmFsdWVFeHRyYVtmaWxlLklkXT8uVXBsb2FkU3RhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInRmlsZSBVcGxvYWQgU3RhdHVzIElzICcgKyB2YWx1ZUV4dHJhW2ZpbGUuSWRdPy5VcGxvYWRTdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICB9IEBpZiAodmFsdWVFeHRyYVtmaWxlLklkXS5Qcm9ncmVzcykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxmZC1vYmplY3QtbnVtYmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtudW1iZXJdPVwidmFsdWVFeHRyYVtmaWxlLklkXS5Qcm9ncmVzcyB8fCAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdW5pdD1cIiVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM9XCJpbmZvcm1hdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtb2JqZWN0LW51bWJlcj5cclxuICAgICAgICAgICAgICAgICAgICB9IEBpZiAodmFsdWVFeHRyYVtmaWxlLklkXS5VcGxvYWRTdGF0ZSA9PT0gJ1VwbG9hZGluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICA8ZmQtYnVzeS1pbmRpY2F0b3IgW2xvYWRpbmddPVwidHJ1ZVwiIFtzaXplXT1cIidzJ1wiPjwvZmQtYnVzeS1pbmRpY2F0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgfSB9IH1cclxuICAgICAgICAgICAgICAgIDwvZmQtdG9rZW4+XHJcbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgICAgICAgICAgICAgQGlmICh2YWx1ZUV4dHJhJCB8IGFzeW5jOyBhcyB2YWx1ZUV4dHJhKSB7IEBpZiAoIHZhbHVlRXh0cmFbZmlsZS5JZF0uVXBsb2FkU3RhdGUgIT09ICdFcnJvcicgfHxcclxuICAgICAgICAgICAgICAgIHZhbHVlRXh0cmFbZmlsZS5JZF0uVXBsb2FkU3RhdGUgPT09ICdDb21wbGV0ZScgKSB7XHJcbiAgICAgICAgICAgICAgICA8YnN1LWZpbGUtdmlld2VyLWNvbnRlbnRcclxuICAgICAgICAgICAgICAgICAgICBbZmlsZV09XCJmaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICBbd2lkdGhdPVwiaXNNb2JpbGUgPyAnMTAwdncnIDogJzMwdncnXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2FyZE1vZGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dDb250ZW50XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaG93Rm9vdGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cIihkZXZpY2VTaXplJCB8IGFzeW5jKSB8fCAncydcIlxyXG4gICAgICAgICAgICAgICAgPjwvYnN1LWZpbGUtdmlld2VyLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZkLXBvcG92ZXItYm9keS1mb290ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJzdS1iYXJzYS1iYXItZG93bmxvYWQtZmlsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXNNb2JpbGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcG9wb3Zlcl09XCJwb3BvdmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVzXT1cIltmaWxlXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlRnVsbFNjcmVlbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cIihkZXZpY2VTaXplJCB8IGFzeW5jKSB8fCAncydcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2JzdS1iYXJzYS1iYXItZG93bmxvYWQtZmlsZT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8dWwgZmQtbGlzdD5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgKGNsaWNrKT1cIm9uRG93bmxvYWRGaWxlKGZpbGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBmZC1saXN0LWljb24gZ2x5cGg9XCJkb3dubG9hZFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0Rvd25sb2FkJyB8IGJiYlRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJ1c3ktaW5kaWNhdG9yIFtsb2FkaW5nXT1cImZpbGVEb3dubG9hZGluZ1wiIFtzaXplXT1cIidzJ1wiPjwvZmQtYnVzeS1pbmRpY2F0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPC91bD4gLS0+XHJcbiAgICAgICAgICAgICAgICB9IH1cclxuICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XHJcbiAgICAgICAgPC9mZC1wb3BvdmVyPlxyXG4gICAgICAgIH0gfVxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4XCI+XHJcbiAgICAgICAgICAgIEBpZiAobG9hZGluZykge1xyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogM3JlbVwiPlxyXG4gICAgICAgICAgICAgICAgPGJzdS1tYXNrIFtzaXplXT1cIidzJ1wiIHN0eWxlPVwiYmFja2dyb3VuZDogdHJhbnNwYXJlbnRcIj48L2JzdS1tYXNrPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfSBAaWYgKChmaWxlQ291bnQkIHwgYXN5bmMpIHwgY2FuVXBsb2FkRmlsZTogbWF4RmlsZUNvdW50OihkaXNhYmxlJCB8IGFzeW5jKT09PXRydWU6KHJlYWRvbmx5JCB8XHJcbiAgICAgICAgICAgIGFzeW5jKT09PXRydWUpIHtcclxuICAgICAgICAgICAgPGZkLWZpbGUtdXBsb2FkZXJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1saW5lYXItdXBsb2FkXCJcclxuICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxyXG4gICAgICAgICAgICAgICAgW2lkXT1cImlkXCJcclxuICAgICAgICAgICAgICAgIFtuYW1lXT1cIidsaW5lYXJfJyArIGlkXCJcclxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQXR0YWNoRmlsZScgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2J1dHRvbkxhYmVsXT1cIidBdHRhY2hGaWxlJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbYnV0dG9uQXJpYUxhYmVsXT1cIidBdHRhY2hGaWxlJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbYWNjZXB0XT1cInZhbGlkRXh0ZW5zaW9uXCJcclxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJtYXhGaWxlQ291bnQgPiAxIHx8IFNldHRpbmcuSXNNdWx0aVNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWRGaWxlc0NoYW5nZWQpPVwib25GaWxlU2VsZWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cIihjb250ZW50RGVuc2l0eSQgfCBhc3luYykhIVwiXHJcbiAgICAgICAgICAgID48L2ZkLWZpbGUtdXBsb2FkZXI+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxufVxyXG4iXX0=
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZmlsZS1saW5lYXItbGlzdC1ib3gvdWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2Etc2FwLXVpL3NyYy9saWIvdWktZmlsZS1saW5lYXItbGlzdC1ib3gvdWktZmlsZS1saW5lYXItbGlzdC1ib3guY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBVyxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFrQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTlFLE9BQU8sRUFDSCxhQUFhLEVBQ2IscUJBQXFCLEVBRXJCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDbkIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBV3pFLE1BQU0sT0FBTyw0QkFBNkIsU0FBUSw0QkFBNEI7SUFSOUU7O1FBYUksZUFBVSxHQUFHLElBQUksVUFBVSxFQUFtQixDQUFDO1FBSy9DLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXBCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFHUixxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQztLQStGN0Q7SUE5RkcsUUFBUTtRQUNKLEtBQUss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QUFFO2dCQUMxQyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29udGVudERlbnNpdHksIEZpbGVVcGxvYWRlckNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gICAgVXBsb2FkU2VydmljZSxcclxuICAgIEZpbGVzVmFsaWRhdGlvbkhlbHBlcixcclxuICAgIEZpbGVBdHRhY2htZW50SW5mbyxcclxuICAgIGdldFZhbGlkRXh0ZW5zaW9uLFxyXG4gICAgTGluZWFyTGlzdEhlbHBlclxyXG59IGZyb20gJ2JhcnNhLW5vdmluLXJheS1jb3JlJztcclxuaW1wb3J0IHsgRGV2aWNlSW5mb0ZpZWxkQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2RldmljZS1pbmZvLWZpZWxkLWJhc2UnO1xyXG5pbXBvcnQgeyBJVXBsb2FkaW5nU3RhdGUgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYnN1LXVpLWZpbGUtbGluZWFyLWxpc3QtYm94JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91aS1maWxlLWxpbmVhci1saXN0LWJveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91aS1maWxlLWxpbmVhci1saXN0LWJveC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbVXBsb2FkU2VydmljZV0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVaUZpbGVMaW5lYXJMaXN0Qm94Q29tcG9uZW50IGV4dGVuZHMgRGV2aWNlSW5mb0ZpZWxkQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICAgIEBWaWV3Q2hpbGQoRmlsZVVwbG9hZGVyQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgZmlsZVVwbG9hZENvbXBvbmVudDogRmlsZVVwbG9hZGVyQ29tcG9uZW50O1xyXG4gICAgQElucHV0KCkgdmFsdWU6IEZpbGVBdHRhY2htZW50SW5mb1tdO1xyXG5cclxuICAgIGZpbGVDb3VudCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcclxuICAgIHVwbG9hZGluZyQgPSBuZXcgT2JzZXJ2YWJsZTxJVXBsb2FkaW5nU3RhdGU+KCk7XHJcblxyXG4gICAgdmFsdWVFeHRyYSQ6IE9ic2VydmFibGU8eyBba2V5OiBzdHJpbmddOiBVcGxvYWRGaWxlUHJvcHMgfT47XHJcbiAgICBjb250ZW50RGVuc2l0eSQ6IE9ic2VydmFibGU8Q29udGVudERlbnNpdHk+O1xyXG4gICAgZmlsZURvd25sb2FkaW5nOiBib29sZWFuO1xyXG4gICAgdmFsaWRFeHRlbnNpb24gPSAnJztcclxuICAgIG1heEZpbGVDb3VudDogbnVtYmVyO1xyXG4gICAgbG9hZGluZyA9IGZhbHNlO1xyXG4gICAgcHJvdGVjdGVkIF9saW5lYXJIZWxwZXI6IExpbmVhckxpc3RIZWxwZXI7XHJcbiAgICBwcm90ZWN0ZWQgX2ZpbGVzVmFsaWRhdGlvbkhlbHBlcjogRmlsZXNWYWxpZGF0aW9uSGVscGVyO1xyXG4gICAgcHJpdmF0ZSBfZmlsZUNvdW50U291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLmNvbnRleHQub24oe1xyXG4gICAgICAgICAgICBTaG93VXBsb2FkV2luZG93OiB0aGlzLl9zaG93VXBsb2FkV2luZG93LmJpbmQodGhpcylcclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9maWxlc1ZhbGlkYXRpb25IZWxwZXIgPSBuZXcgRmlsZXNWYWxpZGF0aW9uSGVscGVyKFxyXG4gICAgICAgICAgICB0aGlzLlNldHRpbmcuTWF4RmlsZUNvdW50LFxyXG4gICAgICAgICAgICB0aGlzLlNldHRpbmcuTWF4RmlsZVNpemVLYixcclxuICAgICAgICAgICAgdGhpcy5TZXR0aW5nLk1heFRvdGFsRmlsZVNpemVLYlxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyID0gbmV3IExpbmVhckxpc3RIZWxwZXIoXHJcbiAgICAgICAgICAgIHRoaXMuX3VwbG9hZFNlcnZpY2UsXHJcbiAgICAgICAgICAgIHRoaXMuX2ZpbGVzVmFsaWRhdGlvbkhlbHBlcixcclxuICAgICAgICAgICAgdGhpcy5TZXR0aW5nLkZpZWxkRGVmSWRcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZmlsZUNvdW50JCA9IHRoaXMuX2ZpbGVDb3VudFNvdXJjZS5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xyXG4gICAgICAgIHRoaXMudmFsdWVFeHRyYSQgPSB0aGlzLl9saW5lYXJIZWxwZXIudmFsdWVFeHRyYSQ7XHJcbiAgICAgICAgdGhpcy51cGxvYWRpbmckID0gdGhpcy5fbGluZWFySGVscGVyLnVwbG9hZGluZyQ7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyLmRlbGV0ZSQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSgoZmlsZUF0dGFjaG1lbnQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5fZGVsZXRlRmlsZUF0dGFjaG1lbnQoZmlsZUF0dGFjaG1lbnQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX2xpbmVhckhlbHBlci5uZXdGaWxlVXBsb2FkZWQkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKGZpbGVBdHRhY2htZW50KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuX25ld0ZpbGVVcGxvYWRlZChmaWxlQXR0YWNobWVudCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy52YWx1ZSAmJlxyXG4gICAgICAgICAgICB0aGlzLnZhbHVlLmZvckVhY2goKGMpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2xpbmVhckhlbHBlci5pbml0KGMpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLlNldHRpbmcuSXNNdWx0aVNlbGVjdCkge1xyXG4gICAgICAgICAgICB0aGlzLl9maWxlc1ZhbGlkYXRpb25IZWxwZXIubWF4RmlsZUNvdW50ID0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tYXhGaWxlQ291bnQgPSB0aGlzLl9maWxlc1ZhbGlkYXRpb25IZWxwZXIubWF4RmlsZUNvdW50O1xyXG4gICAgICAgIHRoaXMudmFsaWRFeHRlbnNpb24gPSBnZXRWYWxpZEV4dGVuc2lvbih0aGlzLlNldHRpbmcuVmFsaWRFeHRlbnNpb25zKTtcclxuICAgICAgICB0aGlzLl9zZXRGaWxlQ291bnQodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICAvLyB0aGlzLnZhbHVlRXh0cmEgPSB7fTtcclxuICAgICAgICB0aGlzLmNvbnRleHQudW4oJ1Nob3dVcGxvYWRXaW5kb3cnLCB0aGlzLl9zaG93VXBsb2FkV2luZG93KTtcclxuICAgICAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xyXG4gICAgfVxyXG4gICAgb25Eb3dubG9hZEZpbGUoZmlsZTogRmlsZUF0dGFjaG1lbnRJbmZvKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFmaWxlLklzTmV3IHx8IGZpbGUuVXBsb2FkU3RhdGUgPT09ICdDb21wbGV0ZScgfHwgIWZpbGUuVXBsb2FkU3RhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5maXJlQ29udGV4dEV2ZW50KCdDb21tYW5kUmVxdWVzdCcsIHRoaXMuY29udGV4dCwgJ0Rvd25sb2FkJywgZmlsZS5JZCk7XHJcbiAgICAgICAgICAgIHRoaXMuZmlsZURvd25sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVEb3dubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIG9uRmlsZURlbGV0ZWQoZmlsZUlkKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZmlsZURlbGV0ZShmaWxlSWQpO1xyXG4gICAgfVxyXG4gICAgb25UZXJtaW5hdGUoZmlsZUF0dGFjaG1lbnQ6IEZpbGVBdHRhY2htZW50SW5mbyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlyZUNvbnRleHRFdmVudCgnQ29tbWFuZFJlcXVlc3QnLCB0aGlzLmNvbnRleHQsICdEZWxldGUnLCBmaWxlQXR0YWNobWVudC5JZCk7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyLmNhbmNlbChmaWxlQXR0YWNobWVudCk7XHJcbiAgICB9XHJcbiAgICBvbkZpbGVTZWxlY3Rpb24oZmlsZXM6IEZpbGVbXSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX2xpbmVhckhlbHBlci51cGxvYWRUb1NlcnZlcihmaWxlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgdHJhY2tCeUlkKGZpbGUsIGluZGV4KTogc3RyaW5nIHwgbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gZmlsZSA/IGZpbGUuSWQgOiBpbmRleDtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCByZXRyeShmaWxlQXR0YWNobWVudDogRmlsZUF0dGFjaG1lbnRJbmZvKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fbGluZWFySGVscGVyLnJldHJ5KGZpbGVBdHRhY2htZW50KTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfc2V0VmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLl9zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5fc2V0RmlsZUNvdW50KHZhbHVlKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfc2hvd1VwbG9hZFdpbmRvdygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpbGVVcGxvYWRDb21wb25lbnQub3BlbigpO1xyXG4gICAgfVxyXG4gICAgcHJvdGVjdGVkIF9maWxlRGVsZXRlKGlkKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZmlsZUF0dGFjaG1lbnQgPSB0aGlzLnZhbHVlLmZpbmQoKGMpID0+IGMuSWQgPT09IGlkKTtcclxuICAgICAgICBpZiAoZmlsZUF0dGFjaG1lbnQpIHtcclxuICAgICAgICAgICAgdGhpcy5fZGVsZXRlRmlsZUF0dGFjaG1lbnQoZmlsZUF0dGFjaG1lbnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfZGVsZXRlRmlsZUF0dGFjaG1lbnQoZmlsZUF0dGFjaG1lbnQ6IEZpbGVBdHRhY2htZW50SW5mbyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZmlyZUNvbnRleHRFdmVudCgnQ29tbWFuZFJlcXVlc3QnLCB0aGlzLmNvbnRleHQsICdEZWxldGUnLCBmaWxlQXR0YWNobWVudC5JZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIF9zZXRMb2FkaW5nKGxvYWRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxvYWRpbmcgPSBsb2FkaW5nO1xyXG4gICAgICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfbmV3RmlsZVVwbG9hZGVkKG5ld0ZpbGVBdHRhY2htZW50OiBGaWxlQXR0YWNobWVudEluZm8pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZpcmVDb250ZXh0RXZlbnQoJ0NvbW1hbmRSZXF1ZXN0JywgdGhpcy5jb250ZXh0LCAnRmlsZVVwbG9hZCcsIG5ld0ZpbGVBdHRhY2htZW50KTtcclxuICAgIH1cclxuICAgIHByb3RlY3RlZCBfc2V0RmlsZUNvdW50KHZhbHVlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZmlsZUNvdW50U291cmNlLm5leHQodmFsdWUuZmlsdGVyKChjKSA9PiAhYy5Jc0RlbGV0ZWQpLmxlbmd0aCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBVcGxvYWRGaWxlUHJvcHMge1xyXG4gICAgRmlsZVVybD86IHN0cmluZztcclxuICAgIGNhbmNlbGF0aW9uJD86IFN1YmplY3Q8dm9pZD47XHJcbiAgICBiaW5hcnk/OiBhbnk7XHJcbiAgICBVcGxvYWRTdGF0ZT86IHN0cmluZztcclxuICAgIFByb2dyZXNzPzogbnVtYmVyO1xyXG4gICAgSXNJY29uPzogYm9vbGVhbjtcclxufVxyXG4iLCJAaWYgKHZhbHVlKSB7XHJcbjxkaXYgY2xhc3M9XCJ0b2tlbi1jb250YWluZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ0b2tlbi13cmFwcGVyXCI+XHJcbiAgICAgICAgQGZvciAoZmlsZSBvZiB2YWx1ZTsgdHJhY2sgdHJhY2tCeUlkKCRpbmRleCwgZmlsZSkpIHsgQGlmICghZmlsZS5Jc0RlbGV0ZWQpIHtcclxuICAgICAgICA8ZmQtcG9wb3ZlciAjcG9wb3Zlcj5cclxuICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICAgICAgICAgIDxmZC10b2tlbiAob25DbG9zZUNsaWNrKT1cIm9uRmlsZURlbGV0ZWQoZmlsZS5JZClcIiBbcmVhZE9ubHldPVwiKGRpc2FibGVPclJlYWRvbmx5JCB8IGFzeW5jKSEhXCJcclxuICAgICAgICAgICAgICAgICAgICA+e3sgZmlsZS5GaWxlTmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIEBpZiAoZmlsZS5Jc05ldykgeyBAaWYgKHZhbHVlRXh0cmEkIHwgYXN5bmM7IGFzIHZhbHVlRXh0cmEpIHsgQGlmICh2YWx1ZUV4dHJhW2ZpbGUuSWRdLlVwbG9hZFN0YXRlXHJcbiAgICAgICAgICAgICAgICAgICAgIT09ICdDb21wbGV0ZScpIHtcclxuICAgICAgICAgICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1vYmplY3Qtc3RhdHVzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdGF0dXNdPVwiZmlsZS5JZCB8IHVwbG9hZEZpbGVTdGF0dXM6IHZhbHVlRXh0cmFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwidmFsdWVFeHRyYVtmaWxlLklkXT8uVXBsb2FkU3RhdGUgfHwgJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwidmFsdWVFeHRyYVtmaWxlLklkXT8uVXBsb2FkU3RhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXJpYS1sYWJlbF09XCInRmlsZSBVcGxvYWQgU3RhdHVzIElzICcgKyB2YWx1ZUV4dHJhW2ZpbGUuSWRdPy5VcGxvYWRTdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICB9IEBpZiAodmFsdWVFeHRyYVtmaWxlLklkXS5Qcm9ncmVzcykge1xyXG4gICAgICAgICAgICAgICAgICAgIDxmZC1vYmplY3QtbnVtYmVyXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtudW1iZXJdPVwidmFsdWVFeHRyYVtmaWxlLklkXS5Qcm9ncmVzcyB8fCAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgdW5pdD1cIiVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM9XCJpbmZvcm1hdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPjwvZmQtb2JqZWN0LW51bWJlcj5cclxuICAgICAgICAgICAgICAgICAgICB9IEBpZiAodmFsdWVFeHRyYVtmaWxlLklkXS5VcGxvYWRTdGF0ZSA9PT0gJ1VwbG9hZGluZycpIHtcclxuICAgICAgICAgICAgICAgICAgICA8ZmQtYnVzeS1pbmRpY2F0b3IgW2xvYWRpbmddPVwidHJ1ZVwiIFtzaXplXT1cIidzJ1wiPjwvZmQtYnVzeS1pbmRpY2F0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgfSB9IH1cclxuICAgICAgICAgICAgICAgIDwvZmQtdG9rZW4+XHJcbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgICAgICAgICAgICAgQGlmICh2YWx1ZUV4dHJhJCB8IGFzeW5jOyBhcyB2YWx1ZUV4dHJhKSB7IEBpZiAoIHZhbHVlRXh0cmFbZmlsZS5JZF0uVXBsb2FkU3RhdGUgIT09ICdFcnJvcicgfHxcclxuICAgICAgICAgICAgICAgIHZhbHVlRXh0cmFbZmlsZS5JZF0uVXBsb2FkU3RhdGUgPT09ICdDb21wbGV0ZScgKSB7XHJcbiAgICAgICAgICAgICAgICA8YnN1LWZpbGUtdmlld2VyLWNvbnRlbnRcclxuICAgICAgICAgICAgICAgICAgICBbZmlsZV09XCJmaWxlXCJcclxuICAgICAgICAgICAgICAgICAgICBbd2lkdGhdPVwiaXNNb2JpbGUgPyAnMTAwdncnIDogJzMwdncnXCJcclxuICAgICAgICAgICAgICAgICAgICBbY2FyZE1vZGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3Nob3dDb250ZW50XT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaG93Rm9vdGVyXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cIihkZXZpY2VTaXplJCB8IGFzeW5jKSB8fCAncydcIlxyXG4gICAgICAgICAgICAgICAgPjwvYnN1LWZpbGUtdmlld2VyLWNvbnRlbnQ+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGZkLXBvcG92ZXItYm9keS1mb290ZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJzdS1iYXJzYS1iYXItZG93bmxvYWQtZmlsZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXNNb2JpbGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcG9wb3Zlcl09XCJwb3BvdmVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2NhblByaW50XT1cImZpbGUuVHlwZSB8IGlzSW1hZ2VUeXBlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVzXT1cIltmaWxlXVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlRnVsbFNjcmVlbl09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cIihkZXZpY2VTaXplJCB8IGFzeW5jKSB8fCAncydcIlxyXG4gICAgICAgICAgICAgICAgICAgID48L2JzdS1iYXJzYS1iYXItZG93bmxvYWQtZmlsZT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8dWwgZmQtbGlzdD5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgKGNsaWNrKT1cIm9uRG93bmxvYWRGaWxlKGZpbGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBmZC1saXN0LWljb24gZ2x5cGg9XCJkb3dubG9hZFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJ0Rvd25sb2FkJyB8IGJiYlRyYW5zbGF0ZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZkLWJ1c3ktaW5kaWNhdG9yIFtsb2FkaW5nXT1cImZpbGVEb3dubG9hZGluZ1wiIFtzaXplXT1cIidzJ1wiPjwvZmQtYnVzeS1pbmRpY2F0b3I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPC91bD4gLS0+XHJcbiAgICAgICAgICAgICAgICB9IH1cclxuICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XHJcbiAgICAgICAgPC9mZC1wb3BvdmVyPlxyXG4gICAgICAgIH0gfVxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJkaXNwbGF5OiBmbGV4XCI+XHJcbiAgICAgICAgICAgIEBpZiAobG9hZGluZykge1xyXG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwicG9zaXRpb246IHJlbGF0aXZlOyB3aWR0aDogM3JlbVwiPlxyXG4gICAgICAgICAgICAgICAgPGJzdS1tYXNrIFtzaXplXT1cIidzJ1wiIHN0eWxlPVwiYmFja2dyb3VuZDogdHJhbnNwYXJlbnRcIj48L2JzdS1tYXNrPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfSBAaWYgKChmaWxlQ291bnQkIHwgYXN5bmMpIHwgY2FuVXBsb2FkRmlsZTogbWF4RmlsZUNvdW50OihkaXNhYmxlJCB8IGFzeW5jKT09PXRydWU6KHJlYWRvbmx5JCB8XHJcbiAgICAgICAgICAgIGFzeW5jKT09PXRydWUpIHtcclxuICAgICAgICAgICAgPGZkLWZpbGUtdXBsb2FkZXJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZmlsZS1saW5lYXItdXBsb2FkXCJcclxuICAgICAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxyXG4gICAgICAgICAgICAgICAgW2lkXT1cImlkXCJcclxuICAgICAgICAgICAgICAgIFtuYW1lXT1cIidsaW5lYXJfJyArIGlkXCJcclxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQXR0YWNoRmlsZScgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgW2J1dHRvbkxhYmVsXT1cIidBdHRhY2hGaWxlJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbYnV0dG9uQXJpYUxhYmVsXT1cIidBdHRhY2hGaWxlJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICBbYWNjZXB0XT1cInZhbGlkRXh0ZW5zaW9uXCJcclxuICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJtYXhGaWxlQ291bnQgPiAxIHx8IFNldHRpbmcuSXNNdWx0aVNlbGVjdFwiXHJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWRGaWxlc0NoYW5nZWQpPVwib25GaWxlU2VsZWN0aW9uKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW2NvbnRlbnREZW5zaXR5XT1cIihjb250ZW50RGVuc2l0eSQgfCBhc3luYykhIVwiXHJcbiAgICAgICAgICAgID48L2ZkLWZpbGUtdXBsb2FkZXI+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxufVxyXG4iXX0=