UNPKG

cfc-ds

Version:

Design System do Conselho Federal de Contabilidade baseado no govbr-ds

76 lines 44.2 kB
import { Component, Input, } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; import * as i2 from "@angular/flex-layout/extended"; export class FooterComponent { config = { theme: 'dark', alignment: 'left', gridColumns: 12, }; type = 'default'; activeCategory = null; screenWidth = window.innerWidth; get themeClass() { return `footer-theme-${this.config.theme || 'dark'}`; } get alignmentClass() { return `footer-align-${this.config.alignment || 'left'}`; } get gridClass() { return `footer-grid-${this.config.gridColumns || 12}`; } get isCollapsible() { // Sempre usar accordion para layouts de 8 e 4 colunas if (this.config.gridColumns === 8 || this.config.gridColumns === 4) { return true; } // Para layout de 12 colunas, usar accordion em telas menores que 992px if (this.config.gridColumns === 12) { return this.screenWidth < 992; } return false; } constructor() { } ngOnInit() { // Set default values for optional fields this.config = { theme: 'dark', alignment: 'left', gridColumns: 12, ...this.config }; // Adicionar listener para redimensionamento da tela window.addEventListener('resize', this.onResize.bind(this)); this.onResize(); } ngOnDestroy() { // Remover listener ao destruir o componente window.removeEventListener('resize', this.onResize.bind(this)); } onResize() { this.screenWidth = window.innerWidth; } toggleCategory(categoryTitle) { if (this.activeCategory === categoryTitle) { this.activeCategory = null; } else { this.activeCategory = categoryTitle; } } isCategoryActive(categoryTitle) { return this.activeCategory === categoryTitle; } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FooterComponent, selector: "cfc-footer", inputs: { config: "config", type: "type" }, ngImport: i0, template: "<!-- footer.component.html - Ajustado para os diferentes layouts de grid -->\r\n<footer\r\n class=\"footer-container\"\r\n [ngClass]=\"[themeClass, alignmentClass, gridClass]\"\r\n>\r\n <div *ngIf=\"type === 'default'\" class=\"footer-content\">\r\n <!-- Logo Area -->\r\n <div class=\"footer-logo-area\" *ngIf=\"config.logo\">\r\n <a [href]=\"config.logo.url || '#'\" class=\"footer-logo\">\r\n <img [src]=\"config.logo.src\" [alt]=\"config.logo.alt\" />\r\n </a>\r\n </div>\r\n\r\n <!-- Site Map Area -->\r\n <div\r\n class=\"footer-sitemap-area\"\r\n *ngIf=\"config.categories && config.categories.length > 0\"\r\n >\r\n <!-- Grid view for 12 columns -->\r\n <div\r\n class=\"sitemap-grid\"\r\n [class.categories-6]=\"config.categories.length <= 6\"\r\n [class.categories-12]=\"\r\n config.categories.length > 6 && config.categories.length <= 12\r\n \"\r\n >\r\n <div *ngFor=\"let category of config.categories\">\r\n <h3 class=\"sitemap-category\">{{ category.title }}</h3>\r\n <ul class=\"sitemap-list\">\r\n <li *ngFor=\"let link of category.links\">\r\n <a [href]=\"link.url\" [target]=\"link.target || '_self'\">{{\r\n link.label\r\n }}</a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <!-- Accordion view for 8 and 4 columns (and responsive 12 columns) -->\r\n <div class=\"sitemap-accordion\">\r\n <div\r\n class=\"sitemap-accordion-item\"\r\n *ngFor=\"let category of config.categories\"\r\n >\r\n <div\r\n class=\"sitemap-accordion-header\"\r\n [class.active]=\"isCategoryActive(category.title)\"\r\n (click)=\"toggleCategory(category.title)\"\r\n >\r\n <h3 class=\"sitemap-category\">{{ category.title }}</h3>\r\n <span class=\"sitemap-toggle-icon\">\r\n <i\r\n class=\"icon-arrow\"\r\n [class.icon-down]=\"!isCategoryActive(category.title)\"\r\n [class.icon-up]=\"isCategoryActive(category.title)\"\r\n ></i>\r\n </span>\r\n </div>\r\n <div\r\n class=\"sitemap-accordion-content\"\r\n [class.expanded]=\"isCategoryActive(category.title)\"\r\n >\r\n <ul class=\"sitemap-list\">\r\n <li *ngFor=\"let link of category.links\">\r\n <a [href]=\"link.url\" [target]=\"link.target || '_self'\">{{\r\n link.label\r\n }}</a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Secondary Information Area -->\r\n <div\r\n class=\"footer-secondary-area\"\r\n *ngIf=\"\r\n (config.socialItems && config.socialItems.length > 0) ||\r\n (config.partnerLogos && config.partnerLogos.length > 0)\r\n \"\r\n >\r\n <!-- Social Networks -->\r\n <div\r\n class=\"footer-social\"\r\n *ngIf=\"config.socialItems && config.socialItems.length > 0\"\r\n >\r\n <h3 class=\"social-title\" *ngIf=\"config.socialTitle\">\r\n {{ config.socialTitle }}\r\n </h3>\r\n <div class=\"social-icons\">\r\n <a\r\n *ngFor=\"let item of config.socialItems\"\r\n [href]=\"item.url\"\r\n target=\"_blank\"\r\n class=\"social-icon\"\r\n [attr.aria-label]=\"item.label\"\r\n >\r\n <i [class]=\"item.icon\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <!-- Partner Logos -->\r\n <div\r\n class=\"footer-partner-logos\"\r\n *ngIf=\"config.partnerLogos && config.partnerLogos.length > 0\"\r\n >\r\n <a\r\n *ngFor=\"let logo of config.partnerLogos\"\r\n [href]=\"logo.url || '#'\"\r\n class=\"partner-logo\"\r\n >\r\n <img [src]=\"logo.src\" [alt]=\"logo.alt\" />\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <!-- Divider -->\r\n <hr\r\n class=\"footer-divider\"\r\n *ngIf=\"\r\n config.legalText || config.highlightedLegalText || config.licenseText\r\n \"\r\n />\r\n\r\n <!-- Legal Information Area -->\r\n <div\r\n class=\"footer-legal-area\"\r\n *ngIf=\"\r\n config.legalText || config.highlightedLegalText || config.licenseText\r\n \"\r\n >\r\n <p\r\n class=\"legal-text\"\r\n *ngIf=\"config.legalText || config.highlightedLegalText\"\r\n >\r\n {{ config.legalText || \"\" }}\r\n <ng-container *ngIf=\"config.highlightedLegalText\">\r\n <span class=\"legal-highlight\">\r\n {{ config.highlightedLegalText }}</span\r\n >\r\n </ng-container>\r\n </p>\r\n\r\n <p class=\"legal-text\" *ngIf=\"config.licenseText\">\r\n {{ config.licenseText }}\r\n <a\r\n *ngIf=\"config.licenseUrl\"\r\n [href]=\"config.licenseUrl\"\r\n target=\"_blank\"\r\n >{{ config.licenseName || \"licen\u00E7a de uso\" }}</a\r\n >\r\n </p>\r\n </div>\r\n </div>\r\n <div *ngIf=\"type === 'compact'\" class=\"px-2\">\r\n <div class=\"footer-compact-area\">\r\n <div>\r\n <span>{{ config.projectName }}</span>\r\n </div>\r\n <div>\r\n <span>{{ config.projectVersion }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</footer>\r\n", styles: [":host{display:block;width:100%}.footer-container{width:100%;box-sizing:border-box}.footer-container.footer-theme-dark{background-color:#071d41;color:#fff}.footer-container.footer-theme-dark a{color:#fff;text-decoration:none}.footer-container.footer-theme-dark a:hover{text-decoration:underline;color:#fffc}.footer-container.footer-theme-dark .sitemap-category{color:#fff;font-weight:600}.footer-container.footer-theme-dark .social-title{color:#fff}.footer-container.footer-theme-dark .legal-text{color:#fffc}.footer-container.footer-theme-dark .legal-highlight{color:#fff;font-weight:600}.footer-container.footer-theme-dark .footer-divider{background-color:#ffffff1a}.footer-container.footer-theme-dark .sitemap-accordion-header:hover{background-color:#ffffff0d}.footer-container.footer-theme-dark .sitemap-accordion-header.active,.footer-container.footer-theme-dark .social-icon{background-color:#ffffff1a}.footer-container.footer-theme-dark .social-icon:hover{background-color:#fff3}.footer-container.footer-theme-light{background-color:#fff;color:#333}.footer-container.footer-theme-light a{color:#1351b4;text-decoration:none}.footer-container.footer-theme-light a:hover{text-decoration:underline;color:#071d41}.footer-container.footer-theme-light .sitemap-category{color:#333;font-weight:600}.footer-container.footer-theme-light .social-title{color:#071d41}.footer-container.footer-theme-light .legal-text{color:#555}.footer-container.footer-theme-light .legal-highlight{color:#071d41;font-weight:600}.footer-container.footer-theme-light .footer-divider{background-color:#0000001a}.footer-container.footer-theme-light .sitemap-accordion-header:hover{background-color:#0000000d}.footer-container.footer-theme-light .sitemap-accordion-header.active{background-color:#0000001a}.footer-container.footer-theme-light .social-icon{background-color:#0000000d;color:#071d41}.footer-container.footer-theme-light .social-icon:hover{background-color:#0000001a}.footer-container.footer-align-left .footer-sitemap-area,.footer-container.footer-align-left .footer-secondary-area,.footer-container.footer-align-left .footer-legal-area{text-align:left}.footer-container.footer-align-center .footer-sitemap-area,.footer-container.footer-align-center .footer-secondary-area,.footer-container.footer-align-center .footer-legal-area{text-align:center;margin-left:auto;margin-right:auto}.footer-container.footer-align-center .sitemap-grid,.footer-container.footer-align-center .footer-social .social-icons,.footer-container.footer-align-center .footer-partner-logos{justify-content:center}.footer-container.footer-align-right .footer-logo-area,.footer-container.footer-align-right .footer-sitemap-area,.footer-container.footer-align-right .footer-secondary-area,.footer-container.footer-align-right .footer-legal-area{text-align:right}.footer-container.footer-align-right .sitemap-grid,.footer-container.footer-align-right .footer-social .social-icons,.footer-container.footer-align-right .footer-partner-logos{justify-content:flex-end}.footer-content{max-width:1280px;margin:0 auto;padding:2.5rem 2rem}.footer-grid-4 .footer-content{max-width:576px;padding:1.5rem 1rem}.footer-grid-8 .footer-content{max-width:960px}.footer-grid-12 .footer-content{max-width:1280px}.footer-logo-area{margin-bottom:3rem}.footer-logo-area .footer-logo{display:inline-block}.footer-logo-area .footer-logo img{max-height:48px;width:auto}.footer-grid-4 .footer-logo-area{margin-bottom:2rem}.sitemap-grid{display:grid;gap:2rem;margin-bottom:3rem}.footer-grid-12 .sitemap-grid,.footer-grid-12 .sitemap-grid.categories-6{grid-template-columns:repeat(6,1fr)}.footer-grid-12 .sitemap-grid.categories-12{grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(2,auto)}.footer-grid-8 .sitemap-grid,.footer-grid-4 .sitemap-grid{display:none}.sitemap-category{font-size:1rem;font-weight:600;margin:0 0 1rem;text-transform:uppercase}.sitemap-list{list-style:none;padding:0;margin:0}.sitemap-list li{margin-bottom:.75rem}.sitemap-list li a{font-size:.9rem;line-height:1.4;display:inline-block}.sitemap-accordion{width:100%;display:none}.footer-grid-8 .sitemap-accordion,.footer-grid-4 .sitemap-accordion{display:block}.sitemap-accordion-item{border-bottom:1px solid rgba(255,255,255,.1)}.footer-theme-light .sitemap-accordion-item{border-bottom:1px solid rgba(0,0,0,.1)}.sitemap-accordion-item:last-child{border-bottom:none}.sitemap-accordion-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;cursor:pointer;transition:background-color .2s}.sitemap-accordion-header .sitemap-category{margin:0}.sitemap-accordion-header .sitemap-toggle-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center}.sitemap-accordion-header .sitemap-toggle-icon .icon-arrow{width:10px;height:6px;position:relative;transition:transform .2s}.sitemap-accordion-header .sitemap-toggle-icon .icon-arrow:before,.sitemap-accordion-header .sitemap-toggle-icon .icon-arrow:after{content:\"\";position:absolute;width:8px;height:2px;background-color:currentColor;transition:transform .2s}.sitemap-accordion-header .sitemap-toggle-icon .icon-arrow:before{left:0;transform:rotate(45deg);transform-origin:left center}.sitemap-accordion-header .sitemap-toggle-icon .icon-arrow:after{right:0;transform:rotate(-45deg);transform-origin:right center}.sitemap-accordion-header .sitemap-toggle-icon .icon-arrow.icon-down{transform:rotate(0)}.sitemap-accordion-header .sitemap-toggle-icon .icon-arrow.icon-up{transform:rotate(180deg)}.sitemap-accordion-content{max-height:0;overflow:hidden;transition:max-height .3s ease-out}.sitemap-accordion-content.expanded{max-height:500px}.sitemap-accordion-content .sitemap-list{padding:0 1rem 1.25rem}.footer-secondary-area{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;margin:2rem 0;gap:2rem}.footer-grid-4 .footer-secondary-area{flex-direction:column;gap:1.5rem}.footer-social .social-title{font-size:1rem;font-weight:600;margin:0 0 1rem;text-transform:uppercase}.footer-social .social-icons{display:flex;flex-wrap:wrap;gap:.75rem}.footer-social .social-icons .social-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;transition:background-color .2s}.footer-social .social-icons .social-icon i{font-size:1.2rem}.footer-grid-4 .footer-social{width:100%}.footer-partner-logos{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:center}.footer-partner-logos .partner-logo{display:inline-block}.footer-partner-logos .partner-logo img{height:40px;width:auto}.footer-grid-4 .footer-partner-logos{width:100%;justify-content:flex-start}.footer-align-center .footer-grid-4 .footer-partner-logos{justify-content:center}.footer-align-right .footer-grid-4 .footer-partner-logos{justify-content:flex-end}.footer-divider{height:1px;border:0;margin:2rem 0;width:100%}.footer-legal-area{padding:1rem 0}.footer-legal-area .legal-text{font-size:.85rem;margin:0;line-height:1.5}.footer-legal-area a{font-weight:600}.footer-compact-area{display:flex;justify-content:space-between;align-items:center;padding:1rem 0}@media (max-width: 1200px){.footer-grid-12 .sitemap-grid{grid-template-columns:repeat(4,1fr)}.footer-grid-12 .sitemap-grid.categories-12{grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,auto)}.footer-grid-12 .sitemap-grid.categories-6{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,auto)}}@media (max-width: 991px){.footer-grid-12 .sitemap-grid{display:none}.footer-grid-12 .sitemap-accordion{display:block}.footer-content{padding:2rem 1.5rem}.footer-secondary-area{flex-direction:column;gap:1.5rem}.footer-secondary-area .footer-social,.footer-secondary-area .footer-partner-logos{width:100%}}@media (max-width: 767px){.footer-content{padding:1.5rem 1rem}.footer-logo-area{margin-bottom:1.5rem}.footer-partner-logos{flex-direction:column;align-items:flex-start;gap:1rem}.footer-align-center .footer-partner-logos{align-items:center}.footer-align-right .footer-partner-logos{align-items:flex-end}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FooterComponent, decorators: [{ type: Component, args: [{ selector: 'cfc-footer', template: "<!-- footer.component.html - Ajustado para os diferentes layouts de grid -->\r\n<footer\r\n class=\"footer-container\"\r\n [ngClass]=\"[themeClass, alignmentClass, gridClass]\"\r\n>\r\n <div *ngIf=\"type === 'default'\" class=\"footer-content\">\r\n <!-- Logo Area -->\r\n <div class=\"footer-logo-area\" *ngIf=\"config.logo\">\r\n <a [href]=\"config.logo.url || '#'\" class=\"footer-logo\">\r\n <img [src]=\"config.logo.src\" [alt]=\"config.logo.alt\" />\r\n </a>\r\n </div>\r\n\r\n <!-- Site Map Area -->\r\n <div\r\n class=\"footer-sitemap-area\"\r\n *ngIf=\"config.categories && config.categories.length > 0\"\r\n >\r\n <!-- Grid view for 12 columns -->\r\n <div\r\n class=\"sitemap-grid\"\r\n [class.categories-6]=\"config.categories.length <= 6\"\r\n [class.categories-12]=\"\r\n config.categories.length > 6 && config.categories.length <= 12\r\n \"\r\n >\r\n <div *ngFor=\"let category of config.categories\">\r\n <h3 class=\"sitemap-category\">{{ category.title }}</h3>\r\n <ul class=\"sitemap-list\">\r\n <li *ngFor=\"let link of category.links\">\r\n <a [href]=\"link.url\" [target]=\"link.target || '_self'\">{{\r\n link.label\r\n }}</a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n\r\n <!-- Accordion view for 8 and 4 columns (and responsive 12 columns) -->\r\n <div class=\"sitemap-accordion\">\r\n <div\r\n class=\"sitemap-accordion-item\"\r\n *ngFor=\"let category of config.categories\"\r\n >\r\n <div\r\n class=\"sitemap-accordion-header\"\r\n [class.active]=\"isCategoryActive(category.title)\"\r\n (click)=\"toggleCategory(category.title)\"\r\n >\r\n <h3 class=\"sitemap-category\">{{ category.title }}</h3>\r\n <span class=\"sitemap-toggle-icon\">\r\n <i\r\n class=\"icon-arrow\"\r\n [class.icon-down]=\"!isCategoryActive(category.title)\"\r\n [class.icon-up]=\"isCategoryActive(category.title)\"\r\n ></i>\r\n </span>\r\n </div>\r\n <div\r\n class=\"sitemap-accordion-content\"\r\n [class.expanded]=\"isCategoryActive(category.title)\"\r\n >\r\n <ul class=\"sitemap-list\">\r\n <li *ngFor=\"let link of category.links\">\r\n <a [href]=\"link.url\" [target]=\"link.target || '_self'\">{{\r\n link.label\r\n }}</a>\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Secondary Information Area -->\r\n <div\r\n class=\"footer-secondary-area\"\r\n *ngIf=\"\r\n (config.socialItems && config.socialItems.length > 0) ||\r\n (config.partnerLogos && config.partnerLogos.length > 0)\r\n \"\r\n >\r\n <!-- Social Networks -->\r\n <div\r\n class=\"footer-social\"\r\n *ngIf=\"config.socialItems && config.socialItems.length > 0\"\r\n >\r\n <h3 class=\"social-title\" *ngIf=\"config.socialTitle\">\r\n {{ config.socialTitle }}\r\n </h3>\r\n <div class=\"social-icons\">\r\n <a\r\n *ngFor=\"let item of config.socialItems\"\r\n [href]=\"item.url\"\r\n target=\"_blank\"\r\n class=\"social-icon\"\r\n [attr.aria-label]=\"item.label\"\r\n >\r\n <i [class]=\"item.icon\"></i>\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <!-- Partner Logos -->\r\n <div\r\n class=\"footer-partner-logos\"\r\n *ngIf=\"config.partnerLogos && config.partnerLogos.length > 0\"\r\n >\r\n <a\r\n *ngFor=\"let logo of config.partnerLogos\"\r\n [href]=\"logo.url || '#'\"\r\n class=\"partner-logo\"\r\n >\r\n <img [src]=\"logo.src\" [alt]=\"logo.alt\" />\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <!-- Divider -->\r\n <hr\r\n class=\"footer-divider\"\r\n *ngIf=\"\r\n config.legalText || config.highlightedLegalText || config.licenseText\r\n \"\r\n />\r\n\r\n <!-- Legal Information Area -->\r\n <div\r\n class=\"footer-legal-area\"\r\n *ngIf=\"\r\n config.legalText || config.highlightedLegalText || config.licenseText\r\n \"\r\n >\r\n <p\r\n class=\"legal-text\"\r\n *ngIf=\"config.legalText || config.highlightedLegalText\"\r\n >\r\n {{ config.legalText || \"\" }}\r\n <ng-container *ngIf=\"config.highlightedLegalText\">\r\n <span class=\"legal-highlight\">\r\n {{ config.highlightedLegalText }}</span\r\n >\r\n </ng-container>\r\n </p>\r\n\r\n <p class=\"legal-text\" *ngIf=\"config.licenseText\">\r\n {{ config.licenseText }}\r\n <a\r\n *ngIf=\"config.licenseUrl\"\r\n [href]=\"config.licenseUrl\"\r\n target=\"_blank\"\r\n >{{ config.licenseName || \"licen\u00E7a de uso\" }}</a\r\n >\r\n </p>\r\n </div>\r\n </div>\r\n <div *ngIf=\"type === 'compact'\" class=\"px-2\">\r\n <div class=\"footer-compact-area\">\r\n <div>\r\n <span>{{ config.projectName }}</span>\r\n </div>\r\n <div>\r\n <span>{{ config.projectVersion }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</footer>\r\n", styles: [":host{display:block;width:100%}.footer-container{width:100%;box-sizing:border-box}.footer-container.footer-theme-dark{background-color:#071d41;color:#fff}.footer-container.footer-theme-dark a{color:#fff;text-decoration:none}.footer-container.footer-theme-dark a:hover{text-decoration:underline;color:#fffc}.footer-container.footer-theme-dark .sitemap-category{color:#fff;font-weight:600}.footer-container.footer-theme-dark .social-title{color:#fff}.footer-container.footer-theme-dark .legal-text{color:#fffc}.footer-container.footer-theme-dark .legal-highlight{color:#fff;font-weight:600}.footer-container.footer-theme-dark .footer-divider{background-color:#ffffff1a}.footer-container.footer-theme-dark .sitemap-accordion-header:hover{background-color:#ffffff0d}.footer-container.footer-theme-dark .sitemap-accordion-header.active,.footer-container.footer-theme-dark .social-icon{background-color:#ffffff1a}.footer-container.footer-theme-dark .social-icon:hover{background-color:#fff3}.footer-container.footer-theme-light{background-color:#fff;color:#333}.footer-container.footer-theme-light a{color:#1351b4;text-decoration:none}.footer-container.footer-theme-light a:hover{text-decoration:underline;color:#071d41}.footer-container.footer-theme-light .sitemap-category{color:#333;font-weight:600}.footer-container.footer-theme-light .social-title{color:#071d41}.footer-container.footer-theme-light .legal-text{color:#555}.footer-container.footer-theme-light .legal-highlight{color:#071d41;font-weight:600}.footer-container.footer-theme-light .footer-divider{background-color:#0000001a}.footer-container.footer-theme-light .sitemap-accordion-header:hover{background-color:#0000000d}.footer-container.footer-theme-light .sitemap-accordion-header.active{background-color:#0000001a}.footer-container.footer-theme-light .social-icon{background-color:#0000000d;color:#071d41}.footer-container.footer-theme-light .social-icon:hover{background-color:#0000001a}.footer-container.footer-align-left .footer-sitemap-area,.footer-container.footer-align-left .footer-secondary-area,.footer-container.footer-align-left .footer-legal-area{text-align:left}.footer-container.footer-align-center .footer-sitemap-area,.footer-container.footer-align-center .footer-secondary-area,.footer-container.footer-align-center .footer-legal-area{text-align:center;margin-left:auto;margin-right:auto}.footer-container.footer-align-center .sitemap-grid,.footer-container.footer-align-center .footer-social .social-icons,.footer-container.footer-align-center .footer-partner-logos{justify-content:center}.footer-container.footer-align-right .footer-logo-area,.footer-container.footer-align-right .footer-sitemap-area,.footer-container.footer-align-right .footer-secondary-area,.footer-container.footer-align-right .footer-legal-area{text-align:right}.footer-container.footer-align-right .sitemap-grid,.footer-container.footer-align-right .footer-social .social-icons,.footer-container.footer-align-right .footer-partner-logos{justify-content:flex-end}.footer-content{max-width:1280px;margin:0 auto;padding:2.5rem 2rem}.footer-grid-4 .footer-content{max-width:576px;padding:1.5rem 1rem}.footer-grid-8 .footer-content{max-width:960px}.footer-grid-12 .footer-content{max-width:1280px}.footer-logo-area{margin-bottom:3rem}.footer-logo-area .footer-logo{display:inline-block}.footer-logo-area .footer-logo img{max-height:48px;width:auto}.footer-grid-4 .footer-logo-area{margin-bottom:2rem}.sitemap-grid{display:grid;gap:2rem;margin-bottom:3rem}.footer-grid-12 .sitemap-grid,.footer-grid-12 .sitemap-grid.categories-6{grid-template-columns:repeat(6,1fr)}.footer-grid-12 .sitemap-grid.categories-12{grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(2,auto)}.footer-grid-8 .sitemap-grid,.footer-grid-4 .sitemap-grid{display:none}.sitemap-category{font-size:1rem;font-weight:600;margin:0 0 1rem;text-transform:uppercase}.sitemap-list{list-style:none;padding:0;margin:0}.sitemap-list li{margin-bottom:.75rem}.sitemap-list li a{font-size:.9rem;line-height:1.4;display:inline-block}.sitemap-accordion{width:100%;display:none}.footer-grid-8 .sitemap-accordion,.footer-grid-4 .sitemap-accordion{display:block}.sitemap-accordion-item{border-bottom:1px solid rgba(255,255,255,.1)}.footer-theme-light .sitemap-accordion-item{border-bottom:1px solid rgba(0,0,0,.1)}.sitemap-accordion-item:last-child{border-bottom:none}.sitemap-accordion-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;cursor:pointer;transition:background-color .2s}.sitemap-accordion-header .sitemap-category{margin:0}.sitemap-accordion-header .sitemap-toggle-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center}.sitemap-accordion-header .sitemap-toggle-icon .icon-arrow{width:10px;height:6px;position:relative;transition:transform .2s}.sitemap-accordion-header .sitemap-toggle-icon .icon-arrow:before,.sitemap-accordion-header .sitemap-toggle-icon .icon-arrow:after{content:\"\";position:absolute;width:8px;height:2px;background-color:currentColor;transition:transform .2s}.sitemap-accordion-header .sitemap-toggle-icon .icon-arrow:before{left:0;transform:rotate(45deg);transform-origin:left center}.sitemap-accordion-header .sitemap-toggle-icon .icon-arrow:after{right:0;transform:rotate(-45deg);transform-origin:right center}.sitemap-accordion-header .sitemap-toggle-icon .icon-arrow.icon-down{transform:rotate(0)}.sitemap-accordion-header .sitemap-toggle-icon .icon-arrow.icon-up{transform:rotate(180deg)}.sitemap-accordion-content{max-height:0;overflow:hidden;transition:max-height .3s ease-out}.sitemap-accordion-content.expanded{max-height:500px}.sitemap-accordion-content .sitemap-list{padding:0 1rem 1.25rem}.footer-secondary-area{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;margin:2rem 0;gap:2rem}.footer-grid-4 .footer-secondary-area{flex-direction:column;gap:1.5rem}.footer-social .social-title{font-size:1rem;font-weight:600;margin:0 0 1rem;text-transform:uppercase}.footer-social .social-icons{display:flex;flex-wrap:wrap;gap:.75rem}.footer-social .social-icons .social-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;transition:background-color .2s}.footer-social .social-icons .social-icon i{font-size:1.2rem}.footer-grid-4 .footer-social{width:100%}.footer-partner-logos{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:center}.footer-partner-logos .partner-logo{display:inline-block}.footer-partner-logos .partner-logo img{height:40px;width:auto}.footer-grid-4 .footer-partner-logos{width:100%;justify-content:flex-start}.footer-align-center .footer-grid-4 .footer-partner-logos{justify-content:center}.footer-align-right .footer-grid-4 .footer-partner-logos{justify-content:flex-end}.footer-divider{height:1px;border:0;margin:2rem 0;width:100%}.footer-legal-area{padding:1rem 0}.footer-legal-area .legal-text{font-size:.85rem;margin:0;line-height:1.5}.footer-legal-area a{font-weight:600}.footer-compact-area{display:flex;justify-content:space-between;align-items:center;padding:1rem 0}@media (max-width: 1200px){.footer-grid-12 .sitemap-grid{grid-template-columns:repeat(4,1fr)}.footer-grid-12 .sitemap-grid.categories-12{grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(3,auto)}.footer-grid-12 .sitemap-grid.categories-6{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(2,auto)}}@media (max-width: 991px){.footer-grid-12 .sitemap-grid{display:none}.footer-grid-12 .sitemap-accordion{display:block}.footer-content{padding:2rem 1.5rem}.footer-secondary-area{flex-direction:column;gap:1.5rem}.footer-secondary-area .footer-social,.footer-secondary-area .footer-partner-logos{width:100%}}@media (max-width: 767px){.footer-content{padding:1.5rem 1rem}.footer-logo-area{margin-bottom:1.5rem}.footer-partner-logos{flex-direction:column;align-items:flex-start;gap:1rem}.footer-align-center .footer-partner-logos{align-items:center}.footer-align-right .footer-partner-logos{align-items:flex-end}}\n"] }] }], ctorParameters: () => [], propDecorators: { config: [{ type: Input }], type: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NmYy1kcy9zcmMvbGliL2NvbXBvbmVudHMvZm9vdGVyL2Zvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZmMtZHMvc3JjL2xpYi9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7Ozs7QUFRdkIsTUFBTSxPQUFPLGVBQWU7SUFDaEIsTUFBTSxHQUFpQjtRQUMvQixLQUFLLEVBQUUsTUFBTTtRQUNiLFNBQVMsRUFBRSxNQUFNO1FBQ2pCLFdBQVcsRUFBRSxFQUFFO0tBQ2hCLENBQUM7SUFDTyxJQUFJLEdBQTBCLFNBQVMsQ0FBQztJQUVqRCxjQUFjLEdBQWtCLElBQUksQ0FBQztJQUNyQyxXQUFXLEdBQVcsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUV4QyxJQUFJLFVBQVU7UUFDWixPQUFPLGdCQUFnQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sZ0JBQWdCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLE1BQU0sRUFBRSxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLGVBQWUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksRUFBRSxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksYUFBYTtRQUNmLHNEQUFzRDtRQUN0RCxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUNuRSxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7UUFFRCx1RUFBdUU7UUFDdkUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNuQyxPQUFPLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDO1FBQ2hDLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO1FBQ04seUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxNQUFNLEdBQUc7WUFDWixLQUFLLEVBQUUsTUFBTTtZQUNiLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLFdBQVcsRUFBRSxFQUFFO1lBQ2YsR0FBRyxJQUFJLENBQUMsTUFBTTtTQUNmLENBQUM7UUFFRixvREFBb0Q7UUFDcEQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsV0FBVztRQUNULDRDQUE0QztRQUM1QyxNQUFNLENBQUMsbUJBQW1CLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7SUFDdkMsQ0FBQztJQUVELGNBQWMsQ0FBQyxhQUFxQjtRQUNsQyxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssYUFBYSxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLGFBQXFCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLGNBQWMsS0FBSyxhQUFhLENBQUM7SUFDL0MsQ0FBQzt3R0F4RVUsZUFBZTs0RkFBZixlQUFlLDhGQ1o1Qix3K0tBdUtBOzs0RkQzSmEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxZQUFZO3dEQUtaLE1BQU07c0JBQWQsS0FBSztnQkFLRSxJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvb3RlckNvbmZpZyB9IGZyb20gJy4uLy4uL21vZGVscy9mb290ZXIubW9kZWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjZmMtZm9vdGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9vdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb290ZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9vdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICAgQElucHV0KCkgY29uZmlnOiBGb290ZXJDb25maWcgPSB7XHJcbiAgICB0aGVtZTogJ2RhcmsnLFxyXG4gICAgYWxpZ25tZW50OiAnbGVmdCcsXHJcbiAgICBncmlkQ29sdW1uczogMTIsXHJcbiAgfTtcclxuICBASW5wdXQoKSB0eXBlOiAnZGVmYXVsdCcgfCAnY29tcGFjdCcgPSAnZGVmYXVsdCc7XHJcblxyXG4gIGFjdGl2ZUNhdGVnb3J5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBzY3JlZW5XaWR0aDogbnVtYmVyID0gd2luZG93LmlubmVyV2lkdGg7XHJcblxyXG4gIGdldCB0aGVtZUNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYGZvb3Rlci10aGVtZS0ke3RoaXMuY29uZmlnLnRoZW1lIHx8ICdkYXJrJ31gO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFsaWdubWVudENsYXNzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYGZvb3Rlci1hbGlnbi0ke3RoaXMuY29uZmlnLmFsaWdubWVudCB8fCAnbGVmdCd9YDtcclxuICB9XHJcblxyXG4gIGdldCBncmlkQ2xhc3MoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgZm9vdGVyLWdyaWQtJHt0aGlzLmNvbmZpZy5ncmlkQ29sdW1ucyB8fCAxMn1gO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzQ29sbGFwc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICAvLyBTZW1wcmUgdXNhciBhY2NvcmRpb24gcGFyYSBsYXlvdXRzIGRlIDggZSA0IGNvbHVuYXNcclxuICAgIGlmICh0aGlzLmNvbmZpZy5ncmlkQ29sdW1ucyA9PT0gOCB8fCB0aGlzLmNvbmZpZy5ncmlkQ29sdW1ucyA9PT0gNCkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBQYXJhIGxheW91dCBkZSAxMiBjb2x1bmFzLCB1c2FyIGFjY29yZGlvbiBlbSB0ZWxhcyBtZW5vcmVzIHF1ZSA5OTJweFxyXG4gICAgaWYgKHRoaXMuY29uZmlnLmdyaWRDb2x1bW5zID09PSAxMikge1xyXG4gICAgICByZXR1cm4gdGhpcy5zY3JlZW5XaWR0aCA8IDk5MjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIC8vIFNldCBkZWZhdWx0IHZhbHVlcyBmb3Igb3B0aW9uYWwgZmllbGRzXHJcbiAgICB0aGlzLmNvbmZpZyA9IHtcclxuICAgICAgdGhlbWU6ICdkYXJrJyxcclxuICAgICAgYWxpZ25tZW50OiAnbGVmdCcsXHJcbiAgICAgIGdyaWRDb2x1bW5zOiAxMixcclxuICAgICAgLi4udGhpcy5jb25maWdcclxuICAgIH07XHJcblxyXG4gICAgLy8gQWRpY2lvbmFyIGxpc3RlbmVyIHBhcmEgcmVkaW1lbnNpb25hbWVudG8gZGEgdGVsYVxyXG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIHRoaXMub25SZXNpemUuYmluZCh0aGlzKSk7XHJcbiAgICB0aGlzLm9uUmVzaXplKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIC8vIFJlbW92ZXIgbGlzdGVuZXIgYW8gZGVzdHJ1aXIgbyBjb21wb25lbnRlXHJcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5vblJlc2l6ZS5iaW5kKHRoaXMpKTtcclxuICB9XHJcblxyXG4gIG9uUmVzaXplKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zY3JlZW5XaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlQ2F0ZWdvcnkoY2F0ZWdvcnlUaXRsZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVDYXRlZ29yeSA9PT0gY2F0ZWdvcnlUaXRsZSkge1xyXG4gICAgICB0aGlzLmFjdGl2ZUNhdGVnb3J5ID0gbnVsbDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlQ2F0ZWdvcnkgPSBjYXRlZ29yeVRpdGxlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaXNDYXRlZ29yeUFjdGl2ZShjYXRlZ29yeVRpdGxlOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmFjdGl2ZUNhdGVnb3J5ID09PSBjYXRlZ29yeVRpdGxlO1xyXG4gIH1cclxufVxyXG4iLCI8IS0tIGZvb3Rlci5jb21wb25lbnQuaHRtbCAtIEFqdXN0YWRvIHBhcmEgb3MgZGlmZXJlbnRlcyBsYXlvdXRzIGRlIGdyaWQgLS0+XHJcbjxmb290ZXJcclxuICBjbGFzcz1cImZvb3Rlci1jb250YWluZXJcIlxyXG4gIFtuZ0NsYXNzXT1cIlt0aGVtZUNsYXNzLCBhbGlnbm1lbnRDbGFzcywgZ3JpZENsYXNzXVwiXHJcbj5cclxuICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ2RlZmF1bHQnXCIgY2xhc3M9XCJmb290ZXItY29udGVudFwiPlxyXG4gICAgPCEtLSBMb2dvIEFyZWEgLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLWxvZ28tYXJlYVwiICpuZ0lmPVwiY29uZmlnLmxvZ29cIj5cclxuICAgICAgPGEgW2hyZWZdPVwiY29uZmlnLmxvZ28udXJsIHx8ICcjJ1wiIGNsYXNzPVwiZm9vdGVyLWxvZ29cIj5cclxuICAgICAgICA8aW1nIFtzcmNdPVwiY29uZmlnLmxvZ28uc3JjXCIgW2FsdF09XCJjb25maWcubG9nby5hbHRcIiAvPlxyXG4gICAgICA8L2E+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIFNpdGUgTWFwIEFyZWEgLS0+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiZm9vdGVyLXNpdGVtYXAtYXJlYVwiXHJcbiAgICAgICpuZ0lmPVwiY29uZmlnLmNhdGVnb3JpZXMgJiYgY29uZmlnLmNhdGVnb3JpZXMubGVuZ3RoID4gMFwiXHJcbiAgICA+XHJcbiAgICAgIDwhLS0gR3JpZCB2aWV3IGZvciAxMiBjb2x1bW5zIC0tPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJzaXRlbWFwLWdyaWRcIlxyXG4gICAgICAgIFtjbGFzcy5jYXRlZ29yaWVzLTZdPVwiY29uZmlnLmNhdGVnb3JpZXMubGVuZ3RoIDw9IDZcIlxyXG4gICAgICAgIFtjbGFzcy5jYXRlZ29yaWVzLTEyXT1cIlxyXG4gICAgICAgICAgY29uZmlnLmNhdGVnb3JpZXMubGVuZ3RoID4gNiAmJiBjb25maWcuY2F0ZWdvcmllcy5sZW5ndGggPD0gMTJcclxuICAgICAgICBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgY2F0ZWdvcnkgb2YgY29uZmlnLmNhdGVnb3JpZXNcIj5cclxuICAgICAgICAgIDxoMyBjbGFzcz1cInNpdGVtYXAtY2F0ZWdvcnlcIj57eyBjYXRlZ29yeS50aXRsZSB9fTwvaDM+XHJcbiAgICAgICAgICA8dWwgY2xhc3M9XCJzaXRlbWFwLWxpc3RcIj5cclxuICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBsaW5rIG9mIGNhdGVnb3J5LmxpbmtzXCI+XHJcbiAgICAgICAgICAgICAgPGEgW2hyZWZdPVwibGluay51cmxcIiBbdGFyZ2V0XT1cImxpbmsudGFyZ2V0IHx8ICdfc2VsZidcIj57e1xyXG4gICAgICAgICAgICAgICAgbGluay5sYWJlbFxyXG4gICAgICAgICAgICAgIH19PC9hPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPC91bD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIEFjY29yZGlvbiB2aWV3IGZvciA4IGFuZCA0IGNvbHVtbnMgKGFuZCByZXNwb25zaXZlIDEyIGNvbHVtbnMpIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwic2l0ZW1hcC1hY2NvcmRpb25cIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cInNpdGVtYXAtYWNjb3JkaW9uLWl0ZW1cIlxyXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIGNvbmZpZy5jYXRlZ29yaWVzXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwic2l0ZW1hcC1hY2NvcmRpb24taGVhZGVyXCJcclxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpc0NhdGVnb3J5QWN0aXZlKGNhdGVnb3J5LnRpdGxlKVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVDYXRlZ29yeShjYXRlZ29yeS50aXRsZSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aDMgY2xhc3M9XCJzaXRlbWFwLWNhdGVnb3J5XCI+e3sgY2F0ZWdvcnkudGl0bGUgfX08L2gzPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNpdGVtYXAtdG9nZ2xlLWljb25cIj5cclxuICAgICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uLWFycm93XCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5pY29uLWRvd25dPVwiIWlzQ2F0ZWdvcnlBY3RpdmUoY2F0ZWdvcnkudGl0bGUpXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5pY29uLXVwXT1cImlzQ2F0ZWdvcnlBY3RpdmUoY2F0ZWdvcnkudGl0bGUpXCJcclxuICAgICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJzaXRlbWFwLWFjY29yZGlvbi1jb250ZW50XCJcclxuICAgICAgICAgICAgW2NsYXNzLmV4cGFuZGVkXT1cImlzQ2F0ZWdvcnlBY3RpdmUoY2F0ZWdvcnkudGl0bGUpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHVsIGNsYXNzPVwic2l0ZW1hcC1saXN0XCI+XHJcbiAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBsaW5rIG9mIGNhdGVnb3J5LmxpbmtzXCI+XHJcbiAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJsaW5rLnVybFwiIFt0YXJnZXRdPVwibGluay50YXJnZXQgfHwgJ19zZWxmJ1wiPnt7XHJcbiAgICAgICAgICAgICAgICAgIGxpbmsubGFiZWxcclxuICAgICAgICAgICAgICAgIH19PC9hPlxyXG4gICAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIFNlY29uZGFyeSBJbmZvcm1hdGlvbiBBcmVhIC0tPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImZvb3Rlci1zZWNvbmRhcnktYXJlYVwiXHJcbiAgICAgICpuZ0lmPVwiXHJcbiAgICAgICAgKGNvbmZpZy5zb2NpYWxJdGVtcyAmJiBjb25maWcuc29jaWFsSXRlbXMubGVuZ3RoID4gMCkgfHxcclxuICAgICAgICAoY29uZmlnLnBhcnRuZXJMb2dvcyAmJiBjb25maWcucGFydG5lckxvZ29zLmxlbmd0aCA+IDApXHJcbiAgICAgIFwiXHJcbiAgICA+XHJcbiAgICAgIDwhLS0gU29jaWFsIE5ldHdvcmtzIC0tPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJmb290ZXItc29jaWFsXCJcclxuICAgICAgICAqbmdJZj1cImNvbmZpZy5zb2NpYWxJdGVtcyAmJiBjb25maWcuc29jaWFsSXRlbXMubGVuZ3RoID4gMFwiXHJcbiAgICAgID5cclxuICAgICAgICA8aDMgY2xhc3M9XCJzb2NpYWwtdGl0bGVcIiAqbmdJZj1cImNvbmZpZy5zb2NpYWxUaXRsZVwiPlxyXG4gICAgICAgICAge3sgY29uZmlnLnNvY2lhbFRpdGxlIH19XHJcbiAgICAgICAgPC9oMz5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwic29jaWFsLWljb25zXCI+XHJcbiAgICAgICAgICA8YVxyXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiBjb25maWcuc29jaWFsSXRlbXNcIlxyXG4gICAgICAgICAgICBbaHJlZl09XCJpdGVtLnVybFwiXHJcbiAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwic29jaWFsLWljb25cIlxyXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIml0ZW0ubGFiZWxcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiaXRlbS5pY29uXCI+PC9pPlxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gUGFydG5lciBMb2dvcyAtLT5cclxuICAgICAgPGRpdlxyXG4gICAgICAgIGNsYXNzPVwiZm9vdGVyLXBhcnRuZXItbG9nb3NcIlxyXG4gICAgICAgICpuZ0lmPVwiY29uZmlnLnBhcnRuZXJMb2dvcyAmJiBjb25maWcucGFydG5lckxvZ29zLmxlbmd0aCA+IDBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGFcclxuICAgICAgICAgICpuZ0Zvcj1cImxldCBsb2dvIG9mIGNvbmZpZy5wYXJ0bmVyTG9nb3NcIlxyXG4gICAgICAgICAgW2hyZWZdPVwibG9nby51cmwgfHwgJyMnXCJcclxuICAgICAgICAgIGNsYXNzPVwicGFydG5lci1sb2dvXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aW1nIFtzcmNdPVwibG9nby5zcmNcIiBbYWx0XT1cImxvZ28uYWx0XCIgLz5cclxuICAgICAgICA8L2E+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSBEaXZpZGVyIC0tPlxyXG4gICAgPGhyXHJcbiAgICAgIGNsYXNzPVwiZm9vdGVyLWRpdmlkZXJcIlxyXG4gICAgICAqbmdJZj1cIlxyXG4gICAgICAgIGNvbmZpZy5sZWdhbFRleHQgfHwgY29uZmlnLmhpZ2hsaWdodGVkTGVnYWxUZXh0IHx8IGNvbmZpZy5saWNlbnNlVGV4dFxyXG4gICAgICBcIlxyXG4gICAgLz5cclxuXHJcbiAgICA8IS0tIExlZ2FsIEluZm9ybWF0aW9uIEFyZWEgLS0+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiZm9vdGVyLWxlZ2FsLWFyZWFcIlxyXG4gICAgICAqbmdJZj1cIlxyXG4gICAgICAgIGNvbmZpZy5sZWdhbFRleHQgfHwgY29uZmlnLmhpZ2hsaWdodGVkTGVnYWxUZXh0IHx8IGNvbmZpZy5saWNlbnNlVGV4dFxyXG4gICAgICBcIlxyXG4gICAgPlxyXG4gICAgICA8cFxyXG4gICAgICAgIGNsYXNzPVwibGVnYWwtdGV4dFwiXHJcbiAgICAgICAgKm5nSWY9XCJjb25maWcubGVnYWxUZXh0IHx8IGNvbmZpZy5oaWdobGlnaHRlZExlZ2FsVGV4dFwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBjb25maWcubGVnYWxUZXh0IHx8IFwiXCIgfX1cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uZmlnLmhpZ2hsaWdodGVkTGVnYWxUZXh0XCI+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImxlZ2FsLWhpZ2hsaWdodFwiPlxyXG4gICAgICAgICAgICB7eyBjb25maWcuaGlnaGxpZ2h0ZWRMZWdhbFRleHQgfX08L3NwYW5cclxuICAgICAgICAgID5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9wPlxyXG5cclxuICAgICAgPHAgY2xhc3M9XCJsZWdhbC10ZXh0XCIgKm5nSWY9XCJjb25maWcubGljZW5zZVRleHRcIj5cclxuICAgICAgICB7eyBjb25maWcubGljZW5zZVRleHQgfX1cclxuICAgICAgICA8YVxyXG4gICAgICAgICAgKm5nSWY9XCJjb25maWcubGljZW5zZVVybFwiXHJcbiAgICAgICAgICBbaHJlZl09XCJjb25maWcubGljZW5zZVVybFwiXHJcbiAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxyXG4gICAgICAgICAgPnt7IGNvbmZpZy5saWNlbnNlTmFtZSB8fCBcImxpY2Vuw6dhIGRlIHVzb1wiIH19PC9hXHJcbiAgICAgICAgPlxyXG4gICAgICA8L3A+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2ICpuZ0lmPVwidHlwZSA9PT0gJ2NvbXBhY3QnXCIgY2xhc3M9XCJweC0yXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLWNvbXBhY3QtYXJlYVwiPlxyXG4gICAgICA8ZGl2PlxyXG4gICAgICAgIDxzcGFuPnt7IGNvbmZpZy5wcm9qZWN0TmFtZSB9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXY+XHJcbiAgICAgICAgPHNwYW4+e3sgY29uZmlnLnByb2plY3RWZXJzaW9uIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Zvb3Rlcj5cclxuIl19