ctt-babylon 0.1.76 → 0.1.78

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.
@@ -3,12 +3,19 @@ import { CommonModule } from '@angular/common';
3
3
  import { BabylonLinkTypeDirective } from '../../../directives/link-type/link-type.directive';
4
4
  import * as i0 from "@angular/core";
5
5
  export class BabylonFooterLogosComponent {
6
+ get filteredButtons() {
7
+ return (this.buttons || []).filter(b => !!b);
8
+ }
9
+ hasContent() {
10
+ return ((this.texts && (this.texts.title || this.texts.subtitle || this.texts.description)) ||
11
+ this.filteredButtons.length);
12
+ }
6
13
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BabylonFooterLogosComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: BabylonFooterLogosComponent, isStandalone: true, selector: "lib-babylon-footer-logos", inputs: { logos: "logos", texts: "texts", buttons: "buttons" }, ngImport: i0, template: "<section class=\"babylon__footer-logos\">\n <div class=\"container\">\n @if (texts) {\n <div class=\"intro_info align--center no-align pt--30\">\n @if (texts.title) {\n <h1 class=\"title--small mb--10\">{{ texts.title }}</h1>\n }\n @if (texts.subtitle) {\n <h2 class=\"title\">{{ texts.subtitle }}</h2>\n }\n @if (texts.description) {\n <p class=\"text mb--10\">\n {{ texts.description }}\n </p>\n }\n @if (buttons?.length) {\n <div class=\"btns__box align--center\">\n @for (button of buttons; track $index) {\n @if (button) {\n <div>\n <a [href]=\"button?.url\" [linkType]=\"button?.linkType\" class=\"btn btn_primary\"><b>{{ button?.label\n }}</b><span class=\"babylon-arrow-right-big\"></span></a>\n </div>\n }\n }\n </div>\n }\n </div>\n }\n @if (logos) {\n <ul>\n @for (logo of logos; track $index) {\n <li>\n @if (logo.link) {\n <a [href]=\"logo.link.url\" [linkType]=\"logo.link.linkType\" aria-label=\"link\">\n <img [src]=\"logo.img?.src\" [alt]=\"logo.img?.alt\" /></a>\n } @else {\n <img [src]=\"logo.img?.src\" [alt]=\"logo.img?.alt\" />\n }\n </li>\n }\n </ul>\n }\n </div>\n</section>", styles: [".babylon__footer-logos{background-color:var(--cl_footer-bg-logos)}.babylon__footer-logos ul{display:flex;gap:30px 20px;padding-block:30px;align-items:center;justify-content:space-around;flex-wrap:wrap}.babylon__footer-logos img{width:200px;height:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: BabylonLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href"], outputs: ["anchorClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: BabylonFooterLogosComponent, isStandalone: true, selector: "lib-babylon-footer-logos", inputs: { logos: "logos", texts: "texts", buttons: "buttons" }, ngImport: i0, template: "<section class=\"babylon__footer-logos\">\n <div class=\"container\">\n @if (hasContent()) {\n <div class=\"intro_info align--center no-align pt--30\">\n @if (texts?.title) {\n <h1 class=\"title--small mb--10\">{{ texts?.title }}</h1>\n }\n @if (texts?.subtitle) {\n <h2 class=\"title\">{{ texts?.subtitle }}</h2>\n }\n @if (texts?.description) {\n <p class=\"text mb--10\">\n {{ texts?.description }}\n </p>\n }\n @if (buttons?.length) {\n <div class=\"btns__box align--center\">\n @for (button of buttons; track $index) {\n @if (button) {\n <div>\n <a [href]=\"button?.url\" [linkType]=\"button?.linkType\" class=\"btn btn_primary\"><b>{{ button?.label\n }}</b><span class=\"babylon-arrow-right-big\"></span></a>\n </div>\n }\n }\n </div>\n }\n </div>\n }\n @if (logos) {\n <ul>\n @for (logo of logos; track $index) {\n <li>\n @if (logo.link) {\n <a [href]=\"logo.link.url\" [linkType]=\"logo.link.linkType\" aria-label=\"link\">\n <img [src]=\"logo.img?.src\" [alt]=\"logo.img?.alt\" /></a>\n } @else {\n <img [src]=\"logo.img?.src\" [alt]=\"logo.img?.alt\" />\n }\n </li>\n }\n </ul>\n }\n </div>\n</section>", styles: [".babylon__footer-logos{background-color:var(--cl_footer-bg-logos)}.babylon__footer-logos ul{display:flex;gap:30px 20px;padding-block:30px;align-items:center;justify-content:space-around;flex-wrap:wrap}.babylon__footer-logos img{width:200px;height:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: BabylonLinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href"], outputs: ["anchorClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8
15
  }
9
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BabylonFooterLogosComponent, decorators: [{
10
17
  type: Component,
11
- args: [{ selector: 'lib-babylon-footer-logos', standalone: true, imports: [CommonModule, BabylonLinkTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"babylon__footer-logos\">\n <div class=\"container\">\n @if (texts) {\n <div class=\"intro_info align--center no-align pt--30\">\n @if (texts.title) {\n <h1 class=\"title--small mb--10\">{{ texts.title }}</h1>\n }\n @if (texts.subtitle) {\n <h2 class=\"title\">{{ texts.subtitle }}</h2>\n }\n @if (texts.description) {\n <p class=\"text mb--10\">\n {{ texts.description }}\n </p>\n }\n @if (buttons?.length) {\n <div class=\"btns__box align--center\">\n @for (button of buttons; track $index) {\n @if (button) {\n <div>\n <a [href]=\"button?.url\" [linkType]=\"button?.linkType\" class=\"btn btn_primary\"><b>{{ button?.label\n }}</b><span class=\"babylon-arrow-right-big\"></span></a>\n </div>\n }\n }\n </div>\n }\n </div>\n }\n @if (logos) {\n <ul>\n @for (logo of logos; track $index) {\n <li>\n @if (logo.link) {\n <a [href]=\"logo.link.url\" [linkType]=\"logo.link.linkType\" aria-label=\"link\">\n <img [src]=\"logo.img?.src\" [alt]=\"logo.img?.alt\" /></a>\n } @else {\n <img [src]=\"logo.img?.src\" [alt]=\"logo.img?.alt\" />\n }\n </li>\n }\n </ul>\n }\n </div>\n</section>", styles: [".babylon__footer-logos{background-color:var(--cl_footer-bg-logos)}.babylon__footer-logos ul{display:flex;gap:30px 20px;padding-block:30px;align-items:center;justify-content:space-around;flex-wrap:wrap}.babylon__footer-logos img{width:200px;height:auto}\n"] }]
18
+ args: [{ selector: 'lib-babylon-footer-logos', standalone: true, imports: [CommonModule, BabylonLinkTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"babylon__footer-logos\">\n <div class=\"container\">\n @if (hasContent()) {\n <div class=\"intro_info align--center no-align pt--30\">\n @if (texts?.title) {\n <h1 class=\"title--small mb--10\">{{ texts?.title }}</h1>\n }\n @if (texts?.subtitle) {\n <h2 class=\"title\">{{ texts?.subtitle }}</h2>\n }\n @if (texts?.description) {\n <p class=\"text mb--10\">\n {{ texts?.description }}\n </p>\n }\n @if (buttons?.length) {\n <div class=\"btns__box align--center\">\n @for (button of buttons; track $index) {\n @if (button) {\n <div>\n <a [href]=\"button?.url\" [linkType]=\"button?.linkType\" class=\"btn btn_primary\"><b>{{ button?.label\n }}</b><span class=\"babylon-arrow-right-big\"></span></a>\n </div>\n }\n }\n </div>\n }\n </div>\n }\n @if (logos) {\n <ul>\n @for (logo of logos; track $index) {\n <li>\n @if (logo.link) {\n <a [href]=\"logo.link.url\" [linkType]=\"logo.link.linkType\" aria-label=\"link\">\n <img [src]=\"logo.img?.src\" [alt]=\"logo.img?.alt\" /></a>\n } @else {\n <img [src]=\"logo.img?.src\" [alt]=\"logo.img?.alt\" />\n }\n </li>\n }\n </ul>\n }\n </div>\n</section>", styles: [".babylon__footer-logos{background-color:var(--cl_footer-bg-logos)}.babylon__footer-logos ul{display:flex;gap:30px 20px;padding-block:30px;align-items:center;justify-content:space-around;flex-wrap:wrap}.babylon__footer-logos img{width:200px;height:auto}\n"] }]
12
19
  }], propDecorators: { logos: [{
13
20
  type: Input
14
21
  }], texts: [{
@@ -16,4 +23,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
16
23
  }], buttons: [{
17
24
  type: Input
18
25
  }] } });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1mb290ZXItbG9nb3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9iYWJ5bG9uLWZvb3Rlci1sb2dvcy9iYWJ5bG9uLWZvb3Rlci1sb2dvcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tZm9vdGVyLWxvZ29zL2JhYnlsb24tZm9vdGVyLWxvZ29zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7QUFVN0YsTUFBTSxPQUFPLDJCQUEyQjsrR0FBM0IsMkJBQTJCO21HQUEzQiwyQkFBMkIsb0pDYnhDLHNrREE0Q1UsdVREcENFLFlBQVksK0JBQUUsd0JBQXdCOzs0RkFLckMsMkJBQTJCO2tCQVJ2QyxTQUFTOytCQUNFLDBCQUEwQixjQUN4QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsd0JBQXdCLENBQUMsbUJBRzlCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhYnlsb25JbWFnZUksIEJhYnlsb25UZXh0cywgQmFieWxvbkJ1dHRvbkkgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCYWJ5bG9uTGlua1R5cGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2xpbmstdHlwZS9saW5rLXR5cGUuZGlyZWN0aXZlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWJhYnlsb24tZm9vdGVyLWxvZ29zJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2JhYnlsb24tZm9vdGVyLWxvZ29zLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2JhYnlsb24tZm9vdGVyLWxvZ29zLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQmFieWxvbkZvb3RlckxvZ29zQ29tcG9uZW50IHtcbiAgICBASW5wdXQoKSBsb2dvcz86IEJhYnlsb25Gb290ZXJMb2dvSXRlbUlbXTtcbiAgICBASW5wdXQoKSB0ZXh0cz86IEJhYnlsb25UZXh0cztcbiAgICBASW5wdXQoKSBidXR0b25zPzogQmFieWxvbkJ1dHRvbklbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYWJ5bG9uRm9vdGVyTG9nb0l0ZW1JIHtcbiAgaW1nPzogQmFieWxvbkltYWdlSTtcbiAgbGluaz86IEJhYnlsb25CdXR0b25JO1xufSIsIjxzZWN0aW9uIGNsYXNzPVwiYmFieWxvbl9fZm9vdGVyLWxvZ29zXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICBAaWYgKHRleHRzKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnRyb19pbmZvIGFsaWduLS1jZW50ZXIgbm8tYWxpZ24gcHQtLTMwXCI+XG4gICAgICAgICAgICBAaWYgKHRleHRzLnRpdGxlKSB7XG4gICAgICAgICAgICA8aDEgY2xhc3M9XCJ0aXRsZS0tc21hbGwgbWItLTEwXCI+e3sgdGV4dHMudGl0bGUgfX08L2gxPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICh0ZXh0cy5zdWJ0aXRsZSkge1xuICAgICAgICAgICAgPGgyIGNsYXNzPVwidGl0bGVcIj57eyB0ZXh0cy5zdWJ0aXRsZSB9fTwvaDI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHRleHRzLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgICAgICA8cCBjbGFzcz1cInRleHQgbWItLTEwXCI+XG4gICAgICAgICAgICAgICAge3sgdGV4dHMuZGVzY3JpcHRpb24gfX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoYnV0dG9ucz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuc19fYm94IGFsaWduLS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChidXR0b24gb2YgYnV0dG9uczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgQGlmIChidXR0b24pIHtcbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJidXR0b24/LnVybFwiIFtsaW5rVHlwZV09XCJidXR0b24/LmxpbmtUeXBlXCIgY2xhc3M9XCJidG4gYnRuX3ByaW1hcnlcIj48Yj57eyBidXR0b24/LmxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L2I+PHNwYW4gY2xhc3M9XCJiYWJ5bG9uLWFycm93LXJpZ2h0LWJpZ1wiPjwvc3Bhbj48L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGxvZ29zKSB7XG4gICAgICAgIDx1bD5cbiAgICAgICAgICAgIEBmb3IgKGxvZ28gb2YgbG9nb3M7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgIEBpZiAobG9nby5saW5rKSB7XG4gICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwibG9nby5saW5rLnVybFwiIFtsaW5rVHlwZV09XCJsb2dvLmxpbmsubGlua1R5cGVcIiBhcmlhLWxhYmVsPVwibGlua1wiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwibG9nby5pbWc/LnNyY1wiIFthbHRdPVwibG9nby5pbWc/LmFsdFwiIC8+PC9hPlxuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJsb2dvLmltZz8uc3JjXCIgW2FsdF09XCJsb2dvLmltZz8uYWx0XCIgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3VsPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L3NlY3Rpb24+Il19
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1mb290ZXItbG9nb3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9iYWJ5bG9uLWZvb3Rlci1sb2dvcy9iYWJ5bG9uLWZvb3Rlci1sb2dvcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tZm9vdGVyLWxvZ29zL2JhYnlsb24tZm9vdGVyLWxvZ29zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7QUFVN0YsTUFBTSxPQUFPLDJCQUEyQjtJQUtwQyxJQUFJLGVBQWU7UUFDakIsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxVQUFVO1FBQ1IsT0FBTyxDQUNMLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDbkYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQzVCLENBQUM7SUFDSixDQUFDOytHQWRRLDJCQUEyQjttR0FBM0IsMkJBQTJCLG9KQ2J4QywrbURBNENVLHVURHBDRSxZQUFZLCtCQUFFLHdCQUF3Qjs7NEZBS3JDLDJCQUEyQjtrQkFSdkMsU0FBUzsrQkFDRSwwQkFBMEIsY0FDeEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLHdCQUF3QixDQUFDLG1CQUc5Qix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYWJ5bG9uSW1hZ2VJLCBCYWJ5bG9uVGV4dHMsIEJhYnlsb25CdXR0b25JIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQmFieWxvbkxpbmtUeXBlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9saW5rLXR5cGUvbGluay10eXBlLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1iYWJ5bG9uLWZvb3Rlci1sb2dvcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEJhYnlsb25MaW5rVHlwZURpcmVjdGl2ZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9iYWJ5bG9uLWZvb3Rlci1sb2dvcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9iYWJ5bG9uLWZvb3Rlci1sb2dvcy5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEJhYnlsb25Gb290ZXJMb2dvc0NvbXBvbmVudCB7XG4gICAgQElucHV0KCkgbG9nb3M/OiBCYWJ5bG9uRm9vdGVyTG9nb0l0ZW1JW107XG4gICAgQElucHV0KCkgdGV4dHM/OiBCYWJ5bG9uVGV4dHM7XG4gICAgQElucHV0KCkgYnV0dG9ucz86IEJhYnlsb25CdXR0b25JW107XG4gICAgXG4gICAgZ2V0IGZpbHRlcmVkQnV0dG9ucygpIHtcbiAgICAgIHJldHVybiAodGhpcy5idXR0b25zIHx8IFtdKS5maWx0ZXIoYiA9PiAhIWIpO1xuICAgIH1cbiAgICBcbiAgICBoYXNDb250ZW50KCkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgKHRoaXMudGV4dHMgJiYgKHRoaXMudGV4dHMudGl0bGUgfHwgdGhpcy50ZXh0cy5zdWJ0aXRsZSB8fCB0aGlzLnRleHRzLmRlc2NyaXB0aW9uKSkgfHxcbiAgICAgICAgdGhpcy5maWx0ZXJlZEJ1dHRvbnMubGVuZ3RoXG4gICAgICApO1xuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYWJ5bG9uRm9vdGVyTG9nb0l0ZW1JIHtcbiAgaW1nPzogQmFieWxvbkltYWdlSTtcbiAgbGluaz86IEJhYnlsb25CdXR0b25JO1xufSIsIjxzZWN0aW9uIGNsYXNzPVwiYmFieWxvbl9fZm9vdGVyLWxvZ29zXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICBAaWYgKGhhc0NvbnRlbnQoKSkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludHJvX2luZm8gYWxpZ24tLWNlbnRlciBuby1hbGlnbiBwdC0tMzBcIj5cbiAgICAgICAgICAgIEBpZiAodGV4dHM/LnRpdGxlKSB7XG4gICAgICAgICAgICA8aDEgY2xhc3M9XCJ0aXRsZS0tc21hbGwgbWItLTEwXCI+e3sgdGV4dHM/LnRpdGxlIH19PC9oMT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAodGV4dHM/LnN1YnRpdGxlKSB7XG4gICAgICAgICAgICA8aDIgY2xhc3M9XCJ0aXRsZVwiPnt7IHRleHRzPy5zdWJ0aXRsZSB9fTwvaDI+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHRleHRzPy5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0IG1iLS0xMFwiPlxuICAgICAgICAgICAgICAgIHt7IHRleHRzPy5kZXNjcmlwdGlvbiB9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmIChidXR0b25zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG5zX19ib3ggYWxpZ24tLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKGJ1dHRvbiBvZiBidXR0b25zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgQGlmIChidXR0b24pIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cImJ1dHRvbj8udXJsXCIgW2xpbmtUeXBlXT1cImJ1dHRvbj8ubGlua1R5cGVcIiBjbGFzcz1cImJ0biBidG5fcHJpbWFyeVwiPjxiPnt7IGJ1dHRvbj8ubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L2I+PHNwYW4gY2xhc3M9XCJiYWJ5bG9uLWFycm93LXJpZ2h0LWJpZ1wiPjwvc3Bhbj48L2E+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAobG9nb3MpIHtcbiAgICAgICAgPHVsPlxuICAgICAgICAgICAgQGZvciAobG9nbyBvZiBsb2dvczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgQGlmIChsb2dvLmxpbmspIHtcbiAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJsb2dvLmxpbmsudXJsXCIgW2xpbmtUeXBlXT1cImxvZ28ubGluay5saW5rVHlwZVwiIGFyaWEtbGFiZWw9XCJsaW5rXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJsb2dvLmltZz8uc3JjXCIgW2FsdF09XCJsb2dvLmltZz8uYWx0XCIgLz48L2E+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImxvZ28uaW1nPy5zcmNcIiBbYWx0XT1cImxvZ28uaW1nPy5hbHRcIiAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvdWw+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvc2VjdGlvbj4iXX0=