@propmix/profet-common-header 2.1.2 → 2.1.3

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.
@@ -262,10 +262,10 @@ export class HeaderComponent {
262
262
  }
263
263
  }
264
264
  HeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: HeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
265
- HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: HeaderComponent, selector: "lib-header", inputs: { template: "template", appName: "appName" }, outputs: { menuEvent: "menuEvent", infoEvent: "infoEvent" }, ngImport: i0, template: "<mat-toolbar cdkMenuBar color=\"primary\" [ngClass]=\"headerClass\" class=\"header-wrapper common_header shadow-sm\">\n <!-- Main nav button and navigation links -->\n <button mat-icon-button color=\"theme-white\" (click)=\"menuAction()\" class=\"pmx-button pmx-menu-button orders-menu icon-btn ms-0 me-3\"\n aria-label=\"main menu\" tabindex=\"0\" matTooltip=\"Main menu\" matTooltipPosition=\"below\"\n matTooltipClass=\"poc-header-tooltip\"><mat-icon>menu</mat-icon></button>\n <a class=\"navbar-brand me-auto\" href=\"#\">\n <img *ngIf=\"currentAppLogo\" [src]=\"sanitizeUrl(currentAppLogo)\" alt=\"App Logo\" class=\"app-logo\">\n </a>\n \n <!-- Apps button and menu items -->\n <ng-container *ngIf=\"template\" [ngTemplateOutlet]=\"template\"></ng-container>\n <button mat-icon-button *ngIf=\"(appList.length > 0)\" color=\"theme-white\"\n class=\"pmx-button pmx-menu-button icon-btn btn-switch-apps ms-1 me-1\" [class.menu-opened]=\"isAppsMenuOpen == true\"\n (menuOpened)=\"toggleMenu('apps')\" (menuClosed)=\"toggleMenu('apps')\" [matMenuTriggerFor]=\"apps\"\n matTooltip=\"Switch application\" matTooltipPosition=\"below\" aria-label=\"apps menu\"\n tabindex=\"0\">\n <mat-icon class=\"icon-arrow-down\">apps</mat-icon>\n </button>\n <mat-menu #apps=\"matMenu\" class=\"accounts_drpmenu pmx-menu-group header-dropdown-apps\" hasBackdrop=\"true\" xPosition=\"before\">\n <div class=\"popover-content show-menu\">\n <div class=\"popover-header\"><mat-icon class=\"me-2\">Apps</mat-icon><h3 class=\"popover-title\">Switch Application</h3></div>\n <div class=\"popover-body\">\n <div class=\"popover-content-title\">\n <p *ngIf=\"appList?.length == 1;else appsTitle\">Enabled Application</p>\n <ng-template #appsTitle><p>Enabled Applications</p></ng-template>\n </div>\n <ul cdkMenu class=\"list-group list-apps-group\">\n <li cdkMenuItem class=\"list-item list-app\" *ngFor=\"let app of appList;let i = index\" \n [ngClass]=\"(app?.active) ? 'app-active' : ''\">\n <button mat-menu-item class=\"pmx-button list-button\" (click)=\"appRedirect(app)\">\n <div class=\"app-icon-wrapper\"><img [src]=\"sanitizeUrl(imageDataUrls.profetThumbnail )\" class=\"app-icon\"></div>\n <span class=\"list-text me-auto\">{{ app?.name }}</span>\n <small class=\"active-label\" *ngIf=\"(app?.active)\">Active</small>\n <small class=\"hover-label tooltip-label\" *ngIf=\"!(app?.active)\">Click to switch app</small>\n </button>\n </li>\n </ul>\n </div>\n </div>\n </mat-menu>\n \n <span class=\"vr vr-blury\"></span>\n <!-- Profile button and profile dropdown links -->\n <div class=\"btn-group\" role=\"group\" aria-label=\"Button group with profile info\" [ngClass]=\"(((currentCompany?.subDomain) && userCompanyLogo) ? 'branded-group-true' : 'branded-group-false') + ' ' + (isProfileMenuOpen ? 'btn-group-clicked' : '')\">\n <button class=\"pmx-button pmx-menu-button profile-button\" mat-button mat-stroked-button [matMenuTriggerFor]=\"menu\"\n color=\"primary\" (menuOpened)=\"toggleMenu('profile')\" (menuClosed)=\"toggleMenu('profile')\" [ngClass]=\"currentCompany?.subDomain ? 'branded-button-true' : 'branded-button-false'\" matTooltip=\"Profile Info\" matTooltipPosition=\"below\">\n <div class=\"profile-inner\">\n <div class=\"brand-logo align-self-center\" *ngIf=\"((currentCompany?.subDomain) && userCompanyLogo)\" [ngClass]=\"userCompanyLogo ? 'branded-logo-true' : 'branded-logo-false'\" [ngStyle]=\"{'background-image': 'url(' + userCompanyLogo + ')'}\"></div>\n <div class=\"avatar\">\n <img *ngIf=\"userImageLink;else defaultAvatar\" [src]=\"sanitizeUrl(userImageLink)\" class=\"avatar-image\" alt=\"Avatar\">\n <ng-template #defaultAvatar><img [src]=\"sanitizeUrl(imageDataUrls.defaultUserImage)\" class=\"avatar-default\" alt=\"profile pic\"></ng-template>\n </div>\n </div>\n </button>\n </div>\n <mat-menu #menu=\"matMenu\" class=\"accounts_drpmenu pmx-menu-group header-dropdown-profile\" xPosition=\"before\">\n <div class=\"popover-content show-menu\">\n <div class=\"popover-header\">\n <div class=\"popover-user-top\">\n <div class=\"avatar-wrapper\">\n <div *ngIf=\"userImageLink;else defaultLargeAvatar\" [ngStyle]=\"{'background-image': 'url(' + userImageLink + ')'}\"\n class=\"avatar-icon\" alt=\"Avatar icon\">&nbsp;</div>\n <ng-template #defaultLargeAvatar>\n <div [ngStyle]=\"{'background-image': 'url(' + imageDataUrls.defaultUserImage + ')'}\" class=\"avatar-icon default-avatar\" alt=\"Avatar icon\">&nbsp;</div>\n </ng-template>\n </div>\n <div class=\"user-data\">\n <h3 class=\"profile-name\"><span *ngIf=\"userAuthData\">{{ userAuthData?.firstName }} {{ userAuthData?.lastName }}</span></h3>\n <button mat-button color=\"accent\" class=\"pmx-button btn btn-small view-profile ms-0\" (click)=\"profile()\">View Profile</button>\n </div>\n </div>\n </div>\n <div class=\"popover-body\">\n <div class=\"popover-content-title\"><p>Overview</p></div>\n <ul cdkMenu class=\"list-group list-overview\" *ngIf=\"currentCompany\">\n <li cdkMenuItem class=\"list-item\" *ngIf=\"userAuthData?.email\">\n <p mat-menu-item class=\"list-text\">\n <mat-icon class=\"list-icon\">mail</mat-icon><span class=\"title-case me-auto\">{{ userAuthData?.email }}</span>\n </p>\n </li>\n <li cdkMenuItem class=\"list-item d-none\" *ngIf=\"userAuthData?.contactPhone\">\n <p mat-menu-item class=\"list-text\">\n <mat-icon class=\"list-icon\">call</mat-icon><span class=\"title-case me-auto\">{{ userAuthData?.contactPhone }}</span>\n </p>\n </li>\n <li cdkMenuItem class=\"list-item\" *ngIf=\"userAuthData?.address !== null\">\n <p mat-menu-item class=\"list-text\">\n <mat-icon class=\"list-icon\">location_on</mat-icon>\n <span class=\"title-case me-auto\">\n <small>{{ userAuthData?.address?.streetAddress }} {{(userAuthData?.address?.streetAddress2 !== null) ? userAuthData?.address?.streetAddress2 : '' }}</small><br />\n {{ userAuthData?.address?.city }} {{userAuthData?.address?.stateOrProvince }} {{userAuthData?.address?.postalCode }}\n </span>\n </p>\n </li>\n </ul>\n <hr />\n <div class=\"popover-content-title\">\n <p *ngIf=\"userCompanies?.length == 1;else companiesTitle\">Company</p>\n <ng-template #companiesTitle><p>Companies</p></ng-template>\n </div>\n <ul cdkMenu class=\"list-group list-group-companies\">\n <li cdkMenuItem class=\"list-item list-company\" *ngFor=\"let company of userCompanies\" [ngClass]=\"(company?.activeNow) ? 'list-active company-active' : ''\">\n <button mat-menu-item class=\"pmx-button list-button\" (click)=\"switchCompany(company)\" [matTooltip]=\"company?.name\"\n matTooltipPosition=\"below\">\n <mat-icon class=\"icon-check\">{{ (company?.activeNow) ? 'check_circle' : 'swap_vert' }}</mat-icon>\n <span class=\"list-text pmx-text-truncate me-auto\">{{ company?.name | titlecase }}</span>\n <small class=\"active-label\" *ngIf=\"(company?.activeNow)\">Active</small>\n </button>\n </li>\n </ul>\n <hr />\n <ul cdkMenu class=\"list-group last-group my-1\">\n <li cdkMenuItem class=\"list-item py-2\">\n <button mat-menu-item class=\"pmx-button list-button btn-logout\" (click)=\"onLogoutClick()\">\n <mat-icon>power_settings_new</mat-icon>\n <span class=\"list-text\">Logout</span>\n </button>\n </li>\n </ul>\n </div>\n </div>\n </mat-menu>\n</mat-toolbar>", styles: [":root{--clr-primary-50: #e5f3fb;--clr-primary-100: #bfdff7;--clr-primary-200: #99ccf2;--clr-primary-300: #74b8ec;--clr-primary-400: #5ba9e8;--clr-primary-500: #479be5;--clr-primary-600: #408dd7;--clr-primary-700: #377bc5;--clr-primary-800: #316bb3;--clr-primary-900: #254d93;--clr-primary: var(--clr-primary-900);--clr-secondary-50: #e6f5e9;--clr-secondary-100: #c3e7c9;--clr-secondary-200: #9cd7a8;--clr-secondary-300: #72c885;--clr-secondary: var(--clr-secondary-300);--clr-secondary-400: #51bc6b;--clr-secondary-500: #2db051;--clr-secondary-600: #24a148;--clr-secondary-700: #178f3c;--clr-secondary-800: #0a7e32;--clr-secondary-900: #005e1f;--clr-black-50: #fafafa;--clr-black-100: #f5f5f5;--clr-black-200: #eeeeee;--clr-black-300: #e0e0e0;--clr-black-400: #bdbdbd;--clr-black-500: #9e9e9e;--clr-black-600: #757575;--clr-black-700: #616161;--clr-black-800: #424242;--clr-black-900: #212121;--clr-black: var(--clr-black-900)}.pmx-text-truncate{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color)}.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color: #24a148;--mat-text-button-state-layer-color: #24a148;--mat-text-button-ripple-color: rgba(255, 64, 129, .1)}html .mat-accent{--mat-slider-ripple-color: #24a148;--mat-slider-hover-state-layer-color: rgba(255, 64, 129, .05);--mat-slider-focus-state-layer-color: rgba(255, 64, 129, .2);--mdc-slider-handle-color: #24a148;--mdc-slider-focus-handle-color: #24a148;--mdc-slider-hover-handle-color: #24a148;--mdc-slider-active-track-color: #24a148;--mdc-slider-inactive-track-color: #24a148;--mdc-slider-with-tick-marks-inactive-container-color: #24a148;--mdc-slider-with-tick-marks-active-container-color: #51bc6b}.header-user-name{text-align:end;color:#000}.header-user-name span{font-size:12px;color:#9e9e9ede}.avatarLogo{max-width:30px}mat-toolbar.mat-toolbar.common_header.mat-primary.mat-toolbar-single-row{position:absolute;left:0;top:0;background-color:#fff;height:56px}button.switchButton,button.menuHamberger{padding:8px!important}.sidenavPanel{padding:20px 25px;height:100vh;position:relative}ul.navbarList{padding-left:0;list-style:none;margin-top:40px}ul.navbarList li{color:#666;font-weight:400;margin-bottom:25px;width:170px;cursor:pointer}.active{color:#4177d6!important}ul.navbarList li img{width:23px;margin-right:15px}.accounts_drpmenu{margin-top:.7em}.xsShowUsername{display:none;padding:0 16px;height:48px;line-height:48px}.vr{width:2px;background-color:#f5f5f5;opacity:1;margin:0 .5rem 0 1rem}.vr-blury{background-image:linear-gradient(180deg,transparent,#666,transparent);width:1px;opacity:.25}.navbar-brand .app-logo{height:30px;width:auto}.pmx-button mat-icon.mat-icon,.pmx-button mat-icon.mat-primary,.pmx-button mat-icon.mat-accent,.pmx-button mat-icon.mat-warn{color:var(--mat-icon-color)}.pmx-button mat-icon.mat-icon{font-size:1.5rem!important;line-height:1.5;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:transform .3s ease}.pmx-button.mdc-button--raised mat-icon.mat-icon{width:24px;height:24px;display:contents}.pmx-button.mat-mdc-button-base mat-icon.mat-icon{z-index:1}.pmx-button mat-icon.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.pmx-button mat-icon.mdc-button span.button-text{display:inline-flex;padding:0 1rem;text-transform:uppercase;font-size:.875rem;line-height:1.5}.pmx-button mat-icon.mdc-button span.upper-case{text-transform:uppercase}.pmx-button.mdc-button,.pmx-button.mdc-icon-button,.pmx-button.mdc-button--outlined,.pmx-button.mdc-button .mat-mdc-button-touch-target,.pmx-button.mdc-icon-button .mat-mdc-button-touch-target{height:40px!important;font-size:.75rem!important;letter-spacing:.2px;padding:0 .5rem;line-height:normal}.pmx-button.mdc-icon-button,.pmx-button.icon-btn.mdc-button--outlined,.pmx-button.icon-btn.mdc-button--raised,.pmx-button.mdc-icon-button .mat-mdc-button-touch-target{width:40px;border-radius:5px}.pmx-button.btn-small.mdc-button,.pmx-button.btn-small.mdc-icon-button,.pmx-button.btn-small.mdc-button--outlined{height:28px!important;padding:0 1rem}.pmx-button.mdc-icon-button,.pmx-button.icon-btn.mdc-button--raised{color:var(--clr-primary-900);background-color:var(--clr-primary-50)}.pmx-header .icon-button-shadow{box-shadow:0 1px 3px #0003,0 0 #00000024,0 1px 3px #0000001f}.pmx-button.icon-btn.mdc-button--raised.btn-switch-apps.menu-opened,.pmx-button.icon-btn.mdc-button--outlined.btn-switch-apps.menu-opened{background-color:#254d93;color:#fff;font-variation-settings:\"FILL\" 0,\"wght\" 200,\"GRAD\" 0,\"opsz\" 24}.pmx-button.mdc-icon-button.pmx-menu-button:hover,.pmx-button.mat-mdc-outlined-button.btn-switch-apps:hover,.pmx-button.icon-btn.mdc-button--outlined.btn-switch-apps:hover{border:1px solid var(--clr-primary-300)!important}.pmx-button.icon-app{width:20px}.pmx-button.mat-mdc-outlined-button,.pmx-button.mat-mdc-outlined-button:not(:disabled){background-color:#fff;overflow:hidden}.pmx-button.pmx-menu-button.profile-button.mat-mdc-outlined-button{padding:0;border-color:var(--clr-primary-100)!important}.btn-group-clicked .pmx-button.pmx-menu-button.profile-button.mat-mdc-outlined-button{border-color:var(--clr-primary-300)!important}.pmx-button.profile-button .profile-inner{border:0 solid transparent!important;display:flex;align-items:center;overflow:clip}.pmx-button.profile-button .avatar{width:38px;height:38px;box-sizing:border-box;border:3px #ffffff solid!important;border-radius:50%;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-content:center;align-items:center;flex-wrap:wrap}.pmx-button.profile-button .avatar{background-color:var(--clr-secondary-200)}.pmx-button.profile-button .avatar img.avatar-image,.pmx-button.profile-button .avatar img.avatar-default{width:100%;height:auto}.branded-group-false{margin-left:.65rem}.branded-group-false .pmx-button.pmx-menu-button.profile-button.branded-button-false{width:40px;border-radius:20px}.branded-group-true{margin-left:.65rem;border-radius:20px;border:1px solid var(--clr-primary-100)}.btn-group-clicked.branded-group-true{background-color:var(--clr-primary-200)}.branded-group-true .pmx-button.profile-button .profile-inner{border:0 solid #c4c9d2!important}.branded-group-true .pmx-button.pmx-menu-button.profile-button.branded-button-true{border-radius:20px}.branded-group-true .pmx-button.profile-button.branded-button-true .profile-inner .branded-logo-true{border-radius:5px;display:block;position:relative;height:38px;background-size:100%;background-position:center;background-repeat:no-repeat;min-width:100px;margin-right:1rem}.pmx-menu-group.mat-mdc-menu-panel{margin-top:1rem}.header-dropdown-apps.mat-mdc-menu-panel .mat-mdc-menu-content,.header-dropdown-profile.mat-mdc-menu-panel .mat-mdc-menu-content{padding:0!important}.header-dropdown-apps{width:400px!important}.header-dropdown-apps.mat-mdc-menu-panel .list-button{padding:.5rem 2rem}.header-dropdown-apps.mdc-menu-surface--open,.header-dropdown-profile.mdc-menu-surface--open{position:absolute;z-index:1;top:0;right:0;margin:0;padding:0;border:1px solid #e5e5e5;border-radius:6px;background:#fff;animation:popover .2s ease-in-out}.header-dropdown-apps.mat-mdc-menu-panel.mat-mdc-menu-panel{max-width:400px!important;width:400px!important;overflow:visible}.header-dropdown-profile.mat-mdc-menu-panel.mat-mdc-menu-panel{max-width:360px!important;width:360px!important;overflow:visible}.popover-content:after,.popover-content:before{font-size:1.4em;display:block;width:0;height:0;content:\"\";pointer-events:none;position:absolute;top:-.45em}.popover-content:before{border-right:10px solid transparent;border-bottom:10px solid #999;border-left:10px solid transparent;right:.97em}.popover-content:after{border-right:12px solid transparent;border-bottom:12px solid #d5e3fa;border-left:12px solid transparent;right:.9em}.popover-content-title{display:flex;align-items:center;justify-content:flex-start;overflow:hidden;padding:0 1rem;min-height:40px}.popover-content-title p{margin:0;font-size:.75rem!important;color:#777}.popover-content .popover-user-top:after{clear:both;content:\"\";display:table}.popover-content .popover-user-top{display:flex;flex-flow:row;justify-content:flex-start;align-items:center}.popover-content .popover-user-top .avatar-wrapper{flex:0 4 auto;border-radius:100%;overflow-clip-margin:content-box;overflow:clip;background-color:#fff;padding:2px}.drop-shadow{filter:drop-shadow(0px 0px 3px rgba(0,0,0,.5))}.popover-content .popover-user-top .user-data{flex:1 0 auto;margin-left:1rem}.popover-content .popover-user-top .avatar-wrapper .avatar-icon{background-repeat:no-repeat;background-size:100%;background-position:center;width:64px;height:64px;background-color:#72c885}.avatar-icon.default-avatar{background-size:100%}.popover-content .popover-user-top .user-data h3.profile-name{font-size:1rem;text-overflow:ellipsis;margin-bottom:.5rem;line-height:normal;font-weight:600;color:var(--clr-primary)}.btn.view-profile{background:var(--clr-black-50);color:var(--clr-primary)}.popover-content ul.list-group{padding:0 0 8px;margin:0;display:flex;list-style:none}.popover-content ul.list-group.last-group,.popover-content ul.list-group.last-group .list-item{background-color:transparent}.popover-content ul.list-group li.list-item{align-items:center;border:none;padding:0;width:100%;display:flex;flex-direction:row;flex-wrap:wrap;order:1}.popover-content ul.list-group li.list-item .list-button{padding:.5rem 2rem;min-height:40px}.popover-content ul.list-group li.list-item span.mat-mdc-menu-item-text,.popover-content ul.list-group li.list-item span.mdc-list-item__primary-text,.popover-content ul.list-group li.list-item .list-button>span{display:flex;align-items:center}.popover-content ul.list-group li.list-item.list-company .list-button>span{width:100%;overflow:hidden}.popover-content ul.list-group li.list-item .list-button .hover-label.tooltip-label{opacity:0}.popover-content ul.list-group li.list-item.list-app .list-button:hover>span .hover-label.tooltip-label,.popover-content ul.list-group li.list-item.list-company .list-button:hover>span .hover-label.tooltip-label{opacity:0;display:inline-flex;color:#fff;background-color:#616161;font-size:11px;border-radius:4px;padding:0 .5rem;transition:opacity .3s ease-out}.popover-content ul.list-group li.list-item .list-button:hover{background:rgba(0,0,0,.04)}.popover-content ul.list-group li.list-item.company-active,.popover-content ul.list-group li.list-item.app-active{cursor:not-allowed;pointer-events:none;order:0}.popover-content ul.list-group li.list-item.company-active .active-label,.popover-content ul.list-group li.list-item.app-active .active-label{background-color:#93c47d;color:var(--clr-black-900);padding:0 .5rem;border-radius:50px;font-size:.75rem;margin-left:.5rem}.popover-content ul.list-group.list-apps-group{display:flex}.popover-content ul.list-group.list-overview li.list-item{cursor:not-allowed;pointer-events:none}.popover-content ul.list-group li.list-item p.list-text{padding:.5rem 2rem;margin:0;min-height:auto}.popover-content ul.list-group li.list-item .list-button .mat-icon,.popover-content ul.list-group li.list-item p.list-text mat-icon.list-icon,.popover-content ul.list-group li.list-item .list-button .list-icon,.popover-content ul.list-group li.list-item p.list-text .list-icon{color:var(--clr-secondary-500);font-variation-settings:\"FILL\" 0,\"wght\" 200,\"GRAD\" 0,\"opsz\" 24;font-size:24px!important}.popover-content ul.list-group li.list-item.list-active.company-active button.list-button .mat-icon{color:var(--clr-secondary-500);font-variation-settings:\"FILL\" 1,\"wght\" 300,\"GRAD\" 0,\"opsz\" 24}.popover-content ul.list-group li.list-item p.list-text span.mdc-list-item__primary-text{width:100%;display:flex}.popover-content ul.list-group li.list-item span.title-case{font-size:.8rem;color:var(--clr-black-900);font-weight:500;display:block;line-height:normal}small{color:var(--clr-black-500)}.popover-content ul.list-group li.list-item span.text-label{font-size:12px;color:#979797;font-weight:400;display:block;line-height:normal}.popover-content ul.list-group li.list-item span.list-text{font-size:.875rem;color:#0a152f;font-weight:500;display:block;line-height:normal}.popover-content ul.list-group li.list-item span.upper-case{text-transform:uppercase}.popover-content ul.list-group li.list-item span.app-status,.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status{font-size:13px;color:#0a152f;font-weight:400;display:block;line-height:normal;margin:0}.popover-content ul.list-group li.list-item.app-active span.list-text,.popover-content ul.list-group li.list-item.company-active span.list-text{color:#4b85ea}.popover-content ul.list-group li.list-item.app-active span.app-status,.popover-content ul.list-group li.list-item.app-active .mat-mdc-chip-option.chip-status,.popover-content ul.list-group li.list-item.company-active span.app-status,.popover-content ul.list-group li.list-item.company-active .mat-mdc-chip-option.chip-status{color:#24a53f}.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status{display:flex;flex-direction:row;justify-content:flex-start}.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected{transition:all .3s ease-out;margin-left:auto;flex:1;justify-content:flex-end}.popover-content ul.list-group li.list-item.app-active .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected,.popover-content ul.list-group li.list-item.company-active .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected{background-color:var(--clr-primary-600);color:var(--clr-black-100)}.popover-content ul.list-group li.list-item .mat-mdc-standard-chip .mat-mdc-chip-action-label{font-size:.75rem}.popover-content ul.list-group li.list-item .mat-mdc-standard-chip{height:24px}.popover-content ul.list-group li.list-item img.logo-thumb{width:24px;height:auto;margin-right:1rem}.popover-content ul.list-group li.list-item .list-button.btn-logout{display:flex;align-items:center;color:var(--clr-black-700)}.popover-content ul.list-group li.list-item.app-active .list-button .app-icon-wrapper{background-color:#fff;border-color:#4b85ea;border-width:3px}.popover-content ul.list-group li.list-item.company-active p.list-text .mat-icon{font-variation-settings:\"FILL\" 1,\"wght\" 200,\"GRAD\" 0,\"opsz\" 24;color:var(--themelightblue)}.popover-content ul.list-group li.list-item .list-button.btn-logout .list-text{color:var(--clr-black-700)}.popover-content ul.list-group li.list-item.app-active button,.popover-content ul.list-group li.list-item.company-active button{cursor:not-allowed;pointer-events:none}.popover-content hr{background-color:#c4c9d2;margin:0;width:100%;border:0;border-top:1px solid #c4c9d2;opacity:1}.popover-content ul.apps-grid{width:100%;white-space:nowrap;overflow:auto}.popover-content ul.apps-grid li.list-item,.popover-content ul.apps-grid li.list-item img.logo-thumb{display:flex;justify-content:flex-start;flex-wrap:nowrap;align-content:center;align-items:center;flex-direction:row}.popover-header{background-color:#d5e3fa;border-bottom:1px solid #d8d8d8;padding:.975rem 1rem;margin-bottom:0;display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;flex-wrap:wrap}.popover-header .mat-icon{font-size:1.5rem!important;font-variation-settings:\"FILL\" 1,\"wght\" 500,\"GRAD\" 0,\"opsz\" 24;color:var(--clr-primary-900)}.header-dropdown-profile .popover-header{padding:1.125rem 1rem}.popover-header h3.popover-title{font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;margin-bottom:0;line-height:normal;font-weight:500;color:#254d93}.popover-body{max-height:420px;overflow:auto;padding:0}.app-icon-wrapper{margin:0 1rem 0 0;max-width:48px;max-height:48px;width:48px;height:48px;overflow:hidden;background-size:70%;background-repeat:no-repeat;background-position:center;border:1px solid #c4c9d2;border-radius:8px;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;flex-wrap:wrap}.app-icon-wrapper img.app-icon{width:100%;height:auto;overflow:hidden;padding:.5rem}h4.app-name{font-size:.65rem;margin:.5rem 0 0;line-height:normal;color:#254d93;font-weight:400;text-transform:uppercase}.popover-body ul.enabled-apps{display:flex;flex-flow:column wrap;justify-content:space-evenly;align-items:center;align-content:flex-start;border-bottom:1px solid #E9E9E9;margin:0;padding:0 1rem;list-style:none}.popover-body ul.enabled-apps li.enabled-app{flex-grow:1;flex:0 1 auto;text-align:center;font-size:.8125rem;padding:10px;list-style:none}.mat-tooltip{overflow:visible}.cdk-overlay-container .mdc-tooltip:before{width:0!important;height:0!important;content:\"\"!important;position:absolute!important;border-left:.5rem solid transparent!important;border-right:.5rem solid transparent!important;border-bottom:.5rem solid #0000008c!important}.cdk-overlay-container .mdc-tooltip:before{left:50%!important;top:-8px!important;transform:rotate(0)!important;right:50%!important}.cdk-overlay-container .mdc-tooltip__surface:before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\"\";pointer-events:none}.pmx-button.mdc-icon-button[color=theme-white],.pmx-button.icon-btn.mdc-button--raised[color=theme-white]{color:var(--clr-primary-900)}.pmx-button.icon-btn.orders-menu[color=theme-white]{border:1px solid var(--clr-black-50)!important}\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: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }], encapsulation: i0.ViewEncapsulation.None });
265
+ HeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: HeaderComponent, selector: "lib-header", inputs: { template: "template", appName: "appName" }, outputs: { menuEvent: "menuEvent", infoEvent: "infoEvent" }, ngImport: i0, template: "<mat-toolbar cdkMenuBar color=\"primary\" [ngClass]=\"headerClass\" class=\"header-wrapper common_header shadow-sm\">\n <!-- Main nav button and navigation links -->\n <button mat-icon-button color=\"theme-white\" (click)=\"menuAction()\" class=\"pmx-button pmx-menu-button orders-menu icon-btn ms-0 me-3\"\n aria-label=\"main menu\" tabindex=\"0\" matTooltip=\"Main menu\" matTooltipPosition=\"below\"\n matTooltipClass=\"poc-header-tooltip\"><mat-icon>menu</mat-icon></button>\n <a class=\"navbar-brand me-auto\" href=\"#\">\n <img *ngIf=\"currentAppLogo\" [src]=\"sanitizeUrl(currentAppLogo)\" alt=\"App Logo\" class=\"app-logo\">\n </a>\n \n <!-- Apps button and menu items -->\n <ng-container *ngIf=\"template\" [ngTemplateOutlet]=\"template\"></ng-container>\n <button mat-icon-button *ngIf=\"(appList.length > 0)\" color=\"theme-white\"\n class=\"pmx-button pmx-menu-button icon-btn btn-switch-apps ms-1 me-1\" [class.menu-opened]=\"isAppsMenuOpen == true\"\n (menuOpened)=\"toggleMenu('apps')\" (menuClosed)=\"toggleMenu('apps')\" [matMenuTriggerFor]=\"apps\"\n matTooltip=\"Switch application\" matTooltipPosition=\"below\" aria-label=\"apps menu\"\n tabindex=\"0\">\n <mat-icon class=\"icon-arrow-down\">apps</mat-icon>\n </button>\n <mat-menu #apps=\"matMenu\" class=\"accounts_drpmenu pmx-menu-group header-dropdown-apps\" hasBackdrop=\"true\" xPosition=\"before\">\n <div class=\"popover-content show-menu\">\n <div class=\"popover-header\"><mat-icon class=\"me-2\">Apps</mat-icon><h3 class=\"popover-title\">Switch Application</h3></div>\n <div class=\"popover-body\">\n <div class=\"popover-content-title\">\n <p *ngIf=\"appList?.length == 1;else appsTitle\">Enabled Application</p>\n <ng-template #appsTitle><p>Enabled Applications</p></ng-template>\n </div>\n <ul cdkMenu class=\"list-group list-apps-group\">\n <li cdkMenuItem class=\"list-item list-app\" *ngFor=\"let app of appList;let i = index\" \n [ngClass]=\"(app?.active) ? 'app-active' : ''\">\n <button mat-menu-item class=\"pmx-button list-button\" (click)=\"appRedirect(app)\">\n <div class=\"app-icon-wrapper\"><img [src]=\"sanitizeUrl(imageDataUrls.profetThumbnail )\" class=\"app-icon\"></div>\n <span class=\"list-text me-auto\">{{ app?.name }}</span>\n <small class=\"active-label\" *ngIf=\"(app?.active)\">Active</small>\n <small class=\"hover-label tooltip-label\" *ngIf=\"!(app?.active)\">Click to switch app</small>\n </button>\n </li>\n </ul>\n </div>\n </div>\n </mat-menu>\n \n <span class=\"vr vr-blury\"></span>\n <!-- Profile button and profile dropdown links -->\n <div class=\"btn-group\" role=\"group\" aria-label=\"Button group with profile info\" [ngClass]=\"(((currentCompany?.subDomain) && userCompanyLogo) ? 'branded-group-true' : 'branded-group-false') + ' ' + (isProfileMenuOpen ? 'btn-group-clicked' : '')\">\n <button class=\"pmx-button pmx-menu-button profile-button\" mat-button mat-stroked-button [matMenuTriggerFor]=\"menu\"\n color=\"primary\" (menuOpened)=\"toggleMenu('profile')\" (menuClosed)=\"toggleMenu('profile')\" [ngClass]=\"currentCompany?.subDomain ? 'branded-button-true' : 'branded-button-false'\" matTooltip=\"Profile Info\" matTooltipPosition=\"below\">\n <div class=\"profile-inner\">\n <div class=\"brand-logo align-self-center\" *ngIf=\"((currentCompany?.subDomain) && userCompanyLogo)\" [ngClass]=\"userCompanyLogo ? 'branded-logo-true' : 'branded-logo-false'\" [ngStyle]=\"{'background-image': 'url(' + userCompanyLogo + ')'}\"></div>\n <div class=\"avatar\">\n <img *ngIf=\"userImageLink;else defaultAvatar\" [src]=\"sanitizeUrl(userImageLink)\" class=\"avatar-image\" alt=\"Avatar\">\n <ng-template #defaultAvatar><img [src]=\"sanitizeUrl(imageDataUrls.defaultUserImage)\" class=\"avatar-default\" alt=\"profile pic\"></ng-template>\n </div>\n </div>\n </button>\n </div>\n <mat-menu #menu=\"matMenu\" class=\"accounts_drpmenu pmx-menu-group header-dropdown-profile\" xPosition=\"before\">\n <div class=\"popover-content show-menu\">\n <div class=\"popover-header\">\n <div class=\"popover-user-top\">\n <div class=\"avatar-wrapper\">\n <div *ngIf=\"userImageLink;else defaultLargeAvatar\" [ngStyle]=\"{'background-image': 'url(' + userImageLink + ')'}\"\n class=\"avatar-icon\" alt=\"Avatar icon\">&nbsp;</div>\n <ng-template #defaultLargeAvatar>\n <div [ngStyle]=\"{'background-image': 'url(' + imageDataUrls.defaultUserImage + ')'}\" class=\"avatar-icon default-avatar\" alt=\"Avatar icon\">&nbsp;</div>\n </ng-template>\n </div>\n <div class=\"user-data\">\n <h3 class=\"profile-name\"><span *ngIf=\"userAuthData\">{{ userAuthData?.firstName }} {{ userAuthData?.lastName }}</span></h3>\n <button mat-button color=\"accent\" class=\"pmx-button btn btn-small view-profile ms-0\" (click)=\"profile()\">View Profile</button>\n </div>\n </div>\n </div>\n <div class=\"popover-body\">\n <div class=\"popover-content-title\"><p>Overview</p></div>\n <ul cdkMenu class=\"list-group list-overview\" *ngIf=\"currentCompany\">\n <li cdkMenuItem class=\"list-item\" *ngIf=\"userAuthData?.email\">\n <p mat-menu-item class=\"list-text list-text-email\">\n <mat-icon class=\"list-icon\">mail</mat-icon><span class=\"pmx-lower-case pmx-text-wrap me-auto\">{{ userAuthData?.email }}</span>\n </p>\n </li>\n <li cdkMenuItem class=\"list-item d-none\" *ngIf=\"userAuthData?.contactPhone\">\n <p mat-menu-item class=\"list-text\">\n <mat-icon class=\"list-icon\">call</mat-icon><span class=\"title-case me-auto\">{{ userAuthData?.contactPhone }}</span>\n </p>\n </li>\n <li cdkMenuItem class=\"list-item\" *ngIf=\"userAuthData?.address !== null\">\n <p mat-menu-item class=\"list-text\">\n <mat-icon class=\"list-icon\">location_on</mat-icon>\n <span class=\"title-case me-auto\">\n <small>{{ userAuthData?.address?.streetAddress }} {{(userAuthData?.address?.streetAddress2 !== null) ? userAuthData?.address?.streetAddress2 : '' }}</small><br />\n {{ userAuthData?.address?.city }} {{userAuthData?.address?.stateOrProvince }} {{userAuthData?.address?.postalCode }}\n </span>\n </p>\n </li>\n </ul>\n <hr />\n <div class=\"popover-content-title\">\n <p *ngIf=\"userCompanies?.length == 1;else companiesTitle\">Company</p>\n <ng-template #companiesTitle><p>Companies</p></ng-template>\n </div>\n <ul cdkMenu class=\"list-group list-group-companies\">\n <li cdkMenuItem class=\"list-item list-company\" *ngFor=\"let company of userCompanies\" [ngClass]=\"(company?.activeNow) ? 'list-active company-active' : ''\">\n <button mat-menu-item class=\"pmx-button list-button\" (click)=\"switchCompany(company)\" [matTooltip]=\"company?.name\"\n matTooltipPosition=\"below\">\n <mat-icon class=\"icon-check\">{{ (company?.activeNow) ? 'check_circle' : 'swap_vert' }}</mat-icon>\n <span class=\"list-text pmx-text-wrap me-auto\">{{ company?.name | titlecase }}</span>\n <small class=\"active-label\" *ngIf=\"(company?.activeNow)\">Active</small>\n </button>\n </li>\n </ul>\n <hr />\n <ul cdkMenu class=\"list-group last-group my-1\">\n <li cdkMenuItem class=\"list-item py-2\">\n <button mat-menu-item class=\"pmx-button list-button btn-logout\" (click)=\"onLogoutClick()\">\n <mat-icon>power_settings_new</mat-icon>\n <span class=\"list-text\">Logout</span>\n </button>\n </li>\n </ul>\n </div>\n </div>\n </mat-menu>\n</mat-toolbar>", styles: [":root{--clr-primary-50: #e5f3fb;--clr-primary-100: #bfdff7;--clr-primary-200: #99ccf2;--clr-primary-300: #74b8ec;--clr-primary-400: #5ba9e8;--clr-primary-500: #479be5;--clr-primary-600: #408dd7;--clr-primary-700: #377bc5;--clr-primary-800: #316bb3;--clr-primary-900: #254d93;--clr-primary: var(--clr-primary-900);--clr-secondary-50: #e6f5e9;--clr-secondary-100: #c3e7c9;--clr-secondary-200: #9cd7a8;--clr-secondary-300: #72c885;--clr-secondary: var(--clr-secondary-300);--clr-secondary-400: #51bc6b;--clr-secondary-500: #2db051;--clr-secondary-600: #24a148;--clr-secondary-700: #178f3c;--clr-secondary-800: #0a7e32;--clr-secondary-900: #005e1f;--clr-black-50: #fafafa;--clr-black-100: #f5f5f5;--clr-black-200: #eeeeee;--clr-black-300: #e0e0e0;--clr-black-400: #bdbdbd;--clr-black-500: #9e9e9e;--clr-black-600: #757575;--clr-black-700: #616161;--clr-black-800: #424242;--clr-black-900: #212121;--clr-black: var(--clr-black-900)}.pmx-text-truncate{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pmx-text-wrap{overflow-wrap:break-word}.pmx-lower-case{text-transform:lowercase}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color)}.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color: #24a148;--mat-text-button-state-layer-color: #24a148;--mat-text-button-ripple-color: rgba(255, 64, 129, .1)}html .mat-accent{--mat-slider-ripple-color: #24a148;--mat-slider-hover-state-layer-color: rgba(255, 64, 129, .05);--mat-slider-focus-state-layer-color: rgba(255, 64, 129, .2);--mdc-slider-handle-color: #24a148;--mdc-slider-focus-handle-color: #24a148;--mdc-slider-hover-handle-color: #24a148;--mdc-slider-active-track-color: #24a148;--mdc-slider-inactive-track-color: #24a148;--mdc-slider-with-tick-marks-inactive-container-color: #24a148;--mdc-slider-with-tick-marks-active-container-color: #51bc6b}.header-user-name{text-align:end;color:#000}.header-user-name span{font-size:12px;color:#9e9e9ede}.avatarLogo{max-width:30px}mat-toolbar.mat-toolbar.common_header.mat-primary.mat-toolbar-single-row{position:absolute;left:0;top:0;background-color:#fff;height:56px}button.switchButton,button.menuHamberger{padding:8px!important}.sidenavPanel{padding:20px 25px;height:100vh;position:relative}ul.navbarList{padding-left:0;list-style:none;margin-top:40px}ul.navbarList li{color:#666;font-weight:400;margin-bottom:25px;width:170px;cursor:pointer}.active{color:#4177d6!important}ul.navbarList li img{width:23px;margin-right:15px}.accounts_drpmenu{margin-top:.7em}.xsShowUsername{display:none;padding:0 16px;height:48px;line-height:48px}.vr{width:2px;background-color:#f5f5f5;opacity:1;margin:0 .5rem 0 1rem}.vr-blury{background-image:linear-gradient(180deg,transparent,#666,transparent);width:1px;opacity:.25}.navbar-brand .app-logo{height:30px;width:auto}.pmx-button mat-icon.mat-icon,.pmx-button mat-icon.mat-primary,.pmx-button mat-icon.mat-accent,.pmx-button mat-icon.mat-warn{color:var(--mat-icon-color)}.pmx-button mat-icon.mat-icon{font-size:1.5rem!important;line-height:1.5;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:transform .3s ease}.pmx-button.mdc-button--raised mat-icon.mat-icon{width:24px;height:24px;display:contents}.pmx-button.mat-mdc-button-base mat-icon.mat-icon{z-index:1}.pmx-button mat-icon.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.pmx-button mat-icon.mdc-button span.button-text{display:inline-flex;padding:0 1rem;text-transform:uppercase;font-size:.875rem;line-height:1.5}.pmx-button mat-icon.mdc-button span.upper-case{text-transform:uppercase}.pmx-button.mdc-button,.pmx-button.mdc-icon-button,.pmx-button.mdc-button--outlined,.pmx-button.mdc-button .mat-mdc-button-touch-target,.pmx-button.mdc-icon-button .mat-mdc-button-touch-target{height:40px!important;font-size:.75rem!important;letter-spacing:.2px;padding:0 .5rem;line-height:normal}.pmx-button.mdc-icon-button,.pmx-button.icon-btn.mdc-button--outlined,.pmx-button.icon-btn.mdc-button--raised,.pmx-button.mdc-icon-button .mat-mdc-button-touch-target{width:40px;border-radius:5px}.pmx-button.btn-small.mdc-button,.pmx-button.btn-small.mdc-icon-button,.pmx-button.btn-small.mdc-button--outlined{height:28px!important;padding:0 1rem}.pmx-button.mdc-icon-button,.pmx-button.icon-btn.mdc-button--raised{color:var(--clr-primary-900);background-color:var(--clr-primary-50)}.pmx-header .icon-button-shadow{box-shadow:0 1px 3px #0003,0 0 #00000024,0 1px 3px #0000001f}.pmx-button.icon-btn.mdc-button--raised.btn-switch-apps.menu-opened,.pmx-button.icon-btn.mdc-button--outlined.btn-switch-apps.menu-opened{background-color:#254d93;color:#fff;font-variation-settings:\"FILL\" 0,\"wght\" 200,\"GRAD\" 0,\"opsz\" 24}.pmx-button.mdc-icon-button.pmx-menu-button:hover,.pmx-button.mat-mdc-outlined-button.btn-switch-apps:hover,.pmx-button.icon-btn.mdc-button--outlined.btn-switch-apps:hover{border:1px solid var(--clr-primary-300)!important}.pmx-button.icon-app{width:20px}.pmx-button.mat-mdc-outlined-button,.pmx-button.mat-mdc-outlined-button:not(:disabled){background-color:#fff;overflow:hidden}.pmx-button.pmx-menu-button.profile-button.mat-mdc-outlined-button{padding:0;border-color:var(--clr-primary-100)!important}.btn-group-clicked .pmx-button.pmx-menu-button.profile-button.mat-mdc-outlined-button{border-color:var(--clr-primary-300)!important}.pmx-button.profile-button .profile-inner{border:0 solid transparent!important;display:flex;align-items:center;overflow:clip}.pmx-button.profile-button .avatar{width:38px;height:38px;box-sizing:border-box;border:3px #ffffff solid!important;border-radius:50%;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-content:center;align-items:center;flex-wrap:wrap}.pmx-button.profile-button .avatar{background-color:var(--clr-secondary-200)}.pmx-button.profile-button .avatar img.avatar-image,.pmx-button.profile-button .avatar img.avatar-default{width:100%;height:auto}.branded-group-false{margin-left:.65rem}.branded-group-false .pmx-button.pmx-menu-button.profile-button.branded-button-false{width:40px;border-radius:20px}.branded-group-true{margin-left:.65rem;border-radius:20px;border:1px solid var(--clr-primary-100)}.btn-group-clicked.branded-group-true{background-color:var(--clr-primary-200)}.branded-group-true .pmx-button.profile-button .profile-inner{border:0 solid #c4c9d2!important}.branded-group-true .pmx-button.pmx-menu-button.profile-button.branded-button-true{border-radius:20px}.branded-group-true .pmx-button.profile-button.branded-button-true .profile-inner .branded-logo-true{border-radius:5px;display:block;position:relative;height:38px;background-size:100%;background-position:center;background-repeat:no-repeat;min-width:100px;margin-right:1rem}.pmx-menu-group.mat-mdc-menu-panel{margin-top:1rem}.header-dropdown-apps.mat-mdc-menu-panel .mat-mdc-menu-content,.header-dropdown-profile.mat-mdc-menu-panel .mat-mdc-menu-content{padding:0!important}.header-dropdown-apps{width:400px!important}.header-dropdown-apps.mat-mdc-menu-panel .list-button{padding:.5rem 2rem}.header-dropdown-apps.mdc-menu-surface--open,.header-dropdown-profile.mdc-menu-surface--open{position:absolute;z-index:1;top:0;right:0;margin:0;padding:0;border:1px solid #e5e5e5;border-radius:6px;background:#fff;animation:popover .2s ease-in-out}.header-dropdown-apps.mat-mdc-menu-panel.mat-mdc-menu-panel{max-width:400px!important;width:400px!important;overflow:visible}.header-dropdown-profile.mat-mdc-menu-panel.mat-mdc-menu-panel{max-width:408px!important;width:408px!important;overflow:visible}.popover-content:after,.popover-content:before{font-size:1.4em;display:block;width:0;height:0;content:\"\";pointer-events:none;position:absolute;top:-.45em}.popover-content:before{border-right:10px solid transparent;border-bottom:10px solid #999;border-left:10px solid transparent;right:.97em}.popover-content:after{border-right:12px solid transparent;border-bottom:12px solid #d5e3fa;border-left:12px solid transparent;right:.9em}.popover-content-title{display:flex;align-items:center;justify-content:flex-start;overflow:hidden;padding:0 1rem;min-height:40px}.popover-content-title p{margin:0;font-size:.75rem!important;color:#777}.popover-content .popover-user-top:after{clear:both;content:\"\";display:table}.popover-content .popover-user-top{display:flex;flex-flow:row;justify-content:flex-start;align-items:center}.popover-content .popover-user-top .avatar-wrapper{flex:0 4 auto;border-radius:100%;overflow-clip-margin:content-box;overflow:clip;background-color:#fff;padding:2px}.drop-shadow{filter:drop-shadow(0px 0px 3px rgba(0,0,0,.5))}.popover-content .popover-user-top .user-data{flex:1 0 auto;margin-left:1rem}.popover-content .popover-user-top .avatar-wrapper .avatar-icon{background-repeat:no-repeat;background-size:100%;background-position:center;width:64px;height:64px;background-color:#72c885}.avatar-icon.default-avatar{background-size:100%}.popover-content .popover-user-top .user-data h3.profile-name{font-size:1rem;text-overflow:ellipsis;margin-bottom:.5rem;line-height:normal;font-weight:600;color:var(--clr-primary)}.btn.view-profile{background:var(--clr-black-50);color:var(--clr-primary)}.popover-content ul.list-group{padding:0 0 8px;margin:0;display:flex;list-style:none}.popover-content ul.list-group.last-group,.popover-content ul.list-group.last-group .list-item{background-color:transparent}.popover-content ul.list-group li.list-item{align-items:center;border:none;padding:0;width:100%;display:flex;flex-direction:row;flex-wrap:wrap;order:1}.popover-content ul.list-group li.list-item .list-button{padding:.5rem 2rem;min-height:40px}.popover-content ul.list-group li.list-item span.mat-mdc-menu-item-text,.popover-content ul.list-group li.list-item span.mdc-list-item__primary-text,.popover-content ul.list-group li.list-item .list-button>span{display:flex;align-items:center}.popover-content ul.list-group li.list-item.list-company .list-button>span{width:100%;overflow:hidden}.popover-content ul.list-group li.list-item .list-button .hover-label.tooltip-label{opacity:0}.popover-content ul.list-group li.list-item.list-app .list-button:hover>span .hover-label.tooltip-label,.popover-content ul.list-group li.list-item.list-company .list-button:hover>span .hover-label.tooltip-label{opacity:0;display:inline-flex;color:#fff;background-color:#616161;font-size:11px;border-radius:4px;padding:0 .5rem;transition:opacity .3s ease-out}.popover-content ul.list-group li.list-item .list-button:hover{background:rgba(0,0,0,.04)}.popover-content ul.list-group li.list-item.company-active,.popover-content ul.list-group li.list-item.app-active{cursor:not-allowed;pointer-events:none;order:0}.popover-content ul.list-group li.list-item.company-active .active-label,.popover-content ul.list-group li.list-item.app-active .active-label{background-color:#93c47d;color:var(--clr-black-900);padding:0 .5rem;border-radius:50px;font-size:.75rem;margin-left:.5rem}.popover-content ul.list-group.list-apps-group{display:flex}.popover-content ul.list-group.list-overview li.list-item{cursor:not-allowed;pointer-events:none}.popover-content ul.list-group li.list-item p.list-text{padding:.5rem 2rem;margin:0;min-height:auto}.popover-content ul.list-group li.list-item .list-button .mat-icon,.popover-content ul.list-group li.list-item p.list-text mat-icon.list-icon,.popover-content ul.list-group li.list-item .list-button .list-icon,.popover-content ul.list-group li.list-item p.list-text .list-icon{color:var(--clr-secondary-500);font-variation-settings:\"FILL\" 0,\"wght\" 200,\"GRAD\" 0,\"opsz\" 24;font-size:24px!important}.popover-content ul.list-group li.list-item.list-active.company-active button.list-button .mat-icon{color:var(--clr-secondary-500);font-variation-settings:\"FILL\" 1,\"wght\" 300,\"GRAD\" 0,\"opsz\" 24}.popover-content ul.list-group li.list-item p.list-text span.mdc-list-item__primary-text{width:100%;display:flex}.popover-content ul.list-group li.list-item span.title-case{font-size:.8rem;color:var(--clr-black-900);font-weight:500;display:block;line-height:normal}small{color:var(--clr-black-500)}.popover-content ul.list-group li.list-item span.text-label{font-size:12px;color:#979797;font-weight:400;display:block;line-height:normal}.popover-content ul.list-group li.list-item .list-text,.popover-content ul.list-group li.list-item .list-text span.mat-mdc-menu-item-text{font-size:.875rem;color:#0a152f;font-weight:500;line-height:normal}.popover-content ul.list-group li.list-item .list-text.list-text-email span.mat-mdc-menu-item-text{width:calc(100% - 40px);display:inline-flex}.popover-content ul.list-group li.list-item .list-text.list-text-email span.pmx-text-wrap{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;hyphens:none;width:100%}.popover-content ul.list-group li.list-item span.upper-case{text-transform:uppercase}.popover-content ul.list-group li.list-item span.app-status,.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status{font-size:13px;color:#0a152f;font-weight:400;display:block;line-height:normal;margin:0}.popover-content ul.list-group li.list-item.app-active .list-text,.popover-content ul.list-group li.list-item.company-active .list-text{color:#4b85ea}.popover-content ul.list-group li.list-item.app-active span.app-status,.popover-content ul.list-group li.list-item.app-active .mat-mdc-chip-option.chip-status,.popover-content ul.list-group li.list-item.company-active span.app-status,.popover-content ul.list-group li.list-item.company-active .mat-mdc-chip-option.chip-status{color:#24a53f}.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status{display:flex;flex-direction:row;justify-content:flex-start}.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected{transition:all .3s ease-out;margin-left:auto;flex:1;justify-content:flex-end}.popover-content ul.list-group li.list-item.app-active .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected,.popover-content ul.list-group li.list-item.company-active .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected{background-color:var(--clr-primary-600);color:var(--clr-black-100)}.popover-content ul.list-group li.list-item .mat-mdc-standard-chip .mat-mdc-chip-action-label{font-size:.75rem}.popover-content ul.list-group li.list-item .mat-mdc-standard-chip{height:24px}.popover-content ul.list-group li.list-item img.logo-thumb{width:24px;height:auto;margin-right:1rem}.popover-content ul.list-group li.list-item .list-button.btn-logout{display:flex;align-items:center;color:var(--clr-black-700)}.popover-content ul.list-group li.list-item.app-active .list-button .app-icon-wrapper{background-color:#fff;border-color:#4b85ea;border-width:3px}.popover-content ul.list-group li.list-item.company-active .list-text .mat-icon{font-variation-settings:\"FILL\" 1,\"wght\" 200,\"GRAD\" 0,\"opsz\" 24;color:var(--themelightblue)}.popover-content ul.list-group li.list-item .list-button.btn-logout .list-text{color:var(--clr-black-700)}.popover-content ul.list-group li.list-item.app-active button,.popover-content ul.list-group li.list-item.company-active button{cursor:not-allowed;pointer-events:none}.popover-content hr{background-color:#c4c9d2;margin:0;width:100%;border:0;border-top:1px solid #c4c9d2;opacity:1}.popover-content ul.apps-grid{width:100%;white-space:nowrap;overflow:auto}.popover-content ul.apps-grid li.list-item,.popover-content ul.apps-grid li.list-item img.logo-thumb{display:flex;justify-content:flex-start;flex-wrap:nowrap;align-content:center;align-items:center;flex-direction:row}.popover-header{background-color:#d5e3fa;border-bottom:1px solid #d8d8d8;padding:.975rem 1rem;margin-bottom:0;display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;flex-wrap:wrap}.popover-header .mat-icon{font-size:1.5rem!important;font-variation-settings:\"FILL\" 1,\"wght\" 500,\"GRAD\" 0,\"opsz\" 24;color:var(--clr-primary-900)}.header-dropdown-profile .popover-header{padding:1.125rem 1rem}.popover-header h3.popover-title{font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;margin-bottom:0;line-height:normal;font-weight:500;color:#254d93}.popover-body{max-height:420px;overflow:auto;padding:0}.app-icon-wrapper{margin:0 1rem 0 0;max-width:48px;max-height:48px;width:48px;height:48px;overflow:hidden;background-size:70%;background-repeat:no-repeat;background-position:center;border:1px solid #c4c9d2;border-radius:8px;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;flex-wrap:wrap}.app-icon-wrapper img.app-icon{width:100%;height:auto;overflow:hidden;padding:.5rem}h4.app-name{font-size:.65rem;margin:.5rem 0 0;line-height:normal;color:#254d93;font-weight:400;text-transform:uppercase}.popover-body ul.enabled-apps{display:flex;flex-flow:column wrap;justify-content:space-evenly;align-items:center;align-content:flex-start;border-bottom:1px solid #E9E9E9;margin:0;padding:0 1rem;list-style:none}.popover-body ul.enabled-apps li.enabled-app{flex-grow:1;flex:0 1 auto;text-align:center;font-size:.8125rem;padding:10px;list-style:none}.mat-tooltip{overflow:visible}.cdk-overlay-container .mdc-tooltip:before{width:0!important;height:0!important;content:\"\"!important;position:absolute!important;border-left:.5rem solid transparent!important;border-right:.5rem solid transparent!important;border-bottom:.5rem solid #0000008c!important}.cdk-overlay-container .mdc-tooltip:before{left:50%!important;top:-8px!important;transform:rotate(0)!important;right:50%!important}.cdk-overlay-container .mdc-tooltip__surface:before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\"\";pointer-events:none}.pmx-button.mdc-icon-button[color=theme-white],.pmx-button.icon-btn.mdc-button--raised[color=theme-white]{color:var(--clr-primary-900)}.pmx-button.icon-btn.orders-menu[color=theme-white]{border:1px solid var(--clr-black-50)!important}\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: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i5.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i5.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }], encapsulation: i0.ViewEncapsulation.None });
266
266
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: HeaderComponent, decorators: [{
267
267
  type: Component,
268
- args: [{ selector: 'lib-header', encapsulation: ViewEncapsulation.None, template: "<mat-toolbar cdkMenuBar color=\"primary\" [ngClass]=\"headerClass\" class=\"header-wrapper common_header shadow-sm\">\n <!-- Main nav button and navigation links -->\n <button mat-icon-button color=\"theme-white\" (click)=\"menuAction()\" class=\"pmx-button pmx-menu-button orders-menu icon-btn ms-0 me-3\"\n aria-label=\"main menu\" tabindex=\"0\" matTooltip=\"Main menu\" matTooltipPosition=\"below\"\n matTooltipClass=\"poc-header-tooltip\"><mat-icon>menu</mat-icon></button>\n <a class=\"navbar-brand me-auto\" href=\"#\">\n <img *ngIf=\"currentAppLogo\" [src]=\"sanitizeUrl(currentAppLogo)\" alt=\"App Logo\" class=\"app-logo\">\n </a>\n \n <!-- Apps button and menu items -->\n <ng-container *ngIf=\"template\" [ngTemplateOutlet]=\"template\"></ng-container>\n <button mat-icon-button *ngIf=\"(appList.length > 0)\" color=\"theme-white\"\n class=\"pmx-button pmx-menu-button icon-btn btn-switch-apps ms-1 me-1\" [class.menu-opened]=\"isAppsMenuOpen == true\"\n (menuOpened)=\"toggleMenu('apps')\" (menuClosed)=\"toggleMenu('apps')\" [matMenuTriggerFor]=\"apps\"\n matTooltip=\"Switch application\" matTooltipPosition=\"below\" aria-label=\"apps menu\"\n tabindex=\"0\">\n <mat-icon class=\"icon-arrow-down\">apps</mat-icon>\n </button>\n <mat-menu #apps=\"matMenu\" class=\"accounts_drpmenu pmx-menu-group header-dropdown-apps\" hasBackdrop=\"true\" xPosition=\"before\">\n <div class=\"popover-content show-menu\">\n <div class=\"popover-header\"><mat-icon class=\"me-2\">Apps</mat-icon><h3 class=\"popover-title\">Switch Application</h3></div>\n <div class=\"popover-body\">\n <div class=\"popover-content-title\">\n <p *ngIf=\"appList?.length == 1;else appsTitle\">Enabled Application</p>\n <ng-template #appsTitle><p>Enabled Applications</p></ng-template>\n </div>\n <ul cdkMenu class=\"list-group list-apps-group\">\n <li cdkMenuItem class=\"list-item list-app\" *ngFor=\"let app of appList;let i = index\" \n [ngClass]=\"(app?.active) ? 'app-active' : ''\">\n <button mat-menu-item class=\"pmx-button list-button\" (click)=\"appRedirect(app)\">\n <div class=\"app-icon-wrapper\"><img [src]=\"sanitizeUrl(imageDataUrls.profetThumbnail )\" class=\"app-icon\"></div>\n <span class=\"list-text me-auto\">{{ app?.name }}</span>\n <small class=\"active-label\" *ngIf=\"(app?.active)\">Active</small>\n <small class=\"hover-label tooltip-label\" *ngIf=\"!(app?.active)\">Click to switch app</small>\n </button>\n </li>\n </ul>\n </div>\n </div>\n </mat-menu>\n \n <span class=\"vr vr-blury\"></span>\n <!-- Profile button and profile dropdown links -->\n <div class=\"btn-group\" role=\"group\" aria-label=\"Button group with profile info\" [ngClass]=\"(((currentCompany?.subDomain) && userCompanyLogo) ? 'branded-group-true' : 'branded-group-false') + ' ' + (isProfileMenuOpen ? 'btn-group-clicked' : '')\">\n <button class=\"pmx-button pmx-menu-button profile-button\" mat-button mat-stroked-button [matMenuTriggerFor]=\"menu\"\n color=\"primary\" (menuOpened)=\"toggleMenu('profile')\" (menuClosed)=\"toggleMenu('profile')\" [ngClass]=\"currentCompany?.subDomain ? 'branded-button-true' : 'branded-button-false'\" matTooltip=\"Profile Info\" matTooltipPosition=\"below\">\n <div class=\"profile-inner\">\n <div class=\"brand-logo align-self-center\" *ngIf=\"((currentCompany?.subDomain) && userCompanyLogo)\" [ngClass]=\"userCompanyLogo ? 'branded-logo-true' : 'branded-logo-false'\" [ngStyle]=\"{'background-image': 'url(' + userCompanyLogo + ')'}\"></div>\n <div class=\"avatar\">\n <img *ngIf=\"userImageLink;else defaultAvatar\" [src]=\"sanitizeUrl(userImageLink)\" class=\"avatar-image\" alt=\"Avatar\">\n <ng-template #defaultAvatar><img [src]=\"sanitizeUrl(imageDataUrls.defaultUserImage)\" class=\"avatar-default\" alt=\"profile pic\"></ng-template>\n </div>\n </div>\n </button>\n </div>\n <mat-menu #menu=\"matMenu\" class=\"accounts_drpmenu pmx-menu-group header-dropdown-profile\" xPosition=\"before\">\n <div class=\"popover-content show-menu\">\n <div class=\"popover-header\">\n <div class=\"popover-user-top\">\n <div class=\"avatar-wrapper\">\n <div *ngIf=\"userImageLink;else defaultLargeAvatar\" [ngStyle]=\"{'background-image': 'url(' + userImageLink + ')'}\"\n class=\"avatar-icon\" alt=\"Avatar icon\">&nbsp;</div>\n <ng-template #defaultLargeAvatar>\n <div [ngStyle]=\"{'background-image': 'url(' + imageDataUrls.defaultUserImage + ')'}\" class=\"avatar-icon default-avatar\" alt=\"Avatar icon\">&nbsp;</div>\n </ng-template>\n </div>\n <div class=\"user-data\">\n <h3 class=\"profile-name\"><span *ngIf=\"userAuthData\">{{ userAuthData?.firstName }} {{ userAuthData?.lastName }}</span></h3>\n <button mat-button color=\"accent\" class=\"pmx-button btn btn-small view-profile ms-0\" (click)=\"profile()\">View Profile</button>\n </div>\n </div>\n </div>\n <div class=\"popover-body\">\n <div class=\"popover-content-title\"><p>Overview</p></div>\n <ul cdkMenu class=\"list-group list-overview\" *ngIf=\"currentCompany\">\n <li cdkMenuItem class=\"list-item\" *ngIf=\"userAuthData?.email\">\n <p mat-menu-item class=\"list-text\">\n <mat-icon class=\"list-icon\">mail</mat-icon><span class=\"title-case me-auto\">{{ userAuthData?.email }}</span>\n </p>\n </li>\n <li cdkMenuItem class=\"list-item d-none\" *ngIf=\"userAuthData?.contactPhone\">\n <p mat-menu-item class=\"list-text\">\n <mat-icon class=\"list-icon\">call</mat-icon><span class=\"title-case me-auto\">{{ userAuthData?.contactPhone }}</span>\n </p>\n </li>\n <li cdkMenuItem class=\"list-item\" *ngIf=\"userAuthData?.address !== null\">\n <p mat-menu-item class=\"list-text\">\n <mat-icon class=\"list-icon\">location_on</mat-icon>\n <span class=\"title-case me-auto\">\n <small>{{ userAuthData?.address?.streetAddress }} {{(userAuthData?.address?.streetAddress2 !== null) ? userAuthData?.address?.streetAddress2 : '' }}</small><br />\n {{ userAuthData?.address?.city }} {{userAuthData?.address?.stateOrProvince }} {{userAuthData?.address?.postalCode }}\n </span>\n </p>\n </li>\n </ul>\n <hr />\n <div class=\"popover-content-title\">\n <p *ngIf=\"userCompanies?.length == 1;else companiesTitle\">Company</p>\n <ng-template #companiesTitle><p>Companies</p></ng-template>\n </div>\n <ul cdkMenu class=\"list-group list-group-companies\">\n <li cdkMenuItem class=\"list-item list-company\" *ngFor=\"let company of userCompanies\" [ngClass]=\"(company?.activeNow) ? 'list-active company-active' : ''\">\n <button mat-menu-item class=\"pmx-button list-button\" (click)=\"switchCompany(company)\" [matTooltip]=\"company?.name\"\n matTooltipPosition=\"below\">\n <mat-icon class=\"icon-check\">{{ (company?.activeNow) ? 'check_circle' : 'swap_vert' }}</mat-icon>\n <span class=\"list-text pmx-text-truncate me-auto\">{{ company?.name | titlecase }}</span>\n <small class=\"active-label\" *ngIf=\"(company?.activeNow)\">Active</small>\n </button>\n </li>\n </ul>\n <hr />\n <ul cdkMenu class=\"list-group last-group my-1\">\n <li cdkMenuItem class=\"list-item py-2\">\n <button mat-menu-item class=\"pmx-button list-button btn-logout\" (click)=\"onLogoutClick()\">\n <mat-icon>power_settings_new</mat-icon>\n <span class=\"list-text\">Logout</span>\n </button>\n </li>\n </ul>\n </div>\n </div>\n </mat-menu>\n</mat-toolbar>", styles: [":root{--clr-primary-50: #e5f3fb;--clr-primary-100: #bfdff7;--clr-primary-200: #99ccf2;--clr-primary-300: #74b8ec;--clr-primary-400: #5ba9e8;--clr-primary-500: #479be5;--clr-primary-600: #408dd7;--clr-primary-700: #377bc5;--clr-primary-800: #316bb3;--clr-primary-900: #254d93;--clr-primary: var(--clr-primary-900);--clr-secondary-50: #e6f5e9;--clr-secondary-100: #c3e7c9;--clr-secondary-200: #9cd7a8;--clr-secondary-300: #72c885;--clr-secondary: var(--clr-secondary-300);--clr-secondary-400: #51bc6b;--clr-secondary-500: #2db051;--clr-secondary-600: #24a148;--clr-secondary-700: #178f3c;--clr-secondary-800: #0a7e32;--clr-secondary-900: #005e1f;--clr-black-50: #fafafa;--clr-black-100: #f5f5f5;--clr-black-200: #eeeeee;--clr-black-300: #e0e0e0;--clr-black-400: #bdbdbd;--clr-black-500: #9e9e9e;--clr-black-600: #757575;--clr-black-700: #616161;--clr-black-800: #424242;--clr-black-900: #212121;--clr-black: var(--clr-black-900)}.pmx-text-truncate{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color)}.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color: #24a148;--mat-text-button-state-layer-color: #24a148;--mat-text-button-ripple-color: rgba(255, 64, 129, .1)}html .mat-accent{--mat-slider-ripple-color: #24a148;--mat-slider-hover-state-layer-color: rgba(255, 64, 129, .05);--mat-slider-focus-state-layer-color: rgba(255, 64, 129, .2);--mdc-slider-handle-color: #24a148;--mdc-slider-focus-handle-color: #24a148;--mdc-slider-hover-handle-color: #24a148;--mdc-slider-active-track-color: #24a148;--mdc-slider-inactive-track-color: #24a148;--mdc-slider-with-tick-marks-inactive-container-color: #24a148;--mdc-slider-with-tick-marks-active-container-color: #51bc6b}.header-user-name{text-align:end;color:#000}.header-user-name span{font-size:12px;color:#9e9e9ede}.avatarLogo{max-width:30px}mat-toolbar.mat-toolbar.common_header.mat-primary.mat-toolbar-single-row{position:absolute;left:0;top:0;background-color:#fff;height:56px}button.switchButton,button.menuHamberger{padding:8px!important}.sidenavPanel{padding:20px 25px;height:100vh;position:relative}ul.navbarList{padding-left:0;list-style:none;margin-top:40px}ul.navbarList li{color:#666;font-weight:400;margin-bottom:25px;width:170px;cursor:pointer}.active{color:#4177d6!important}ul.navbarList li img{width:23px;margin-right:15px}.accounts_drpmenu{margin-top:.7em}.xsShowUsername{display:none;padding:0 16px;height:48px;line-height:48px}.vr{width:2px;background-color:#f5f5f5;opacity:1;margin:0 .5rem 0 1rem}.vr-blury{background-image:linear-gradient(180deg,transparent,#666,transparent);width:1px;opacity:.25}.navbar-brand .app-logo{height:30px;width:auto}.pmx-button mat-icon.mat-icon,.pmx-button mat-icon.mat-primary,.pmx-button mat-icon.mat-accent,.pmx-button mat-icon.mat-warn{color:var(--mat-icon-color)}.pmx-button mat-icon.mat-icon{font-size:1.5rem!important;line-height:1.5;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:transform .3s ease}.pmx-button.mdc-button--raised mat-icon.mat-icon{width:24px;height:24px;display:contents}.pmx-button.mat-mdc-button-base mat-icon.mat-icon{z-index:1}.pmx-button mat-icon.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.pmx-button mat-icon.mdc-button span.button-text{display:inline-flex;padding:0 1rem;text-transform:uppercase;font-size:.875rem;line-height:1.5}.pmx-button mat-icon.mdc-button span.upper-case{text-transform:uppercase}.pmx-button.mdc-button,.pmx-button.mdc-icon-button,.pmx-button.mdc-button--outlined,.pmx-button.mdc-button .mat-mdc-button-touch-target,.pmx-button.mdc-icon-button .mat-mdc-button-touch-target{height:40px!important;font-size:.75rem!important;letter-spacing:.2px;padding:0 .5rem;line-height:normal}.pmx-button.mdc-icon-button,.pmx-button.icon-btn.mdc-button--outlined,.pmx-button.icon-btn.mdc-button--raised,.pmx-button.mdc-icon-button .mat-mdc-button-touch-target{width:40px;border-radius:5px}.pmx-button.btn-small.mdc-button,.pmx-button.btn-small.mdc-icon-button,.pmx-button.btn-small.mdc-button--outlined{height:28px!important;padding:0 1rem}.pmx-button.mdc-icon-button,.pmx-button.icon-btn.mdc-button--raised{color:var(--clr-primary-900);background-color:var(--clr-primary-50)}.pmx-header .icon-button-shadow{box-shadow:0 1px 3px #0003,0 0 #00000024,0 1px 3px #0000001f}.pmx-button.icon-btn.mdc-button--raised.btn-switch-apps.menu-opened,.pmx-button.icon-btn.mdc-button--outlined.btn-switch-apps.menu-opened{background-color:#254d93;color:#fff;font-variation-settings:\"FILL\" 0,\"wght\" 200,\"GRAD\" 0,\"opsz\" 24}.pmx-button.mdc-icon-button.pmx-menu-button:hover,.pmx-button.mat-mdc-outlined-button.btn-switch-apps:hover,.pmx-button.icon-btn.mdc-button--outlined.btn-switch-apps:hover{border:1px solid var(--clr-primary-300)!important}.pmx-button.icon-app{width:20px}.pmx-button.mat-mdc-outlined-button,.pmx-button.mat-mdc-outlined-button:not(:disabled){background-color:#fff;overflow:hidden}.pmx-button.pmx-menu-button.profile-button.mat-mdc-outlined-button{padding:0;border-color:var(--clr-primary-100)!important}.btn-group-clicked .pmx-button.pmx-menu-button.profile-button.mat-mdc-outlined-button{border-color:var(--clr-primary-300)!important}.pmx-button.profile-button .profile-inner{border:0 solid transparent!important;display:flex;align-items:center;overflow:clip}.pmx-button.profile-button .avatar{width:38px;height:38px;box-sizing:border-box;border:3px #ffffff solid!important;border-radius:50%;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-content:center;align-items:center;flex-wrap:wrap}.pmx-button.profile-button .avatar{background-color:var(--clr-secondary-200)}.pmx-button.profile-button .avatar img.avatar-image,.pmx-button.profile-button .avatar img.avatar-default{width:100%;height:auto}.branded-group-false{margin-left:.65rem}.branded-group-false .pmx-button.pmx-menu-button.profile-button.branded-button-false{width:40px;border-radius:20px}.branded-group-true{margin-left:.65rem;border-radius:20px;border:1px solid var(--clr-primary-100)}.btn-group-clicked.branded-group-true{background-color:var(--clr-primary-200)}.branded-group-true .pmx-button.profile-button .profile-inner{border:0 solid #c4c9d2!important}.branded-group-true .pmx-button.pmx-menu-button.profile-button.branded-button-true{border-radius:20px}.branded-group-true .pmx-button.profile-button.branded-button-true .profile-inner .branded-logo-true{border-radius:5px;display:block;position:relative;height:38px;background-size:100%;background-position:center;background-repeat:no-repeat;min-width:100px;margin-right:1rem}.pmx-menu-group.mat-mdc-menu-panel{margin-top:1rem}.header-dropdown-apps.mat-mdc-menu-panel .mat-mdc-menu-content,.header-dropdown-profile.mat-mdc-menu-panel .mat-mdc-menu-content{padding:0!important}.header-dropdown-apps{width:400px!important}.header-dropdown-apps.mat-mdc-menu-panel .list-button{padding:.5rem 2rem}.header-dropdown-apps.mdc-menu-surface--open,.header-dropdown-profile.mdc-menu-surface--open{position:absolute;z-index:1;top:0;right:0;margin:0;padding:0;border:1px solid #e5e5e5;border-radius:6px;background:#fff;animation:popover .2s ease-in-out}.header-dropdown-apps.mat-mdc-menu-panel.mat-mdc-menu-panel{max-width:400px!important;width:400px!important;overflow:visible}.header-dropdown-profile.mat-mdc-menu-panel.mat-mdc-menu-panel{max-width:360px!important;width:360px!important;overflow:visible}.popover-content:after,.popover-content:before{font-size:1.4em;display:block;width:0;height:0;content:\"\";pointer-events:none;position:absolute;top:-.45em}.popover-content:before{border-right:10px solid transparent;border-bottom:10px solid #999;border-left:10px solid transparent;right:.97em}.popover-content:after{border-right:12px solid transparent;border-bottom:12px solid #d5e3fa;border-left:12px solid transparent;right:.9em}.popover-content-title{display:flex;align-items:center;justify-content:flex-start;overflow:hidden;padding:0 1rem;min-height:40px}.popover-content-title p{margin:0;font-size:.75rem!important;color:#777}.popover-content .popover-user-top:after{clear:both;content:\"\";display:table}.popover-content .popover-user-top{display:flex;flex-flow:row;justify-content:flex-start;align-items:center}.popover-content .popover-user-top .avatar-wrapper{flex:0 4 auto;border-radius:100%;overflow-clip-margin:content-box;overflow:clip;background-color:#fff;padding:2px}.drop-shadow{filter:drop-shadow(0px 0px 3px rgba(0,0,0,.5))}.popover-content .popover-user-top .user-data{flex:1 0 auto;margin-left:1rem}.popover-content .popover-user-top .avatar-wrapper .avatar-icon{background-repeat:no-repeat;background-size:100%;background-position:center;width:64px;height:64px;background-color:#72c885}.avatar-icon.default-avatar{background-size:100%}.popover-content .popover-user-top .user-data h3.profile-name{font-size:1rem;text-overflow:ellipsis;margin-bottom:.5rem;line-height:normal;font-weight:600;color:var(--clr-primary)}.btn.view-profile{background:var(--clr-black-50);color:var(--clr-primary)}.popover-content ul.list-group{padding:0 0 8px;margin:0;display:flex;list-style:none}.popover-content ul.list-group.last-group,.popover-content ul.list-group.last-group .list-item{background-color:transparent}.popover-content ul.list-group li.list-item{align-items:center;border:none;padding:0;width:100%;display:flex;flex-direction:row;flex-wrap:wrap;order:1}.popover-content ul.list-group li.list-item .list-button{padding:.5rem 2rem;min-height:40px}.popover-content ul.list-group li.list-item span.mat-mdc-menu-item-text,.popover-content ul.list-group li.list-item span.mdc-list-item__primary-text,.popover-content ul.list-group li.list-item .list-button>span{display:flex;align-items:center}.popover-content ul.list-group li.list-item.list-company .list-button>span{width:100%;overflow:hidden}.popover-content ul.list-group li.list-item .list-button .hover-label.tooltip-label{opacity:0}.popover-content ul.list-group li.list-item.list-app .list-button:hover>span .hover-label.tooltip-label,.popover-content ul.list-group li.list-item.list-company .list-button:hover>span .hover-label.tooltip-label{opacity:0;display:inline-flex;color:#fff;background-color:#616161;font-size:11px;border-radius:4px;padding:0 .5rem;transition:opacity .3s ease-out}.popover-content ul.list-group li.list-item .list-button:hover{background:rgba(0,0,0,.04)}.popover-content ul.list-group li.list-item.company-active,.popover-content ul.list-group li.list-item.app-active{cursor:not-allowed;pointer-events:none;order:0}.popover-content ul.list-group li.list-item.company-active .active-label,.popover-content ul.list-group li.list-item.app-active .active-label{background-color:#93c47d;color:var(--clr-black-900);padding:0 .5rem;border-radius:50px;font-size:.75rem;margin-left:.5rem}.popover-content ul.list-group.list-apps-group{display:flex}.popover-content ul.list-group.list-overview li.list-item{cursor:not-allowed;pointer-events:none}.popover-content ul.list-group li.list-item p.list-text{padding:.5rem 2rem;margin:0;min-height:auto}.popover-content ul.list-group li.list-item .list-button .mat-icon,.popover-content ul.list-group li.list-item p.list-text mat-icon.list-icon,.popover-content ul.list-group li.list-item .list-button .list-icon,.popover-content ul.list-group li.list-item p.list-text .list-icon{color:var(--clr-secondary-500);font-variation-settings:\"FILL\" 0,\"wght\" 200,\"GRAD\" 0,\"opsz\" 24;font-size:24px!important}.popover-content ul.list-group li.list-item.list-active.company-active button.list-button .mat-icon{color:var(--clr-secondary-500);font-variation-settings:\"FILL\" 1,\"wght\" 300,\"GRAD\" 0,\"opsz\" 24}.popover-content ul.list-group li.list-item p.list-text span.mdc-list-item__primary-text{width:100%;display:flex}.popover-content ul.list-group li.list-item span.title-case{font-size:.8rem;color:var(--clr-black-900);font-weight:500;display:block;line-height:normal}small{color:var(--clr-black-500)}.popover-content ul.list-group li.list-item span.text-label{font-size:12px;color:#979797;font-weight:400;display:block;line-height:normal}.popover-content ul.list-group li.list-item span.list-text{font-size:.875rem;color:#0a152f;font-weight:500;display:block;line-height:normal}.popover-content ul.list-group li.list-item span.upper-case{text-transform:uppercase}.popover-content ul.list-group li.list-item span.app-status,.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status{font-size:13px;color:#0a152f;font-weight:400;display:block;line-height:normal;margin:0}.popover-content ul.list-group li.list-item.app-active span.list-text,.popover-content ul.list-group li.list-item.company-active span.list-text{color:#4b85ea}.popover-content ul.list-group li.list-item.app-active span.app-status,.popover-content ul.list-group li.list-item.app-active .mat-mdc-chip-option.chip-status,.popover-content ul.list-group li.list-item.company-active span.app-status,.popover-content ul.list-group li.list-item.company-active .mat-mdc-chip-option.chip-status{color:#24a53f}.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status{display:flex;flex-direction:row;justify-content:flex-start}.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected{transition:all .3s ease-out;margin-left:auto;flex:1;justify-content:flex-end}.popover-content ul.list-group li.list-item.app-active .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected,.popover-content ul.list-group li.list-item.company-active .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected{background-color:var(--clr-primary-600);color:var(--clr-black-100)}.popover-content ul.list-group li.list-item .mat-mdc-standard-chip .mat-mdc-chip-action-label{font-size:.75rem}.popover-content ul.list-group li.list-item .mat-mdc-standard-chip{height:24px}.popover-content ul.list-group li.list-item img.logo-thumb{width:24px;height:auto;margin-right:1rem}.popover-content ul.list-group li.list-item .list-button.btn-logout{display:flex;align-items:center;color:var(--clr-black-700)}.popover-content ul.list-group li.list-item.app-active .list-button .app-icon-wrapper{background-color:#fff;border-color:#4b85ea;border-width:3px}.popover-content ul.list-group li.list-item.company-active p.list-text .mat-icon{font-variation-settings:\"FILL\" 1,\"wght\" 200,\"GRAD\" 0,\"opsz\" 24;color:var(--themelightblue)}.popover-content ul.list-group li.list-item .list-button.btn-logout .list-text{color:var(--clr-black-700)}.popover-content ul.list-group li.list-item.app-active button,.popover-content ul.list-group li.list-item.company-active button{cursor:not-allowed;pointer-events:none}.popover-content hr{background-color:#c4c9d2;margin:0;width:100%;border:0;border-top:1px solid #c4c9d2;opacity:1}.popover-content ul.apps-grid{width:100%;white-space:nowrap;overflow:auto}.popover-content ul.apps-grid li.list-item,.popover-content ul.apps-grid li.list-item img.logo-thumb{display:flex;justify-content:flex-start;flex-wrap:nowrap;align-content:center;align-items:center;flex-direction:row}.popover-header{background-color:#d5e3fa;border-bottom:1px solid #d8d8d8;padding:.975rem 1rem;margin-bottom:0;display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;flex-wrap:wrap}.popover-header .mat-icon{font-size:1.5rem!important;font-variation-settings:\"FILL\" 1,\"wght\" 500,\"GRAD\" 0,\"opsz\" 24;color:var(--clr-primary-900)}.header-dropdown-profile .popover-header{padding:1.125rem 1rem}.popover-header h3.popover-title{font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;margin-bottom:0;line-height:normal;font-weight:500;color:#254d93}.popover-body{max-height:420px;overflow:auto;padding:0}.app-icon-wrapper{margin:0 1rem 0 0;max-width:48px;max-height:48px;width:48px;height:48px;overflow:hidden;background-size:70%;background-repeat:no-repeat;background-position:center;border:1px solid #c4c9d2;border-radius:8px;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;flex-wrap:wrap}.app-icon-wrapper img.app-icon{width:100%;height:auto;overflow:hidden;padding:.5rem}h4.app-name{font-size:.65rem;margin:.5rem 0 0;line-height:normal;color:#254d93;font-weight:400;text-transform:uppercase}.popover-body ul.enabled-apps{display:flex;flex-flow:column wrap;justify-content:space-evenly;align-items:center;align-content:flex-start;border-bottom:1px solid #E9E9E9;margin:0;padding:0 1rem;list-style:none}.popover-body ul.enabled-apps li.enabled-app{flex-grow:1;flex:0 1 auto;text-align:center;font-size:.8125rem;padding:10px;list-style:none}.mat-tooltip{overflow:visible}.cdk-overlay-container .mdc-tooltip:before{width:0!important;height:0!important;content:\"\"!important;position:absolute!important;border-left:.5rem solid transparent!important;border-right:.5rem solid transparent!important;border-bottom:.5rem solid #0000008c!important}.cdk-overlay-container .mdc-tooltip:before{left:50%!important;top:-8px!important;transform:rotate(0)!important;right:50%!important}.cdk-overlay-container .mdc-tooltip__surface:before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\"\";pointer-events:none}.pmx-button.mdc-icon-button[color=theme-white],.pmx-button.icon-btn.mdc-button--raised[color=theme-white]{color:var(--clr-primary-900)}.pmx-button.icon-btn.orders-menu[color=theme-white]{border:1px solid var(--clr-black-50)!important}\n"] }]
268
+ args: [{ selector: 'lib-header', encapsulation: ViewEncapsulation.None, template: "<mat-toolbar cdkMenuBar color=\"primary\" [ngClass]=\"headerClass\" class=\"header-wrapper common_header shadow-sm\">\n <!-- Main nav button and navigation links -->\n <button mat-icon-button color=\"theme-white\" (click)=\"menuAction()\" class=\"pmx-button pmx-menu-button orders-menu icon-btn ms-0 me-3\"\n aria-label=\"main menu\" tabindex=\"0\" matTooltip=\"Main menu\" matTooltipPosition=\"below\"\n matTooltipClass=\"poc-header-tooltip\"><mat-icon>menu</mat-icon></button>\n <a class=\"navbar-brand me-auto\" href=\"#\">\n <img *ngIf=\"currentAppLogo\" [src]=\"sanitizeUrl(currentAppLogo)\" alt=\"App Logo\" class=\"app-logo\">\n </a>\n \n <!-- Apps button and menu items -->\n <ng-container *ngIf=\"template\" [ngTemplateOutlet]=\"template\"></ng-container>\n <button mat-icon-button *ngIf=\"(appList.length > 0)\" color=\"theme-white\"\n class=\"pmx-button pmx-menu-button icon-btn btn-switch-apps ms-1 me-1\" [class.menu-opened]=\"isAppsMenuOpen == true\"\n (menuOpened)=\"toggleMenu('apps')\" (menuClosed)=\"toggleMenu('apps')\" [matMenuTriggerFor]=\"apps\"\n matTooltip=\"Switch application\" matTooltipPosition=\"below\" aria-label=\"apps menu\"\n tabindex=\"0\">\n <mat-icon class=\"icon-arrow-down\">apps</mat-icon>\n </button>\n <mat-menu #apps=\"matMenu\" class=\"accounts_drpmenu pmx-menu-group header-dropdown-apps\" hasBackdrop=\"true\" xPosition=\"before\">\n <div class=\"popover-content show-menu\">\n <div class=\"popover-header\"><mat-icon class=\"me-2\">Apps</mat-icon><h3 class=\"popover-title\">Switch Application</h3></div>\n <div class=\"popover-body\">\n <div class=\"popover-content-title\">\n <p *ngIf=\"appList?.length == 1;else appsTitle\">Enabled Application</p>\n <ng-template #appsTitle><p>Enabled Applications</p></ng-template>\n </div>\n <ul cdkMenu class=\"list-group list-apps-group\">\n <li cdkMenuItem class=\"list-item list-app\" *ngFor=\"let app of appList;let i = index\" \n [ngClass]=\"(app?.active) ? 'app-active' : ''\">\n <button mat-menu-item class=\"pmx-button list-button\" (click)=\"appRedirect(app)\">\n <div class=\"app-icon-wrapper\"><img [src]=\"sanitizeUrl(imageDataUrls.profetThumbnail )\" class=\"app-icon\"></div>\n <span class=\"list-text me-auto\">{{ app?.name }}</span>\n <small class=\"active-label\" *ngIf=\"(app?.active)\">Active</small>\n <small class=\"hover-label tooltip-label\" *ngIf=\"!(app?.active)\">Click to switch app</small>\n </button>\n </li>\n </ul>\n </div>\n </div>\n </mat-menu>\n \n <span class=\"vr vr-blury\"></span>\n <!-- Profile button and profile dropdown links -->\n <div class=\"btn-group\" role=\"group\" aria-label=\"Button group with profile info\" [ngClass]=\"(((currentCompany?.subDomain) && userCompanyLogo) ? 'branded-group-true' : 'branded-group-false') + ' ' + (isProfileMenuOpen ? 'btn-group-clicked' : '')\">\n <button class=\"pmx-button pmx-menu-button profile-button\" mat-button mat-stroked-button [matMenuTriggerFor]=\"menu\"\n color=\"primary\" (menuOpened)=\"toggleMenu('profile')\" (menuClosed)=\"toggleMenu('profile')\" [ngClass]=\"currentCompany?.subDomain ? 'branded-button-true' : 'branded-button-false'\" matTooltip=\"Profile Info\" matTooltipPosition=\"below\">\n <div class=\"profile-inner\">\n <div class=\"brand-logo align-self-center\" *ngIf=\"((currentCompany?.subDomain) && userCompanyLogo)\" [ngClass]=\"userCompanyLogo ? 'branded-logo-true' : 'branded-logo-false'\" [ngStyle]=\"{'background-image': 'url(' + userCompanyLogo + ')'}\"></div>\n <div class=\"avatar\">\n <img *ngIf=\"userImageLink;else defaultAvatar\" [src]=\"sanitizeUrl(userImageLink)\" class=\"avatar-image\" alt=\"Avatar\">\n <ng-template #defaultAvatar><img [src]=\"sanitizeUrl(imageDataUrls.defaultUserImage)\" class=\"avatar-default\" alt=\"profile pic\"></ng-template>\n </div>\n </div>\n </button>\n </div>\n <mat-menu #menu=\"matMenu\" class=\"accounts_drpmenu pmx-menu-group header-dropdown-profile\" xPosition=\"before\">\n <div class=\"popover-content show-menu\">\n <div class=\"popover-header\">\n <div class=\"popover-user-top\">\n <div class=\"avatar-wrapper\">\n <div *ngIf=\"userImageLink;else defaultLargeAvatar\" [ngStyle]=\"{'background-image': 'url(' + userImageLink + ')'}\"\n class=\"avatar-icon\" alt=\"Avatar icon\">&nbsp;</div>\n <ng-template #defaultLargeAvatar>\n <div [ngStyle]=\"{'background-image': 'url(' + imageDataUrls.defaultUserImage + ')'}\" class=\"avatar-icon default-avatar\" alt=\"Avatar icon\">&nbsp;</div>\n </ng-template>\n </div>\n <div class=\"user-data\">\n <h3 class=\"profile-name\"><span *ngIf=\"userAuthData\">{{ userAuthData?.firstName }} {{ userAuthData?.lastName }}</span></h3>\n <button mat-button color=\"accent\" class=\"pmx-button btn btn-small view-profile ms-0\" (click)=\"profile()\">View Profile</button>\n </div>\n </div>\n </div>\n <div class=\"popover-body\">\n <div class=\"popover-content-title\"><p>Overview</p></div>\n <ul cdkMenu class=\"list-group list-overview\" *ngIf=\"currentCompany\">\n <li cdkMenuItem class=\"list-item\" *ngIf=\"userAuthData?.email\">\n <p mat-menu-item class=\"list-text list-text-email\">\n <mat-icon class=\"list-icon\">mail</mat-icon><span class=\"pmx-lower-case pmx-text-wrap me-auto\">{{ userAuthData?.email }}</span>\n </p>\n </li>\n <li cdkMenuItem class=\"list-item d-none\" *ngIf=\"userAuthData?.contactPhone\">\n <p mat-menu-item class=\"list-text\">\n <mat-icon class=\"list-icon\">call</mat-icon><span class=\"title-case me-auto\">{{ userAuthData?.contactPhone }}</span>\n </p>\n </li>\n <li cdkMenuItem class=\"list-item\" *ngIf=\"userAuthData?.address !== null\">\n <p mat-menu-item class=\"list-text\">\n <mat-icon class=\"list-icon\">location_on</mat-icon>\n <span class=\"title-case me-auto\">\n <small>{{ userAuthData?.address?.streetAddress }} {{(userAuthData?.address?.streetAddress2 !== null) ? userAuthData?.address?.streetAddress2 : '' }}</small><br />\n {{ userAuthData?.address?.city }} {{userAuthData?.address?.stateOrProvince }} {{userAuthData?.address?.postalCode }}\n </span>\n </p>\n </li>\n </ul>\n <hr />\n <div class=\"popover-content-title\">\n <p *ngIf=\"userCompanies?.length == 1;else companiesTitle\">Company</p>\n <ng-template #companiesTitle><p>Companies</p></ng-template>\n </div>\n <ul cdkMenu class=\"list-group list-group-companies\">\n <li cdkMenuItem class=\"list-item list-company\" *ngFor=\"let company of userCompanies\" [ngClass]=\"(company?.activeNow) ? 'list-active company-active' : ''\">\n <button mat-menu-item class=\"pmx-button list-button\" (click)=\"switchCompany(company)\" [matTooltip]=\"company?.name\"\n matTooltipPosition=\"below\">\n <mat-icon class=\"icon-check\">{{ (company?.activeNow) ? 'check_circle' : 'swap_vert' }}</mat-icon>\n <span class=\"list-text pmx-text-wrap me-auto\">{{ company?.name | titlecase }}</span>\n <small class=\"active-label\" *ngIf=\"(company?.activeNow)\">Active</small>\n </button>\n </li>\n </ul>\n <hr />\n <ul cdkMenu class=\"list-group last-group my-1\">\n <li cdkMenuItem class=\"list-item py-2\">\n <button mat-menu-item class=\"pmx-button list-button btn-logout\" (click)=\"onLogoutClick()\">\n <mat-icon>power_settings_new</mat-icon>\n <span class=\"list-text\">Logout</span>\n </button>\n </li>\n </ul>\n </div>\n </div>\n </mat-menu>\n</mat-toolbar>", styles: [":root{--clr-primary-50: #e5f3fb;--clr-primary-100: #bfdff7;--clr-primary-200: #99ccf2;--clr-primary-300: #74b8ec;--clr-primary-400: #5ba9e8;--clr-primary-500: #479be5;--clr-primary-600: #408dd7;--clr-primary-700: #377bc5;--clr-primary-800: #316bb3;--clr-primary-900: #254d93;--clr-primary: var(--clr-primary-900);--clr-secondary-50: #e6f5e9;--clr-secondary-100: #c3e7c9;--clr-secondary-200: #9cd7a8;--clr-secondary-300: #72c885;--clr-secondary: var(--clr-secondary-300);--clr-secondary-400: #51bc6b;--clr-secondary-500: #2db051;--clr-secondary-600: #24a148;--clr-secondary-700: #178f3c;--clr-secondary-800: #0a7e32;--clr-secondary-900: #005e1f;--clr-black-50: #fafafa;--clr-black-100: #f5f5f5;--clr-black-200: #eeeeee;--clr-black-300: #e0e0e0;--clr-black-400: #bdbdbd;--clr-black-500: #9e9e9e;--clr-black-600: #757575;--clr-black-700: #616161;--clr-black-800: #424242;--clr-black-900: #212121;--clr-black: var(--clr-black-900)}.pmx-text-truncate{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pmx-text-wrap{overflow-wrap:break-word}.pmx-lower-case{text-transform:lowercase}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color)}.mat-mdc-button.mat-accent{--mdc-text-button-label-text-color: #24a148;--mat-text-button-state-layer-color: #24a148;--mat-text-button-ripple-color: rgba(255, 64, 129, .1)}html .mat-accent{--mat-slider-ripple-color: #24a148;--mat-slider-hover-state-layer-color: rgba(255, 64, 129, .05);--mat-slider-focus-state-layer-color: rgba(255, 64, 129, .2);--mdc-slider-handle-color: #24a148;--mdc-slider-focus-handle-color: #24a148;--mdc-slider-hover-handle-color: #24a148;--mdc-slider-active-track-color: #24a148;--mdc-slider-inactive-track-color: #24a148;--mdc-slider-with-tick-marks-inactive-container-color: #24a148;--mdc-slider-with-tick-marks-active-container-color: #51bc6b}.header-user-name{text-align:end;color:#000}.header-user-name span{font-size:12px;color:#9e9e9ede}.avatarLogo{max-width:30px}mat-toolbar.mat-toolbar.common_header.mat-primary.mat-toolbar-single-row{position:absolute;left:0;top:0;background-color:#fff;height:56px}button.switchButton,button.menuHamberger{padding:8px!important}.sidenavPanel{padding:20px 25px;height:100vh;position:relative}ul.navbarList{padding-left:0;list-style:none;margin-top:40px}ul.navbarList li{color:#666;font-weight:400;margin-bottom:25px;width:170px;cursor:pointer}.active{color:#4177d6!important}ul.navbarList li img{width:23px;margin-right:15px}.accounts_drpmenu{margin-top:.7em}.xsShowUsername{display:none;padding:0 16px;height:48px;line-height:48px}.vr{width:2px;background-color:#f5f5f5;opacity:1;margin:0 .5rem 0 1rem}.vr-blury{background-image:linear-gradient(180deg,transparent,#666,transparent);width:1px;opacity:.25}.navbar-brand .app-logo{height:30px;width:auto}.pmx-button mat-icon.mat-icon,.pmx-button mat-icon.mat-primary,.pmx-button mat-icon.mat-accent,.pmx-button mat-icon.mat-warn{color:var(--mat-icon-color)}.pmx-button mat-icon.mat-icon{font-size:1.5rem!important;line-height:1.5;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:transform .3s ease}.pmx-button.mdc-button--raised mat-icon.mat-icon{width:24px;height:24px;display:contents}.pmx-button.mat-mdc-button-base mat-icon.mat-icon{z-index:1}.pmx-button mat-icon.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.pmx-button mat-icon.mdc-button span.button-text{display:inline-flex;padding:0 1rem;text-transform:uppercase;font-size:.875rem;line-height:1.5}.pmx-button mat-icon.mdc-button span.upper-case{text-transform:uppercase}.pmx-button.mdc-button,.pmx-button.mdc-icon-button,.pmx-button.mdc-button--outlined,.pmx-button.mdc-button .mat-mdc-button-touch-target,.pmx-button.mdc-icon-button .mat-mdc-button-touch-target{height:40px!important;font-size:.75rem!important;letter-spacing:.2px;padding:0 .5rem;line-height:normal}.pmx-button.mdc-icon-button,.pmx-button.icon-btn.mdc-button--outlined,.pmx-button.icon-btn.mdc-button--raised,.pmx-button.mdc-icon-button .mat-mdc-button-touch-target{width:40px;border-radius:5px}.pmx-button.btn-small.mdc-button,.pmx-button.btn-small.mdc-icon-button,.pmx-button.btn-small.mdc-button--outlined{height:28px!important;padding:0 1rem}.pmx-button.mdc-icon-button,.pmx-button.icon-btn.mdc-button--raised{color:var(--clr-primary-900);background-color:var(--clr-primary-50)}.pmx-header .icon-button-shadow{box-shadow:0 1px 3px #0003,0 0 #00000024,0 1px 3px #0000001f}.pmx-button.icon-btn.mdc-button--raised.btn-switch-apps.menu-opened,.pmx-button.icon-btn.mdc-button--outlined.btn-switch-apps.menu-opened{background-color:#254d93;color:#fff;font-variation-settings:\"FILL\" 0,\"wght\" 200,\"GRAD\" 0,\"opsz\" 24}.pmx-button.mdc-icon-button.pmx-menu-button:hover,.pmx-button.mat-mdc-outlined-button.btn-switch-apps:hover,.pmx-button.icon-btn.mdc-button--outlined.btn-switch-apps:hover{border:1px solid var(--clr-primary-300)!important}.pmx-button.icon-app{width:20px}.pmx-button.mat-mdc-outlined-button,.pmx-button.mat-mdc-outlined-button:not(:disabled){background-color:#fff;overflow:hidden}.pmx-button.pmx-menu-button.profile-button.mat-mdc-outlined-button{padding:0;border-color:var(--clr-primary-100)!important}.btn-group-clicked .pmx-button.pmx-menu-button.profile-button.mat-mdc-outlined-button{border-color:var(--clr-primary-300)!important}.pmx-button.profile-button .profile-inner{border:0 solid transparent!important;display:flex;align-items:center;overflow:clip}.pmx-button.profile-button .avatar{width:38px;height:38px;box-sizing:border-box;border:3px #ffffff solid!important;border-radius:50%;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-content:center;align-items:center;flex-wrap:wrap}.pmx-button.profile-button .avatar{background-color:var(--clr-secondary-200)}.pmx-button.profile-button .avatar img.avatar-image,.pmx-button.profile-button .avatar img.avatar-default{width:100%;height:auto}.branded-group-false{margin-left:.65rem}.branded-group-false .pmx-button.pmx-menu-button.profile-button.branded-button-false{width:40px;border-radius:20px}.branded-group-true{margin-left:.65rem;border-radius:20px;border:1px solid var(--clr-primary-100)}.btn-group-clicked.branded-group-true{background-color:var(--clr-primary-200)}.branded-group-true .pmx-button.profile-button .profile-inner{border:0 solid #c4c9d2!important}.branded-group-true .pmx-button.pmx-menu-button.profile-button.branded-button-true{border-radius:20px}.branded-group-true .pmx-button.profile-button.branded-button-true .profile-inner .branded-logo-true{border-radius:5px;display:block;position:relative;height:38px;background-size:100%;background-position:center;background-repeat:no-repeat;min-width:100px;margin-right:1rem}.pmx-menu-group.mat-mdc-menu-panel{margin-top:1rem}.header-dropdown-apps.mat-mdc-menu-panel .mat-mdc-menu-content,.header-dropdown-profile.mat-mdc-menu-panel .mat-mdc-menu-content{padding:0!important}.header-dropdown-apps{width:400px!important}.header-dropdown-apps.mat-mdc-menu-panel .list-button{padding:.5rem 2rem}.header-dropdown-apps.mdc-menu-surface--open,.header-dropdown-profile.mdc-menu-surface--open{position:absolute;z-index:1;top:0;right:0;margin:0;padding:0;border:1px solid #e5e5e5;border-radius:6px;background:#fff;animation:popover .2s ease-in-out}.header-dropdown-apps.mat-mdc-menu-panel.mat-mdc-menu-panel{max-width:400px!important;width:400px!important;overflow:visible}.header-dropdown-profile.mat-mdc-menu-panel.mat-mdc-menu-panel{max-width:408px!important;width:408px!important;overflow:visible}.popover-content:after,.popover-content:before{font-size:1.4em;display:block;width:0;height:0;content:\"\";pointer-events:none;position:absolute;top:-.45em}.popover-content:before{border-right:10px solid transparent;border-bottom:10px solid #999;border-left:10px solid transparent;right:.97em}.popover-content:after{border-right:12px solid transparent;border-bottom:12px solid #d5e3fa;border-left:12px solid transparent;right:.9em}.popover-content-title{display:flex;align-items:center;justify-content:flex-start;overflow:hidden;padding:0 1rem;min-height:40px}.popover-content-title p{margin:0;font-size:.75rem!important;color:#777}.popover-content .popover-user-top:after{clear:both;content:\"\";display:table}.popover-content .popover-user-top{display:flex;flex-flow:row;justify-content:flex-start;align-items:center}.popover-content .popover-user-top .avatar-wrapper{flex:0 4 auto;border-radius:100%;overflow-clip-margin:content-box;overflow:clip;background-color:#fff;padding:2px}.drop-shadow{filter:drop-shadow(0px 0px 3px rgba(0,0,0,.5))}.popover-content .popover-user-top .user-data{flex:1 0 auto;margin-left:1rem}.popover-content .popover-user-top .avatar-wrapper .avatar-icon{background-repeat:no-repeat;background-size:100%;background-position:center;width:64px;height:64px;background-color:#72c885}.avatar-icon.default-avatar{background-size:100%}.popover-content .popover-user-top .user-data h3.profile-name{font-size:1rem;text-overflow:ellipsis;margin-bottom:.5rem;line-height:normal;font-weight:600;color:var(--clr-primary)}.btn.view-profile{background:var(--clr-black-50);color:var(--clr-primary)}.popover-content ul.list-group{padding:0 0 8px;margin:0;display:flex;list-style:none}.popover-content ul.list-group.last-group,.popover-content ul.list-group.last-group .list-item{background-color:transparent}.popover-content ul.list-group li.list-item{align-items:center;border:none;padding:0;width:100%;display:flex;flex-direction:row;flex-wrap:wrap;order:1}.popover-content ul.list-group li.list-item .list-button{padding:.5rem 2rem;min-height:40px}.popover-content ul.list-group li.list-item span.mat-mdc-menu-item-text,.popover-content ul.list-group li.list-item span.mdc-list-item__primary-text,.popover-content ul.list-group li.list-item .list-button>span{display:flex;align-items:center}.popover-content ul.list-group li.list-item.list-company .list-button>span{width:100%;overflow:hidden}.popover-content ul.list-group li.list-item .list-button .hover-label.tooltip-label{opacity:0}.popover-content ul.list-group li.list-item.list-app .list-button:hover>span .hover-label.tooltip-label,.popover-content ul.list-group li.list-item.list-company .list-button:hover>span .hover-label.tooltip-label{opacity:0;display:inline-flex;color:#fff;background-color:#616161;font-size:11px;border-radius:4px;padding:0 .5rem;transition:opacity .3s ease-out}.popover-content ul.list-group li.list-item .list-button:hover{background:rgba(0,0,0,.04)}.popover-content ul.list-group li.list-item.company-active,.popover-content ul.list-group li.list-item.app-active{cursor:not-allowed;pointer-events:none;order:0}.popover-content ul.list-group li.list-item.company-active .active-label,.popover-content ul.list-group li.list-item.app-active .active-label{background-color:#93c47d;color:var(--clr-black-900);padding:0 .5rem;border-radius:50px;font-size:.75rem;margin-left:.5rem}.popover-content ul.list-group.list-apps-group{display:flex}.popover-content ul.list-group.list-overview li.list-item{cursor:not-allowed;pointer-events:none}.popover-content ul.list-group li.list-item p.list-text{padding:.5rem 2rem;margin:0;min-height:auto}.popover-content ul.list-group li.list-item .list-button .mat-icon,.popover-content ul.list-group li.list-item p.list-text mat-icon.list-icon,.popover-content ul.list-group li.list-item .list-button .list-icon,.popover-content ul.list-group li.list-item p.list-text .list-icon{color:var(--clr-secondary-500);font-variation-settings:\"FILL\" 0,\"wght\" 200,\"GRAD\" 0,\"opsz\" 24;font-size:24px!important}.popover-content ul.list-group li.list-item.list-active.company-active button.list-button .mat-icon{color:var(--clr-secondary-500);font-variation-settings:\"FILL\" 1,\"wght\" 300,\"GRAD\" 0,\"opsz\" 24}.popover-content ul.list-group li.list-item p.list-text span.mdc-list-item__primary-text{width:100%;display:flex}.popover-content ul.list-group li.list-item span.title-case{font-size:.8rem;color:var(--clr-black-900);font-weight:500;display:block;line-height:normal}small{color:var(--clr-black-500)}.popover-content ul.list-group li.list-item span.text-label{font-size:12px;color:#979797;font-weight:400;display:block;line-height:normal}.popover-content ul.list-group li.list-item .list-text,.popover-content ul.list-group li.list-item .list-text span.mat-mdc-menu-item-text{font-size:.875rem;color:#0a152f;font-weight:500;line-height:normal}.popover-content ul.list-group li.list-item .list-text.list-text-email span.mat-mdc-menu-item-text{width:calc(100% - 40px);display:inline-flex}.popover-content ul.list-group li.list-item .list-text.list-text-email span.pmx-text-wrap{overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:none;hyphens:none;width:100%}.popover-content ul.list-group li.list-item span.upper-case{text-transform:uppercase}.popover-content ul.list-group li.list-item span.app-status,.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status{font-size:13px;color:#0a152f;font-weight:400;display:block;line-height:normal;margin:0}.popover-content ul.list-group li.list-item.app-active .list-text,.popover-content ul.list-group li.list-item.company-active .list-text{color:#4b85ea}.popover-content ul.list-group li.list-item.app-active span.app-status,.popover-content ul.list-group li.list-item.app-active .mat-mdc-chip-option.chip-status,.popover-content ul.list-group li.list-item.company-active span.app-status,.popover-content ul.list-group li.list-item.company-active .mat-mdc-chip-option.chip-status{color:#24a53f}.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status{display:flex;flex-direction:row;justify-content:flex-start}.popover-content ul.list-group li.list-item .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected{transition:all .3s ease-out;margin-left:auto;flex:1;justify-content:flex-end}.popover-content ul.list-group li.list-item.app-active .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected,.popover-content ul.list-group li.list-item.company-active .mat-mdc-chip-option.chip-status.mdc-evolution-chip--selected{background-color:var(--clr-primary-600);color:var(--clr-black-100)}.popover-content ul.list-group li.list-item .mat-mdc-standard-chip .mat-mdc-chip-action-label{font-size:.75rem}.popover-content ul.list-group li.list-item .mat-mdc-standard-chip{height:24px}.popover-content ul.list-group li.list-item img.logo-thumb{width:24px;height:auto;margin-right:1rem}.popover-content ul.list-group li.list-item .list-button.btn-logout{display:flex;align-items:center;color:var(--clr-black-700)}.popover-content ul.list-group li.list-item.app-active .list-button .app-icon-wrapper{background-color:#fff;border-color:#4b85ea;border-width:3px}.popover-content ul.list-group li.list-item.company-active .list-text .mat-icon{font-variation-settings:\"FILL\" 1,\"wght\" 200,\"GRAD\" 0,\"opsz\" 24;color:var(--themelightblue)}.popover-content ul.list-group li.list-item .list-button.btn-logout .list-text{color:var(--clr-black-700)}.popover-content ul.list-group li.list-item.app-active button,.popover-content ul.list-group li.list-item.company-active button{cursor:not-allowed;pointer-events:none}.popover-content hr{background-color:#c4c9d2;margin:0;width:100%;border:0;border-top:1px solid #c4c9d2;opacity:1}.popover-content ul.apps-grid{width:100%;white-space:nowrap;overflow:auto}.popover-content ul.apps-grid li.list-item,.popover-content ul.apps-grid li.list-item img.logo-thumb{display:flex;justify-content:flex-start;flex-wrap:nowrap;align-content:center;align-items:center;flex-direction:row}.popover-header{background-color:#d5e3fa;border-bottom:1px solid #d8d8d8;padding:.975rem 1rem;margin-bottom:0;display:flex;flex-direction:row;align-content:center;justify-content:flex-start;align-items:center;flex-wrap:wrap}.popover-header .mat-icon{font-size:1.5rem!important;font-variation-settings:\"FILL\" 1,\"wght\" 500,\"GRAD\" 0,\"opsz\" 24;color:var(--clr-primary-900)}.header-dropdown-profile .popover-header{padding:1.125rem 1rem}.popover-header h3.popover-title{font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;margin-bottom:0;line-height:normal;font-weight:500;color:#254d93}.popover-body{max-height:420px;overflow:auto;padding:0}.app-icon-wrapper{margin:0 1rem 0 0;max-width:48px;max-height:48px;width:48px;height:48px;overflow:hidden;background-size:70%;background-repeat:no-repeat;background-position:center;border:1px solid #c4c9d2;border-radius:8px;display:flex;flex-direction:row;align-content:center;justify-content:center;align-items:center;flex-wrap:wrap}.app-icon-wrapper img.app-icon{width:100%;height:auto;overflow:hidden;padding:.5rem}h4.app-name{font-size:.65rem;margin:.5rem 0 0;line-height:normal;color:#254d93;font-weight:400;text-transform:uppercase}.popover-body ul.enabled-apps{display:flex;flex-flow:column wrap;justify-content:space-evenly;align-items:center;align-content:flex-start;border-bottom:1px solid #E9E9E9;margin:0;padding:0 1rem;list-style:none}.popover-body ul.enabled-apps li.enabled-app{flex-grow:1;flex:0 1 auto;text-align:center;font-size:.8125rem;padding:10px;list-style:none}.mat-tooltip{overflow:visible}.cdk-overlay-container .mdc-tooltip:before{width:0!important;height:0!important;content:\"\"!important;position:absolute!important;border-left:.5rem solid transparent!important;border-right:.5rem solid transparent!important;border-bottom:.5rem solid #0000008c!important}.cdk-overlay-container .mdc-tooltip:before{left:50%!important;top:-8px!important;transform:rotate(0)!important;right:50%!important}.cdk-overlay-container .mdc-tooltip__surface:before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:1px solid rgba(0,0,0,0);border-radius:inherit;content:\"\";pointer-events:none}.pmx-button.mdc-icon-button[color=theme-white],.pmx-button.icon-btn.mdc-button--raised[color=theme-white]{color:var(--clr-primary-900)}.pmx-button.icon-btn.orders-menu[color=theme-white]{border:1px solid var(--clr-black-50)!important}\n"] }]
269
269
  }], ctorParameters: function () { return []; }, propDecorators: { template: [{
270
270
  type: Input
271
271
  }], appName: [{
@@ -275,4 +275,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
275
275
  }], infoEvent: [{
276
276
  type: Output
277
277
  }] } });
278
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXIvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXIvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7O0FBUXRELE1BQU0sT0FBTyxlQUFlO0lBNkIxQjtRQTNCQSxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBR1osY0FBUyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDcEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFOUMsWUFBTyxHQUFlLEVBQUUsQ0FB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Q0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2pGLENBQUM7OzZHQTdRVSxlQUFlO2lHQUFmLGVBQWUscUtDbEI1Qix3NlJBMEhjOzRGRHhHRCxlQUFlO2tCQU4zQixTQUFTOytCQUNFLFlBQVksaUJBR1AsaUJBQWlCLENBQUMsSUFBSTswRUFLNUIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG93ZXJDYXNlUGlwZSwgVGl0bGVDYXNlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U2lkZW5hdiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFVzZXIsIHNpZ25PdXQgfSBmcm9tIFwiYXdzLWFtcGxpZnkvYXV0aFwiO1xuaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbW1vbkhlYWRlclNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24taGVhZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUFJPRkVUX0FQUFMgfSBmcm9tICcuLi91dGlscy9hcHBzLmVudW0nO1xuaW1wb3J0IHsgaW1hZ2VEYXRhVXJsIH0gZnJvbSAnLi4vdXRpbHMvaW1hZ2UuZGF0YXVybCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5jc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHVzZXJuYW1lOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgdGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBhcHBOYW1lITogUFJPRkVUX0FQUFM7XG4gIEBPdXRwdXQoKSBtZW51RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGluZm9FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBzaWRlbmF2ITogTWF0U2lkZW5hdjtcbiAgYXBwTGlzdDogQXJyYXk8YW55PiA9IFtdO1xuICB1c2VyQ29tcGFuaWVzOiBhbnk7XG4gIGNvbXBhbnlQcm9maWxlOiBhbnk7XG4gIHBvcnRhbFVybDogc3RyaW5nID0gJyc7XG4gIHVzZXJBdXRoRGF0YTogYW55O1xuICB1c2VySW1hZ2VMaW5rOiBhbnk7XG4gIGhlYWRlckNsYXNzOiBzdHJpbmcgPSBcIlwiO1xuICBjdXJyZW50QXBwOiBhbnk7XG4gIGN1cnJlbnRBcHBMb2dvOiBzdHJpbmcgPSAnJztcbiAgY3VycmVudENvbXBhbnk6IGFueTtcbiAgdXNlckNvbXBhbnlMb2dvOiBhbnkgPSAnJztcbiAgZW5hYmxlZEFwcGxpY2F0aW9uczogQXJyYXk8YW55PiA9IFtdO1xuICBpbWFnZURhdGFVcmxzID0gaW1hZ2VEYXRhVXJsO1xuICBpc0FwcHNNZW51T3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1Byb2ZpbGVNZW51T3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9yb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJpdmF0ZSBfc25hY2tiYXIgPSBpbmplY3QoTWF0U25hY2tCYXIpO1xuICBwcml2YXRlIF9zZXIgPSBpbmplY3QoQ29tbW9uSGVhZGVyU2VydmljZSk7XG4gIHByaXZhdGUgX2RvbVNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuICBwcml2YXRlIF90aXRsZUNhc2VwaXBlID0gaW5qZWN0KFRpdGxlQ2FzZVBpcGUpO1xuICBwcml2YXRlIF9sb3dlckNhc2VQaXBlID0gaW5qZWN0KExvd2VyQ2FzZVBpcGUpO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZmV0Y2hDb21wYW55UHJvZmlsZSgpO1xuICAgIHRoaXMuX3Nlci5nZXRBcHBzKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICh2KSA9PiB7XG4gICAgICAgIHRoaXMucG9ydGFsVXJsID0gdj8uZGF0YT8ucG9ydGFsVXJsO1xuICAgICAgICBsZXQgZGF0YSA9IHtcbiAgICAgICAgICBjb21wYW55SW5mbzogdGhpcy5jb21wYW55UHJvZmlsZSxcbiAgICAgICAgICBwb3J0YWxVcmw6IHRoaXMucG9ydGFsVXJsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaW5mb0V2ZW50LmVtaXQoZGF0YSk7XG4gICAgICAgIC8vIGxldCBjb25maWc6IGFueSA9IEF1dGguY29uZmlndXJlKCk7XG4gICAgICAgIC8vIGxldCBzaWdub3V0VXJsID0gYCR7dGhpcy5wb3J0YWxVcmx9L2xvZ2luYDtcbiAgICAgICAgLy8gY29uZmlnLm9hdXRoID0geyAuLi5jb25maWcub2F1dGgsIC4uLnsgXCJyZWRpcmVjdFNpZ25PdXRcIjogc2lnbm91dFVybCB9IH07XG4gICAgICAgIC8vIEFtcGxpZnkuY29uZmlndXJlKGNvbmZpZyk7XG4gICAgICAgIGlmICh2Py5kYXRhPy5hcHBsaWNhdGlvbnMgJiYgdi5kYXRhLmFwcGxpY2F0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgLy8gdGhpcy5mZXRjaENvbXBhbnlEYXRhKHYuZGF0YS5hcHBsaWNhdGlvbnMpO1xuICAgICAgICAgIHRoaXMuYXBwTGlzdCA9IFtdO1xuICAgICAgICAgIHRoaXMuZW5hYmxlZEFwcGxpY2F0aW9ucyA9IHYuZGF0YS5hcHBsaWNhdGlvbnM7XG5cbiAgICAgICAgICB2LmRhdGEuYXBwbGljYXRpb25zLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBsZXQgY3VycmVudEFwcCA9IChlbGVtZW50Lm5hbWUgPT09IHRoaXMuYXBwTmFtZSk7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwTGlzdC5wdXNoKHtcbiAgICAgICAgICAgICAgbmFtZTogZWxlbWVudC5kaXNwbGF5TmFtZSxcbiAgICAgICAgICAgICAgdmFsdWU6IGVsZW1lbnQsXG4gICAgICAgICAgICAgIGFwcFVybDogZWxlbWVudC5hcHBVcmwsXG4gICAgICAgICAgICAgIGFjdGl2ZTogY3VycmVudEFwcFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgbGV0IGFwcERhdGEgPSB7XG4gICAgICAgICAgICBlbmFibGVkQXBwczogdGhpcy5hcHBMaXN0XG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLmluZm9FdmVudC5lbWl0KGFwcERhdGEpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKGUpXG4gICAgICB9XG4gICAgfSk7XG4gICAgbGV0IHVzZXJJbmZvID0gYXdhaXQgZ2V0Q3VycmVudFVzZXIoKTtcbiAgICBpZiAodXNlckluZm8/LnVzZXJuYW1lKSB7XG4gICAgICBsZXQgdXNlckRldGFpbHMgPSB0aGlzLl9zZXIuZ2V0VXNlckRldGFpbHNCeUVtYWlsKHsgZW1haWw6IHVzZXJJbmZvLnVzZXJuYW1lIH0pO1xuICAgICAgbGV0IHVzZXJDb21wYW55SW5mbyA9IHRoaXMuX3Nlci5nZXRVc2VyQ29tcGFuaWVzKCk7XG4gICAgICBmb3JrSm9pbihbdXNlckRldGFpbHMsIHVzZXJDb21wYW55SW5mb10pLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICBpZiAocmVzICYmIHJlc1swXSkge1xuICAgICAgICAgICAgdGhpcy51c2VyQXV0aERhdGEgPSByZXNbMF07XG4gICAgICAgICAgICB0aGlzLnVzZXJuYW1lID0gdGhpcy51c2VyQXV0aERhdGEuZmlyc3ROYW1lO1xuICAgICAgICAgICAgaWYgKHRoaXMudXNlckF1dGhEYXRhPy5fbGlua3M/LnByb2ZpbGVJbWFnZT8uaHJlZikge1xuICAgICAgICAgICAgICB0aGlzLmdldFVzZXJQcm9maWxlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzWzFdKSB7XG4gICAgICAgICAgICBpZiAocmVzWzFdICYmIHJlc1sxXS5kYXRhICYmIHJlc1sxXS5kYXRhLmNvbXBhbmllcykge1xuICAgICAgICAgICAgICB0aGlzLnVzZXJDb21wYW5pZXMgPSByZXNbMV0uZGF0YS5jb21wYW5pZXM7XG4gICAgICAgICAgICAgIGlmICh0aGlzLnVzZXJDb21wYW5pZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGNvbSBvZiB0aGlzLnVzZXJDb21wYW5pZXMpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChjb20uY29tcGFueUtleSA9PSB0aGlzLnVzZXJBdXRoRGF0YS5sYXN0QWNjZXNzZWRDb21wYW55S2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbS5hY3RpdmVOb3cgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZ2V0Q3VycmVudENvbXBhbnlJbmZvKCk7XG4gICAgICAgICAgICB0aGlzLnNldEN1cnJlbnRBcHBMb2dvKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIG1lbnVBY3Rpb24oKSB7XG4gICAgdGhpcy5tZW51RXZlbnQuZW1pdCgpO1xuICB9XG5cbiAgZmV0Y2hDb21wYW55UHJvZmlsZSgpIHtcbiAgICBsZXQgcmVxID0ge1xuICAgICAgY29tcGFueU5hbWU6IGRvY3VtZW50LmxvY2F0aW9uLmhvc3Quc3BsaXQoJy4nKVswXVxuICAgIH07XG4gICAgdGhpcy5fc2VyLmZldGNoQ29tcGFueVByb2ZpbGUocmVxKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHYpID0+IHtcbiAgICAgICAgdGhpcy5jb21wYW55UHJvZmlsZSA9IHY7XG4gICAgICAgIGxldCBkYXRhID0ge1xuICAgICAgICAgIGNvbXBhbnlJbmZvOiB2LFxuICAgICAgICAgIHBvcnRhbFVybDogdGhpcy5wb3J0YWxVcmxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5pbmZvRXZlbnQuZW1pdChkYXRhKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIGZldGNoQ29tcGFueURhdGEoYWxsQXBwczogQXJyYXk8YW55Pikge1xuICAgIHRoaXMuX3Nlci5nZXRDb21wYW55QXBwbGljYXRpb25zKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICh2KSA9PiB7XG4gICAgICAgIGlmICh2Py5kYXRhPy5lbmFibGVkQXBwbGljYXRpb25zKSB7XG4gICAgICAgICAgdGhpcy5hcHBMaXN0ID0gW107XG4gICAgICAgICAgbGV0IGFwcEluZm8gPSBbXTtcbiAgICAgICAgICBsZXQgZmV0Y2hlZEFwcGxpY2F0aW9ucyA9IHYuZGF0YS5lbmFibGVkQXBwbGljYXRpb25zPy5zcGxpdCgnLCcpO1xuXG4gICAgICAgICAgaWYgKGZldGNoZWRBcHBsaWNhdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZmV0Y2hlZEFwcGxpY2F0aW9ucy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgYXBwSW5mbyA9IGFsbEFwcHMuZmlsdGVyKGVsZSA9PiBlbGUubmFtZSA9PSBlbGVtZW50KTtcbiAgICAgICAgICAgICAgaWYgKGFwcEluZm8gJiYgYXBwSW5mby5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKGFwcEluZm9bMF0ubmFtZSAhPSAnbWNhJykge1xuICAgICAgICAgICAgICAgICAgdGhpcy5hcHBMaXN0LnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBhcHBJbmZvWzBdLmRpc3BsYXlOYW1lLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgYXBwVXJsOiBhcHBJbmZvWzBdLmFwcFVybFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBzYW5pdGl6ZVVybCh1cmw6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybCh1cmwpXG4gIH1cblxuXG5cbiAgZ2V0VXNlclByb2ZpbGUoKSB7XG4gICAgdGhpcy5fc2VyLm9idGFpbkRhdGFCeVVybCh0aGlzLnVzZXJBdXRoRGF0YS5fbGlua3MucHJvZmlsZUltYWdlLmhyZWYpLnN1YnNjcmliZShpbWcgPT4ge1xuICAgICAgaWYgKGltZz8ubG9jYXRpb25VcmwpIHtcbiAgICAgICAgdGhpcy51c2VySW1hZ2VMaW5rID0gaW1nLmxvY2F0aW9uVXJsID8gaW1nLmxvY2F0aW9uVXJsIDogbnVsbDtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgYXBwUmVkaXJlY3QoYXBwOiBhbnkpIHtcbiAgICBpZiAoIWFwcD8uYWN0aXZlKSB7XG4gICAgICAgd2luZG93Lm9wZW4oYXBwLmFwcFVybCwgXCJfc2VsZlwiKTsgXG4gICAgfVxuICB9XG4gIHByb2ZpbGUoKSB7XG4gICAgLy8gdGhpcy5mZXRjaFVzZXJEYXRhKCk7XG4gICAgaWYgKHRoaXMuX3Nlci5wb3J0YWxGcm9udGVuZFVybCkge1xuICAgICAgbGV0IHVybCA9IHRoaXMucG9ydGFsVXJsICsgJy9hcHAvcHJvZmlsZSc7XG4gICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvYXBwL3Byb2ZpbGUnKTtcbiAgICB9XG4gIH1cbiAgbG9hZFVzZXJNZXNzYWdlcygpIHtcbiAgICBpZiAodGhpcy51c2VyQXV0aERhdGEpIHtcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvYXBwL3VzZXItaW5ib3gnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc25hY2tiYXIub3BlbignTm8gbWVzc2FnZXMgcmVjZWl2ZWQgeWV0JywgJ09LJywgeyBkdXJhdGlvbjogNTAwMCB9KTtcbiAgICB9XG4gIH1cbiAgb25Mb2dvdXRDbGljaygpIHtcbiAgICBzaWduT3V0KHsgZ2xvYmFsOiB0cnVlLCBvYXV0aDogeyByZWRpcmVjdFVybDogdGhpcy5fc2VyLnNpZ25PdXRVcmwgfSB9KVxuICAgICAgLnRoZW4oZGF0YSA9PiBjb25zb2xlLmxvZyhkYXRhKSlcbiAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhlcnIpXG4gICAgICAgIHNpZ25PdXQoeyBnbG9iYWw6IHRydWUsIG9hdXRoOiB7IHJlZGlyZWN0VXJsOiB0aGlzLl9zZXIuc2lnbk91dFVybCB9IH0pO1xuICAgICAgfSk7XG4gIH1cbiAgc3dpdGNoQ29tcGFueShjb21wYW55OiBhbnkpIHtcbiAgICAvLyBzd2l0Y2ggdGhlIHVzZXIgdG8gdGhlIHNlbGVjdGVjIGNvbXBhbnlcblxuICAgIC8vIEZpbmQgdGhlIGRvbWFpbiBpbmZvcm1hdGlvblxuICAgIGlmICghY29tcGFueS5hY3RpdmVOb3cpIHtcbiAgICAgICAgbGV0IGRvbWFpbkluZm8gPSB0aGlzLl9zZXIuZ2V0RG9tYWluSW5mbygpO1xuICAgICAgICBpZiAoZG9tYWluSW5mbykge1xuICAgICAgICAgICAgbGV0IHJlcTogYW55ID0geyBjb21wYW55S2V5OiBjb21wYW55LmNvbXBhbnlLZXksIGFwcE5hbWU6IGRvbWFpbkluZm8uYXBwQ29kZSB9O1xuICAgICAgICAgICAgdGhpcy5fc2VyLnVwZGF0ZVVzZXJDb21wYW55KHJlcSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS50eXBlICYmIHJlc3BvbnNlLnR5cGUgPT0gXCJPS1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5kYXRhLmFwcGxpY2F0aW9uVVJMKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB1cmwgPSByZXNwb25zZS5kYXRhLmFwcGxpY2F0aW9uVVJMO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZSh1cmwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlZnJlc2ggdGhlIGN1cnJlbnQgcGFnZSB0byByZWxvYWQgdGhlIGNvbnRlbnRzIGJhc2VkIG9uIHRoZSBjdXJyZW50IGNvbXBhbnlcbiAgICAgICAgICAgICAgICAgICAgLy8gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZGlzcGxheSBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIgdGhhdCB0aGUgY29tcGFueSBjb3VsZCBub3QgYmUgc3dpdGNoZWQuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrYmFyLm9wZW4oJ0NvbXBhbnkgY291bGQgbm90IGJlIHN3aXRjaGVkLiBQbGVhc2UgdHJ5IGFnYWluIG9yIGNvbnRhY3Qgc3VwcG9ydC4nLCAnT0snLCB7IGR1cmF0aW9uOiA1MDAwIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gZGlzcGxheSBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIgdGhhdCB0aGUgY29tcGFueSBjb3VsZCBub3QgYmUgc3dpdGNoZWQuXG4gICAgICAgICAgICAgICAgdGhpcy5fc25hY2tiYXIub3BlbignQ29tcGFueSBjb3VsZCBub3QgYmUgc3dpdGNoZWQuIFBsZWFzZSB0cnkgYWdhaW4gb3IgY29udGFjdCBzdXBwb3J0LicsICdPSycsIHsgZHVyYXRpb246IDUwMDAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gZGlzcGxheSBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIgdGhhdCB0aGUgY29tcGFueSBjb3VsZCBub3QgYmUgc3dpdGNoZWQuXG4gICAgICAgICAgICB0aGlzLl9zbmFja2Jhci5vcGVuKCdDb21wYW55IGNvdWxkIG5vdCBiZSBzd2l0Y2hlZC4gUGxlYXNlIHRyeSBhZ2FpbiBvciBjb250YWN0IHN1cHBvcnQuJywgJ09LJywgeyBkdXJhdGlvbjogNTAwMCB9KVxuICAgICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0Q3VycmVudENvbXBhbnlJbmZvKCk6YW55IHtcbiAgICB0aGlzLmN1cnJlbnRDb21wYW55ID0gdGhpcy51c2VyQ29tcGFuaWVzLmZpbmQoKGNvbXBhbnk6IGFueSkgPT4gY29tcGFueS5jb21wYW55S2V5ID09PSB0aGlzLnVzZXJBdXRoRGF0YS5sYXN0QWNjZXNzZWRDb21wYW55S2V5KTtcbiAgICBpZih0aGlzLmN1cnJlbnRDb21wYW55KSB7XG4gICAgICBjb25zdCBjb21wYW55ID0gdGhpcy5jdXJyZW50Q29tcGFueT8ubmFtZT8uc3BsaXQoJyAnKVswXTtcbiAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAnaGVhZGVyLScgKyB0aGlzLl9sb3dlckNhc2VQaXBlPy50cmFuc2Zvcm0oY29tcGFueSk7XG4gICAgICB0aGlzLmhlYWRlckNsYXNzID0gJ2hlYWRlci0nICsgdGhpcy5fdGl0bGVDYXNlcGlwZT8udHJhbnNmb3JtKGNvbXBhbnkpO1xuICAgICAgdGhpcy51c2VyQ29tcGFueUxvZ28gPSAodGhpcy5jdXJyZW50Q29tcGFueT8uY29tcGFueUxvZ29VcmwpID8gdGhpcy5jdXJyZW50Q29tcGFueT8uY29tcGFueUxvZ29VcmwgOiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRDb21wYW55ID8gdGhpcy5jdXJyZW50Q29tcGFueSA6IG51bGw7XG4gIH1cblxuICBzZXRDdXJyZW50QXBwTG9nbygpIHtcbiAgICBjb25zdCBjdXJyZW50QXBwID0gdGhpcy5lbmFibGVkQXBwbGljYXRpb25zPy5maW5kKGFwcCA9PiBhcHAubmFtZSA9PT0gdGhpcy5hcHBOYW1lKTtcbiAgICB0aGlzLmN1cnJlbnRBcHAgPSBjdXJyZW50QXBwO1xuXG4gICAgaWYgKGN1cnJlbnRBcHApIHtcbiAgICAgIHN3aXRjaCAoY3VycmVudEFwcD8ubmFtZSkge1xuICAgICAgICBjYXNlIFBST0ZFVF9BUFBTLmFwcHJhaXNhbF9tYW5hZ2VtZW50OlxuICAgICAgICAgIHRoaXMuY3VycmVudEFwcExvZ28gPSBpbWFnZURhdGFVcmwucHJvZmV0T3JkZXJzTG9nbztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBQUk9GRVRfQVBQUy5hcHByYWlzYWxfdmFsdWF0aW9uOlxuICAgICAgICAgIHRoaXMuY3VycmVudEFwcExvZ28gPSBpbWFnZURhdGFVcmwucHJvZmV0VmFsdWF0aW9uTG9nbztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBQUk9GRVRfQVBQUy5hcHByYWlzYWxfcmV2aWV3OlxuICAgICAgICAgIHRoaXMuY3VycmVudEFwcExvZ28gPSBpbWFnZURhdGFVcmwucHJvZmV0UmV2aWV3TG9nbztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBQUk9GRVRfQVBQUy5wcm9mZXRfcG9ydGFsOlxuICAgICAgICAgIHRoaXMuY3VycmVudEFwcExvZ28gPSBpbWFnZURhdGFVcmwucHJvZmV0UG9ydGFsTG9nbztcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRBcHBMb2dvID0gaW1hZ2VEYXRhVXJsLnByb2ZldFBvcnRhbExvZ287XG4gICAgfVxuICB9XG4gIHRvZ2dsZU1lbnUobWVudTpzdHJpbmcpIHtcbiAgICAobWVudSA9PT0gJ2FwcHMnKSA/ICh0aGlzLmlzQXBwc01lbnVPcGVuID0gIXRoaXMuaXNBcHBzTWVudU9wZW4pIDogbnVsbDtcbiAgICAobWVudSA9PT0gJ3Byb2ZpbGUnKSA/IHRoaXMuaXNQcm9maWxlTWVudU9wZW4gPSAhdGhpcy5pc1Byb2ZpbGVNZW51T3BlbiA6IG51bGw7XG4gIH1cblxufVxuIiwiPG1hdC10b29sYmFyIGNka01lbnVCYXIgY29sb3I9XCJwcmltYXJ5XCIgW25nQ2xhc3NdPVwiaGVhZGVyQ2xhc3NcIiBjbGFzcz1cImhlYWRlci13cmFwcGVyIGNvbW1vbl9oZWFkZXIgc2hhZG93LXNtXCI+XG4gICAgPCEtLSBNYWluIG5hdiBidXR0b24gYW5kIG5hdmlnYXRpb24gbGlua3MgLS0+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gIGNvbG9yPVwidGhlbWUtd2hpdGVcIiAoY2xpY2spPVwibWVudUFjdGlvbigpXCIgY2xhc3M9XCJwbXgtYnV0dG9uIHBteC1tZW51LWJ1dHRvbiBvcmRlcnMtbWVudSBpY29uLWJ0biBtcy0wIG1lLTNcIlxuICAgICAgICBhcmlhLWxhYmVsPVwibWFpbiBtZW51XCIgdGFiaW5kZXg9XCIwXCIgbWF0VG9vbHRpcD1cIk1haW4gbWVudVwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImJlbG93XCJcbiAgICAgICAgbWF0VG9vbHRpcENsYXNzPVwicG9jLWhlYWRlci10b29sdGlwXCI+PG1hdC1pY29uPm1lbnU8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgIDxhIGNsYXNzPVwibmF2YmFyLWJyYW5kIG1lLWF1dG9cIiBocmVmPVwiI1wiPlxuICAgICAgICA8aW1nICpuZ0lmPVwiY3VycmVudEFwcExvZ29cIiBbc3JjXT1cInNhbml0aXplVXJsKGN1cnJlbnRBcHBMb2dvKVwiIGFsdD1cIkFwcCBMb2dvXCIgY2xhc3M9XCJhcHAtbG9nb1wiPlxuICAgIDwvYT5cbiAgICBcbiAgICA8IS0tIEFwcHMgYnV0dG9uIGFuZCBtZW51IGl0ZW1zIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCIoYXBwTGlzdC5sZW5ndGggPiAwKVwiIGNvbG9yPVwidGhlbWUtd2hpdGVcIlxuICAgICAgICBjbGFzcz1cInBteC1idXR0b24gcG14LW1lbnUtYnV0dG9uIGljb24tYnRuIGJ0bi1zd2l0Y2gtYXBwcyBtcy0xIG1lLTFcIiBbY2xhc3MubWVudS1vcGVuZWRdPVwiaXNBcHBzTWVudU9wZW4gPT0gdHJ1ZVwiXG4gICAgICAgIChtZW51T3BlbmVkKT1cInRvZ2dsZU1lbnUoJ2FwcHMnKVwiIChtZW51Q2xvc2VkKT1cInRvZ2dsZU1lbnUoJ2FwcHMnKVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJhcHBzXCJcbiAgICAgICAgbWF0VG9vbHRpcD1cIlN3aXRjaCBhcHBsaWNhdGlvblwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImJlbG93XCIgYXJpYS1sYWJlbD1cImFwcHMgbWVudVwiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uLWFycm93LWRvd25cIj5hcHBzPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8bWF0LW1lbnUgI2FwcHM9XCJtYXRNZW51XCIgY2xhc3M9XCJhY2NvdW50c19kcnBtZW51IHBteC1tZW51LWdyb3VwIGhlYWRlci1kcm9wZG93bi1hcHBzXCIgaGFzQmFja2Ryb3A9XCJ0cnVlXCIgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb3BvdmVyLWNvbnRlbnQgc2hvdy1tZW51XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wb3Zlci1oZWFkZXJcIj48bWF0LWljb24gY2xhc3M9XCJtZS0yXCI+QXBwczwvbWF0LWljb24+PGgzIGNsYXNzPVwicG9wb3Zlci10aXRsZVwiPlN3aXRjaCBBcHBsaWNhdGlvbjwvaDM+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wb3Zlci1ib2R5XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcG92ZXItY29udGVudC10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cImFwcExpc3Q/Lmxlbmd0aCA9PSAxO2Vsc2UgYXBwc1RpdGxlXCI+RW5hYmxlZCBBcHBsaWNhdGlvbjwvcD5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNhcHBzVGl0bGU+PHA+RW5hYmxlZCBBcHBsaWNhdGlvbnM8L3A+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8dWwgY2RrTWVudSBjbGFzcz1cImxpc3QtZ3JvdXAgbGlzdC1hcHBzLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaSBjZGtNZW51SXRlbSBjbGFzcz1cImxpc3QtaXRlbSBsaXN0LWFwcFwiICpuZ0Zvcj1cImxldCBhcHAgb2YgYXBwTGlzdDtsZXQgaSA9IGluZGV4XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCIoYXBwPy5hY3RpdmUpID8gJ2FwcC1hY3RpdmUnIDogJydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBjbGFzcz1cInBteC1idXR0b24gbGlzdC1idXR0b25cIiAoY2xpY2spPVwiYXBwUmVkaXJlY3QoYXBwKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcHAtaWNvbi13cmFwcGVyXCI+PGltZyBbc3JjXT1cInNhbml0aXplVXJsKGltYWdlRGF0YVVybHMucHJvZmV0VGh1bWJuYWlsIClcIiBjbGFzcz1cImFwcC1pY29uXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsaXN0LXRleHQgbWUtYXV0b1wiPnt7IGFwcD8ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJhY3RpdmUtbGFiZWxcIiAqbmdJZj1cIihhcHA/LmFjdGl2ZSlcIj5BY3RpdmU8L3NtYWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImhvdmVyLWxhYmVsIHRvb2x0aXAtbGFiZWxcIiAqbmdJZj1cIiEoYXBwPy5hY3RpdmUpXCI+Q2xpY2sgdG8gc3dpdGNoIGFwcDwvc21hbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbWF0LW1lbnU+XG4gICAgXG4gICAgPHNwYW4gY2xhc3M9XCJ2ciB2ci1ibHVyeVwiPjwvc3Bhbj5cbiAgICA8IS0tIFByb2ZpbGUgYnV0dG9uIGFuZCBwcm9maWxlIGRyb3Bkb3duIGxpbmtzIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXBcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiQnV0dG9uIGdyb3VwIHdpdGggcHJvZmlsZSBpbmZvXCIgW25nQ2xhc3NdPVwiKCgoY3VycmVudENvbXBhbnk/LnN1YkRvbWFpbikgJiYgdXNlckNvbXBhbnlMb2dvKSA/ICdicmFuZGVkLWdyb3VwLXRydWUnIDogJ2JyYW5kZWQtZ3JvdXAtZmFsc2UnKSArICcgJyArIChpc1Byb2ZpbGVNZW51T3BlbiA/ICdidG4tZ3JvdXAtY2xpY2tlZCcgOiAnJylcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInBteC1idXR0b24gcG14LW1lbnUtYnV0dG9uIHByb2ZpbGUtYnV0dG9uXCIgbWF0LWJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxuICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCIgKG1lbnVPcGVuZWQpPVwidG9nZ2xlTWVudSgncHJvZmlsZScpXCIgKG1lbnVDbG9zZWQpPVwidG9nZ2xlTWVudSgncHJvZmlsZScpXCIgW25nQ2xhc3NdPVwiY3VycmVudENvbXBhbnk/LnN1YkRvbWFpbiA/ICdicmFuZGVkLWJ1dHRvbi10cnVlJyA6ICdicmFuZGVkLWJ1dHRvbi1mYWxzZSdcIiBtYXRUb29sdGlwPVwiUHJvZmlsZSBJbmZvXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYmVsb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9maWxlLWlubmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJyYW5kLWxvZ28gYWxpZ24tc2VsZi1jZW50ZXJcIiAqbmdJZj1cIigoY3VycmVudENvbXBhbnk/LnN1YkRvbWFpbikgJiYgdXNlckNvbXBhbnlMb2dvKVwiIFtuZ0NsYXNzXT1cInVzZXJDb21wYW55TG9nbyA/ICdicmFuZGVkLWxvZ28tdHJ1ZScgOiAnYnJhbmRlZC1sb2dvLWZhbHNlJ1wiIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZC1pbWFnZSc6ICd1cmwoJyArIHVzZXJDb21wYW55TG9nbyArICcpJ31cIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJ1c2VySW1hZ2VMaW5rO2Vsc2UgZGVmYXVsdEF2YXRhclwiIFtzcmNdPVwic2FuaXRpemVVcmwodXNlckltYWdlTGluaylcIiBjbGFzcz1cImF2YXRhci1pbWFnZVwiIGFsdD1cIkF2YXRhclwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRBdmF0YXI+PGltZyBbc3JjXT1cInNhbml0aXplVXJsKGltYWdlRGF0YVVybHMuZGVmYXVsdFVzZXJJbWFnZSlcIiBjbGFzcz1cImF2YXRhci1kZWZhdWx0XCIgYWx0PVwicHJvZmlsZSBwaWNcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cImFjY291bnRzX2RycG1lbnUgcG14LW1lbnUtZ3JvdXAgaGVhZGVyLWRyb3Bkb3duLXByb2ZpbGVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvcG92ZXItY29udGVudCBzaG93LW1lbnVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3BvdmVyLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3BvdmVyLXVzZXItdG9wXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInVzZXJJbWFnZUxpbms7ZWxzZSBkZWZhdWx0TGFyZ2VBdmF0YXJcIiBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtaW1hZ2UnOiAndXJsKCcgKyB1c2VySW1hZ2VMaW5rICsgJyknfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdmF0YXItaWNvblwiIGFsdD1cIkF2YXRhciBpY29uXCI+Jm5ic3A7PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRMYXJnZUF2YXRhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZC1pbWFnZSc6ICd1cmwoJyArIGltYWdlRGF0YVVybHMuZGVmYXVsdFVzZXJJbWFnZSArICcpJ31cIiBjbGFzcz1cImF2YXRhci1pY29uIGRlZmF1bHQtYXZhdGFyXCIgYWx0PVwiQXZhdGFyIGljb25cIj4mbmJzcDs8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1kYXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJwcm9maWxlLW5hbWVcIj48c3BhbiAqbmdJZj1cInVzZXJBdXRoRGF0YVwiPnt7IHVzZXJBdXRoRGF0YT8uZmlyc3ROYW1lIH19IHt7IHVzZXJBdXRoRGF0YT8ubGFzdE5hbWUgfX08L3NwYW4+PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwicG14LWJ1dHRvbiBidG4gYnRuLXNtYWxsIHZpZXctcHJvZmlsZSBtcy0wXCIgKGNsaWNrKT1cInByb2ZpbGUoKVwiPlZpZXcgUHJvZmlsZTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcG92ZXItYm9keVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3BvdmVyLWNvbnRlbnQtdGl0bGVcIj48cD5PdmVydmlldzwvcD48L2Rpdj5cbiAgICAgICAgICAgICAgICA8dWwgY2RrTWVudSBjbGFzcz1cImxpc3QtZ3JvdXAgbGlzdC1vdmVydmlld1wiICpuZ0lmPVwiY3VycmVudENvbXBhbnlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpIGNka01lbnVJdGVtIGNsYXNzPVwibGlzdC1pdGVtXCIgKm5nSWY9XCJ1c2VyQXV0aERhdGE/LmVtYWlsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBtYXQtbWVudS1pdGVtIGNsYXNzPVwibGlzdC10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibGlzdC1pY29uXCI+bWFpbDwvbWF0LWljb24+PHNwYW4gY2xhc3M9XCJ0aXRsZS1jYXNlIG1lLWF1dG9cIj57eyB1c2VyQXV0aERhdGE/LmVtYWlsIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGkgY2RrTWVudUl0ZW0gY2xhc3M9XCJsaXN0LWl0ZW0gZC1ub25lXCIgKm5nSWY9XCJ1c2VyQXV0aERhdGE/LmNvbnRhY3RQaG9uZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgbWF0LW1lbnUtaXRlbSBjbGFzcz1cImxpc3QtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImxpc3QtaWNvblwiPmNhbGw8L21hdC1pY29uPjxzcGFuIGNsYXNzPVwidGl0bGUtY2FzZSBtZS1hdXRvXCI+e3sgdXNlckF1dGhEYXRhPy5jb250YWN0UGhvbmUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDxsaSBjZGtNZW51SXRlbSBjbGFzcz1cImxpc3QtaXRlbVwiICpuZ0lmPVwidXNlckF1dGhEYXRhPy5hZGRyZXNzICE9PSBudWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBtYXQtbWVudS1pdGVtIGNsYXNzPVwibGlzdC10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwibGlzdC1pY29uXCI+bG9jYXRpb25fb248L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGUtY2FzZSBtZS1hdXRvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbD57eyB1c2VyQXV0aERhdGE/LmFkZHJlc3M/LnN0cmVldEFkZHJlc3MgfX0ge3sodXNlckF1dGhEYXRhPy5hZGRyZXNzPy5zdHJlZXRBZGRyZXNzMiAhPT0gbnVsbCkgPyB1c2VyQXV0aERhdGE/LmFkZHJlc3M/LnN0cmVldEFkZHJlc3MyIDogJycgfX08L3NtYWxsPjxiciAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyB1c2VyQXV0aERhdGE/LmFkZHJlc3M/LmNpdHkgfX0ge3t1c2VyQXV0aERhdGE/LmFkZHJlc3M/LnN0YXRlT3JQcm92aW5jZSB9fSB7e3VzZXJBdXRoRGF0YT8uYWRkcmVzcz8ucG9zdGFsQ29kZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDxociAvPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3BvdmVyLWNvbnRlbnQtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAgKm5nSWY9XCJ1c2VyQ29tcGFuaWVzPy5sZW5ndGggPT0gMTtlbHNlIGNvbXBhbmllc1RpdGxlXCI+Q29tcGFueTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjb21wYW5pZXNUaXRsZT48cD5Db21wYW5pZXM8L3A+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8dWwgY2RrTWVudSBjbGFzcz1cImxpc3QtZ3JvdXAgbGlzdC1ncm91cC1jb21wYW5pZXNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpIGNka01lbnVJdGVtIGNsYXNzPVwibGlzdC1pdGVtIGxpc3QtY29tcGFueVwiICpuZ0Zvcj1cImxldCBjb21wYW55IG9mIHVzZXJDb21wYW5pZXNcIiBbbmdDbGFzc109XCIoY29tcGFueT8uYWN0aXZlTm93KSA/ICdsaXN0LWFjdGl2ZSBjb21wYW55LWFjdGl2ZScgOiAnJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtbWVudS1pdGVtIGNsYXNzPVwicG14LWJ1dHRvbiBsaXN0LWJ1dHRvblwiIChjbGljayk9XCJzd2l0Y2hDb21wYW55KGNvbXBhbnkpXCIgW21hdFRvb2x0aXBdPVwiY29tcGFueT8ubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImJlbG93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiaWNvbi1jaGVja1wiPnt7IChjb21wYW55Py5hY3RpdmVOb3cpID8gJ2NoZWNrX2NpcmNsZScgOiAnc3dhcF92ZXJ0JyB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsaXN0LXRleHQgcG14LXRleHQtdHJ1bmNhdGUgbWUtYXV0b1wiPnt7IGNvbXBhbnk/Lm5hbWUgfCB0aXRsZWNhc2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiYWN0aXZlLWxhYmVsXCIgKm5nSWY9XCIoY29tcGFueT8uYWN0aXZlTm93KVwiPkFjdGl2ZTwvc21hbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDxociAvPlxuICAgICAgICAgICAgICAgIDx1bCBjZGtNZW51IGNsYXNzPVwibGlzdC1ncm91cCBsYXN0LWdyb3VwIG15LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpIGNka01lbnVJdGVtIGNsYXNzPVwibGlzdC1pdGVtIHB5LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBjbGFzcz1cInBteC1idXR0b24gbGlzdC1idXR0b24gYnRuLWxvZ291dFwiIChjbGljayk9XCJvbkxvZ291dENsaWNrKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+cG93ZXJfc2V0dGluZ3NfbmV3PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxpc3QtdGV4dFwiPkxvZ291dDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtbWVudT5cbjwvbWF0LXRvb2xiYXI+Il19
278
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXIvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi1oZWFkZXIvc3JjL2xpYi9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQWUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkgsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7Ozs7O0FBUXRELE1BQU0sT0FBTyxlQUFlO0lBNkIxQjtRQTNCQSxhQUFRLEdBQVcsRUFBRSxDQUFDO1FBR1osY0FBUyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDcEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFOUMsWUFBTyxHQUFlLEVBQUUsQ0FB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Q0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2pGLENBQUM7OzZHQTdRVSxlQUFlO2lHQUFmLGVBQWUscUtDbEI1QixzOFJBMEhjOzRGRHhHRCxlQUFlO2tCQU4zQixTQUFTOytCQUNFLFlBQVksaUJBR1AsaUJBQWlCLENBQUMsSUFBSTswRUFLNUIsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG93ZXJDYXNlUGlwZSwgVGl0bGVDYXNlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgaW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFRlbXBsYXRlUmVmLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U2lkZW5hdiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NpZGVuYXYnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgZ2V0Q3VycmVudFVzZXIsIHNpZ25PdXQgfSBmcm9tIFwiYXdzLWFtcGxpZnkvYXV0aFwiO1xuaW1wb3J0IHsgZm9ya0pvaW4gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbW1vbkhlYWRlclNlcnZpY2UgfSBmcm9tICcuLi9jb21tb24taGVhZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUFJPRkVUX0FQUFMgfSBmcm9tICcuLi91dGlscy9hcHBzLmVudW0nO1xuaW1wb3J0IHsgaW1hZ2VEYXRhVXJsIH0gZnJvbSAnLi4vdXRpbHMvaW1hZ2UuZGF0YXVybCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaGVhZGVyLmNvbXBvbmVudC5jc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHVzZXJuYW1lOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgdGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBhcHBOYW1lITogUFJPRkVUX0FQUFM7XG4gIEBPdXRwdXQoKSBtZW51RXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIGluZm9FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBzaWRlbmF2ITogTWF0U2lkZW5hdjtcbiAgYXBwTGlzdDogQXJyYXk8YW55PiA9IFtdO1xuICB1c2VyQ29tcGFuaWVzOiBhbnk7XG4gIGNvbXBhbnlQcm9maWxlOiBhbnk7XG4gIHBvcnRhbFVybDogc3RyaW5nID0gJyc7XG4gIHVzZXJBdXRoRGF0YTogYW55O1xuICB1c2VySW1hZ2VMaW5rOiBhbnk7XG4gIGhlYWRlckNsYXNzOiBzdHJpbmcgPSBcIlwiO1xuICBjdXJyZW50QXBwOiBhbnk7XG4gIGN1cnJlbnRBcHBMb2dvOiBzdHJpbmcgPSAnJztcbiAgY3VycmVudENvbXBhbnk6IGFueTtcbiAgdXNlckNvbXBhbnlMb2dvOiBhbnkgPSAnJztcbiAgZW5hYmxlZEFwcGxpY2F0aW9uczogQXJyYXk8YW55PiA9IFtdO1xuICBpbWFnZURhdGFVcmxzID0gaW1hZ2VEYXRhVXJsO1xuICBpc0FwcHNNZW51T3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICBpc1Byb2ZpbGVNZW51T3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9yb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgcHJpdmF0ZSBfc25hY2tiYXIgPSBpbmplY3QoTWF0U25hY2tCYXIpO1xuICBwcml2YXRlIF9zZXIgPSBpbmplY3QoQ29tbW9uSGVhZGVyU2VydmljZSk7XG4gIHByaXZhdGUgX2RvbVNhbml0aXplciA9IGluamVjdChEb21TYW5pdGl6ZXIpO1xuICBwcml2YXRlIF90aXRsZUNhc2VwaXBlID0gaW5qZWN0KFRpdGxlQ2FzZVBpcGUpO1xuICBwcml2YXRlIF9sb3dlckNhc2VQaXBlID0gaW5qZWN0KExvd2VyQ2FzZVBpcGUpO1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCkge1xuICAgIHRoaXMuZmV0Y2hDb21wYW55UHJvZmlsZSgpO1xuICAgIHRoaXMuX3Nlci5nZXRBcHBzKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICh2KSA9PiB7XG4gICAgICAgIHRoaXMucG9ydGFsVXJsID0gdj8uZGF0YT8ucG9ydGFsVXJsO1xuICAgICAgICBsZXQgZGF0YSA9IHtcbiAgICAgICAgICBjb21wYW55SW5mbzogdGhpcy5jb21wYW55UHJvZmlsZSxcbiAgICAgICAgICBwb3J0YWxVcmw6IHRoaXMucG9ydGFsVXJsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuaW5mb0V2ZW50LmVtaXQoZGF0YSk7XG4gICAgICAgIC8vIGxldCBjb25maWc6IGFueSA9IEF1dGguY29uZmlndXJlKCk7XG4gICAgICAgIC8vIGxldCBzaWdub3V0VXJsID0gYCR7dGhpcy5wb3J0YWxVcmx9L2xvZ2luYDtcbiAgICAgICAgLy8gY29uZmlnLm9hdXRoID0geyAuLi5jb25maWcub2F1dGgsIC4uLnsgXCJyZWRpcmVjdFNpZ25PdXRcIjogc2lnbm91dFVybCB9IH07XG4gICAgICAgIC8vIEFtcGxpZnkuY29uZmlndXJlKGNvbmZpZyk7XG4gICAgICAgIGlmICh2Py5kYXRhPy5hcHBsaWNhdGlvbnMgJiYgdi5kYXRhLmFwcGxpY2F0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgLy8gdGhpcy5mZXRjaENvbXBhbnlEYXRhKHYuZGF0YS5hcHBsaWNhdGlvbnMpO1xuICAgICAgICAgIHRoaXMuYXBwTGlzdCA9IFtdO1xuICAgICAgICAgIHRoaXMuZW5hYmxlZEFwcGxpY2F0aW9ucyA9IHYuZGF0YS5hcHBsaWNhdGlvbnM7XG5cbiAgICAgICAgICB2LmRhdGEuYXBwbGljYXRpb25zLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICBsZXQgY3VycmVudEFwcCA9IChlbGVtZW50Lm5hbWUgPT09IHRoaXMuYXBwTmFtZSk7XG5cbiAgICAgICAgICAgIHRoaXMuYXBwTGlzdC5wdXNoKHtcbiAgICAgICAgICAgICAgbmFtZTogZWxlbWVudC5kaXNwbGF5TmFtZSxcbiAgICAgICAgICAgICAgdmFsdWU6IGVsZW1lbnQsXG4gICAgICAgICAgICAgIGFwcFVybDogZWxlbWVudC5hcHBVcmwsXG4gICAgICAgICAgICAgIGFjdGl2ZTogY3VycmVudEFwcFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgbGV0IGFwcERhdGEgPSB7XG4gICAgICAgICAgICBlbmFibGVkQXBwczogdGhpcy5hcHBMaXN0XG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLmluZm9FdmVudC5lbWl0KGFwcERhdGEpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKGUpXG4gICAgICB9XG4gICAgfSk7XG4gICAgbGV0IHVzZXJJbmZvID0gYXdhaXQgZ2V0Q3VycmVudFVzZXIoKTtcbiAgICBpZiAodXNlckluZm8/LnVzZXJuYW1lKSB7XG4gICAgICBsZXQgdXNlckRldGFpbHMgPSB0aGlzLl9zZXIuZ2V0VXNlckRldGFpbHNCeUVtYWlsKHsgZW1haWw6IHVzZXJJbmZvLnVzZXJuYW1lIH0pO1xuICAgICAgbGV0IHVzZXJDb21wYW55SW5mbyA9IHRoaXMuX3Nlci5nZXRVc2VyQ29tcGFuaWVzKCk7XG4gICAgICBmb3JrSm9pbihbdXNlckRldGFpbHMsIHVzZXJDb21wYW55SW5mb10pLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXMpID0+IHtcbiAgICAgICAgICBpZiAocmVzICYmIHJlc1swXSkge1xuICAgICAgICAgICAgdGhpcy51c2VyQXV0aERhdGEgPSByZXNbMF07XG4gICAgICAgICAgICB0aGlzLnVzZXJuYW1lID0gdGhpcy51c2VyQXV0aERhdGEuZmlyc3ROYW1lO1xuICAgICAgICAgICAgaWYgKHRoaXMudXNlckF1dGhEYXRhPy5fbGlua3M/LnByb2ZpbGVJbWFnZT8uaHJlZikge1xuICAgICAgICAgICAgICB0aGlzLmdldFVzZXJQcm9maWxlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChyZXMgJiYgcmVzWzFdKSB7XG4gICAgICAgICAgICBpZiAocmVzWzFdICYmIHJlc1sxXS5kYXRhICYmIHJlc1sxXS5kYXRhLmNvbXBhbmllcykge1xuICAgICAgICAgICAgICB0aGlzLnVzZXJDb21wYW5pZXMgPSByZXNbMV0uZGF0YS5jb21wYW5pZXM7XG4gICAgICAgICAgICAgIGlmICh0aGlzLnVzZXJDb21wYW5pZXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGNvbSBvZiB0aGlzLnVzZXJDb21wYW5pZXMpIHtcbiAgICAgICAgICAgICAgICAgIGlmIChjb20uY29tcGFueUtleSA9PSB0aGlzLnVzZXJBdXRoRGF0YS5sYXN0QWNjZXNzZWRDb21wYW55S2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbS5hY3RpdmVOb3cgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuZ2V0Q3VycmVudENvbXBhbnlJbmZvKCk7XG4gICAgICAgICAgICB0aGlzLnNldEN1cnJlbnRBcHBMb2dvKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfVxuXG4gIG1lbnVBY3Rpb24oKSB7XG4gICAgdGhpcy5tZW51RXZlbnQuZW1pdCgpO1xuICB9XG5cbiAgZmV0Y2hDb21wYW55UHJvZmlsZSgpIHtcbiAgICBsZXQgcmVxID0ge1xuICAgICAgY29tcGFueU5hbWU6IGRvY3VtZW50LmxvY2F0aW9uLmhvc3Quc3BsaXQoJy4nKVswXVxuICAgIH07XG4gICAgdGhpcy5fc2VyLmZldGNoQ29tcGFueVByb2ZpbGUocmVxKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHYpID0+IHtcbiAgICAgICAgdGhpcy5jb21wYW55UHJvZmlsZSA9IHY7XG4gICAgICAgIGxldCBkYXRhID0ge1xuICAgICAgICAgIGNvbXBhbnlJbmZvOiB2LFxuICAgICAgICAgIHBvcnRhbFVybDogdGhpcy5wb3J0YWxVcmxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5pbmZvRXZlbnQuZW1pdChkYXRhKTtcbiAgICAgIH1cbiAgICB9KVxuICB9XG4gIGZldGNoQ29tcGFueURhdGEoYWxsQXBwczogQXJyYXk8YW55Pikge1xuICAgIHRoaXMuX3Nlci5nZXRDb21wYW55QXBwbGljYXRpb25zKCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6ICh2KSA9PiB7XG4gICAgICAgIGlmICh2Py5kYXRhPy5lbmFibGVkQXBwbGljYXRpb25zKSB7XG4gICAgICAgICAgdGhpcy5hcHBMaXN0ID0gW107XG4gICAgICAgICAgbGV0IGFwcEluZm8gPSBbXTtcbiAgICAgICAgICBsZXQgZmV0Y2hlZEFwcGxpY2F0aW9ucyA9IHYuZGF0YS5lbmFibGVkQXBwbGljYXRpb25zPy5zcGxpdCgnLCcpO1xuXG4gICAgICAgICAgaWYgKGZldGNoZWRBcHBsaWNhdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgZmV0Y2hlZEFwcGxpY2F0aW9ucy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgYXBwSW5mbyA9IGFsbEFwcHMuZmlsdGVyKGVsZSA9PiBlbGUubmFtZSA9PSBlbGVtZW50KTtcbiAgICAgICAgICAgICAgaWYgKGFwcEluZm8gJiYgYXBwSW5mby5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgaWYgKGFwcEluZm9bMF0ubmFtZSAhPSAnbWNhJykge1xuICAgICAgICAgICAgICAgICAgdGhpcy5hcHBMaXN0LnB1c2goe1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBhcHBJbmZvWzBdLmRpc3BsYXlOYW1lLFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZWxlbWVudCxcbiAgICAgICAgICAgICAgICAgICAgYXBwVXJsOiBhcHBJbmZvWzBdLmFwcFVybFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBzYW5pdGl6ZVVybCh1cmw6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLl9kb21TYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybCh1cmwpXG4gIH1cblxuXG5cbiAgZ2V0VXNlclByb2ZpbGUoKSB7XG4gICAgdGhpcy5fc2VyLm9idGFpbkRhdGFCeVVybCh0aGlzLnVzZXJBdXRoRGF0YS5fbGlua3MucHJvZmlsZUltYWdlLmhyZWYpLnN1YnNjcmliZShpbWcgPT4ge1xuICAgICAgaWYgKGltZz8ubG9jYXRpb25VcmwpIHtcbiAgICAgICAgdGhpcy51c2VySW1hZ2VMaW5rID0gaW1nLmxvY2F0aW9uVXJsID8gaW1nLmxvY2F0aW9uVXJsIDogbnVsbDtcbiAgICAgIH1cbiAgICB9KVxuICB9XG5cbiAgYXBwUmVkaXJlY3QoYXBwOiBhbnkpIHtcbiAgICBpZiAoIWFwcD8uYWN0aXZlKSB7XG4gICAgICAgd2luZG93Lm9wZW4oYXBwLmFwcFVybCwgXCJfc2VsZlwiKTsgXG4gICAgfVxuICB9XG4gIHByb2ZpbGUoKSB7XG4gICAgLy8gdGhpcy5mZXRjaFVzZXJEYXRhKCk7XG4gICAgaWYgKHRoaXMuX3Nlci5wb3J0YWxGcm9udGVuZFVybCkge1xuICAgICAgbGV0IHVybCA9IHRoaXMucG9ydGFsVXJsICsgJy9hcHAvcHJvZmlsZSc7XG4gICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvYXBwL3Byb2ZpbGUnKTtcbiAgICB9XG4gIH1cbiAgbG9hZFVzZXJNZXNzYWdlcygpIHtcbiAgICBpZiAodGhpcy51c2VyQXV0aERhdGEpIHtcbiAgICAgIHRoaXMuX3JvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvYXBwL3VzZXItaW5ib3gnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fc25hY2tiYXIub3BlbignTm8gbWVzc2FnZXMgcmVjZWl2ZWQgeWV0JywgJ09LJywgeyBkdXJhdGlvbjogNTAwMCB9KTtcbiAgICB9XG4gIH1cbiAgb25Mb2dvdXRDbGljaygpIHtcbiAgICBzaWduT3V0KHsgZ2xvYmFsOiB0cnVlLCBvYXV0aDogeyByZWRpcmVjdFVybDogdGhpcy5fc2VyLnNpZ25PdXRVcmwgfSB9KVxuICAgICAgLnRoZW4oZGF0YSA9PiBjb25zb2xlLmxvZyhkYXRhKSlcbiAgICAgIC5jYXRjaChlcnIgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhlcnIpXG4gICAgICAgIHNpZ25PdXQoeyBnbG9iYWw6IHRydWUsIG9hdXRoOiB7IHJlZGlyZWN0VXJsOiB0aGlzLl9zZXIuc2lnbk91dFVybCB9IH0pO1xuICAgICAgfSk7XG4gIH1cbiAgc3dpdGNoQ29tcGFueShjb21wYW55OiBhbnkpIHtcbiAgICAvLyBzd2l0Y2ggdGhlIHVzZXIgdG8gdGhlIHNlbGVjdGVjIGNvbXBhbnlcblxuICAgIC8vIEZpbmQgdGhlIGRvbWFpbiBpbmZvcm1hdGlvblxuICAgIGlmICghY29tcGFueS5hY3RpdmVOb3cpIHtcbiAgICAgICAgbGV0IGRvbWFpbkluZm8gPSB0aGlzLl9zZXIuZ2V0RG9tYWluSW5mbygpO1xuICAgICAgICBpZiAoZG9tYWluSW5mbykge1xuICAgICAgICAgICAgbGV0IHJlcTogYW55ID0geyBjb21wYW55S2V5OiBjb21wYW55LmNvbXBhbnlLZXksIGFwcE5hbWU6IGRvbWFpbkluZm8uYXBwQ29kZSB9O1xuICAgICAgICAgICAgdGhpcy5fc2VyLnVwZGF0ZVVzZXJDb21wYW55KHJlcSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgICAgICBuZXh0OiAocmVzcG9uc2U6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS50eXBlICYmIHJlc3BvbnNlLnR5cGUgPT0gXCJPS1wiKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwb25zZS5kYXRhLmFwcGxpY2F0aW9uVVJMKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB1cmwgPSByZXNwb25zZS5kYXRhLmFwcGxpY2F0aW9uVVJMO1xuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucmVwbGFjZSh1cmwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlZnJlc2ggdGhlIGN1cnJlbnQgcGFnZSB0byByZWxvYWQgdGhlIGNvbnRlbnRzIGJhc2VkIG9uIHRoZSBjdXJyZW50IGNvbXBhbnlcbiAgICAgICAgICAgICAgICAgICAgLy8gd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gZGlzcGxheSBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIgdGhhdCB0aGUgY29tcGFueSBjb3VsZCBub3QgYmUgc3dpdGNoZWQuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3NuYWNrYmFyLm9wZW4oJ0NvbXBhbnkgY291bGQgbm90IGJlIHN3aXRjaGVkLiBQbGVhc2UgdHJ5IGFnYWluIG9yIGNvbnRhY3Qgc3VwcG9ydC4nLCAnT0snLCB7IGR1cmF0aW9uOiA1MDAwIH0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyb3I6IChlKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gZGlzcGxheSBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIgdGhhdCB0aGUgY29tcGFueSBjb3VsZCBub3QgYmUgc3dpdGNoZWQuXG4gICAgICAgICAgICAgICAgdGhpcy5fc25hY2tiYXIub3BlbignQ29tcGFueSBjb3VsZCBub3QgYmUgc3dpdGNoZWQuIFBsZWFzZSB0cnkgYWdhaW4gb3IgY29udGFjdCBzdXBwb3J0LicsICdPSycsIHsgZHVyYXRpb246IDUwMDAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gZGlzcGxheSBhIG1lc3NhZ2UgdG8gdGhlIHVzZXIgdGhhdCB0aGUgY29tcGFueSBjb3VsZCBub3QgYmUgc3dpdGNoZWQuXG4gICAgICAgICAgICB0aGlzLl9zbmFja2Jhci5vcGVuKCdDb21wYW55IGNvdWxkIG5vdCBiZSBzd2l0Y2hlZC4gUGxlYXNlIHRyeSBhZ2FpbiBvciBjb250YWN0IHN1cHBvcnQuJywgJ09LJywgeyBkdXJhdGlvbjogNTAwMCB9KVxuICAgICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0Q3VycmVudENvbXBhbnlJbmZvKCk6YW55IHtcbiAgICB0aGlzLmN1cnJlbnRDb21wYW55ID0gdGhpcy51c2VyQ29tcGFuaWVzLmZpbmQoKGNvbXBhbnk6IGFueSkgPT4gY29tcGFueS5jb21wYW55S2V5ID09PSB0aGlzLnVzZXJBdXRoRGF0YS5sYXN0QWNjZXNzZWRDb21wYW55S2V5KTtcbiAgICBpZih0aGlzLmN1cnJlbnRDb21wYW55KSB7XG4gICAgICBjb25zdCBjb21wYW55ID0gdGhpcy5jdXJyZW50Q29tcGFueT8ubmFtZT8uc3BsaXQoJyAnKVswXTtcbiAgICAgIHRoaXMuaGVhZGVyQ2xhc3MgPSAnaGVhZGVyLScgKyB0aGlzLl9sb3dlckNhc2VQaXBlPy50cmFuc2Zvcm0oY29tcGFueSk7XG4gICAgICB0aGlzLmhlYWRlckNsYXNzID0gJ2hlYWRlci0nICsgdGhpcy5fdGl0bGVDYXNlcGlwZT8udHJhbnNmb3JtKGNvbXBhbnkpO1xuICAgICAgdGhpcy51c2VyQ29tcGFueUxvZ28gPSAodGhpcy5jdXJyZW50Q29tcGFueT8uY29tcGFueUxvZ29VcmwpID8gdGhpcy5jdXJyZW50Q29tcGFueT8uY29tcGFueUxvZ29VcmwgOiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRDb21wYW55ID8gdGhpcy5jdXJyZW50Q29tcGFueSA6IG51bGw7XG4gIH1cblxuICBzZXRDdXJyZW50QXBwTG9nbygpIHtcbiAgICBjb25zdCBjdXJyZW50QXBwID0gdGhpcy5lbmFibGVkQXBwbGljYXRpb25zPy5maW5kKGFwcCA9PiBhcHAubmFtZSA9PT0gdGhpcy5hcHBOYW1lKTtcbiAgICB0aGlzLmN1cnJlbnRBcHAgPSBjdXJyZW50QXBwO1xuXG4gICAgaWYgKGN1cnJlbnRBcHApIHtcbiAgICAgIHN3aXRjaCAoY3VycmVudEFwcD8ubmFtZSkge1xuICAgICAgICBjYXNlIFBST0ZFVF9BUFBTLmFwcHJhaXNhbF9tYW5hZ2VtZW50OlxuICAgICAgICAgIHRoaXMuY3VycmVudEFwcExvZ28gPSBpbWFnZURhdGFVcmwucHJvZmV0T3JkZXJzTG9nbztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBQUk9GRVRfQVBQUy5hcHByYWlzYWxfdmFsdWF0aW9uOlxuICAgICAgICAgIHRoaXMuY3VycmVudEFwcExvZ28gPSBpbWFnZURhdGFVcmwucHJvZmV0VmFsdWF0aW9uTG9nbztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBQUk9GRVRfQVBQUy5hcHByYWlzYWxfcmV2aWV3OlxuICAgICAgICAgIHRoaXMuY3VycmVudEFwcExvZ28gPSBpbWFnZURhdGFVcmwucHJvZmV0UmV2aWV3TG9nbztcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBQUk9GRVRfQVBQUy5wcm9mZXRfcG9ydGFsOlxuICAgICAgICAgIHRoaXMuY3VycmVudEFwcExvZ28gPSBpbWFnZURhdGFVcmwucHJvZmV0UG9ydGFsTG9nbztcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRBcHBMb2dvID0gaW1hZ2VEYXRhVXJsLnByb2ZldFBvcnRhbExvZ287XG4gICAgfVxuICB9XG4gIHRvZ2dsZU1lbnUobWVudTpzdHJpbmcpIHtcbiAgICAobWVudSA9PT0gJ2FwcHMnKSA/ICh0aGlzLmlzQXBwc01lbnVPcGVuID0gIXRoaXMuaXNBcHBzTWVudU9wZW4pIDogbnVsbDtcbiAgICAobWVudSA9PT0gJ3Byb2ZpbGUnKSA/IHRoaXMuaXNQcm9maWxlTWVudU9wZW4gPSAhdGhpcy5pc1Byb2ZpbGVNZW51T3BlbiA6IG51bGw7XG4gIH1cblxufVxuIiwiPG1hdC10b29sYmFyIGNka01lbnVCYXIgY29sb3I9XCJwcmltYXJ5XCIgW25nQ2xhc3NdPVwiaGVhZGVyQ2xhc3NcIiBjbGFzcz1cImhlYWRlci13cmFwcGVyIGNvbW1vbl9oZWFkZXIgc2hhZG93LXNtXCI+XG4gICAgPCEtLSBNYWluIG5hdiBidXR0b24gYW5kIG5hdmlnYXRpb24gbGlua3MgLS0+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gIGNvbG9yPVwidGhlbWUtd2hpdGVcIiAoY2xpY2spPVwibWVudUFjdGlvbigpXCIgY2xhc3M9XCJwbXgtYnV0dG9uIHBteC1tZW51LWJ1dHRvbiBvcmRlcnMtbWVudSBpY29uLWJ0biBtcy0wIG1lLTNcIlxuICAgICAgICBhcmlhLWxhYmVsPVwibWFpbiBtZW51XCIgdGFiaW5kZXg9XCIwXCIgbWF0VG9vbHRpcD1cIk1haW4gbWVudVwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImJlbG93XCJcbiAgICAgICAgbWF0VG9vbHRpcENsYXNzPVwicG9jLWhlYWRlci10b29sdGlwXCI+PG1hdC1pY29uPm1lbnU8L21hdC1pY29uPjwvYnV0dG9uPlxuICAgIDxhIGNsYXNzPVwibmF2YmFyLWJyYW5kIG1lLWF1dG9cIiBocmVmPVwiI1wiPlxuICAgICAgICA8aW1nICpuZ0lmPVwiY3VycmVudEFwcExvZ29cIiBbc3JjXT1cInNhbml0aXplVXJsKGN1cnJlbnRBcHBMb2dvKVwiIGFsdD1cIkFwcCBMb2dvXCIgY2xhc3M9XCJhcHAtbG9nb1wiPlxuICAgIDwvYT5cbiAgICBcbiAgICA8IS0tIEFwcHMgYnV0dG9uIGFuZCBtZW51IGl0ZW1zIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCIoYXBwTGlzdC5sZW5ndGggPiAwKVwiIGNvbG9yPVwidGhlbWUtd2hpdGVcIlxuICAgICAgICBjbGFzcz1cInBteC1idXR0b24gcG14LW1lbnUtYnV0dG9uIGljb24tYnRuIGJ0bi1zd2l0Y2gtYXBwcyBtcy0xIG1lLTFcIiBbY2xhc3MubWVudS1vcGVuZWRdPVwiaXNBcHBzTWVudU9wZW4gPT0gdHJ1ZVwiXG4gICAgICAgIChtZW51T3BlbmVkKT1cInRvZ2dsZU1lbnUoJ2FwcHMnKVwiIChtZW51Q2xvc2VkKT1cInRvZ2dsZU1lbnUoJ2FwcHMnKVwiIFttYXRNZW51VHJpZ2dlckZvcl09XCJhcHBzXCJcbiAgICAgICAgbWF0VG9vbHRpcD1cIlN3aXRjaCBhcHBsaWNhdGlvblwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImJlbG93XCIgYXJpYS1sYWJlbD1cImFwcHMgbWVudVwiXG4gICAgICAgIHRhYmluZGV4PVwiMFwiPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJpY29uLWFycm93LWRvd25cIj5hcHBzPC9tYXQtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8bWF0LW1lbnUgI2FwcHM9XCJtYXRNZW51XCIgY2xhc3M9XCJhY2NvdW50c19kcnBtZW51IHBteC1tZW51LWdyb3VwIGhlYWRlci1kcm9wZG93bi1hcHBzXCIgaGFzQmFja2Ryb3A9XCJ0cnVlXCIgeFBvc2l0aW9uPVwiYmVmb3JlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb3BvdmVyLWNvbnRlbnQgc2hvdy1tZW51XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wb3Zlci1oZWFkZXJcIj48bWF0LWljb24gY2xhc3M9XCJtZS0yXCI+QXBwczwvbWF0LWljb24+PGgzIGNsYXNzPVwicG9wb3Zlci10aXRsZVwiPlN3aXRjaCBBcHBsaWNhdGlvbjwvaDM+PC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wb3Zlci1ib2R5XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcG92ZXItY29udGVudC10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8cCAqbmdJZj1cImFwcExpc3Q/Lmxlbmd0aCA9PSAxO2Vsc2UgYXBwc1RpdGxlXCI+RW5hYmxlZCBBcHBsaWNhdGlvbjwvcD5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNhcHBzVGl0bGU+PHA+RW5hYmxlZCBBcHBsaWNhdGlvbnM8L3A+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8dWwgY2RrTWVudSBjbGFzcz1cImxpc3QtZ3JvdXAgbGlzdC1hcHBzLWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaSBjZGtNZW51SXRlbSBjbGFzcz1cImxpc3QtaXRlbSBsaXN0LWFwcFwiICpuZ0Zvcj1cImxldCBhcHAgb2YgYXBwTGlzdDtsZXQgaSA9IGluZGV4XCIgXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCIoYXBwPy5hY3RpdmUpID8gJ2FwcC1hY3RpdmUnIDogJydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBjbGFzcz1cInBteC1idXR0b24gbGlzdC1idXR0b25cIiAoY2xpY2spPVwiYXBwUmVkaXJlY3QoYXBwKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhcHAtaWNvbi13cmFwcGVyXCI+PGltZyBbc3JjXT1cInNhbml0aXplVXJsKGltYWdlRGF0YVVybHMucHJvZmV0VGh1bWJuYWlsIClcIiBjbGFzcz1cImFwcC1pY29uXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsaXN0LXRleHQgbWUtYXV0b1wiPnt7IGFwcD8ubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9XCJhY3RpdmUtbGFiZWxcIiAqbmdJZj1cIihhcHA/LmFjdGl2ZSlcIj5BY3RpdmU8L3NtYWxsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz1cImhvdmVyLWxhYmVsIHRvb2x0aXAtbGFiZWxcIiAqbmdJZj1cIiEoYXBwPy5hY3RpdmUpXCI+Q2xpY2sgdG8gc3dpdGNoIGFwcDwvc21hbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbWF0LW1lbnU+XG4gICAgXG4gICAgPHNwYW4gY2xhc3M9XCJ2ciB2ci1ibHVyeVwiPjwvc3Bhbj5cbiAgICA8IS0tIFByb2ZpbGUgYnV0dG9uIGFuZCBwcm9maWxlIGRyb3Bkb3duIGxpbmtzIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXBcIiByb2xlPVwiZ3JvdXBcIiBhcmlhLWxhYmVsPVwiQnV0dG9uIGdyb3VwIHdpdGggcHJvZmlsZSBpbmZvXCIgW25nQ2xhc3NdPVwiKCgoY3VycmVudENvbXBhbnk/LnN1YkRvbWFpbikgJiYgdXNlckNvbXBhbnlMb2dvKSA/ICdicmFuZGVkLWdyb3VwLXRydWUnIDogJ2JyYW5kZWQtZ3JvdXAtZmFsc2UnKSArICcgJyArIChpc1Byb2ZpbGVNZW51T3BlbiA/ICdidG4tZ3JvdXAtY2xpY2tlZCcgOiAnJylcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInBteC1idXR0b24gcG14LW1lbnUtYnV0dG9uIHByb2ZpbGUtYnV0dG9uXCIgbWF0LWJ1dHRvbiBtYXQtc3Ryb2tlZC1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxuICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCIgKG1lbnVPcGVuZWQpPVwidG9nZ2xlTWVudSgncHJvZmlsZScpXCIgKG1lbnVDbG9zZWQpPVwidG9nZ2xlTWVudSgncHJvZmlsZScpXCIgW25nQ2xhc3NdPVwiY3VycmVudENvbXBhbnk/LnN1YkRvbWFpbiA/ICdicmFuZGVkLWJ1dHRvbi10cnVlJyA6ICdicmFuZGVkLWJ1dHRvbi1mYWxzZSdcIiBtYXRUb29sdGlwPVwiUHJvZmlsZSBJbmZvXCIgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYmVsb3dcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9maWxlLWlubmVyXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJyYW5kLWxvZ28gYWxpZ24tc2VsZi1jZW50ZXJcIiAqbmdJZj1cIigoY3VycmVudENvbXBhbnk/LnN1YkRvbWFpbikgJiYgdXNlckNvbXBhbnlMb2dvKVwiIFtuZ0NsYXNzXT1cInVzZXJDb21wYW55TG9nbyA/ICdicmFuZGVkLWxvZ28tdHJ1ZScgOiAnYnJhbmRlZC1sb2dvLWZhbHNlJ1wiIFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZC1pbWFnZSc6ICd1cmwoJyArIHVzZXJDb21wYW55TG9nbyArICcpJ31cIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJ1c2VySW1hZ2VMaW5rO2Vsc2UgZGVmYXVsdEF2YXRhclwiIFtzcmNdPVwic2FuaXRpemVVcmwodXNlckltYWdlTGluaylcIiBjbGFzcz1cImF2YXRhci1pbWFnZVwiIGFsdD1cIkF2YXRhclwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRBdmF0YXI+PGltZyBbc3JjXT1cInNhbml0aXplVXJsKGltYWdlRGF0YVVybHMuZGVmYXVsdFVzZXJJbWFnZSlcIiBjbGFzcz1cImF2YXRhci1kZWZhdWx0XCIgYWx0PVwicHJvZmlsZSBwaWNcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIiBjbGFzcz1cImFjY291bnRzX2RycG1lbnUgcG14LW1lbnUtZ3JvdXAgaGVhZGVyLWRyb3Bkb3duLXByb2ZpbGVcIiB4UG9zaXRpb249XCJiZWZvcmVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvcG92ZXItY29udGVudCBzaG93LW1lbnVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3BvdmVyLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3BvdmVyLXVzZXItdG9wXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXItd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInVzZXJJbWFnZUxpbms7ZWxzZSBkZWZhdWx0TGFyZ2VBdmF0YXJcIiBbbmdTdHlsZV09XCJ7J2JhY2tncm91bmQtaW1hZ2UnOiAndXJsKCcgKyB1c2VySW1hZ2VMaW5rICsgJyknfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhdmF0YXItaWNvblwiIGFsdD1cIkF2YXRhciBpY29uXCI+Jm5ic3A7PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRMYXJnZUF2YXRhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtuZ1N0eWxlXT1cInsnYmFja2dyb3VuZC1pbWFnZSc6ICd1cmwoJyArIGltYWdlRGF0YVVybHMuZGVmYXVsdFVzZXJJbWFnZSArICcpJ31cIiBjbGFzcz1cImF2YXRhci1pY29uIGRlZmF1bHQtYXZhdGFyXCIgYWx0PVwiQXZhdGFyIGljb25cIj4mbmJzcDs8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidXNlci1kYXRhXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9XCJwcm9maWxlLW5hbWVcIj48c3BhbiAqbmdJZj1cInVzZXJBdXRoRGF0YVwiPnt7IHVzZXJBdXRoRGF0YT8uZmlyc3ROYW1lIH19IHt7IHVzZXJBdXRoRGF0YT8ubGFzdE5hbWUgfX08L3NwYW4+PC9oMz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIGNsYXNzPVwicG14LWJ1dHRvbiBidG4gYnRuLXNtYWxsIHZpZXctcHJvZmlsZSBtcy0wXCIgKGNsaWNrKT1cInByb2ZpbGUoKVwiPlZpZXcgUHJvZmlsZTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvcG92ZXItYm9keVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3BvdmVyLWNvbnRlbnQtdGl0bGVcIj48cD5PdmVydmlldzwvcD48L2Rpdj5cbiAgICAgICAgICAgICAgICA8dWwgY2RrTWVudSBjbGFzcz1cImxpc3QtZ3JvdXAgbGlzdC1vdmVydmlld1wiICpuZ0lmPVwiY3VycmVudENvbXBhbnlcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpIGNka01lbnVJdGVtIGNsYXNzPVwibGlzdC1pdGVtXCIgKm5nSWY9XCJ1c2VyQXV0aERhdGE/LmVtYWlsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cCBtYXQtbWVudS1pdGVtIGNsYXNzPVwibGlzdC10ZXh0IGxpc3QtdGV4dC1lbWFpbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImxpc3QtaWNvblwiPm1haWw8L21hdC1pY29uPjxzcGFuIGNsYXNzPVwicG14LWxvd2VyLWNhc2UgcG14LXRleHQtd3JhcCBtZS1hdXRvXCI+e3sgdXNlckF1dGhEYXRhPy5lbWFpbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgPGxpIGNka01lbnVJdGVtIGNsYXNzPVwibGlzdC1pdGVtIGQtbm9uZVwiICpuZ0lmPVwidXNlckF1dGhEYXRhPy5jb250YWN0UGhvbmVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwIG1hdC1tZW51LWl0ZW0gY2xhc3M9XCJsaXN0LXRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJsaXN0LWljb25cIj5jYWxsPC9tYXQtaWNvbj48c3BhbiBjbGFzcz1cInRpdGxlLWNhc2UgbWUtYXV0b1wiPnt7IHVzZXJBdXRoRGF0YT8uY29udGFjdFBob25lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICA8bGkgY2RrTWVudUl0ZW0gY2xhc3M9XCJsaXN0LWl0ZW1cIiAqbmdJZj1cInVzZXJBdXRoRGF0YT8uYWRkcmVzcyAhPT0gbnVsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgbWF0LW1lbnUtaXRlbSBjbGFzcz1cImxpc3QtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImxpc3QtaWNvblwiPmxvY2F0aW9uX29uPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlLWNhc2UgbWUtYXV0b1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21hbGw+e3sgdXNlckF1dGhEYXRhPy5hZGRyZXNzPy5zdHJlZXRBZGRyZXNzIH19IHt7KHVzZXJBdXRoRGF0YT8uYWRkcmVzcz8uc3RyZWV0QWRkcmVzczIgIT09IG51bGwpID8gdXNlckF1dGhEYXRhPy5hZGRyZXNzPy5zdHJlZXRBZGRyZXNzMiA6ICcnIH19PC9zbWFsbD48YnIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgdXNlckF1dGhEYXRhPy5hZGRyZXNzPy5jaXR5IH19IHt7dXNlckF1dGhEYXRhPy5hZGRyZXNzPy5zdGF0ZU9yUHJvdmluY2UgfX0ge3t1c2VyQXV0aERhdGE/LmFkZHJlc3M/LnBvc3RhbENvZGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9wb3Zlci1jb250ZW50LXRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwICpuZ0lmPVwidXNlckNvbXBhbmllcz8ubGVuZ3RoID09IDE7ZWxzZSBjb21wYW5pZXNUaXRsZVwiPkNvbXBhbnk8L3A+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcGFuaWVzVGl0bGU+PHA+Q29tcGFuaWVzPC9wPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHVsIGNka01lbnUgY2xhc3M9XCJsaXN0LWdyb3VwIGxpc3QtZ3JvdXAtY29tcGFuaWVzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaSBjZGtNZW51SXRlbSBjbGFzcz1cImxpc3QtaXRlbSBsaXN0LWNvbXBhbnlcIiAqbmdGb3I9XCJsZXQgY29tcGFueSBvZiB1c2VyQ29tcGFuaWVzXCIgW25nQ2xhc3NdPVwiKGNvbXBhbnk/LmFjdGl2ZU5vdykgPyAnbGlzdC1hY3RpdmUgY29tcGFueS1hY3RpdmUnIDogJydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBjbGFzcz1cInBteC1idXR0b24gbGlzdC1idXR0b25cIiAoY2xpY2spPVwic3dpdGNoQ29tcGFueShjb21wYW55KVwiIFttYXRUb29sdGlwXT1cImNvbXBhbnk/Lm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJiZWxvd1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImljb24tY2hlY2tcIj57eyAoY29tcGFueT8uYWN0aXZlTm93KSA/ICdjaGVja19jaXJjbGUnIDogJ3N3YXBfdmVydCcgfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGlzdC10ZXh0IHBteC10ZXh0LXdyYXAgbWUtYXV0b1wiPnt7IGNvbXBhbnk/Lm5hbWUgfCB0aXRsZWNhc2UgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPVwiYWN0aXZlLWxhYmVsXCIgKm5nSWY9XCIoY29tcGFueT8uYWN0aXZlTm93KVwiPkFjdGl2ZTwvc21hbGw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDxociAvPlxuICAgICAgICAgICAgICAgIDx1bCBjZGtNZW51IGNsYXNzPVwibGlzdC1ncm91cCBsYXN0LWdyb3VwIG15LTFcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxpIGNka01lbnVJdGVtIGNsYXNzPVwibGlzdC1pdGVtIHB5LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBjbGFzcz1cInBteC1idXR0b24gbGlzdC1idXR0b24gYnRuLWxvZ291dFwiIChjbGljayk9XCJvbkxvZ291dENsaWNrKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24+cG93ZXJfc2V0dGluZ3NfbmV3PC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImxpc3QtdGV4dFwiPkxvZ291dDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9tYXQtbWVudT5cbjwvbWF0LXRvb2xiYXI+Il19