ngx-sp-auth 0.0.0-watch → 1.0.4
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.
- package/esm2022/lib/components/login/login.component.mjs +6 -9
- package/esm2022/lib/components/menu-lateral/dropdown/primary-dropdown/primary-dropdown.component.mjs +2 -3
- package/esm2022/lib/components/menu-lateral/menu/menu-lateral.component.mjs +3 -5
- package/esm2022/lib/components/menu-lateral/menu-services.service.mjs +2 -2
- package/esm2022/lib/components/menu-lateral/model/infrausuarioimg.mjs +8 -8
- package/esm2022/lib/custom/custom-login.service.mjs +5 -5
- package/esm2022/lib/custom/custom-menu.service.mjs +3 -3
- package/esm2022/lib/custom/custom-storage.service.mjs +70 -0
- package/esm2022/lib/custom/menu-config.service.mjs +3 -3
- package/esm2022/lib/custom/models/icustom-storage-service.mjs +2 -0
- package/esm2022/lib/custom/models/imenu-config.mjs +1 -1
- package/esm2022/lib/environments/environments.service.mjs +1 -1
- package/esm2022/lib/storage/auth-storage.service.mjs +11 -55
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/ngx-sp-auth.mjs +102 -84
- package/fesm2022/ngx-sp-auth.mjs.map +1 -1
- package/lib/components/login/login.component.d.ts +1 -1
- package/lib/components/menu-lateral/model/infrausuarioimg.d.ts +7 -7
- package/lib/custom/custom-storage.service.d.ts +19 -0
- package/lib/custom/models/icustom-storage-service.d.ts +7 -0
- package/lib/storage/auth-storage.service.d.ts +3 -7
- package/package.json +20 -2
- package/public-api.d.ts +2 -0
- package/src/assets/styles/styles.novo.scss +0 -0
|
@@ -56,7 +56,6 @@ export class MenuLateralComponent {
|
|
|
56
56
|
this._menuServices.getNewUserImageEvent().subscribe(() => { this.getMenuUserImg(); });
|
|
57
57
|
}
|
|
58
58
|
ngOnInit() {
|
|
59
|
-
console.log(this.menuConfig);
|
|
60
59
|
// Inscreva-se no evento NavigationEnd para receber notificações quando a rota mudar, serve para atualizar a seleção do menu corretamente
|
|
61
60
|
this._router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe((event) => {
|
|
62
61
|
this._customMenuService.menuItems = this._customMenuService.menuConfig.updateRouteSelection(this._router.url, this._customMenuService.menuItems);
|
|
@@ -96,7 +95,7 @@ export class MenuLateralComponent {
|
|
|
96
95
|
}
|
|
97
96
|
getMenuUserImg() {
|
|
98
97
|
this._menuServices.getImagemMenu().subscribe({
|
|
99
|
-
next: response => { this.footerUserImgSrc = response.InfraUsuarioImg.
|
|
98
|
+
next: response => { this.footerUserImgSrc = response.InfraUsuarioImg.Imagem; },
|
|
100
99
|
error: error => {
|
|
101
100
|
//this._projectUtilService.showHttpError(error);
|
|
102
101
|
this._messageService.showAlertDanger(error);
|
|
@@ -167,7 +166,6 @@ export class MenuLateralComponent {
|
|
|
167
166
|
this.submenuList = [];
|
|
168
167
|
}
|
|
169
168
|
else {
|
|
170
|
-
console.log(ref);
|
|
171
169
|
console.warn('ref is undefined or null');
|
|
172
170
|
}
|
|
173
171
|
}
|
|
@@ -217,7 +215,7 @@ export class MenuLateralComponent {
|
|
|
217
215
|
this._bsModalService.hide(modalID);
|
|
218
216
|
}
|
|
219
217
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuLateralComponent, deps: [{ token: i1.LibCustomMenuService }, { token: i2.AuthStorageService }, { token: i3.BsModalService }, { token: i4.MenuServicesService }, { token: i5.MessageService }, { token: i6.Router }, { token: i7.AuthService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
220
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MenuLateralComponent, selector: "app-menu-lateral", queries: [{ propertyName: "desiredContent", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "notif_template", first: true, predicate: ["notif_menu"], descendants: true }, { propertyName: "menuLink", first: true, predicate: ["menuLink"], descendants: true }], ngImport: i0, template: "<!-- #region MAIN CONTENT -->\r\n<div class=\"main col-12\">\r\n\r\n <div style=\"height: 100vh; z-index: 3;\" class=\"sidebar-control position-relative d-flex flex-row\" \r\n (clickOutside)=\"closeMenu == true ? onClickedOutside($event, submenu_ref) : closeMenu = true\">\r\n <div class=\"sidebar {{_customMenuService.themeColor}} closed\" #sidebar>\r\n <div class=\"menu-header\">\r\n <ul>\r\n <li class=\"mb-3\">\r\n <div class=\"logo-hamburguer\">\r\n <img src=\"assets/icons/logotipo-sispro.svg\" alt=\"logo-sispro\" class=\"logo-sispro\" title=\"logo\" width=\"136px\" height=\"48px\">\r\n <button class=\"button-hamburguer\" (click)=\"openExpansibleMenu(sidebar)\">\r\n <img src=\"assets/icons/menu.svg\" alt=\"menu hamburguer\">\r\n </button>\r\n </div>\r\n </li>\r\n\r\n <!-- #region M\u00D3DULOS -->\r\n <li class=\"mb-3\" style=\"margin-left: 8px; margin-right: 8px\">\r\n <div class=\"btn-group\">\r\n <button (click)=\"dropdownWasOpened(true)\" type=\"button\" class=\"dropdown-button\" data-bs-toggle=\"dropdown\"\r\n aria-expanded=\"false\" data-bs-auto-close=\"outside\">\r\n\r\n <ng-container>\r\n <img *ngIf=\"_customMenuService.moduleImg != ''; else moduleSVG\" [src]=\"_customMenuService.moduleImg\" alt=\"\">\r\n <span class=\"ps-2\"> {{ this._customMenuService.moduleName }} <lib-icon iconName=\"seta-direita\" iconColor=\"white\" /> </span>\r\n\r\n <ng-template #moduleSVG>\r\n <lib-icon iconColor=\"white\" [iconName]=\"_customMenuService.moduleSvg\"/>\r\n </ng-template>\r\n </ng-container>\r\n\r\n </button>\r\n <ul class=\"dropdown-menu\" #dropdown_ref>\r\n <app-primary-dropdown [buttonWasClicked]=\"messageIfClicked\"></app-primary-dropdown>\r\n </ul>\r\n </div>\r\n </li>\r\n <!-- #endregion M\u00D3DULOS -->\r\n\r\n <!-- #region ESTABELECIMENTOS -->\r\n <li class=\"mx-3\" style=\"margin-bottom: 16px;\">\r\n <div class=\"icon-estabelecimento\">\r\n <button class=\"row justify-content-between bg-transparent border-0\"\r\n (click)=\"openModal(modalEstabelecimento, MODAL_ESTABELECIMENTO)\"\r\n [tooltip]=\"!sidebar.classList.contains('closed') ? '' : nomeEstabelecimento\" placement=\"right\">\r\n\r\n <lib-icon class=\"col-1\" iconName=\"predio\" iconColor=\"white\" />\r\n <span *ngIf=\"!sidebar.classList.contains('closed')\" class=\"col-9 ps-2 glb-text-width-160 text-start text-truncate\"> {{ nomeEstabelecimento }} </span>\r\n <lib-icon *ngIf=\"!sidebar.classList.contains('closed')\" class=\"col-1\" iconName=\"seta-direita\" iconColor=\"white\" />\r\n </button>\r\n </div>\r\n </li>\r\n <!-- #endregion ESTABELECIMENTOS -->\r\n\r\n </ul>\r\n\r\n </div>\r\n\r\n <!-- #region MENUS DE NAVEGA\u00C7\u00C3O -->\r\n <div class=\"main-menu\">\r\n <div class=\"scroll\">\r\n <div class=\"list-menu px-2 pb-1\">\r\n\r\n <!-- #region MENU DIN\u00C2MICO -->\r\n <div class=\"dynamic-menu\">\r\n <ul #dynamic_menu_items *ngIf=\"_customMenuService.menuItems; else isLoading\">\r\n\r\n <li *ngFor=\"let menuItem of _customMenuService.menuItems; let i = index\" \r\n class=\"p-1 rounded\" \r\n (click)=\"openSubmenu(menuItem, submenu_ref, dynamic_menu)\" \r\n [class.selectedItem]=\"menuItem.isSelected\">\r\n\r\n <a *ngIf=\"!menuItem.isExternal; else externalMenu\"\r\n [routerLink]=\"menuItem.route != '' ? menuItem.route : null\" \r\n [id]=\"'item' + menuItem.id\" \r\n [tooltip]=\"!sidebar.classList.contains('closed') ? '' : menuItem.label\" \r\n placement=\"left\" class=\"w-100 d-flex align-items-center button-icons text-decoration-none p-1 glb-cursor-pointer\" \r\n [class]=\"sidebar.classList.contains('closed') ? 'justify-content-center' : 'justify-content-between'\">\r\n\r\n <div class=\"container\">\r\n <lib-icon *ngIf=\"!menuItem.icon.includes('assets/icons'); else iconImg\" [iconName]=\"menuItem.icon\" iconColor=\"white\"/>\r\n <span class=\"span-main\">{{ menuItem.label }}</span>\r\n <ng-template #iconImg>\r\n <img [src]=\"menuItem.icon\" [alt]=\"'icone: ' + menuItem.label\">\r\n </ng-template>\r\n </div>\r\n <lib-icon *ngIf=\"(menuItem.children && menuItem.children.length > 0) && !sidebar.classList.contains('closed')\" \r\n iconName=\"seta-direita\" iconColor=\"white\"/>\r\n </a>\r\n \r\n <ng-template #externalMenu>\r\n <a [href]=\"getExternalUrl(menuItem.route)\"\r\n target=\"_blank\" \r\n [id]=\"'item' + menuItem.id\" \r\n [tooltip]=\"!sidebar.classList.contains('closed') ? '' : menuItem.label\" \r\n placement=\"left\" class=\"w-100 d-flex align-items-center button-icons text-decoration-none p-1 glb-cursor-pointer\" \r\n [class]=\"sidebar.classList.contains('closed') ? 'justify-content-center' : 'justify-content-between'\">\r\n\r\n <div class=\"container\">\r\n <lib-icon *ngIf=\"!menuItem.icon.includes('assets/icons'); else iconImgExternal\" [iconName]=\"menuItem.icon\" iconColor=\"white\"/>\r\n <span class=\"span-main\">{{ menuItem.label }}</span>\r\n <ng-template #iconImgExternal>\r\n <img [src]=\"menuItem.icon\" [alt]=\"'icone: ' + menuItem.label\">\r\n </ng-template>\r\n </div>\r\n <lib-icon *ngIf=\"(menuItem.children && menuItem.children.length > 0) && !sidebar.classList.contains('closed')\" \r\n iconName=\"seta-direita\" iconColor=\"white\"/>\r\n </a>\r\n </ng-template>\r\n </li>\r\n\r\n </ul>\r\n </div>\r\n\r\n <ng-template #isLoading>\r\n <li class=\"spinner-border spinner-border-sm mt-2\" role=\"status\" aria-hidden=\"true\"></li>\r\n </ng-template>\r\n <!-- #endregion MENU DIN\u00C2MICO -->\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <!-- #endregion MENUS DE NAVEGA\u00C7\u00C3O -->\r\n\r\n <!-- #region FOOTER -->\r\n <div class=\"footer-menu\" (mouseenter)=\"showBalloon = true\" (mouseleave)=\"showBalloon = false\"\r\n [popover]=\"popoverContent\" placement=\"right bottom\" [outsideClick]=\"true\" containerClass=\"width: 200px\" >\r\n <div class=\"footer-components ps-1 pt-2\" [class.open]=\"showBalloon\">\r\n <button type=\"button\" class=\"btn btn-primary\">\r\n <img *ngIf=\"footerUserImgSrc; else noUserImg\" class=\"photo-profile ms-1\"\r\n [src]=\"['data:image/jpeg;base64,' + footerUserImgSrc]\" alt=\"foto-perfil\">\r\n <ng-template #noUserImg>\r\n <lib-icon iconName=\"contraparte\" iconColor=\"white\"/>\r\n </ng-template>\r\n <span class=\"glb-text-width-120 w-auto fw-bold text-start text-truncate ms-1 me-1\">\r\n {{ footerUserName }}\r\n </span>\r\n </button>\r\n </div>\r\n </div>\r\n \r\n <ng-template #popoverContent>\r\n <div class=\"footer-menu\" style=\"width: 1000px;\">\r\n <div class=\"d-flex align-items-center\"> \r\n <img *ngIf=\"footerUserImgSrc; else noUserImg\" class=\"photo-profile\"\r\n [src]=\"['data:image/jpeg;base64,' + footerUserImgSrc]\" alt=\"foto-perfil\"> \r\n <ng-template #noUserImg>\r\n <lib-icon iconName=\"contraparte\" iconColor=\"white\"/>\r\n </ng-template>\r\n <div class=\"d-flex flex-column ms-1\"> \r\n <div [tooltip]=\"footerUserName\" class=\"dynamic-container\" style=\"white-space: nowrap; flex-grow: 1;max-width: 200px; font-size: 16px;\">{{footerUserName}}</div>\r\n <div [tooltip]=\"footerUserEmail\" class=\"dynamic-container\" style=\"white-space: nowrap; font-size: 12px; flex-grow: 1;max-width: 200px;\">{{footerUserEmail}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <hr class=\"mb-2 mt-2\">\r\n <div routerLink=\"meu-perfil\" style=\"cursor: pointer;\" (click)=\"togglePopover(); $event.stopPropagation()\">\r\n <lib-icon [iconSize]=\"'small'\" iconName=\"contraparte\"/> Meu Perfil\r\n </div>\r\n <div class=\"mt-2\" (click)=\"logout()\" style=\"cursor: pointer;\">\r\n <lib-icon [iconSize]=\"'small'\" iconName=\"logout\"/> Sair\r\n </div>\r\n </ng-template>\r\n <!-- #endregion FOOTER -->\r\n\r\n </div>\r\n\r\n <div class=\"submenu\" #submenu_ref>\r\n <ng-template [ngIf]=\"desiredContent !== null\">\r\n <ng-content *ngTemplateOutlet=\"desiredContent!; context: {$implicit: submenuList}\"></ng-content>\r\n </ng-template>\r\n </div>\r\n </div>\r\n \r\n <div class=\"main-content col d-flex flex-column align-content-between\" id=\"body-content\">\r\n <div class=\"content\" style=\"position: relative;\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n <div app-footer></div>\r\n </div>\r\n\r\n</div>\r\n<!-- #endregion MAIN CONTENT -->\r\n\r\n<!-- #region TEMPLATES -->\r\n<!-- tem que perguntar pro Erick -->\r\n<!-- [submenuRef]=\"submenu_ref\" -->\r\n<ng-template #dynamic_menu let-data>\r\n <app-dynamic-menu \r\n [submenuList]=\"data\"\r\n [titleSubmenu]=\"titleSubmenu\"\r\n [submenuRef]=\"submenu_ref\"\r\n [recebeParam]=\"onClickedOutside.bind(this)\">\r\n </app-dynamic-menu>\r\n</ng-template>\r\n\r\n<ng-template #notif_menu>\r\n <app-notif-submenu></app-notif-submenu>\r\n</ng-template>\r\n\r\n<!-- #region MODAL SELECAO ESTABELECIMENTO -->\r\n<ng-template #modalEstabelecimento>\r\n <selecao-estabelecimentos-modal (onClose)=\"closeModal(MODAL_ESTABELECIMENTO)\"\r\n (onSelected)=\"closeModal(MODAL_ESTABELECIMENTO); updateLastLogEstabelecimento($event);\"></selecao-estabelecimentos-modal>\r\n</ng-template>\r\n<!-- #endregion MODAL SELECAO ESTABELECIMENTO -->\r\n\r\n<!-- #endregion TEMPLATES -->\r\n", styles: [".main{display:flex;width:100%;height:100%;background:#eee}::-webkit-scrollbar{width:8px;background:transparent}::-webkit-scrollbar-thumb{background:#bbb;border-radius:16px}.main-content{width:100%;z-index:0;overflow-y:auto;overflow:overlay;height:100vh}.main-content .content{padding:0 16px 16px;background-color:#eee!important}.disable-scroll{overflow-y:hidden}*{padding:0;margin:0;font-family:Open sans,Arial,Helvetica,sans-serif;font-size:14px}span{color:#fff}ul{list-style:none;padding-left:0;white-space:nowrap}.dropdown-button{padding:8px;border-radius:8px;background-color:#3265ee;border:none;font-size:14px;font-weight:700;width:100%;display:flex}.dropdown-button span{width:100%;display:flex;justify-content:space-between}.dropdown-menu{width:212px;border-radius:8px}.dropdown-menu li{margin:16px 8px}.dropdown-menu li a{font-size:14px}.dropdown-menu li a:hover{font-weight:700;background-color:transparent}.dropdown-menu .dropdown-divider{height:0}.link-portal{color:#213b70;text-decoration:underline;text-align:center;font-weight:700;font-size:14px}.container{display:flex;width:max-content}.sidebar{display:flex;flex-direction:column;height:100%;grid-template-rows:min-content;box-sizing:border-box;transition:width .5s;background-color:#213b70;max-width:inherit}.sidebar .footer-menu{justify-content:flex-end}.menu-header{display:flex;flex-direction:column;white-space:nowrap;padding:32px 0 0;background-color:#213b70}.menu-header ul li{margin-left:16px;margin-right:16px}.menu-header ul>li:last-child{border-bottom:1px solid #3265ee;padding-bottom:15px;height:auto}.dropdown{margin:0}.btn-group{width:100%}.sidebar.closed .menu-header ul li{margin-left:0;margin-right:0}.sidebar.closed .menu-header{display:flex;flex-direction:column;align-items:center}.icon-estabelecimento button{display:flex;flex-direction:row;width:100%;align-items:center;justify-content:center}.icon-estabelecimento button span:hover{font-weight:700}.header-content{display:flex;flex-direction:column;justify-content:space-evenly;height:100%;margin:0 20px}.logo-hamburguer{display:flex;justify-content:space-between;margin-right:8px}.logo-hamburguer .button-hamburguer{border:none;background-color:transparent}.sidebar.closed .logo-hamburguer{justify-content:center;margin-right:0}.scroll{overflow-y:auto;overflow-x:hidden;min-height:20%;margin-right:2px}.list-menu{padding-left:16px;padding-right:8px;display:flex;flex-direction:column;justify-content:center;white-space:nowrap}.list-menu .text-closed{padding-top:15px;display:none;color:#fff}.list-menu .text-opened{color:#fff;font-size:12px;padding-top:15px;visibility:visible;white-space:nowrap}.list-menu .li-main{padding:10px 7px;border-radius:8px}.list-menu .onSelect{background-color:#3265ee}.list-menu div.static-menu>ul>li:first-child{margin-top:16px}.list-menu .span-main{font-size:14px;margin-left:8px;opacity:1;pointer-events:auto;white-space:break-spaces}.list-menu .span-main:hover,.list-menu .list-options span:hover{font-weight:700}.list-menu p{font-size:10px;font-weight:700;text-transform:uppercase;border-bottom:1px solid #3265ee;visibility:hidden}.selectedItem{background-color:#3265ee}.selectedItem span{font-weight:700;background-color:transparent}.notif{padding:2px 13px;margin-bottom:none;background-color:#000;border-radius:8px;font-weight:700}.sidebar.closed .chevron{display:none}.sidebar.closed .icon-estabelecimento{margin:0}.sidebar.closed .icon-estabelecimento button{justify-content:center}.sidebar.closed .icon-estabelecimento button img{margin:0}.align-chevron{width:100%;text-align:justify;align-items:center;display:flex;justify-content:space-between}.selected-color{background-color:#3265ee}.main-menu{display:flex;flex-direction:column;justify-content:space-between;height:100%;min-height:20%}.button-icons{border:none;background-color:transparent}.footer-menu{display:flex;flex-direction:column;padding-bottom:8px}.footer-menu .footer-components{display:flex;justify-content:space-between;border-top:1px solid #3265ee;white-space:nowrap;align-items:center}.footer-menu .footer-components .button-closed{display:none}.footer-menu button{border:none;background-color:transparent;border-radius:8px}.footer-menu .points{padding:4px 0;margin:4px 0;border-radius:8px}.footer-menu .photo-profile{width:32px;height:32px;border-radius:50%;margin:0}.footer-menu .open-user{background-color:#3265ee}.submenu{width:341px;display:none;background-color:#3265ee;box-sizing:border-box;flex-direction:column;overflow:hidden;box-shadow:0 4px 8px #0000004d}.submenu ul{display:flex;flex-direction:column;margin:25px 26px 0 24px}.submenu ul li{font-size:20px;font-weight:600;line-height:22px;padding-bottom:18px}.submenu .itens-list{display:flex;justify-content:space-between;align-items:center}.submenu .itens-list .favoritos,.submenu .itens-list span{cursor:pointer}.submenu .footer-menu{display:flex;flex-direction:row;justify-content:center;padding-bottom:16px;overflow:hidden}.submenu .footer-menu .footer-components{border-top:1px solid #3265ee;padding-top:16px;padding-left:17px;white-space:nowrap}.submenu .footer-menu button{position:relative;left:35%;border:none;background-color:transparent}.submenu .footer-menu .photo-profile{width:32px;height:32px;border-radius:50%;margin:0}.submenu .footer-components{display:flex;justify-content:center;align-items:center}.submenu button{position:relative;left:10%;border:none;background-color:transparent}.submenu .photo-profile{width:32px;height:32px;border-radius:50%;margin:0}.submenu.opened-sub{z-index:1;display:flex;position:absolute;left:100%;height:100vh;justify-content:space-between}.submenu-footer{display:flex;flex-direction:row;justify-content:center;align-content:center;margin-bottom:14px;border-top:1px solid #2847a0;box-shadow:0 4px 8px #0000004d}.submenu-footer .subfooter-components{padding-top:16px}.submenu-footer span{font-weight:700;padding-left:10px}.search-bar{max-width:368px;height:38px;margin-top:24px;border:1px solid #ced4da;box-sizing:border-box;border-radius:8px}.opened-notif-sub{min-width:452px;display:none;background-color:#3265ee;box-sizing:border-box;flex-direction:column;overflow:hidden}.sidebar.closed{max-width:73px}.sidebar.closed span{display:none}.sidebar.closed span{white-space:nowrap;overflow:hidden}.sidebar.closed .logo-sispro{display:none}.sidebar.closed .list-menu{padding:0;margin-left:0;margin-right:0;display:flex;flex-direction:column;align-items:center}.sidebar.closed .list-menu span{opacity:0;pointer-events:none}.sidebar.closed .list-menu .text-closed{padding-bottom:11px;visibility:visible;display:block}.sidebar.closed .list-menu .text-opened{display:none;font-size:8px}.sidebar.closed .list-menu .chevron,.sidebar.closed .favoritos,.sidebar.closed .footer-components .button-opened{display:none}.sidebar.closed .footer-components .button-closed{display:block}.sidebar.closed .button-icons{border:none;background-color:transparent}.sidebar.closed .footer-components{display:flex;align-items:center}.sidebar.closed button{border:none;background-color:transparent;display:block}.sidebar.closed .photo-profile{width:32px;height:32px;border-radius:50%;margin:0}.sidebar-control{height:100vh;max-width:227.667px}.sidebar-control .main-content.closed{margin-left:0}.glb-text-width-120{max-width:120px}.profile-picture{display:inline-block;position:relative;width:100px;height:100px;border-radius:50%;overflow:hidden}.profile-picture img{width:100%;height:100%;object-fit:cover;border-radius:50%;clip-path:circle(50% at 50% 50%)}.image-div{width:50px;min-width:50px;height:50px;border-radius:100%;position:relative;overflow:hidden;z-index:1}.image-div #photoUser{width:146px;height:146px;top:-1px;left:-1px;object-fit:cover;position:relative;z-index:1;border:none;border-color:transparent}.dynamic-container{display:inline-block;white-space:nowrap;overflow:hidden}.custom-popover{width:1000px}\n"], dependencies: [{ kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { kind: "component", type: i5.LibIconsComponent, selector: "lib-icon", inputs: ["iconName", "iconColor", "iconSize", "iconFill"] }, { kind: "component", type: i5.FooterComponent, selector: "[app-footer], app-footer, lib-footer" }, { kind: "directive", type: i9.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "directive", type: i10.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i6.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i11.PrimaryDropdownComponent, selector: "app-primary-dropdown", inputs: ["buttonWasClicked"] }, { kind: "component", type: i12.SelecaoEstabelecimentosModalComponent, selector: "selecao-estabelecimentos-modal", outputs: ["onClose", "onSelected"] }, { kind: "component", type: i13.DynamicMenuComponent, selector: "app-dynamic-menu", inputs: ["submenuRef", "recebeParam", "titleSubmenu", "submenuList"], outputs: ["selectTemplate"] }, { kind: "component", type: i14.NotifSubmenuComponent, selector: "app-notif-submenu" }] }); }
|
|
218
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MenuLateralComponent, selector: "app-menu-lateral", queries: [{ propertyName: "desiredContent", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "notif_template", first: true, predicate: ["notif_menu"], descendants: true }, { propertyName: "menuLink", first: true, predicate: ["menuLink"], descendants: true }], ngImport: i0, template: "<!-- #region MAIN CONTENT -->\r\n<div class=\"main col-12\">\r\n\r\n <div style=\"height: 100vh; z-index: 3;\" class=\"sidebar-control position-relative d-flex flex-row\" \r\n (clickOutside)=\"closeMenu == true ? onClickedOutside($event, submenu_ref) : closeMenu = true\">\r\n <div class=\"sidebar {{_customMenuService.themeColor}} closed\" #sidebar>\r\n <div class=\"menu-header\">\r\n <ul>\r\n <li class=\"mb-3\">\r\n <div class=\"logo-hamburguer\">\r\n <img src=\"assets/icons/logotipo-sispro.svg\" alt=\"logo-sispro\" class=\"logo-sispro\" title=\"logo\" width=\"136px\" height=\"48px\">\r\n <button class=\"button-hamburguer\" (click)=\"openExpansibleMenu(sidebar)\">\r\n <img src=\"assets/icons/menu.svg\" alt=\"menu hamburguer\">\r\n </button>\r\n </div>\r\n </li>\r\n\r\n <!-- #region M\u00D3DULOS -->\r\n <li class=\"mb-3\" style=\"margin-left: 8px; margin-right: 8px\">\r\n <div class=\"btn-group\">\r\n <button (click)=\"dropdownWasOpened(true)\" type=\"button\" class=\"dropdown-button\" data-bs-toggle=\"dropdown\"\r\n aria-expanded=\"false\" data-bs-auto-close=\"outside\">\r\n\r\n <ng-container>\r\n <img *ngIf=\"_customMenuService.moduleImg != ''; else moduleSVG\" [src]=\"_customMenuService.moduleImg\" alt=\"\">\r\n <span class=\"ps-2\"> {{ this._customMenuService.moduleName }} <lib-icon iconName=\"seta-direita\" iconColor=\"white\" /> </span>\r\n\r\n <ng-template #moduleSVG>\r\n <lib-icon iconColor=\"white\" [iconName]=\"_customMenuService.moduleSvg\"/>\r\n </ng-template>\r\n </ng-container>\r\n\r\n </button>\r\n <ul class=\"dropdown-menu\" #dropdown_ref>\r\n <app-primary-dropdown [buttonWasClicked]=\"messageIfClicked\"></app-primary-dropdown>\r\n </ul>\r\n </div>\r\n </li>\r\n <!-- #endregion M\u00D3DULOS -->\r\n\r\n <!-- #region ESTABELECIMENTOS -->\r\n <li class=\"mx-3\" style=\"margin-bottom: 16px;\">\r\n <div class=\"icon-estabelecimento\">\r\n <button class=\"row justify-content-between bg-transparent border-0\"\r\n (click)=\"openModal(modalEstabelecimento, MODAL_ESTABELECIMENTO)\"\r\n [tooltip]=\"!sidebar.classList.contains('closed') ? '' : nomeEstabelecimento\" placement=\"right\">\r\n\r\n <lib-icon class=\"col-1\" iconName=\"predio\" iconColor=\"white\" />\r\n <span *ngIf=\"!sidebar.classList.contains('closed')\" class=\"col-9 ps-2 glb-text-width-160 text-start text-truncate\"> {{ nomeEstabelecimento }} </span>\r\n <lib-icon *ngIf=\"!sidebar.classList.contains('closed')\" class=\"col-1\" iconName=\"seta-direita\" iconColor=\"white\" />\r\n </button>\r\n </div>\r\n </li>\r\n <!-- #endregion ESTABELECIMENTOS -->\r\n\r\n </ul>\r\n\r\n </div>\r\n\r\n <!-- #region MENUS DE NAVEGA\u00C7\u00C3O -->\r\n <div class=\"main-menu\">\r\n <div class=\"scroll\">\r\n <div class=\"list-menu px-2 pb-1\">\r\n\r\n <!-- #region MENU DIN\u00C2MICO -->\r\n <div class=\"dynamic-menu\">\r\n <ul #dynamic_menu_items *ngIf=\"_customMenuService.menuItems; else isLoading\">\r\n\r\n <li *ngFor=\"let menuItem of _customMenuService.menuItems; let i = index\" \r\n class=\"p-1 rounded\" \r\n (click)=\"openSubmenu(menuItem, submenu_ref, dynamic_menu)\" \r\n [class.selectedItem]=\"menuItem.isSelected\">\r\n\r\n <a *ngIf=\"!menuItem.isExternal; else externalMenu\"\r\n [routerLink]=\"menuItem.route != '' ? menuItem.route : null\" \r\n [id]=\"'item' + menuItem.id\" \r\n [tooltip]=\"!sidebar.classList.contains('closed') ? '' : menuItem.label\" \r\n placement=\"left\" class=\"w-100 d-flex align-items-center button-icons text-decoration-none p-1 glb-cursor-pointer\" \r\n [class]=\"sidebar.classList.contains('closed') ? 'justify-content-center' : 'justify-content-between'\">\r\n\r\n <div class=\"container\">\r\n <lib-icon *ngIf=\"!menuItem.icon.includes('assets/icons'); else iconImg\" [iconName]=\"menuItem.icon\" iconColor=\"white\"/>\r\n <span class=\"span-main\">{{ menuItem.label }}</span>\r\n <ng-template #iconImg>\r\n <img [src]=\"menuItem.icon\" [alt]=\"'icone: ' + menuItem.label\">\r\n </ng-template>\r\n </div>\r\n <lib-icon *ngIf=\"(menuItem.children && menuItem.children.length > 0) && !sidebar.classList.contains('closed')\" \r\n iconName=\"seta-direita\" iconColor=\"white\"/>\r\n </a>\r\n \r\n <ng-template #externalMenu>\r\n <a [href]=\"getExternalUrl(menuItem.route)\"\r\n target=\"_blank\" \r\n [id]=\"'item' + menuItem.id\" \r\n [tooltip]=\"!sidebar.classList.contains('closed') ? '' : menuItem.label\" \r\n placement=\"left\" class=\"w-100 d-flex align-items-center button-icons text-decoration-none p-1 glb-cursor-pointer\" \r\n [class]=\"sidebar.classList.contains('closed') ? 'justify-content-center' : 'justify-content-between'\">\r\n\r\n <div class=\"container\">\r\n <lib-icon *ngIf=\"!menuItem.icon.includes('assets/icons'); else iconImgExternal\" [iconName]=\"menuItem.icon\" iconColor=\"white\"/>\r\n <span class=\"span-main\">{{ menuItem.label }}</span>\r\n <ng-template #iconImgExternal>\r\n <img [src]=\"menuItem.icon\" [alt]=\"'icone: ' + menuItem.label\">\r\n </ng-template>\r\n </div>\r\n <lib-icon *ngIf=\"(menuItem.children && menuItem.children.length > 0) && !sidebar.classList.contains('closed')\" \r\n iconName=\"seta-direita\" iconColor=\"white\"/>\r\n </a>\r\n </ng-template>\r\n </li>\r\n\r\n </ul>\r\n </div>\r\n\r\n <ng-template #isLoading>\r\n <li class=\"spinner-border spinner-border-sm mt-2\" role=\"status\" aria-hidden=\"true\"></li>\r\n </ng-template>\r\n <!-- #endregion MENU DIN\u00C2MICO -->\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <!-- #endregion MENUS DE NAVEGA\u00C7\u00C3O -->\r\n\r\n <!-- #region FOOTER -->\r\n <div class=\"footer-menu\" (mouseenter)=\"showBalloon = true\" (mouseleave)=\"showBalloon = false\"\r\n [popover]=\"popoverContent\" placement=\"right bottom\" [outsideClick]=\"true\" containerClass=\"width: 200px\" >\r\n <div class=\"footer-components ps-1 pt-2\" [class.open]=\"showBalloon\">\r\n <button type=\"button\" class=\"btn btn-primary\">\r\n <img *ngIf=\"footerUserImgSrc; else noUserImg\" class=\"photo-profile ms-1\"\r\n [src]=\"['data:image/jpeg;base64,' + footerUserImgSrc]\" alt=\"foto-perfil\">\r\n <ng-template #noUserImg>\r\n <lib-icon iconName=\"contraparte\" iconColor=\"white\"/>\r\n </ng-template>\r\n <span class=\"glb-text-width-120 w-auto fw-bold text-start text-truncate ms-1 me-1\">\r\n {{ footerUserName }}\r\n </span>\r\n </button>\r\n </div>\r\n </div>\r\n \r\n <ng-template #popoverContent>\r\n <div class=\"footer-menu\" style=\"width: 1000px;\">\r\n <div class=\"d-flex align-items-center\"> \r\n <img *ngIf=\"footerUserImgSrc; else noUserImg\" class=\"photo-profile\"\r\n [src]=\"['data:image/jpeg;base64,' + footerUserImgSrc]\" alt=\"foto-perfil\"> \r\n <ng-template #noUserImg>\r\n <lib-icon iconName=\"contraparte\" iconColor=\"white\"/>\r\n </ng-template>\r\n <div class=\"d-flex flex-column ms-1\"> \r\n <div [tooltip]=\"footerUserName\" class=\"dynamic-container\" style=\"white-space: nowrap; flex-grow: 1;max-width: 200px; font-size: 16px;\">{{footerUserName}}</div>\r\n <div [tooltip]=\"footerUserEmail\" class=\"dynamic-container\" style=\"white-space: nowrap; font-size: 12px; flex-grow: 1;max-width: 200px;\">{{footerUserEmail}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n <hr class=\"mb-2 mt-2\">\r\n <div routerLink=\"meu-perfil\" style=\"cursor: pointer;\" (click)=\"togglePopover(); $event.stopPropagation()\">\r\n <lib-icon [iconSize]=\"'small'\" iconName=\"contraparte\"/> Meu Perfil\r\n </div>\r\n <div class=\"mt-2\" (click)=\"logout()\" style=\"cursor: pointer;\">\r\n <lib-icon [iconSize]=\"'small'\" iconName=\"logout\"/> Sair\r\n </div>\r\n </ng-template>\r\n <!-- #endregion FOOTER -->\r\n\r\n </div>\r\n\r\n <div class=\"submenu\" #submenu_ref>\r\n <ng-template [ngIf]=\"desiredContent !== null\">\r\n <ng-content *ngTemplateOutlet=\"desiredContent!; context: {$implicit: submenuList}\"></ng-content>\r\n </ng-template>\r\n </div>\r\n </div>\r\n \r\n <div class=\"main-content col d-flex flex-column align-content-between\" id=\"body-content\">\r\n <div class=\"content\" style=\"position: relative;\">\r\n <router-outlet></router-outlet>\r\n </div>\r\n <div app-footer></div>\r\n </div>\r\n\r\n</div>\r\n<!-- #endregion MAIN CONTENT -->\r\n\r\n<!-- #region TEMPLATES -->\r\n<!-- tem que perguntar pro Erick -->\r\n<!-- [submenuRef]=\"submenu_ref\" -->\r\n<ng-template #dynamic_menu let-data>\r\n <app-dynamic-menu \r\n [submenuList]=\"data\"\r\n [titleSubmenu]=\"titleSubmenu\"\r\n [submenuRef]=\"submenu_ref\"\r\n [recebeParam]=\"onClickedOutside.bind(this)\">\r\n </app-dynamic-menu>\r\n</ng-template>\r\n\r\n<ng-template #notif_menu>\r\n <app-notif-submenu></app-notif-submenu>\r\n</ng-template>\r\n\r\n<!-- #region MODAL SELECAO ESTABELECIMENTO -->\r\n<ng-template #modalEstabelecimento>\r\n <selecao-estabelecimentos-modal (onClose)=\"closeModal(MODAL_ESTABELECIMENTO)\"\r\n (onSelected)=\"closeModal(MODAL_ESTABELECIMENTO); updateLastLogEstabelecimento($event);\"></selecao-estabelecimentos-modal>\r\n</ng-template>\r\n<!-- #endregion MODAL SELECAO ESTABELECIMENTO -->\r\n\r\n<!-- #endregion TEMPLATES -->\r\n", styles: [".main{display:flex;width:100%;height:100%;background:#eee}::-webkit-scrollbar{width:8px;background:transparent}::-webkit-scrollbar-thumb{background:#bbb;border-radius:16px}.main-content{width:100%;z-index:0;overflow-y:auto;overflow:overlay;height:100vh}.main-content .content{padding:0 16px 16px;background-color:#eee!important}.disable-scroll{overflow-y:hidden}*{padding:0;margin:0;font-family:Open sans,Arial,Helvetica,sans-serif;font-size:14px}span{color:#fff}ul{list-style:none;padding-left:0;white-space:nowrap}.dropdown-button{padding:8px;border-radius:8px;background-color:#3265ee;border:none;font-size:14px;font-weight:700;width:100%;display:flex}.dropdown-button span{width:100%;display:flex;justify-content:space-between}.dropdown-menu{width:212px;border-radius:8px}.dropdown-menu li{margin:16px 8px}.dropdown-menu li a{font-size:14px}.dropdown-menu li a:hover{font-weight:700;background-color:transparent}.dropdown-menu .dropdown-divider{height:0}.link-portal{color:#213b70;text-decoration:underline;text-align:center;font-weight:700;font-size:14px}.container{display:flex;width:max-content}.sidebar{display:flex;flex-direction:column;height:100%;grid-template-rows:min-content;box-sizing:border-box;transition:width .5s;background-color:#213b70;max-width:inherit}.sidebar .footer-menu{justify-content:flex-end}.menu-header{display:flex;flex-direction:column;white-space:nowrap;padding:32px 0 0;background-color:#213b70}.menu-header ul li{margin-left:16px;margin-right:16px}.menu-header ul>li:last-child{border-bottom:1px solid #3265ee;padding-bottom:15px;height:auto}.dropdown{margin:0}.btn-group{width:100%}.sidebar.closed .menu-header ul li{margin-left:0;margin-right:0}.sidebar.closed .menu-header{display:flex;flex-direction:column;align-items:center}.icon-estabelecimento button{display:flex;flex-direction:row;width:100%;align-items:center;justify-content:center}.icon-estabelecimento button span:hover{font-weight:700}.header-content{display:flex;flex-direction:column;justify-content:space-evenly;height:100%;margin:0 20px}.logo-hamburguer{display:flex;justify-content:space-between;margin-right:8px}.logo-hamburguer .button-hamburguer{border:none;background-color:transparent}.sidebar.closed .logo-hamburguer{justify-content:center;margin-right:0}.scroll{overflow-y:auto;overflow-x:hidden;min-height:20%;margin-right:2px}.list-menu{padding-left:16px;padding-right:8px;display:flex;flex-direction:column;justify-content:center;white-space:nowrap}.list-menu .text-closed{padding-top:15px;display:none;color:#fff}.list-menu .text-opened{color:#fff;font-size:12px;padding-top:15px;visibility:visible;white-space:nowrap}.list-menu .li-main{padding:10px 7px;border-radius:8px}.list-menu .onSelect{background-color:#3265ee}.list-menu div.static-menu>ul>li:first-child{margin-top:16px}.list-menu .span-main{font-size:14px;margin-left:8px;opacity:1;pointer-events:auto;white-space:break-spaces}.list-menu .span-main:hover,.list-menu .list-options span:hover{font-weight:700}.list-menu p{font-size:10px;font-weight:700;text-transform:uppercase;border-bottom:1px solid #3265ee;visibility:hidden}.selectedItem{background-color:#3265ee}.selectedItem span{font-weight:700;background-color:transparent}.notif{padding:2px 13px;margin-bottom:none;background-color:#000;border-radius:8px;font-weight:700}.sidebar.closed .chevron{display:none}.sidebar.closed .icon-estabelecimento{margin:0}.sidebar.closed .icon-estabelecimento button{justify-content:center}.sidebar.closed .icon-estabelecimento button img{margin:0}.align-chevron{width:100%;text-align:justify;align-items:center;display:flex;justify-content:space-between}.selected-color{background-color:#3265ee}.main-menu{display:flex;flex-direction:column;justify-content:space-between;height:100%;min-height:20%}.button-icons{border:none;background-color:transparent}.footer-menu{display:flex;flex-direction:column;padding-bottom:8px}.footer-menu .footer-components{display:flex;justify-content:space-between;border-top:1px solid #3265ee;white-space:nowrap;align-items:center}.footer-menu .footer-components .button-closed{display:none}.footer-menu button{border:none;background-color:transparent;border-radius:8px}.footer-menu .points{padding:4px 0;margin:4px 0;border-radius:8px}.footer-menu .photo-profile{width:32px;height:32px;border-radius:50%;margin:0}.footer-menu .open-user{background-color:#3265ee}.submenu{width:341px;display:none;background-color:#3265ee;box-sizing:border-box;flex-direction:column;overflow:hidden;box-shadow:0 4px 8px #0000004d}.submenu ul{display:flex;flex-direction:column;margin:25px 26px 0 24px}.submenu ul li{font-size:20px;font-weight:600;line-height:22px;padding-bottom:18px}.submenu .itens-list{display:flex;justify-content:space-between;align-items:center}.submenu .itens-list .favoritos,.submenu .itens-list span{cursor:pointer}.submenu .footer-menu{display:flex;flex-direction:row;justify-content:center;padding-bottom:16px;overflow:hidden}.submenu .footer-menu .footer-components{border-top:1px solid #3265ee;padding-top:16px;padding-left:17px;white-space:nowrap}.submenu .footer-menu button{position:relative;left:35%;border:none;background-color:transparent}.submenu .footer-menu .photo-profile{width:32px;height:32px;border-radius:50%;margin:0}.submenu .footer-components{display:flex;justify-content:center;align-items:center}.submenu button{position:relative;left:10%;border:none;background-color:transparent}.submenu .photo-profile{width:32px;height:32px;border-radius:50%;margin:0}.submenu.opened-sub{z-index:1;display:flex;position:absolute;left:100%;height:100vh;justify-content:space-between}.submenu-footer{display:flex;flex-direction:row;justify-content:center;align-content:center;margin-bottom:14px;border-top:1px solid #2847a0;box-shadow:0 4px 8px #0000004d}.submenu-footer .subfooter-components{padding-top:16px}.submenu-footer span{font-weight:700;padding-left:10px}.search-bar{max-width:368px;height:38px;margin-top:24px;border:1px solid #ced4da;box-sizing:border-box;border-radius:8px}.opened-notif-sub{min-width:452px;display:none;background-color:#3265ee;box-sizing:border-box;flex-direction:column;overflow:hidden}.sidebar.closed{max-width:73px}.sidebar.closed span{display:none}.sidebar.closed span{white-space:nowrap;overflow:hidden}.sidebar.closed .logo-sispro{display:none}.sidebar.closed .list-menu{padding:0;margin-left:0;margin-right:0;display:flex;flex-direction:column;align-items:center}.sidebar.closed .list-menu span{opacity:0;pointer-events:none}.sidebar.closed .list-menu .text-closed{padding-bottom:11px;visibility:visible;display:block}.sidebar.closed .list-menu .text-opened{display:none;font-size:8px}.sidebar.closed .list-menu .chevron,.sidebar.closed .favoritos,.sidebar.closed .footer-components .button-opened{display:none}.sidebar.closed .footer-components .button-closed{display:block}.sidebar.closed .button-icons{border:none;background-color:transparent}.sidebar.closed .footer-components{display:flex;align-items:center}.sidebar.closed button{border:none;background-color:transparent;display:block}.sidebar.closed .photo-profile{width:32px;height:32px;border-radius:50%;margin:0}.sidebar-control{height:100vh;max-width:227.667px}.sidebar-control .main-content.closed{margin-left:0}.glb-text-width-120{max-width:120px}.profile-picture{display:inline-block;position:relative;width:100px;height:100px;border-radius:50%;overflow:hidden}.profile-picture img{width:100%;height:100%;object-fit:cover;border-radius:50%;clip-path:circle(50% at 50% 50%)}.image-div{width:50px;min-width:50px;height:50px;border-radius:100%;position:relative;overflow:hidden;z-index:1}.image-div #photoUser{width:146px;height:146px;top:-1px;left:-1px;object-fit:cover;position:relative;z-index:1;border:none;border-color:transparent}.dynamic-container{display:inline-block;white-space:nowrap;overflow:hidden}.custom-popover{width:1000px}\n"], dependencies: [{ kind: "directive", type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i5.ClickOutsideDirective, selector: "[clickOutside], [libClickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { kind: "component", type: i5.LibIconsComponent, selector: "lib-icon", inputs: ["iconName", "iconColor", "iconSize", "iconFill"] }, { kind: "component", type: i5.FooterComponent, selector: "[app-footer], app-footer, lib-footer" }, { kind: "directive", type: i9.PopoverDirective, selector: "[popover]", inputs: ["adaptivePosition", "boundariesElement", "popover", "popoverContext", "popoverTitle", "placement", "outsideClick", "triggers", "container", "containerClass", "isOpen", "delay"], outputs: ["onShown", "onHidden"], exportAs: ["bs-popover"] }, { kind: "directive", type: i10.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["adaptivePosition", "tooltip", "placement", "triggers", "container", "containerClass", "boundariesElement", "isOpen", "isDisabled", "delay", "tooltipHtml", "tooltipPlacement", "tooltipIsOpen", "tooltipEnable", "tooltipAppendToBody", "tooltipAnimation", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "tooltipFadeDuration", "tooltipTrigger"], outputs: ["tooltipChange", "onShown", "onHidden", "tooltipStateChanged"], exportAs: ["bs-tooltip"] }, { kind: "directive", type: i6.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i6.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i11.PrimaryDropdownComponent, selector: "app-primary-dropdown", inputs: ["buttonWasClicked"] }, { kind: "component", type: i12.SelecaoEstabelecimentosModalComponent, selector: "selecao-estabelecimentos-modal", outputs: ["onClose", "onSelected"] }, { kind: "component", type: i13.DynamicMenuComponent, selector: "app-dynamic-menu", inputs: ["submenuRef", "recebeParam", "titleSubmenu", "submenuList"], outputs: ["selectTemplate"] }, { kind: "component", type: i14.NotifSubmenuComponent, selector: "app-notif-submenu" }] }); }
|
|
221
219
|
}
|
|
222
220
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MenuLateralComponent, decorators: [{
|
|
223
221
|
type: Component,
|
|
@@ -232,4 +230,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
232
230
|
type: ContentChild,
|
|
233
231
|
args: [TemplateRef]
|
|
234
232
|
}] } });
|
|
235
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1sYXRlcmFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1hdXRoL3NyYy9saWIvY29tcG9uZW50cy9tZW51LWxhdGVyYWwvbWVudS9tZW51LWxhdGVyYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWF1dGgvc3JjL2xpYi9jb21wb25lbnRzL21lbnUtbGF0ZXJhbC9tZW51L21lbnUtbGF0ZXJhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU12QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVl4RSxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQ1Msa0JBQXdDLEVBQ3ZDLG1CQUF1QyxFQUN2QyxlQUErQixFQUMvQixhQUFrQyxFQUNsQyxlQUErQjtJQUN2QyxrREFBa0Q7SUFDMUMsT0FBZSxFQUNmLFlBQXlCO1FBUDFCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBc0I7UUFDdkMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUN2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0Isa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUUvQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsaUJBQVksR0FBWixZQUFZLENBQWE7UUErQ25CLDBCQUFxQixHQUFXLENBQUMsQ0FBQztRQUUzQyx3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SUFFTSxjQUFjLENBQUMsR0FBVztRQUMvQixPQUFPLG9EQUFvRCxHQUFHLEVBQUUsQ0FBQztJQUNuRSxDQUFDO0lBRUQsK0NBQStDO0lBRS9DLHlDQUF5QztJQUV6Qzs7O01BR0U7SUFDRixTQUFTLENBQUMsUUFBMEIsRUFBRSxPQUFlO1FBQ25ELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNsQyxLQUFLLEVBQUUsZ0NBQWdDO1lBQ3ZDLG1CQUFtQixFQUFFLEtBQUs7WUFDMUIsUUFBUSxFQUFFLEtBQUs7WUFDZixFQUFFLEVBQUUsT0FBTztTQUNaLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVUsQ0FBQyxPQUFlO1FBQ3hCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JDLENBQUM7K0dBN1BVLG9CQUFvQjttR0FBcEIsb0JBQW9CLG9HQXNEakIsV0FBVyxxUEM1RTNCLHFwVkFpTkE7OzRGRDNMYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCO3FRQXFESyxjQUFjO3NCQUE5QyxTQUFTO3VCQUFDLFlBQVk7Z0JBSU8sUUFBUTtzQkFBckMsU0FBUzt1QkFBQyxVQUFVO2dCQUNhLGNBQWM7c0JBQS9DLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQnNNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtYm9vdHN0cmFwL21vZGFsJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICduZ3gtc3AtaW5mcmEnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTGliQ3VzdG9tTWVudVNlcnZpY2UgfSBmcm9tICcuLy4uLy4uLy4uL2N1c3RvbS9jdXN0b20tbWVudS5zZXJ2aWNlJztcclxuXHJcbi8vaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnRzJztcclxuLy9pbXBvcnQgeyBQcm9qZWN0VXRpbHNlcnZpY2UgfSBmcm9tICdzcmMvYXBwL3Byb2plY3QvdXRpbHMvcHJvamVjdC11dGlscy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNZW51Q29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2N1c3RvbS9tZW51LWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmFnZS9hdXRoLXN0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE1lbnVTZXJ2aWNlc1NlcnZpY2UgfSBmcm9tICcuLi9tZW51LXNlcnZpY2VzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJTWVudUl0ZW1TdHJ1Y3R1cmUgfSBmcm9tICcuLi9tb2RlbC9pbWVudS1pdGVtLXN0cnVjdHVyZS5tb2RlbCc7XHJcbmltcG9ydCB7IElTdWJtZW51SXRlbVN0cnVjdHVyZSB9IGZyb20gJy4uL21vZGVsL2lzdWJtZW51LWl0ZW0tc3RydWN0dXJlLm1vZGVsJztcclxuaW1wb3J0IHsgVXN1YXJpb19JTUcgfSBmcm9tICcuLi9tb2RlbC91c3VhcmlvLWltZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1tZW51LWxhdGVyYWwnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LWxhdGVyYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21lbnUtbGF0ZXJhbC5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVudUxhdGVyYWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIF9jdXN0b21NZW51U2VydmljZTogTGliQ3VzdG9tTWVudVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9hdXRoU3RvcmFnZVNlcnZpY2U6IEF1dGhTdG9yYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgX2JzTW9kYWxTZXJ2aWNlOiBCc01vZGFsU2VydmljZSxcclxuICAgIHByaXZhdGUgX21lbnVTZXJ2aWNlczogTWVudVNlcnZpY2VzU2VydmljZSxcclxuICAgIHByaXZhdGUgX21lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcclxuICAgIC8vcHJpdmF0ZSBfcHJvamVjdFV0aWxTZXJ2aWNlOiBQcm9qZWN0VXRpbHNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgX2F1dGhTZXJ2aWNlOiBBdXRoU2VydmljZVxyXG4gICkge1xyXG4gICAgLy8gSW1wbGVtZW50YcOnw6NvIHF1ZSB2ZXJpZmljYSBldmVudG9zIGFjaW9uYWRvcyBuYSBjbGFzc2UgZGUgc2VydmljZS5cclxuICAgIHRoaXMuX21lbnVTZXJ2aWNlcy5nZXROZXdVc2VySW1hZ2VFdmVudCgpLnN1YnNjcmliZSgoKSA9PiB7IHRoaXMuZ2V0TWVudVVzZXJJbWcoKTsgfSlcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICBjb25zb2xlLmxvZyh0aGlzLm1lbnVDb25maWcpXHJcblxyXG4gICAgLy8gSW5zY3JldmEtc2Ugbm8gZXZlbnRvIE5hdmlnYXRpb25FbmQgcGFyYSByZWNlYmVyIG5vdGlmaWNhw6fDtWVzIHF1YW5kbyBhIHJvdGEgbXVkYXIsIHNlcnZlIHBhcmEgYXR1YWxpemFyIGEgc2VsZcOnw6NvIGRvIG1lbnUgY29ycmV0YW1lbnRlXHJcbiAgICB0aGlzLl9yb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLl9jdXN0b21NZW51U2VydmljZS5tZW51SXRlbXMgPSB0aGlzLl9jdXN0b21NZW51U2VydmljZS5tZW51Q29uZmlnLnVwZGF0ZVJvdXRlU2VsZWN0aW9uKHRoaXMuX3JvdXRlci51cmwsIHRoaXMuX2N1c3RvbU1lbnVTZXJ2aWNlLm1lbnVJdGVtcylcclxuICAgIH0pO1xyXG5cclxuICAgIGlmICghdGhpcy5fY3VzdG9tTWVudVNlcnZpY2UubWVudUR5bmFtaWMpIHtcclxuICAgICAgdGhpcy5fY3VzdG9tTWVudVNlcnZpY2UubWVudUNvbmZpZy5zZXRNZW51U3RhdGljKHRydWUpO1xyXG4gICAgICB0aGlzLl9jdXN0b21NZW51U2VydmljZS5tZW51SXRlbXMgPSB0aGlzLl9jdXN0b21NZW51U2VydmljZS5tZW51Q29uZmlnLmluaXRpYWxpemVNZW51KHRoaXMuX3JvdXRlci51cmwpOyAgICBcclxuXHJcbiAgICAgIC8vIE3DqXRvZG8gY29tIGN1c3RvbWl6YcOnw7VlcyBwYXJhIGluaWNpYWxpemHDp8OjbyBkbyBNZW51IEVzdMOhdGljb1xyXG4gICAgICB0aGlzLl9jdXN0b21NZW51U2VydmljZS5tZW51U3RhdGljT25Jbml0KCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgLy8gTcOpdG9kbyBjb20gY3VzdG9taXphw6fDtWVzIHBhcmEgaW5pY2lhbGl6YcOnw6NvIGRvIE1lbnUgRGluw6JtaWNvXHJcbiAgICAgIHRoaXMuX2N1c3RvbU1lbnVTZXJ2aWNlLm1lbnVEeW5hbWljT25Jbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5ub21lRXN0YWJlbGVjaW1lbnRvID0gdGhpcy5fYXV0aFN0b3JhZ2VTZXJ2aWNlLmluZnJhRXN0YWJOb21lO1xyXG4gICAgdGhpcy5mb290ZXJVc2VyTmFtZSA9IHRoaXMuX2F1dGhTdG9yYWdlU2VydmljZS51c2VyTmFtZTtcclxuXHJcbiAgICB0aGlzLmNoZWNrRm9yQ2FjaGVkSW1hZ2UoKTtcclxuXHJcbiAgICB0aGlzLmdldFVzZXJFbWFpbCgpO1xyXG4gIH1cclxuXHJcbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBQUk9QRVJUSUVTIDw9PT09PT09PT09XHJcblxyXG4gIC8vICNyZWdpb24gUFJJVkFURVxyXG5cclxuICAvLyBFUklDSzogdm91IG1hbnRlciBlc3RlIHBvciBlbnF1YW50byBwYXJhIHF1YW5kbyBmb3IgbmVjZXNzw6FyaW8gZXN0YSBmdW5jaW9uYWxpZGFkZSBldSBjb25zaWdhIHJlZmF6w6otbGFzIHNlbSBtdWl0byBwcm9ibGVtYVxyXG4gIEBWaWV3Q2hpbGQoXCJub3RpZl9tZW51XCIpIHByaXZhdGUgbm90aWZfdGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvLyAjcmVnaW9uIFBVQkxJQ1xyXG5cclxuICBAVmlld0NoaWxkKCdtZW51TGluaycpIHB1YmxpYyBtZW51TGluaz86IEhUTUxBbmNob3JFbGVtZW50O1xyXG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIHB1YmxpYyBkZXNpcmVkQ29udGVudD86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBNT0RBTF9FU1RBQkVMRUNJTUVOVE86IG51bWJlciA9IDE7XHJcblxyXG4gIHB1YmxpYyBub21lRXN0YWJlbGVjaW1lbnRvOiBzdHJpbmcgPSAnRXN0YWJlbGVjaW1lbnRvIHBhZHLDo28nO1xyXG4gIHB1YmxpYyB0aXRsZVN1Ym1lbnU6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIHN1Ym1lbnVMaXN0OiAoSVN1Ym1lbnVJdGVtU3RydWN0dXJlIHwgdW5kZWZpbmVkKVtdID0gW107XHJcblxyXG4gIHB1YmxpYyBtZXNzYWdlSWZDbGlja2VkID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuXHJcbiAgLyoqIEVzdGEgdmFyacOhdmVsIMOpIHVzYWRhIG5hIGFiZXJ0dXJhIGRvIHN1Ym1lbnUgZSBkbyBzdWJtZW51IHNlY3VuZMOhcmlvIHBhcmEgXHJcbiAgICAqIHF1ZSBhIGZ1bsOnw6NvIG9uQ2xpY2tlZE91dHNpZGUoKSBxdWUgZXN0w6EgbmEgc2VndW5kYSBkaXYgcHJpbmNpcGFsIGRvIEhUTUwgZG9cclxuICAgICogY29tcG9uZW50ZSBuw6NvIHNlamEgYXRpdmFkYSwgcG9pcyBzZSBlbGEgZm9yIGF0aXZhZGEgZWxhIGlyw6EgZmVjaGFyIG8gbWVudVxyXG4gICAgKiBsYXRlcmFsLCBlIHF1YW5kbyB2YW1vcyBkbyBzdWJtZW51IHBhcmEgbyBzdWJtZW51IHNlY3VuZMOhcmlvIG7Do28gcXVlcmVtb3NcclxuICAgICogZmVjaGFyIG8gbWVudSBsYXRlcmFsLCBlIHF1YW5kbyB2YW1vcyBkbyBzdWJtZW51IHNlY3VuZMOhcmlvIHBhcmEgbyBzdWJtZW51XHJcbiAgICAqIHRhbWLDqW0gbsOjbyBxdWVyZW1vcyBmZWNoYXIgbyBtZW51IGxhdGVyYWw7XHJcbiAgKi9cclxuICBwdWJsaWMgY2xvc2VNZW51OiBib29sZWFuID0gdHJ1ZTtcclxuXHJcbiAgLyoqIFV0aWxpemFkYSBjb21vIGEgZm9udGUgZGEgaW1hZ2VtIGRlIHBlcmZpbCBkbyB1c3XDoXJpbyBsb2dhZG8gbm8gc2lzdGVtYS4gKi9cclxuICBwdWJsaWMgZm9vdGVyVXNlckltZ1NyYzogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgLyoqIEVtYWkgZG8gdXN1w6FyaW8gbG9nYWRvIHBhcmEgc2VyIGV4aWJpZG8gbm8gcG9wb3ZlciAqL1xyXG4gIHB1YmxpYyBmb290ZXJVc2VyRW1haWw6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIC8qKiBOb21lIGRvIHVzdcOhcmlvIGxvZ2FkbyBwYXJhIHNlciBleGliaWRvIG5vIHJvZGFww6kgZG8gbWVudS4gKi9cclxuICBwdWJsaWMgZm9vdGVyVXNlck5hbWU6IHN0cmluZyA9IFwiVXN1w6FyaW9cIjtcclxuXHJcbiAgcHVibGljIGlzUG9wb3ZlclZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0JhbGxvb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblxyXG5cclxuICAvLyBwcm9wcmllZGFkZXMgaW5pY2lhZGFzIHF1YW5kbyBwYXNzYXIgbyBDdXN0b21NZW51U2VydmljZVxyXG5cclxuICBwdWJsaWMgbWVudUR5bmFtaWM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgbWVudUNvbmZpZzogTWVudUNvbmZpZ1NlcnZpY2UgPSBuZXcgTWVudUNvbmZpZ1NlcnZpY2U7XHJcblxyXG4gIC8vICNlbmRyZWdpb24gUFVCTElDXHJcblxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gUFJPUEVSVElFUyA8PT09PT09PT09PVxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFNFUlZJQ0VTIDw9PT09PT09PT09XHJcblxyXG4gIC8vICNyZWdpb24gR0VUXHJcbiAgcHJpdmF0ZSBnZXRFc3RhYmVsZWNpbWVudG9TZXNzaW9uKGVzdGFiSUQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5fbWVudVNlcnZpY2VzLmdldEVzdGFiZWxlY2ltZW50b1Nlc3Npb24oZXN0YWJJRCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogcmVzcG9uc2UgPT4ge1xyXG4gICAgICAgIHRoaXMubm9tZUVzdGFiZWxlY2ltZW50byA9IHJlc3BvbnNlLkluZnJhRXN0YWJOb21lO1xyXG4gICAgICAgIHRoaXMuX2F1dGhTdG9yYWdlU2VydmljZS5pbmZyYUVtcHJlc2FJZCA9IHJlc3BvbnNlLkluZnJhRW1wcmVzYUlkO1xyXG4gICAgICAgIHRoaXMuX2F1dGhTdG9yYWdlU2VydmljZS5pbmZyYUVtcHJlc2FOb21lID0gcmVzcG9uc2UuSW5mcmFFbXByZXNhTm9tZTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IGVycm9yID0+IHtcclxuICAgICAgICAvL3RoaXMuX3Byb2plY3RVdGlsU2VydmljZS5zaG93SHR0cEVycm9yKGVycm9yKTsgXHJcbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2Uuc2hvd0FsZXJ0RGFuZ2VyKGVycm9yKTtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRNZW51VXNlckltZygpOiB2b2lkIHtcclxuICAgIHRoaXMuX21lbnVTZXJ2aWNlcy5nZXRJbWFnZW1NZW51KCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogcmVzcG9uc2UgPT4geyB0aGlzLmZvb3RlclVzZXJJbWdTcmMgPSByZXNwb25zZS5JbmZyYVVzdWFyaW9JbWcuSU1BR0VNOyB9LFxyXG4gICAgICBlcnJvcjogZXJyb3IgPT4ge1xyXG4gICAgICAgIC8vdGhpcy5fcHJvamVjdFV0aWxTZXJ2aWNlLnNob3dIdHRwRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnNob3dBbGVydERhbmdlcihlcnJvcik7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRVc2VyRW1haWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9tZW51U2VydmljZXMuZ2V0VXN1YXJpb0VtYWlsKCkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogcmVzcG9uc2UgPT4geyB0aGlzLmZvb3RlclVzZXJFbWFpbCA9IHJlc3BvbnNlLkVtYWlsOyB9LFxyXG4gICAgICBlcnJvcjogZXJyb3IgPT4ge1xyXG4gICAgICAgIC8vdGhpcy5fcHJvamVjdFV0aWxTZXJ2aWNlLnNob3dIdHRwRXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnNob3dBbGVydERhbmdlcihlcnJvcik7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvbiBHRVRcclxuXHJcbiAgLy8gI3JlZ2lvbiBVUERBVEVcclxuICBwdWJsaWMgdXBkYXRlTGFzdExvZ0VzdGFiZWxlY2ltZW50byhlc3RhYjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9tZW51U2VydmljZXMudXBkYXRlTGFzdExvZ0VzdGFiSUQoZXN0YWIuc3BsaXQoXCIgLSBcIilbMF0pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6ICgpID0+IHtcclxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5zaG93QWxlcnRTdWNjZXNzKCdFc3RhYmVsZWNpbWVudG8gYWx0ZXJhZG8gY29tIHN1Y2Vzc28hJyk7XHJcblxyXG4gICAgICAgIHRoaXMuZ2V0RXN0YWJlbGVjaW1lbnRvU2Vzc2lvbihlc3RhYi5zcGxpdChcIiAtIFwiKVswXSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcblxyXG4gICAgdGhpcy5fYXV0aFN0b3JhZ2VTZXJ2aWNlLmluZnJhRXN0YWJJZCA9IGVzdGFiLnNwbGl0KFwiIC0gXCIpWzBdO1xyXG4gICAgdGhpcy5fYXV0aFN0b3JhZ2VTZXJ2aWNlLmluZnJhRXN0YWJOb21lID0gZXN0YWIuc3BsaXQoXCIgLSBcIilbMV07XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb24gVVBEQVRFXHJcblxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gU0VSVklDRVMgPD09PT09PT09PT1cclxuXHJcbiAgLy8gI3JlZ2lvbiA9PT09PT09PT09PiBVVElMSVRJRVMgPD09PT09PT09PT1cclxuXHJcbiAgcHVibGljIHRvZ2dsZVBvcG92ZXIoKSB7IHRoaXMuc2hvd0JhbGxvb24gPSAhdGhpcy5zaG93QmFsbG9vbjsgfVxyXG5cclxuICBwdWJsaWMgZHJvcGRvd25XYXNPcGVuZWQodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHsgdGhpcy5tZXNzYWdlSWZDbGlja2VkLm5leHQodmFsdWUpOyB9XHJcblxyXG4gIHB1YmxpYyBvcGVuRXhwYW5zaWJsZU1lbnUocmVmOiBIVE1MRGl2RWxlbWVudCk6IHZvaWQge1xyXG4gICAgcmVmLmNsYXNzTGlzdC50b2dnbGUoXCJjbG9zZWRcIik7XHJcbiAgICByZWYuY2xhc3NMaXN0LnRvZ2dsZShcImNvbFwiKTtcclxuICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoXCIuc2lkZWJhci1jb250cm9sXCIpPy5jbGFzc0xpc3QudG9nZ2xlKFwiY29sXCIpO1xyXG5cclxuICAgIC8vIE3DqXRvZG8gY29tIGN1c3RvbWl6YcOnw7VlcyBwYXJhIGluaWNpYWxpemHDp8OjbyBkbyBNZW51IEVzdMOhdGljb1xyXG4gICAgdGhpcy5fY3VzdG9tTWVudVNlcnZpY2UubWVudW9wZW5FeHBhbnNpYmxlTWVudShyZWYpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5TdWJtZW51KG1lbnU6IElNZW51SXRlbVN0cnVjdHVyZSwgcmVmOiBIVE1MRGl2RWxlbWVudCwgZGVzaXJlZE1lbnU6IFRlbXBsYXRlUmVmPGFueT4pOiB2b2lkIHtcclxuXHJcbiAgICBpZiAobWVudS5jaGlsZHJlbiAmJiBtZW51LmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy50aXRsZVN1Ym1lbnUgPSBtZW51LmxhYmVsXHJcbiAgICAgIHRoaXMuZGVzaXJlZENvbnRlbnQgPSBkZXNpcmVkTWVudTtcclxuICAgICAgcmVmLmNsYXNzTGlzdC5yZW1vdmUoXCJvcGVuZWQtbm90aWYtc3ViXCIpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuc3VibWVudUxpc3QgPT09IG1lbnUuY2hpbGRyZW4pIHtcclxuICAgICAgICB0aGlzLmNsb3NlTWVudSA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKCFyZWYuY2xhc3NMaXN0LmNvbnRhaW5zKFwib3BlbmVkLXN1YlwiKSkgeyByZWYuY2xhc3NMaXN0LnRvZ2dsZShcIm9wZW5lZC1zdWJcIik7IH1cclxuICAgICAgdGhpcy5zdWJtZW51TGlzdCA9IG1lbnUuY2hpbGRyZW47XHJcbiAgICB9XHJcblxyXG4gICAgZWxzZSBpZiAoIW1lbnUuY2hpbGRyZW4gfHwgKG1lbnUuY2hpbGRyZW4gJiYgbWVudS5jaGlsZHJlbi5sZW5ndGggPT0gMCkpIHtcclxuICAgICAgdGhpcy5zdWJtZW51TGlzdCA9IFtdO1xyXG4gICAgICByZWYuY2xhc3NMaXN0LnRvZ2dsZShcInNlbGVjdGVkSXRlbVwiKTtcclxuICAgICAgdGhpcy5vbkNsaWNrZWRPdXRzaWRlKG5ldyBFdmVudChcIlwiKSwgcmVmKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIHB1YmxpYyBvbkNsaWNrZWRPdXRzaWRlKGU6IEV2ZW50LCByZWY6IEhUTUxEaXZFbGVtZW50KTogdm9pZCB7XHJcbiAgLy8gICByZWYuY2xhc3NMaXN0LnJlbW92ZShcIm9wZW5lZC1zdWJcIik7XHJcbiAgLy8gICB0aGlzLnN1Ym1lbnVMaXN0ID0gW107XHJcbiAgLy8gfVxyXG5cclxuICBwdWJsaWMgb25DbGlja2VkT3V0c2lkZShlOiBFdmVudCwgcmVmOiBIVE1MRGl2RWxlbWVudCk6IHZvaWQge1xyXG4gICAgaWYgKHJlZikge1xyXG4gICAgICAgIHJlZi5jbGFzc0xpc3QucmVtb3ZlKFwib3BlbmVkLXN1YlwiKTtcclxuICAgICAgICB0aGlzLnN1Ym1lbnVMaXN0ID0gW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKHJlZilcclxuICAgICAgICBjb25zb2xlLndhcm4oJ3JlZiBpcyB1bmRlZmluZWQgb3IgbnVsbCcpO1xyXG4gICAgfVxyXG59XHJcblxyXG4gIC8vICNyZWdpb24gTUVOVSBGT09URVIgVVNFUiBJTUFHRVxyXG4gIHByaXZhdGUgdmFsaWRhdGVDYWNoZWRJbWcoZm9vdGVySW1nOiBVc3VhcmlvX0lNRyB8IG51bGwpOiBib29sZWFuIHtcclxuICAgIGxldCB1c3VhcmlvSWQ6IHN0cmluZyA9IHRoaXMuX2F1dGhTdG9yYWdlU2VydmljZS5pbmZyYVVzdWFyaW9JZDtcclxuXHJcbiAgICBpZiAoIWZvb3RlckltZyB8fCBmb290ZXJJbWcgPT0gbnVsbCkgeyByZXR1cm4gdHJ1ZTsgfVxyXG5cclxuICAgIGlmICh1c3VhcmlvSWQgIT0gZm9vdGVySW1nLlVTVUFSSU9JRCkgeyByZXR1cm4gdHJ1ZTsgfVxyXG5cclxuICAgIHRoaXMuZm9vdGVyVXNlckltZ1NyYyA9IGZvb3RlckltZy5GSUxFO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0ZvckNhY2hlZEltYWdlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgaXNBUElSZXF1ZXN0TmVlZGVkID0gdGhpcy52YWxpZGF0ZUNhY2hlZEltZyh0aGlzLl9tZW51U2VydmljZXMuZ2V0TWVudUZvb3RlckltZygpKTtcclxuICAgIGlmIChpc0FQSVJlcXVlc3ROZWVkZWQpIHsgdGhpcy5nZXRNZW51VXNlckltZygpOyB9XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb24gTUVOVSBGT09URVIgVVNFUiBJTUFHRVxyXG5cclxuICBwdWJsaWMgbG9nb3V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fYXV0aFNlcnZpY2UubG9nb3V0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RXh0ZXJuYWxVcmwodXJsOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBgaHR0cHM6Ly9zaXNjYW5kZXN2Ni5zaXNwcm8uY29tLmJyL1Npc3Byb0VycENsb3VkLyR7dXJsfWA7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IFVUSUxJVElFUyA8PT09PT09PT09PVxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IE1PREFMUyA8PT09PT09PT09PVxyXG5cclxuICAvKiogRnVuw6fDo28gc2ltcGxlcyBjb20gbyBvYmpldGl2byBkZSBhYnJpciBvcyBtb2RhaXMgbm8gY2VudHJvIGRhIHRlbGEuXHJcbiAgICogQHBhcmFtIHRlbXBsYXRlIFRlbXBsYXRlIEhUTUwgZG8gbW9kYWwgcXVlIHNlcsOhIGFiZXJ0by5cclxuICAgKiBAcGFyYW0gbW9kYWxJRCBJRCBkbyBtb2RhbCBxdWUgc2Vyw6EgYWJlcnRvLCBwYXJhIHF1ZSBwb3NzYSBzZXIgcmVmZXJlbmNpYWRvIGRlcG9pcy5cclxuICAqL1xyXG4gIG9wZW5Nb2RhbCh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiwgbW9kYWxJRDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9ic01vZGFsU2VydmljZS5zaG93KHRlbXBsYXRlLCB7XHJcbiAgICAgIGNsYXNzOiAnbW9kYWwtZGlhbG9nLWNlbnRlcmVkIG1vZGFsLWxnJyxcclxuICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogZmFsc2UsXHJcbiAgICAgIGtleWJvYXJkOiBmYWxzZSxcclxuICAgICAgaWQ6IG1vZGFsSURcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIEZ1bsOnw6NvIHNpbXBsZXMgY29tIG8gb2JqZXRpdm8gZGUgZmVjaGFyIG9zIG1vZGFpcyBxdWUgZXN0aXZlcmVtIGFiZXJ0b3MgKGJhc2VhZG9zIHBlbG8gSUQpLlxyXG4gICAqIEBwYXJhbSBtb2RhbElEIElEIGRvIG1vZGFsIHF1ZSBzZXLDoSBmZWNoYWRvLlxyXG4gICAqL1xyXG4gIGNsb3NlTW9kYWwobW9kYWxJRDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9ic01vZGFsU2VydmljZS5oaWRlKG1vZGFsSUQpO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBNT0RBTFMgPD09PT09PT09PT1cclxuXHJcbn1cclxuIiwiPCEtLSAjcmVnaW9uIE1BSU4gQ09OVEVOVCAtLT5cclxuPGRpdiBjbGFzcz1cIm1haW4gY29sLTEyXCI+XHJcblxyXG4gIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwMHZoOyB6LWluZGV4OiAzO1wiIGNsYXNzPVwic2lkZWJhci1jb250cm9sIHBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleCBmbGV4LXJvd1wiIFxyXG4gICAgKGNsaWNrT3V0c2lkZSk9XCJjbG9zZU1lbnUgPT0gdHJ1ZSA/IG9uQ2xpY2tlZE91dHNpZGUoJGV2ZW50LCBzdWJtZW51X3JlZikgOiBjbG9zZU1lbnUgPSB0cnVlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2lkZWJhciB7e19jdXN0b21NZW51U2VydmljZS50aGVtZUNvbG9yfX0gY2xvc2VkXCIgI3NpZGViYXI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWhlYWRlclwiPlxyXG4gICAgICAgIDx1bD5cclxuICAgICAgICAgIDxsaSBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvZ28taGFtYnVyZ3VlclwiPlxyXG4gICAgICAgICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2ljb25zL2xvZ290aXBvLXNpc3Byby5zdmdcIiBhbHQ9XCJsb2dvLXNpc3Byb1wiIGNsYXNzPVwibG9nby1zaXNwcm9cIiB0aXRsZT1cImxvZ29cIiB3aWR0aD1cIjEzNnB4XCIgaGVpZ2h0PVwiNDhweFwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24taGFtYnVyZ3VlclwiIChjbGljayk9XCJvcGVuRXhwYW5zaWJsZU1lbnUoc2lkZWJhcilcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2ljb25zL21lbnUuc3ZnXCIgYWx0PVwibWVudSBoYW1idXJndWVyXCI+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9saT5cclxuXHJcbiAgICAgICAgICA8IS0tICNyZWdpb24gTcOTRFVMT1MgLS0+XHJcbiAgICAgICAgICA8bGkgY2xhc3M9XCJtYi0zXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogOHB4OyBtYXJnaW4tcmlnaHQ6IDhweFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZHJvcGRvd25XYXNPcGVuZWQodHJ1ZSlcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJkcm9wZG93bi1idXR0b25cIiBkYXRhLWJzLXRvZ2dsZT1cImRyb3Bkb3duXCJcclxuICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiIGRhdGEtYnMtYXV0by1jbG9zZT1cIm91dHNpZGVcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwiX2N1c3RvbU1lbnVTZXJ2aWNlLm1vZHVsZUltZyAhPSAnJzsgZWxzZSBtb2R1bGVTVkdcIiBbc3JjXT1cIl9jdXN0b21NZW51U2VydmljZS5tb2R1bGVJbWdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcy0yXCI+IHt7IHRoaXMuX2N1c3RvbU1lbnVTZXJ2aWNlLm1vZHVsZU5hbWUgfX0gPGxpYi1pY29uIGljb25OYW1lPVwic2V0YS1kaXJlaXRhXCIgaWNvbkNvbG9yPVwid2hpdGVcIiAvPiA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI21vZHVsZVNWRz5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLWljb24gaWNvbkNvbG9yPVwid2hpdGVcIiBbaWNvbk5hbWVdPVwiX2N1c3RvbU1lbnVTZXJ2aWNlLm1vZHVsZVN2Z1wiLz5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgI2Ryb3Bkb3duX3JlZj5cclxuICAgICAgICAgICAgICAgIDxhcHAtcHJpbWFyeS1kcm9wZG93biBbYnV0dG9uV2FzQ2xpY2tlZF09XCJtZXNzYWdlSWZDbGlja2VkXCI+PC9hcHAtcHJpbWFyeS1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICA8IS0tICNlbmRyZWdpb24gTcOTRFVMT1MgLS0+XHJcblxyXG4gICAgICAgICAgPCEtLSAjcmVnaW9uIEVTVEFCRUxFQ0lNRU5UT1MgLS0+XHJcbiAgICAgICAgICA8bGkgY2xhc3M9XCJteC0zXCIgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxNnB4O1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1lc3RhYmVsZWNpbWVudG9cIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGJnLXRyYW5zcGFyZW50IGJvcmRlci0wXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuTW9kYWwobW9kYWxFc3RhYmVsZWNpbWVudG8sIE1PREFMX0VTVEFCRUxFQ0lNRU5UTylcIlxyXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBdPVwiIXNpZGViYXIuY2xhc3NMaXN0LmNvbnRhaW5zKCdjbG9zZWQnKSA/ICcnIDogbm9tZUVzdGFiZWxlY2ltZW50b1wiIHBsYWNlbWVudD1cInJpZ2h0XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPGxpYi1pY29uIGNsYXNzPVwiY29sLTFcIiBpY29uTmFtZT1cInByZWRpb1wiIGljb25Db2xvcj1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIXNpZGViYXIuY2xhc3NMaXN0LmNvbnRhaW5zKCdjbG9zZWQnKVwiIGNsYXNzPVwiY29sLTkgcHMtMiBnbGItdGV4dC13aWR0aC0xNjAgdGV4dC1zdGFydCB0ZXh0LXRydW5jYXRlXCI+IHt7IG5vbWVFc3RhYmVsZWNpbWVudG8gfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGxpYi1pY29uICpuZ0lmPVwiIXNpZGViYXIuY2xhc3NMaXN0LmNvbnRhaW5zKCdjbG9zZWQnKVwiIGNsYXNzPVwiY29sLTFcIiBpY29uTmFtZT1cInNldGEtZGlyZWl0YVwiIGljb25Db2xvcj1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPCEtLSAjZW5kcmVnaW9uIEVTVEFCRUxFQ0lNRU5UT1MgLS0+XHJcblxyXG4gICAgICAgIDwvdWw+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gI3JlZ2lvbiBNRU5VUyBERSBOQVZFR0HDh8ODTyAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1haW4tbWVudVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LW1lbnUgcHgtMiBwYi0xXCI+XHJcblxyXG4gICAgICAgICAgICA8IS0tICNyZWdpb24gTUVOVSBESU7Dgk1JQ08gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkeW5hbWljLW1lbnVcIj5cclxuICAgICAgICAgICAgICA8dWwgI2R5bmFtaWNfbWVudV9pdGVtcyAqbmdJZj1cIl9jdXN0b21NZW51U2VydmljZS5tZW51SXRlbXM7IGVsc2UgaXNMb2FkaW5nXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBtZW51SXRlbSBvZiBfY3VzdG9tTWVudVNlcnZpY2UubWVudUl0ZW1zOyBsZXQgaSA9IGluZGV4XCIgXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC0xIHJvdW5kZWRcIiBcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5TdWJtZW51KG1lbnVJdGVtLCBzdWJtZW51X3JlZiwgZHluYW1pY19tZW51KVwiIFxyXG4gICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRJdGVtXT1cIm1lbnVJdGVtLmlzU2VsZWN0ZWRcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwiIW1lbnVJdGVtLmlzRXh0ZXJuYWw7IGVsc2UgZXh0ZXJuYWxNZW51XCJcclxuICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJtZW51SXRlbS5yb3V0ZSAhPSAnJyA/IG1lbnVJdGVtLnJvdXRlIDogbnVsbFwiIFxyXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCInaXRlbScgKyBtZW51SXRlbS5pZFwiIFxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwXT1cIiFzaWRlYmFyLmNsYXNzTGlzdC5jb250YWlucygnY2xvc2VkJykgPyAnJyA6IG1lbnVJdGVtLmxhYmVsXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiIGNsYXNzPVwidy0xMDAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBidXR0b24taWNvbnMgdGV4dC1kZWNvcmF0aW9uLW5vbmUgcC0xIGdsYi1jdXJzb3ItcG9pbnRlclwiIFxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJzaWRlYmFyLmNsYXNzTGlzdC5jb250YWlucygnY2xvc2VkJykgPyAnanVzdGlmeS1jb250ZW50LWNlbnRlcicgOiAnanVzdGlmeS1jb250ZW50LWJldHdlZW4nXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxsaWItaWNvbiAqbmdJZj1cIiFtZW51SXRlbS5pY29uLmluY2x1ZGVzKCdhc3NldHMvaWNvbnMnKTsgZWxzZSBpY29uSW1nXCIgW2ljb25OYW1lXT1cIm1lbnVJdGVtLmljb25cIiBpY29uQ29sb3I9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Bhbi1tYWluXCI+e3sgbWVudUl0ZW0ubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2ljb25JbWc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJtZW51SXRlbS5pY29uXCIgW2FsdF09XCInaWNvbmU6ICcgKyBtZW51SXRlbS5sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLWljb24gKm5nSWY9XCIobWVudUl0ZW0uY2hpbGRyZW4gJiYgbWVudUl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkgJiYgIXNpZGViYXIuY2xhc3NMaXN0LmNvbnRhaW5zKCdjbG9zZWQnKVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgaWNvbk5hbWU9XCJzZXRhLWRpcmVpdGFcIiBpY29uQ29sb3I9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNleHRlcm5hbE1lbnU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiZ2V0RXh0ZXJuYWxVcmwobWVudUl0ZW0ucm91dGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidpdGVtJyArIG1lbnVJdGVtLmlkXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcF09XCIhc2lkZWJhci5jbGFzc0xpc3QuY29udGFpbnMoJ2Nsb3NlZCcpID8gJycgOiBtZW51SXRlbS5sYWJlbFwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiIGNsYXNzPVwidy0xMDAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBidXR0b24taWNvbnMgdGV4dC1kZWNvcmF0aW9uLW5vbmUgcC0xIGdsYi1jdXJzb3ItcG9pbnRlclwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cInNpZGViYXIuY2xhc3NMaXN0LmNvbnRhaW5zKCdjbG9zZWQnKSA/ICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJyA6ICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbidcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItaWNvbiAqbmdJZj1cIiFtZW51SXRlbS5pY29uLmluY2x1ZGVzKCdhc3NldHMvaWNvbnMnKTsgZWxzZSBpY29uSW1nRXh0ZXJuYWxcIiBbaWNvbk5hbWVdPVwibWVudUl0ZW0uaWNvblwiIGljb25Db2xvcj1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNwYW4tbWFpblwiPnt7IG1lbnVJdGVtLmxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2ljb25JbWdFeHRlcm5hbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwibWVudUl0ZW0uaWNvblwiIFthbHRdPVwiJ2ljb25lOiAnICsgbWVudUl0ZW0ubGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxpYi1pY29uICpuZ0lmPVwiKG1lbnVJdGVtLmNoaWxkcmVuICYmIG1lbnVJdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApICYmICFzaWRlYmFyLmNsYXNzTGlzdC5jb250YWlucygnY2xvc2VkJylcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbk5hbWU9XCJzZXRhLWRpcmVpdGFcIiBpY29uQ29sb3I9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaXNMb2FkaW5nPlxyXG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHNwaW5uZXItYm9yZGVyLXNtIG10LTJcIiByb2xlPVwic3RhdHVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9saT5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPCEtLSAjZW5kcmVnaW9uIE1FTlUgRElOw4JNSUNPIC0tPlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPCEtLSAjZW5kcmVnaW9uIE1FTlVTIERFIE5BVkVHQcOHw4NPIC0tPlxyXG5cclxuICAgICAgPCEtLSAjcmVnaW9uIEZPT1RFUiAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImZvb3Rlci1tZW51XCIgKG1vdXNlZW50ZXIpPVwic2hvd0JhbGxvb24gPSB0cnVlXCIgKG1vdXNlbGVhdmUpPVwic2hvd0JhbGxvb24gPSBmYWxzZVwiXHJcbiAgICAgICAgW3BvcG92ZXJdPVwicG9wb3ZlckNvbnRlbnRcIiBwbGFjZW1lbnQ9XCJyaWdodCBib3R0b21cIiBbb3V0c2lkZUNsaWNrXT1cInRydWVcIiBjb250YWluZXJDbGFzcz1cIndpZHRoOiAyMDBweFwiID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLWNvbXBvbmVudHMgcHMtMSBwdC0yXCIgW2NsYXNzLm9wZW5dPVwic2hvd0JhbGxvb25cIj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJmb290ZXJVc2VySW1nU3JjOyBlbHNlIG5vVXNlckltZ1wiIGNsYXNzPVwicGhvdG8tcHJvZmlsZSBtcy0xXCJcclxuICAgICAgICAgICAgICBbc3JjXT1cIlsnZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwnICsgZm9vdGVyVXNlckltZ1NyY11cIiBhbHQ9XCJmb3RvLXBlcmZpbFwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vVXNlckltZz5cclxuICAgICAgICAgICAgICA8bGliLWljb24gaWNvbk5hbWU9XCJjb250cmFwYXJ0ZVwiIGljb25Db2xvcj1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdsYi10ZXh0LXdpZHRoLTEyMCB3LWF1dG8gZnctYm9sZCB0ZXh0LXN0YXJ0IHRleHQtdHJ1bmNhdGUgbXMtMSBtZS0xXCI+XHJcbiAgICAgICAgICAgICAge3sgZm9vdGVyVXNlck5hbWUgfX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICBcclxuICAgICAgPG5nLXRlbXBsYXRlICNwb3BvdmVyQ29udGVudD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLW1lbnVcIiBzdHlsZT1cIndpZHRoOiAxMDAwcHg7XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPiBcclxuICAgICAgICAgICAgPGltZyAqbmdJZj1cImZvb3RlclVzZXJJbWdTcmM7IGVsc2Ugbm9Vc2VySW1nXCIgY2xhc3M9XCJwaG90by1wcm9maWxlXCJcclxuICAgICAgICAgICAgICBbc3JjXT1cIlsnZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwnICsgZm9vdGVyVXNlckltZ1NyY11cIiBhbHQ9XCJmb3RvLXBlcmZpbFwiPiBcclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub1VzZXJJbWc+XHJcbiAgICAgICAgICAgICAgPGxpYi1pY29uIGljb25OYW1lPVwiY29udHJhcGFydGVcIiBpY29uQ29sb3I9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBtcy0xXCI+IFxyXG4gICAgICAgICAgICAgIDxkaXYgW3Rvb2x0aXBdPVwiZm9vdGVyVXNlck5hbWVcIiBjbGFzcz1cImR5bmFtaWMtY29udGFpbmVyXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm93cmFwOyBmbGV4LWdyb3c6IDE7bWF4LXdpZHRoOiAyMDBweDsgZm9udC1zaXplOiAxNnB4O1wiPnt7Zm9vdGVyVXNlck5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgW3Rvb2x0aXBdPVwiZm9vdGVyVXNlckVtYWlsXCIgY2xhc3M9XCJkeW5hbWljLWNvbnRhaW5lclwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDsgZm9udC1zaXplOiAxMnB4OyBmbGV4LWdyb3c6IDE7bWF4LXdpZHRoOiAyMDBweDtcIj57e2Zvb3RlclVzZXJFbWFpbH19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGhyIGNsYXNzPVwibWItMiBtdC0yXCI+XHJcbiAgICAgICAgPGRpdiByb3V0ZXJMaW5rPVwibWV1LXBlcmZpbFwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJ0b2dnbGVQb3BvdmVyKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG4gICAgICAgICAgPGxpYi1pY29uIFtpY29uU2l6ZV09XCInc21hbGwnXCIgaWNvbk5hbWU9XCJjb250cmFwYXJ0ZVwiLz4gTWV1IFBlcmZpbFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yXCIgKGNsaWNrKT1cImxvZ291dCgpXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCI+XHJcbiAgICAgICAgICA8bGliLWljb24gW2ljb25TaXplXT1cIidzbWFsbCdcIiAgaWNvbk5hbWU9XCJsb2dvdXRcIi8+IFNhaXJcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPCEtLSAjZW5kcmVnaW9uIEZPT1RFUiAtLT5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic3VibWVudVwiICNzdWJtZW51X3JlZj5cclxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImRlc2lyZWRDb250ZW50ICE9PSBudWxsXCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZXNpcmVkQ29udGVudCE7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHN1Ym1lbnVMaXN0fVwiPjwvbmctY29udGVudD5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIFxyXG4gIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnQgY29sIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1jb250ZW50LWJldHdlZW5cIiBpZD1cImJvZHktY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIj5cclxuICAgICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGFwcC1mb290ZXI+PC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuPCEtLSAjZW5kcmVnaW9uIE1BSU4gQ09OVEVOVCAtLT5cclxuXHJcbjwhLS0gI3JlZ2lvbiBURU1QTEFURVMgLS0+XHJcbjwhLS0gdGVtIHF1ZSBwZXJndW50YXIgcHJvIEVyaWNrIC0tPlxyXG48IS0tIFtzdWJtZW51UmVmXT1cInN1Ym1lbnVfcmVmXCIgIC0tPlxyXG48bmctdGVtcGxhdGUgI2R5bmFtaWNfbWVudSBsZXQtZGF0YT5cclxuICA8YXBwLWR5bmFtaWMtbWVudSBcclxuICAgIFtzdWJtZW51TGlzdF09XCJkYXRhXCJcclxuICAgIFt0aXRsZVN1Ym1lbnVdPVwidGl0bGVTdWJtZW51XCJcclxuICAgIFtzdWJtZW51UmVmXT1cInN1Ym1lbnVfcmVmXCJcclxuICAgIFtyZWNlYmVQYXJhbV09XCJvbkNsaWNrZWRPdXRzaWRlLmJpbmQodGhpcylcIj5cclxuICA8L2FwcC1keW5hbWljLW1lbnU+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI25vdGlmX21lbnU+XHJcbiAgPGFwcC1ub3RpZi1zdWJtZW51PjwvYXBwLW5vdGlmLXN1Ym1lbnU+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tICNyZWdpb24gTU9EQUwgU0VMRUNBTyBFU1RBQkVMRUNJTUVOVE8gLS0+XHJcbjxuZy10ZW1wbGF0ZSAjbW9kYWxFc3RhYmVsZWNpbWVudG8+XHJcbiAgPHNlbGVjYW8tZXN0YWJlbGVjaW1lbnRvcy1tb2RhbCAob25DbG9zZSk9XCJjbG9zZU1vZGFsKE1PREFMX0VTVEFCRUxFQ0lNRU5UTylcIlxyXG4gICAgKG9uU2VsZWN0ZWQpPVwiY2xvc2VNb2RhbChNT0RBTF9FU1RBQkVMRUNJTUVOVE8pOyB1cGRhdGVMYXN0TG9nRXN0YWJlbGVjaW1lbnRvKCRldmVudCk7XCI+PC9zZWxlY2FvLWVzdGFiZWxlY2ltZW50b3MtbW9kYWw+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjwhLS0gI2VuZHJlZ2lvbiBNT0RBTCBTRUxFQ0FPIEVTVEFCRUxFQ0lNRU5UTyAtLT5cclxuXHJcbjwhLS0gI2VuZHJlZ2lvbiBURU1QTEFURVMgLS0+XHJcbiJdfQ==
|
|
233
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1sYXRlcmFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1hdXRoL3NyYy9saWIvY29tcG9uZW50cy9tZW51LWxhdGVyYWwvbWVudS9tZW51LWxhdGVyYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWF1dGgvc3JjL2xpYi9jb21wb25lbnRzL21lbnUtbGF0ZXJhbC9tZW51L21lbnUtbGF0ZXJhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBVSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxhQUFhLEVBQVUsTUFBTSxpQkFBaUIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU12QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQVl4RSxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQ1Msa0JBQXdDLEVBQ3ZDLG1CQUF1QyxFQUN2QyxlQUErQixFQUMvQixhQUFrQyxFQUNsQyxlQUErQjtJQUN2QyxrREFBa0Q7SUFDMUMsT0FBZSxFQUNmLFlBQXlCO1FBUDFCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBc0I7UUFDdkMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUN2QyxvQkFBZSxHQUFmLGVBQWUsQ0FBZ0I7UUFDL0Isa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLG9CQUFlLEdBQWYsZUFBZSxDQUFnQjtRQUUvQixZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsaUJBQVksR0FBWixZQUFZLENBQWE7UUE2Q25CLDBCQUFxQixHQUFXLENBQUMsQ0FBQztRQUUzQyx3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ekM7OztNQUdFO0lBQ0YsU0FBUyxDQUFDLFFBQTBCLEVBQUUsT0FBZTtRQUNuRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEMsS0FBSyxFQUFFLGdDQUFnQztZQUN2QyxtQkFBbUIsRUFBRSxLQUFLO1lBQzFCLFFBQVEsRUFBRSxLQUFLO1lBQ2YsRUFBRSxFQUFFLE9BQU87U0FDWixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVLENBQUMsT0FBZTtRQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNyQyxDQUFDOytHQTFQVSxvQkFBb0I7bUdBQXBCLG9CQUFvQixvR0FvRGpCLFdBQVcscVBDMUUzQixxcFZBaU5BOzs0RkQzTGEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjtxUUFtREssY0FBYztzQkFBOUMsU0FBUzt1QkFBQyxZQUFZO2dCQUlPLFFBQVE7c0JBQXJDLFNBQVM7dUJBQUMsVUFBVTtnQkFDYSxjQUFjO3NCQUEvQyxZQUFZO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgT25Jbml0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEJzTW9kYWxTZXJ2aWNlIH0gZnJvbSAnbmd4LWJvb3RzdHJhcC9tb2RhbCc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnbmd4LXNwLWluZnJhJztcclxuaW1wb3J0IHsgZmlsdGVyLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IExpYkN1c3RvbU1lbnVTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi9jdXN0b20vY3VzdG9tLW1lbnUuc2VydmljZSc7XHJcblxyXG4vL2ltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50cyc7XHJcbi8vaW1wb3J0IHsgUHJvamVjdFV0aWxzZXJ2aWNlIH0gZnJvbSAnc3JjL2FwcC9wcm9qZWN0L3V0aWxzL3Byb2plY3QtdXRpbHMuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTWVudUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jdXN0b20vbWVudS1jb25maWcuc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3N0b3JhZ2UvYXV0aC1zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNZW51U2VydmljZXNTZXJ2aWNlIH0gZnJvbSAnLi4vbWVudS1zZXJ2aWNlcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSU1lbnVJdGVtU3RydWN0dXJlIH0gZnJvbSAnLi4vbW9kZWwvaW1lbnUtaXRlbS1zdHJ1Y3R1cmUubW9kZWwnO1xyXG5pbXBvcnQgeyBJU3VibWVudUl0ZW1TdHJ1Y3R1cmUgfSBmcm9tICcuLi9tb2RlbC9pc3VibWVudS1pdGVtLXN0cnVjdHVyZS5tb2RlbCc7XHJcbmltcG9ydCB7IFVzdWFyaW9fSU1HIH0gZnJvbSAnLi4vbW9kZWwvdXN1YXJpby1pbWcnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbWVudS1sYXRlcmFsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS1sYXRlcmFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tZW51LWxhdGVyYWwuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1lbnVMYXRlcmFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBfY3VzdG9tTWVudVNlcnZpY2U6IExpYkN1c3RvbU1lbnVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfYXV0aFN0b3JhZ2VTZXJ2aWNlOiBBdXRoU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9ic01vZGFsU2VydmljZTogQnNNb2RhbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9tZW51U2VydmljZXM6IE1lbnVTZXJ2aWNlc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9tZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICAvL3ByaXZhdGUgX3Byb2plY3RVdGlsU2VydmljZTogUHJvamVjdFV0aWxzZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIF9hdXRoU2VydmljZTogQXV0aFNlcnZpY2VcclxuICApIHtcclxuICAgIC8vIEltcGxlbWVudGHDp8OjbyBxdWUgdmVyaWZpY2EgZXZlbnRvcyBhY2lvbmFkb3MgbmEgY2xhc3NlIGRlIHNlcnZpY2UuXHJcbiAgICB0aGlzLl9tZW51U2VydmljZXMuZ2V0TmV3VXNlckltYWdlRXZlbnQoKS5zdWJzY3JpYmUoKCkgPT4geyB0aGlzLmdldE1lbnVVc2VySW1nKCk7IH0pXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgLy8gSW5zY3JldmEtc2Ugbm8gZXZlbnRvIE5hdmlnYXRpb25FbmQgcGFyYSByZWNlYmVyIG5vdGlmaWNhw6fDtWVzIHF1YW5kbyBhIHJvdGEgbXVkYXIsIHNlcnZlIHBhcmEgYXR1YWxpemFyIGEgc2VsZcOnw6NvIGRvIG1lbnUgY29ycmV0YW1lbnRlXHJcbiAgICB0aGlzLl9yb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKGV2ZW50ID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpLnN1YnNjcmliZSgoZXZlbnQ6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLl9jdXN0b21NZW51U2VydmljZS5tZW51SXRlbXMgPSB0aGlzLl9jdXN0b21NZW51U2VydmljZS5tZW51Q29uZmlnLnVwZGF0ZVJvdXRlU2VsZWN0aW9uKHRoaXMuX3JvdXRlci51cmwsIHRoaXMuX2N1c3RvbU1lbnVTZXJ2aWNlLm1lbnVJdGVtcylcclxuICAgIH0pO1xyXG5cclxuICAgIGlmICghdGhpcy5fY3VzdG9tTWVudVNlcnZpY2UubWVudUR5bmFtaWMpIHtcclxuICAgICAgdGhpcy5fY3VzdG9tTWVudVNlcnZpY2UubWVudUNvbmZpZy5zZXRNZW51U3RhdGljKHRydWUpO1xyXG4gICAgICB0aGlzLl9jdXN0b21NZW51U2VydmljZS5tZW51SXRlbXMgPSB0aGlzLl9jdXN0b21NZW51U2VydmljZS5tZW51Q29uZmlnLmluaXRpYWxpemVNZW51KHRoaXMuX3JvdXRlci51cmwpO1xyXG5cclxuICAgICAgLy8gTcOpdG9kbyBjb20gY3VzdG9taXphw6fDtWVzIHBhcmEgaW5pY2lhbGl6YcOnw6NvIGRvIE1lbnUgRXN0w6F0aWNvXHJcbiAgICAgIHRoaXMuX2N1c3RvbU1lbnVTZXJ2aWNlLm1lbnVTdGF0aWNPbkluaXQoKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvLyBNw6l0b2RvIGNvbSBjdXN0b21pemHDp8O1ZXMgcGFyYSBpbmljaWFsaXphw6fDo28gZG8gTWVudSBEaW7Dom1pY29cclxuICAgICAgdGhpcy5fY3VzdG9tTWVudVNlcnZpY2UubWVudUR5bmFtaWNPbkluaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm5vbWVFc3RhYmVsZWNpbWVudG8gPSB0aGlzLl9hdXRoU3RvcmFnZVNlcnZpY2UuaW5mcmFFc3RhYk5vbWU7XHJcbiAgICB0aGlzLmZvb3RlclVzZXJOYW1lID0gdGhpcy5fYXV0aFN0b3JhZ2VTZXJ2aWNlLnVzZXJOYW1lO1xyXG5cclxuICAgIHRoaXMuY2hlY2tGb3JDYWNoZWRJbWFnZSgpO1xyXG5cclxuICAgIHRoaXMuZ2V0VXNlckVtYWlsKCk7XHJcbiAgfVxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFBST1BFUlRJRVMgPD09PT09PT09PT1cclxuXHJcbiAgLy8gI3JlZ2lvbiBQUklWQVRFXHJcblxyXG4gIC8vIEVSSUNLOiB2b3UgbWFudGVyIGVzdGUgcG9yIGVucXVhbnRvIHBhcmEgcXVhbmRvIGZvciBuZWNlc3PDoXJpbyBlc3RhIGZ1bmNpb25hbGlkYWRlIGV1IGNvbnNpZ2EgcmVmYXrDqi1sYXMgc2VtIG11aXRvIHByb2JsZW1hXHJcbiAgQFZpZXdDaGlsZChcIm5vdGlmX21lbnVcIikgcHJpdmF0ZSBub3RpZl90ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIC8vICNyZWdpb24gUFVCTElDXHJcblxyXG4gIEBWaWV3Q2hpbGQoJ21lbnVMaW5rJykgcHVibGljIG1lbnVMaW5rPzogSFRNTEFuY2hvckVsZW1lbnQ7XHJcbiAgQENvbnRlbnRDaGlsZChUZW1wbGF0ZVJlZikgcHVibGljIGRlc2lyZWRDb250ZW50PzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgcHVibGljIHJlYWRvbmx5IE1PREFMX0VTVEFCRUxFQ0lNRU5UTzogbnVtYmVyID0gMTtcclxuXHJcbiAgcHVibGljIG5vbWVFc3RhYmVsZWNpbWVudG86IHN0cmluZyA9ICdFc3RhYmVsZWNpbWVudG8gcGFkcsOjbyc7XHJcbiAgcHVibGljIHRpdGxlU3VibWVudTogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgc3VibWVudUxpc3Q6IChJU3VibWVudUl0ZW1TdHJ1Y3R1cmUgfCB1bmRlZmluZWQpW10gPSBbXTtcclxuXHJcbiAgcHVibGljIG1lc3NhZ2VJZkNsaWNrZWQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG5cclxuICAvKiogRXN0YSB2YXJpw6F2ZWwgw6kgdXNhZGEgbmEgYWJlcnR1cmEgZG8gc3VibWVudSBlIGRvIHN1Ym1lbnUgc2VjdW5kw6FyaW8gcGFyYSBcclxuICAgICogcXVlIGEgZnVuw6fDo28gb25DbGlja2VkT3V0c2lkZSgpIHF1ZSBlc3TDoSBuYSBzZWd1bmRhIGRpdiBwcmluY2lwYWwgZG8gSFRNTCBkb1xyXG4gICAgKiBjb21wb25lbnRlIG7Do28gc2VqYSBhdGl2YWRhLCBwb2lzIHNlIGVsYSBmb3IgYXRpdmFkYSBlbGEgaXLDoSBmZWNoYXIgbyBtZW51XHJcbiAgICAqIGxhdGVyYWwsIGUgcXVhbmRvIHZhbW9zIGRvIHN1Ym1lbnUgcGFyYSBvIHN1Ym1lbnUgc2VjdW5kw6FyaW8gbsOjbyBxdWVyZW1vc1xyXG4gICAgKiBmZWNoYXIgbyBtZW51IGxhdGVyYWwsIGUgcXVhbmRvIHZhbW9zIGRvIHN1Ym1lbnUgc2VjdW5kw6FyaW8gcGFyYSBvIHN1Ym1lbnVcclxuICAgICogdGFtYsOpbSBuw6NvIHF1ZXJlbW9zIGZlY2hhciBvIG1lbnUgbGF0ZXJhbDtcclxuICAqL1xyXG4gIHB1YmxpYyBjbG9zZU1lbnU6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKiogVXRpbGl6YWRhIGNvbW8gYSBmb250ZSBkYSBpbWFnZW0gZGUgcGVyZmlsIGRvIHVzdcOhcmlvIGxvZ2FkbyBubyBzaXN0ZW1hLiAqL1xyXG4gIHB1YmxpYyBmb290ZXJVc2VySW1nU3JjOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAvKiogRW1haSBkbyB1c3XDoXJpbyBsb2dhZG8gcGFyYSBzZXIgZXhpYmlkbyBubyBwb3BvdmVyICovXHJcbiAgcHVibGljIGZvb3RlclVzZXJFbWFpbDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgLyoqIE5vbWUgZG8gdXN1w6FyaW8gbG9nYWRvIHBhcmEgc2VyIGV4aWJpZG8gbm8gcm9kYXDDqSBkbyBtZW51LiAqL1xyXG4gIHB1YmxpYyBmb290ZXJVc2VyTmFtZTogc3RyaW5nID0gXCJVc3XDoXJpb1wiO1xyXG5cclxuICBwdWJsaWMgaXNQb3BvdmVyVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93QmFsbG9vbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHJcblxyXG4gIC8vIHByb3ByaWVkYWRlcyBpbmljaWFkYXMgcXVhbmRvIHBhc3NhciBvIEN1c3RvbU1lbnVTZXJ2aWNlXHJcblxyXG4gIHB1YmxpYyBtZW51RHluYW1pYzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBtZW51Q29uZmlnOiBNZW51Q29uZmlnU2VydmljZSA9IG5ldyBNZW51Q29uZmlnU2VydmljZTtcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQVUJMSUNcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBQUk9QRVJUSUVTIDw9PT09PT09PT09XHJcblxyXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gU0VSVklDRVMgPD09PT09PT09PT1cclxuXHJcbiAgLy8gI3JlZ2lvbiBHRVRcclxuICBwcml2YXRlIGdldEVzdGFiZWxlY2ltZW50b1Nlc3Npb24oZXN0YWJJRDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLl9tZW51U2VydmljZXMuZ2V0RXN0YWJlbGVjaW1lbnRvU2Vzc2lvbihlc3RhYklEKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiByZXNwb25zZSA9PiB7XHJcbiAgICAgICAgdGhpcy5ub21lRXN0YWJlbGVjaW1lbnRvID0gcmVzcG9uc2UuSW5mcmFFc3RhYk5vbWU7XHJcbiAgICAgICAgdGhpcy5fYXV0aFN0b3JhZ2VTZXJ2aWNlLmluZnJhRW1wcmVzYUlkID0gcmVzcG9uc2UuSW5mcmFFbXByZXNhSWQ7XHJcbiAgICAgICAgdGhpcy5fYXV0aFN0b3JhZ2VTZXJ2aWNlLmluZnJhRW1wcmVzYU5vbWUgPSByZXNwb25zZS5JbmZyYUVtcHJlc2FOb21lO1xyXG4gICAgICB9LFxyXG4gICAgICBlcnJvcjogZXJyb3IgPT4ge1xyXG4gICAgICAgIC8vdGhpcy5fcHJvamVjdFV0aWxTZXJ2aWNlLnNob3dIdHRwRXJyb3IoZXJyb3IpOyBcclxuICAgICAgICB0aGlzLl9tZXNzYWdlU2VydmljZS5zaG93QWxlcnREYW5nZXIoZXJyb3IpO1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldE1lbnVVc2VySW1nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5fbWVudVNlcnZpY2VzLmdldEltYWdlbU1lbnUoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiByZXNwb25zZSA9PiB7IHRoaXMuZm9vdGVyVXNlckltZ1NyYyA9IHJlc3BvbnNlLkluZnJhVXN1YXJpb0ltZy5JbWFnZW07IH0sXHJcbiAgICAgIGVycm9yOiBlcnJvciA9PiB7XHJcbiAgICAgICAgLy90aGlzLl9wcm9qZWN0VXRpbFNlcnZpY2Uuc2hvd0h0dHBFcnJvcihlcnJvcik7XHJcbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2Uuc2hvd0FsZXJ0RGFuZ2VyKGVycm9yKTtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFVzZXJFbWFpbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX21lbnVTZXJ2aWNlcy5nZXRVc3VhcmlvRW1haWwoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiByZXNwb25zZSA9PiB7IHRoaXMuZm9vdGVyVXNlckVtYWlsID0gcmVzcG9uc2UuRW1haWw7IH0sXHJcbiAgICAgIGVycm9yOiBlcnJvciA9PiB7XHJcbiAgICAgICAgLy90aGlzLl9wcm9qZWN0VXRpbFNlcnZpY2Uuc2hvd0h0dHBFcnJvcihlcnJvcik7XHJcbiAgICAgICAgdGhpcy5fbWVzc2FnZVNlcnZpY2Uuc2hvd0FsZXJ0RGFuZ2VyKGVycm9yKTtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uIEdFVFxyXG5cclxuICAvLyAjcmVnaW9uIFVQREFURVxyXG4gIHB1YmxpYyB1cGRhdGVMYXN0TG9nRXN0YWJlbGVjaW1lbnRvKGVzdGFiOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuX21lbnVTZXJ2aWNlcy51cGRhdGVMYXN0TG9nRXN0YWJJRChlc3RhYi5zcGxpdChcIiAtIFwiKVswXSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX21lc3NhZ2VTZXJ2aWNlLnNob3dBbGVydFN1Y2Nlc3MoJ0VzdGFiZWxlY2ltZW50byBhbHRlcmFkbyBjb20gc3VjZXNzbyEnKTtcclxuXHJcbiAgICAgICAgdGhpcy5nZXRFc3RhYmVsZWNpbWVudG9TZXNzaW9uKGVzdGFiLnNwbGl0KFwiIC0gXCIpWzBdKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLl9hdXRoU3RvcmFnZVNlcnZpY2UuaW5mcmFFc3RhYklkID0gZXN0YWIuc3BsaXQoXCIgLSBcIilbMF07XHJcbiAgICB0aGlzLl9hdXRoU3RvcmFnZVNlcnZpY2UuaW5mcmFFc3RhYk5vbWUgPSBlc3RhYi5zcGxpdChcIiAtIFwiKVsxXTtcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvbiBVUERBVEVcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBTRVJWSUNFUyA8PT09PT09PT09PVxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFVUSUxJVElFUyA8PT09PT09PT09PVxyXG5cclxuICBwdWJsaWMgdG9nZ2xlUG9wb3ZlcigpIHsgdGhpcy5zaG93QmFsbG9vbiA9ICF0aGlzLnNob3dCYWxsb29uOyB9XHJcblxyXG4gIHB1YmxpYyBkcm9wZG93bldhc09wZW5lZCh2YWx1ZTogYm9vbGVhbik6IHZvaWQgeyB0aGlzLm1lc3NhZ2VJZkNsaWNrZWQubmV4dCh2YWx1ZSk7IH1cclxuXHJcbiAgcHVibGljIG9wZW5FeHBhbnNpYmxlTWVudShyZWY6IEhUTUxEaXZFbGVtZW50KTogdm9pZCB7XHJcbiAgICByZWYuY2xhc3NMaXN0LnRvZ2dsZShcImNsb3NlZFwiKTtcclxuICAgIHJlZi5jbGFzc0xpc3QudG9nZ2xlKFwiY29sXCIpO1xyXG4gICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihcIi5zaWRlYmFyLWNvbnRyb2xcIik/LmNsYXNzTGlzdC50b2dnbGUoXCJjb2xcIik7XHJcblxyXG4gICAgLy8gTcOpdG9kbyBjb20gY3VzdG9taXphw6fDtWVzIHBhcmEgaW5pY2lhbGl6YcOnw6NvIGRvIE1lbnUgRXN0w6F0aWNvXHJcbiAgICB0aGlzLl9jdXN0b21NZW51U2VydmljZS5tZW51b3BlbkV4cGFuc2libGVNZW51KHJlZik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlblN1Ym1lbnUobWVudTogSU1lbnVJdGVtU3RydWN0dXJlLCByZWY6IEhUTUxEaXZFbGVtZW50LCBkZXNpcmVkTWVudTogVGVtcGxhdGVSZWY8YW55Pik6IHZvaWQge1xyXG5cclxuICAgIGlmIChtZW51LmNoaWxkcmVuICYmIG1lbnUuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnRpdGxlU3VibWVudSA9IG1lbnUubGFiZWxcclxuICAgICAgdGhpcy5kZXNpcmVkQ29udGVudCA9IGRlc2lyZWRNZW51O1xyXG4gICAgICByZWYuY2xhc3NMaXN0LnJlbW92ZShcIm9wZW5lZC1ub3RpZi1zdWJcIik7XHJcblxyXG4gICAgICBpZiAodGhpcy5zdWJtZW51TGlzdCA9PT0gbWVudS5jaGlsZHJlbikge1xyXG4gICAgICAgIHRoaXMuY2xvc2VNZW51ID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAoIXJlZi5jbGFzc0xpc3QuY29udGFpbnMoXCJvcGVuZWQtc3ViXCIpKSB7IHJlZi5jbGFzc0xpc3QudG9nZ2xlKFwib3BlbmVkLXN1YlwiKTsgfVxyXG4gICAgICB0aGlzLnN1Ym1lbnVMaXN0ID0gbWVudS5jaGlsZHJlbjtcclxuICAgIH1cclxuXHJcbiAgICBlbHNlIGlmICghbWVudS5jaGlsZHJlbiB8fCAobWVudS5jaGlsZHJlbiAmJiBtZW51LmNoaWxkcmVuLmxlbmd0aCA9PSAwKSkge1xyXG4gICAgICB0aGlzLnN1Ym1lbnVMaXN0ID0gW107XHJcbiAgICAgIHJlZi5jbGFzc0xpc3QudG9nZ2xlKFwic2VsZWN0ZWRJdGVtXCIpO1xyXG4gICAgICB0aGlzLm9uQ2xpY2tlZE91dHNpZGUobmV3IEV2ZW50KFwiXCIpLCByZWYpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gcHVibGljIG9uQ2xpY2tlZE91dHNpZGUoZTogRXZlbnQsIHJlZjogSFRNTERpdkVsZW1lbnQpOiB2b2lkIHtcclxuICAvLyAgIHJlZi5jbGFzc0xpc3QucmVtb3ZlKFwib3BlbmVkLXN1YlwiKTtcclxuICAvLyAgIHRoaXMuc3VibWVudUxpc3QgPSBbXTtcclxuICAvLyB9XHJcblxyXG4gIHB1YmxpYyBvbkNsaWNrZWRPdXRzaWRlKGU6IEV2ZW50LCByZWY6IEhUTUxEaXZFbGVtZW50KTogdm9pZCB7XHJcbiAgICBpZiAocmVmKSB7XHJcbiAgICAgIHJlZi5jbGFzc0xpc3QucmVtb3ZlKFwib3BlbmVkLXN1YlwiKTtcclxuICAgICAgdGhpcy5zdWJtZW51TGlzdCA9IFtdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS53YXJuKCdyZWYgaXMgdW5kZWZpbmVkIG9yIG51bGwnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vICNyZWdpb24gTUVOVSBGT09URVIgVVNFUiBJTUFHRVxyXG4gIHByaXZhdGUgdmFsaWRhdGVDYWNoZWRJbWcoZm9vdGVySW1nOiBVc3VhcmlvX0lNRyB8IG51bGwpOiBib29sZWFuIHtcclxuICAgIGxldCB1c3VhcmlvSWQ6IHN0cmluZyA9IHRoaXMuX2F1dGhTdG9yYWdlU2VydmljZS5pbmZyYVVzdWFyaW9JZDtcclxuXHJcbiAgICBpZiAoIWZvb3RlckltZyB8fCBmb290ZXJJbWcgPT0gbnVsbCkgeyByZXR1cm4gdHJ1ZTsgfVxyXG5cclxuICAgIGlmICh1c3VhcmlvSWQgIT0gZm9vdGVySW1nLlVTVUFSSU9JRCkgeyByZXR1cm4gdHJ1ZTsgfVxyXG5cclxuICAgIHRoaXMuZm9vdGVyVXNlckltZ1NyYyA9IGZvb3RlckltZy5GSUxFO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0ZvckNhY2hlZEltYWdlKCk6IHZvaWQge1xyXG4gICAgY29uc3QgaXNBUElSZXF1ZXN0TmVlZGVkID0gdGhpcy52YWxpZGF0ZUNhY2hlZEltZyh0aGlzLl9tZW51U2VydmljZXMuZ2V0TWVudUZvb3RlckltZygpKTtcclxuICAgIGlmIChpc0FQSVJlcXVlc3ROZWVkZWQpIHsgdGhpcy5nZXRNZW51VXNlckltZygpOyB9XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb24gTUVOVSBGT09URVIgVVNFUiBJTUFHRVxyXG5cclxuICBwdWJsaWMgbG9nb3V0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fYXV0aFNlcnZpY2UubG9nb3V0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0RXh0ZXJuYWxVcmwodXJsOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiBgaHR0cHM6Ly9zaXNjYW5kZXN2Ni5zaXNwcm8uY29tLmJyL1Npc3Byb0VycENsb3VkLyR7dXJsfWA7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uID09PT09PT09PT0+IFVUSUxJVElFUyA8PT09PT09PT09PVxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IE1PREFMUyA8PT09PT09PT09PVxyXG5cclxuICAvKiogRnVuw6fDo28gc2ltcGxlcyBjb20gbyBvYmpldGl2byBkZSBhYnJpciBvcyBtb2RhaXMgbm8gY2VudHJvIGRhIHRlbGEuXHJcbiAgICogQHBhcmFtIHRlbXBsYXRlIFRlbXBsYXRlIEhUTUwgZG8gbW9kYWwgcXVlIHNlcsOhIGFiZXJ0by5cclxuICAgKiBAcGFyYW0gbW9kYWxJRCBJRCBkbyBtb2RhbCBxdWUgc2Vyw6EgYWJlcnRvLCBwYXJhIHF1ZSBwb3NzYSBzZXIgcmVmZXJlbmNpYWRvIGRlcG9pcy5cclxuICAqL1xyXG4gIG9wZW5Nb2RhbCh0ZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PiwgbW9kYWxJRDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9ic01vZGFsU2VydmljZS5zaG93KHRlbXBsYXRlLCB7XHJcbiAgICAgIGNsYXNzOiAnbW9kYWwtZGlhbG9nLWNlbnRlcmVkIG1vZGFsLWxnJyxcclxuICAgICAgaWdub3JlQmFja2Ryb3BDbGljazogZmFsc2UsXHJcbiAgICAgIGtleWJvYXJkOiBmYWxzZSxcclxuICAgICAgaWQ6IG1vZGFsSURcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIEZ1bsOnw6NvIHNpbXBsZXMgY29tIG8gb2JqZXRpdm8gZGUgZmVjaGFyIG9zIG1vZGFpcyBxdWUgZXN0aXZlcmVtIGFiZXJ0b3MgKGJhc2VhZG9zIHBlbG8gSUQpLlxyXG4gICAqIEBwYXJhbSBtb2RhbElEIElEIGRvIG1vZGFsIHF1ZSBzZXLDoSBmZWNoYWRvLlxyXG4gICAqL1xyXG4gIGNsb3NlTW9kYWwobW9kYWxJRDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLl9ic01vZGFsU2VydmljZS5oaWRlKG1vZGFsSUQpO1xyXG4gIH1cclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiA9PT09PT09PT09PiBNT0RBTFMgPD09PT09PT09PT1cclxuXHJcbn1cclxuIiwiPCEtLSAjcmVnaW9uIE1BSU4gQ09OVEVOVCAtLT5cclxuPGRpdiBjbGFzcz1cIm1haW4gY29sLTEyXCI+XHJcblxyXG4gIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwMHZoOyB6LWluZGV4OiAzO1wiIGNsYXNzPVwic2lkZWJhci1jb250cm9sIHBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleCBmbGV4LXJvd1wiIFxyXG4gICAgKGNsaWNrT3V0c2lkZSk9XCJjbG9zZU1lbnUgPT0gdHJ1ZSA/IG9uQ2xpY2tlZE91dHNpZGUoJGV2ZW50LCBzdWJtZW51X3JlZikgOiBjbG9zZU1lbnUgPSB0cnVlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwic2lkZWJhciB7e19jdXN0b21NZW51U2VydmljZS50aGVtZUNvbG9yfX0gY2xvc2VkXCIgI3NpZGViYXI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtZW51LWhlYWRlclwiPlxyXG4gICAgICAgIDx1bD5cclxuICAgICAgICAgIDxsaSBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvZ28taGFtYnVyZ3VlclwiPlxyXG4gICAgICAgICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2ljb25zL2xvZ290aXBvLXNpc3Byby5zdmdcIiBhbHQ9XCJsb2dvLXNpc3Byb1wiIGNsYXNzPVwibG9nby1zaXNwcm9cIiB0aXRsZT1cImxvZ29cIiB3aWR0aD1cIjEzNnB4XCIgaGVpZ2h0PVwiNDhweFwiPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24taGFtYnVyZ3VlclwiIChjbGljayk9XCJvcGVuRXhwYW5zaWJsZU1lbnUoc2lkZWJhcilcIj5cclxuICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiYXNzZXRzL2ljb25zL21lbnUuc3ZnXCIgYWx0PVwibWVudSBoYW1idXJndWVyXCI+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9saT5cclxuXHJcbiAgICAgICAgICA8IS0tICNyZWdpb24gTcOTRFVMT1MgLS0+XHJcbiAgICAgICAgICA8bGkgY2xhc3M9XCJtYi0zXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogOHB4OyBtYXJnaW4tcmlnaHQ6IDhweFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZHJvcGRvd25XYXNPcGVuZWQodHJ1ZSlcIiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJkcm9wZG93bi1idXR0b25cIiBkYXRhLWJzLXRvZ2dsZT1cImRyb3Bkb3duXCJcclxuICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiIGRhdGEtYnMtYXV0by1jbG9zZT1cIm91dHNpZGVcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICA8aW1nICpuZ0lmPVwiX2N1c3RvbU1lbnVTZXJ2aWNlLm1vZHVsZUltZyAhPSAnJzsgZWxzZSBtb2R1bGVTVkdcIiBbc3JjXT1cIl9jdXN0b21NZW51U2VydmljZS5tb2R1bGVJbWdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcy0yXCI+IHt7IHRoaXMuX2N1c3RvbU1lbnVTZXJ2aWNlLm1vZHVsZU5hbWUgfX0gPGxpYi1pY29uIGljb25OYW1lPVwic2V0YS1kaXJlaXRhXCIgaWNvbkNvbG9yPVwid2hpdGVcIiAvPiA8L3NwYW4+XHJcblxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI21vZHVsZVNWRz5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLWljb24gaWNvbkNvbG9yPVwid2hpdGVcIiBbaWNvbk5hbWVdPVwiX2N1c3RvbU1lbnVTZXJ2aWNlLm1vZHVsZVN2Z1wiLz5cclxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgI2Ryb3Bkb3duX3JlZj5cclxuICAgICAgICAgICAgICAgIDxhcHAtcHJpbWFyeS1kcm9wZG93biBbYnV0dG9uV2FzQ2xpY2tlZF09XCJtZXNzYWdlSWZDbGlja2VkXCI+PC9hcHAtcHJpbWFyeS1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICA8IS0tICNlbmRyZWdpb24gTcOTRFVMT1MgLS0+XHJcblxyXG4gICAgICAgICAgPCEtLSAjcmVnaW9uIEVTVEFCRUxFQ0lNRU5UT1MgLS0+XHJcbiAgICAgICAgICA8bGkgY2xhc3M9XCJteC0zXCIgc3R5bGU9XCJtYXJnaW4tYm90dG9tOiAxNnB4O1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1lc3RhYmVsZWNpbWVudG9cIj5cclxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicm93IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGJnLXRyYW5zcGFyZW50IGJvcmRlci0wXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuTW9kYWwobW9kYWxFc3RhYmVsZWNpbWVudG8sIE1PREFMX0VTVEFCRUxFQ0lNRU5UTylcIlxyXG4gICAgICAgICAgICAgICAgW3Rvb2x0aXBdPVwiIXNpZGViYXIuY2xhc3NMaXN0LmNvbnRhaW5zKCdjbG9zZWQnKSA/ICcnIDogbm9tZUVzdGFiZWxlY2ltZW50b1wiIHBsYWNlbWVudD1cInJpZ2h0XCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPGxpYi1pY29uIGNsYXNzPVwiY29sLTFcIiBpY29uTmFtZT1cInByZWRpb1wiIGljb25Db2xvcj1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIXNpZGViYXIuY2xhc3NMaXN0LmNvbnRhaW5zKCdjbG9zZWQnKVwiIGNsYXNzPVwiY29sLTkgcHMtMiBnbGItdGV4dC13aWR0aC0xNjAgdGV4dC1zdGFydCB0ZXh0LXRydW5jYXRlXCI+IHt7IG5vbWVFc3RhYmVsZWNpbWVudG8gfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPGxpYi1pY29uICpuZ0lmPVwiIXNpZGViYXIuY2xhc3NMaXN0LmNvbnRhaW5zKCdjbG9zZWQnKVwiIGNsYXNzPVwiY29sLTFcIiBpY29uTmFtZT1cInNldGEtZGlyZWl0YVwiIGljb25Db2xvcj1cIndoaXRlXCIgLz5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgPCEtLSAjZW5kcmVnaW9uIEVTVEFCRUxFQ0lNRU5UT1MgLS0+XHJcblxyXG4gICAgICAgIDwvdWw+XHJcblxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwhLS0gI3JlZ2lvbiBNRU5VUyBERSBOQVZFR0HDh8ODTyAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1haW4tbWVudVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzY3JvbGxcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LW1lbnUgcHgtMiBwYi0xXCI+XHJcblxyXG4gICAgICAgICAgICA8IS0tICNyZWdpb24gTUVOVSBESU7Dgk1JQ08gLS0+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkeW5hbWljLW1lbnVcIj5cclxuICAgICAgICAgICAgICA8dWwgI2R5bmFtaWNfbWVudV9pdGVtcyAqbmdJZj1cIl9jdXN0b21NZW51U2VydmljZS5tZW51SXRlbXM7IGVsc2UgaXNMb2FkaW5nXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPGxpICpuZ0Zvcj1cImxldCBtZW51SXRlbSBvZiBfY3VzdG9tTWVudVNlcnZpY2UubWVudUl0ZW1zOyBsZXQgaSA9IGluZGV4XCIgXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwicC0xIHJvdW5kZWRcIiBcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9wZW5TdWJtZW51KG1lbnVJdGVtLCBzdWJtZW51X3JlZiwgZHluYW1pY19tZW51KVwiIFxyXG4gICAgICAgICAgICAgICAgICBbY2xhc3Muc2VsZWN0ZWRJdGVtXT1cIm1lbnVJdGVtLmlzU2VsZWN0ZWRcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgIDxhICpuZ0lmPVwiIW1lbnVJdGVtLmlzRXh0ZXJuYWw7IGVsc2UgZXh0ZXJuYWxNZW51XCJcclxuICAgICAgICAgICAgICAgICAgICBbcm91dGVyTGlua109XCJtZW51SXRlbS5yb3V0ZSAhPSAnJyA/IG1lbnVJdGVtLnJvdXRlIDogbnVsbFwiIFxyXG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCInaXRlbScgKyBtZW51SXRlbS5pZFwiIFxyXG4gICAgICAgICAgICAgICAgICAgIFt0b29sdGlwXT1cIiFzaWRlYmFyLmNsYXNzTGlzdC5jb250YWlucygnY2xvc2VkJykgPyAnJyA6IG1lbnVJdGVtLmxhYmVsXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiIGNsYXNzPVwidy0xMDAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBidXR0b24taWNvbnMgdGV4dC1kZWNvcmF0aW9uLW5vbmUgcC0xIGdsYi1jdXJzb3ItcG9pbnRlclwiIFxyXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJzaWRlYmFyLmNsYXNzTGlzdC5jb250YWlucygnY2xvc2VkJykgPyAnanVzdGlmeS1jb250ZW50LWNlbnRlcicgOiAnanVzdGlmeS1jb250ZW50LWJldHdlZW4nXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxsaWItaWNvbiAqbmdJZj1cIiFtZW51SXRlbS5pY29uLmluY2x1ZGVzKCdhc3NldHMvaWNvbnMnKTsgZWxzZSBpY29uSW1nXCIgW2ljb25OYW1lXT1cIm1lbnVJdGVtLmljb25cIiBpY29uQ29sb3I9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3Bhbi1tYWluXCI+e3sgbWVudUl0ZW0ubGFiZWwgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2ljb25JbWc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJtZW51SXRlbS5pY29uXCIgW2FsdF09XCInaWNvbmU6ICcgKyBtZW51SXRlbS5sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLWljb24gKm5nSWY9XCIobWVudUl0ZW0uY2hpbGRyZW4gJiYgbWVudUl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkgJiYgIXNpZGViYXIuY2xhc3NMaXN0LmNvbnRhaW5zKCdjbG9zZWQnKVwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgaWNvbk5hbWU9XCJzZXRhLWRpcmVpdGFcIiBpY29uQ29sb3I9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNleHRlcm5hbE1lbnU+XHJcbiAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwiZ2V0RXh0ZXJuYWxVcmwobWVudUl0ZW0ucm91dGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidpdGVtJyArIG1lbnVJdGVtLmlkXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdG9vbHRpcF09XCIhc2lkZWJhci5jbGFzc0xpc3QuY29udGFpbnMoJ2Nsb3NlZCcpID8gJycgOiBtZW51SXRlbS5sYWJlbFwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50PVwibGVmdFwiIGNsYXNzPVwidy0xMDAgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBidXR0b24taWNvbnMgdGV4dC1kZWNvcmF0aW9uLW5vbmUgcC0xIGdsYi1jdXJzb3ItcG9pbnRlclwiIFxyXG4gICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cInNpZGViYXIuY2xhc3NMaXN0LmNvbnRhaW5zKCdjbG9zZWQnKSA/ICdqdXN0aWZ5LWNvbnRlbnQtY2VudGVyJyA6ICdqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbidcIj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaWItaWNvbiAqbmdJZj1cIiFtZW51SXRlbS5pY29uLmluY2x1ZGVzKCdhc3NldHMvaWNvbnMnKTsgZWxzZSBpY29uSW1nRXh0ZXJuYWxcIiBbaWNvbk5hbWVdPVwibWVudUl0ZW0uaWNvblwiIGljb25Db2xvcj1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNwYW4tbWFpblwiPnt7IG1lbnVJdGVtLmxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2ljb25JbWdFeHRlcm5hbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwibWVudUl0ZW0uaWNvblwiIFthbHRdPVwiJ2ljb25lOiAnICsgbWVudUl0ZW0ubGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGxpYi1pY29uICpuZ0lmPVwiKG1lbnVJdGVtLmNoaWxkcmVuICYmIG1lbnVJdGVtLmNoaWxkcmVuLmxlbmd0aCA+IDApICYmICFzaWRlYmFyLmNsYXNzTGlzdC5jb250YWlucygnY2xvc2VkJylcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWNvbk5hbWU9XCJzZXRhLWRpcmVpdGFcIiBpY29uQ29sb3I9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8L2xpPlxyXG5cclxuICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaXNMb2FkaW5nPlxyXG4gICAgICAgICAgICAgIDxsaSBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHNwaW5uZXItYm9yZGVyLXNtIG10LTJcIiByb2xlPVwic3RhdHVzXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9saT5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPCEtLSAjZW5kcmVnaW9uIE1FTlUgRElOw4JNSUNPIC0tPlxyXG5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPCEtLSAjZW5kcmVnaW9uIE1FTlVTIERFIE5BVkVHQcOHw4NPIC0tPlxyXG5cclxuICAgICAgPCEtLSAjcmVnaW9uIEZPT1RFUiAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cImZvb3Rlci1tZW51XCIgKG1vdXNlZW50ZXIpPVwic2hvd0JhbGxvb24gPSB0cnVlXCIgKG1vdXNlbGVhdmUpPVwic2hvd0JhbGxvb24gPSBmYWxzZVwiXHJcbiAgICAgICAgW3BvcG92ZXJdPVwicG9wb3ZlckNvbnRlbnRcIiBwbGFjZW1lbnQ9XCJyaWdodCBib3R0b21cIiBbb3V0c2lkZUNsaWNrXT1cInRydWVcIiBjb250YWluZXJDbGFzcz1cIndpZHRoOiAyMDBweFwiID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLWNvbXBvbmVudHMgcHMtMSBwdC0yXCIgW2NsYXNzLm9wZW5dPVwic2hvd0JhbGxvb25cIj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgIDxpbWcgKm5nSWY9XCJmb290ZXJVc2VySW1nU3JjOyBlbHNlIG5vVXNlckltZ1wiIGNsYXNzPVwicGhvdG8tcHJvZmlsZSBtcy0xXCJcclxuICAgICAgICAgICAgICBbc3JjXT1cIlsnZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwnICsgZm9vdGVyVXNlckltZ1NyY11cIiBhbHQ9XCJmb3RvLXBlcmZpbFwiPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vVXNlckltZz5cclxuICAgICAgICAgICAgICA8bGliLWljb24gaWNvbk5hbWU9XCJjb250cmFwYXJ0ZVwiIGljb25Db2xvcj1cIndoaXRlXCIvPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImdsYi10ZXh0LXdpZHRoLTEyMCB3LWF1dG8gZnctYm9sZCB0ZXh0LXN0YXJ0IHRleHQtdHJ1bmNhdGUgbXMtMSBtZS0xXCI+XHJcbiAgICAgICAgICAgICAge3sgZm9vdGVyVXNlck5hbWUgfX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICBcclxuICAgICAgPG5nLXRlbXBsYXRlICNwb3BvdmVyQ29udGVudD5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZm9vdGVyLW1lbnVcIiBzdHlsZT1cIndpZHRoOiAxMDAwcHg7XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPiBcclxuICAgICAgICAgICAgPGltZyAqbmdJZj1cImZvb3RlclVzZXJJbWdTcmM7IGVsc2Ugbm9Vc2VySW1nXCIgY2xhc3M9XCJwaG90by1wcm9maWxlXCJcclxuICAgICAgICAgICAgICBbc3JjXT1cIlsnZGF0YTppbWFnZS9qcGVnO2Jhc2U2NCwnICsgZm9vdGVyVXNlckltZ1NyY11cIiBhbHQ9XCJmb3RvLXBlcmZpbFwiPiBcclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub1VzZXJJbWc+XHJcbiAgICAgICAgICAgICAgPGxpYi1pY29uIGljb25OYW1lPVwiY29udHJhcGFydGVcIiBpY29uQ29sb3I9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBtcy0xXCI+IFxyXG4gICAgICAgICAgICAgIDxkaXYgW3Rvb2x0aXBdPVwiZm9vdGVyVXNlck5hbWVcIiBjbGFzcz1cImR5bmFtaWMtY29udGFpbmVyXCIgc3R5bGU9XCJ3aGl0ZS1zcGFjZTogbm93cmFwOyBmbGV4LWdyb3c6IDE7bWF4LXdpZHRoOiAyMDBweDsgZm9udC1zaXplOiAxNnB4O1wiPnt7Zm9vdGVyVXNlck5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgW3Rvb2x0aXBdPVwiZm9vdGVyVXNlckVtYWlsXCIgY2xhc3M9XCJkeW5hbWljLWNvbnRhaW5lclwiIHN0eWxlPVwid2hpdGUtc3BhY2U6IG5vd3JhcDsgZm9udC1zaXplOiAxMnB4OyBmbGV4LWdyb3c6IDE7bWF4LXdpZHRoOiAyMDBweDtcIj57e2Zvb3RlclVzZXJFbWFpbH19PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGhyIGNsYXNzPVwibWItMiBtdC0yXCI+XHJcbiAgICAgICAgPGRpdiByb3V0ZXJMaW5rPVwibWV1LXBlcmZpbFwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiIChjbGljayk9XCJ0b2dnbGVQb3BvdmVyKCk7ICRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG4gICAgICAgICAgPGxpYi1pY29uIFtpY29uU2l6ZV09XCInc21hbGwnXCIgaWNvbk5hbWU9XCJjb250cmFwYXJ0ZVwiLz4gTWV1IFBlcmZpbFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yXCIgKGNsaWNrKT1cImxvZ291dCgpXCIgc3R5bGU9XCJjdXJzb3I6IHBvaW50ZXI7XCI+XHJcbiAgICAgICAgICA8bGliLWljb24gW2ljb25TaXplXT1cIidzbWFsbCdcIiAgaWNvbk5hbWU9XCJsb2dvdXRcIi8+IFNhaXJcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPCEtLSAjZW5kcmVnaW9uIEZPT1RFUiAtLT5cclxuXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic3VibWVudVwiICNzdWJtZW51X3JlZj5cclxuICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImRlc2lyZWRDb250ZW50ICE9PSBudWxsXCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZXNpcmVkQ29udGVudCE7IGNvbnRleHQ6IHskaW1wbGljaXQ6IHN1Ym1lbnVMaXN0fVwiPjwvbmctY29udGVudD5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIFxyXG4gIDxkaXYgY2xhc3M9XCJtYWluLWNvbnRlbnQgY29sIGQtZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1jb250ZW50LWJldHdlZW5cIiBpZD1cImJvZHktY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRlbnRcIiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZTtcIj5cclxuICAgICAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGFwcC1mb290ZXI+PC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuPCEtLSAjZW5kcmVnaW9uIE1BSU4gQ09OVEVOVCAtLT5cclxuXHJcbjwhLS0gI3JlZ2lvbiBURU1QTEFURVMgLS0+XHJcbjwhLS0gdGVtIHF1ZSBwZXJndW50YXIgcHJvIEVyaWNrIC0tPlxyXG48IS0tIFtzdWJtZW51UmVmXT1cInN1Ym1lbnVfcmVmXCIgIC0tPlxyXG48bmctdGVtcGxhdGUgI2R5bmFtaWNfbWVudSBsZXQtZGF0YT5cclxuICA8YXBwLWR5bmFtaWMtbWVudSBcclxuICAgIFtzdWJtZW51TGlzdF09XCJkYXRhXCJcclxuICAgIFt0aXRsZVN1Ym1lbnVdPVwidGl0bGVTdWJtZW51XCJcclxuICAgIFtzdWJtZW51UmVmXT1cInN1Ym1lbnVfcmVmXCJcclxuICAgIFtyZWNlYmVQYXJhbV09XCJvbkNsaWNrZWRPdXRzaWRlLmJpbmQodGhpcylcIj5cclxuICA8L2FwcC1keW5hbWljLW1lbnU+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI25vdGlmX21lbnU+XHJcbiAgPGFwcC1ub3RpZi1zdWJtZW51PjwvYXBwLW5vdGlmLXN1Ym1lbnU+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48IS0tICNyZWdpb24gTU9EQUwgU0VMRUNBTyBFU1RBQkVMRUNJTUVOVE8gLS0+XHJcbjxuZy10ZW1wbGF0ZSAjbW9kYWxFc3RhYmVsZWNpbWVudG8+XHJcbiAgPHNlbGVjYW8tZXN0YWJlbGVjaW1lbnRvcy1tb2RhbCAob25DbG9zZSk9XCJjbG9zZU1vZGFsKE1PREFMX0VTVEFCRUxFQ0lNRU5UTylcIlxyXG4gICAgKG9uU2VsZWN0ZWQpPVwiY2xvc2VNb2RhbChNT0RBTF9FU1RBQkVMRUNJTUVOVE8pOyB1cGRhdGVMYXN0TG9nRXN0YWJlbGVjaW1lbnRvKCRldmVudCk7XCI+PC9zZWxlY2FvLWVzdGFiZWxlY2ltZW50b3MtbW9kYWw+XHJcbjwvbmctdGVtcGxhdGU+XHJcbjwhLS0gI2VuZHJlZ2lvbiBNT0RBTCBTRUxFQ0FPIEVTVEFCRUxFQ0lNRU5UTyAtLT5cclxuXHJcbjwhLS0gI2VuZHJlZ2lvbiBURU1QTEFURVMgLS0+XHJcbiJdfQ==
|
|
@@ -56,7 +56,7 @@ export class MenuServicesService {
|
|
|
56
56
|
if (response.Error) {
|
|
57
57
|
throw Error(response.ErrorMessage);
|
|
58
58
|
}
|
|
59
|
-
this.saveImageToStorage(response.InfraUsuarioImg.
|
|
59
|
+
this.saveImageToStorage(response.InfraUsuarioImg.Imagem, response.InfraUsuarioImg.FileName);
|
|
60
60
|
}));
|
|
61
61
|
}
|
|
62
62
|
// #endregion Menu: Usuário
|
|
@@ -148,4 +148,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
148
148
|
providedIn: 'root'
|
|
149
149
|
}]
|
|
150
150
|
}], ctorParameters: () => [{ type: i1.AuthStorageService }, { type: i2.HttpClient }] });
|
|
151
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1zZXJ2aWNlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWF1dGgvc3JjL2xpYi9jb21wb25lbnRzL21lbnUtbGF0ZXJhbC9tZW51LXNlcnZpY2VzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQWN0RCxNQUFNLE9BQU8sbUJBQW1CO0lBSTlCLFlBQ1UsbUJBQXVDLEVBQ3ZDLFdBQXVCO1FBRHZCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDdkMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFMaEIsY0FBUyxHQUFXLDBGQUEwRixDQUFDLENBQUMsa0JBQWtCO1FBQ2xJLGtCQUFhLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFtSjNGLG9DQUFvQztRQUVwQyxvQkFBb0I7UUFFcEIsaUJBQWlCO1FBQ2pCLFFBQVE7UUFDUixvQkFBb0I7UUFFcEIsOENBQThDO1FBRzlDLDRDQUE0QztRQUNwQyxtQkFBYyxHQUF1QixJQUFJLENBQUM7UUFtQmxELHVCQUF1QjtRQUV2Qix1SkFBdUo7UUFDL0ksYUFBUSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUEvS3BDLGlDQUFpQztRQUNqQyw2RkFBNkY7SUFDL0YsQ0FBQztJQUVELDJDQUEyQztJQUUzQyxzQkFBc0I7SUFFdEIsd0JBQXdCO0lBQ3hCLFFBQVE7SUFDUiwyQkFBMkI7SUFFM0IsaUNBQWlDO0lBQzFCLDRCQUE0QixDQUFDLFNBQWlCLEVBQUUs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LENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQzsrR0EvTFUsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IFJldEVycm9yLCBSZXRFc3RhYmVsZWNpbWVudG9zTW9kYWwgfSBmcm9tICduZ3gtc3AtaW5mcmEnO1xyXG4vLyBpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudHMnO1xyXG5pbXBvcnQgeyBBdXRoU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zdG9yYWdlL2F1dGgtc3RvcmFnZS5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IFJldEVzdGFiZWxlY2ltZW50b1Nlc3Npb24gfSBmcm9tICcuL21vZGVsL3JldC1lc3RhYmVsZWNpbWVudG8tc2Vzc2lvbic7XHJcbmltcG9ydCB7IFJldEluZnJhVXN1YXJpb0VtYWlsIH0gZnJvbSAnLi9tb2RlbC9yZXQtaW5mcmF1c3VhcmlvZW1haWwnO1xyXG5pbXBvcnQgeyBSZXRJbmZyYVVzdWFyaW9JbWcgfSBmcm9tICcuL21vZGVsL3JldC1pbmZyYXVzdWFyaW9pbWcnO1xyXG5pbXBvcnQgeyBVc3VhcmlvX0lNRyB9IGZyb20gJy4vbW9kZWwvdXN1YXJpby1pbWcnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVudVNlcnZpY2VzU2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfQkFTRV9VUkw6IHN0cmluZyA9IFwiaHR0cHM6Ly9zaXNjYW5kZXN2Ni5zaXNwcm8uY29tLmJyL1Npc3Byb0VycENsb3VkL1NlcnZpY2VfUHJpdmF0ZS9JbmZyYS9TcEluZnJhMkVycFdTL2FwaVwiOyAvLyBTcEluZnJhMkFwbGljV1NcclxuICBwcml2YXRlIHJlYWRvbmx5IF9IVFRQX0hFQURFUlMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfYXV0aFN0b3JhZ2VTZXJ2aWNlOiBBdXRoU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9odHRwQ2xpZW50OiBIdHRwQ2xpZW50XHJcbiAgKSB7XHJcbiAgICAvL3ZlcmlmaWNhciBzZSDDqSBhIG1lbGhvciBzb2x1Y8Ojb1xyXG4gICAgLy90aGlzLl9CQVNFX1VSTCA9ICFlbnZpcm9ubWVudC5wcm9kdWN0aW9uID8gdGhpcy5fQkFTRV9VUkwgOiBgJHtlbnZpcm9ubWVudC5TcEluZnJhMkVycFdTfWA7XHJcbiAgfVxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFNFUlZJQ0VTIDw9PT09PT09PT09XHJcblxyXG4gIC8vICNyZWdpb24gUFJFUEFSQVRJT05cclxuXHJcbiAgLy8gI3JlZ2lvbiBNZW51OiBVc3XDoXJpb1xyXG4gIC8vIFsuLi5dXHJcbiAgLy8gI2VuZHJlZ2lvbiBNZW51OiBVc3XDoXJpb1xyXG5cclxuICAvLyAjcmVnaW9uIE1lbnU6IEVzdGFiZWxlY2ltZW50b3NcclxuICBwdWJsaWMgZ2V0RXN0YWJlbGVjaW1lbnRvc01vZGFsTGlzdCh1c3VhcmlvSUQ6IHN0cmluZywgcGVzcXVpc2E6IHN0cmluZyk6IE9ic2VydmFibGU8UmV0RXN0YWJlbGVjaW1lbnRvc01vZGFsPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAgIC5zZXQoJ3Blc3F1aXNhJywgcGVzcXVpc2EpXHJcblxyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpXHJcbiAgICAgIC5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcblxyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5fQkFTRV9VUkx9L0luZnJhRXN0YWJlbGVjaW1lbnRvL0dldEVzdGFiZWxlY2ltZW50b3NNb2RhbGA7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnRcclxuICAgICAgLmdldDxSZXRFc3RhYmVsZWNpbWVudG9zTW9kYWw+KHVybCwgeyAncGFyYW1zJzogcGFyYW1zLCAnaGVhZGVycyc6IGhlYWRlcnMgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICB0YXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLkVycm9yKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKHJlc3BvbnNlLkVycm9yTWVzc2FnZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uIE1lbnU6IEVzdGFiZWxlY2ltZW50b3NcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQUkVQQVJBVElPTlxyXG5cclxuICAvLyAjcmVnaW9uIEdFVFxyXG5cclxuICAvLyAjcmVnaW9uIE1lbnU6IFVzdcOhcmlvXHJcbiAgcHVibGljIGdldEltYWdlbU1lbnUoKTogT2JzZXJ2YWJsZTxSZXRJbmZyYVVzdWFyaW9JbWc+IHtcclxuXHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLl9CQVNFX1VSTH0vSW5mcmFVc3VhcmlvL0dldEltYWdlbU1lbnVgO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50XHJcbiAgICAgIC5nZXQ8UmV0SW5mcmFVc3VhcmlvSW1nPih1cmwsIHsgJ2hlYWRlcnMnOiB0aGlzLl9IVFRQX0hFQURFUlMgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICB0YXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLkVycm9yKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKHJlc3BvbnNlLkVycm9yTWVzc2FnZSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhpcy5zYXZlSW1hZ2VUb1N0b3JhZ2UocmVzcG9uc2UuSW5mcmFVc3VhcmlvSW1nLklNQUdFTSwgcmVzcG9uc2UuSW5mcmFVc3VhcmlvSW1nLkZJTEVOQU1FKTtcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb24gTWVudTogVXN1w6FyaW9cclxuXHJcbiAgLy8gI3JlZ2lvbiBNZW51OiBFc3RhYmVsZWNpbWVudG9zXHJcbiAgcHVibGljIGdldEVzdGFiZWxlY2ltZW50b1Nlc3Npb24oZXN0YWJJRDogc3RyaW5nKTogT2JzZXJ2YWJsZTxSZXRFc3RhYmVsZWNpbWVudG9TZXNzaW9uPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAgIC5zZXQoJ2lkJywgZXN0YWJJRCk7XHJcblxyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5fQkFTRV9VUkx9L0luZnJhRXN0YWJlbGVjaW1lbnRvL0dldEVzdGFiZWxlY2ltZW50b1Nlc3Npb25gO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50XHJcbiAgICAgIC5nZXQ8UmV0RXN0YWJlbGVjaW1lbnRvU2Vzc2lvbj4odXJsLCB7ICdwYXJhbXMnOiBwYXJhbXMsICdoZWFkZXJzJzogdGhpcy5fSFRUUF9IRUFERVJTIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgdGFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZS5FcnJvcikge1xyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihyZXNwb25zZS5FcnJvck1lc3NhZ2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvbiBNZW51OiBFc3RhYmVsZWNpbWVudG9zXHJcblxyXG4gIC8vICNyZWdpb24gR2V0IFVzdWFyaW8gRW1haWxcclxuICBwdWJsaWMgZ2V0VXN1YXJpb0VtYWlsKCk6IE9ic2VydmFibGU8UmV0SW5mcmFVc3VhcmlvRW1haWw+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuX0JBU0VfVVJMfS9JbmZyYVVzdWFyaW8vR2V0VXN1YXJpb0VtYWlsYDtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudFxyXG4gICAgICAuZ2V0PFJldEluZnJhVXN1YXJpb0VtYWlsPih1cmwsIHsgJ2hlYWRlcnMnOiB0aGlzLl9IVFRQX0hFQURFUlMgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICB0YXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLkVycm9yKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKHJlc3BvbnNlLkVycm9yTWVzc2FnZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uIEdldCBVc3VhcmlvIEVtYWlsXHJcblxyXG4gIC8vICNlbmRyZWdpb24gR0VUXHJcblxyXG4gIC8vICNyZWdpb24gQ1JFQVRFXHJcbiAgLy8gWy4uLl1cclxuICAvLyAjZW5kcmVnaW9uIENSRUFURVxyXG5cclxuICAvLyAjcmVnaW9uIFVQREFURVxyXG5cclxuICAvLyAjcmVnaW9uIE1lbnU6IFVzdcOhcmlvXHJcbiAgcHVibGljIHVwZGF0ZUxhc3RMb2dFc3RhYklEKGVzdGFiSUQ6IHN0cmluZyk6IE9ic2VydmFibGU8UmV0RXJyb3I+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcclxuICAgICAgLnNldCgnZXN0YWJJRCcsIGVzdGFiSUQpXHJcblxyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5fQkFTRV9VUkx9L0luZnJhVXN1YXJpby9VcGRhdGVMYXN0U2VsZWN0ZWRFc3RhYmVsZWNpbWVudG9gO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50XHJcbiAgICAgIC5wb3N0PFJldEVycm9yPih1cmwsIG51bGwsIHsgJ3BhcmFtcyc6IHBhcmFtcywgJ2hlYWRlcnMnOiB0aGlzLl9IVFRQX0hFQURFUlMgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICB0YXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLkVycm9yKSB7IHRocm93IEVycm9yKHJlc3BvbnNlLkVycm9yTWVzc2FnZSk7IH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb24gTWVudTogVXN1w6FyaW9cclxuXHJcbiAgLy8gI3JlZ2lvbiBNZW51OiBFc3RhYmVsZWNpbWVudG9zXHJcbiAgcHVibGljIGRlZmluZURlZmF1bHRFc3RhYmVsZWNpbWVudG8oZXN0YWJJRDogc3RyaW5nLCB1c3VhcmlvSUQ6IHN0cmluZywgaXNEZWZhdWx0OiBib29sZWFuKTogT2JzZXJ2YWJsZTxSZXRFcnJvcj4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgICAuc2V0KCdlc3RhYklEJywgZXN0YWJJRClcclxuICAgICAgLnNldCgnaXNEZWZhdWx0JywgaXNEZWZhdWx0KVxyXG5cclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuX0JBU0VfVVJMfS9JbmZyYUVzdGFiZWxlY2ltZW50by9EZWZpbmVEZWZhdWx0RXN0YWJgO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50XHJcbiAgICAgIC5wb3N0PFJldEVycm9yPih1cmwsIG51bGwsIHsgJ3BhcmFtcyc6IHBhcmFtcywgJ2hlYWRlcnMnOiB0aGlzLl9IVFRQX0hFQURFUlMgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICB0YXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLkVycm9yKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKHJlc3BvbnNlLkVycm9yTWVzc2FnZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uIE1lbnU6IEVzdGFiZWxlY2ltZW50b3NcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBVUERBVEVcclxuXHJcbiAgLy8gI3JlZ2lvbiBERUxFVEVcclxuICAvLyBbLi4uXVxyXG4gIC8vICNlbmRyZWdpb24gREVMRVRFXHJcblxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gU0VSVklDRVMgPD09PT09PT09PT1cclxuXHJcblxyXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gVVRJTElUSUVTIDw9PT09PT09PT09XHJcbiAgcHJpdmF0ZSBfbWVudUZvb3RlckltZzogVXN1YXJpb19JTUcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcHVibGljIGdldE1lbnVGb290ZXJJbWcoKTogVXN1YXJpb19JTUcgfCBudWxsIHtcclxuICAgIGNvbnN0IGNhY2hlZEZvb3RlckltZyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ21lbnVGb290ZXJJbWcnKSEpO1xyXG5cclxuICAgIGlmIChjYWNoZWRGb290ZXJJbWcpIHsgcmV0dXJuIGNhY2hlZEZvb3RlckltZzsgfVxyXG4gICAgcmV0dXJuIHRoaXMuX21lbnVGb290ZXJJbWc7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXRNZW51Rm9vdGVySW1nKHZhbHVlOiBVc3VhcmlvX0lNRyk6IHZvaWQge1xyXG4gICAgdGhpcy5fbWVudUZvb3RlckltZyA9IHZhbHVlO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ21lbnVGb290ZXJJbWcnLCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBzYXZlSW1hZ2VUb1N0b3JhZ2UoZm9vdGVySW1nU3JjOiBzdHJpbmcsIGZvb3RlckltZ05hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRNZW51Rm9vdGVySW1nKHsgVVNVQVJJT0lEOiB0aGlzLl9hdXRoU3RvcmFnZVNlcnZpY2UuaW5mcmFVc3VhcmlvSWQsIEZJTEVOQU1FOiBmb290ZXJJbWdOYW1lLCBGSUxFOiBmb290ZXJJbWdTcmMgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gI3JlZ2lvbiBOZXdJbWcgRXZlbnRcclxuXHJcbiAgLy8gSW1wbGVtZW50YcOnw6NvIGRlIGzDs2dpY2EgdmlzdGEgbm8gbGluazogaHR0cHM6Ly9oYXNhbmdhbGFrZGludS5tZWRpdW0uY29tL2hvdy10by1jYWxsLWEtZnVuY3Rpb24taW4tYW5vdGhlci1jb21wb25lbnQtYW5ndWxhci11c2luZy1yeGpzLTNmMmU4NTkyMDcwNVxyXG4gIHByaXZhdGUgX3N1YmplY3QgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcblxyXG4gIHB1YmxpYyBuZXdVc2VySW1hZ2VFdmVudCh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJqZWN0Lm5leHQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldE5ld1VzZXJJbWFnZUV2ZW50KCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gTmV3SW1nIEV2ZW50XHJcblxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gVVRJTElUSUVTIDw9PT09PT09PT09XHJcblxyXG59XHJcbiJdfQ==
|
|
151
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1zZXJ2aWNlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWF1dGgvc3JjL2xpYi9jb21wb25lbnRzL21lbnUtbGF0ZXJhbC9tZW51LXNlcnZpY2VzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBYyxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7OztBQWN0RCxNQUFNLE9BQU8sbUJBQW1CO0lBSTlCLFlBQ1UsbUJBQXVDLEVBQ3ZDLFdBQXVCO1FBRHZCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDdkMsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFMaEIsY0FBUyxHQUFXLDBGQUEwRixDQUFDLENBQUMsa0JBQWtCO1FBQ2xJLGtCQUFhLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLGtCQUFrQixDQUFDLENBQUM7UUFtSjNGLG9DQUFvQztRQUVwQyxvQkFBb0I7UUFFcEIsaUJBQWlCO1FBQ2pCLFFBQVE7UUFDUixvQkFBb0I7UUFFcEIsOENBQThDO1FBRzlDLDRDQUE0QztRQUNwQyxtQkFBYyxHQUF1QixJQUFJLENBQUM7UUFtQmxELHVCQUF1QjtRQUV2Qix1SkFBdUo7UUFDL0ksYUFBUSxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUEvS3BDLGlDQUFpQztRQUNqQyw2RkFBNkY7SUFDL0YsQ0FBQztJQUVELDJDQUEyQztJQUUzQyxzQkFBc0I7SUFFdEIsd0JBQXdCO0lBQ3hCLFFBQVE7SUFDUiwyQkFBMkI7SUFFM0IsaUNBQWlDO0lBQzFCLDRCQUE0QixDQUFDLFNBQWlCLEVBQUUs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LENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQzsrR0EvTFUsbUJBQW1CO21IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0LCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IFJldEVycm9yLCBSZXRFc3RhYmVsZWNpbWVudG9zTW9kYWwgfSBmcm9tICduZ3gtc3AtaW5mcmEnO1xyXG4vLyBpbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudHMnO1xyXG5pbXBvcnQgeyBBdXRoU3RvcmFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zdG9yYWdlL2F1dGgtc3RvcmFnZS5zZXJ2aWNlJztcclxuXHJcbmltcG9ydCB7IFJldEVzdGFiZWxlY2ltZW50b1Nlc3Npb24gfSBmcm9tICcuL21vZGVsL3JldC1lc3RhYmVsZWNpbWVudG8tc2Vzc2lvbic7XHJcbmltcG9ydCB7IFJldEluZnJhVXN1YXJpb0VtYWlsIH0gZnJvbSAnLi9tb2RlbC9yZXQtaW5mcmF1c3VhcmlvZW1haWwnO1xyXG5pbXBvcnQgeyBSZXRJbmZyYVVzdWFyaW9JbWcgfSBmcm9tICcuL21vZGVsL3JldC1pbmZyYXVzdWFyaW9pbWcnO1xyXG5pbXBvcnQgeyBVc3VhcmlvX0lNRyB9IGZyb20gJy4vbW9kZWwvdXN1YXJpby1pbWcnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVudVNlcnZpY2VzU2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBfQkFTRV9VUkw6IHN0cmluZyA9IFwiaHR0cHM6Ly9zaXNjYW5kZXN2Ni5zaXNwcm8uY29tLmJyL1Npc3Byb0VycENsb3VkL1NlcnZpY2VfUHJpdmF0ZS9JbmZyYS9TcEluZnJhMkVycFdTL2FwaVwiOyAvLyBTcEluZnJhMkFwbGljV1NcclxuICBwcml2YXRlIHJlYWRvbmx5IF9IVFRQX0hFQURFUlMgPSBuZXcgSHR0cEhlYWRlcnMoKS5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfYXV0aFN0b3JhZ2VTZXJ2aWNlOiBBdXRoU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9odHRwQ2xpZW50OiBIdHRwQ2xpZW50XHJcbiAgKSB7XHJcbiAgICAvL3ZlcmlmaWNhciBzZSDDqSBhIG1lbGhvciBzb2x1Y8Ojb1xyXG4gICAgLy90aGlzLl9CQVNFX1VSTCA9ICFlbnZpcm9ubWVudC5wcm9kdWN0aW9uID8gdGhpcy5fQkFTRV9VUkwgOiBgJHtlbnZpcm9ubWVudC5TcEluZnJhMkVycFdTfWA7XHJcbiAgfVxyXG5cclxuICAvLyAjcmVnaW9uID09PT09PT09PT0+IFNFUlZJQ0VTIDw9PT09PT09PT09XHJcblxyXG4gIC8vICNyZWdpb24gUFJFUEFSQVRJT05cclxuXHJcbiAgLy8gI3JlZ2lvbiBNZW51OiBVc3XDoXJpb1xyXG4gIC8vIFsuLi5dXHJcbiAgLy8gI2VuZHJlZ2lvbiBNZW51OiBVc3XDoXJpb1xyXG5cclxuICAvLyAjcmVnaW9uIE1lbnU6IEVzdGFiZWxlY2ltZW50b3NcclxuICBwdWJsaWMgZ2V0RXN0YWJlbGVjaW1lbnRvc01vZGFsTGlzdCh1c3VhcmlvSUQ6IHN0cmluZywgcGVzcXVpc2E6IHN0cmluZyk6IE9ic2VydmFibGU8UmV0RXN0YWJlbGVjaW1lbnRvc01vZGFsPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAgIC5zZXQoJ3Blc3F1aXNhJywgcGVzcXVpc2EpXHJcblxyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycygpXHJcbiAgICAgIC5zZXQoJ0NvbnRlbnQtVHlwZScsICdhcHBsaWNhdGlvbi9qc29uJyk7XHJcblxyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5fQkFTRV9VUkx9L0luZnJhRXN0YWJlbGVjaW1lbnRvL0dldEVzdGFiZWxlY2ltZW50b3NNb2RhbGA7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHBDbGllbnRcclxuICAgICAgLmdldDxSZXRFc3RhYmVsZWNpbWVudG9zTW9kYWw+KHVybCwgeyAncGFyYW1zJzogcGFyYW1zLCAnaGVhZGVycyc6IGhlYWRlcnMgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICB0YXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLkVycm9yKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKHJlc3BvbnNlLkVycm9yTWVzc2FnZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uIE1lbnU6IEVzdGFiZWxlY2ltZW50b3NcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBQUkVQQVJBVElPTlxyXG5cclxuICAvLyAjcmVnaW9uIEdFVFxyXG5cclxuICAvLyAjcmVnaW9uIE1lbnU6IFVzdcOhcmlvXHJcbiAgcHVibGljIGdldEltYWdlbU1lbnUoKTogT2JzZXJ2YWJsZTxSZXRJbmZyYVVzdWFyaW9JbWc+IHtcclxuXHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLl9CQVNFX1VSTH0vSW5mcmFVc3VhcmlvL0dldEltYWdlbU1lbnVgO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50XHJcbiAgICAgIC5nZXQ8UmV0SW5mcmFVc3VhcmlvSW1nPih1cmwsIHsgJ2hlYWRlcnMnOiB0aGlzLl9IVFRQX0hFQURFUlMgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICB0YXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLkVycm9yKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKHJlc3BvbnNlLkVycm9yTWVzc2FnZSk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgdGhpcy5zYXZlSW1hZ2VUb1N0b3JhZ2UocmVzcG9uc2UuSW5mcmFVc3VhcmlvSW1nLkltYWdlbSwgcmVzcG9uc2UuSW5mcmFVc3VhcmlvSW1nLkZpbGVOYW1lKTtcclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb24gTWVudTogVXN1w6FyaW9cclxuXHJcbiAgLy8gI3JlZ2lvbiBNZW51OiBFc3RhYmVsZWNpbWVudG9zXHJcbiAgcHVibGljIGdldEVzdGFiZWxlY2ltZW50b1Nlc3Npb24oZXN0YWJJRDogc3RyaW5nKTogT2JzZXJ2YWJsZTxSZXRFc3RhYmVsZWNpbWVudG9TZXNzaW9uPiB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAgIC5zZXQoJ2lkJywgZXN0YWJJRCk7XHJcblxyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5fQkFTRV9VUkx9L0luZnJhRXN0YWJlbGVjaW1lbnRvL0dldEVzdGFiZWxlY2ltZW50b1Nlc3Npb25gO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50XHJcbiAgICAgIC5nZXQ8UmV0RXN0YWJlbGVjaW1lbnRvU2Vzc2lvbj4odXJsLCB7ICdwYXJhbXMnOiBwYXJhbXMsICdoZWFkZXJzJzogdGhpcy5fSFRUUF9IRUFERVJTIH0pXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgdGFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgIGlmIChyZXNwb25zZS5FcnJvcikge1xyXG4gICAgICAgICAgICB0aHJvdyBFcnJvcihyZXNwb25zZS5FcnJvck1lc3NhZ2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvbiBNZW51OiBFc3RhYmVsZWNpbWVudG9zXHJcblxyXG4gIC8vICNyZWdpb24gR2V0IFVzdWFyaW8gRW1haWxcclxuICBwdWJsaWMgZ2V0VXN1YXJpb0VtYWlsKCk6IE9ic2VydmFibGU8UmV0SW5mcmFVc3VhcmlvRW1haWw+IHtcclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuX0JBU0VfVVJMfS9JbmZyYVVzdWFyaW8vR2V0VXN1YXJpb0VtYWlsYDtcclxuXHJcbiAgICByZXR1cm4gdGhpcy5faHR0cENsaWVudFxyXG4gICAgICAuZ2V0PFJldEluZnJhVXN1YXJpb0VtYWlsPih1cmwsIHsgJ2hlYWRlcnMnOiB0aGlzLl9IVFRQX0hFQURFUlMgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICB0YXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLkVycm9yKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKHJlc3BvbnNlLkVycm9yTWVzc2FnZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uIEdldCBVc3VhcmlvIEVtYWlsXHJcblxyXG4gIC8vICNlbmRyZWdpb24gR0VUXHJcblxyXG4gIC8vICNyZWdpb24gQ1JFQVRFXHJcbiAgLy8gWy4uLl1cclxuICAvLyAjZW5kcmVnaW9uIENSRUFURVxyXG5cclxuICAvLyAjcmVnaW9uIFVQREFURVxyXG5cclxuICAvLyAjcmVnaW9uIE1lbnU6IFVzdcOhcmlvXHJcbiAgcHVibGljIHVwZGF0ZUxhc3RMb2dFc3RhYklEKGVzdGFiSUQ6IHN0cmluZyk6IE9ic2VydmFibGU8UmV0RXJyb3I+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcclxuICAgICAgLnNldCgnZXN0YWJJRCcsIGVzdGFiSUQpXHJcblxyXG4gICAgY29uc3QgdXJsID0gYCR7dGhpcy5fQkFTRV9VUkx9L0luZnJhVXN1YXJpby9VcGRhdGVMYXN0U2VsZWN0ZWRFc3RhYmVsZWNpbWVudG9gO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50XHJcbiAgICAgIC5wb3N0PFJldEVycm9yPih1cmwsIG51bGwsIHsgJ3BhcmFtcyc6IHBhcmFtcywgJ2hlYWRlcnMnOiB0aGlzLl9IVFRQX0hFQURFUlMgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICB0YXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLkVycm9yKSB7IHRocm93IEVycm9yKHJlc3BvbnNlLkVycm9yTWVzc2FnZSk7IH1cclxuICAgICAgICB9KVxyXG4gICAgICApXHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb24gTWVudTogVXN1w6FyaW9cclxuXHJcbiAgLy8gI3JlZ2lvbiBNZW51OiBFc3RhYmVsZWNpbWVudG9zXHJcbiAgcHVibGljIGRlZmluZURlZmF1bHRFc3RhYmVsZWNpbWVudG8oZXN0YWJJRDogc3RyaW5nLCB1c3VhcmlvSUQ6IHN0cmluZywgaXNEZWZhdWx0OiBib29sZWFuKTogT2JzZXJ2YWJsZTxSZXRFcnJvcj4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgICAuc2V0KCdlc3RhYklEJywgZXN0YWJJRClcclxuICAgICAgLnNldCgnaXNEZWZhdWx0JywgaXNEZWZhdWx0KVxyXG5cclxuICAgIGNvbnN0IHVybCA9IGAke3RoaXMuX0JBU0VfVVJMfS9JbmZyYUVzdGFiZWxlY2ltZW50by9EZWZpbmVEZWZhdWx0RXN0YWJgO1xyXG5cclxuICAgIHJldHVybiB0aGlzLl9odHRwQ2xpZW50XHJcbiAgICAgIC5wb3N0PFJldEVycm9yPih1cmwsIG51bGwsIHsgJ3BhcmFtcyc6IHBhcmFtcywgJ2hlYWRlcnMnOiB0aGlzLl9IVFRQX0hFQURFUlMgfSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgdGFrZSgxKSxcclxuICAgICAgICB0YXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLkVycm9yKSB7XHJcbiAgICAgICAgICAgIHRocm93IEVycm9yKHJlc3BvbnNlLkVycm9yTWVzc2FnZSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgKVxyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uIE1lbnU6IEVzdGFiZWxlY2ltZW50b3NcclxuXHJcbiAgLy8gI2VuZHJlZ2lvbiBVUERBVEVcclxuXHJcbiAgLy8gI3JlZ2lvbiBERUxFVEVcclxuICAvLyBbLi4uXVxyXG4gIC8vICNlbmRyZWdpb24gREVMRVRFXHJcblxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gU0VSVklDRVMgPD09PT09PT09PT1cclxuXHJcblxyXG4gIC8vICNyZWdpb24gPT09PT09PT09PT4gVVRJTElUSUVTIDw9PT09PT09PT09XHJcbiAgcHJpdmF0ZSBfbWVudUZvb3RlckltZzogVXN1YXJpb19JTUcgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcHVibGljIGdldE1lbnVGb290ZXJJbWcoKTogVXN1YXJpb19JTUcgfCBudWxsIHtcclxuICAgIGNvbnN0IGNhY2hlZEZvb3RlckltZyA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ21lbnVGb290ZXJJbWcnKSEpO1xyXG5cclxuICAgIGlmIChjYWNoZWRGb290ZXJJbWcpIHsgcmV0dXJuIGNhY2hlZEZvb3RlckltZzsgfVxyXG4gICAgcmV0dXJuIHRoaXMuX21lbnVGb290ZXJJbWc7XHJcbiAgfVxyXG4gIHB1YmxpYyBzZXRNZW51Rm9vdGVySW1nKHZhbHVlOiBVc3VhcmlvX0lNRyk6IHZvaWQge1xyXG4gICAgdGhpcy5fbWVudUZvb3RlckltZyA9IHZhbHVlO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ21lbnVGb290ZXJJbWcnLCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBzYXZlSW1hZ2VUb1N0b3JhZ2UoZm9vdGVySW1nU3JjOiBzdHJpbmcsIGZvb3RlckltZ05hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXRNZW51Rm9vdGVySW1nKHsgVVNVQVJJT0lEOiB0aGlzLl9hdXRoU3RvcmFnZVNlcnZpY2UuaW5mcmFVc3VhcmlvSWQsIEZJTEVOQU1FOiBmb290ZXJJbWdOYW1lLCBGSUxFOiBmb290ZXJJbWdTcmMgfSk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gI3JlZ2lvbiBOZXdJbWcgRXZlbnRcclxuXHJcbiAgLy8gSW1wbGVtZW50YcOnw6NvIGRlIGzDs2dpY2EgdmlzdGEgbm8gbGluazogaHR0cHM6Ly9oYXNhbmdhbGFrZGludS5tZWRpdW0uY29tL2hvdy10by1jYWxsLWEtZnVuY3Rpb24taW4tYW5vdGhlci1jb21wb25lbnQtYW5ndWxhci11c2luZy1yeGpzLTNmMmU4NTkyMDcwNVxyXG4gIHByaXZhdGUgX3N1YmplY3QgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcblxyXG4gIHB1YmxpYyBuZXdVc2VySW1hZ2VFdmVudCh2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJqZWN0Lm5leHQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldE5ld1VzZXJJbWFnZUV2ZW50KCk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc3ViamVjdC5hc09ic2VydmFibGUoKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gTmV3SW1nIEV2ZW50XHJcblxyXG4gIC8vICNlbmRyZWdpb24gPT09PT09PT09PT4gVVRJTElUSUVTIDw9PT09PT09PT09XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export class InfraUsuarioImg {
|
|
2
2
|
constructor() {
|
|
3
|
-
this.
|
|
4
|
-
this.
|
|
5
|
-
this.
|
|
6
|
-
this.
|
|
7
|
-
this.
|
|
8
|
-
this.
|
|
9
|
-
this.
|
|
3
|
+
this.Tenant_Id = 0;
|
|
4
|
+
this.Id = 0;
|
|
5
|
+
this.Imagem = "";
|
|
6
|
+
this.FileName = "";
|
|
7
|
+
this.DataCriacao = new Date();
|
|
8
|
+
this.Is_Active = false;
|
|
9
|
+
this.UsuarioId = "";
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mcmF1c3VhcmlvaW1nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXNwLWF1dGgvc3JjL2xpYi9jb21wb25lbnRzL21lbnUtbGF0ZXJhbC9tb2RlbC9pbmZyYXVzdWFyaW9pbWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxPQUFPLGVBQWU7SUFBNUI7UUFDRSxjQUFTLEdBQVcsQ0FBQyxDQUFDO1FBQ3RCLE9BQUUsR0FBVyxDQUFDLENBQUM7UUFDZixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBQ3BCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsZ0JBQVcsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQy9CLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsY0FBUyxHQUFXLEVBQUUsQ0FBQztJQUN6QixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgSW5mcmFVc3VhcmlvSW1nIHtcclxuICBUZW5hbnRfSWQ6IG51bWJlciA9IDA7XHJcbiAgSWQ6IG51bWJlciA9IDA7XHJcbiAgSW1hZ2VtOiBzdHJpbmcgPSBcIlwiO1xyXG4gIEZpbGVOYW1lOiBzdHJpbmcgPSBcIlwiO1xyXG4gIERhdGFDcmlhY2FvOiBEYXRlID0gbmV3IERhdGUoKTtcclxuICBJc19BY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBVc3VhcmlvSWQ6IHN0cmluZyA9IFwiXCI7XHJcbn1cclxuIl19
|
|
@@ -9,14 +9,14 @@ export class LibCustomLoginService {
|
|
|
9
9
|
* Utilizado para inicializações diversas
|
|
10
10
|
*/
|
|
11
11
|
authLogin() {
|
|
12
|
-
this.storedAuthLogin;
|
|
12
|
+
this.storedAuthLogin();
|
|
13
13
|
}
|
|
14
14
|
/**
|
|
15
15
|
* Método executado no auth.service.ts - método: logout ()
|
|
16
16
|
* Utilizado para inicializações diversas
|
|
17
17
|
*/
|
|
18
18
|
authLogout() {
|
|
19
|
-
this.storedAuthLogout;
|
|
19
|
+
this.storedAuthLogout();
|
|
20
20
|
}
|
|
21
21
|
/**
|
|
22
22
|
* Método executado no auth.service.ts - método: login ()
|
|
@@ -28,7 +28,7 @@ export class LibCustomLoginService {
|
|
|
28
28
|
router.navigate(["/home"]);
|
|
29
29
|
}
|
|
30
30
|
ConfigurarCustomLogin(customLoginService) {
|
|
31
|
-
//passando propriedades do
|
|
31
|
+
//passando propriedades do projeto para a lib
|
|
32
32
|
this.loginTitle = customLoginService.loginTitle;
|
|
33
33
|
this.loginSubtitle = customLoginService.loginSubtitle;
|
|
34
34
|
this.loginBackground = customLoginService.loginBackground;
|
|
@@ -38,7 +38,7 @@ export class LibCustomLoginService {
|
|
|
38
38
|
this.loginDesenvDomain = customLoginService.loginDesenvDomain;
|
|
39
39
|
this.loginDesenvUser = customLoginService.loginDesenvUser;
|
|
40
40
|
this.loginDesenvPassword = customLoginService.loginDesenvPassword;
|
|
41
|
-
//passando implementação dos métodos do
|
|
41
|
+
//passando implementação dos métodos do projeto para a lib
|
|
42
42
|
this.storedAuthLogin = customLoginService.authLogin;
|
|
43
43
|
this.storedAuthLogout = customLoginService.authLogout;
|
|
44
44
|
}
|
|
@@ -49,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
49
49
|
type: Injectable,
|
|
50
50
|
args: [{ providedIn: 'root' }]
|
|
51
51
|
}], ctorParameters: () => [] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWxvZ2luLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtc3AtYXV0aC9zcmMvbGliL2N1c3RvbS9jdXN0b20tbG9naW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU8zQyxNQUFNLE9BQU8scUJBQXFCO0lBQzlCLGdCQUFnQixDQUFDO0lBWWpCLDJFQUEyRTtJQUUzRSxpRUFBaUU7SUFFakU7OztPQUdHO0lBQ0ksU0FBUztRQUNaLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksVUFBVTtRQUNiLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLGtCQUFrQixDQUFDLE1BQWM7UUFDcEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQVNNLHFCQUFxQixDQUFDLGtCQUF1QztRQUVoRSw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLENBQUE7UUFFL0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLENBQUE7UUFFckQsSUFBSSxDQUFDLGVBQWUsR0FBRyxrQkFBa0IsQ0FBQyxlQUFlLENBQUE7UUFFekQsSUFBSSxDQUFDLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQyxhQUFhLENBQUE7UUFFckQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDLGdCQUFnQixDQUFBO1FBRTNELElBQUksQ0FBQyxjQUFjLEdBQUcsa0JBQWtCLENBQUMsY0FBYyxDQUFBO1FBRXZELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQTtRQUU3RCxJQUFJLENBQUMsZUFBZSxHQUFHLGtCQUFrQixDQUFDLGVBQWUsQ0FBQTtRQUV6RCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsa0JBQWtCLENBQUMsbUJBQW1CLENBQUE7UUFFakUsMERBQTBEO1FBQzFELElBQUksQ0FBQyxlQUFlLEdBQUcsa0JBQWtCLENBQUMsU0FBUyxDQUFDO1FBQ3BELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxrQkFBa0IsQ0FBQyxVQUFVLENBQUM7SUFDMUQsQ0FBQzsrR0ExRVEscUJBQXFCO21IQUFyQixxQkFBcUIsY0FGaEIsTUFBTTs7NEZBRVgscUJBQXFCO2tCQUhqQyxVQUFVO21CQUNQLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgSUN1c3RvbUxvZ2luU2VydmljZSB9IGZyb20gJy4vbW9kZWxzL2ljdXN0b20tbG9naW4tc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZShcclxuICAgIHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH1cclxuKVxyXG5leHBvcnQgY2xhc3MgTGliQ3VzdG9tTG9naW5TZXJ2aWNlIHtcclxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQcm9wcmllZGFkZSBDdXN0b21pemFkYXMgcGFyYSBvIENvbXBvbmVudGUgbG9naW4uY29tcG9uZW50LnRzXHJcbiAgICBsb2dpblRpdGxlITogc3RyaW5nO1xyXG4gICAgbG9naW5TdWJ0aXRsZSE6IHN0cmluZztcclxuICAgIGxvZ2luQmFja2dyb3VuZCE6IHN0cmluZztcclxuICAgIGxvZ2luTG9nb3RpcG8hOiBzdHJpbmc7XHJcbiAgICBsb2dpbkFsdExvZ290aXBvITogc3RyaW5nO1xyXG4gICAgbG9naW5QYWdlVGl0bGUhOiBzdHJpbmc7XHJcbiAgICBsb2dpbkRlc2VudkRvbWFpbiE6IHN0cmluZztcclxuICAgIGxvZ2luRGVzZW52VXNlciE6IHN0cmluZztcclxuICAgIGxvZ2luRGVzZW52UGFzc3dvcmQhOiBzdHJpbmc7XHJcbiAgICAvLyAjZW5kcmVnaW9uIFByb3ByaWVkYWRlIEN1c3RvbWl6YWRhcyBwYXJhIG8gQ29tcG9uZW50ZSBsb2dpbi5jb21wb25lbnQudHNcclxuXHJcbiAgICAvLyAjcmVnaW9uIE3DqXRvZG9zIEN1c3RvbWl6YWRhcyBwYXJhIG8gQ29tcG9uZW50ZSBhdXRoLnNlcnZpY2UudHNcclxuXHJcbiAgICAvKipcclxuICAgICAqIE3DqXRvZG8gZXhlY3V0YWRvIG5vIGF1dGguc2VydmljZS50cyAtIG3DqXRvZG86IGxvZ2luICgpXHJcbiAgICAgKiBVdGlsaXphZG8gcGFyYSBpbmljaWFsaXphw6fDtWVzIGRpdmVyc2FzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhdXRoTG9naW4oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdG9yZWRBdXRoTG9naW4oKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE3DqXRvZG8gZXhlY3V0YWRvIG5vIGF1dGguc2VydmljZS50cyAtIG3DqXRvZG86IGxvZ291dCAoKVxyXG4gICAgICogVXRpbGl6YWRvIHBhcmEgaW5pY2lhbGl6YcOnw7VlcyBkaXZlcnNhc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYXV0aExvZ291dCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnN0b3JlZEF1dGhMb2dvdXQoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE3DqXRvZG8gZXhlY3V0YWRvIG5vIGF1dGguc2VydmljZS50cyAtIG3DqXRvZG86IGxvZ2luICgpXHJcbiAgICAgKiBVdGlsaXphZG8gcGFyYSBpbmZvcm1hciBvIHJlZGlyZWNpb25hbWVudG8gcGFyYSBhIHRlbGEgaW5pY2lhbCBhcMOzcyBvIGxvZ2luIG9rXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSByb3V0ZXIgT2JqZXRvIGRlIFJvdXRlciBxdWUgc2Vyw6EgdXRpbGl6YWRvXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhdXRoTmF2aWdhdGVUb1BhZ2Uocm91dGVyOiBSb3V0ZXIpOiB2b2lkIHtcclxuICAgICAgICByb3V0ZXIubmF2aWdhdGUoW1wiL2hvbWVcIl0pO1xyXG4gICAgfVxyXG4gICAgLy8gI2VuZHJlZ2lvbiBNw6l0b2RvcyBDdXN0b21pemFkYXMgcGFyYSBvIENvbXBvbmVudGUgYXV0aC5zZXJ2aWNlLnRzXHJcblxyXG4gICAgLy8gI3JlZ2lvbiBVVElMU1xyXG5cclxuICAgIHB1YmxpYyBzdG9yZWRBdXRoTG9naW4hOiAoKSA9PiB2b2lkO1xyXG4gICAgcHVibGljIHN0b3JlZEF1dGhMb2dvdXQhOiAoKSA9PiB2b2lkO1xyXG4gICAgcHVibGljIHN0b3JlZEF1dGhOYXZpZ2F0ZVRvUGFnZSE6IChyb3V0ZXI6IFJvdXRlcikgPT4gdm9pZDtcclxuXHJcbiAgICBwdWJsaWMgQ29uZmlndXJhckN1c3RvbUxvZ2luKGN1c3RvbUxvZ2luU2VydmljZTogSUN1c3RvbUxvZ2luU2VydmljZSk6IHZvaWQge1xyXG5cclxuICAgICAgICAvL3Bhc3NhbmRvIHByb3ByaWVkYWRlcyBkbyBwcm9qZXRvIHBhcmEgYSBsaWJcclxuICAgICAgICB0aGlzLmxvZ2luVGl0bGUgPSBjdXN0b21Mb2dpblNlcnZpY2UubG9naW5UaXRsZVxyXG5cclxuICAgICAgICB0aGlzLmxvZ2luU3VidGl0bGUgPSBjdXN0b21Mb2dpblNlcnZpY2UubG9naW5TdWJ0aXRsZVxyXG5cclxuICAgICAgICB0aGlzLmxvZ2luQmFja2dyb3VuZCA9IGN1c3RvbUxvZ2luU2VydmljZS5sb2dpbkJhY2tncm91bmRcclxuXHJcbiAgICAgICAgdGhpcy5sb2dpbkxvZ290aXBvID0gY3VzdG9tTG9naW5TZXJ2aWNlLmxvZ2luTG9nb3RpcG9cclxuXHJcbiAgICAgICAgdGhpcy5sb2dpbkFsdExvZ290aXBvID0gY3VzdG9tTG9naW5TZXJ2aWNlLmxvZ2luQWx0TG9nb3RpcG9cclxuXHJcbiAgICAgICAgdGhpcy5sb2dpblBhZ2VUaXRsZSA9IGN1c3RvbUxvZ2luU2VydmljZS5sb2dpblBhZ2VUaXRsZVxyXG5cclxuICAgICAgICB0aGlzLmxvZ2luRGVzZW52RG9tYWluID0gY3VzdG9tTG9naW5TZXJ2aWNlLmxvZ2luRGVzZW52RG9tYWluXHJcblxyXG4gICAgICAgIHRoaXMubG9naW5EZXNlbnZVc2VyID0gY3VzdG9tTG9naW5TZXJ2aWNlLmxvZ2luRGVzZW52VXNlclxyXG5cclxuICAgICAgICB0aGlzLmxvZ2luRGVzZW52UGFzc3dvcmQgPSBjdXN0b21Mb2dpblNlcnZpY2UubG9naW5EZXNlbnZQYXNzd29yZFxyXG5cclxuICAgICAgICAvL3Bhc3NhbmRvIGltcGxlbWVudGHDp8OjbyBkb3MgbcOpdG9kb3MgZG8gcHJvamV0byBwYXJhIGEgbGliXHJcbiAgICAgICAgdGhpcy5zdG9yZWRBdXRoTG9naW4gPSBjdXN0b21Mb2dpblNlcnZpY2UuYXV0aExvZ2luO1xyXG4gICAgICAgIHRoaXMuc3RvcmVkQXV0aExvZ291dCA9IGN1c3RvbUxvZ2luU2VydmljZS5hdXRoTG9nb3V0O1xyXG4gICAgfVxyXG5cclxuICAgIC8vICNlbmRyZWdpb24gVVRJTFNcclxufVxyXG4iXX0=
|
|
@@ -38,13 +38,13 @@ export class LibCustomMenuService {
|
|
|
38
38
|
this.menuConfig = _menuConfig;
|
|
39
39
|
}
|
|
40
40
|
ConfigurarCustomMenuService(RealcustomMenuService) {
|
|
41
|
-
//passando propriedades do
|
|
41
|
+
//passando propriedades do projeto para a lib
|
|
42
42
|
this.menuDynamic = RealcustomMenuService.menuDynamic;
|
|
43
43
|
this.moduleName = RealcustomMenuService.moduleName;
|
|
44
44
|
this.moduleImg = RealcustomMenuService.moduleImg;
|
|
45
45
|
this.moduleSvg = RealcustomMenuService.moduleSvg;
|
|
46
46
|
this.themeColor = RealcustomMenuService.themeColor;
|
|
47
|
-
//passando implementação dos métodos do
|
|
47
|
+
//passando implementação dos métodos do projeto para a lib
|
|
48
48
|
this.storedMenuStaticOnInit = RealcustomMenuService.menuStaticOnInit;
|
|
49
49
|
this.storedMenuopenExpansibleMenu = RealcustomMenuService.menuopenExpansibleMenu;
|
|
50
50
|
this.storedMenuDynamicOnInit = RealcustomMenuService.menuDynamicOnInit;
|
|
@@ -85,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
85
85
|
type: Injectable,
|
|
86
86
|
args: [{ providedIn: 'root' }]
|
|
87
87
|
}], ctorParameters: () => [{ type: i1.MenuConfigService }, { type: i2.AuthStorageService }, { type: i3.Router }] });
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW1lbnUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1hdXRoL3NyYy9saWIvY3VzdG9tL2N1c3RvbS1tZW51LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7OztBQVluRCxNQUFNLE9BQU8sb0JBQW9CO0lBNkI3QiwrQkFBK0I7SUFDL0IsSUFBVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxTQUFTLENBQUMsS0FBMkI7UUFDNUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQU1NLFVBQVUsQ0FBQyxLQUF1RCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsQ0FBQztJQVV6RyxZQUNZLFdBQThCLEVBQzlCLG1CQUF1QyxFQUN2QyxPQUFlO1FBRmYsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBQzlCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDdkMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQW5EM0IsMkNBQTJDO1FBRXBDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTdCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFFeEIsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUV2QixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBRXZCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFFL0IsOENBQThDO1FBRTlDLDhCQUE4QjtRQUViLG1CQUFjLEdBQVcsMEZBQTBGLENBQUM7UUFFN0gsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixlQUFVLEdBQXlCLEVBQUUsQ0FBQztRQUN0QyxhQUFRLEdBQVksRUFBRSxDQUFDO1FBQ3ZCLHVCQUFrQixHQUF5QixFQUFFLENBQUM7UUFhdEQsNkVBQTZFO1FBQ3JFLGNBQVMsR0FBc0UsSUFBSSxlQUFlLENBQW1ELEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hNLGtCQUFhLEdBQWlFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7UUFrQi9HLGtDQUFrQztRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFTSwyQkFBMkIsQ0FBQyxxQkFBeUM7UUFFeEUsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyxXQUFXLEdBQUcscUJBQXFCLENBQUMsV0FBVyxDQUFDO1FBQ3JELElBQUksQ0FBQyxVQUFVLEdBQUcscUJBQXFCLENBQUMsVUFBVSxDQUFDO1FBQ25ELElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDO1FBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDO1FBQ2pELElBQUksQ0FBQyxVQUFVLEdBQUcscUJBQXFCLENBQUMsVUFBVSxDQUFDO1FBRW5ELDBEQUEwRDtRQUMxRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcscUJBQXFCLENBQUMsZ0JBQWdCLENBQUM7UUFDckUsSUFBSSxDQUFDLDRCQUE0QixHQUFHLHFCQUFxQixDQUFDLHNCQUFzQixDQUFDO1FBQ2pGLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQztJQUMzRSxDQUFDO0lBRUQsc0RBQXNEO0lBRXRELG9FQUFvRTtJQUNwRSx5Q0FBeUM7SUFDbEMsaUJBQWlCO1FBQ3BCLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFFRCxvRUFBb0U7SUFDcEUseUNBQXlDO0lBQ2xDLGdCQUFnQjtRQUNuQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ2xDLENBQUM7SUFDTCxDQUFDO0lBRUQsK0VBQStFO0lBQy9FLDREQUE0RDtJQUNyRCxzQkFBc0IsQ0FBQyxHQUFtQjtRQUM3QyxJQUFJLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHNMQUFzTDtJQUMvSyx3QkFBd0I7UUFFM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNaLGlCQUFpQixFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZO1lBQ3hELFNBQVMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYztTQUNyRCxDQUFDLENBQUM7SUFDUCxDQUFDOytHQS9HUSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQUZmLE1BQU07OzRGQUVYLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFDUCxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgSU1lbnVJdGVtU3RydWN0dXJlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9tZW51LWxhdGVyYWwvbW9kZWwvaW1lbnUtaXRlbS1zdHJ1Y3R1cmUubW9kZWwnO1xyXG5pbXBvcnQgeyBJTWVudSB9IGZyb20gJy4uL2NvbXBvbmVudHMvbWVudS1sYXRlcmFsL21vZGVsL2ltZW51Lm1vZGVsJztcclxuLy8gaW1wb3J0IHsgZW52aXJvbm1lbnQgfSBmcm9tICcuLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnRzJztcclxuaW1wb3J0IHsgQXV0aFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vc3RvcmFnZS9hdXRoLXN0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE1lbnVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tZW51LWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUN1c3RvbU1lbnVTZXJ2aWNlIH0gZnJvbSAnLi9tb2RlbHMvaWN1c3RvbS1tZW51LXNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoXHJcbiAgICB7IHByb3ZpZGVkSW46ICdyb290JyB9XHJcbilcclxuZXhwb3J0IGNsYXNzIExpYkN1c3RvbU1lbnVTZXJ2aWNlIHtcclxuXHJcbiAgICBwdWJsaWMgbWVudVNlcnZpY2UhOiBJQ3VzdG9tTWVudVNlcnZpY2U7XHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQcm9wcmllZGFkZSBDdXN0b21pemFkYXMgZG8gTWVudVxyXG5cclxuICAgIHB1YmxpYyBtZW51RHluYW1pYzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBtb2R1bGVOYW1lOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIHB1YmxpYyBtb2R1bGVJbWc6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgcHVibGljIG1vZHVsZVN2Zzogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICBwdWJsaWMgdGhlbWVDb2xvcjogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFByb3ByaWVkYWRlIEN1c3RvbWl6YWRhcyBkbyBNZW51XHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQcm9wcmllZGFkZSBkbyBNZW51XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfTUVOVV9CQVNFX1VSTDogc3RyaW5nID0gXCJodHRwczovL3Npc2NhbmRlc3Y2LnNpc3Byby5jb20uYnIvU2lzcHJvRXJwQ2xvdWQvU2VydmljZV9Qcml2YXRlL0luZnJhL1NwSW5mcmEyRXJwV1MvYXBpXCI7XHJcblxyXG4gICAgcHJpdmF0ZSBjdXJyZW50VVJMOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgcHJpdmF0ZSBfbWVudUl0ZW1zOiBJTWVudUl0ZW1TdHJ1Y3R1cmVbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBtZW51TGlzdDogSU1lbnVbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBtZW51TGF0ZXJhbFVwZGF0ZWQ6IElNZW51SXRlbVN0cnVjdHVyZVtdID0gW107XHJcbiAgICAvL3ZlcmlmaWNhciBlc3NlIGNhcmEgYXF1aVxyXG4gICAgcHVibGljIG1lbnVDb25maWc6IE1lbnVDb25maWdTZXJ2aWNlO1xyXG5cclxuICAgIC8qKiBPYnTDqW0gYXMgb3DDp8O1ZXMgZG8gbWVudS4gKi9cclxuICAgIHB1YmxpYyBnZXQgbWVudUl0ZW1zKCk6IElNZW51SXRlbVN0cnVjdHVyZVtdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWVudUl0ZW1zO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgbWVudUl0ZW1zKHZhbHVlOiBJTWVudUl0ZW1TdHJ1Y3R1cmVbXSkge1xyXG4gICAgICAgIHRoaXMuX21lbnVJdGVtcyA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICEgRGVmaW5pw6fDo28gZG8gQmVoYXZpb3JTdWJqZWN0OiByZXNwb25zw6F2ZWwgcHJpbmNpcGFsIGRhIGVtaXNzw6NvIGRvIGV2ZW50b1xyXG4gICAgcHJpdmF0ZSBlbXByZXNhSWQ6IEJlaGF2aW9yU3ViamVjdDx7IGVzdGFiZWxlY2ltZW50b0lEOiBzdHJpbmcsIGVtcHJlc2FJRDogc3RyaW5nIH0+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7IGVzdGFiZWxlY2ltZW50b0lEOiBzdHJpbmcsIGVtcHJlc2FJRDogc3RyaW5nIH0+KHsgZXN0YWJlbGVjaW1lbnRvSUQ6IFwiXCIsIGVtcHJlc2FJRDogXCJcIiB9KTtcclxuICAgIHB1YmxpYyBhcHBseUVtcHJlc2EkOiBPYnNlcnZhYmxlPHsgZXN0YWJlbGVjaW1lbnRvSUQ6IHN0cmluZywgZW1wcmVzYUlEOiBzdHJpbmcgfT4gPSB0aGlzLmVtcHJlc2FJZC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICBwdWJsaWMgc2V0RW1wcmVzYSh2YWx1ZTogeyBlc3RhYmVsZWNpbWVudG9JRDogc3RyaW5nLCBlbXByZXNhSUQ6IHN0cmluZyB9KSB7IHRoaXMuZW1wcmVzYUlkLm5leHQodmFsdWUpIH1cclxuICAgIC8vICEgRGVmaW5pw6fDo28gZG8gQmVoYXZpb3JTdWJqZWN0OiByZXNwb25zw6F2ZWwgcHJpbmNpcGFsIGRhIGVtaXNzw6NvIGRvIGV2ZW50b1xyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHJvcHJpZWRhZGUgZG8gTWVudVxyXG5cclxuICAgIHByaXZhdGUgc3RvcmVkTWVudVN0YXRpY09uSW5pdD86ICgpID0+IHZvaWQ7XHJcbiAgICBwcml2YXRlIHN0b3JlZE1lbnVEeW5hbWljT25Jbml0PzogKCkgPT4gdm9pZDtcclxuICAgIHByaXZhdGUgc3RvcmVkTWVudW9wZW5FeHBhbnNpYmxlTWVudT86IChyZWY6IEhUTUxEaXZFbGVtZW50KSA9PiB2b2lkO1xyXG5cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIF9tZW51Q29uZmlnOiBNZW51Q29uZmlnU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9hdXRoU3RvcmFnZVNlcnZpY2U6IEF1dGhTdG9yYWdlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcclxuXHJcbiAgICApIHtcclxuICAgICAgICAvLyBpbmljaWFsaXphw6fDtWVzIGRvIE1lbnUgRGluw6JtaWNvXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VVJMID0gdGhpcy5fcm91dGVyLnVybDtcclxuICAgICAgICB0aGlzLm1lbnVDb25maWcgPSBfbWVudUNvbmZpZztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgQ29uZmlndXJhckN1c3RvbU1lbnVTZXJ2aWNlKFJlYWxjdXN0b21NZW51U2VydmljZTogSUN1c3RvbU1lbnVTZXJ2aWNlKTogdm9pZCB7XHJcblxyXG4gICAgICAgIC8vcGFzc2FuZG8gcHJvcHJpZWRhZGVzIGRvIHByb2R1dG8gcGFyYSBhIGxpYlxyXG4gICAgICAgIHRoaXMubWVudUR5bmFtaWMgPSBSZWFsY3VzdG9tTWVudVNlcnZpY2UubWVudUR5bmFtaWM7XHJcbiAgICAgICAgdGhpcy5tb2R1bGVOYW1lID0gUmVhbGN1c3RvbU1lbnVTZXJ2aWNlLm1vZHVsZU5hbWU7XHJcbiAgICAgICAgdGhpcy5tb2R1bGVJbWcgPSBSZWFsY3VzdG9tTWVudVNlcnZpY2UubW9kdWxlSW1nO1xyXG4gICAgICAgIHRoaXMubW9kdWxlU3ZnID0gUmVhbGN1c3RvbU1lbnVTZXJ2aWNlLm1vZHVsZVN2ZztcclxuICAgICAgICB0aGlzLnRoZW1lQ29sb3IgPSBSZWFsY3VzdG9tTWVudVNlcnZpY2UudGhlbWVDb2xvcjtcclxuXHJcbiAgICAgICAgLy9wYXNzYW5kbyBpbXBsZW1lbnRhw6fDo28gZG9zIG3DqXRvZG9zIGRvIHByb2R1dG8gcGFyYSBhIGxpYlxyXG4gICAgICAgIHRoaXMuc3RvcmVkTWVudVN0YXRpY09uSW5pdCA9IFJlYWxjdXN0b21NZW51U2VydmljZS5tZW51U3RhdGljT25Jbml0O1xyXG4gICAgICAgIHRoaXMuc3RvcmVkTWVudW9wZW5FeHBhbnNpYmxlTWVudSA9IFJlYWxjdXN0b21NZW51U2VydmljZS5tZW51b3BlbkV4cGFuc2libGVNZW51O1xyXG4gICAgICAgIHRoaXMuc3RvcmVkTWVudUR5bmFtaWNPbkluaXQgPSBSZWFsY3VzdG9tTWVudVNlcnZpY2UubWVudUR5bmFtaWNPbkluaXQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI3JlZ2lvbiAtIE3DqXRvZG9zIEN1c3RvbWl6YWRhcyBwYXJhIG8gTWVudSBkaW7Dom1pY29cclxuXHJcbiAgICAvLyBNw6l0b2RvIGV4ZWN1dGFkbyBubyBtZW51LWxhdGVyYWwuY29tcG9uZW50LnRzIC0gbcOpdG9kbzogb25Jbml0ICgpXHJcbiAgICAvLyBVdGlsaXphZG8gcGFyYSBpbmljaWFsaXphw6fDtWVzIGRpdmVyc2FzXHJcbiAgICBwdWJsaWMgbWVudUR5bmFtaWNPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RvcmVkTWVudUR5bmFtaWNPbkluaXQpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZWRNZW51RHluYW1pY09uSW5pdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBNw6l0b2RvIGV4ZWN1dGFkbyBubyBtZW51LWxhdGVyYWwuY29tcG9uZW50LnRzIC0gbcOpdG9kbzogb25Jbml0ICgpXHJcbiAgICAvLyBVdGlsaXphZG8gcGFyYSBpbmljaWFsaXphw6fDtWVzIGRpdmVyc2FzXHJcbiAgICBwdWJsaWMgbWVudVN0YXRpY09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zdG9yZWRNZW51U3RhdGljT25Jbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVkTWVudVN0YXRpY09uSW5pdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBNw6l0b2RvIGV4ZWN1dGFkbyBubyBtZW51LWxhdGVyYWwuY29tcG9uZW50LnRzIC0gbcOpdG9kbzogb3BlbkV4cGFuc2libGVNZW51KClcclxuICAgIC8vIFV0aWxpemFkbyBwYXJhIGluaWNpYWxpemHDp8O1ZXMgYW8gRXhvYW5kaXIgYSBvcMOnw6NvIGRlIE1lbnVcclxuICAgIHB1YmxpYyBtZW51b3BlbkV4cGFuc2libGVNZW51KHJlZjogSFRNTERpdkVsZW1lbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zdG9yZWRNZW51b3BlbkV4cGFuc2libGVNZW51KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVkTWVudW9wZW5FeHBhbnNpYmxlTWVudShyZWYpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogTcOpdG9kbyBxdWUgZGV2ZSBzZXIgY2hhbWFkbyBuYSBzZWxlw6fDo28gZGUgdW0gbm92byBlc3RhYmVsZWNpbWVudG8sIGVsZSBhdHVhbGl6YXLDoSBvcyB2YWxvcmVzIGRvIG5vc3NvIEJlaGF2aW9yU3ViamVjdCBwYXJhIHF1ZSBwb3NzYW1vcyB1dGlsaXrDoS1sbyBlbSBvdXRyYXMgcGFydGVzIGRvIHNpc3RlbWEuICovXHJcbiAgICBwdWJsaWMgZW1pdEVzdGFiZWxlY2ltZW50b0V2ZW50KCk6IHZvaWQge1xyXG5cclxuICAgICAgICB0aGlzLnNldEVtcHJlc2Eoe1xyXG4gICAgICAgICAgICBlc3RhYmVsZWNpbWVudG9JRDogdGhpcy5fYXV0aFN0b3JhZ2VTZXJ2aWNlLmluZnJhRXN0YWJJZCxcclxuICAgICAgICAgICAgZW1wcmVzYUlEOiB0aGlzLl9hdXRoU3RvcmFnZVNlcnZpY2UuaW5mcmFFbXByZXNhSWRcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8vICNlbmRyZWdpb24gLSBNw6l0b2RvcyBDdXN0b21pemFkYXMgcGFyYSBvIE1lbnUgZGluw6JtaWNvXHJcbn1cclxuIl19
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW1lbnUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1zcC1hdXRoL3NyYy9saWIvY3VzdG9tL2N1c3RvbS1tZW51LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7OztBQVduRCxNQUFNLE9BQU8sb0JBQW9CO0lBNkI3QiwrQkFBK0I7SUFDL0IsSUFBVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRUQsSUFBVyxTQUFTLENBQUMsS0FBMkI7UUFDNUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQU1NLFVBQVUsQ0FBQyxLQUF1RCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBLENBQUMsQ0FBQztJQVV6RyxZQUNZLFdBQThCLEVBQzlCLG1CQUF1QyxFQUN2QyxPQUFlO1FBRmYsZ0JBQVcsR0FBWCxXQUFXLENBQW1CO1FBQzlCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDdkMsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQW5EM0IsMkNBQTJDO1FBRXBDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRTdCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFFeEIsY0FBUyxHQUFXLEVBQUUsQ0FBQztRQUV2QixjQUFTLEdBQVcsRUFBRSxDQUFDO1FBRXZCLGVBQVUsR0FBVyxFQUFFLENBQUM7UUFFL0IsOENBQThDO1FBRTlDLDhCQUE4QjtRQUViLG1CQUFjLEdBQVcsMEZBQTBGLENBQUM7UUFFN0gsZUFBVSxHQUFXLEVBQUUsQ0FBQztRQUN4QixlQUFVLEdBQXlCLEVBQUUsQ0FBQztRQUN0QyxhQUFRLEdBQVksRUFBRSxDQUFDO1FBQ3ZCLHVCQUFrQixHQUF5QixFQUFFLENBQUM7UUFhdEQsNkVBQTZFO1FBQ3JFLGNBQVMsR0FBc0UsSUFBSSxlQUFlLENBQW1ELEVBQUUsaUJBQWlCLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2hNLGtCQUFhLEdBQWlFLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLENBQUM7UUFrQi9HLGtDQUFrQztRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO1FBQ25DLElBQUksQ0FBQyxVQUFVLEdBQUcsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFTSwyQkFBMkIsQ0FBQyxxQkFBeUM7UUFFeEUsNkNBQTZDO1FBQzdDLElBQUksQ0FBQyxXQUFXLEdBQUcscUJBQXFCLENBQUMsV0FBVyxDQUFDO1FBQ3JELElBQUksQ0FBQyxVQUFVLEdBQUcscUJBQXFCLENBQUMsVUFBVSxDQUFDO1FBQ25ELElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDO1FBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcscUJBQXFCLENBQUMsU0FBUyxDQUFDO1FBQ2pELElBQUksQ0FBQyxVQUFVLEdBQUcscUJBQXFCLENBQUMsVUFBVSxDQUFDO1FBRW5ELDBEQUEwRDtRQUMxRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcscUJBQXFCLENBQUMsZ0JBQWdCLENBQUM7UUFDckUsSUFBSSxDQUFDLDRCQUE0QixHQUFHLHFCQUFxQixDQUFDLHNCQUFzQixDQUFDO1FBQ2pGLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQztJQUMzRSxDQUFDO0lBRUQsc0RBQXNEO0lBRXRELG9FQUFvRTtJQUNwRSx5Q0FBeUM7SUFDbEMsaUJBQWlCO1FBQ3BCLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFFRCxvRUFBb0U7SUFDcEUseUNBQXlDO0lBQ2xDLGdCQUFnQjtRQUNuQixJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1FBQ2xDLENBQUM7SUFDTCxDQUFDO0lBRUQsK0VBQStFO0lBQy9FLDREQUE0RDtJQUNyRCxzQkFBc0IsQ0FBQyxHQUFtQjtRQUM3QyxJQUFJLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHNMQUFzTDtJQUMvSyx3QkFBd0I7UUFFM0IsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNaLGlCQUFpQixFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZO1lBQ3hELFNBQVMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYztTQUNyRCxDQUFDLENBQUM7SUFDUCxDQUFDOytHQS9HUSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQUZmLE1BQU07OzRGQUVYLG9CQUFvQjtrQkFIaEMsVUFBVTttQkFDUCxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgSU1lbnVJdGVtU3RydWN0dXJlIH0gZnJvbSAnLi4vY29tcG9uZW50cy9tZW51LWxhdGVyYWwvbW9kZWwvaW1lbnUtaXRlbS1zdHJ1Y3R1cmUubW9kZWwnO1xyXG5pbXBvcnQgeyBJTWVudSB9IGZyb20gJy4uL2NvbXBvbmVudHMvbWVudS1sYXRlcmFsL21vZGVsL2ltZW51Lm1vZGVsJztcclxuaW1wb3J0IHsgQXV0aFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vc3RvcmFnZS9hdXRoLXN0b3JhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IE1lbnVDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9tZW51LWNvbmZpZy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSUN1c3RvbU1lbnVTZXJ2aWNlIH0gZnJvbSAnLi9tb2RlbHMvaWN1c3RvbS1tZW51LXNlcnZpY2UnO1xyXG5cclxuQEluamVjdGFibGUoXHJcbiAgICB7IHByb3ZpZGVkSW46ICdyb290JyB9XHJcbilcclxuZXhwb3J0IGNsYXNzIExpYkN1c3RvbU1lbnVTZXJ2aWNlIHtcclxuXHJcbiAgICBwdWJsaWMgbWVudVNlcnZpY2UhOiBJQ3VzdG9tTWVudVNlcnZpY2U7XHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQcm9wcmllZGFkZSBDdXN0b21pemFkYXMgZG8gTWVudVxyXG5cclxuICAgIHB1YmxpYyBtZW51RHluYW1pYzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIHB1YmxpYyBtb2R1bGVOYW1lOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAgIHB1YmxpYyBtb2R1bGVJbWc6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gICAgcHVibGljIG1vZHVsZVN2Zzogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICBwdWJsaWMgdGhlbWVDb2xvcjogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgICAvLyAjZW5kcmVnaW9uIFByb3ByaWVkYWRlIEN1c3RvbWl6YWRhcyBkbyBNZW51XHJcblxyXG4gICAgLy8gI3JlZ2lvbiBQcm9wcmllZGFkZSBkbyBNZW51XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfTUVOVV9CQVNFX1VSTDogc3RyaW5nID0gXCJodHRwczovL3Npc2NhbmRlc3Y2LnNpc3Byby5jb20uYnIvU2lzcHJvRXJwQ2xvdWQvU2VydmljZV9Qcml2YXRlL0luZnJhL1NwSW5mcmEyRXJwV1MvYXBpXCI7XHJcblxyXG4gICAgcHJpdmF0ZSBjdXJyZW50VVJMOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgcHJpdmF0ZSBfbWVudUl0ZW1zOiBJTWVudUl0ZW1TdHJ1Y3R1cmVbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBtZW51TGlzdDogSU1lbnVbXSA9IFtdO1xyXG4gICAgcHJpdmF0ZSBtZW51TGF0ZXJhbFVwZGF0ZWQ6IElNZW51SXRlbVN0cnVjdHVyZVtdID0gW107XHJcbiAgICAvL3ZlcmlmaWNhciBlc3NlIGNhcmEgYXF1aVxyXG4gICAgcHVibGljIG1lbnVDb25maWc6IE1lbnVDb25maWdTZXJ2aWNlO1xyXG5cclxuICAgIC8qKiBPYnTDqW0gYXMgb3DDp8O1ZXMgZG8gbWVudS4gKi9cclxuICAgIHB1YmxpYyBnZXQgbWVudUl0ZW1zKCk6IElNZW51SXRlbVN0cnVjdHVyZVtdIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWVudUl0ZW1zO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgbWVudUl0ZW1zKHZhbHVlOiBJTWVudUl0ZW1TdHJ1Y3R1cmVbXSkge1xyXG4gICAgICAgIHRoaXMuX21lbnVJdGVtcyA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vICEgRGVmaW5pw6fDo28gZG8gQmVoYXZpb3JTdWJqZWN0OiByZXNwb25zw6F2ZWwgcHJpbmNpcGFsIGRhIGVtaXNzw6NvIGRvIGV2ZW50b1xyXG4gICAgcHJpdmF0ZSBlbXByZXNhSWQ6IEJlaGF2aW9yU3ViamVjdDx7IGVzdGFiZWxlY2ltZW50b0lEOiBzdHJpbmcsIGVtcHJlc2FJRDogc3RyaW5nIH0+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDx7IGVzdGFiZWxlY2ltZW50b0lEOiBzdHJpbmcsIGVtcHJlc2FJRDogc3RyaW5nIH0+KHsgZXN0YWJlbGVjaW1lbnRvSUQ6IFwiXCIsIGVtcHJlc2FJRDogXCJcIiB9KTtcclxuICAgIHB1YmxpYyBhcHBseUVtcHJlc2EkOiBPYnNlcnZhYmxlPHsgZXN0YWJlbGVjaW1lbnRvSUQ6IHN0cmluZywgZW1wcmVzYUlEOiBzdHJpbmcgfT4gPSB0aGlzLmVtcHJlc2FJZC5hc09ic2VydmFibGUoKTtcclxuXHJcbiAgICBwdWJsaWMgc2V0RW1wcmVzYSh2YWx1ZTogeyBlc3RhYmVsZWNpbWVudG9JRDogc3RyaW5nLCBlbXByZXNhSUQ6IHN0cmluZyB9KSB7IHRoaXMuZW1wcmVzYUlkLm5leHQodmFsdWUpIH1cclxuICAgIC8vICEgRGVmaW5pw6fDo28gZG8gQmVoYXZpb3JTdWJqZWN0OiByZXNwb25zw6F2ZWwgcHJpbmNpcGFsIGRhIGVtaXNzw6NvIGRvIGV2ZW50b1xyXG5cclxuICAgIC8vICNlbmRyZWdpb24gUHJvcHJpZWRhZGUgZG8gTWVudVxyXG5cclxuICAgIHByaXZhdGUgc3RvcmVkTWVudVN0YXRpY09uSW5pdD86ICgpID0+IHZvaWQ7XHJcbiAgICBwcml2YXRlIHN0b3JlZE1lbnVEeW5hbWljT25Jbml0PzogKCkgPT4gdm9pZDtcclxuICAgIHByaXZhdGUgc3RvcmVkTWVudW9wZW5FeHBhbnNpYmxlTWVudT86IChyZWY6IEhUTUxEaXZFbGVtZW50KSA9PiB2b2lkO1xyXG5cclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIF9tZW51Q29uZmlnOiBNZW51Q29uZmlnU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9hdXRoU3RvcmFnZVNlcnZpY2U6IEF1dGhTdG9yYWdlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIF9yb3V0ZXI6IFJvdXRlcixcclxuXHJcbiAgICApIHtcclxuICAgICAgICAvLyBpbmljaWFsaXphw6fDtWVzIGRvIE1lbnUgRGluw6JtaWNvXHJcbiAgICAgICAgdGhpcy5jdXJyZW50VVJMID0gdGhpcy5fcm91dGVyLnVybDtcclxuICAgICAgICB0aGlzLm1lbnVDb25maWcgPSBfbWVudUNvbmZpZztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgQ29uZmlndXJhckN1c3RvbU1lbnVTZXJ2aWNlKFJlYWxjdXN0b21NZW51U2VydmljZTogSUN1c3RvbU1lbnVTZXJ2aWNlKTogdm9pZCB7XHJcblxyXG4gICAgICAgIC8vcGFzc2FuZG8gcHJvcHJpZWRhZGVzIGRvIHByb2pldG8gcGFyYSBhIGxpYlxyXG4gICAgICAgIHRoaXMubWVudUR5bmFtaWMgPSBSZWFsY3VzdG9tTWVudVNlcnZpY2UubWVudUR5bmFtaWM7XHJcbiAgICAgICAgdGhpcy5tb2R1bGVOYW1lID0gUmVhbGN1c3RvbU1lbnVTZXJ2aWNlLm1vZHVsZU5hbWU7XHJcbiAgICAgICAgdGhpcy5tb2R1bGVJbWcgPSBSZWFsY3VzdG9tTWVudVNlcnZpY2UubW9kdWxlSW1nO1xyXG4gICAgICAgIHRoaXMubW9kdWxlU3ZnID0gUmVhbGN1c3RvbU1lbnVTZXJ2aWNlLm1vZHVsZVN2ZztcclxuICAgICAgICB0aGlzLnRoZW1lQ29sb3IgPSBSZWFsY3VzdG9tTWVudVNlcnZpY2UudGhlbWVDb2xvcjtcclxuXHJcbiAgICAgICAgLy9wYXNzYW5kbyBpbXBsZW1lbnRhw6fDo28gZG9zIG3DqXRvZG9zIGRvIHByb2pldG8gcGFyYSBhIGxpYlxyXG4gICAgICAgIHRoaXMuc3RvcmVkTWVudVN0YXRpY09uSW5pdCA9IFJlYWxjdXN0b21NZW51U2VydmljZS5tZW51U3RhdGljT25Jbml0O1xyXG4gICAgICAgIHRoaXMuc3RvcmVkTWVudW9wZW5FeHBhbnNpYmxlTWVudSA9IFJlYWxjdXN0b21NZW51U2VydmljZS5tZW51b3BlbkV4cGFuc2libGVNZW51O1xyXG4gICAgICAgIHRoaXMuc3RvcmVkTWVudUR5bmFtaWNPbkluaXQgPSBSZWFsY3VzdG9tTWVudVNlcnZpY2UubWVudUR5bmFtaWNPbkluaXQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gI3JlZ2lvbiAtIE3DqXRvZG9zIEN1c3RvbWl6YWRhcyBwYXJhIG8gTWVudSBkaW7Dom1pY29cclxuXHJcbiAgICAvLyBNw6l0b2RvIGV4ZWN1dGFkbyBubyBtZW51LWxhdGVyYWwuY29tcG9uZW50LnRzIC0gbcOpdG9kbzogb25Jbml0ICgpXHJcbiAgICAvLyBVdGlsaXphZG8gcGFyYSBpbmljaWFsaXphw6fDtWVzIGRpdmVyc2FzXHJcbiAgICBwdWJsaWMgbWVudUR5bmFtaWNPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuc3RvcmVkTWVudUR5bmFtaWNPbkluaXQpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yZWRNZW51RHluYW1pY09uSW5pdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBNw6l0b2RvIGV4ZWN1dGFkbyBubyBtZW51LWxhdGVyYWwuY29tcG9uZW50LnRzIC0gbcOpdG9kbzogb25Jbml0ICgpXHJcbiAgICAvLyBVdGlsaXphZG8gcGFyYSBpbmljaWFsaXphw6fDtWVzIGRpdmVyc2FzXHJcbiAgICBwdWJsaWMgbWVudVN0YXRpY09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zdG9yZWRNZW51U3RhdGljT25Jbml0KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVkTWVudVN0YXRpY09uSW5pdCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvLyBNw6l0b2RvIGV4ZWN1dGFkbyBubyBtZW51LWxhdGVyYWwuY29tcG9uZW50LnRzIC0gbcOpdG9kbzogb3BlbkV4cGFuc2libGVNZW51KClcclxuICAgIC8vIFV0aWxpemFkbyBwYXJhIGluaWNpYWxpemHDp8O1ZXMgYW8gRXhvYW5kaXIgYSBvcMOnw6NvIGRlIE1lbnVcclxuICAgIHB1YmxpYyBtZW51b3BlbkV4cGFuc2libGVNZW51KHJlZjogSFRNTERpdkVsZW1lbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zdG9yZWRNZW51b3BlbkV4cGFuc2libGVNZW51KSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcmVkTWVudW9wZW5FeHBhbnNpYmxlTWVudShyZWYpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogTcOpdG9kbyBxdWUgZGV2ZSBzZXIgY2hhbWFkbyBuYSBzZWxlw6fDo28gZGUgdW0gbm92byBlc3RhYmVsZWNpbWVudG8sIGVsZSBhdHVhbGl6YXLDoSBvcyB2YWxvcmVzIGRvIG5vc3NvIEJlaGF2aW9yU3ViamVjdCBwYXJhIHF1ZSBwb3NzYW1vcyB1dGlsaXrDoS1sbyBlbSBvdXRyYXMgcGFydGVzIGRvIHNpc3RlbWEuICovXHJcbiAgICBwdWJsaWMgZW1pdEVzdGFiZWxlY2ltZW50b0V2ZW50KCk6IHZvaWQge1xyXG5cclxuICAgICAgICB0aGlzLnNldEVtcHJlc2Eoe1xyXG4gICAgICAgICAgICBlc3RhYmVsZWNpbWVudG9JRDogdGhpcy5fYXV0aFN0b3JhZ2VTZXJ2aWNlLmluZnJhRXN0YWJJZCxcclxuICAgICAgICAgICAgZW1wcmVzYUlEOiB0aGlzLl9hdXRoU3RvcmFnZVNlcnZpY2UuaW5mcmFFbXByZXNhSWRcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIC8vICNlbmRyZWdpb24gLSBNw6l0b2RvcyBDdXN0b21pemFkYXMgcGFyYSBvIE1lbnUgZGluw6JtaWNvXHJcbn1cclxuIl19
|