barsa-develop-components 2.2.71 → 2.2.73

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.
@@ -34,11 +34,11 @@ export class CardHeaderLogoTitleSubtitleComponent extends BaseItemContentPropsCo
34
34
  }
35
35
  }
36
36
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardHeaderLogoTitleSubtitleComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CardHeaderLogoTitleSubtitleComponent, selector: "bdc-card-header-logo-title-subtitle", outputs: { events: "events" }, usesInheritance: true, ngImport: i0, template: "<fd-card-header\r\n [class.hide-border]=\"parameters.HideBorder\"\r\n (click)=\"!isCheckList && events.emit({ title: 'rowCheck' })\"\r\n>\r\n <fd-card-main-header>\r\n @if (hasIcon) {\r\n <fd-avatar\r\n [circle]=\"avatarCircle\"\r\n size=\"s\"\r\n ariaLabel=\"avatar image\"\r\n title=\"avatar image\"\r\n alterIcon=\"content|alt|backup|default-icon\"\r\n [glyph]=\"fontIcon\"\r\n [image]=\"isIconImage ? (imageIcon?.FileId | picFieldSrc: 'GetPictureFromFileInfo':null) : ''\"\r\n ></fd-avatar>\r\n }\r\n <div fd-card-title [style.justify-content]=\"'end'\" style=\"display:flex\">\r\n <div style=\"display: flex; justify-content: start; flex-grow: 1\">\r\n @if (isCheckList) {\r\n <fd-checkbox\r\n [name]=\"mo.$Caption\"\r\n [ngModel]=\"isChecked\"\r\n (ngModelChange)=\"events.emit({ title: 'rowCheck' })\"\r\n ></fd-checkbox>\r\n } @if (setting.ContextMenuInFooter && contextMenuItems && contextMenuItems.length > 0) {\r\n <div\r\n ulvContextMenu\r\n [allColumns]=\"allColumns\"\r\n [menuItems]=\"contextMenuItems\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"events.emit({ title: 'ulvCommand' })\"\r\n ></div>\r\n }\r\n <h2\r\n #hEl \r\n class=\"fd-card__title\"\r\n [hostEl]=\"hEl\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"titleDbName\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n >\r\n {{ title | bbbTranslate }}\r\n </h2>\r\n </div>\r\n @if (canView) {\r\n <button\r\n fd-button\r\n (click)=\"$event.preventDefault(); $event.stopPropagation(); events.emit({ title: 'rowClick' })\"\r\n [glyph]=\"navigationArrow\"\r\n fdType=\"transparent\"\r\n ></button>\r\n }\r\n </div>\r\n\r\n <h3\r\n fd-card-subtitle\r\n #hEl\r\n [hostEl]=\"hEl\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"subtitleDbName\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n >\r\n {{ subtitle | bbbTranslate }}\r\n </h3>\r\n </fd-card-main-header>\r\n</fd-card-header>\r\n<div></div>\r\n", styles: ["fd-card-header{cursor:default}fd-card-header:hover{background:var(--fdCard_Background_Color)}fd-card-header .fd-card__title{display:-webkit-box;width:100%}fd-card-header button{cursor:pointer;z-index:4}fd-card-header.hide-border{border-bottom:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i2.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "rightClickEnable", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode", "contextMenuOverflowText", "appendTo"], outputs: ["commandClick"] }, { kind: "directive", type: i2.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "component", type: i3.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i5.CardMainHeaderComponent, selector: "fd-card-main-header", inputs: ["interactive", "title"] }, { kind: "directive", type: i5.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "directive", type: i5.CardSubtitleDirective, selector: "[fd-card-subtitle]" }, { kind: "component", type: i6.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "readonly", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i7.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i7.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CardHeaderLogoTitleSubtitleComponent, selector: "bdc-card-header-logo-title-subtitle", outputs: { events: "events" }, usesInheritance: true, ngImport: i0, template: "<fd-card-header\r\n [class.hide-border]=\"parameters.HideBorder\"\r\n (click)=\"!isCheckList && events.emit({ title: 'rowCheck' })\"\r\n>\r\n <fd-card-main-header>\r\n @if (hasIcon) {\r\n <fd-avatar\r\n [circle]=\"avatarCircle\"\r\n size=\"s\"\r\n ariaLabel=\"avatar image\"\r\n title=\"avatar image\"\r\n alterIcon=\"content|alt|backup|default-icon\"\r\n [glyph]=\"fontIcon\"\r\n [image]=\"isIconImage ? (imageIcon?.FileId | picFieldSrc: 'GetPictureFromFileInfo':null) : ''\"\r\n ></fd-avatar>\r\n }\r\n <div fd-card-title [style.justify-content]=\"'end'\" style=\"display:flex\">\r\n <div style=\"display: flex; justify-content: start; flex-grow: 1\">\r\n @if (isCheckList) {\r\n <fd-checkbox\r\n [name]=\"mo.$Caption\"\r\n [ngModel]=\"isChecked\"\r\n (ngModelChange)=\"events.emit({ title: 'rowCheck' })\"\r\n ></fd-checkbox>\r\n } @if (setting.ContextMenuInFooter && contextMenuItems && contextMenuItems.length > 0) {\r\n <div\r\n ulvContextMenu\r\n [allColumns]=\"allColumns\"\r\n [menuItems]=\"contextMenuItems\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"events.emit({ title: 'ulvCommand' })\"\r\n ></div>\r\n }\r\n <h2\r\n #hEl \r\n class=\"fd-card__title\"\r\n [hostEl]=\"hEl\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"titleDbName\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n >\r\n {{ title | bbbTranslate }}\r\n </h2>\r\n </div>\r\n @if (canView) {\r\n <button\r\n fd-button\r\n (click)=\"$event.preventDefault(); $event.stopPropagation(); events.emit({ title: 'rowClick' })\"\r\n [glyph]=\"navigationArrow\"\r\n fdType=\"transparent\"\r\n ></button>\r\n }\r\n </div>\r\n\r\n <h3\r\n fd-card-subtitle\r\n #hEl\r\n [hostEl]=\"hEl\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"subtitleDbName\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n >\r\n {{ subtitle | bbbTranslate }}\r\n </h3>\r\n </fd-card-main-header>\r\n</fd-card-header>\r\n<div></div>\r\n", styles: [":host{display:contents}fd-card-header{cursor:default}fd-card-header .fd-card__title{display:-webkit-box;width:100%}fd-card-header button{cursor:pointer;z-index:4}fd-card-header.hide-border{border-bottom:none!important}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "component", type: i2.UlvContextMenuComponent, selector: "bsu-ulv-context-menu,[ulvContextMenu]", inputs: ["onlyOverflow", "rightClickEnable", "deviceName", "menuItems", "allColumns", "index", "mo", "styleIndex", "conditionalFormats", "disableOverflowContextMenu", "footerMode", "contextMenuOverflowText", "appendTo"], outputs: ["commandClick"] }, { kind: "directive", type: i2.ApplyConditionalFormatsDirective, selector: "[applyConditionalFormats]", inputs: ["applyConditionalFormats", "styleIndex", "hostEl", "dbName"] }, { kind: "component", type: i3.AvatarComponent, selector: "fd-avatar", inputs: ["class", "id", "ariaLabel", "ariaLabelledby", "label", "size", "font", "glyph", "zoomGlyph", "circle", "transparent", "contain", "placeholder", "tile", "border", "colorAccent", "colorIndication", "random", "clickable", "valueState", "image", "alterIcon", "backupImage"], outputs: ["avatarClicked", "zoomGlyphClicked"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.CardHeaderComponent, selector: "fd-card-header", inputs: ["ariaRoleDescription"] }, { kind: "component", type: i5.CardMainHeaderComponent, selector: "fd-card-main-header", inputs: ["interactive", "title"] }, { kind: "directive", type: i5.CardTitleDirective, selector: "[fd-card-title]", inputs: ["id"] }, { kind: "directive", type: i5.CardSubtitleDirective, selector: "[fd-card-subtitle]" }, { kind: "component", type: i6.CheckboxComponent, selector: "fd-checkbox", inputs: ["wrapLabel", "valignLabel", "ariaLabel", "role", "value", "ariaLabelledBy", "ariaDescribedBy", "title", "inputId", "state", "name", "label", "disabled", "readonly", "tristate", "tristateSelectable", "labelClass", "required", "displayOnly", "values", "standalone"], outputs: ["focusChange"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i7.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i7.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
38
38
  }
39
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CardHeaderLogoTitleSubtitleComponent, decorators: [{
40
40
  type: Component,
41
- args: [{ selector: 'bdc-card-header-logo-title-subtitle', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<fd-card-header\r\n [class.hide-border]=\"parameters.HideBorder\"\r\n (click)=\"!isCheckList && events.emit({ title: 'rowCheck' })\"\r\n>\r\n <fd-card-main-header>\r\n @if (hasIcon) {\r\n <fd-avatar\r\n [circle]=\"avatarCircle\"\r\n size=\"s\"\r\n ariaLabel=\"avatar image\"\r\n title=\"avatar image\"\r\n alterIcon=\"content|alt|backup|default-icon\"\r\n [glyph]=\"fontIcon\"\r\n [image]=\"isIconImage ? (imageIcon?.FileId | picFieldSrc: 'GetPictureFromFileInfo':null) : ''\"\r\n ></fd-avatar>\r\n }\r\n <div fd-card-title [style.justify-content]=\"'end'\" style=\"display:flex\">\r\n <div style=\"display: flex; justify-content: start; flex-grow: 1\">\r\n @if (isCheckList) {\r\n <fd-checkbox\r\n [name]=\"mo.$Caption\"\r\n [ngModel]=\"isChecked\"\r\n (ngModelChange)=\"events.emit({ title: 'rowCheck' })\"\r\n ></fd-checkbox>\r\n } @if (setting.ContextMenuInFooter && contextMenuItems && contextMenuItems.length > 0) {\r\n <div\r\n ulvContextMenu\r\n [allColumns]=\"allColumns\"\r\n [menuItems]=\"contextMenuItems\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"events.emit({ title: 'ulvCommand' })\"\r\n ></div>\r\n }\r\n <h2\r\n #hEl \r\n class=\"fd-card__title\"\r\n [hostEl]=\"hEl\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"titleDbName\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n >\r\n {{ title | bbbTranslate }}\r\n </h2>\r\n </div>\r\n @if (canView) {\r\n <button\r\n fd-button\r\n (click)=\"$event.preventDefault(); $event.stopPropagation(); events.emit({ title: 'rowClick' })\"\r\n [glyph]=\"navigationArrow\"\r\n fdType=\"transparent\"\r\n ></button>\r\n }\r\n </div>\r\n\r\n <h3\r\n fd-card-subtitle\r\n #hEl\r\n [hostEl]=\"hEl\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"subtitleDbName\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n >\r\n {{ subtitle | bbbTranslate }}\r\n </h3>\r\n </fd-card-main-header>\r\n</fd-card-header>\r\n<div></div>\r\n", styles: ["fd-card-header{cursor:default}fd-card-header:hover{background:var(--fdCard_Background_Color)}fd-card-header .fd-card__title{display:-webkit-box;width:100%}fd-card-header button{cursor:pointer;z-index:4}fd-card-header.hide-border{border-bottom:none!important}\n"] }]
41
+ args: [{ selector: 'bdc-card-header-logo-title-subtitle', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<fd-card-header\r\n [class.hide-border]=\"parameters.HideBorder\"\r\n (click)=\"!isCheckList && events.emit({ title: 'rowCheck' })\"\r\n>\r\n <fd-card-main-header>\r\n @if (hasIcon) {\r\n <fd-avatar\r\n [circle]=\"avatarCircle\"\r\n size=\"s\"\r\n ariaLabel=\"avatar image\"\r\n title=\"avatar image\"\r\n alterIcon=\"content|alt|backup|default-icon\"\r\n [glyph]=\"fontIcon\"\r\n [image]=\"isIconImage ? (imageIcon?.FileId | picFieldSrc: 'GetPictureFromFileInfo':null) : ''\"\r\n ></fd-avatar>\r\n }\r\n <div fd-card-title [style.justify-content]=\"'end'\" style=\"display:flex\">\r\n <div style=\"display: flex; justify-content: start; flex-grow: 1\">\r\n @if (isCheckList) {\r\n <fd-checkbox\r\n [name]=\"mo.$Caption\"\r\n [ngModel]=\"isChecked\"\r\n (ngModelChange)=\"events.emit({ title: 'rowCheck' })\"\r\n ></fd-checkbox>\r\n } @if (setting.ContextMenuInFooter && contextMenuItems && contextMenuItems.length > 0) {\r\n <div\r\n ulvContextMenu\r\n [allColumns]=\"allColumns\"\r\n [menuItems]=\"contextMenuItems\"\r\n [conditionalFormats]=\"conditionalFormats\"\r\n [styleIndex]=\"styleIndex\"\r\n [disableOverflowContextMenu]=\"disableOverflowContextMenu\"\r\n [mo]=\"mo\"\r\n (commandClick)=\"events.emit({ title: 'ulvCommand' })\"\r\n ></div>\r\n }\r\n <h2\r\n #hEl \r\n class=\"fd-card__title\"\r\n [hostEl]=\"hEl\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"titleDbName\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n >\r\n {{ title | bbbTranslate }}\r\n </h2>\r\n </div>\r\n @if (canView) {\r\n <button\r\n fd-button\r\n (click)=\"$event.preventDefault(); $event.stopPropagation(); events.emit({ title: 'rowClick' })\"\r\n [glyph]=\"navigationArrow\"\r\n fdType=\"transparent\"\r\n ></button>\r\n }\r\n </div>\r\n\r\n <h3\r\n fd-card-subtitle\r\n #hEl\r\n [hostEl]=\"hEl\"\r\n [styleIndex]=\"styleIndex\"\r\n [dbName]=\"subtitleDbName\"\r\n [applyConditionalFormats]=\"conditionalFormats\"\r\n >\r\n {{ subtitle | bbbTranslate }}\r\n </h3>\r\n </fd-card-main-header>\r\n</fd-card-header>\r\n<div></div>\r\n", styles: [":host{display:contents}fd-card-header{cursor:default}fd-card-header .fd-card__title{display:-webkit-box;width:100%}fd-card-header button{cursor:pointer;z-index:4}fd-card-header.hide-border{border-bottom:none!important}\n"] }]
42
42
  }], propDecorators: { events: [{
43
43
  type: Output
44
44
  }] } });
@@ -32,12 +32,12 @@ export class FooterComponent extends BaseComponent {
32
32
  });
33
33
  }
34
34
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FooterComponent, deps: [{ token: i1.PortalService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
35
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FooterComponent, selector: "bdc-footer", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: "@if (footer) {\r\n<div fd-bar barDesign=\"footer\" [size]=\"'m_l'\" [class.rtl]=\"rtl\" class=\"footer\" [class.mobile]=\"deviceSize === 's'\">\r\n <div fd-bar-left class=\"left\">\r\n <a\r\n fd-button\r\n glyph=\"email\"\r\n [fd-inline-help]=\"('\u0627\u06CC\u0645\u06CC\u0644 \u067E\u0634\u062A\u06CC\u0628\u0627\u0646\u06CC' | bbbTranslate) + ': ' + footer.Email\"\r\n [href]=\"'mailto:' + footer.Email\"\r\n fdType=\"transparent\"\r\n >\r\n </a>\r\n <a\r\n fd-button\r\n glyph=\"headset\"\r\n [fd-inline-help]=\"('\u0634\u0645\u0627\u0631\u0647 \u067E\u0634\u062A\u06CC\u0628\u0627\u0646\u06CC' | bbbTranslate) + ': ' + footer.TelNumber\"\r\n [href]=\"'tel:' + footer.TelNumber\"\r\n fdType=\"transparent\"\r\n ></a>\r\n <fd-popover>\r\n <fd-popover-control>\r\n <button\r\n fd-button\r\n glyph=\"vertical-waterfall-chart\"\r\n [title]=\"'\u0622\u0645\u0627\u0631 \u0628\u0627\u0632\u062F\u06CC\u062F' | bbbTranslate\"\r\n aria-haspopup=\"menu\"\r\n fdType=\"transparent\"\r\n [fd-inline-help]=\"'\u0622\u0645\u0627\u0631 \u0628\u0627\u0632\u062F\u06CC\u062F' | bbbTranslate\"\r\n tabindex=\"0\"\r\n ></button>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n <li fd-list-item class=\"all\">\r\n <i fd-list-icon glyph=\"bar-chart\"></i>\r\n <span fd-list-title>\u062A\u0639\u062F\u0627\u062F \u0628\u0627\u0632\u062F\u06CC\u062F\u06A9\u0646\u0646\u062F\u06AF\u0627\u0646 \u06A9\u0644 <strong>120</strong></span>\r\n </li>\r\n <li fd-list-item class=\"today\">\r\n <i fd-list-icon glyph=\"bar-chart\"></i>\r\n <span fd-list-title>\u062A\u0639\u062F\u0627\u062F \u0628\u0627\u0632\u062F\u06CC\u062F\u06A9\u0646\u0646\u062F\u06AF\u0627\u0646 \u0627\u0645\u0631\u0648\u0632 <strong>76</strong></span>\r\n </li>\r\n <li fd-list-item class=\"online\">\r\n <i fd-list-icon glyph=\"bar-chart\"></i>\r\n <span fd-list-title>\u062A\u0639\u062F\u0627\u062F \u06A9\u0627\u0631\u0628\u0631\u0627\u0646 \u0622\u0646\u0644\u0644\u0627\u06CC\u0646 <strong>10</strong></span>\r\n </li>\r\n </ul>\r\n </fd-popover-body>\r\n </fd-popover>\r\n <fd-popover>\r\n <fd-popover-control>\r\n <button\r\n [fd-inline-help]=\"'\u06A9\u0627\u0646\u0627\u0644 \u0627\u0631\u062A\u0628\u0627\u0637\u06CC' | bbbTranslate\"\r\n tabindex=\"0\"\r\n fd-button\r\n glyph=\"paper-plane\"\r\n id=\"fd-action-sheet-default-control\"\r\n aria-haspopup=\"menu\"\r\n fdType=\"transparent\"\r\n ></button>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n @for (socialNetwork of footer.SocialNetworks.MoDataList; track socialNetwork) {\r\n <li fd-list-item>\r\n <a fd-list-link [href]=\"socialNetwork.Url\" style=\"display: flex; column-gap: 5px\">\r\n <i fd-list-icon class=\"sap-icon--1\"\r\n ><img [src]=\"socialNetwork.Image?.FileId | picFieldSrc: 'ID':null:'':16:16\" />\r\n </i>\r\n <span fd-list-title>{{ socialNetwork.Title }}</span>\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n </fd-popover-body>\r\n </fd-popover>\r\n <fd-bar-element>\r\n <a fd-link [href]=\"footer.SiteAddress\" tabindex=\"0\"\r\n ><fd-icon glyph=\"world\"> </fd-icon> <span style=\"padding: 0 5px\">{{ footer.SiteTitle }}</span></a\r\n >\r\n </fd-bar-element>\r\n </div>\r\n @if (deviceSize !== 's') {\r\n <div fd-bar-middle class=\"middle\">\r\n <fd-bar-element> {{ footer.Copyright | bbbTranslate }}</fd-bar-element>\r\n </div>\r\n }\r\n <div fd-bar-right class=\"right\"></div>\r\n</div>\r\n}\r\n", styles: [".fd-bar.mobile{flex-direction:column!important}.fd-bar.mobile .left,.fd-bar.mobile .right,.fd-bar.mobile .middle{justify-content:center!important}.online i{color:#006400}.all i{color:#bebebe}.todat i{color:#000}.left{display:flex;column-gap:3px}\n"], dependencies: [{ kind: "component", type: i2.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i2.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i2.BarMiddleDirective, selector: "[fd-bar-middle]" }, { kind: "directive", type: i2.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i2.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i3.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: i6.InlineHelpDirective, selector: "[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])", inputs: ["triggers", "noArrow", "closeOnEscapeKey", "closeOnOutsideClick", "fd-inline-help"] }, { kind: "component", type: i7.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i7.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id", "preventClick"], outputs: ["keyDown"] }, { kind: "directive", type: i7.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i7.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role", "ariaHidden"] }, { kind: "directive", type: i7.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "component", type: i8.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i8.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i8.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "pipe", type: i1.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
35
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FooterComponent, selector: "bdc-footer", inputs: { settings: "settings" }, usesInheritance: true, ngImport: i0, template: "@if (footer) {\r\n<div fd-bar barDesign=\"footer\" [size]=\"'m_l'\" [class.rtl]=\"rtl\" class=\"footer\" [class.mobile]=\"deviceSize === 's'\">\r\n <div fd-bar-left class=\"left\">\r\n <a\r\n fd-button\r\n glyph=\"email\"\r\n [fd-inline-help]=\"('\u0627\u06CC\u0645\u06CC\u0644 \u067E\u0634\u062A\u06CC\u0628\u0627\u0646\u06CC' | bbbTranslate) + ': ' + footer.Email\"\r\n [href]=\"'mailto:' + footer.Email\"\r\n fdType=\"transparent\"\r\n >\r\n </a>\r\n <a\r\n fd-button\r\n glyph=\"headset\"\r\n [fd-inline-help]=\"('\u0634\u0645\u0627\u0631\u0647 \u067E\u0634\u062A\u06CC\u0628\u0627\u0646\u06CC' | bbbTranslate) + ': ' + footer.TelNumber\"\r\n [href]=\"'tel:' + footer.TelNumber\"\r\n fdType=\"transparent\"\r\n ></a>\r\n <fd-popover>\r\n <fd-popover-control>\r\n <button\r\n fd-button\r\n glyph=\"vertical-waterfall-chart\"\r\n [title]=\"'\u0622\u0645\u0627\u0631 \u0628\u0627\u0632\u062F\u06CC\u062F' | bbbTranslate\"\r\n aria-haspopup=\"menu\"\r\n fdType=\"transparent\"\r\n [fd-inline-help]=\"'\u0622\u0645\u0627\u0631 \u0628\u0627\u0632\u062F\u06CC\u062F' | bbbTranslate\"\r\n tabindex=\"0\"\r\n ></button>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n <li fd-list-item class=\"all\">\r\n <i fd-list-icon glyph=\"bar-chart\"></i>\r\n <span fd-list-title>\u062A\u0639\u062F\u0627\u062F \u0628\u0627\u0632\u062F\u06CC\u062F\u06A9\u0646\u0646\u062F\u06AF\u0627\u0646 \u06A9\u0644 <strong>120</strong></span>\r\n </li>\r\n <li fd-list-item class=\"today\">\r\n <i fd-list-icon glyph=\"bar-chart\"></i>\r\n <span fd-list-title>\u062A\u0639\u062F\u0627\u062F \u0628\u0627\u0632\u062F\u06CC\u062F\u06A9\u0646\u0646\u062F\u06AF\u0627\u0646 \u0627\u0645\u0631\u0648\u0632 <strong>76</strong></span>\r\n </li>\r\n <li fd-list-item class=\"online\">\r\n <i fd-list-icon glyph=\"bar-chart\"></i>\r\n <span fd-list-title>\u062A\u0639\u062F\u0627\u062F \u06A9\u0627\u0631\u0628\u0631\u0627\u0646 \u0622\u0646\u0644\u0644\u0627\u06CC\u0646 <strong>10</strong></span>\r\n </li>\r\n </ul>\r\n </fd-popover-body>\r\n </fd-popover>\r\n <fd-popover>\r\n <fd-popover-control>\r\n <button\r\n [fd-inline-help]=\"'\u06A9\u0627\u0646\u0627\u0644 \u0627\u0631\u062A\u0628\u0627\u0637\u06CC' | bbbTranslate\"\r\n tabindex=\"0\"\r\n fd-button\r\n glyph=\"paper-plane\"\r\n id=\"fd-action-sheet-default-control\"\r\n aria-haspopup=\"menu\"\r\n fdType=\"transparent\"\r\n ></button>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n @for (socialNetwork of footer.SocialNetworks.MoDataList; track socialNetwork) {\r\n <li fd-list-item>\r\n <a fd-list-link [href]=\"socialNetwork.Url\" style=\"display: flex; column-gap: 5px\">\r\n <i fd-list-icon class=\"sap-icon--1\"\r\n ><img [src]=\"socialNetwork.Image?.FileId | picFieldSrc: 'ID':null:'':16:16\" />\r\n </i>\r\n <span fd-list-title>{{ socialNetwork.Title }}</span>\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n </fd-popover-body>\r\n </fd-popover>\r\n <fd-bar-element>\r\n <a fd-link [href]=\"footer.SiteAddress\" tabindex=\"0\" class=\"!tw-flex !tw-items-center\"\r\n ><fd-icon glyph=\"world\"> </fd-icon> <span style=\"padding: 0 5px\">{{ footer.SiteTitle }}</span></a\r\n >\r\n </fd-bar-element>\r\n </div>\r\n @if (deviceSize !== 's') {\r\n <div fd-bar-middle class=\"middle\">\r\n <fd-bar-element> {{ footer.Copyright | bbbTranslate }}</fd-bar-element>\r\n </div>\r\n } @if (deviceSize !== 's' && deviceSize !== 'm') {\r\n <div fd-bar-right class=\"right\"></div>\r\n }\r\n</div>\r\n}\r\n<!-- \r\n@else if(footer?.Mode2){\r\n<div class=\"tw-relative tw-mt-16\">\r\n <svg class=\"tw-absolute tw-top-0 tw-w-full tw-h-6 tw--mt-5 sm:tw--mt-10 sm:tw-h-16 text-deep-purple-accent-400\" preserveAspectRatio=\"none\" viewBox=\"0 0 1440 54\">\r\n <path fill=\"--sapShellColor\" d=\"M0 22L120 16.7C240 11 480 1.00001 720 0.700012C960 1.00001 1200 11 1320 16.7L1440 22V54H1320C1200 54 960 54 720 54C480 54 240 54 120 54H0V22Z\"></path>\r\n </svg>\r\n <div class=\"tw-px-4 tw-pt-12 tw-mx-auto sm:tw-max-w-xl md:tw-max-w-full lg:tw-max-w-screen-xl md:tw-px-24 lg:tw-px-8\">\r\n <div class=\"tw-grid tw-gap-16 tw-row-gap-10 tw-mb-8 lg:tw-grid-cols-6\">\r\n <div class=\"md:tw-max-w-md lg:tw-col-span-2\">\r\n <a href=\"/\" aria-label=\"\u0631\u0641\u062A\u0646 \u0628\u0647 \u062E\u0627\u0646\u0647\" title=\"\u0634\u0631\u06A9\u062A\" class=\"tw-inline-flex tw-items-center\">\r\n <svg class=\"tw-w-8 text-teal-accent-400\" viewBox=\"0 0 24 24\" stroke-linejoin=\"round\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" stroke=\"currentColor\" fill=\"none\">\r\n <rect x=\"3\" y=\"1\" width=\"7\" height=\"12\"></rect>\r\n <rect x=\"3\" y=\"17\" width=\"7\" height=\"6\"></rect>\r\n <rect x=\"14\" y=\"1\" width=\"7\" height=\"6\"></rect>\r\n <rect x=\"14\" y=\"11\" width=\"7\" height=\"12\"></rect>\r\n </svg>\r\n <span class=\"tw-ml-2 tw-text-xl tw-font-bold tw-tracking-wide tw-text-gray-100 tw-uppercase\">\u0634\u0631\u06A9\u062A</span>\r\n </a>\r\n <div class=\"tw-mt-4 lg:tw-max-w-sm\">\r\n <p class=\"tw-text-sm text-deep-purple-50\">\r\n \u0645\u0627 \u0645\u062A\u0639\u0647\u062F \u0628\u0647 \u0627\u0631\u0627\u0626\u0647 \u0628\u0647\u062A\u0631\u06CC\u0646 \u062E\u062F\u0645\u0627\u062A \u0648 \u0645\u062D\u0635\u0648\u0644\u0627\u062A \u0628\u0627 \u0628\u0627\u0644\u0627\u062A\u0631\u06CC\u0646 \u06A9\u06CC\u0641\u06CC\u062A \u0647\u0633\u062A\u06CC\u0645 \u062A\u0627 \u0646\u06CC\u0627\u0632\u0647\u0627\u06CC \u0634\u0645\u0627 \u0631\u0627 \u0628\u0631\u0622\u0648\u0631\u062F\u0647 \u06A9\u0646\u06CC\u0645.\r\n </p>\r\n <p class=\"tw-mt-4 tw-text-sm text-deep-purple-50\">\r\n \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 \u062A\u06CC\u0645\u06CC \u0645\u062A\u062E\u0635\u0635\u060C \u062F\u0631 \u062A\u0644\u0627\u0634\u06CC\u0645 \u062A\u0627 \u0631\u0636\u0627\u06CC\u062A \u0645\u0634\u062A\u0631\u06CC\u0627\u0646 \u0631\u0627 \u062C\u0644\u0628 \u06A9\u0646\u06CC\u0645 \u0648 \u062A\u062C\u0631\u0628\u0647\u200C\u0627\u06CC \u0628\u06CC\u200C\u0646\u0638\u06CC\u0631 \u0641\u0631\u0627\u0647\u0645 \u0633\u0627\u0632\u06CC\u0645.\r\n </p>\r\n </div>\r\n </div>\r\n <div class=\"tw-grid tw-grid-cols-2 tw-gap-5 tw-row-gap-8 lg:tw-col-span-4 md:tw-grid-cols-4\">\r\n <div>\r\n <p class=\"tw-font-semibold tw-tracking-wide text-teal-accent-400\">\u062F\u0633\u062A\u0647\u200C\u0628\u0646\u062F\u06CC</p>\r\n <ul class=\"tw-mt-2 tw-space-y-2\">\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u0627\u062E\u0628\u0627\u0631</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u062C\u0647\u0627\u0646</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u0628\u0627\u0632\u06CC\u200C\u0647\u0627</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u0645\u0631\u0627\u062C\u0639</a></li>\r\n </ul>\r\n </div>\r\n <div>\r\n <p class=\"tw-font-semibold tw-tracking-wide text-teal-accent-400\">\u062F\u06CC\u062C\u06CC\u062A\u0627\u0644</p>\r\n <ul class=\"tw-mt-2 tw-space-y-2\">\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u0648\u0628</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u062A\u062C\u0627\u0631\u062A \u0627\u0644\u06A9\u062A\u0631\u0648\u0646\u06CC\u06A9</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u06A9\u0633\u0628 \u0648 \u06A9\u0627\u0631</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u0633\u0631\u06AF\u0631\u0645\u06CC</a></li>\r\n </ul>\r\n </div>\r\n <div>\r\n <p class=\"tw-font-semibold tw-tracking-wide text-teal-accent-400\">\u062F\u06CC\u062C\u06CC\u062A\u0627\u0644</p>\r\n <ul class=\"tw-mt-2 tw-space-y-2\">\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u0648\u0628</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u062A\u062C\u0627\u0631\u062A \u0627\u0644\u06A9\u062A\u0631\u0648\u0646\u06CC\u06A9</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u06A9\u0633\u0628 \u0648 \u06A9\u0627\u0631</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u0633\u0631\u06AF\u0631\u0645\u06CC</a></li>\r\n </ul>\r\n </div>\r\n <div>\r\n <p class=\"tw-font-semibold tw-tracking-wide text-teal-accent-400\">\u062F\u06CC\u062C\u06CC\u062A\u0627\u0644</p>\r\n <ul class=\"tw-mt-2 tw-space-y-2\">\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u0648\u0628</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u062A\u062C\u0627\u0631\u062A \u0627\u0644\u06A9\u062A\u0631\u0648\u0646\u06CC\u06A9</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u06A9\u0633\u0628 \u0648 \u06A9\u0627\u0631</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u0633\u0631\u06AF\u0631\u0645\u06CC</a></li>\r\n </ul>\r\n </div> \r\n </div>\r\n </div>\r\n <div class=\"tw-flex tw-flex-col tw-justify-between tw-pt-5 tw-pb-10 tw-border-t border-deep-purple-accent-200 sm:tw-flex-row\">\r\n <p class=\"tw-text-sm tw-text-gray-100\">\u00A9 \u062D\u0642 \u0646\u0634\u0631 \u06F2\u06F0\u06F2\u06F5 \u062A\u0645\u0627\u0645\u06CC \u062D\u0642\u0648\u0642 \u0645\u062D\u0641\u0648\u0638 \u0627\u0633\u062A.</p>\r\n </div>\r\n </div>\r\n </div>\r\n} -->", styles: [".fd-bar.mobile{flex-direction:column!important}.fd-bar.mobile .left,.fd-bar.mobile .right,.fd-bar.mobile .middle{justify-content:center!important}.online i{color:#006400}.all i{color:#bebebe}.todat i{color:#000}.left{display:flex;column-gap:3px}li:hover>a{padding-right:10px;color:#0088e1}li{border-bottom:1px dotted #455c72}li a{transition:all .5s ease 0s}\n"], dependencies: [{ kind: "component", type: i2.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i2.BarLeftDirective, selector: "[fd-bar-left]" }, { kind: "directive", type: i2.BarMiddleDirective, selector: "[fd-bar-middle]" }, { kind: "directive", type: i2.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "directive", type: i2.BarElementDirective, selector: "fd-bar-element", inputs: ["fullWidth"] }, { kind: "component", type: i3.LinkComponent, selector: "[fdLink], [fd-link]", inputs: ["class", "emphasized", "disabled", "inverted", "subtle", "undecorated"] }, { kind: "component", type: i4.ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: i5.IconComponent, selector: "fd-icon", inputs: ["glyph", "font", "color", "background", "class", "ariaLabel", "ariaHidden"] }, { kind: "directive", type: i6.InlineHelpDirective, selector: "[fd-inline-help]:not([fd-inline-help-template]), [fd-inline-help-template]:not([fd-inline-help])", inputs: ["triggers", "noArrow", "closeOnEscapeKey", "closeOnOutsideClick", "fd-inline-help"] }, { kind: "component", type: i7.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i7.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id", "preventClick"], outputs: ["keyDown"] }, { kind: "directive", type: i7.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i7.ListIconDirective, selector: "[fdListIcon], [fd-list-icon]", inputs: ["glyph", "glyphFont", "class", "role", "ariaHidden"] }, { kind: "directive", type: i7.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "component", type: i8.PopoverControlComponent, selector: "fd-popover-control, [fdPopoverControl]" }, { kind: "component", type: i8.PopoverBodyComponent, selector: "fd-popover-body", inputs: ["minWidth", "maxWidth", "minHeight", "maxHeight"] }, { kind: "component", type: i8.PopoverComponent, selector: "fd-popover", inputs: ["title", "trigger", "fixedPosition", "id", "mobile", "mobileConfig", "preventSpaceKeyScroll"] }, { kind: "pipe", type: i1.PictureFieldSourcePipe, name: "picFieldSrc" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
36
36
  }
37
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FooterComponent, decorators: [{
38
38
  type: Component,
39
- args: [{ selector: 'bdc-footer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (footer) {\r\n<div fd-bar barDesign=\"footer\" [size]=\"'m_l'\" [class.rtl]=\"rtl\" class=\"footer\" [class.mobile]=\"deviceSize === 's'\">\r\n <div fd-bar-left class=\"left\">\r\n <a\r\n fd-button\r\n glyph=\"email\"\r\n [fd-inline-help]=\"('\u0627\u06CC\u0645\u06CC\u0644 \u067E\u0634\u062A\u06CC\u0628\u0627\u0646\u06CC' | bbbTranslate) + ': ' + footer.Email\"\r\n [href]=\"'mailto:' + footer.Email\"\r\n fdType=\"transparent\"\r\n >\r\n </a>\r\n <a\r\n fd-button\r\n glyph=\"headset\"\r\n [fd-inline-help]=\"('\u0634\u0645\u0627\u0631\u0647 \u067E\u0634\u062A\u06CC\u0628\u0627\u0646\u06CC' | bbbTranslate) + ': ' + footer.TelNumber\"\r\n [href]=\"'tel:' + footer.TelNumber\"\r\n fdType=\"transparent\"\r\n ></a>\r\n <fd-popover>\r\n <fd-popover-control>\r\n <button\r\n fd-button\r\n glyph=\"vertical-waterfall-chart\"\r\n [title]=\"'\u0622\u0645\u0627\u0631 \u0628\u0627\u0632\u062F\u06CC\u062F' | bbbTranslate\"\r\n aria-haspopup=\"menu\"\r\n fdType=\"transparent\"\r\n [fd-inline-help]=\"'\u0622\u0645\u0627\u0631 \u0628\u0627\u0632\u062F\u06CC\u062F' | bbbTranslate\"\r\n tabindex=\"0\"\r\n ></button>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n <li fd-list-item class=\"all\">\r\n <i fd-list-icon glyph=\"bar-chart\"></i>\r\n <span fd-list-title>\u062A\u0639\u062F\u0627\u062F \u0628\u0627\u0632\u062F\u06CC\u062F\u06A9\u0646\u0646\u062F\u06AF\u0627\u0646 \u06A9\u0644 <strong>120</strong></span>\r\n </li>\r\n <li fd-list-item class=\"today\">\r\n <i fd-list-icon glyph=\"bar-chart\"></i>\r\n <span fd-list-title>\u062A\u0639\u062F\u0627\u062F \u0628\u0627\u0632\u062F\u06CC\u062F\u06A9\u0646\u0646\u062F\u06AF\u0627\u0646 \u0627\u0645\u0631\u0648\u0632 <strong>76</strong></span>\r\n </li>\r\n <li fd-list-item class=\"online\">\r\n <i fd-list-icon glyph=\"bar-chart\"></i>\r\n <span fd-list-title>\u062A\u0639\u062F\u0627\u062F \u06A9\u0627\u0631\u0628\u0631\u0627\u0646 \u0622\u0646\u0644\u0644\u0627\u06CC\u0646 <strong>10</strong></span>\r\n </li>\r\n </ul>\r\n </fd-popover-body>\r\n </fd-popover>\r\n <fd-popover>\r\n <fd-popover-control>\r\n <button\r\n [fd-inline-help]=\"'\u06A9\u0627\u0646\u0627\u0644 \u0627\u0631\u062A\u0628\u0627\u0637\u06CC' | bbbTranslate\"\r\n tabindex=\"0\"\r\n fd-button\r\n glyph=\"paper-plane\"\r\n id=\"fd-action-sheet-default-control\"\r\n aria-haspopup=\"menu\"\r\n fdType=\"transparent\"\r\n ></button>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n @for (socialNetwork of footer.SocialNetworks.MoDataList; track socialNetwork) {\r\n <li fd-list-item>\r\n <a fd-list-link [href]=\"socialNetwork.Url\" style=\"display: flex; column-gap: 5px\">\r\n <i fd-list-icon class=\"sap-icon--1\"\r\n ><img [src]=\"socialNetwork.Image?.FileId | picFieldSrc: 'ID':null:'':16:16\" />\r\n </i>\r\n <span fd-list-title>{{ socialNetwork.Title }}</span>\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n </fd-popover-body>\r\n </fd-popover>\r\n <fd-bar-element>\r\n <a fd-link [href]=\"footer.SiteAddress\" tabindex=\"0\"\r\n ><fd-icon glyph=\"world\"> </fd-icon> <span style=\"padding: 0 5px\">{{ footer.SiteTitle }}</span></a\r\n >\r\n </fd-bar-element>\r\n </div>\r\n @if (deviceSize !== 's') {\r\n <div fd-bar-middle class=\"middle\">\r\n <fd-bar-element> {{ footer.Copyright | bbbTranslate }}</fd-bar-element>\r\n </div>\r\n }\r\n <div fd-bar-right class=\"right\"></div>\r\n</div>\r\n}\r\n", styles: [".fd-bar.mobile{flex-direction:column!important}.fd-bar.mobile .left,.fd-bar.mobile .right,.fd-bar.mobile .middle{justify-content:center!important}.online i{color:#006400}.all i{color:#bebebe}.todat i{color:#000}.left{display:flex;column-gap:3px}\n"] }]
39
+ args: [{ selector: 'bdc-footer', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (footer) {\r\n<div fd-bar barDesign=\"footer\" [size]=\"'m_l'\" [class.rtl]=\"rtl\" class=\"footer\" [class.mobile]=\"deviceSize === 's'\">\r\n <div fd-bar-left class=\"left\">\r\n <a\r\n fd-button\r\n glyph=\"email\"\r\n [fd-inline-help]=\"('\u0627\u06CC\u0645\u06CC\u0644 \u067E\u0634\u062A\u06CC\u0628\u0627\u0646\u06CC' | bbbTranslate) + ': ' + footer.Email\"\r\n [href]=\"'mailto:' + footer.Email\"\r\n fdType=\"transparent\"\r\n >\r\n </a>\r\n <a\r\n fd-button\r\n glyph=\"headset\"\r\n [fd-inline-help]=\"('\u0634\u0645\u0627\u0631\u0647 \u067E\u0634\u062A\u06CC\u0628\u0627\u0646\u06CC' | bbbTranslate) + ': ' + footer.TelNumber\"\r\n [href]=\"'tel:' + footer.TelNumber\"\r\n fdType=\"transparent\"\r\n ></a>\r\n <fd-popover>\r\n <fd-popover-control>\r\n <button\r\n fd-button\r\n glyph=\"vertical-waterfall-chart\"\r\n [title]=\"'\u0622\u0645\u0627\u0631 \u0628\u0627\u0632\u062F\u06CC\u062F' | bbbTranslate\"\r\n aria-haspopup=\"menu\"\r\n fdType=\"transparent\"\r\n [fd-inline-help]=\"'\u0622\u0645\u0627\u0631 \u0628\u0627\u0632\u062F\u06CC\u062F' | bbbTranslate\"\r\n tabindex=\"0\"\r\n ></button>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n <li fd-list-item class=\"all\">\r\n <i fd-list-icon glyph=\"bar-chart\"></i>\r\n <span fd-list-title>\u062A\u0639\u062F\u0627\u062F \u0628\u0627\u0632\u062F\u06CC\u062F\u06A9\u0646\u0646\u062F\u06AF\u0627\u0646 \u06A9\u0644 <strong>120</strong></span>\r\n </li>\r\n <li fd-list-item class=\"today\">\r\n <i fd-list-icon glyph=\"bar-chart\"></i>\r\n <span fd-list-title>\u062A\u0639\u062F\u0627\u062F \u0628\u0627\u0632\u062F\u06CC\u062F\u06A9\u0646\u0646\u062F\u06AF\u0627\u0646 \u0627\u0645\u0631\u0648\u0632 <strong>76</strong></span>\r\n </li>\r\n <li fd-list-item class=\"online\">\r\n <i fd-list-icon glyph=\"bar-chart\"></i>\r\n <span fd-list-title>\u062A\u0639\u062F\u0627\u062F \u06A9\u0627\u0631\u0628\u0631\u0627\u0646 \u0622\u0646\u0644\u0644\u0627\u06CC\u0646 <strong>10</strong></span>\r\n </li>\r\n </ul>\r\n </fd-popover-body>\r\n </fd-popover>\r\n <fd-popover>\r\n <fd-popover-control>\r\n <button\r\n [fd-inline-help]=\"'\u06A9\u0627\u0646\u0627\u0644 \u0627\u0631\u062A\u0628\u0627\u0637\u06CC' | bbbTranslate\"\r\n tabindex=\"0\"\r\n fd-button\r\n glyph=\"paper-plane\"\r\n id=\"fd-action-sheet-default-control\"\r\n aria-haspopup=\"menu\"\r\n fdType=\"transparent\"\r\n ></button>\r\n </fd-popover-control>\r\n <fd-popover-body>\r\n <ul fd-list>\r\n @for (socialNetwork of footer.SocialNetworks.MoDataList; track socialNetwork) {\r\n <li fd-list-item>\r\n <a fd-list-link [href]=\"socialNetwork.Url\" style=\"display: flex; column-gap: 5px\">\r\n <i fd-list-icon class=\"sap-icon--1\"\r\n ><img [src]=\"socialNetwork.Image?.FileId | picFieldSrc: 'ID':null:'':16:16\" />\r\n </i>\r\n <span fd-list-title>{{ socialNetwork.Title }}</span>\r\n </a>\r\n </li>\r\n }\r\n </ul>\r\n </fd-popover-body>\r\n </fd-popover>\r\n <fd-bar-element>\r\n <a fd-link [href]=\"footer.SiteAddress\" tabindex=\"0\" class=\"!tw-flex !tw-items-center\"\r\n ><fd-icon glyph=\"world\"> </fd-icon> <span style=\"padding: 0 5px\">{{ footer.SiteTitle }}</span></a\r\n >\r\n </fd-bar-element>\r\n </div>\r\n @if (deviceSize !== 's') {\r\n <div fd-bar-middle class=\"middle\">\r\n <fd-bar-element> {{ footer.Copyright | bbbTranslate }}</fd-bar-element>\r\n </div>\r\n } @if (deviceSize !== 's' && deviceSize !== 'm') {\r\n <div fd-bar-right class=\"right\"></div>\r\n }\r\n</div>\r\n}\r\n<!-- \r\n@else if(footer?.Mode2){\r\n<div class=\"tw-relative tw-mt-16\">\r\n <svg class=\"tw-absolute tw-top-0 tw-w-full tw-h-6 tw--mt-5 sm:tw--mt-10 sm:tw-h-16 text-deep-purple-accent-400\" preserveAspectRatio=\"none\" viewBox=\"0 0 1440 54\">\r\n <path fill=\"--sapShellColor\" d=\"M0 22L120 16.7C240 11 480 1.00001 720 0.700012C960 1.00001 1200 11 1320 16.7L1440 22V54H1320C1200 54 960 54 720 54C480 54 240 54 120 54H0V22Z\"></path>\r\n </svg>\r\n <div class=\"tw-px-4 tw-pt-12 tw-mx-auto sm:tw-max-w-xl md:tw-max-w-full lg:tw-max-w-screen-xl md:tw-px-24 lg:tw-px-8\">\r\n <div class=\"tw-grid tw-gap-16 tw-row-gap-10 tw-mb-8 lg:tw-grid-cols-6\">\r\n <div class=\"md:tw-max-w-md lg:tw-col-span-2\">\r\n <a href=\"/\" aria-label=\"\u0631\u0641\u062A\u0646 \u0628\u0647 \u062E\u0627\u0646\u0647\" title=\"\u0634\u0631\u06A9\u062A\" class=\"tw-inline-flex tw-items-center\">\r\n <svg class=\"tw-w-8 text-teal-accent-400\" viewBox=\"0 0 24 24\" stroke-linejoin=\"round\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-miterlimit=\"10\" stroke=\"currentColor\" fill=\"none\">\r\n <rect x=\"3\" y=\"1\" width=\"7\" height=\"12\"></rect>\r\n <rect x=\"3\" y=\"17\" width=\"7\" height=\"6\"></rect>\r\n <rect x=\"14\" y=\"1\" width=\"7\" height=\"6\"></rect>\r\n <rect x=\"14\" y=\"11\" width=\"7\" height=\"12\"></rect>\r\n </svg>\r\n <span class=\"tw-ml-2 tw-text-xl tw-font-bold tw-tracking-wide tw-text-gray-100 tw-uppercase\">\u0634\u0631\u06A9\u062A</span>\r\n </a>\r\n <div class=\"tw-mt-4 lg:tw-max-w-sm\">\r\n <p class=\"tw-text-sm text-deep-purple-50\">\r\n \u0645\u0627 \u0645\u062A\u0639\u0647\u062F \u0628\u0647 \u0627\u0631\u0627\u0626\u0647 \u0628\u0647\u062A\u0631\u06CC\u0646 \u062E\u062F\u0645\u0627\u062A \u0648 \u0645\u062D\u0635\u0648\u0644\u0627\u062A \u0628\u0627 \u0628\u0627\u0644\u0627\u062A\u0631\u06CC\u0646 \u06A9\u06CC\u0641\u06CC\u062A \u0647\u0633\u062A\u06CC\u0645 \u062A\u0627 \u0646\u06CC\u0627\u0632\u0647\u0627\u06CC \u0634\u0645\u0627 \u0631\u0627 \u0628\u0631\u0622\u0648\u0631\u062F\u0647 \u06A9\u0646\u06CC\u0645.\r\n </p>\r\n <p class=\"tw-mt-4 tw-text-sm text-deep-purple-50\">\r\n \u0647\u0645\u0631\u0627\u0647 \u0628\u0627 \u062A\u06CC\u0645\u06CC \u0645\u062A\u062E\u0635\u0635\u060C \u062F\u0631 \u062A\u0644\u0627\u0634\u06CC\u0645 \u062A\u0627 \u0631\u0636\u0627\u06CC\u062A \u0645\u0634\u062A\u0631\u06CC\u0627\u0646 \u0631\u0627 \u062C\u0644\u0628 \u06A9\u0646\u06CC\u0645 \u0648 \u062A\u062C\u0631\u0628\u0647\u200C\u0627\u06CC \u0628\u06CC\u200C\u0646\u0638\u06CC\u0631 \u0641\u0631\u0627\u0647\u0645 \u0633\u0627\u0632\u06CC\u0645.\r\n </p>\r\n </div>\r\n </div>\r\n <div class=\"tw-grid tw-grid-cols-2 tw-gap-5 tw-row-gap-8 lg:tw-col-span-4 md:tw-grid-cols-4\">\r\n <div>\r\n <p class=\"tw-font-semibold tw-tracking-wide text-teal-accent-400\">\u062F\u0633\u062A\u0647\u200C\u0628\u0646\u062F\u06CC</p>\r\n <ul class=\"tw-mt-2 tw-space-y-2\">\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u0627\u062E\u0628\u0627\u0631</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u062C\u0647\u0627\u0646</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u0628\u0627\u0632\u06CC\u200C\u0647\u0627</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u0645\u0631\u0627\u062C\u0639</a></li>\r\n </ul>\r\n </div>\r\n <div>\r\n <p class=\"tw-font-semibold tw-tracking-wide text-teal-accent-400\">\u062F\u06CC\u062C\u06CC\u062A\u0627\u0644</p>\r\n <ul class=\"tw-mt-2 tw-space-y-2\">\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u0648\u0628</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u062A\u062C\u0627\u0631\u062A \u0627\u0644\u06A9\u062A\u0631\u0648\u0646\u06CC\u06A9</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u06A9\u0633\u0628 \u0648 \u06A9\u0627\u0631</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u0633\u0631\u06AF\u0631\u0645\u06CC</a></li>\r\n </ul>\r\n </div>\r\n <div>\r\n <p class=\"tw-font-semibold tw-tracking-wide text-teal-accent-400\">\u062F\u06CC\u062C\u06CC\u062A\u0627\u0644</p>\r\n <ul class=\"tw-mt-2 tw-space-y-2\">\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u0648\u0628</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u062A\u062C\u0627\u0631\u062A \u0627\u0644\u06A9\u062A\u0631\u0648\u0646\u06CC\u06A9</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u06A9\u0633\u0628 \u0648 \u06A9\u0627\u0631</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u0633\u0631\u06AF\u0631\u0645\u06CC</a></li>\r\n </ul>\r\n </div>\r\n <div>\r\n <p class=\"tw-font-semibold tw-tracking-wide text-teal-accent-400\">\u062F\u06CC\u062C\u06CC\u062A\u0627\u0644</p>\r\n <ul class=\"tw-mt-2 tw-space-y-2\">\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u0648\u0628</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u062A\u062C\u0627\u0631\u062A \u0627\u0644\u06A9\u062A\u0631\u0648\u0646\u06CC\u06A9</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u06A9\u0633\u0628 \u0648 \u06A9\u0627\u0631</a></li>\r\n <li><a href=\"/\" class=\"tw-transition-colors tw-duration-300 text-deep-purple-50 hover:text-teal-accent-400\">\u0633\u0631\u06AF\u0631\u0645\u06CC</a></li>\r\n </ul>\r\n </div> \r\n </div>\r\n </div>\r\n <div class=\"tw-flex tw-flex-col tw-justify-between tw-pt-5 tw-pb-10 tw-border-t border-deep-purple-accent-200 sm:tw-flex-row\">\r\n <p class=\"tw-text-sm tw-text-gray-100\">\u00A9 \u062D\u0642 \u0646\u0634\u0631 \u06F2\u06F0\u06F2\u06F5 \u062A\u0645\u0627\u0645\u06CC \u062D\u0642\u0648\u0642 \u0645\u062D\u0641\u0648\u0638 \u0627\u0633\u062A.</p>\r\n </div>\r\n </div>\r\n </div>\r\n} -->", styles: [".fd-bar.mobile{flex-direction:column!important}.fd-bar.mobile .left,.fd-bar.mobile .right,.fd-bar.mobile .middle{justify-content:center!important}.online i{color:#006400}.all i{color:#bebebe}.todat i{color:#000}.left{display:flex;column-gap:3px}li:hover>a{padding-right:10px;color:#0088e1}li{border-bottom:1px dotted #455c72}li a{transition:all .5s ease 0s}\n"] }]
40
40
  }], ctorParameters: () => [{ type: i1.PortalService }, { type: i0.ChangeDetectorRef }], propDecorators: { settings: [{
41
41
  type: Input
42
42
  }] } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLGFBQWEsRUFBNkQsTUFBTSxzQkFBc0IsQ0FBQztBQUNoSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFTaEQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsYUFBYTtJQUs5QyxZQUFvQixjQUE2QixFQUFVLElBQXVCO1FBQzlFLEtBQUssRUFBRSxDQUFDO1FBRFEsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUc5RSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRTtZQUNqRyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDcEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2IsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNoRixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQXhCUSxlQUFlO21HQUFmLGVBQWUsMkdDWDVCLHcrSUF3RkE7OzRGRDdFYSxlQUFlO2tCQVAzQixTQUFTOytCQUNJLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLO2tIQUdSLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBQb3J0YWxTZXJ2aWNlLCBNZXRhb2JqZWN0RGF0YU1vZGVsLCBBYmJyZXZhdGlvbkRldmljZVNpemUgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JkYy1mb290ZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvb3Rlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9mb290ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvb3RlckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KCkgc2V0dGluZ3M6IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICBydGw6IGJvb2xlYW47XHJcbiAgICBmb290ZXI6IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICBkZXZpY2VTaXplOiBBYmJyZXZhdGlvbkRldmljZVNpemU7XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLCBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuXHJcbiAgICAgICAgX3BvcnRhbFNlcnZpY2UucnRsJC5waXBlKHdpdGhMYXRlc3RGcm9tKF9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUkKSkuc3Vic2NyaWJlKChbcnRsLCBkZXZpY2VTaXplXSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJ0bCA9IHJ0bDtcclxuICAgICAgICAgICAgdGhpcy5kZXZpY2VTaXplID0gZGV2aWNlU2l6ZTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgICAgIGNvbnN0IHsgUmVsYXRlZE1vIH0gPSB0aGlzLnNldHRpbmdzO1xyXG4gICAgICAgIGlmICghUmVsYXRlZE1vKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS5sb2FkTW8oUmVsYXRlZE1vLklkLCBSZWxhdGVkTW8uJFR5cGVEZWZJZCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5mb290ZXIgPSByZXN1bHQ/LkRhdGE/Lk1vO1xyXG4gICAgICAgICAgICB0aGlzLl9jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIkBpZiAoZm9vdGVyKSB7XHJcbjxkaXYgZmQtYmFyIGJhckRlc2lnbj1cImZvb3RlclwiIFtzaXplXT1cIidtX2wnXCIgW2NsYXNzLnJ0bF09XCJydGxcIiBjbGFzcz1cImZvb3RlclwiIFtjbGFzcy5tb2JpbGVdPVwiZGV2aWNlU2l6ZSA9PT0gJ3MnXCI+XHJcbiAgICA8ZGl2IGZkLWJhci1sZWZ0IGNsYXNzPVwibGVmdFwiPlxyXG4gICAgICAgIDxhXHJcbiAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICBnbHlwaD1cImVtYWlsXCJcclxuICAgICAgICAgICAgW2ZkLWlubGluZS1oZWxwXT1cIign2KfbjNmF24zZhCDZvti02KrbjNio2KfZhtuMJyB8IGJiYlRyYW5zbGF0ZSkgKyAnOiAnICsgZm9vdGVyLkVtYWlsXCJcclxuICAgICAgICAgICAgW2hyZWZdPVwiJ21haWx0bzonICsgZm9vdGVyLkVtYWlsXCJcclxuICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8L2E+XHJcbiAgICAgICAgPGFcclxuICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgIGdseXBoPVwiaGVhZHNldFwiXHJcbiAgICAgICAgICAgIFtmZC1pbmxpbmUtaGVscF09XCIoJ9i02YXYp9ix2Ycg2b7YtNiq24zYqNin2YbbjCcgfCBiYmJUcmFuc2xhdGUpICsgJzogJyArIGZvb3Rlci5UZWxOdW1iZXJcIlxyXG4gICAgICAgICAgICBbaHJlZl09XCIndGVsOicgKyBmb290ZXIuVGVsTnVtYmVyXCJcclxuICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgID48L2E+XHJcbiAgICAgICAgPGZkLXBvcG92ZXI+XHJcbiAgICAgICAgICAgIDxmZC1wb3BvdmVyLWNvbnRyb2w+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJ2ZXJ0aWNhbC13YXRlcmZhbGwtY2hhcnRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCIn2KLZhdin2LEg2KjYp9iy2K/bjNivJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cIm1lbnVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgICAgICAgICBbZmQtaW5saW5lLWhlbHBdPVwiJ9ii2YXYp9ixINio2KfYstiv24zYrycgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgICAgICAgICAgICAgPHVsIGZkLWxpc3Q+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbSBjbGFzcz1cImFsbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBmZC1saXN0LWljb24gZ2x5cGg9XCJiYXItY2hhcnRcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+2KrYudiv2KfYryDYqNin2LLYr9uM2K/aqdmG2YbYr9qv2KfZhiDaqdmEIDxzdHJvbmc+MTIwPC9zdHJvbmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbSBjbGFzcz1cInRvZGF5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGZkLWxpc3QtaWNvbiBnbHlwaD1cImJhci1jaGFydFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT7Yqti52K/Yp9ivINio2KfYstiv24zYr9qp2YbZhtiv2q/Yp9mGINin2YXYsdmI2LIgPHN0cm9uZz43Njwvc3Ryb25nPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0gY2xhc3M9XCJvbmxpbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgZmQtbGlzdC1pY29uIGdseXBoPVwiYmFyLWNoYXJ0XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPtiq2LnYr9in2K8g2qnYp9ix2KjYsdin2YYg2KLZhtmE2YTYp9uM2YYgPHN0cm9uZz4xMDwvc3Ryb25nPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWJvZHk+XHJcbiAgICAgICAgPC9mZC1wb3BvdmVyPlxyXG4gICAgICAgIDxmZC1wb3BvdmVyPlxyXG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIFtmZC1pbmxpbmUtaGVscF09XCIn2qnYp9mG2KfZhCDYp9ix2KrYqNin2LfbjCcgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgZ2x5cGg9XCJwYXBlci1wbGFuZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJmZC1hY3Rpb24tc2hlZXQtZGVmYXVsdC1jb250cm9sXCJcclxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwibWVudVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZmRUeXBlPVwidHJhbnNwYXJlbnRcIlxyXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cclxuICAgICAgICAgICAgICAgIDx1bCBmZC1saXN0PlxyXG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKHNvY2lhbE5ldHdvcmsgb2YgZm9vdGVyLlNvY2lhbE5ldHdvcmtzLk1vRGF0YUxpc3Q7IHRyYWNrIHNvY2lhbE5ldHdvcmspIHtcclxuICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBmZC1saXN0LWxpbmsgW2hyZWZdPVwic29jaWFsTmV0d29yay5VcmxcIiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGNvbHVtbi1nYXA6IDVweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgZmQtbGlzdC1pY29uIGNsYXNzPVwic2FwLWljb24tLTFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48aW1nIFtzcmNdPVwic29jaWFsTmV0d29yay5JbWFnZT8uRmlsZUlkIHwgcGljRmllbGRTcmM6ICdJRCc6bnVsbDonJzoxNjoxNlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPnt7IHNvY2lhbE5ldHdvcmsuVGl0bGUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgICAgIDwvZmQtcG9wb3Zlcj5cclxuICAgICAgICA8ZmQtYmFyLWVsZW1lbnQ+XHJcbiAgICAgICAgICAgIDxhIGZkLWxpbmsgW2hyZWZdPVwiZm9vdGVyLlNpdGVBZGRyZXNzXCIgdGFiaW5kZXg9XCIwXCJcclxuICAgICAgICAgICAgICAgID48ZmQtaWNvbiBnbHlwaD1cIndvcmxkXCI+IDwvZmQtaWNvbj4gPHNwYW4gc3R5bGU9XCJwYWRkaW5nOiAwIDVweFwiPnt7IGZvb3Rlci5TaXRlVGl0bGUgfX08L3NwYW4+PC9hXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICA8L2ZkLWJhci1lbGVtZW50PlxyXG4gICAgPC9kaXY+XHJcbiAgICBAaWYgKGRldmljZVNpemUgIT09ICdzJykge1xyXG4gICAgPGRpdiBmZC1iYXItbWlkZGxlIGNsYXNzPVwibWlkZGxlXCI+XHJcbiAgICAgICAgPGZkLWJhci1lbGVtZW50PiB7eyBmb290ZXIuQ29weXJpZ2h0IHwgYmJiVHJhbnNsYXRlIH19PC9mZC1iYXItZWxlbWVudD5cclxuICAgIDwvZGl2PlxyXG4gICAgfVxyXG4gICAgPGRpdiBmZC1iYXItcmlnaHQgY2xhc3M9XCJyaWdodFwiPjwvZGl2PlxyXG48L2Rpdj5cclxufVxyXG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JhcnNhLWRldmVsb3AtY29tcG9uZW50cy9zcmMvbGliL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLGFBQWEsRUFBNkQsTUFBTSxzQkFBc0IsQ0FBQztBQUNoSCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7QUFTaEQsTUFBTSxPQUFPLGVBQWdCLFNBQVEsYUFBYTtJQU05QyxZQUFvQixjQUE2QixFQUFVLElBQXVCO1FBQzlFLEtBQUssRUFBRSxDQUFDO1FBRFEsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFtQjtRQUc5RSxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLEVBQUUsRUFBRTtZQUNqRyxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztZQUNmLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFFBQVE7UUFDSixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDcEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2IsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNoRixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQXpCUSxlQUFlO21HQUFmLGVBQWUsMkdDWDVCLHFxWEFnS0s7OzRGRHJKUSxlQUFlO2tCQVAzQixTQUFTOytCQUNJLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxLQUFLO2tIQUdSLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50LCBQb3J0YWxTZXJ2aWNlLCBNZXRhb2JqZWN0RGF0YU1vZGVsLCBBYmJyZXZhdGlvbkRldmljZVNpemUgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7IHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JkYy1mb290ZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvb3Rlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9mb290ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvb3RlckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgQElucHV0KCkgc2V0dGluZ3M6IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICBydGw6IGJvb2xlYW47XHJcbiAgICBmb290ZXI6IE1ldGFvYmplY3REYXRhTW9kZWw7XHJcbiAgICBkZXZpY2VTaXplOiBBYmJyZXZhdGlvbkRldmljZVNpemU7XHJcbiAgIFxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZSwgcHJpdmF0ZSBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcblxyXG4gICAgICAgIF9wb3J0YWxTZXJ2aWNlLnJ0bCQucGlwZSh3aXRoTGF0ZXN0RnJvbShfcG9ydGFsU2VydmljZS5kZXZpY2VTaXplJCkpLnN1YnNjcmliZSgoW3J0bCwgZGV2aWNlU2l6ZV0pID0+IHtcclxuICAgICAgICAgICAgdGhpcy5ydGwgPSBydGw7XHJcbiAgICAgICAgICAgIHRoaXMuZGV2aWNlU2l6ZSA9IGRldmljZVNpemU7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICBjb25zdCB7IFJlbGF0ZWRNbyB9ID0gdGhpcy5zZXR0aW5ncztcclxuICAgICAgICBpZiAoIVJlbGF0ZWRNbykge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX3BvcnRhbFNlcnZpY2UubG9hZE1vKFJlbGF0ZWRNby5JZCwgUmVsYXRlZE1vLiRUeXBlRGVmSWQpLnN1YnNjcmliZSgocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZm9vdGVyID0gcmVzdWx0Py5EYXRhPy5NbztcclxuICAgICAgICAgICAgdGhpcy5fY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iLCJAaWYgKGZvb3Rlcikge1xyXG48ZGl2IGZkLWJhciBiYXJEZXNpZ249XCJmb290ZXJcIiBbc2l6ZV09XCInbV9sJ1wiIFtjbGFzcy5ydGxdPVwicnRsXCIgY2xhc3M9XCJmb290ZXJcIiBbY2xhc3MubW9iaWxlXT1cImRldmljZVNpemUgPT09ICdzJ1wiPlxyXG4gICAgPGRpdiBmZC1iYXItbGVmdCBjbGFzcz1cImxlZnRcIj5cclxuICAgICAgICA8YVxyXG4gICAgICAgICAgICBmZC1idXR0b25cclxuICAgICAgICAgICAgZ2x5cGg9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgIFtmZC1pbmxpbmUtaGVscF09XCIoJ9in24zZhduM2YQg2b7YtNiq24zYqNin2YbbjCcgfCBiYmJUcmFuc2xhdGUpICsgJzogJyArIGZvb3Rlci5FbWFpbFwiXHJcbiAgICAgICAgICAgIFtocmVmXT1cIidtYWlsdG86JyArIGZvb3Rlci5FbWFpbFwiXHJcbiAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICAgIDxhXHJcbiAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICBnbHlwaD1cImhlYWRzZXRcIlxyXG4gICAgICAgICAgICBbZmQtaW5saW5lLWhlbHBdPVwiKCfYtNmF2KfYsdmHINm+2LTYqtuM2KjYp9mG24wnIHwgYmJiVHJhbnNsYXRlKSArICc6ICcgKyBmb290ZXIuVGVsTnVtYmVyXCJcclxuICAgICAgICAgICAgW2hyZWZdPVwiJ3RlbDonICsgZm9vdGVyLlRlbE51bWJlclwiXHJcbiAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICA+PC9hPlxyXG4gICAgICAgIDxmZC1wb3BvdmVyPlxyXG4gICAgICAgICAgICA8ZmQtcG9wb3Zlci1jb250cm9sPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGdseXBoPVwidmVydGljYWwtd2F0ZXJmYWxsLWNoYXJ0XCJcclxuICAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ9ii2YXYp9ixINio2KfYstiv24zYrycgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJtZW51XCJcclxuICAgICAgICAgICAgICAgICAgICBmZFR5cGU9XCJ0cmFuc3BhcmVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2ZkLWlubGluZS1oZWxwXT1cIifYotmF2KfYsSDYqNin2LLYr9uM2K8nIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICAgICAgPGZkLXBvcG92ZXItYm9keT5cclxuICAgICAgICAgICAgICAgIDx1bCBmZC1saXN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0gY2xhc3M9XCJhbGxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgZmQtbGlzdC1pY29uIGdseXBoPVwiYmFyLWNoYXJ0XCI+PC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBmZC1saXN0LXRpdGxlPtiq2LnYr9in2K8g2KjYp9iy2K/bjNiv2qnZhtmG2K/ar9in2YYg2qnZhCA8c3Ryb25nPjEyMDwvc3Ryb25nPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaSBmZC1saXN0LWl0ZW0gY2xhc3M9XCJ0b2RheVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBmZC1saXN0LWljb24gZ2x5cGg9XCJiYXItY2hhcnRcIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGZkLWxpc3QtdGl0bGU+2KrYudiv2KfYryDYqNin2LLYr9uM2K/aqdmG2YbYr9qv2KfZhiDYp9mF2LHZiNiyIDxzdHJvbmc+NzY8L3N0cm9uZz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICA8bGkgZmQtbGlzdC1pdGVtIGNsYXNzPVwib25saW5lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpIGZkLWxpc3QtaWNvbiBnbHlwaD1cImJhci1jaGFydFwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT7Yqti52K/Yp9ivINqp2KfYsdio2LHYp9mGINii2YbZhNmE2KfbjNmGIDxzdHJvbmc+MTA8L3N0cm9uZz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxyXG4gICAgICAgIDwvZmQtcG9wb3Zlcj5cclxuICAgICAgICA8ZmQtcG9wb3Zlcj5cclxuICAgICAgICAgICAgPGZkLXBvcG92ZXItY29udHJvbD5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICBbZmQtaW5saW5lLWhlbHBdPVwiJ9qp2KfZhtin2YQg2KfYsdiq2KjYp9i324wnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgIGdseXBoPVwicGFwZXItcGxhbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiZmQtYWN0aW9uLXNoZWV0LWRlZmF1bHQtY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cIm1lbnVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGZkVHlwZT1cInRyYW5zcGFyZW50XCJcclxuICAgICAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9mZC1wb3BvdmVyLWNvbnRyb2w+XHJcbiAgICAgICAgICAgIDxmZC1wb3BvdmVyLWJvZHk+XHJcbiAgICAgICAgICAgICAgICA8dWwgZmQtbGlzdD5cclxuICAgICAgICAgICAgICAgICAgICBAZm9yIChzb2NpYWxOZXR3b3JrIG9mIGZvb3Rlci5Tb2NpYWxOZXR3b3Jrcy5Nb0RhdGFMaXN0OyB0cmFjayBzb2NpYWxOZXR3b3JrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpIGZkLWxpc3QtaXRlbT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgZmQtbGlzdC1saW5rIFtocmVmXT1cInNvY2lhbE5ldHdvcmsuVXJsXCIgc3R5bGU9XCJkaXNwbGF5OiBmbGV4OyBjb2x1bW4tZ2FwOiA1cHhcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGZkLWxpc3QtaWNvbiBjbGFzcz1cInNhcC1pY29uLS0xXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PGltZyBbc3JjXT1cInNvY2lhbE5ldHdvcmsuSW1hZ2U/LkZpbGVJZCB8IHBpY0ZpZWxkU3JjOiAnSUQnOm51bGw6Jyc6MTY6MTZcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9pPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gZmQtbGlzdC10aXRsZT57eyBzb2NpYWxOZXR3b3JrLlRpdGxlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9saT5cclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2ZkLXBvcG92ZXItYm9keT5cclxuICAgICAgICA8L2ZkLXBvcG92ZXI+XHJcbiAgICAgICAgPGZkLWJhci1lbGVtZW50PlxyXG4gICAgICAgICAgICA8YSBmZC1saW5rIFtocmVmXT1cImZvb3Rlci5TaXRlQWRkcmVzc1wiIHRhYmluZGV4PVwiMFwiIGNsYXNzPVwiIXR3LWZsZXggIXR3LWl0ZW1zLWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICA+PGZkLWljb24gZ2x5cGg9XCJ3b3JsZFwiPiA8L2ZkLWljb24+IDxzcGFuIHN0eWxlPVwicGFkZGluZzogMCA1cHhcIj57eyBmb290ZXIuU2l0ZVRpdGxlIH19PC9zcGFuPjwvYVxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgPC9mZC1iYXItZWxlbWVudD5cclxuICAgIDwvZGl2PlxyXG4gICAgQGlmIChkZXZpY2VTaXplICE9PSAncycpIHtcclxuICAgIDxkaXYgZmQtYmFyLW1pZGRsZSBjbGFzcz1cIm1pZGRsZVwiPlxyXG4gICAgICAgIDxmZC1iYXItZWxlbWVudD4ge3sgZm9vdGVyLkNvcHlyaWdodCB8IGJiYlRyYW5zbGF0ZSB9fTwvZmQtYmFyLWVsZW1lbnQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIH0gQGlmIChkZXZpY2VTaXplICE9PSAncycgJiYgZGV2aWNlU2l6ZSAhPT0gJ20nKSB7XHJcbiAgICA8ZGl2IGZkLWJhci1yaWdodCBjbGFzcz1cInJpZ2h0XCI+PC9kaXY+XHJcbiAgICB9XHJcbjwvZGl2PlxyXG59XHJcbjwhLS0gXHJcbkBlbHNlIGlmKGZvb3Rlcj8uTW9kZTIpe1xyXG48ZGl2IGNsYXNzPVwidHctcmVsYXRpdmUgdHctbXQtMTZcIj5cclxuICAgIDxzdmcgY2xhc3M9XCJ0dy1hYnNvbHV0ZSB0dy10b3AtMCB0dy13LWZ1bGwgdHctaC02IHR3LS1tdC01IHNtOnR3LS1tdC0xMCBzbTp0dy1oLTE2IHRleHQtZGVlcC1wdXJwbGUtYWNjZW50LTQwMFwiIHByZXNlcnZlQXNwZWN0UmF0aW89XCJub25lXCIgdmlld0JveD1cIjAgMCAxNDQwIDU0XCI+XHJcbiAgICAgIDxwYXRoIGZpbGw9XCItLXNhcFNoZWxsQ29sb3JcIiBkPVwiTTAgMjJMMTIwIDE2LjdDMjQwIDExIDQ4MCAxLjAwMDAxIDcyMCAwLjcwMDAxMkM5NjAgMS4wMDAwMSAxMjAwIDExIDEzMjAgMTYuN0wxNDQwIDIyVjU0SDEzMjBDMTIwMCA1NCA5NjAgNTQgNzIwIDU0QzQ4MCA1NCAyNDAgNTQgMTIwIDU0SDBWMjJaXCI+PC9wYXRoPlxyXG4gICAgPC9zdmc+XHJcbiAgICA8ZGl2IGNsYXNzPVwidHctcHgtNCB0dy1wdC0xMiB0dy1teC1hdXRvIHNtOnR3LW1heC13LXhsIG1kOnR3LW1heC13LWZ1bGwgbGc6dHctbWF4LXctc2NyZWVuLXhsIG1kOnR3LXB4LTI0IGxnOnR3LXB4LThcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInR3LWdyaWQgdHctZ2FwLTE2IHR3LXJvdy1nYXAtMTAgdHctbWItOCBsZzp0dy1ncmlkLWNvbHMtNlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtZDp0dy1tYXgtdy1tZCBsZzp0dy1jb2wtc3Bhbi0yXCI+XHJcbiAgICAgICAgICA8YSBocmVmPVwiL1wiIGFyaWEtbGFiZWw9XCLYsdmB2KrZhiDYqNmHINiu2KfZhtmHXCIgdGl0bGU9XCLYtNix2qnYqlwiIGNsYXNzPVwidHctaW5saW5lLWZsZXggdHctaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJ0dy13LTggdGV4dC10ZWFsLWFjY2VudC00MDBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBzdHJva2Utd2lkdGg9XCIyXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1taXRlcmxpbWl0PVwiMTBcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCIzXCIgeT1cIjFcIiB3aWR0aD1cIjdcIiBoZWlnaHQ9XCIxMlwiPjwvcmVjdD5cclxuICAgICAgICAgICAgICA8cmVjdCB4PVwiM1wiIHk9XCIxN1wiIHdpZHRoPVwiN1wiIGhlaWdodD1cIjZcIj48L3JlY3Q+XHJcbiAgICAgICAgICAgICAgPHJlY3QgeD1cIjE0XCIgeT1cIjFcIiB3aWR0aD1cIjdcIiBoZWlnaHQ9XCI2XCI+PC9yZWN0PlxyXG4gICAgICAgICAgICAgIDxyZWN0IHg9XCIxNFwiIHk9XCIxMVwiIHdpZHRoPVwiN1wiIGhlaWdodD1cIjEyXCI+PC9yZWN0PlxyXG4gICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0dy1tbC0yIHR3LXRleHQteGwgdHctZm9udC1ib2xkIHR3LXRyYWNraW5nLXdpZGUgdHctdGV4dC1ncmF5LTEwMCB0dy11cHBlcmNhc2VcIj7YtNix2qnYqjwvc3Bhbj5cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1tdC00IGxnOnR3LW1heC13LXNtXCI+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzPVwidHctdGV4dC1zbSB0ZXh0LWRlZXAtcHVycGxlLTUwXCI+XHJcbiAgICAgICAgICAgICAg2YXYpyDZhdiq2LnZh9ivINio2Ycg2KfYsdin2KbZhyDYqNmH2KrYsduM2YYg2K7Yr9mF2KfYqiDZiCDZhdit2LXZiNmE2KfYqiDYqNinINio2KfZhNin2KrYsduM2YYg2qnbjNmB24zYqiDZh9iz2KrbjNmFINiq2Kcg2YbbjNin2LLZh9in24wg2LTZhdinINix2Kcg2KjYsdii2YjYsdiv2Ycg2qnZhtuM2YUuXHJcbiAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0dy1tdC00IHR3LXRleHQtc20gdGV4dC1kZWVwLXB1cnBsZS01MFwiPlxyXG4gICAgICAgICAgICAgINmH2YXYsdin2Ycg2KjYpyDYqtuM2YXbjCDZhdiq2K7Ytdi12Iwg2K/YsSDYqtmE2KfYtNuM2YUg2KrYpyDYsdi22KfbjNiqINmF2LTYqtix24zYp9mGINix2Kcg2KzZhNioINqp2YbbjNmFINmIINiq2KzYsdio2YfigIzYp9uMINio24zigIzZhti424zYsSDZgdix2KfZh9mFINiz2KfYstuM2YUuXHJcbiAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0dy1ncmlkIHR3LWdyaWQtY29scy0yIHR3LWdhcC01IHR3LXJvdy1nYXAtOCBsZzp0dy1jb2wtc3Bhbi00IG1kOnR3LWdyaWQtY29scy00XCI+XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8cCBjbGFzcz1cInR3LWZvbnQtc2VtaWJvbGQgdHctdHJhY2tpbmctd2lkZSB0ZXh0LXRlYWwtYWNjZW50LTQwMFwiPtiv2LPYqtmH4oCM2KjZhtiv24w8L3A+XHJcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cInR3LW10LTIgdHctc3BhY2UteS0yXCI+XHJcbiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvXCIgY2xhc3M9XCJ0dy10cmFuc2l0aW9uLWNvbG9ycyB0dy1kdXJhdGlvbi0zMDAgdGV4dC1kZWVwLXB1cnBsZS01MCBob3Zlcjp0ZXh0LXRlYWwtYWNjZW50LTQwMFwiPtin2K7YqNin2LE8L2E+PC9saT5cclxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9cIiBjbGFzcz1cInR3LXRyYW5zaXRpb24tY29sb3JzIHR3LWR1cmF0aW9uLTMwMCB0ZXh0LWRlZXAtcHVycGxlLTUwIGhvdmVyOnRleHQtdGVhbC1hY2NlbnQtNDAwXCI+2KzZh9in2YY8L2E+PC9saT5cclxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9cIiBjbGFzcz1cInR3LXRyYW5zaXRpb24tY29sb3JzIHR3LWR1cmF0aW9uLTMwMCB0ZXh0LWRlZXAtcHVycGxlLTUwIGhvdmVyOnRleHQtdGVhbC1hY2NlbnQtNDAwXCI+2KjYp9iy24zigIzZh9inPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvXCIgY2xhc3M9XCJ0dy10cmFuc2l0aW9uLWNvbG9ycyB0dy1kdXJhdGlvbi0zMDAgdGV4dC1kZWVwLXB1cnBsZS01MCBob3Zlcjp0ZXh0LXRlYWwtYWNjZW50LTQwMFwiPtmF2LHYp9is2Lk8L2E+PC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0dy1mb250LXNlbWlib2xkIHR3LXRyYWNraW5nLXdpZGUgdGV4dC10ZWFsLWFjY2VudC00MDBcIj7Yr9uM2KzbjNiq2KfZhDwvcD5cclxuICAgICAgICAgICAgPHVsIGNsYXNzPVwidHctbXQtMiB0dy1zcGFjZS15LTJcIj5cclxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9cIiBjbGFzcz1cInR3LXRyYW5zaXRpb24tY29sb3JzIHR3LWR1cmF0aW9uLTMwMCB0ZXh0LWRlZXAtcHVycGxlLTUwIGhvdmVyOnRleHQtdGVhbC1hY2NlbnQtNDAwXCI+2YjYqDwvYT48L2xpPlxyXG4gICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiL1wiIGNsYXNzPVwidHctdHJhbnNpdGlvbi1jb2xvcnMgdHctZHVyYXRpb24tMzAwIHRleHQtZGVlcC1wdXJwbGUtNTAgaG92ZXI6dGV4dC10ZWFsLWFjY2VudC00MDBcIj7Yqtis2KfYsdiqINin2YTaqdiq2LHZiNmG24zaqTwvYT48L2xpPlxyXG4gICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiL1wiIGNsYXNzPVwidHctdHJhbnNpdGlvbi1jb2xvcnMgdHctZHVyYXRpb24tMzAwIHRleHQtZGVlcC1wdXJwbGUtNTAgaG92ZXI6dGV4dC10ZWFsLWFjY2VudC00MDBcIj7aqdiz2Kgg2Ygg2qnYp9ixPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvXCIgY2xhc3M9XCJ0dy10cmFuc2l0aW9uLWNvbG9ycyB0dy1kdXJhdGlvbi0zMDAgdGV4dC1kZWVwLXB1cnBsZS01MCBob3Zlcjp0ZXh0LXRlYWwtYWNjZW50LTQwMFwiPtiz2LHar9ix2YXbjDwvYT48L2xpPlxyXG4gICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8cCBjbGFzcz1cInR3LWZvbnQtc2VtaWJvbGQgdHctdHJhY2tpbmctd2lkZSB0ZXh0LXRlYWwtYWNjZW50LTQwMFwiPtiv24zYrNuM2KrYp9mEPC9wPlxyXG4gICAgICAgICAgICA8dWwgY2xhc3M9XCJ0dy1tdC0yIHR3LXNwYWNlLXktMlwiPlxyXG4gICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiL1wiIGNsYXNzPVwidHctdHJhbnNpdGlvbi1jb2xvcnMgdHctZHVyYXRpb24tMzAwIHRleHQtZGVlcC1wdXJwbGUtNTAgaG92ZXI6dGV4dC10ZWFsLWFjY2VudC00MDBcIj7ZiNioPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvXCIgY2xhc3M9XCJ0dy10cmFuc2l0aW9uLWNvbG9ycyB0dy1kdXJhdGlvbi0zMDAgdGV4dC1kZWVwLXB1cnBsZS01MCBob3Zlcjp0ZXh0LXRlYWwtYWNjZW50LTQwMFwiPtiq2KzYp9ix2Kog2KfZhNqp2KrYsdmI2YbbjNqpPC9hPjwvbGk+XHJcbiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvXCIgY2xhc3M9XCJ0dy10cmFuc2l0aW9uLWNvbG9ycyB0dy1kdXJhdGlvbi0zMDAgdGV4dC1kZWVwLXB1cnBsZS01MCBob3Zlcjp0ZXh0LXRlYWwtYWNjZW50LTQwMFwiPtqp2LPYqCDZiCDaqdin2LE8L2E+PC9saT5cclxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9cIiBjbGFzcz1cInR3LXRyYW5zaXRpb24tY29sb3JzIHR3LWR1cmF0aW9uLTMwMCB0ZXh0LWRlZXAtcHVycGxlLTUwIGhvdmVyOnRleHQtdGVhbC1hY2NlbnQtNDAwXCI+2LPYsdqv2LHZhduMPC9hPjwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxwIGNsYXNzPVwidHctZm9udC1zZW1pYm9sZCB0dy10cmFja2luZy13aWRlIHRleHQtdGVhbC1hY2NlbnQtNDAwXCI+2K/bjNis24zYqtin2YQ8L3A+XHJcbiAgICAgICAgICAgIDx1bCBjbGFzcz1cInR3LW10LTIgdHctc3BhY2UteS0yXCI+XHJcbiAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9XCIvXCIgY2xhc3M9XCJ0dy10cmFuc2l0aW9uLWNvbG9ycyB0dy1kdXJhdGlvbi0zMDAgdGV4dC1kZWVwLXB1cnBsZS01MCBob3Zlcjp0ZXh0LXRlYWwtYWNjZW50LTQwMFwiPtmI2Kg8L2E+PC9saT5cclxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9cIiBjbGFzcz1cInR3LXRyYW5zaXRpb24tY29sb3JzIHR3LWR1cmF0aW9uLTMwMCB0ZXh0LWRlZXAtcHVycGxlLTUwIGhvdmVyOnRleHQtdGVhbC1hY2NlbnQtNDAwXCI+2KrYrNin2LHYqiDYp9mE2qnYqtix2YjZhtuM2qk8L2E+PC9saT5cclxuICAgICAgICAgICAgICA8bGk+PGEgaHJlZj1cIi9cIiBjbGFzcz1cInR3LXRyYW5zaXRpb24tY29sb3JzIHR3LWR1cmF0aW9uLTMwMCB0ZXh0LWRlZXAtcHVycGxlLTUwIGhvdmVyOnRleHQtdGVhbC1hY2NlbnQtNDAwXCI+2qnYs9ioINmIINqp2KfYsTwvYT48L2xpPlxyXG4gICAgICAgICAgICAgIDxsaT48YSBocmVmPVwiL1wiIGNsYXNzPVwidHctdHJhbnNpdGlvbi1jb2xvcnMgdHctZHVyYXRpb24tMzAwIHRleHQtZGVlcC1wdXJwbGUtNTAgaG92ZXI6dGV4dC10ZWFsLWFjY2VudC00MDBcIj7Ys9ix2q/YsdmF24w8L2E+PC9saT5cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgIDwvZGl2PiAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidHctZmxleCB0dy1mbGV4LWNvbCB0dy1qdXN0aWZ5LWJldHdlZW4gdHctcHQtNSB0dy1wYi0xMCB0dy1ib3JkZXItdCBib3JkZXItZGVlcC1wdXJwbGUtYWNjZW50LTIwMCBzbTp0dy1mbGV4LXJvd1wiPlxyXG4gICAgICAgIDxwIGNsYXNzPVwidHctdGV4dC1zbSB0dy10ZXh0LWdyYXktMTAwXCI+wqkg2K3ZgiDZhti02LEg27LbsNuy27Ug2KrZhdin2YXbjCDYrdmC2YjZgiDZhdit2YHZiNi4INin2LPYqi48L3A+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbn0gLS0+Il19
@@ -1,4 +1,4 @@
1
- import { Component, ChangeDetectionStrategy, ViewEncapsulation, ElementRef, ViewChild, ViewChildren, RendererStyleFlags2, Input } from '@angular/core';
1
+ import { Component, ChangeDetectionStrategy, ViewEncapsulation, ElementRef, ViewChild, ViewChildren, RendererStyleFlags2, Input, HostBinding } from '@angular/core';
2
2
  import { takeUntil } from 'rxjs';
3
3
  import { TabPanelComponent } from '@fundamental-ngx/core';
4
4
  import { TilesViewerContainerComponent, TilesViewerService, TilesViewerGroupComponent } from 'barsa-tiles';
@@ -20,8 +20,9 @@ export class ServiceDeskHeaderComponent extends TilesViewerContainerComponent {
20
20
  this._renderer = _renderer;
21
21
  this._viewportScroller = _viewportScroller;
22
22
  this._cdr = _cdr;
23
+ this._mode2 = false;
23
24
  this.selectedTabIndex = 0;
24
- this.heightOfSpaceHolder = 88;
25
+ this.heightOfSpaceHolder = 66;
25
26
  this.searchTerm = '';
26
27
  this._enableScroll = false;
27
28
  this._stickyTopPosition = 66;
@@ -32,6 +33,8 @@ export class ServiceDeskHeaderComponent extends TilesViewerContainerComponent {
32
33
  }
33
34
  ngOnInit() {
34
35
  super.ngOnInit();
36
+ this._mode2 = true || this.settings.Mode2;
37
+ this.imageUrl = this._portalService.imageUrl || '/assets/back.jpg';
35
38
  this._portalService.searchTerm$.pipe(takeUntil(this._onDestroy$)).subscribe((term) => {
36
39
  this.searchTerm = term;
37
40
  this._cdr.detectChanges();
@@ -47,7 +50,7 @@ export class ServiceDeskHeaderComponent extends TilesViewerContainerComponent {
47
50
  let newHeight = this.heightOfSpaceHolder;
48
51
  this.tabSize = c;
49
52
  if (c === 's') {
50
- newHeight = 88;
53
+ newHeight = 66;
51
54
  }
52
55
  else if (c === 'm') {
53
56
  newHeight = 220;
@@ -58,7 +61,7 @@ export class ServiceDeskHeaderComponent extends TilesViewerContainerComponent {
58
61
  else {
59
62
  newHeight = 325;
60
63
  }
61
- newHeight = 88;
64
+ newHeight = 66;
62
65
  if (this.heightOfSpaceHolder !== newHeight) {
63
66
  this.heightOfSpaceHolder = newHeight;
64
67
  this.setGridTemplateRows(newHeight);
@@ -174,6 +177,7 @@ export class ServiceDeskHeaderComponent extends TilesViewerContainerComponent {
174
177
  connectIntersctionObserverList() {
175
178
  this.observerList.forEach((c) => c.observer.observe(c.el));
176
179
  }
180
+ _setBackground() { }
177
181
  _stickyDom(above, holder, marginTop, className, visibleCallback, hiddenCallBack) {
178
182
  const handler = (entries) => {
179
183
  if (this._disableIntersection) {
@@ -201,11 +205,11 @@ export class ServiceDeskHeaderComponent extends TilesViewerContainerComponent {
201
205
  this.observerList.push({ el: above, observer });
202
206
  }
203
207
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ServiceDeskHeaderComponent, deps: [{ token: i1.PortalService }, { token: i2.TilesService }, { token: i2.TilesViewerService }, { token: i0.Renderer2 }, { token: i3.ViewportScroller }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
204
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ServiceDeskHeaderComponent, selector: "bdc-service-desk-header", inputs: { settings: "settings" }, providers: [TilesViewerService], viewQueries: [{ propertyName: "headerSpaceHolder", first: true, predicate: ["headerSpaceHolder"], descendants: true, static: true }, { propertyName: "headerGrid", first: true, predicate: ["headerGrid"], descendants: true, static: true }, { propertyName: "aboveSearch", first: true, predicate: ["aboveSearch"], descendants: true, static: true }, { propertyName: "searchHolder", first: true, predicate: ["searchHolder"], descendants: true, static: true }, { propertyName: "navHolder", first: true, predicate: ["navHolder"], descendants: true, static: true }, { propertyName: "aboveContent", first: true, predicate: ["aboveContent"], descendants: true, static: true }, { propertyName: "bgOuterHolder", first: true, predicate: ["bgOuterHolder"], descendants: true, static: true }, { propertyName: "contentAndNav", first: true, predicate: ["contentAndNav"], descendants: true, static: true }, { propertyName: "tilesViewerGroupElList", predicate: TilesViewerGroupComponent, descendants: true, read: ElementRef }, { propertyName: "tabPanelComponents", predicate: TabPanelComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div id=\"headerGrid\" style=\"grid-template-rows: minmax(1px, 15%) 48px 32px 1fr auto 12%; height: 148px\" #headerGrid>\r\n <div class=\"companyLogoHolder_aboveSearch\" #aboveSearch></div>\r\n <div id=\"searchHolder\" style=\"grid-row: 2\" #searchHolder>\r\n <fd-input-group\r\n [style.display]=\"settings?.HideSearch ? 'none' : null\"\r\n class=\"input-search\"\r\n contentDensity=\"cozy\"\r\n fd-toolbar-item\r\n type=\"search\"\r\n glyph=\"search\"\r\n [glyphAriaLabel]=\"'Search' | bbbTranslate\"\r\n [placeholder]=\"'Search' | bbbTranslate\"\r\n [button]=\"true\"\r\n [disabled]=\"false\"\r\n [(ngModel)]=\"searchTerm\"\r\n (addOnButtonClicked)=\"onSearchSubmit()\"\r\n >\r\n </fd-input-group>\r\n </div>\r\n</div>\r\n<div id=\"headerSpaceHolder\" #headerSpaceHolder>\r\n <div id=\"bgOuterHolder\" #bgOuterHolder>\r\n <div id=\"bgInnerHolder\" style=\"height: 100vh\">\r\n <div class=\"backgroundImage\" id=\"backgroundImage\">\r\n <img class=\"picture\" src=\"/assets/back.jpg\" loading=\"lazy\" />\r\n <span id=\"backgroundImageOverlay\" class=\"overlay\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div id=\"contentHolderAndNav\" first=\"true\" #contentAndNav fillEmptySpace [setMinHeight]=\"true\">\r\n <div class=\"aboveContent\" #aboveContent></div>\r\n <div id=\"contentHolder\">\r\n <div class=\"nav\" #navHolder>\r\n <div class=\"nav-container\">\r\n <ng-container\r\n *ngTemplateOutlet=\"renderTabs; context: { $implicit: (appTileGroups$ | async)!! }\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"nav_surrogate\" style=\"height: 10px\"></div>\r\n <div class=\"content-feed\">\r\n <ng-container\r\n *ngTemplateOutlet=\"renderGroups; context: { $implicit: (appTileGroups$ | async)!! }\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template #renderTabs let-appTileGroups>\r\n <fd-tab-list\r\n [size]=\"tabSize\"\r\n [collapseOverflow]=\"tabSize === 's' || appTileGroups.length > 5\"\r\n [expandOverflowText]=\"'More' | bbbTranslate\"\r\n (selectedTabChange)=\"onSelectedTabChange3($event)\"\r\n >\r\n @for (appTileGroup of appTileGroups; track appTileGroup; let i = $index) {\r\n <fd-tab [id]=\"'' + i\" [title]=\"appTileGroup.navigatorTitle\"> </fd-tab>\r\n }\r\n </fd-tab-list>\r\n</ng-template>\r\n<ng-template #renderGroups let-appTileGroups>\r\n @for (appTileGroup of appTileGroups; track appTileGroup; let i = $index) {\r\n <bt-tiles-viewer-group\r\n [class]=\"deviceSize$ | async\"\r\n [attr.index]=\"i\"\r\n [appTileGroup]=\"appTileGroup\"\r\n [edit]=\"false\"\r\n [stackContent]=\"true\"\r\n [isAppTileSubGroup]=\"false\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n ></bt-tiles-viewer-group>\r\n }\r\n</ng-template>\r\n", styles: ["html{scroll-behavior:smooth}body{overflow-y:auto!important;overflow-x:hidden!important}bt-shellbar{position:fixed!important;top:10px;width:100%;z-index:6}bt-shellbar .fd-shellbar{background:transparent;box-shadow:none}bt-shellbar .fd-shellbar__product{display:none}bt-shellbar button{background-color:transparent}bdc-service-desk-header{display:block}bdc-service-desk-header #headerGrid{display:grid;justify-items:center;position:absolute;top:0;width:100%}bdc-service-desk-header #headerSpaceHolder{transition:height .3s ease-out 0s;width:100%}bdc-service-desk-header #searchHolder{z-index:302}bdc-service-desk-header #searchHolder.sticky{position:fixed;top:15px;will-change:transform}bdc-service-desk-header #contentHolderAndNav{align-items:center;background:#00000051;display:flex;flex-direction:column;position:relative;transition:background-color .3s ease-out 0s}bdc-service-desk-header #contentHolderAndNav fd-tab-list{background-color:transparent!important;transition:background-color .3s ease-out 0s}bdc-service-desk-header #contentHolderAndNav fd-tab-list fd-tab,bdc-service-desk-header #contentHolderAndNav fd-tab-list .fd-tabs{background-color:transparent!important;box-shadow:none!important;transition:background-color .3s ease-out 0s}bdc-service-desk-header #contentHolderAndNav[first=true] span.fd-tabs__tag{color:#fff!important}bdc-service-desk-header #contentHolderAndNav[first=true] .fd-tabs__link.is-selected>span.fd-tabs__tag:after{background-color:#fff!important}bdc-service-desk-header #contentHolderAndNav[first=true] .fd-layout-panel__head .fd-title{color:#fff!important}bdc-service-desk-header #contentHolderAndNav.navAndContent_tb{background:#f7f7f7}bdc-service-desk-header #contentHolder{align-items:center;display:flex;flex-direction:column}bdc-service-desk-header .nav-container{align-items:center;display:flex;gap:5px;width:100%}bdc-service-desk-header .nav-container fd-tab-list{width:100%}bdc-service-desk-header .nav_surrogate{height:1px}bdc-service-desk-header .nav{display:flex;height:50px;justify-content:center;z-index:500;width:100%}bdc-service-desk-header .nav ul{height:auto;overflow:hidden;list-style:none;padding-inline:0px 15px;margin:0;display:inline-flex;align-items:center}bdc-service-desk-header .nav ul li{display:inline;list-style:none;padding:0 16px;color:#fff}bdc-service-desk-header .nav.sticky{background:#f7f7f7;position:fixed;will-change:transform}bt-tiles-viewer-group:first-child fd-layout-panel-header{display:none!important}bt-tiles-viewer-group:first-child .fd-panel__content{border-bottom:none}.content-feed{padding:0}.input-search{display:block}@media (max-width: 480px){.nav-container,.content-feed{width:100%}.nav-container .fd-tabs,.content-feed .fd-tabs{padding:0}#searchHolder.sticky{display:none}#searchHolder .input-search{width:250px}}@media (min-width: 481px) and (max-width: 935px){#searchHolder .input-search{width:360px}}@media (min-width: 936px) and (max-width: 1250px){#searchHolder .input-search{width:480px}}@media (min-width: 1251px){#searchHolder .input-search{width:690px}}@media (max-width: 1180){div#searchHolder.sticky .input-search{width:280px!important}}@media (min-width: 480px) and (max-width: 935px){.nav-container,.content-feed{width:860px}}@media (min-width: 1244px){.nav-container,.content-feed{width:1250px}#searchHolder.sticky .input-search{width:690px}}\n"], dependencies: [{ kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight"], outputs: ["heightChanged"], exportAs: ["fillEmptySpace"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.ContentDensityDirective, selector: "[contentDensity]" }, { kind: "component", type: i2.TilesViewerGroupComponent, selector: "bt-tiles-viewer-group", inputs: ["appTileGroup", "stackContent", "edit", "rtl", "isAppTileSubGroup", "deviceSize"], outputs: ["tilesDropped", "hideAppTileClick", "renameAppTileClick", "toggleGroup", "resetGroup", "deleteGroup"] }, { kind: "component", type: i6.InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "addOnText", "buttonFocusable", "type", "glyph", "glyphFont", "button", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledBy", "ariaLabel"], outputs: ["addOnButtonClicked", "search"] }, { kind: "component", type: i7.TabListComponent, selector: "fd-tab-list", inputs: ["size", "mode", "collapseOverflow", "maxVisibleTabs", "stackContent", "maxContentHeight", "collapsibleTabs", "defaultTab", "selectDefaultOnTabsChange", "focusFirstFocusableElement"], outputs: ["selectedTabChange", "selectedTabIndexChange", "visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i7.TabPanelComponent, selector: "fd-tab", inputs: ["id", "ariaLabel", "ariaLabelledBy", "title", "count", "glyph", "header", "disabled", "tabState"], outputs: ["opened", "closed"] }, { kind: "directive", type: i8.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
208
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ServiceDeskHeaderComponent, selector: "bdc-service-desk-header", inputs: { settings: "settings" }, host: { properties: { "class.mode2": "this._mode2" } }, providers: [TilesViewerService], viewQueries: [{ propertyName: "headerSpaceHolder", first: true, predicate: ["headerSpaceHolder"], descendants: true, static: true }, { propertyName: "headerGrid", first: true, predicate: ["headerGrid"], descendants: true, static: true }, { propertyName: "aboveSearch", first: true, predicate: ["aboveSearch"], descendants: true, static: true }, { propertyName: "searchHolder", first: true, predicate: ["searchHolder"], descendants: true, static: true }, { propertyName: "navHolder", first: true, predicate: ["navHolder"], descendants: true, static: true }, { propertyName: "aboveContent", first: true, predicate: ["aboveContent"], descendants: true, static: true }, { propertyName: "bgOuterHolder", first: true, predicate: ["bgOuterHolder"], descendants: true, static: true }, { propertyName: "contentAndNav", first: true, predicate: ["contentAndNav"], descendants: true, static: true }, { propertyName: "tilesViewerGroupElList", predicate: TilesViewerGroupComponent, descendants: true, read: ElementRef }, { propertyName: "tabPanelComponents", predicate: TabPanelComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div id=\"headerGrid\" style=\"grid-template-rows: minmax(1px, 15%) 48px 32px 1fr auto 12%; height: 148px\" #headerGrid>\r\n <div class=\"companyLogoHolder_aboveSearch\" #aboveSearch></div>\r\n <div id=\"searchHolder\" style=\"grid-row: 2\" #searchHolder>\r\n <fd-input-group\r\n [style.display]=\"settings?.HideSearch ? 'none' : null\"\r\n class=\"input-search\"\r\n contentDensity=\"cozy\"\r\n fd-toolbar-item\r\n type=\"search\"\r\n glyph=\"search\"\r\n [glyphAriaLabel]=\"'Search' | bbbTranslate\"\r\n [placeholder]=\"'Search' | bbbTranslate\"\r\n [button]=\"true\"\r\n [disabled]=\"false\"\r\n [(ngModel)]=\"searchTerm\"\r\n (addOnButtonClicked)=\"onSearchSubmit()\"\r\n >\r\n </fd-input-group>\r\n </div>\r\n</div>\r\n<div id=\"headerSpaceHolder\" #headerSpaceHolder>\r\n <div id=\"bgOuterHolder\" #bgOuterHolder>\r\n <div id=\"bgInnerHolder\" style=\"height: 100vh\">\r\n <div class=\"backgroundImage\" id=\"backgroundImage\">\r\n <img class=\"picture\" [attr.src]=\"imageUrl\" loading=\"lazy\" />\r\n <span id=\"backgroundImageOverlay\" class=\"overlay\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div id=\"contentHolderAndNav\" first=\"true\" #contentAndNav fillEmptySpace [setMinHeight]=\"true\">\r\n <div class=\"aboveContent\" #aboveContent></div>\r\n <div id=\"contentHolder\">\r\n <div class=\"nav content-feed\" #navHolder [style.display]=\"settings?.HideTileGroupsNav ? 'none' : null\">\r\n <div class=\"nav-container\">\r\n <ng-container\r\n *ngTemplateOutlet=\"renderTabs; context: { $implicit: (appTileGroups$ | async)!! }\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"nav_surrogate\"></div>\r\n <div class=\"content-feed\">\r\n <ng-container\r\n *ngTemplateOutlet=\"renderGroups; context: { $implicit: (appTileGroups$ | async)!! }\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template #renderTabs let-appTileGroups>\r\n <fd-tab-list\r\n [size]=\"tabSize\"\r\n [collapseOverflow]=\"tabSize === 's' || appTileGroups.length > 5\"\r\n [expandOverflowText]=\"'More' | bbbTranslate\"\r\n (selectedTabChange)=\"onSelectedTabChange3($event)\"\r\n >\r\n @for (appTileGroup of appTileGroups; track appTileGroup; let i = $index;) {\r\n <fd-tab [id]=\"'' + i\" [title]=\"appTileGroup.navigatorTitle\"> </fd-tab>\r\n }\r\n </fd-tab-list>\r\n</ng-template>\r\n<ng-template #renderGroups let-appTileGroups>\r\n @for (appTileGroup of appTileGroups; track appTileGroup; let i = $index,isLast=$last) {\r\n <bt-tiles-viewer-group\r\n [class]=\"deviceSize$ | async\"\r\n [attr.islast]=\"isLast\"\r\n [attr.index]=\"i\"\r\n [appTileGroup]=\"appTileGroup\"\r\n [edit]=\"false\"\r\n [stackContent]=\"true\"\r\n [isAppTileSubGroup]=\"false\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n ></bt-tiles-viewer-group>\r\n }\r\n</ng-template>\r\n", styles: ["html{scroll-behavior:smooth}body{overflow-y:auto!important;overflow-x:hidden!important}bt-shellbar{position:fixed!important;top:0;width:100%;z-index:6}bt-shellbar .fd-shellbar{height:66px}bdc-service-desk-header{display:block}bdc-service-desk-header #headerGrid{display:grid;justify-items:center;position:absolute;top:0;width:100%}bdc-service-desk-header #headerSpaceHolder{transition:height .3s ease-out 0s;width:100%}bdc-service-desk-header #searchHolder{z-index:302}bdc-service-desk-header #searchHolder.sticky{position:fixed;top:15px;will-change:transform}bdc-service-desk-header #contentHolderAndNav{align-items:center;background:#00000051;display:flex;flex-direction:column;position:relative;transition:background-color .3s ease-out 0s}bdc-service-desk-header #contentHolderAndNav fd-tab-list{background-color:transparent!important;transition:background-color .3s ease-out 0s}bdc-service-desk-header #contentHolderAndNav fd-tab-list fd-tab,bdc-service-desk-header #contentHolderAndNav fd-tab-list .fd-tabs{background-color:transparent!important;box-shadow:none!important;transition:background-color .3s ease-out 0s}bdc-service-desk-header:not(.mode2) #contentHolderAndNav[first=true] span.fd-tabs__tag{color:#fff!important}bdc-service-desk-header:not(.mode2) #contentHolderAndNav[first=true] .fd-tabs__link.is-selected>span.fd-tabs__tag:after{background-color:#fff!important}bdc-service-desk-header:not(.mode2) #contentHolderAndNav[first=true] fd-layout-panel:not(.custom-color) .fd-layout-panel__head .fd-title{color:#fff!important}bdc-service-desk-header #contentHolderAndNav.navAndContent_tb{background:#f7f7f7}bdc-service-desk-header #contentHolder{align-items:center;display:flex;flex-direction:column}bdc-service-desk-header .nav-container{align-items:center;display:flex;gap:5px;width:100%}bdc-service-desk-header .nav-container fd-tab-list{width:100%}bdc-service-desk-header .nav_surrogate{height:1px}bdc-service-desk-header .nav{display:flex;height:50px;justify-content:center;z-index:500}bdc-service-desk-header .nav ul{height:auto;overflow:hidden;list-style:none;padding-inline:0px 15px;margin:0;display:inline-flex;align-items:center}bdc-service-desk-header .nav ul li{display:inline;list-style:none;padding:0 16px;color:#fff}bdc-service-desk-header .nav.sticky{background:#f7f7f7;position:fixed;will-change:transform}.content-feed{padding:0}.input-search{display:block}@media (max-width: 480px){.nav-container,.content-feed{width:100%}.nav-container .fd-tabs,.content-feed .fd-tabs{padding:0}#searchHolder.sticky,#searchHolder{display:none}#searchHolder .input-search{width:250px}}@media (min-width: 481px) and (max-width: 935px){#searchHolder .input-search{width:360px}}@media (min-width: 936px) and (max-width: 1250px){#searchHolder .input-search{width:480px}}@media (min-width: 1251px){#searchHolder .input-search{width:690px}}@media (max-width: 1180){div#searchHolder.sticky .input-search{width:280px!important}}@media (min-width: 480px) and (max-width: 935px){.nav-container,.content-feed{width:100%}}@media (min-width: 1244px){.nav-container,.content-feed{width:89.3rem}#searchHolder.sticky .input-search{width:690px}}bdc-service-desk-header.mode2 #headerSpaceHolder #bgInnerHolder{display:none}bdc-service-desk-header.mode2 #bgOuterHolder{background:transparent}bdc-service-desk-header.mode2 #contentHolderAndNav{background:transparent}bdc-service-desk-header.mode2 #contentHolderAndNav.mode2[first=true] .fd-tabs__link.is-selected>span.fd-tabs__tag:after{background-color:none}\n"], dependencies: [{ kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.FillEmptySpaceDirective, selector: "[fillEmptySpace]", inputs: ["containerDom", "decrement", "disable", "height", "dontUseTopBound", "setMinHeight"], outputs: ["heightChanged"], exportAs: ["fillEmptySpace"] }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.ContentDensityDirective, selector: "[contentDensity]" }, { kind: "component", type: i2.TilesViewerGroupComponent, selector: "bt-tiles-viewer-group", inputs: ["appTileGroup", "stackContent", "edit", "rtl", "isAppTileSubGroup", "deviceSize", "isLast"], outputs: ["tilesDropped", "hideAppTileClick", "renameAppTileClick", "toggleGroup", "resetGroup", "deleteGroup"] }, { kind: "component", type: i6.InputGroupComponent, selector: "fd-input-group", inputs: ["placement", "required", "inline", "addOnText", "buttonFocusable", "type", "glyph", "glyphFont", "button", "isControl", "showFocus", "isExpanded", "glyphAriaLabel", "addonButtonAriaHidden", "iconTitle", "ariaLabelledBy", "ariaLabel"], outputs: ["addOnButtonClicked", "search"] }, { kind: "component", type: i7.TabListComponent, selector: "fd-tab-list", inputs: ["size", "mode", "collapseOverflow", "maxVisibleTabs", "stackContent", "maxContentHeight", "collapsibleTabs", "defaultTab", "selectDefaultOnTabsChange", "focusFirstFocusableElement"], outputs: ["selectedTabChange", "selectedTabIndexChange", "visibleItemsCount", "hiddenItemsCount"] }, { kind: "component", type: i7.TabPanelComponent, selector: "fd-tab", inputs: ["id", "ariaLabel", "ariaLabelledBy", "title", "count", "glyph", "header", "disabled", "tabState"], outputs: ["opened", "closed"] }, { kind: "directive", type: i8.ToolbarItemDirective, selector: "[fd-toolbar-item], [fdOverflowGroup], [fdOverflowPriority]", inputs: ["fdOverflowPriority", "fdOverflowGroup"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.BbbTranslatePipe, name: "bbbTranslate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
205
209
  }
206
210
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ServiceDeskHeaderComponent, decorators: [{
207
211
  type: Component,
208
- args: [{ selector: 'bdc-service-desk-header', providers: [TilesViewerService], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: false, template: "<div id=\"headerGrid\" style=\"grid-template-rows: minmax(1px, 15%) 48px 32px 1fr auto 12%; height: 148px\" #headerGrid>\r\n <div class=\"companyLogoHolder_aboveSearch\" #aboveSearch></div>\r\n <div id=\"searchHolder\" style=\"grid-row: 2\" #searchHolder>\r\n <fd-input-group\r\n [style.display]=\"settings?.HideSearch ? 'none' : null\"\r\n class=\"input-search\"\r\n contentDensity=\"cozy\"\r\n fd-toolbar-item\r\n type=\"search\"\r\n glyph=\"search\"\r\n [glyphAriaLabel]=\"'Search' | bbbTranslate\"\r\n [placeholder]=\"'Search' | bbbTranslate\"\r\n [button]=\"true\"\r\n [disabled]=\"false\"\r\n [(ngModel)]=\"searchTerm\"\r\n (addOnButtonClicked)=\"onSearchSubmit()\"\r\n >\r\n </fd-input-group>\r\n </div>\r\n</div>\r\n<div id=\"headerSpaceHolder\" #headerSpaceHolder>\r\n <div id=\"bgOuterHolder\" #bgOuterHolder>\r\n <div id=\"bgInnerHolder\" style=\"height: 100vh\">\r\n <div class=\"backgroundImage\" id=\"backgroundImage\">\r\n <img class=\"picture\" src=\"/assets/back.jpg\" loading=\"lazy\" />\r\n <span id=\"backgroundImageOverlay\" class=\"overlay\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div id=\"contentHolderAndNav\" first=\"true\" #contentAndNav fillEmptySpace [setMinHeight]=\"true\">\r\n <div class=\"aboveContent\" #aboveContent></div>\r\n <div id=\"contentHolder\">\r\n <div class=\"nav\" #navHolder>\r\n <div class=\"nav-container\">\r\n <ng-container\r\n *ngTemplateOutlet=\"renderTabs; context: { $implicit: (appTileGroups$ | async)!! }\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"nav_surrogate\" style=\"height: 10px\"></div>\r\n <div class=\"content-feed\">\r\n <ng-container\r\n *ngTemplateOutlet=\"renderGroups; context: { $implicit: (appTileGroups$ | async)!! }\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template #renderTabs let-appTileGroups>\r\n <fd-tab-list\r\n [size]=\"tabSize\"\r\n [collapseOverflow]=\"tabSize === 's' || appTileGroups.length > 5\"\r\n [expandOverflowText]=\"'More' | bbbTranslate\"\r\n (selectedTabChange)=\"onSelectedTabChange3($event)\"\r\n >\r\n @for (appTileGroup of appTileGroups; track appTileGroup; let i = $index) {\r\n <fd-tab [id]=\"'' + i\" [title]=\"appTileGroup.navigatorTitle\"> </fd-tab>\r\n }\r\n </fd-tab-list>\r\n</ng-template>\r\n<ng-template #renderGroups let-appTileGroups>\r\n @for (appTileGroup of appTileGroups; track appTileGroup; let i = $index) {\r\n <bt-tiles-viewer-group\r\n [class]=\"deviceSize$ | async\"\r\n [attr.index]=\"i\"\r\n [appTileGroup]=\"appTileGroup\"\r\n [edit]=\"false\"\r\n [stackContent]=\"true\"\r\n [isAppTileSubGroup]=\"false\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n ></bt-tiles-viewer-group>\r\n }\r\n</ng-template>\r\n", styles: ["html{scroll-behavior:smooth}body{overflow-y:auto!important;overflow-x:hidden!important}bt-shellbar{position:fixed!important;top:10px;width:100%;z-index:6}bt-shellbar .fd-shellbar{background:transparent;box-shadow:none}bt-shellbar .fd-shellbar__product{display:none}bt-shellbar button{background-color:transparent}bdc-service-desk-header{display:block}bdc-service-desk-header #headerGrid{display:grid;justify-items:center;position:absolute;top:0;width:100%}bdc-service-desk-header #headerSpaceHolder{transition:height .3s ease-out 0s;width:100%}bdc-service-desk-header #searchHolder{z-index:302}bdc-service-desk-header #searchHolder.sticky{position:fixed;top:15px;will-change:transform}bdc-service-desk-header #contentHolderAndNav{align-items:center;background:#00000051;display:flex;flex-direction:column;position:relative;transition:background-color .3s ease-out 0s}bdc-service-desk-header #contentHolderAndNav fd-tab-list{background-color:transparent!important;transition:background-color .3s ease-out 0s}bdc-service-desk-header #contentHolderAndNav fd-tab-list fd-tab,bdc-service-desk-header #contentHolderAndNav fd-tab-list .fd-tabs{background-color:transparent!important;box-shadow:none!important;transition:background-color .3s ease-out 0s}bdc-service-desk-header #contentHolderAndNav[first=true] span.fd-tabs__tag{color:#fff!important}bdc-service-desk-header #contentHolderAndNav[first=true] .fd-tabs__link.is-selected>span.fd-tabs__tag:after{background-color:#fff!important}bdc-service-desk-header #contentHolderAndNav[first=true] .fd-layout-panel__head .fd-title{color:#fff!important}bdc-service-desk-header #contentHolderAndNav.navAndContent_tb{background:#f7f7f7}bdc-service-desk-header #contentHolder{align-items:center;display:flex;flex-direction:column}bdc-service-desk-header .nav-container{align-items:center;display:flex;gap:5px;width:100%}bdc-service-desk-header .nav-container fd-tab-list{width:100%}bdc-service-desk-header .nav_surrogate{height:1px}bdc-service-desk-header .nav{display:flex;height:50px;justify-content:center;z-index:500;width:100%}bdc-service-desk-header .nav ul{height:auto;overflow:hidden;list-style:none;padding-inline:0px 15px;margin:0;display:inline-flex;align-items:center}bdc-service-desk-header .nav ul li{display:inline;list-style:none;padding:0 16px;color:#fff}bdc-service-desk-header .nav.sticky{background:#f7f7f7;position:fixed;will-change:transform}bt-tiles-viewer-group:first-child fd-layout-panel-header{display:none!important}bt-tiles-viewer-group:first-child .fd-panel__content{border-bottom:none}.content-feed{padding:0}.input-search{display:block}@media (max-width: 480px){.nav-container,.content-feed{width:100%}.nav-container .fd-tabs,.content-feed .fd-tabs{padding:0}#searchHolder.sticky{display:none}#searchHolder .input-search{width:250px}}@media (min-width: 481px) and (max-width: 935px){#searchHolder .input-search{width:360px}}@media (min-width: 936px) and (max-width: 1250px){#searchHolder .input-search{width:480px}}@media (min-width: 1251px){#searchHolder .input-search{width:690px}}@media (max-width: 1180){div#searchHolder.sticky .input-search{width:280px!important}}@media (min-width: 480px) and (max-width: 935px){.nav-container,.content-feed{width:860px}}@media (min-width: 1244px){.nav-container,.content-feed{width:1250px}#searchHolder.sticky .input-search{width:690px}}\n"] }]
212
+ args: [{ selector: 'bdc-service-desk-header', providers: [TilesViewerService], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: false, template: "<div id=\"headerGrid\" style=\"grid-template-rows: minmax(1px, 15%) 48px 32px 1fr auto 12%; height: 148px\" #headerGrid>\r\n <div class=\"companyLogoHolder_aboveSearch\" #aboveSearch></div>\r\n <div id=\"searchHolder\" style=\"grid-row: 2\" #searchHolder>\r\n <fd-input-group\r\n [style.display]=\"settings?.HideSearch ? 'none' : null\"\r\n class=\"input-search\"\r\n contentDensity=\"cozy\"\r\n fd-toolbar-item\r\n type=\"search\"\r\n glyph=\"search\"\r\n [glyphAriaLabel]=\"'Search' | bbbTranslate\"\r\n [placeholder]=\"'Search' | bbbTranslate\"\r\n [button]=\"true\"\r\n [disabled]=\"false\"\r\n [(ngModel)]=\"searchTerm\"\r\n (addOnButtonClicked)=\"onSearchSubmit()\"\r\n >\r\n </fd-input-group>\r\n </div>\r\n</div>\r\n<div id=\"headerSpaceHolder\" #headerSpaceHolder>\r\n <div id=\"bgOuterHolder\" #bgOuterHolder>\r\n <div id=\"bgInnerHolder\" style=\"height: 100vh\">\r\n <div class=\"backgroundImage\" id=\"backgroundImage\">\r\n <img class=\"picture\" [attr.src]=\"imageUrl\" loading=\"lazy\" />\r\n <span id=\"backgroundImageOverlay\" class=\"overlay\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div id=\"contentHolderAndNav\" first=\"true\" #contentAndNav fillEmptySpace [setMinHeight]=\"true\">\r\n <div class=\"aboveContent\" #aboveContent></div>\r\n <div id=\"contentHolder\">\r\n <div class=\"nav content-feed\" #navHolder [style.display]=\"settings?.HideTileGroupsNav ? 'none' : null\">\r\n <div class=\"nav-container\">\r\n <ng-container\r\n *ngTemplateOutlet=\"renderTabs; context: { $implicit: (appTileGroups$ | async)!! }\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n <div class=\"nav_surrogate\"></div>\r\n <div class=\"content-feed\">\r\n <ng-container\r\n *ngTemplateOutlet=\"renderGroups; context: { $implicit: (appTileGroups$ | async)!! }\"\r\n ></ng-container>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template #renderTabs let-appTileGroups>\r\n <fd-tab-list\r\n [size]=\"tabSize\"\r\n [collapseOverflow]=\"tabSize === 's' || appTileGroups.length > 5\"\r\n [expandOverflowText]=\"'More' | bbbTranslate\"\r\n (selectedTabChange)=\"onSelectedTabChange3($event)\"\r\n >\r\n @for (appTileGroup of appTileGroups; track appTileGroup; let i = $index;) {\r\n <fd-tab [id]=\"'' + i\" [title]=\"appTileGroup.navigatorTitle\"> </fd-tab>\r\n }\r\n </fd-tab-list>\r\n</ng-template>\r\n<ng-template #renderGroups let-appTileGroups>\r\n @for (appTileGroup of appTileGroups; track appTileGroup; let i = $index,isLast=$last) {\r\n <bt-tiles-viewer-group\r\n [class]=\"deviceSize$ | async\"\r\n [attr.islast]=\"isLast\"\r\n [attr.index]=\"i\"\r\n [appTileGroup]=\"appTileGroup\"\r\n [edit]=\"false\"\r\n [stackContent]=\"true\"\r\n [isAppTileSubGroup]=\"false\"\r\n [deviceSize]=\"(deviceSize$ | async)!!\"\r\n ></bt-tiles-viewer-group>\r\n }\r\n</ng-template>\r\n", styles: ["html{scroll-behavior:smooth}body{overflow-y:auto!important;overflow-x:hidden!important}bt-shellbar{position:fixed!important;top:0;width:100%;z-index:6}bt-shellbar .fd-shellbar{height:66px}bdc-service-desk-header{display:block}bdc-service-desk-header #headerGrid{display:grid;justify-items:center;position:absolute;top:0;width:100%}bdc-service-desk-header #headerSpaceHolder{transition:height .3s ease-out 0s;width:100%}bdc-service-desk-header #searchHolder{z-index:302}bdc-service-desk-header #searchHolder.sticky{position:fixed;top:15px;will-change:transform}bdc-service-desk-header #contentHolderAndNav{align-items:center;background:#00000051;display:flex;flex-direction:column;position:relative;transition:background-color .3s ease-out 0s}bdc-service-desk-header #contentHolderAndNav fd-tab-list{background-color:transparent!important;transition:background-color .3s ease-out 0s}bdc-service-desk-header #contentHolderAndNav fd-tab-list fd-tab,bdc-service-desk-header #contentHolderAndNav fd-tab-list .fd-tabs{background-color:transparent!important;box-shadow:none!important;transition:background-color .3s ease-out 0s}bdc-service-desk-header:not(.mode2) #contentHolderAndNav[first=true] span.fd-tabs__tag{color:#fff!important}bdc-service-desk-header:not(.mode2) #contentHolderAndNav[first=true] .fd-tabs__link.is-selected>span.fd-tabs__tag:after{background-color:#fff!important}bdc-service-desk-header:not(.mode2) #contentHolderAndNav[first=true] fd-layout-panel:not(.custom-color) .fd-layout-panel__head .fd-title{color:#fff!important}bdc-service-desk-header #contentHolderAndNav.navAndContent_tb{background:#f7f7f7}bdc-service-desk-header #contentHolder{align-items:center;display:flex;flex-direction:column}bdc-service-desk-header .nav-container{align-items:center;display:flex;gap:5px;width:100%}bdc-service-desk-header .nav-container fd-tab-list{width:100%}bdc-service-desk-header .nav_surrogate{height:1px}bdc-service-desk-header .nav{display:flex;height:50px;justify-content:center;z-index:500}bdc-service-desk-header .nav ul{height:auto;overflow:hidden;list-style:none;padding-inline:0px 15px;margin:0;display:inline-flex;align-items:center}bdc-service-desk-header .nav ul li{display:inline;list-style:none;padding:0 16px;color:#fff}bdc-service-desk-header .nav.sticky{background:#f7f7f7;position:fixed;will-change:transform}.content-feed{padding:0}.input-search{display:block}@media (max-width: 480px){.nav-container,.content-feed{width:100%}.nav-container .fd-tabs,.content-feed .fd-tabs{padding:0}#searchHolder.sticky,#searchHolder{display:none}#searchHolder .input-search{width:250px}}@media (min-width: 481px) and (max-width: 935px){#searchHolder .input-search{width:360px}}@media (min-width: 936px) and (max-width: 1250px){#searchHolder .input-search{width:480px}}@media (min-width: 1251px){#searchHolder .input-search{width:690px}}@media (max-width: 1180){div#searchHolder.sticky .input-search{width:280px!important}}@media (min-width: 480px) and (max-width: 935px){.nav-container,.content-feed{width:100%}}@media (min-width: 1244px){.nav-container,.content-feed{width:89.3rem}#searchHolder.sticky .input-search{width:690px}}bdc-service-desk-header.mode2 #headerSpaceHolder #bgInnerHolder{display:none}bdc-service-desk-header.mode2 #bgOuterHolder{background:transparent}bdc-service-desk-header.mode2 #contentHolderAndNav{background:transparent}bdc-service-desk-header.mode2 #contentHolderAndNav.mode2[first=true] .fd-tabs__link.is-selected>span.fd-tabs__tag:after{background-color:none}\n"] }]
209
213
  }], ctorParameters: () => [{ type: i1.PortalService }, { type: i2.TilesService }, { type: i2.TilesViewerService }, { type: i0.Renderer2 }, { type: i3.ViewportScroller }, { type: i0.ChangeDetectorRef }], propDecorators: { headerSpaceHolder: [{
210
214
  type: ViewChild,
211
215
  args: ['headerSpaceHolder', { static: true }]
@@ -236,7 +240,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
236
240
  }], tabPanelComponents: [{
237
241
  type: ViewChildren,
238
242
  args: [TabPanelComponent]
243
+ }], _mode2: [{
244
+ type: HostBinding,
245
+ args: ['class.mode2']
239
246
  }], settings: [{
240
247
  type: Input
241
248
  }] } });
242
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1kZXNrLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1kZXZlbG9wLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlLWRlc2staGVhZGVyL3NlcnZpY2UtZGVzay1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZS1kZXNrLWhlYWRlci9zZXJ2aWNlLWRlc2staGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUVqQixVQUFVLEVBQ1YsU0FBUyxFQUVULFlBQVksRUFHWixtQkFBbUIsRUFDbkIsS0FBSyxFQUNSLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFZLE1BQU0sdUJBQXVCLENBQUM7QUFFcEUsT0FBTyxFQUNILDZCQUE2QixFQUM3QixrQkFBa0IsRUFFbEIseUJBQXlCLEVBQzVCLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7O0FBV3JCLE1BQU0sT0FBTywwQkFBMkIsU0FBUSw2QkFBNkI7SUE0QnpFLFlBQ2MsY0FBNkIsRUFDN0IsYUFBMkIsRUFDM0IsbUJBQXVDLEVBQ3ZDLFNBQW9CLEVBQ3RCLGlCQUFtQyxFQUNuQyxJQUF1QjtRQUUvQixLQUFLLENBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO1FBUGhELG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLGtCQUFhLEdBQWIsYUFBYSxDQUFjO1FBQzNCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDdkMsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUN0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QyxpQkFBaUI7Z0JBQ3RCLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgT25Jbml0LFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICAgIEFmdGVyVmlld0luaXQsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgUmVuZGVyZXIyLFxyXG4gICAgVmlld0NoaWxkcmVuLFxyXG4gICAgUXVlcnlMaXN0LFxyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBSZW5kZXJlclN0eWxlRmxhZ3MyLFxyXG4gICAgSW5wdXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVmlld3BvcnRTY3JvbGxlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBUYWJQYW5lbENvbXBvbmVudCwgVGFiU2l6ZXMgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xyXG5pbXBvcnQgeyBNZXRhb2JqZWN0RGF0YU1vZGVsLCBQb3J0YWxTZXJ2aWNlLCBBYmJyZXZhdGlvbkRldmljZVNpemUgfSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBUaWxlc1ZpZXdlckNvbnRhaW5lckNvbXBvbmVudCxcclxuICAgIFRpbGVzVmlld2VyU2VydmljZSxcclxuICAgIFRpbGVzU2VydmljZSxcclxuICAgIFRpbGVzVmlld2VyR3JvdXBDb21wb25lbnRcclxufSBmcm9tICdiYXJzYS10aWxlcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYmRjLXNlcnZpY2UtZGVzay1oZWFkZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlcnZpY2UtZGVzay1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VydmljZS1kZXNrLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgcHJvdmlkZXJzOiBbVGlsZXNWaWV3ZXJTZXJ2aWNlXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICAgIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZXJ2aWNlRGVza0hlYWRlckNvbXBvbmVudCBleHRlbmRzIFRpbGVzVmlld2VyQ29udGFpbmVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcclxuICAgIEBWaWV3Q2hpbGQoJ2hlYWRlclNwYWNlSG9sZGVyJywgeyBzdGF0aWM6IHRydWUgfSkgaGVhZGVyU3BhY2VIb2xkZXI6IEVsZW1lbnRSZWY8YW55PjtcclxuICAgIEBWaWV3Q2hpbGQoJ2hlYWRlckdyaWQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBoZWFkZXJHcmlkOiBFbGVtZW50UmVmPGFueT47XHJcbiAgICBAVmlld0NoaWxkKCdhYm92ZVNlYXJjaCcsIHsgc3RhdGljOiB0cnVlIH0pIGFib3ZlU2VhcmNoOiBFbGVtZW50UmVmPGFueT47XHJcbiAgICBAVmlld0NoaWxkKCdzZWFyY2hIb2xkZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBzZWFyY2hIb2xkZXI6IEVsZW1lbnRSZWY8YW55PjtcclxuICAgIEBWaWV3Q2hpbGQoJ25hdkhvbGRlcicsIHsgc3RhdGljOiB0cnVlIH0pIG5hdkhvbGRlcjogRWxlbWVudFJlZjxhbnk+O1xyXG4gICAgQFZpZXdDaGlsZCgnYWJvdmVDb250ZW50JywgeyBzdGF0aWM6IHRydWUgfSkgYWJvdmVDb250ZW50OiBFbGVtZW50UmVmPGFueT47XHJcbiAgICBAVmlld0NoaWxkKCdiZ091dGVySG9sZGVyJywgeyBzdGF0aWM6IHRydWUgfSkgYmdPdXRlckhvbGRlcjogRWxlbWVudFJlZjxhbnk+O1xyXG4gICAgQFZpZXdDaGlsZCgnY29udGVudEFuZE5hdicsIHsgc3RhdGljOiB0cnVlIH0pIGNvbnRlbnRBbmROYXY6IEVsZW1lbnRSZWY8YW55PjtcclxuICAgIEBWaWV3Q2hpbGRyZW4oVGlsZXNWaWV3ZXJHcm91cENvbXBvbmVudCwgeyByZWFkOiBFbGVtZW50UmVmIH0pIHRpbGVzVmlld2VyR3JvdXBFbExpc3Q6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcclxuICAgIC8vIEBIb3N0QmluZGluZygnY2xhc3MucGFnZS1jb250ZW50JykgcGFnZUNvbnRlbnRDbGFzcyA9IHRydWU7XHJcblxyXG4gICAgQFZpZXdDaGlsZHJlbihUYWJQYW5lbENvbXBvbmVudCkgdGFiUGFuZWxDb21wb25lbnRzOiBRdWVyeUxpc3Q8VGFiUGFuZWxDb21wb25lbnQ+O1xyXG4gICAgQElucHV0KCkgc2V0dGluZ3M6IFNlcnZpY2VEZXNrSGVhZGVyU2V0dGluZztcclxuICAgIHNlbGVjdGVkVGFiSW5kZXggPSAwO1xyXG4gICAgaGVpZ2h0T2ZTcGFjZUhvbGRlciA9IDg4O1xyXG4gICAgdGFiU2l6ZTogVGFiU2l6ZXM7XHJcbiAgICBzZWFyY2hUZXJtJDogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG4gICAgc2VhcmNoVGVybSA9ICcnO1xyXG4gICAgZGV2aWNlU2l6ZSQ6IE9ic2VydmFibGU8QWJicmV2YXRpb25EZXZpY2VTaXplPjtcclxuICAgIHByaXZhdGUgX2VuYWJsZVNjcm9sbCA9IGZhbHNlO1xyXG4gICAgcHJpdmF0ZSBfZGlzYWJsZUludGVyc2VjdGlvbjogYm9vbGVhbjtcclxuICAgIHByaXZhdGUgX2lzRm9ybU9wZW5lZDogYm9vbGVhbjtcclxuICAgIHByaXZhdGUgX3N0aWNreVRvcFBvc2l0aW9uID0gNjY7XHJcbiAgICBwcml2YXRlIG9ic2VydmVyTGlzdDogeyBlbDogYW55OyBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgfVtdID0gW107XHJcbiAgICBwcml2YXRlIF9sYXN0U2Nyb2xsUG9zOiBudW1iZXI7XHJcbiAgICBhcHBHcm91cHM6IGFueVtdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIF9wb3J0YWxTZXJ2aWNlOiBQb3J0YWxTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBfdGlsZXNTZXJ2aWNlOiBUaWxlc1NlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF90aWxlc1ZpZXdlclNlcnZpY2U6IFRpbGVzVmlld2VyU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgcHJpdmF0ZSBfdmlld3BvcnRTY3JvbGxlcjogVmlld3BvcnRTY3JvbGxlcixcclxuICAgICAgICBwcml2YXRlIF9jZHI6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihfcG9ydGFsU2VydmljZSwgX3RpbGVzU2VydmljZSwgX3RpbGVzVmlld2VyU2VydmljZSk7XHJcbiAgICAgICAgY29uc3Qgcm9vdCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcclxuICAgICAgICByb290LnN0eWxlLnNldFByb3BlcnR5KCctLWFic29sdXRlLXBhZ2UtdG9wJywgdGhpcy5fc3RpY2t5VG9wUG9zaXRpb24gKyAncHgnKTtcclxuICAgIH1cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS5zZWFyY2hUZXJtJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCh0ZXJtKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVGVybSA9IHRlcm07XHJcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5hcHBUaWxlR3JvdXBzJC5zdWJzY3JpYmUoKGFwcFRpbGVHcm91cHMpID0+IHtcclxuICAgICAgICAgICAgYXBwVGlsZUdyb3Vwcy5mb3JFYWNoKChjKSA9PiB0aGlzLl90aWxlc1ZpZXdlclNlcnZpY2UubG9hZEFwcEdyb3VwKGMpKTtcclxuICAgICAgICAgICAgdGhpcy5hcHBHcm91cHMgPSBhcHBUaWxlR3JvdXBzO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMubmF2SG9sZGVyLm5hdGl2ZUVsZW1lbnQsICd0b3AnLCB0aGlzLl9zdGlja3lUb3BQb3NpdGlvbiArICdweCcpO1xyXG5cclxuICAgICAgICB0aGlzLnNldEdyaWRUZW1wbGF0ZVJvd3ModGhpcy5oZWlnaHRPZlNwYWNlSG9sZGVyKTtcclxuICAgICAgICB0aGlzLmRldmljZVNpemUkID0gdGhpcy5fcG9ydGFsU2VydmljZS5kZXZpY2VTaXplJDtcclxuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUkLnN1YnNjcmliZSgoYykgPT4ge1xyXG4gICAgICAgICAgICBsZXQgbmV3SGVpZ2h0ID0gdGhpcy5oZWlnaHRPZlNwYWNlSG9sZGVyO1xyXG4gICAgICAgICAgICB0aGlzLnRhYlNpemUgPSBjO1xyXG4gICAgICAgICAgICBpZiAoYyA9PT0gJ3MnKSB7XHJcbiAgICAgICAgICAgICAgICBuZXdIZWlnaHQgPSA4ODtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChjID09PSAnbScpIHtcclxuICAgICAgICAgICAgICAgIG5ld0hlaWdodCA9IDIyMDtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChjID09PSAnbCcpIHtcclxuICAgICAgICAgICAgICAgIG5ld0hlaWdodCA9IDI1MDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIG5ld0hlaWdodCA9IDMyNTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBuZXdIZWlnaHQgPSA4ODtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaGVpZ2h0T2ZTcGFjZUhvbGRlciAhPT0gbmV3SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhlaWdodE9mU3BhY2VIb2xkZXIgPSBuZXdIZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldEdyaWRUZW1wbGF0ZVJvd3MobmV3SGVpZ2h0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGRldmljZVNpemUgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemU7XHJcbiAgICAgICAgbGV0IHN0aWNreVRvcFBvc2l0aW9uID0gMjA7XHJcbiAgICAgICAgaWYgKGRldmljZVNpemUgPT09ICdzJykge1xyXG4gICAgICAgICAgICBzdGlja3lUb3BQb3NpdGlvbiA9IDYwO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9zdGlja3lEb20odGhpcy5hYm92ZVNlYXJjaC5uYXRpdmVFbGVtZW50LCB0aGlzLnNlYXJjaEhvbGRlci5uYXRpdmVFbGVtZW50LCAtc3RpY2t5VG9wUG9zaXRpb24sICdzdGlja3knKTtcclxuICAgICAgICB0aGlzLl9zdGlja3lEb20oXHJcbiAgICAgICAgICAgIHRoaXMuYWJvdmVDb250ZW50Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIHRoaXMubmF2SG9sZGVyLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIC10aGlzLl9zdGlja3lUb3BQb3NpdGlvbixcclxuICAgICAgICAgICAgJ3N0aWNreSdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuX3N0aWNreURvbShcclxuICAgICAgICAgICAgdGhpcy5hYm92ZUNvbnRlbnQubmF0aXZlRWxlbWVudCxcclxuICAgICAgICAgICAgdGhpcy5iZ091dGVySG9sZGVyLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIC10aGlzLl9zdGlja3lUb3BQb3NpdGlvbixcclxuICAgICAgICAgICAgJ3N0aWNreScsXHJcbiAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmdPdXRlckhvbGRlci5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgdGhpcy5fc3RpY2t5VG9wUG9zaXRpb24gKyAncHgnKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iZ091dGVySG9sZGVyLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCAnMTAwJScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLl9zdGlja3lEb20oXHJcbiAgICAgICAgICAgIHRoaXMuYWJvdmVTZWFyY2gubmF0aXZlRWxlbWVudCxcclxuICAgICAgICAgICAgdGhpcy5jb250ZW50QW5kTmF2Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIC1zdGlja3lUb3BQb3NpdGlvbixcclxuICAgICAgICAgICAgJ25hdkFuZENvbnRlbnRfdGInLFxyXG4gICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5jb250ZW50QW5kTmF2Lm5hdGl2ZUVsZW1lbnQsICdmaXJzdCcpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5jb250ZW50QW5kTmF2Lm5hdGl2ZUVsZW1lbnQsICdmaXJzdCcsICd0cnVlJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9lbmFibGVTY3JvbGwgPSB0cnVlO1xyXG4gICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgIHRoaXMuX3BvcnRhbFNlcnZpY2UubmF2aWdhdGlvblN0YXJ0JC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9sYXN0U2Nyb2xsUG9zID0gd2luZG93LnNjcm9sbFk7XHJcbiAgICAgICAgICAgIGlmIChldmVudCA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIGV2ZW50Py51cmwgIT09ICcvc2VydmljZWRlc2snICYmXHJcbiAgICAgICAgICAgICAgICBldmVudD8udXJsICE9PSAnLycgJiZcclxuICAgICAgICAgICAgICAgIGV2ZW50Py51cmwuc3BsaXQoJ2FwcGdyb3VwZGlhbG9nJykubGVuZ3RoIDwgMiAmJlxyXG4gICAgICAgICAgICAgICAgIXRoaXMuX2Rpc2FibGVJbnRlcnNlY3Rpb25cclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmVGb3JtKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLm5hdmlnYXRpb25FbmQkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIGV2ZW50ICE9PSBudWxsICYmXHJcbiAgICAgICAgICAgICAgICAoZXZlbnQ/LnVybCA9PT0gJy9zZXJ2aWNlZGVzaycgfHwgZXZlbnQ/LnVybCA9PT0gJy8nIHx8IGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzID09PSAnL3NlcnZpY2VkZXNrJylcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVuUHJlcGFyZUZvcm0oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgb25TZWFyY2hTdWJtaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJ3NlcnZpY2VkZXNrL3NlYXJjaD90ZXJtPScgKyB0aGlzLnNlYXJjaFRlcm0pO1xyXG4gICAgICAgIC8vIHZhciBzZWFyY2hNbyA9IEJhcnNhQXBpLkJ3LlJ1bkJsTWV0aG9kKCdHZXRTZWFyY2hNbycsIHRoaXMuc2VhcmNoVGVybSk7XHJcbiAgICAgICAgLy8gQmFyc2FBcGkuQncuRm9ybS5TaG93KHsgTW86IHNlYXJjaE1vIH0pO1xyXG4gICAgfVxyXG4gICAgcHJlcGFyZUZvcm0oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGlzYWJsZUludGVyc2VjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGFjaCgpO1xyXG4gICAgICAgIHRoaXMuZGlzY29ubmVjdEludGVyc2N0aW9uT2JzZXJ2ZXJMaXN0KCk7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5zZWFyY2hIb2xkZXIubmF0aXZlRWxlbWVudCwgJ3N0aWNreScpO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMuY29udGVudEFuZE5hdi5uYXRpdmVFbGVtZW50LCAnaGlkZScpO1xyXG4gICAgICAgIHRoaXMudmlzaWJsZUNvbnRlbnQoZmFsc2UpO1xyXG4gICAgICAgIGNvbnN0IGZsYWdzID0gUmVuZGVyZXJTdHlsZUZsYWdzMi5JbXBvcnRhbnQ7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoZG9jdW1lbnQuYm9keSwgJ292ZXJmbG93JywgJ2hpZGRlbicsIGZsYWdzKTtcclxuICAgICAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XHJcbiAgICB9XHJcbiAgICB1blByZXBhcmVGb3JtKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIHRoaXMuc2V0SGVpZ2h0U2VhcmNoSG9sZGVyKHRoaXMuaGVpZ2h0T2ZTcGFjZUhvbGRlcik7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlQ29udGVudCh0cnVlKTtcclxuICAgICAgICAvLyB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnNlYXJjaEhvbGRlci5uYXRpdmVFbGVtZW50LCAnc3RpY2t5Jyk7XHJcblxyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuc2VhcmNoSG9sZGVyLm5hdGl2ZUVsZW1lbnQsICdoaWRlJyk7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5jb250ZW50QW5kTmF2Lm5hdGl2ZUVsZW1lbnQsICdoaWRlJyk7XHJcbiAgICAgICAgY29uc3QgZmxhZ3MgPSBSZW5kZXJlclN0eWxlRmxhZ3MyLkltcG9ydGFudDtcclxuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShkb2N1bWVudC5ib2R5LCAnb3ZlcmZsb3cnLCAnYXV0bycsIGZsYWdzKTtcclxuICAgICAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XHJcbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIHRoaXMuX2Nkci5yZWF0dGFjaCgpO1xyXG4gICAgICAgIHRoaXMuX2Rpc2FibGVJbnRlcnNlY3Rpb24gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RJbnRlcnNjdGlvbk9ic2VydmVyTGlzdCgpO1xyXG4gICAgfVxyXG4gICAgc2V0SGVpZ2h0U2VhcmNoSG9sZGVyKGhlaWdodCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuaGVhZGVyU3BhY2VIb2xkZXIubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xyXG4gICAgfVxyXG4gICAgdmlzaWJsZUNvbnRlbnQodmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuY29udGVudEFuZE5hdi5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsIHZpc2libGUgPyAnZmxleCcgOiAnbm9uZScpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEdyaWRUZW1wbGF0ZVJvd3MoaGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgICAgICAgdGhpcy5oZWFkZXJHcmlkLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgICdncmlkLXRlbXBsYXRlLXJvd3MnLFxyXG4gICAgICAgICAgICBgbWlubWF4KDc4cHgsIDE1JSkgNDZweCAzMnB4IDFmciBhdXRvIDEyJTsgaGVpZ2h0OiR7aGVpZ2h0fXB4YFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgLy8gdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5oZWFkZXJHcmlkLm5hdGl2ZUVsZW1lbnQsICdiYWNrZ3JvdW5kLWNvbG9yJywgYHJlZGApO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuaGVhZGVyU3BhY2VIb2xkZXIubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xyXG4gICAgfVxyXG4gICAgb25TZWxlY3RlZFRhYkNoYW5nZTMoc2VsZWN0ZWRUYWI6IFRhYlBhbmVsQ29tcG9uZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdGFibGlzdENtcCA9IChzZWxlY3RlZFRhYiBhcyBhbnkpLl90YWJzQ29tcG9uZW50O1xyXG4gICAgICAgIGlmICh0YWJsaXN0Q21wKSB7XHJcbiAgICAgICAgICAgIHRhYmxpc3RDbXAuX2Rpc2FibGVTY3JvbGxTcHkgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkVGFiLmlkID09PSAnMCcpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBlbGVtZW50UmVmT2ZzZWxlY3RlZFRpbGVHcm91cDogSFRNTEVsZW1lbnQgPSB0aGlzLnRpbGVzVmlld2VyR3JvdXBFbExpc3QuZ2V0KFxyXG4gICAgICAgICAgICBOdW1iZXIoc2VsZWN0ZWRUYWIuaWQpXHJcbiAgICAgICAgKT8ubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgICAgZWxlbWVudFJlZk9mc2VsZWN0ZWRUaWxlR3JvdXAuc2Nyb2xsSW50b1ZpZXcoe1xyXG4gICAgICAgICAgICBibG9jazogJ3N0YXJ0J1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBzY3JvbGxUb0xhc3RQb3MoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdmlld3BvcnRTY3JvbGxlci5zY3JvbGxUb1Bvc2l0aW9uKFswLCB0aGlzLl9sYXN0U2Nyb2xsUG9zXSk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIHNjcm9sbFRvVG9wKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9lbmFibGVTY3JvbGwpIHtcclxuICAgICAgICAgICAgdGhpcy5fdmlld3BvcnRTY3JvbGxlci5zY3JvbGxUb1Bvc2l0aW9uKFswLCB0aGlzLmhlaWdodE9mU3BhY2VIb2xkZXIgLSB0aGlzLl9zdGlja3lUb3BQb3NpdGlvbl0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByaXZhdGUgZGlzY29ubmVjdEludGVyc2N0aW9uT2JzZXJ2ZXJMaXN0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub2JzZXJ2ZXJMaXN0LmZvckVhY2goKGMpID0+IGMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpKTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgY29ubmVjdEludGVyc2N0aW9uT2JzZXJ2ZXJMaXN0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub2JzZXJ2ZXJMaXN0LmZvckVhY2goKGMpID0+IGMub2JzZXJ2ZXIub2JzZXJ2ZShjLmVsKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc3RpY2t5RG9tKFxyXG4gICAgICAgIGFib3ZlLFxyXG4gICAgICAgIGhvbGRlcixcclxuICAgICAgICBtYXJnaW5Ub3AsXHJcbiAgICAgICAgY2xhc3NOYW1lLFxyXG4gICAgICAgIHZpc2libGVDYWxsYmFjaz86ICgpID0+IHZvaWQsXHJcbiAgICAgICAgaGlkZGVuQ2FsbEJhY2s/OiAoKSA9PiB2b2lkXHJcbiAgICApOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBoYW5kbGVyID0gKGVudHJpZXMpOiB2b2lkID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVJbnRlcnNlY3Rpb24pIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoIWVudHJpZXNbMF0uaXNJbnRlcnNlY3RpbmcpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKGhvbGRlciwgY2xhc3NOYW1lKTtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmlzaWJsZUNhbGxiYWNrID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmlzaWJsZUNhbGxiYWNrKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyhob2xkZXIsIGNsYXNzTmFtZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGhpZGRlbkNhbGxCYWNrID09PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaGlkZGVuQ2FsbEJhY2soKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcclxuICAgICAgICAgICAgcm9vdE1hcmdpbjogYCR7bWFyZ2luVG9wfXB4IDBweCAwcHggMHB4YCxcclxuICAgICAgICAgICAgdGhyZXNob2xkOiAwLjFcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IG9ic2VydmVyID0gbmV3IHdpbmRvdy5JbnRlcnNlY3Rpb25PYnNlcnZlcihoYW5kbGVyLCBvcHRpb25zKTtcclxuXHJcbiAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShhYm92ZSk7XHJcbiAgICAgICAgdGhpcy5vYnNlcnZlckxpc3QucHVzaCh7IGVsOiBhYm92ZSwgb2JzZXJ2ZXIgfSk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBTZXJ2aWNlRGVza0hlYWRlclNldHRpbmcgZXh0ZW5kcyBNZXRhb2JqZWN0RGF0YU1vZGVsIHtcclxuICAgIEhpZGVTZWFyY2g6IGJvb2xlYW47XHJcbiAgICBIaWRlVGFiczogYm9vbGVhbjtcclxufVxyXG4iLCI8ZGl2IGlkPVwiaGVhZGVyR3JpZFwiIHN0eWxlPVwiZ3JpZC10ZW1wbGF0ZS1yb3dzOiBtaW5tYXgoMXB4LCAxNSUpIDQ4cHggMzJweCAxZnIgYXV0byAxMiU7IGhlaWdodDogMTQ4cHhcIiAjaGVhZGVyR3JpZD5cclxuICAgIDxkaXYgY2xhc3M9XCJjb21wYW55TG9nb0hvbGRlcl9hYm92ZVNlYXJjaFwiICNhYm92ZVNlYXJjaD48L2Rpdj5cclxuICAgIDxkaXYgaWQ9XCJzZWFyY2hIb2xkZXJcIiBzdHlsZT1cImdyaWQtcm93OiAyXCIgI3NlYXJjaEhvbGRlcj5cclxuICAgICAgICA8ZmQtaW5wdXQtZ3JvdXBcclxuICAgICAgICAgICAgW3N0eWxlLmRpc3BsYXldPVwic2V0dGluZ3M/LkhpZGVTZWFyY2ggPyAnbm9uZScgOiBudWxsXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJpbnB1dC1zZWFyY2hcIlxyXG4gICAgICAgICAgICBjb250ZW50RGVuc2l0eT1cImNvenlcIlxyXG4gICAgICAgICAgICBmZC10b29sYmFyLWl0ZW1cclxuICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXHJcbiAgICAgICAgICAgIGdseXBoPVwic2VhcmNoXCJcclxuICAgICAgICAgICAgW2dseXBoQXJpYUxhYmVsXT1cIidTZWFyY2gnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTZWFyY2gnIHwgYmJiVHJhbnNsYXRlXCJcclxuICAgICAgICAgICAgW2J1dHRvbl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXJtXCJcclxuICAgICAgICAgICAgKGFkZE9uQnV0dG9uQ2xpY2tlZCk9XCJvblNlYXJjaFN1Ym1pdCgpXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgPC9mZC1pbnB1dC1ncm91cD5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBpZD1cImhlYWRlclNwYWNlSG9sZGVyXCIgI2hlYWRlclNwYWNlSG9sZGVyPlxyXG4gICAgPGRpdiBpZD1cImJnT3V0ZXJIb2xkZXJcIiAjYmdPdXRlckhvbGRlcj5cclxuICAgICAgICA8ZGl2IGlkPVwiYmdJbm5lckhvbGRlclwiIHN0eWxlPVwiaGVpZ2h0OiAxMDB2aFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFja2dyb3VuZEltYWdlXCIgaWQ9XCJiYWNrZ3JvdW5kSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJwaWN0dXJlXCIgc3JjPVwiL2Fzc2V0cy9iYWNrLmpwZ1wiIGxvYWRpbmc9XCJsYXp5XCIgLz5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGlkPVwiYmFja2dyb3VuZEltYWdlT3ZlcmxheVwiIGNsYXNzPVwib3ZlcmxheVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgaWQ9XCJjb250ZW50SG9sZGVyQW5kTmF2XCIgZmlyc3Q9XCJ0cnVlXCIgI2NvbnRlbnRBbmROYXYgZmlsbEVtcHR5U3BhY2UgW3NldE1pbkhlaWdodF09XCJ0cnVlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYWJvdmVDb250ZW50XCIgI2Fib3ZlQ29udGVudD48L2Rpdj5cclxuICAgIDxkaXYgaWQ9XCJjb250ZW50SG9sZGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hdlwiICNuYXZIb2xkZXI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuYXYtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZW5kZXJUYWJzOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogKGFwcFRpbGVHcm91cHMkIHwgYXN5bmMpISEgfVwiXHJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJuYXZfc3Vycm9nYXRlXCIgc3R5bGU9XCJoZWlnaHQ6IDEwcHhcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1mZWVkXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyR3JvdXBzOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogKGFwcFRpbGVHcm91cHMkIHwgYXN5bmMpISEgfVwiXHJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPG5nLXRlbXBsYXRlICNyZW5kZXJUYWJzIGxldC1hcHBUaWxlR3JvdXBzPlxyXG4gICAgPGZkLXRhYi1saXN0XHJcbiAgICAgICAgW3NpemVdPVwidGFiU2l6ZVwiXHJcbiAgICAgICAgW2NvbGxhcHNlT3ZlcmZsb3ddPVwidGFiU2l6ZSA9PT0gJ3MnIHx8IGFwcFRpbGVHcm91cHMubGVuZ3RoID4gNVwiXHJcbiAgICAgICAgW2V4cGFuZE92ZXJmbG93VGV4dF09XCInTW9yZScgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgIChzZWxlY3RlZFRhYkNoYW5nZSk9XCJvblNlbGVjdGVkVGFiQ2hhbmdlMygkZXZlbnQpXCJcclxuICAgID5cclxuICAgICAgICBAZm9yIChhcHBUaWxlR3JvdXAgb2YgYXBwVGlsZUdyb3VwczsgdHJhY2sgYXBwVGlsZUdyb3VwOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICAgIDxmZC10YWIgW2lkXT1cIicnICsgaVwiIFt0aXRsZV09XCJhcHBUaWxlR3JvdXAubmF2aWdhdG9yVGl0bGVcIj4gPC9mZC10YWI+XHJcbiAgICAgICAgfVxyXG4gICAgPC9mZC10YWItbGlzdD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICNyZW5kZXJHcm91cHMgbGV0LWFwcFRpbGVHcm91cHM+XHJcbiAgICBAZm9yIChhcHBUaWxlR3JvdXAgb2YgYXBwVGlsZUdyb3VwczsgdHJhY2sgYXBwVGlsZUdyb3VwOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgPGJ0LXRpbGVzLXZpZXdlci1ncm91cFxyXG4gICAgICAgIFtjbGFzc109XCJkZXZpY2VTaXplJCB8IGFzeW5jXCJcclxuICAgICAgICBbYXR0ci5pbmRleF09XCJpXCJcclxuICAgICAgICBbYXBwVGlsZUdyb3VwXT1cImFwcFRpbGVHcm91cFwiXHJcbiAgICAgICAgW2VkaXRdPVwiZmFsc2VcIlxyXG4gICAgICAgIFtzdGFja0NvbnRlbnRdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2lzQXBwVGlsZVN1Ykdyb3VwXT1cImZhbHNlXCJcclxuICAgICAgICBbZGV2aWNlU2l6ZV09XCIoZGV2aWNlU2l6ZSQgfCBhc3luYykhIVwiXHJcbiAgICA+PC9idC10aWxlcy12aWV3ZXItZ3JvdXA+XHJcbiAgICB9XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1kZXNrLWhlYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1kZXZlbG9wLWNvbXBvbmVudHMvc3JjL2xpYi9zZXJ2aWNlLWRlc2staGVhZGVyL3NlcnZpY2UtZGVzay1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFyc2EtZGV2ZWxvcC1jb21wb25lbnRzL3NyYy9saWIvc2VydmljZS1kZXNrLWhlYWRlci9zZXJ2aWNlLWRlc2staGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUVqQixVQUFVLEVBQ1YsU0FBUyxFQUVULFlBQVksRUFHWixtQkFBbUIsRUFDbkIsS0FBSyxFQUNMLFdBQVcsRUFDZCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQWMsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxpQkFBaUIsRUFBWSxNQUFNLHVCQUF1QixDQUFDO0FBRXBFLE9BQU8sRUFDSCw2QkFBNkIsRUFDN0Isa0JBQWtCLEVBRWxCLHlCQUF5QixFQUM1QixNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7OztBQVdyQixNQUFNLE9BQU8sMEJBQTJCLFNBQVEsNkJBQTZCO0lBMkJ6RSxZQUNjLGNBQTZCLEVBQzdCLGFBQTJCLEVBQzNCLG1CQUF1QyxFQUN2QyxTQUFvQixFQUN0QixpQkFBbUMsRUFDbkMsSUFBdUI7UUFFL0IsS0FBSyxDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQVBoRCxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBYztRQUMzQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBQ3ZDLGNBQVMsR0FBVCxTQUFT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RSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsYUFBYTtzQkFBMUQsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNtQixzQkFBc0I7c0JBQXBGLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUM1QixrQkFBa0I7c0JBQWxELFlBQVk7dUJBQUMsaUJBQWlCO2dCQUNILE1BQU07c0JBQWpDLFdBQVc7dUJBQUMsYUFBYTtnQkFDakIsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBPbkluaXQsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIEVsZW1lbnRSZWYsXHJcbiAgICBWaWV3Q2hpbGQsXHJcbiAgICBSZW5kZXJlcjIsXHJcbiAgICBWaWV3Q2hpbGRyZW4sXHJcbiAgICBRdWVyeUxpc3QsXHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIFJlbmRlcmVyU3R5bGVGbGFnczIsXHJcbiAgICBJbnB1dCxcclxuICAgIEhvc3RCaW5kaW5nXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFZpZXdwb3J0U2Nyb2xsZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgVGFiUGFuZWxDb21wb25lbnQsIFRhYlNpemVzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlJztcclxuaW1wb3J0IHsgTWV0YW9iamVjdERhdGFNb2RlbCwgUG9ydGFsU2VydmljZSwgQWJicmV2YXRpb25EZXZpY2VTaXplIH0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgVGlsZXNWaWV3ZXJDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBUaWxlc1ZpZXdlclNlcnZpY2UsXHJcbiAgICBUaWxlc1NlcnZpY2UsXHJcbiAgICBUaWxlc1ZpZXdlckdyb3VwQ29tcG9uZW50XHJcbn0gZnJvbSAnYmFyc2EtdGlsZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2JkYy1zZXJ2aWNlLWRlc2staGVhZGVyJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZXJ2aWNlLWRlc2staGVhZGVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL3NlcnZpY2UtZGVzay1oZWFkZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHByb3ZpZGVyczogW1RpbGVzVmlld2VyU2VydmljZV0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBzdGFuZGFsb25lOiBmYWxzZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VydmljZURlc2tIZWFkZXJDb21wb25lbnQgZXh0ZW5kcyBUaWxlc1ZpZXdlckNvbnRhaW5lckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKCdoZWFkZXJTcGFjZUhvbGRlcicsIHsgc3RhdGljOiB0cnVlIH0pIGhlYWRlclNwYWNlSG9sZGVyOiBFbGVtZW50UmVmPGFueT47XHJcbiAgICBAVmlld0NoaWxkKCdoZWFkZXJHcmlkJywgeyBzdGF0aWM6IHRydWUgfSkgaGVhZGVyR3JpZDogRWxlbWVudFJlZjxhbnk+O1xyXG4gICAgQFZpZXdDaGlsZCgnYWJvdmVTZWFyY2gnLCB7IHN0YXRpYzogdHJ1ZSB9KSBhYm92ZVNlYXJjaDogRWxlbWVudFJlZjxhbnk+O1xyXG4gICAgQFZpZXdDaGlsZCgnc2VhcmNoSG9sZGVyJywgeyBzdGF0aWM6IHRydWUgfSkgc2VhcmNoSG9sZGVyOiBFbGVtZW50UmVmPGFueT47XHJcbiAgICBAVmlld0NoaWxkKCduYXZIb2xkZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBuYXZIb2xkZXI6IEVsZW1lbnRSZWY8YW55PjtcclxuICAgIEBWaWV3Q2hpbGQoJ2Fib3ZlQ29udGVudCcsIHsgc3RhdGljOiB0cnVlIH0pIGFib3ZlQ29udGVudDogRWxlbWVudFJlZjxhbnk+O1xyXG4gICAgQFZpZXdDaGlsZCgnYmdPdXRlckhvbGRlcicsIHsgc3RhdGljOiB0cnVlIH0pIGJnT3V0ZXJIb2xkZXI6IEVsZW1lbnRSZWY8YW55PjtcclxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRlbnRBbmROYXYnLCB7IHN0YXRpYzogdHJ1ZSB9KSBjb250ZW50QW5kTmF2OiBFbGVtZW50UmVmPGFueT47XHJcbiAgICBAVmlld0NoaWxkcmVuKFRpbGVzVmlld2VyR3JvdXBDb21wb25lbnQsIHsgcmVhZDogRWxlbWVudFJlZiB9KSB0aWxlc1ZpZXdlckdyb3VwRWxMaXN0OiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XHJcbiAgICBAVmlld0NoaWxkcmVuKFRhYlBhbmVsQ29tcG9uZW50KSB0YWJQYW5lbENvbXBvbmVudHM6IFF1ZXJ5TGlzdDxUYWJQYW5lbENvbXBvbmVudD47XHJcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLm1vZGUyJykgX21vZGUyID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBzZXR0aW5nczogU2VydmljZURlc2tIZWFkZXJTZXR0aW5nO1xyXG4gICAgc2VsZWN0ZWRUYWJJbmRleCA9IDA7XHJcbiAgICBoZWlnaHRPZlNwYWNlSG9sZGVyID0gNjY7XHJcbiAgICB0YWJTaXplOiBUYWJTaXplcztcclxuICAgIHNlYXJjaFRlcm0kOiBPYnNlcnZhYmxlPHN0cmluZz47XHJcbiAgICBzZWFyY2hUZXJtID0gJyc7XHJcbiAgICBkZXZpY2VTaXplJDogT2JzZXJ2YWJsZTxBYmJyZXZhdGlvbkRldmljZVNpemU+O1xyXG4gICAgcHJpdmF0ZSBfZW5hYmxlU2Nyb2xsID0gZmFsc2U7XHJcbiAgICBwcml2YXRlIF9kaXNhYmxlSW50ZXJzZWN0aW9uOiBib29sZWFuO1xyXG4gICAgcHJpdmF0ZSBfaXNGb3JtT3BlbmVkOiBib29sZWFuO1xyXG4gICAgcHJpdmF0ZSBfc3RpY2t5VG9wUG9zaXRpb24gPSA2NjtcclxuICAgIHByaXZhdGUgb2JzZXJ2ZXJMaXN0OiB7IGVsOiBhbnk7IG9ic2VydmVyOiBJbnRlcnNlY3Rpb25PYnNlcnZlciB9W10gPSBbXTtcclxuICAgIHByaXZhdGUgX2xhc3RTY3JvbGxQb3M6IG51bWJlcjtcclxuICAgIGFwcEdyb3VwczogYW55W10gPSBbXTtcclxuICAgIGltYWdlVXJsOiBzdHJpbmc7XHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2UsXHJcbiAgICAgICAgcHJvdGVjdGVkIF90aWxlc1NlcnZpY2U6IFRpbGVzU2VydmljZSxcclxuICAgICAgICBwcm90ZWN0ZWQgX3RpbGVzVmlld2VyU2VydmljZTogVGlsZXNWaWV3ZXJTZXJ2aWNlLFxyXG4gICAgICAgIHByb3RlY3RlZCBfcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgICAgICBwcml2YXRlIF92aWV3cG9ydFNjcm9sbGVyOiBWaWV3cG9ydFNjcm9sbGVyLFxyXG4gICAgICAgIHByaXZhdGUgX2NkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKF9wb3J0YWxTZXJ2aWNlLCBfdGlsZXNTZXJ2aWNlLCBfdGlsZXNWaWV3ZXJTZXJ2aWNlKTtcclxuICAgICAgICBjb25zdCByb290ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xyXG4gICAgICAgIHJvb3Quc3R5bGUuc2V0UHJvcGVydHkoJy0tYWJzb2x1dGUtcGFnZS10b3AnLCB0aGlzLl9zdGlja3lUb3BQb3NpdGlvbiArICdweCcpO1xyXG4gICAgfVxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcclxuICAgICAgICB0aGlzLl9tb2RlMiA9IHRydWUgfHwgdGhpcy5zZXR0aW5ncy5Nb2RlMjtcclxuICAgICAgICB0aGlzLmltYWdlVXJsID0gdGhpcy5fcG9ydGFsU2VydmljZS5pbWFnZVVybCB8fCAnL2Fzc2V0cy9iYWNrLmpwZyc7XHJcbiAgICAgICAgdGhpcy5fcG9ydGFsU2VydmljZS5zZWFyY2hUZXJtJC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKCh0ZXJtKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VhcmNoVGVybSA9IHRlcm07XHJcbiAgICAgICAgICAgIHRoaXMuX2Nkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5hcHBUaWxlR3JvdXBzJC5zdWJzY3JpYmUoKGFwcFRpbGVHcm91cHMpID0+IHtcclxuICAgICAgICAgICAgYXBwVGlsZUdyb3Vwcy5mb3JFYWNoKChjKSA9PiB0aGlzLl90aWxlc1ZpZXdlclNlcnZpY2UubG9hZEFwcEdyb3VwKGMpKTtcclxuICAgICAgICAgICAgdGhpcy5hcHBHcm91cHMgPSBhcHBUaWxlR3JvdXBzO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMubmF2SG9sZGVyLm5hdGl2ZUVsZW1lbnQsICd0b3AnLCB0aGlzLl9zdGlja3lUb3BQb3NpdGlvbiArICdweCcpO1xyXG5cclxuICAgICAgICB0aGlzLnNldEdyaWRUZW1wbGF0ZVJvd3ModGhpcy5oZWlnaHRPZlNwYWNlSG9sZGVyKTtcclxuICAgICAgICB0aGlzLmRldmljZVNpemUkID0gdGhpcy5fcG9ydGFsU2VydmljZS5kZXZpY2VTaXplJDtcclxuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUkLnN1YnNjcmliZSgoYykgPT4ge1xyXG4gICAgICAgICAgICBsZXQgbmV3SGVpZ2h0ID0gdGhpcy5oZWlnaHRPZlNwYWNlSG9sZGVyO1xyXG4gICAgICAgICAgICB0aGlzLnRhYlNpemUgPSBjO1xyXG4gICAgICAgICAgICBpZiAoYyA9PT0gJ3MnKSB7XHJcbiAgICAgICAgICAgICAgICBuZXdIZWlnaHQgPSA2NjtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChjID09PSAnbScpIHtcclxuICAgICAgICAgICAgICAgIG5ld0hlaWdodCA9IDIyMDtcclxuICAgICAgICAgICAgfSBlbHNlIGlmIChjID09PSAnbCcpIHtcclxuICAgICAgICAgICAgICAgIG5ld0hlaWdodCA9IDI1MDtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIG5ld0hlaWdodCA9IDMyNTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBuZXdIZWlnaHQgPSA2NjtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaGVpZ2h0T2ZTcGFjZUhvbGRlciAhPT0gbmV3SGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhlaWdodE9mU3BhY2VIb2xkZXIgPSBuZXdIZWlnaHQ7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldEdyaWRUZW1wbGF0ZVJvd3MobmV3SGVpZ2h0KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGRldmljZVNpemUgPSB0aGlzLl9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemU7XHJcbiAgICAgICAgbGV0IHN0aWNreVRvcFBvc2l0aW9uID0gMjA7XHJcbiAgICAgICAgaWYgKGRldmljZVNpemUgPT09ICdzJykge1xyXG4gICAgICAgICAgICBzdGlja3lUb3BQb3NpdGlvbiA9IDYwO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLl9zdGlja3lEb20odGhpcy5hYm92ZVNlYXJjaC5uYXRpdmVFbGVtZW50LCB0aGlzLnNlYXJjaEhvbGRlci5uYXRpdmVFbGVtZW50LCAtc3RpY2t5VG9wUG9zaXRpb24sICdzdGlja3knKTtcclxuICAgICAgICB0aGlzLl9zdGlja3lEb20oXHJcbiAgICAgICAgICAgIHRoaXMuYWJvdmVDb250ZW50Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIHRoaXMubmF2SG9sZGVyLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIC10aGlzLl9zdGlja3lUb3BQb3NpdGlvbixcclxuICAgICAgICAgICAgJ3N0aWNreSdcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuX3N0aWNreURvbShcclxuICAgICAgICAgICAgdGhpcy5hYm92ZUNvbnRlbnQubmF0aXZlRWxlbWVudCxcclxuICAgICAgICAgICAgdGhpcy5iZ091dGVySG9sZGVyLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIC10aGlzLl9zdGlja3lUb3BQb3NpdGlvbixcclxuICAgICAgICAgICAgJ3N0aWNreScsXHJcbiAgICAgICAgICAgICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuYmdPdXRlckhvbGRlci5uYXRpdmVFbGVtZW50LCAnaGVpZ2h0JywgdGhpcy5fc3RpY2t5VG9wUG9zaXRpb24gKyAncHgnKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5iZ091dGVySG9sZGVyLm5hdGl2ZUVsZW1lbnQsICdoZWlnaHQnLCAnMTAwJScpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLl9zdGlja3lEb20oXHJcbiAgICAgICAgICAgIHRoaXMuYWJvdmVTZWFyY2gubmF0aXZlRWxlbWVudCxcclxuICAgICAgICAgICAgdGhpcy5jb250ZW50QW5kTmF2Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIC1zdGlja3lUb3BQb3NpdGlvbixcclxuICAgICAgICAgICAgJ25hdkFuZENvbnRlbnRfdGInLFxyXG4gICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUodGhpcy5jb250ZW50QW5kTmF2Lm5hdGl2ZUVsZW1lbnQsICdmaXJzdCcpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5jb250ZW50QW5kTmF2Lm5hdGl2ZUVsZW1lbnQsICdmaXJzdCcsICd0cnVlJyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9lbmFibGVTY3JvbGwgPSB0cnVlO1xyXG4gICAgICAgIH0sIDEwMDApO1xyXG4gICAgICAgIHRoaXMuX3BvcnRhbFNlcnZpY2UubmF2aWdhdGlvblN0YXJ0JC5waXBlKHRha2VVbnRpbCh0aGlzLl9vbkRlc3Ryb3kkKSkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9sYXN0U2Nyb2xsUG9zID0gd2luZG93LnNjcm9sbFk7XHJcbiAgICAgICAgICAgIGlmIChldmVudCA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIGV2ZW50Py51cmwgIT09ICcvc2VydmljZWRlc2snICYmXHJcbiAgICAgICAgICAgICAgICBldmVudD8udXJsICE9PSAnLycgJiZcclxuICAgICAgICAgICAgICAgIGV2ZW50Py51cmwuc3BsaXQoJ2FwcGdyb3VwZGlhbG9nJykubGVuZ3RoIDwgMiAmJlxyXG4gICAgICAgICAgICAgICAgIXRoaXMuX2Rpc2FibGVJbnRlcnNlY3Rpb25cclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnByZXBhcmVGb3JtKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLl9wb3J0YWxTZXJ2aWNlLm5hdmlnYXRpb25FbmQkLnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChcclxuICAgICAgICAgICAgICAgIGV2ZW50ICE9PSBudWxsICYmXHJcbiAgICAgICAgICAgICAgICAoZXZlbnQ/LnVybCA9PT0gJy9zZXJ2aWNlZGVzaycgfHwgZXZlbnQ/LnVybCA9PT0gJy8nIHx8IGV2ZW50LnVybEFmdGVyUmVkaXJlY3RzID09PSAnL3NlcnZpY2VkZXNrJylcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnVuUHJlcGFyZUZvcm0oKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgb25TZWFyY2hTdWJtaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcm91dGVyLm5hdmlnYXRlQnlVcmwoJ3NlcnZpY2VkZXNrL3NlYXJjaD90ZXJtPScgKyB0aGlzLnNlYXJjaFRlcm0pO1xyXG4gICAgICAgIC8vIHZhciBzZWFyY2hNbyA9IEJhcnNhQXBpLkJ3LlJ1bkJsTWV0aG9kKCdHZXRTZWFyY2hNbycsIHRoaXMuc2VhcmNoVGVybSk7XHJcbiAgICAgICAgLy8gQmFyc2FBcGkuQncuRm9ybS5TaG93KHsgTW86IHNlYXJjaE1vIH0pO1xyXG4gICAgfVxyXG4gICAgcHJlcGFyZUZvcm0oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fZGlzYWJsZUludGVyc2VjdGlvbiA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5fY2RyLmRldGFjaCgpO1xyXG4gICAgICAgIHRoaXMuZGlzY29ubmVjdEludGVyc2N0aW9uT2JzZXJ2ZXJMaXN0KCk7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5zZWFyY2hIb2xkZXIubmF0aXZlRWxlbWVudCwgJ3N0aWNreScpO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMuY29udGVudEFuZE5hdi5uYXRpdmVFbGVtZW50LCAnaGlkZScpO1xyXG4gICAgICAgIHRoaXMudmlzaWJsZUNvbnRlbnQoZmFsc2UpO1xyXG4gICAgICAgIGNvbnN0IGZsYWdzID0gUmVuZGVyZXJTdHlsZUZsYWdzMi5JbXBvcnRhbnQ7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoZG9jdW1lbnQuYm9keSwgJ292ZXJmbG93JywgJ2hpZGRlbicsIGZsYWdzKTtcclxuICAgICAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XHJcbiAgICB9XHJcbiAgICB1blByZXBhcmVGb3JtKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIHRoaXMuc2V0SGVpZ2h0U2VhcmNoSG9sZGVyKHRoaXMuaGVpZ2h0T2ZTcGFjZUhvbGRlcik7XHJcbiAgICAgICAgdGhpcy52aXNpYmxlQ29udGVudCh0cnVlKTtcclxuICAgICAgICAvLyB0aGlzLl9yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLnNlYXJjaEhvbGRlci5uYXRpdmVFbGVtZW50LCAnc3RpY2t5Jyk7XHJcblxyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuc2VhcmNoSG9sZGVyLm5hdGl2ZUVsZW1lbnQsICdoaWRlJyk7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5jb250ZW50QW5kTmF2Lm5hdGl2ZUVsZW1lbnQsICdoaWRlJyk7XHJcbiAgICAgICAgY29uc3QgZmxhZ3MgPSBSZW5kZXJlclN0eWxlRmxhZ3MyLkltcG9ydGFudDtcclxuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShkb2N1bWVudC5ib2R5LCAnb3ZlcmZsb3cnLCAnYXV0bycsIGZsYWdzKTtcclxuICAgICAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XHJcbiAgICAgICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgIHRoaXMuX2Nkci5yZWF0dGFjaCgpO1xyXG4gICAgICAgIHRoaXMuX2Rpc2FibGVJbnRlcnNlY3Rpb24gPSBmYWxzZTtcclxuICAgICAgICB0aGlzLmNvbm5lY3RJbnRlcnNjdGlvbk9ic2VydmVyTGlzdCgpO1xyXG4gICAgfVxyXG4gICAgc2V0SGVpZ2h0U2VhcmNoSG9sZGVyKGhlaWdodCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuaGVhZGVyU3BhY2VIb2xkZXIubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xyXG4gICAgfVxyXG4gICAgdmlzaWJsZUNvbnRlbnQodmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuY29udGVudEFuZE5hdi5uYXRpdmVFbGVtZW50LCAnZGlzcGxheScsIHZpc2libGUgPyAnZmxleCcgOiAnbm9uZScpO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEdyaWRUZW1wbGF0ZVJvd3MoaGVpZ2h0OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgICAgICAgdGhpcy5oZWFkZXJHcmlkLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgICdncmlkLXRlbXBsYXRlLXJvd3MnLFxyXG4gICAgICAgICAgICBgbWlubWF4KDc4cHgsIDE1JSkgNDZweCAzMnB4IDFmciBhdXRvIDEyJTsgaGVpZ2h0OiR7aGVpZ2h0fXB4YFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgLy8gdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5oZWFkZXJHcmlkLm5hdGl2ZUVsZW1lbnQsICdiYWNrZ3JvdW5kLWNvbG9yJywgYHJlZGApO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMuaGVhZGVyU3BhY2VIb2xkZXIubmF0aXZlRWxlbWVudCwgJ2hlaWdodCcsIGAke2hlaWdodH1weGApO1xyXG4gICAgfVxyXG4gICAgb25TZWxlY3RlZFRhYkNoYW5nZTMoc2VsZWN0ZWRUYWI6IFRhYlBhbmVsQ29tcG9uZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdGFibGlzdENtcCA9IChzZWxlY3RlZFRhYiBhcyBhbnkpLl90YWJzQ29tcG9uZW50O1xyXG4gICAgICAgIGlmICh0YWJsaXN0Q21wKSB7XHJcbiAgICAgICAgICAgIHRhYmxpc3RDbXAuX2Rpc2FibGVTY3JvbGxTcHkgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnNjcm9sbFRvVG9wKCk7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkVGFiLmlkID09PSAnMCcpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBlbGVtZW50UmVmT2ZzZWxlY3RlZFRpbGVHcm91cDogSFRNTEVsZW1lbnQgPSB0aGlzLnRpbGVzVmlld2VyR3JvdXBFbExpc3QuZ2V0KFxyXG4gICAgICAgICAgICBOdW1iZXIoc2VsZWN0ZWRUYWIuaWQpXHJcbiAgICAgICAgKT8ubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgICAgZWxlbWVudFJlZk9mc2VsZWN0ZWRUaWxlR3JvdXAuc2Nyb2xsSW50b1ZpZXcoe1xyXG4gICAgICAgICAgICBibG9jazogJ3N0YXJ0J1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBzY3JvbGxUb0xhc3RQb3MoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fdmlld3BvcnRTY3JvbGxlci5zY3JvbGxUb1Bvc2l0aW9uKFswLCB0aGlzLl9sYXN0U2Nyb2xsUG9zXSk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIHNjcm9sbFRvVG9wKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLl9lbmFibGVTY3JvbGwpIHtcclxuICAgICAgICAgICAgdGhpcy5fdmlld3BvcnRTY3JvbGxlci5zY3JvbGxUb1Bvc2l0aW9uKFswLCB0aGlzLmhlaWdodE9mU3BhY2VIb2xkZXIgLSB0aGlzLl9zdGlja3lUb3BQb3NpdGlvbl0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIHByaXZhdGUgZGlzY29ubmVjdEludGVyc2N0aW9uT2JzZXJ2ZXJMaXN0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub2JzZXJ2ZXJMaXN0LmZvckVhY2goKGMpID0+IGMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpKTtcclxuICAgIH1cclxuICAgIHByaXZhdGUgY29ubmVjdEludGVyc2N0aW9uT2JzZXJ2ZXJMaXN0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub2JzZXJ2ZXJMaXN0LmZvckVhY2goKGMpID0+IGMub2JzZXJ2ZXIub2JzZXJ2ZShjLmVsKSk7XHJcbiAgICB9XHJcbiAgICBwcml2YXRlIF9zZXRCYWNrZ3JvdW5kKCk6IHZvaWQge31cclxuICAgIHByaXZhdGUgX3N0aWNreURvbShcclxuICAgICAgICBhYm92ZSxcclxuICAgICAgICBob2xkZXIsXHJcbiAgICAgICAgbWFyZ2luVG9wLFxyXG4gICAgICAgIGNsYXNzTmFtZSxcclxuICAgICAgICB2aXNpYmxlQ2FsbGJhY2s/OiAoKSA9PiB2b2lkLFxyXG4gICAgICAgIGhpZGRlbkNhbGxCYWNrPzogKCkgPT4gdm9pZFxyXG4gICAgKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaGFuZGxlciA9IChlbnRyaWVzKTogdm9pZCA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLl9kaXNhYmxlSW50ZXJzZWN0aW9uKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgaWYgKCFlbnRyaWVzWzBdLmlzSW50ZXJzZWN0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyhob2xkZXIsIGNsYXNzTmFtZSk7XHJcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHZpc2libGVDYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHZpc2libGVDYWxsYmFjaygpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2xhc3MoaG9sZGVyLCBjbGFzc05hbWUpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBoaWRkZW5DYWxsQmFjayA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgICAgICAgICAgICAgIGhpZGRlbkNhbGxCYWNrKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIHJvb3RNYXJnaW46IGAke21hcmdpblRvcH1weCAwcHggMHB4IDBweGAsXHJcbiAgICAgICAgICAgIHRocmVzaG9sZDogMC4xXHJcbiAgICAgICAgfTtcclxuICAgICAgICBjb25zdCBvYnNlcnZlciA9IG5ldyB3aW5kb3cuSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoaGFuZGxlciwgb3B0aW9ucyk7XHJcblxyXG4gICAgICAgIG9ic2VydmVyLm9ic2VydmUoYWJvdmUpO1xyXG4gICAgICAgIHRoaXMub2JzZXJ2ZXJMaXN0LnB1c2goeyBlbDogYWJvdmUsIG9ic2VydmVyIH0pO1xyXG4gICAgfVxyXG59XHJcblxyXG5pbnRlcmZhY2UgU2VydmljZURlc2tIZWFkZXJTZXR0aW5nIGV4dGVuZHMgTWV0YW9iamVjdERhdGFNb2RlbCB7XHJcbiAgICBIaWRlU2VhcmNoOiBib29sZWFuO1xyXG4gICAgSGlkZVRhYnM6IGJvb2xlYW47XHJcbn1cclxuIiwiPGRpdiBpZD1cImhlYWRlckdyaWRcIiBzdHlsZT1cImdyaWQtdGVtcGxhdGUtcm93czogbWlubWF4KDFweCwgMTUlKSA0OHB4IDMycHggMWZyIGF1dG8gMTIlOyBoZWlnaHQ6IDE0OHB4XCIgI2hlYWRlckdyaWQ+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29tcGFueUxvZ29Ib2xkZXJfYWJvdmVTZWFyY2hcIiAjYWJvdmVTZWFyY2g+PC9kaXY+XHJcbiAgICA8ZGl2IGlkPVwic2VhcmNoSG9sZGVyXCIgc3R5bGU9XCJncmlkLXJvdzogMlwiICNzZWFyY2hIb2xkZXI+XHJcbiAgICAgICAgPGZkLWlucHV0LWdyb3VwXHJcbiAgICAgICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cInNldHRpbmdzPy5IaWRlU2VhcmNoID8gJ25vbmUnIDogbnVsbFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtc2VhcmNoXCJcclxuICAgICAgICAgICAgY29udGVudERlbnNpdHk9XCJjb3p5XCJcclxuICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXHJcbiAgICAgICAgICAgIHR5cGU9XCJzZWFyY2hcIlxyXG4gICAgICAgICAgICBnbHlwaD1cInNlYXJjaFwiXHJcbiAgICAgICAgICAgIFtnbHlwaEFyaWFMYWJlbF09XCInU2VhcmNoJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU2VhcmNoJyB8IGJiYlRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgIFtidXR0b25dPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGVybVwiXHJcbiAgICAgICAgICAgIChhZGRPbkJ1dHRvbkNsaWNrZWQpPVwib25TZWFyY2hTdWJtaXQoKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgIDwvZmQtaW5wdXQtZ3JvdXA+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgaWQ9XCJoZWFkZXJTcGFjZUhvbGRlclwiICNoZWFkZXJTcGFjZUhvbGRlcj5cclxuICAgIDxkaXYgaWQ9XCJiZ091dGVySG9sZGVyXCIgI2JnT3V0ZXJIb2xkZXI+XHJcbiAgICAgICAgPGRpdiBpZD1cImJnSW5uZXJIb2xkZXJcIiBzdHlsZT1cImhlaWdodDogMTAwdmhcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJhY2tncm91bmRJbWFnZVwiIGlkPVwiYmFja2dyb3VuZEltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwicGljdHVyZVwiIFthdHRyLnNyY109XCJpbWFnZVVybFwiIGxvYWRpbmc9XCJsYXp5XCIgLz5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGlkPVwiYmFja2dyb3VuZEltYWdlT3ZlcmxheVwiIGNsYXNzPVwib3ZlcmxheVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgaWQ9XCJjb250ZW50SG9sZGVyQW5kTmF2XCIgZmlyc3Q9XCJ0cnVlXCIgI2NvbnRlbnRBbmROYXYgZmlsbEVtcHR5U3BhY2UgW3NldE1pbkhlaWdodF09XCJ0cnVlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYWJvdmVDb250ZW50XCIgI2Fib3ZlQ29udGVudD48L2Rpdj5cclxuICAgIDxkaXYgaWQ9XCJjb250ZW50SG9sZGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hdiBjb250ZW50LWZlZWRcIiAjbmF2SG9sZGVyICAgIFtzdHlsZS5kaXNwbGF5XT1cInNldHRpbmdzPy5IaWRlVGlsZUdyb3Vwc05hdiA/ICdub25lJyA6IG51bGxcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInJlbmRlclRhYnM7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiAoYXBwVGlsZUdyb3VwcyQgfCBhc3luYykhISB9XCJcclxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm5hdl9zdXJyb2dhdGVcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1mZWVkXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVuZGVyR3JvdXBzOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogKGFwcFRpbGVHcm91cHMkIHwgYXN5bmMpISEgfVwiXHJcbiAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPG5nLXRlbXBsYXRlICNyZW5kZXJUYWJzIGxldC1hcHBUaWxlR3JvdXBzPlxyXG4gICAgPGZkLXRhYi1saXN0XHJcbiAgICAgICAgW3NpemVdPVwidGFiU2l6ZVwiXHJcbiAgICAgICAgW2NvbGxhcHNlT3ZlcmZsb3ddPVwidGFiU2l6ZSA9PT0gJ3MnIHx8IGFwcFRpbGVHcm91cHMubGVuZ3RoID4gNVwiXHJcbiAgICAgICAgW2V4cGFuZE92ZXJmbG93VGV4dF09XCInTW9yZScgfCBiYmJUcmFuc2xhdGVcIlxyXG4gICAgICAgIChzZWxlY3RlZFRhYkNoYW5nZSk9XCJvblNlbGVjdGVkVGFiQ2hhbmdlMygkZXZlbnQpXCJcclxuICAgID5cclxuICAgICAgICBAZm9yIChhcHBUaWxlR3JvdXAgb2YgYXBwVGlsZUdyb3VwczsgdHJhY2sgYXBwVGlsZUdyb3VwOyBsZXQgaSA9ICRpbmRleDspIHtcclxuICAgICAgICA8ZmQtdGFiIFtpZF09XCInJyArIGlcIiBbdGl0bGVdPVwiYXBwVGlsZUdyb3VwLm5hdmlnYXRvclRpdGxlXCI+IDwvZmQtdGFiPlxyXG4gICAgICAgIH1cclxuICAgIDwvZmQtdGFiLWxpc3Q+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjcmVuZGVyR3JvdXBzIGxldC1hcHBUaWxlR3JvdXBzPlxyXG4gICAgQGZvciAoYXBwVGlsZUdyb3VwIG9mIGFwcFRpbGVHcm91cHM7IHRyYWNrIGFwcFRpbGVHcm91cDsgbGV0IGkgPSAkaW5kZXgsaXNMYXN0PSRsYXN0KSB7XHJcbiAgICA8YnQtdGlsZXMtdmlld2VyLWdyb3VwXHJcbiAgICAgICAgW2NsYXNzXT1cImRldmljZVNpemUkIHwgYXN5bmNcIlxyXG4gICAgICAgIFthdHRyLmlzbGFzdF09XCJpc0xhc3RcIlxyXG4gICAgICAgIFthdHRyLmluZGV4XT1cImlcIlxyXG4gICAgICAgIFthcHBUaWxlR3JvdXBdPVwiYXBwVGlsZUdyb3VwXCJcclxuICAgICAgICBbZWRpdF09XCJmYWxzZVwiXHJcbiAgICAgICAgW3N0YWNrQ29udGVudF09XCJ0cnVlXCJcclxuICAgICAgICBbaXNBcHBUaWxlU3ViR3JvdXBdPVwiZmFsc2VcIlxyXG4gICAgICAgIFtkZXZpY2VTaXplXT1cIihkZXZpY2VTaXplJCB8IGFzeW5jKSEhXCJcclxuICAgID48L2J0LXRpbGVzLXZpZXdlci1ncm91cD5cclxuICAgIH1cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19