@onemrvapublic/design-system 17.9.0 → 17.12.5
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/layout/src/components/layout/layout.component.mjs +6 -3
- package/esm2022/mat-empty-row/index.mjs +2 -0
- package/esm2022/mat-empty-row/onemrvapublic-design-system-mat-empty-row.mjs +5 -0
- package/esm2022/mat-empty-row/src/onemrva-mat-empty-row.component.mjs +35 -0
- package/esm2022/mat-paginator/src/onemrva-mat-paginator.component.mjs +4 -1
- package/fesm2022/onemrvapublic-design-system-layout.mjs +5 -2
- package/fesm2022/onemrvapublic-design-system-layout.mjs.map +1 -1
- package/fesm2022/onemrvapublic-design-system-mat-empty-row.mjs +42 -0
- package/fesm2022/onemrvapublic-design-system-mat-empty-row.mjs.map +1 -0
- package/fesm2022/onemrvapublic-design-system-mat-paginator.mjs +3 -0
- package/fesm2022/onemrvapublic-design-system-mat-paginator.mjs.map +1 -1
- package/layout/src/components/layout/layout.component.d.ts +1 -0
- package/mat-empty-row/index.d.ts +1 -0
- package/mat-empty-row/src/onemrva-mat-empty-row.component.d.ts +19 -0
- package/mat-empty-row/src/onemrva-mat-empty-row.component.scss +29 -0
- package/mat-paginator/src/onemrva-mat-paginator.component.d.ts +1 -0
- package/mat-selectable-box/src/onemrva-mat-selectable-box.component.scss +4 -0
- package/package.json +7 -1
|
@@ -83,6 +83,9 @@ export class LayoutComponent {
|
|
|
83
83
|
this.drawerService.host = this.drawerHost;
|
|
84
84
|
this.drawerService.drawer = this.drawer;
|
|
85
85
|
}
|
|
86
|
+
get currentLanguage() {
|
|
87
|
+
return this.translateService.currentLang || '';
|
|
88
|
+
}
|
|
86
89
|
ngAfterViewInit() {
|
|
87
90
|
if (isDevMode()) {
|
|
88
91
|
this.cd.detectChanges();
|
|
@@ -112,11 +115,11 @@ export class LayoutComponent {
|
|
|
112
115
|
this.drawer.open();
|
|
113
116
|
}
|
|
114
117
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: LayoutComponent, deps: [{ token: i1.TranslateService }, { token: i0.ChangeDetectorRef }, { token: i2.BreakpointObserver }, { token: DOCUMENT }, { token: i3.OnemrvaDrawerService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
115
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: LayoutComponent, selector: "onemrva-layout", inputs: { logo: "logo", languages: "languages", environment: "environment", logoRedictionUrl: "logoRedictionUrl", profile: "profile", id: "id", role: "role" }, outputs: { login: "login", logout: "logout" }, queries: [{ propertyName: "title", first: true, predicate: LayoutTitleComponent, descendants: true }, { propertyName: "loginMenu", first: true, predicate: LayoutLoginMenuComponent, descendants: true }, { propertyName: "content", first: true, predicate: LayoutContentComponent, descendants: true }, { propertyName: "afterNav", first: true, predicate: LayoutAfterNavComponent, descendants: true }, { propertyName: "footer", first: true, predicate: LayoutFooterComponent, descendants: true }, { propertyName: "routes", predicate: LayoutRouteComponent }], viewQueries: [{ propertyName: "drawer", first: true, predicate: MatDrawer, descendants: true, static: true }, { propertyName: "drawerHost", first: true, predicate: DrawerHostDirective, descendants: true, static: true }], ngImport: i0, template: "<mat-drawer-container\n class=\"example-container\"\n [hasBackdrop]=\"drawerService.hasBackdrop\"\n autosize\n>\n <div class=\"app-content\">\n <header>\n <mat-toolbar class=\"mat-elevation-z4\">\n <div class=\"environment\" [class]=\"environment\">\n {{ environment }}\n </div>\n <div\n [class.onemrva-layout-container]=\"!fluid\"\n class=\"nav-container flex-center\"\n >\n {{ logoRedictionUrl }}\n <img\n class=\"logo\"\n [src]=\"logo\"\n [attr.data-cy]=\"\n 'onemrva_logo_' +\n translateService.currentLang?.toLocaleLowerCase()\n \"\n alt=\"Logo ONEM/RVA\"\n [routerLink]=\"\n logoRedictionUrl !== null ? logoRedictionUrl : undefined\n \"\n [ngStyle]=\"{\n cursor: logoRedictionUrl !== null ? 'pointer' : 'default',\n }\"\n />\n <div\n class=\"application-title\"\n [ngClass]=\"{ 'small-screen': isSmall }\"\n >\n <ng-container *ngIf=\"title?.template as titleTpl\">\n <ng-container *ngTemplateOutlet=\"titleTpl\"></ng-container>\n </ng-container>\n </div>\n\n <div style=\"flex: 1\"></div>\n <div\n class=\"flex-center\"\n mat-tab-nav-bar\n [tabPanel]=\"tabPanel\"\n *ngIf=\"!isSmall\"\n >\n <ng-container *ngFor=\"let e of routes?.toArray(); let i = index\">\n <a\n mat-tab-link\n [routerLink]=\"e.routerLink\"\n [routerLinkActiveOptions]=\"{ exact: !e.hasSubroutes() }\"\n #rla=\"routerLinkActive\"\n routerLinkActive=\"mdc-tab--active\"\n [active]=\"rla.isActive || e.isRouteActive()\"\n >\n <ng-container *ngIf=\"e.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\">\n </ng-container>\n </ng-container>\n </a>\n </ng-container>\n </div>\n\n <mat-tab-nav-panel #tabPanel></mat-tab-nav-panel>\n\n <ng-container *ngIf=\"afterNav?.template as tpl\">\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"profile !== null\">\n <mat-divider\n vertical\n style=\"height: 1em; align-self: center\"\n *ngIf=\"!isSmall\"\n ></mat-divider>\n <onemrva-mat-avatar\n matRipple\n *ngIf=\"profile.isLoggedIn\"\n [matMenuTriggerFor]=\"menu\"\n initials=\"{{ profile.initials() }}\"\n color=\"accent\"\n size=\"extrasmall\"\n class=\"clickable\"\n ></onemrva-mat-avatar>\n\n <onemrva-mat-avatar\n matRipple\n *ngIf=\"!profile.isLoggedIn\"\n [matMenuTriggerFor]=\"menu\"\n icon=\"account_circle\"\n color=\"\"\n size=\"extrasmall\"\n class=\"clickable\"\n ></onemrva-mat-avatar>\n <mat-menu #menu=\"matMenu\">\n <ng-container *ngIf=\"profile.isLoggedIn; else notConnected\">\n <p class=\"accountName\">\n {{ profile.firstName }} {{ profile.lastName }}\n </p>\n <mat-divider style=\"align-self: stretch\"></mat-divider>\n\n <ng-container *ngIf=\"loginMenu?.template as menuLoginTpl\">\n <ng-container *ngTemplateOutlet=\"menuLoginTpl\"></ng-container>\n </ng-container>\n\n <button\n type=\"button\"\n class=\"mat-mdc-menu-item\"\n mat-menu-item\n data-cy=\"logoutButton\"\n (click)=\"doLogout()\"\n [attr.aria-label]=\"'layout.logout' | translate\"\n >\n <mat-icon>logout</mat-icon>\n {{ 'layout.logout' | translate }}\n </button>\n </ng-container>\n <ng-template #notConnected>\n <button\n type=\"button\"\n mat-menu-item\n data-cy=\"loginButton\"\n (click)=\"doLogin()\"\n [attr.aria-label]=\"'layout.login' | translate\"\n >\n <mat-icon>login</mat-icon>\n {{ 'layout.login' | translate }}\n </button>\n </ng-template>\n </mat-menu>\n </ng-container>\n <ng-container\n *ngIf=\"\n isSmall &&\n (routes?.toArray()?.length || (languages && languages.length > 1))\n \"\n >\n <button\n type=\"button\"\n mat-icon-button\n class=\"menu-button\"\n data-cy=\"smallDeviceMenu\"\n (click)=\"toggleSideNav()\"\n [attr.aria-label]=\"'layout.menu' | translate\"\n >\n <mat-icon>menu</mat-icon>\n </button>\n </ng-container>\n <div\n class=\"flex-center\"\n mat-tab-nav-bar\n [tabPanel]=\"tabPanel\"\n *ngIf=\"!isSmall\"\n >\n <a\n [matMenuTriggerFor]=\"languageMenu\"\n data-cy=\"languageMenu\"\n [attr.aria-label]=\"'language.selection' | translate\"\n mat-tab-link\n >\n {{ translateService.currentLang }}\n <mat-icon style=\"width: 16px\">expand_more</mat-icon>\n </a>\n </div>\n <mat-menu #languageMenu>\n <button\n *ngFor=\"let lang of languages\"\n type=\"button\"\n class=\"mat-mdc-menu-item\"\n mat-menu-item\n [attr.data-cy]=\"'language_' + lang.code\"\n (click)=\"changeLanguage(lang.code)\"\n [attr.aria-label]=\"lang.label\"\n >\n {{ lang.label }}\n </button>\n </mat-menu>\n </div>\n </mat-toolbar>\n </header>\n <ng-container>\n <div\n [id]=\"id\"\n [attr.role]=\"role\"\n [class.onemrva-layout-container]=\"!fluid\"\n class=\"onemrva-layout-content\"\n *ngIf=\"content?.template as tpl\"\n >\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n\n <ng-container\n *ngIf=\"\n environment &&\n (environment === env.LOCAL || environment === env.TEST)\n \"\n >\n <button\n id=\"accessibility_fab\"\n mat-fab\n color=\"accent\"\n aria-label=\"Accessibility check\"\n matTooltip=\"Accessibility check\"\n onclick=\"(function() {var _p='//openfed.github.io/AccessibilityCheck/build/';var _i=function(s,cb) {var sc=document.createElement('script');sc.onload = function() {sc.onload = null;sc.onreadystatechange = null;cb.call(this);};sc.onreadystatechange = function(){if(/^(complete|loaded)$/.test(this.readyState) === true){sc.onreadystatechange = null;sc.onload();}};sc.src=s;if (document.head) {document.head.appendChild(sc);} else {document.getElementsByTagName('head')[0].appendChild(sc);}}; var options={path:_p};_i(_p+'HTMLCS.js',function(){HTMLCSAuditor.run('WCAG2AA',null,options);});})();\"\n >\n <mat-icon>accessibility</mat-icon>\n </button>\n </ng-container>\n </div>\n\n <footer class=\"onemrva-footer\" *ngIf=\"footer?.template as footer\">\n <div [class.onemrva-layout-container]=\"!fluid\">\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n </footer>\n </ng-container>\n </div>\n\n <mat-drawer\n class=\"onemrva-drawer mobile-menu-sidebar\"\n mode=\"over\"\n position=\"end\"\n >\n <ng-template drawerhost></ng-template>\n </mat-drawer>\n</mat-drawer-container>\n", styles: [".mat-mdc-tab-nav-bar .mat-mdc-tab-header{height:42px!important}.logo{align-self:center;cursor:pointer}.application-title{font-size:1.3rem;font-weight:700;height:42px;line-height:42px}:host .mat-toolbar{background:#fff;position:fixed;top:0;height:90px;z-index:400}.accountName{margin:16px;line-height:16px;font-weight:700}:host{position:relative}:host router-outlet{display:block;margin-bottom:90px}:host .environment{position:fixed;top:0;left:0;z-index:24000;width:60px;height:50px;padding:15px 20px;font-weight:700;font-size:16px;border-radius:0 0 100%;color:#fff;display:none}:host .environment.LOCAL{background:transparent linear-gradient(90deg,#de2174,#eb142a) 0 0 no-repeat padding-box;display:block}:host .environment.TEST{background-color:#36c;display:block}:host .environment.VAL{background-color:#093;display:block}:host a:active{outline:none}.s-menu .s-menu-languages{display:flex}.s-menu .s-menu-item.active{font-weight:700!important}.s-menu .s-menu-item:hover{cursor:pointer;font-weight:700}.onemrva-layout-content{min-height:calc(100vh - 195px)}.onemrva-footer{text-align:center;padding:9.5px;margin-top:16px}onemrva-mat-avatar.clickable{cursor:pointer}.mat-mdc-menu-content button.active>*{font-weight:700!important}.mat-mdc-menu-content button mat-icon{font-size:18px!important;height:18px;width:18px}.mat-mdc-menu-content button span{font-size:14px!important}#accessibility_fab{position:fixed;bottom:16px;left:16px}nav a.disabled{pointer-events:none}.menu-close-button{float:right}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i5.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i8.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i8.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i9.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["fitInkBarToContent", "mat-stretch-tabs", "animationDuration", "backgroundColor", "disableRipple", "color", "tabPanel"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i9.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i9.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["active", "disabled", "disableRipple", "tabIndex", "id"], exportAs: ["matTabLink"] }, { kind: "component", type: i10.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "component", type: i11.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i11.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i11.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.OnemrvaMatAvatarComponent, selector: "onemrva-mat-avatar", inputs: ["id", "roundShape", "initials", "icon", "src", "size", "color"] }, { kind: "directive", type: i14.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i15.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: i16.DrawerHostDirective, selector: "[drawerhost]" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
|
|
118
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: LayoutComponent, selector: "onemrva-layout", inputs: { logo: "logo", languages: "languages", environment: "environment", logoRedictionUrl: "logoRedictionUrl", profile: "profile", id: "id", role: "role" }, outputs: { login: "login", logout: "logout" }, queries: [{ propertyName: "title", first: true, predicate: LayoutTitleComponent, descendants: true }, { propertyName: "loginMenu", first: true, predicate: LayoutLoginMenuComponent, descendants: true }, { propertyName: "content", first: true, predicate: LayoutContentComponent, descendants: true }, { propertyName: "afterNav", first: true, predicate: LayoutAfterNavComponent, descendants: true }, { propertyName: "footer", first: true, predicate: LayoutFooterComponent, descendants: true }, { propertyName: "routes", predicate: LayoutRouteComponent }], viewQueries: [{ propertyName: "drawer", first: true, predicate: MatDrawer, descendants: true, static: true }, { propertyName: "drawerHost", first: true, predicate: DrawerHostDirective, descendants: true, static: true }], ngImport: i0, template: "<mat-drawer-container\n class=\"example-container\"\n [hasBackdrop]=\"drawerService.hasBackdrop\"\n autosize\n>\n <div class=\"app-content\">\n <header>\n <mat-toolbar class=\"mat-elevation-z4\">\n <div class=\"environment\" [class]=\"environment\">\n {{ environment }}\n </div>\n <div\n [class.onemrva-layout-container]=\"!fluid\"\n class=\"nav-container flex-center\"\n >\n {{ logoRedictionUrl }}\n <img\n class=\"logo\"\n [src]=\"logo\"\n [attr.data-cy]=\"\n 'onemrva_logo_' + currentLanguage.toLocaleLowerCase()\n \"\n alt=\"Logo ONEM/RVA\"\n [routerLink]=\"\n logoRedictionUrl !== null ? logoRedictionUrl : undefined\n \"\n [ngStyle]=\"{\n cursor: logoRedictionUrl !== null ? 'pointer' : 'default',\n }\"\n />\n <div\n class=\"application-title\"\n [ngClass]=\"{ 'small-screen': isSmall }\"\n >\n <ng-container *ngIf=\"title?.template as titleTpl\">\n <ng-container *ngTemplateOutlet=\"titleTpl\"></ng-container>\n </ng-container>\n </div>\n\n <div style=\"flex: 1\"></div>\n <div\n class=\"flex-center\"\n mat-tab-nav-bar\n [tabPanel]=\"tabPanel\"\n *ngIf=\"!isSmall\"\n >\n <ng-container *ngFor=\"let e of routes?.toArray(); let i = index\">\n <a\n mat-tab-link\n [routerLink]=\"e.routerLink\"\n [routerLinkActiveOptions]=\"{ exact: !e.hasSubroutes() }\"\n #rla=\"routerLinkActive\"\n routerLinkActive=\"mdc-tab--active\"\n [active]=\"rla.isActive || e.isRouteActive()\"\n >\n <ng-container *ngIf=\"e.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\">\n </ng-container>\n </ng-container>\n </a>\n </ng-container>\n </div>\n\n <mat-tab-nav-panel #tabPanel></mat-tab-nav-panel>\n\n <ng-container *ngIf=\"afterNav?.template as tpl\">\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"profile !== null\">\n <mat-divider\n vertical\n style=\"height: 1em; align-self: center\"\n *ngIf=\"!isSmall\"\n ></mat-divider>\n <onemrva-mat-avatar\n matRipple\n *ngIf=\"profile.isLoggedIn\"\n [matMenuTriggerFor]=\"menu\"\n initials=\"{{ profile.initials() }}\"\n color=\"accent\"\n size=\"extrasmall\"\n class=\"clickable\"\n ></onemrva-mat-avatar>\n\n <onemrva-mat-avatar\n matRipple\n *ngIf=\"!profile.isLoggedIn\"\n [matMenuTriggerFor]=\"menu\"\n icon=\"account_circle\"\n color=\"\"\n size=\"extrasmall\"\n class=\"clickable\"\n ></onemrva-mat-avatar>\n <mat-menu #menu=\"matMenu\">\n <ng-container *ngIf=\"profile.isLoggedIn; else notConnected\">\n <p class=\"accountName\">\n {{ profile.firstName }} {{ profile.lastName }}\n </p>\n <mat-divider style=\"align-self: stretch\"></mat-divider>\n\n <ng-container *ngIf=\"loginMenu?.template as menuLoginTpl\">\n <ng-container *ngTemplateOutlet=\"menuLoginTpl\"></ng-container>\n </ng-container>\n\n <button\n type=\"button\"\n class=\"mat-mdc-menu-item\"\n mat-menu-item\n data-cy=\"logoutButton\"\n (click)=\"doLogout()\"\n [attr.aria-label]=\"'layout.logout' | translate\"\n >\n <mat-icon>logout</mat-icon>\n {{ 'layout.logout' | translate }}\n </button>\n </ng-container>\n <ng-template #notConnected>\n <button\n type=\"button\"\n mat-menu-item\n data-cy=\"loginButton\"\n (click)=\"doLogin()\"\n [attr.aria-label]=\"'layout.login' | translate\"\n >\n <mat-icon>login</mat-icon>\n {{ 'layout.login' | translate }}\n </button>\n </ng-template>\n </mat-menu>\n </ng-container>\n <ng-container\n *ngIf=\"\n isSmall &&\n (routes?.toArray()?.length || (languages && languages.length > 1))\n \"\n >\n <button\n type=\"button\"\n mat-icon-button\n class=\"menu-button\"\n data-cy=\"smallDeviceMenu\"\n (click)=\"toggleSideNav()\"\n [attr.aria-label]=\"'layout.menu' | translate\"\n >\n <mat-icon>menu</mat-icon>\n </button>\n </ng-container>\n <div\n class=\"flex-center\"\n mat-tab-nav-bar\n [tabPanel]=\"tabPanel\"\n *ngIf=\"!isSmall\"\n >\n <a\n [matMenuTriggerFor]=\"languageMenu\"\n data-cy=\"languageMenu\"\n [attr.aria-label]=\"'language.selection' | translate\"\n mat-tab-link\n >\n {{ currentLanguage }}\n <mat-icon style=\"width: 16px\">expand_more</mat-icon>\n </a>\n </div>\n <mat-menu #languageMenu>\n <button\n *ngFor=\"let lang of languages\"\n type=\"button\"\n class=\"mat-mdc-menu-item\"\n mat-menu-item\n [attr.data-cy]=\"'language_' + lang.code\"\n (click)=\"changeLanguage(lang.code)\"\n [attr.aria-label]=\"lang.label\"\n >\n {{ lang.label }}\n </button>\n </mat-menu>\n </div>\n </mat-toolbar>\n </header>\n <ng-container>\n <div\n [id]=\"id\"\n [attr.role]=\"role\"\n [class.onemrva-layout-container]=\"!fluid\"\n class=\"onemrva-layout-content\"\n *ngIf=\"content?.template as tpl\"\n >\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n\n <ng-container\n *ngIf=\"\n environment &&\n (environment === env.LOCAL || environment === env.TEST)\n \"\n >\n <button\n id=\"accessibility_fab\"\n mat-fab\n color=\"accent\"\n aria-label=\"Accessibility check\"\n matTooltip=\"Accessibility check\"\n onclick=\"(function() {var _p='//openfed.github.io/AccessibilityCheck/build/';var _i=function(s,cb) {var sc=document.createElement('script');sc.onload = function() {sc.onload = null;sc.onreadystatechange = null;cb.call(this);};sc.onreadystatechange = function(){if(/^(complete|loaded)$/.test(this.readyState) === true){sc.onreadystatechange = null;sc.onload();}};sc.src=s;if (document.head) {document.head.appendChild(sc);} else {document.getElementsByTagName('head')[0].appendChild(sc);}}; var options={path:_p};_i(_p+'HTMLCS.js',function(){HTMLCSAuditor.run('WCAG2AA',null,options);});})();\"\n >\n <mat-icon>accessibility</mat-icon>\n </button>\n </ng-container>\n </div>\n\n <footer class=\"onemrva-footer\" *ngIf=\"footer?.template as footer\">\n <div [class.onemrva-layout-container]=\"!fluid\">\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n </footer>\n </ng-container>\n </div>\n\n <mat-drawer\n class=\"onemrva-drawer mobile-menu-sidebar\"\n mode=\"over\"\n position=\"end\"\n >\n <ng-template drawerhost></ng-template>\n </mat-drawer>\n</mat-drawer-container>\n", styles: [".mat-mdc-tab-nav-bar .mat-mdc-tab-header{height:42px!important}.logo{align-self:center;cursor:pointer}.application-title{font-size:1.3rem;font-weight:700;height:42px;line-height:42px}:host .mat-toolbar{background:#fff;position:fixed;top:0;height:90px;z-index:400}.accountName{margin:16px;line-height:16px;font-weight:700}:host{position:relative}:host router-outlet{display:block;margin-bottom:90px}:host .environment{position:fixed;top:0;left:0;z-index:24000;width:60px;height:50px;padding:15px 20px;font-weight:700;font-size:16px;border-radius:0 0 100%;color:#fff;display:none}:host .environment.LOCAL{background:transparent linear-gradient(90deg,#de2174,#eb142a) 0 0 no-repeat padding-box;display:block}:host .environment.TEST{background-color:#36c;display:block}:host .environment.VAL{background-color:#093;display:block}:host a:active{outline:none}.s-menu .s-menu-languages{display:flex}.s-menu .s-menu-item.active{font-weight:700!important}.s-menu .s-menu-item:hover{cursor:pointer;font-weight:700}.onemrva-layout-content{min-height:calc(100vh - 195px)}.onemrva-footer{text-align:center;padding:9.5px;margin-top:16px}onemrva-mat-avatar.clickable{cursor:pointer}.mat-mdc-menu-content button.active>*{font-weight:700!important}.mat-mdc-menu-content button mat-icon{font-size:18px!important;height:18px;width:18px}.mat-mdc-menu-content button span{font-size:14px!important}#accessibility_fab{position:fixed;bottom:16px;left:16px}nav a.disabled{pointer-events:none}.menu-close-button{float:right}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i5.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "component", type: i6.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i8.MatDrawer, selector: "mat-drawer", inputs: ["position", "mode", "disableClose", "autoFocus", "opened"], outputs: ["openedChange", "opened", "openedStart", "closed", "closedStart", "positionChanged"], exportAs: ["matDrawer"] }, { kind: "component", type: i8.MatDrawerContainer, selector: "mat-drawer-container", inputs: ["autosize", "hasBackdrop"], outputs: ["backdropClick"], exportAs: ["matDrawerContainer"] }, { kind: "component", type: i9.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["fitInkBarToContent", "mat-stretch-tabs", "animationDuration", "backgroundColor", "disableRipple", "color", "tabPanel"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i9.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i9.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["active", "disabled", "disableRipple", "tabIndex", "id"], exportAs: ["matTabLink"] }, { kind: "component", type: i10.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatFabButton, selector: "button[mat-fab]", inputs: ["extended"], exportAs: ["matButton"] }, { kind: "component", type: i11.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i11.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i11.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i12.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i13.OnemrvaMatAvatarComponent, selector: "onemrva-mat-avatar", inputs: ["id", "roundShape", "initials", "icon", "src", "size", "color"] }, { kind: "directive", type: i14.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i15.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: i16.DrawerHostDirective, selector: "[drawerhost]" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
|
|
116
119
|
}
|
|
117
120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: LayoutComponent, decorators: [{
|
|
118
121
|
type: Component,
|
|
119
|
-
args: [{ selector: 'onemrva-layout', template: "<mat-drawer-container\n class=\"example-container\"\n [hasBackdrop]=\"drawerService.hasBackdrop\"\n autosize\n>\n <div class=\"app-content\">\n <header>\n <mat-toolbar class=\"mat-elevation-z4\">\n <div class=\"environment\" [class]=\"environment\">\n {{ environment }}\n </div>\n <div\n [class.onemrva-layout-container]=\"!fluid\"\n class=\"nav-container flex-center\"\n >\n {{ logoRedictionUrl }}\n <img\n class=\"logo\"\n [src]=\"logo\"\n [attr.data-cy]=\"\n 'onemrva_logo_'
|
|
122
|
+
args: [{ selector: 'onemrva-layout', template: "<mat-drawer-container\n class=\"example-container\"\n [hasBackdrop]=\"drawerService.hasBackdrop\"\n autosize\n>\n <div class=\"app-content\">\n <header>\n <mat-toolbar class=\"mat-elevation-z4\">\n <div class=\"environment\" [class]=\"environment\">\n {{ environment }}\n </div>\n <div\n [class.onemrva-layout-container]=\"!fluid\"\n class=\"nav-container flex-center\"\n >\n {{ logoRedictionUrl }}\n <img\n class=\"logo\"\n [src]=\"logo\"\n [attr.data-cy]=\"\n 'onemrva_logo_' + currentLanguage.toLocaleLowerCase()\n \"\n alt=\"Logo ONEM/RVA\"\n [routerLink]=\"\n logoRedictionUrl !== null ? logoRedictionUrl : undefined\n \"\n [ngStyle]=\"{\n cursor: logoRedictionUrl !== null ? 'pointer' : 'default',\n }\"\n />\n <div\n class=\"application-title\"\n [ngClass]=\"{ 'small-screen': isSmall }\"\n >\n <ng-container *ngIf=\"title?.template as titleTpl\">\n <ng-container *ngTemplateOutlet=\"titleTpl\"></ng-container>\n </ng-container>\n </div>\n\n <div style=\"flex: 1\"></div>\n <div\n class=\"flex-center\"\n mat-tab-nav-bar\n [tabPanel]=\"tabPanel\"\n *ngIf=\"!isSmall\"\n >\n <ng-container *ngFor=\"let e of routes?.toArray(); let i = index\">\n <a\n mat-tab-link\n [routerLink]=\"e.routerLink\"\n [routerLinkActiveOptions]=\"{ exact: !e.hasSubroutes() }\"\n #rla=\"routerLinkActive\"\n routerLinkActive=\"mdc-tab--active\"\n [active]=\"rla.isActive || e.isRouteActive()\"\n >\n <ng-container *ngIf=\"e.template as routeTemplate\">\n <ng-container *ngTemplateOutlet=\"routeTemplate\">\n </ng-container>\n </ng-container>\n </a>\n </ng-container>\n </div>\n\n <mat-tab-nav-panel #tabPanel></mat-tab-nav-panel>\n\n <ng-container *ngIf=\"afterNav?.template as tpl\">\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"profile !== null\">\n <mat-divider\n vertical\n style=\"height: 1em; align-self: center\"\n *ngIf=\"!isSmall\"\n ></mat-divider>\n <onemrva-mat-avatar\n matRipple\n *ngIf=\"profile.isLoggedIn\"\n [matMenuTriggerFor]=\"menu\"\n initials=\"{{ profile.initials() }}\"\n color=\"accent\"\n size=\"extrasmall\"\n class=\"clickable\"\n ></onemrva-mat-avatar>\n\n <onemrva-mat-avatar\n matRipple\n *ngIf=\"!profile.isLoggedIn\"\n [matMenuTriggerFor]=\"menu\"\n icon=\"account_circle\"\n color=\"\"\n size=\"extrasmall\"\n class=\"clickable\"\n ></onemrva-mat-avatar>\n <mat-menu #menu=\"matMenu\">\n <ng-container *ngIf=\"profile.isLoggedIn; else notConnected\">\n <p class=\"accountName\">\n {{ profile.firstName }} {{ profile.lastName }}\n </p>\n <mat-divider style=\"align-self: stretch\"></mat-divider>\n\n <ng-container *ngIf=\"loginMenu?.template as menuLoginTpl\">\n <ng-container *ngTemplateOutlet=\"menuLoginTpl\"></ng-container>\n </ng-container>\n\n <button\n type=\"button\"\n class=\"mat-mdc-menu-item\"\n mat-menu-item\n data-cy=\"logoutButton\"\n (click)=\"doLogout()\"\n [attr.aria-label]=\"'layout.logout' | translate\"\n >\n <mat-icon>logout</mat-icon>\n {{ 'layout.logout' | translate }}\n </button>\n </ng-container>\n <ng-template #notConnected>\n <button\n type=\"button\"\n mat-menu-item\n data-cy=\"loginButton\"\n (click)=\"doLogin()\"\n [attr.aria-label]=\"'layout.login' | translate\"\n >\n <mat-icon>login</mat-icon>\n {{ 'layout.login' | translate }}\n </button>\n </ng-template>\n </mat-menu>\n </ng-container>\n <ng-container\n *ngIf=\"\n isSmall &&\n (routes?.toArray()?.length || (languages && languages.length > 1))\n \"\n >\n <button\n type=\"button\"\n mat-icon-button\n class=\"menu-button\"\n data-cy=\"smallDeviceMenu\"\n (click)=\"toggleSideNav()\"\n [attr.aria-label]=\"'layout.menu' | translate\"\n >\n <mat-icon>menu</mat-icon>\n </button>\n </ng-container>\n <div\n class=\"flex-center\"\n mat-tab-nav-bar\n [tabPanel]=\"tabPanel\"\n *ngIf=\"!isSmall\"\n >\n <a\n [matMenuTriggerFor]=\"languageMenu\"\n data-cy=\"languageMenu\"\n [attr.aria-label]=\"'language.selection' | translate\"\n mat-tab-link\n >\n {{ currentLanguage }}\n <mat-icon style=\"width: 16px\">expand_more</mat-icon>\n </a>\n </div>\n <mat-menu #languageMenu>\n <button\n *ngFor=\"let lang of languages\"\n type=\"button\"\n class=\"mat-mdc-menu-item\"\n mat-menu-item\n [attr.data-cy]=\"'language_' + lang.code\"\n (click)=\"changeLanguage(lang.code)\"\n [attr.aria-label]=\"lang.label\"\n >\n {{ lang.label }}\n </button>\n </mat-menu>\n </div>\n </mat-toolbar>\n </header>\n <ng-container>\n <div\n [id]=\"id\"\n [attr.role]=\"role\"\n [class.onemrva-layout-container]=\"!fluid\"\n class=\"onemrva-layout-content\"\n *ngIf=\"content?.template as tpl\"\n >\n <ng-container *ngTemplateOutlet=\"tpl\"></ng-container>\n\n <ng-container\n *ngIf=\"\n environment &&\n (environment === env.LOCAL || environment === env.TEST)\n \"\n >\n <button\n id=\"accessibility_fab\"\n mat-fab\n color=\"accent\"\n aria-label=\"Accessibility check\"\n matTooltip=\"Accessibility check\"\n onclick=\"(function() {var _p='//openfed.github.io/AccessibilityCheck/build/';var _i=function(s,cb) {var sc=document.createElement('script');sc.onload = function() {sc.onload = null;sc.onreadystatechange = null;cb.call(this);};sc.onreadystatechange = function(){if(/^(complete|loaded)$/.test(this.readyState) === true){sc.onreadystatechange = null;sc.onload();}};sc.src=s;if (document.head) {document.head.appendChild(sc);} else {document.getElementsByTagName('head')[0].appendChild(sc);}}; var options={path:_p};_i(_p+'HTMLCS.js',function(){HTMLCSAuditor.run('WCAG2AA',null,options);});})();\"\n >\n <mat-icon>accessibility</mat-icon>\n </button>\n </ng-container>\n </div>\n\n <footer class=\"onemrva-footer\" *ngIf=\"footer?.template as footer\">\n <div [class.onemrva-layout-container]=\"!fluid\">\n <ng-container *ngTemplateOutlet=\"footer\"></ng-container>\n </div>\n </footer>\n </ng-container>\n </div>\n\n <mat-drawer\n class=\"onemrva-drawer mobile-menu-sidebar\"\n mode=\"over\"\n position=\"end\"\n >\n <ng-template drawerhost></ng-template>\n </mat-drawer>\n</mat-drawer-container>\n", styles: [".mat-mdc-tab-nav-bar .mat-mdc-tab-header{height:42px!important}.logo{align-self:center;cursor:pointer}.application-title{font-size:1.3rem;font-weight:700;height:42px;line-height:42px}:host .mat-toolbar{background:#fff;position:fixed;top:0;height:90px;z-index:400}.accountName{margin:16px;line-height:16px;font-weight:700}:host{position:relative}:host router-outlet{display:block;margin-bottom:90px}:host .environment{position:fixed;top:0;left:0;z-index:24000;width:60px;height:50px;padding:15px 20px;font-weight:700;font-size:16px;border-radius:0 0 100%;color:#fff;display:none}:host .environment.LOCAL{background:transparent linear-gradient(90deg,#de2174,#eb142a) 0 0 no-repeat padding-box;display:block}:host .environment.TEST{background-color:#36c;display:block}:host .environment.VAL{background-color:#093;display:block}:host a:active{outline:none}.s-menu .s-menu-languages{display:flex}.s-menu .s-menu-item.active{font-weight:700!important}.s-menu .s-menu-item:hover{cursor:pointer;font-weight:700}.onemrva-layout-content{min-height:calc(100vh - 195px)}.onemrva-footer{text-align:center;padding:9.5px;margin-top:16px}onemrva-mat-avatar.clickable{cursor:pointer}.mat-mdc-menu-content button.active>*{font-weight:700!important}.mat-mdc-menu-content button mat-icon{font-size:18px!important;height:18px;width:18px}.mat-mdc-menu-content button span{font-size:14px!important}#accessibility_fab{position:fixed;bottom:16px;left:16px}nav a.disabled{pointer-events:none}.menu-close-button{float:right}\n"] }]
|
|
120
123
|
}], ctorParameters: () => [{ type: i1.TranslateService }, { type: i0.ChangeDetectorRef }, { type: i2.BreakpointObserver }, { type: Document, decorators: [{
|
|
121
124
|
type: Inject,
|
|
122
125
|
args: [DOCUMENT]
|
|
@@ -163,4 +166,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
|
|
|
163
166
|
}], role: [{
|
|
164
167
|
type: Input
|
|
165
168
|
}] } });
|
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZW1ydmEvZGVzaWduLXN5c3RlbS9sYXlvdXQvc3JjL2NvbXBvbmVudHMvbGF5b3V0L2xheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmVtcnZhL2Rlc2lnbi1zeXN0ZW0vbGF5b3V0L3NyYy9jb21wb25lbnRzL2xheW91dC9sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLEtBQUssRUFLTCxNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBRUwsV0FBVyxHQUVaLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRWpGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVB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QUs7Z0JBSU4sS0FBSztzQkFESixNQUFNO2dCQUlQLE1BQU07c0JBREwsTUFBTTtnQkFRaUMsTUFBTTtzQkFBN0MsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUV0QyxVQUFVO3NCQURULFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUloRCxFQUFFO3NCQURELEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIElucHV0LFxuICBBZnRlclZpZXdJbml0LFxuICBPbkRlc3Ryb3ksXG4gIFF1ZXJ5TGlzdCxcbiAgT25Jbml0LFxuICBJbmplY3QsXG4gIGlzRGV2TW9kZSxcbiAgRXZlbnRFbWl0dGVyLFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExheW91dFJvdXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vbGF5b3V0LXJvdXRlL2xheW91dC1yb3V0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTGF5b3V0Q29udGVudENvbXBvbmVudCB9IGZyb20gJy4uL2xheW91dC1jb250ZW50L2xheW91dC1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IExheW91dFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnLi4vbGF5b3V0LXRpdGxlL2xheW91dC10aXRsZS5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uL2VudW1zL2Vudmlyb25tZW50LmVudW0nO1xuaW1wb3J0IHtcbiAgQnJlYWtwb2ludE9ic2VydmVyLFxuICBCcmVha3BvaW50cyxcbiAgQnJlYWtwb2ludFN0YXRlLFxufSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IExheW91dEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4uL2xheW91dC1mb290ZXIvbGF5b3V0LWZvb3Rlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgT25lbVJ2YVByb2ZpbGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvb25lbXJ2YS1wcm9maWxlLm1vZGVsJztcbmltcG9ydCB7IExheW91dExvZ2luTWVudUNvbXBvbmVudCB9IGZyb20gJy4uL2xheW91dC1sb2dpbi1tZW51L2xheW91dC1sb2dpbi1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXREcmF3ZXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zaWRlbmF2JztcbmltcG9ydCB7IERyYXdlckhvc3REaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2RyYXdlci1ob3N0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPbmVtcnZhRHJhd2VyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RyYXdlci5zZXJ2aWNlJztcbmltcG9ydCB7IExheW91dFNpZGVuYXZDb21wb25lbnQgfSBmcm9tICcuLi9sYXlvdXQtc2lkZW5hdi9sYXlvdXQtc2lkZW5hdi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5b3V0QWZ0ZXJOYXZDb21wb25lbnQgfSBmcm9tICcuLi9sYXlvdXQtYWZ0ZXItbmF2L2xheW91dC1hZnRlci1uYXYuY29tcG9uZW50JztcbmltcG9ydCB7IE9uZW1SdmFMYW5ndWFnZSB9IGZyb20gJy4uLy4uL21vZGVscy9vbmVtLWxhbmd1YWdlLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnb25lbXJ2YS1sYXlvdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbGF5b3V0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIExheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQENvbnRlbnRDaGlsZHJlbihMYXlvdXRSb3V0ZUNvbXBvbmVudClcbiAgcm91dGVzPzogUXVlcnlMaXN0PExheW91dFJvdXRlQ29tcG9uZW50PjtcblxuICBAQ29udGVudENoaWxkKExheW91dFRpdGxlQ29tcG9uZW50KSB0aXRsZT86IExheW91dFRpdGxlQ29tcG9uZW50O1xuICBAQ29udGVudENoaWxkKExheW91dExvZ2luTWVudUNvbXBvbmVudCkgbG9naW5NZW51PzogTGF5b3V0TG9naW5NZW51Q29tcG9uZW50O1xuICBAQ29udGVudENoaWxkKExheW91dENvbnRlbnRDb21wb25lbnQpIGNvbnRlbnQ/OiBMYXlvdXRDb250ZW50Q29tcG9uZW50O1xuICBAQ29udGVudENoaWxkKExheW91dEFmdGVyTmF2Q29tcG9uZW50KSBhZnRlck5hdj86IExheW91dEFmdGVyTmF2Q29tcG9uZW50O1xuXG4gIEBDb250ZW50Q2hpbGQoTGF5b3V0Rm9vdGVyQ29tcG9uZW50KVxuICBmb290ZXI/OiBMYXlvdXRGb290ZXJDb21wb25lbnQ7XG5cbiAgZmx1aWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBsb2dvOiBzdHJpbmcgPSAnJzsgLy8gY3VzdG9tIGxvZ28sIGVtcHR5IHN0cmluZyB3aWxsIHNob3cgZGVmYXVsdCBvbmVtL3J2YS9uZW8vbGZhIGxvY2FsaXNlZCBsb2dvXG5cbiAgQElucHV0KClcbiAgbGFuZ3VhZ2VzOiBPbmVtUnZhTGFuZ3VhZ2VbXSA9IFtdOyAvLyBsaXN0IG9mIGxhbmd1YWdlc1xuXG4gIEBJbnB1dCgpXG4gIGVudmlyb25tZW50PzogRW52aXJvbm1lbnQ7IC8vIHBvc3NpYmxlIGVudmlyb25tZW50IHRvIHNob3cgb24gdGhlIGZyb250ZW5kIExPQ0FMLCBURVNULCBWQUwsIFBST0RcblxuICBASW5wdXQoKVxuICBsb2dvUmVkaWN0aW9uVXJsPzogc3RyaW5nIHwgYW55W10gfCBudWxsID0gJyc7IC8vIHZhbHVlIGZvciByb3V0ZXJMaW5rIGZyb20gbG9nby4gXCJcIiBieSBkZWZhdWx0LiBEZWFjdGl2YXRlZCB3aGVuIHNldCB0byBudWxsXG5cbiAgc2VsZWN0ZWRJbmRleCA9IDA7XG4gIGRlc3Ryb3lOb3RpZmllciQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIEBJbnB1dCgpXG4gIHByb2ZpbGU6IE9uZW1SdmFQcm9maWxlIHwgbnVsbCA9IG51bGw7IC8vIFRvIGJlIGRlZmluZWQgZm9yIGFwcGxpY2F0aW9uIHdpdGggYXV0aGVudGljYXRpb25cblxuICBAT3V0cHV0KClcbiAgbG9naW46IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgbG9nb3V0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIC8vICAgIGlzTG9nb3V0VXNlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGVudiA9IEVudmlyb25tZW50O1xuXG4gIGlzU21hbGwgPSB0cnVlO1xuXG4gIEBWaWV3Q2hpbGQoTWF0RHJhd2VyLCB7IHN0YXRpYzogdHJ1ZSB9KSBkcmF3ZXIhOiBNYXREcmF3ZXI7XG4gIEBWaWV3Q2hpbGQoRHJhd2VySG9zdERpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSlcbiAgZHJhd2VySG9zdCE6IERyYXdlckhvc3REaXJlY3RpdmU7XG5cbiAgQElucHV0KClcbiAgaWQ6IHN0cmluZyA9ICdtYWluJztcblxuICBASW5wdXQoKVxuICByb2xlOiBzdHJpbmcgPSAnbWFpbic7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHVibGljIGJyZWFrcG9pbnRPYnNlcnZlcjogQnJlYWtwb2ludE9ic2VydmVyLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIHB1YmxpYyBkcmF3ZXJTZXJ2aWNlOiBPbmVtcnZhRHJhd2VyU2VydmljZSxcbiAgKSB7XG4gICAgLy8gICAgICB0aGlzLmlzTG9nb3V0VXNlZCA9IHRoaXMubG9nb3V0Lm9ic2VydmVycy5sZW5ndGggPiAwO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy5sYW5ndWFnZXMuZmluZEluZGV4KFxuICAgICAgbCA9PiBsLmNvZGUgPT09IHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZyxcbiAgICApO1xuXG4gICAgdGhpcy5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubGFuZyA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZztcblxuICAgIHRoaXMuYnJlYWtwb2ludE9ic2VydmVyXG4gICAgICAub2JzZXJ2ZShbQnJlYWtwb2ludHMuWFNtYWxsLCBCcmVha3BvaW50cy5TbWFsbF0pXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95Tm90aWZpZXIkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXRlOiBCcmVha3BvaW50U3RhdGUpID0+IHtcbiAgICAgICAgaWYgKHN0YXRlLm1hdGNoZXMpIHtcbiAgICAgICAgICB0aGlzLmlzU21hbGwgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZHJhd2VyU2VydmljZS5jbG9zZSgpO1xuICAgICAgICAgIHRoaXMuaXNTbWFsbCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIGlmICh0aGlzLmxvZ28gPT09ICcnKSB7XG4gICAgICB0aGlzLmxvZ28gPSBgaHR0cHM6Ly9jZG4uc2VydmljZXMucnZhb25lbS5mZ292LmJlL2ltZy9sb2dvL2xvZ29fJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmc/LnRvTG9jYWxlTG93ZXJDYXNlKCl9LnN2Z2A7XG5cbiAgICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2VcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveU5vdGlmaWVyJCkpXG4gICAgICAgIC5zdWJzY3JpYmUobGFuZyA9PiB7XG4gICAgICAgICAgdGhpcy5sb2dvID0gYGh0dHBzOi8vY2RuLnNlcnZpY2VzLnJ2YW9uZW0uZmdvdi5iZS9pbWcvbG9nby9sb2dvXyR7bGFuZy5sYW5nPy50b0xvY2FsZUxvd2VyQ2FzZSgpfS5zdmdgO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLm9uTGFuZ0NoYW5nZVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveU5vdGlmaWVyJCkpXG4gICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy5sYW5ndWFnZXMuZmluZEluZGV4KFxuICAgICAgICAgIGxhbmcgPT4gbGFuZy5jb2RlID09PSBldmVudC5sYW5nLFxuICAgICAgICApO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmRyYXdlclNlcnZpY2UuaG9zdCA9IHRoaXMuZHJhd2VySG9zdDtcbiAgICB0aGlzLmRyYXdlclNlcnZpY2UuZHJhd2VyID0gdGhpcy5kcmF3ZXI7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmRlc3Ryb3lOb3RpZmllciQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveU5vdGlmaWVyJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgZG9Mb2dvdXQoKSB7XG4gICAgdGhpcy5sb2dvdXQubmV4dCgpO1xuICB9XG5cbiAgZG9Mb2dpbigpIHtcbiAgICB0aGlzLmxvZ2luLm5leHQoKTtcbiAgfVxuXG4gIGNoYW5nZUxhbmd1YWdlKGxhbmdDb2RlOiBzdHJpbmcpIHtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKGxhbmdDb2RlKTtcbiAgICB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nID0gbGFuZ0NvZGU7XG4gIH1cblxuICB0b2dnbGVTaWRlTmF2KCkge1xuICAgIHRoaXMuZHJhd2VySG9zdC52aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5kcmF3ZXJIb3N0LnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxuICAgICAgTGF5b3V0U2lkZW5hdkNvbXBvbmVudCxcbiAgICApO1xuICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5pc1NtYWxsID0gdGhpcy5pc1NtYWxsO1xuICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5sYW5ndWFnZXMgPSB0aGlzLmxhbmd1YWdlcztcbiAgICBjb21wb25lbnRSZWYuaW5zdGFuY2Uucm91dGVzID0gdGhpcy5yb3V0ZXM7XG4gICAgdGhpcy5kcmF3ZXJTZXJ2aWNlLmhhc0JhY2tkcm9wID0gZmFsc2U7XG5cbiAgICB0aGlzLmRyYXdlci5vcGVuKCk7XG4gIH1cbn1cbiIsIjxtYXQtZHJhd2VyLWNvbnRhaW5lclxuICBjbGFzcz1cImV4YW1wbGUtY29udGFpbmVyXCJcbiAgW2hhc0JhY2tkcm9wXT1cImRyYXdlclNlcnZpY2UuaGFzQmFja2Ryb3BcIlxuICBhdXRvc2l6ZVxuPlxuICA8ZGl2IGNsYXNzPVwiYXBwLWNvbnRlbnRcIj5cbiAgICA8aGVhZGVyPlxuICAgICAgPG1hdC10b29sYmFyIGNsYXNzPVwibWF0LWVsZXZhdGlvbi16NFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZW52aXJvbm1lbnRcIiBbY2xhc3NdPVwiZW52aXJvbm1lbnRcIj5cbiAgICAgICAgICB7eyBlbnZpcm9ubWVudCB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIFtjbGFzcy5vbmVtcnZhLWxheW91dC1jb250YWluZXJdPVwiIWZsdWlkXCJcbiAgICAgICAgICBjbGFzcz1cIm5hdi1jb250YWluZXIgZmxleC1jZW50ZXJcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgbG9nb1JlZGljdGlvblVybCB9fVxuICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgIGNsYXNzPVwibG9nb1wiXG4gICAgICAgICAgICBbc3JjXT1cImxvZ29cIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCJcbiAgICAgICAgICAgICAgJ29uZW1ydmFfbG9nb18nICtcbiAgICAgICAgICAgICAgdHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZz8udG9Mb2NhbGVMb3dlckNhc2UoKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGFsdD1cIkxvZ28gT05FTS9SVkFcIlxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiXG4gICAgICAgICAgICAgIGxvZ29SZWRpY3Rpb25VcmwgIT09IG51bGwgPyBsb2dvUmVkaWN0aW9uVXJsIDogdW5kZWZpbmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICBjdXJzb3I6IGxvZ29SZWRpY3Rpb25VcmwgIT09IG51bGwgPyAncG9pbnRlcicgOiAnZGVmYXVsdCcsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYXBwbGljYXRpb24tdGl0bGVcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnc21hbGwtc2NyZWVuJzogaXNTbWFsbCB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGl0bGU/LnRlbXBsYXRlIGFzIHRpdGxlVHBsXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aXRsZVRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleDogMVwiPjwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleC1jZW50ZXJcIlxuICAgICAgICAgICAgbWF0LXRhYi1uYXYtYmFyXG4gICAgICAgICAgICBbdGFiUGFuZWxdPVwidGFiUGFuZWxcIlxuICAgICAgICAgICAgKm5nSWY9XCIhaXNTbWFsbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZSBvZiByb3V0ZXM/LnRvQXJyYXkoKTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIG1hdC10YWItbGlua1xuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImUucm91dGVyTGlua1wiXG4gICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cInsgZXhhY3Q6ICFlLmhhc1N1YnJvdXRlcygpIH1cIlxuICAgICAgICAgICAgICAgICNybGE9XCJyb3V0ZXJMaW5rQWN0aXZlXCJcbiAgICAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwibWRjLXRhYi0tYWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbYWN0aXZlXT1cInJsYS5pc0FjdGl2ZSB8fCBlLmlzUm91dGVBY3RpdmUoKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZS50ZW1wbGF0ZSBhcyByb3V0ZVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicm91dGVUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPG1hdC10YWItbmF2LXBhbmVsICN0YWJQYW5lbD48L21hdC10YWItbmF2LXBhbmVsPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFmdGVyTmF2Py50ZW1wbGF0ZSBhcyB0cGxcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9maWxlICE9PSBudWxsXCI+XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXJcbiAgICAgICAgICAgICAgdmVydGljYWxcbiAgICAgICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IDFlbTsgYWxpZ24tc2VsZjogY2VudGVyXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhaXNTbWFsbFwiXG4gICAgICAgICAgICA+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxvbmVtcnZhLW1hdC1hdmF0YXJcbiAgICAgICAgICAgICAgbWF0UmlwcGxlXG4gICAgICAgICAgICAgICpuZ0lmPVwicHJvZmlsZS5pc0xvZ2dlZEluXCJcbiAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxuICAgICAgICAgICAgICBpbml0aWFscz1cInt7IHByb2ZpbGUuaW5pdGlhbHMoKSB9fVwiXG4gICAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgc2l6ZT1cImV4dHJhc21hbGxcIlxuICAgICAgICAgICAgICBjbGFzcz1cImNsaWNrYWJsZVwiXG4gICAgICAgICAgICA+PC9vbmVtcnZhLW1hdC1hdmF0YXI+XG5cbiAgICAgICAgICAgIDxvbmVtcnZhLW1hdC1hdmF0YXJcbiAgICAgICAgICAgICAgbWF0UmlwcGxlXG4gICAgICAgICAgICAgICpuZ0lmPVwiIXByb2ZpbGUuaXNMb2dnZWRJblwiXG4gICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcbiAgICAgICAgICAgICAgaWNvbj1cImFjY291bnRfY2lyY2xlXCJcbiAgICAgICAgICAgICAgY29sb3I9XCJcIlxuICAgICAgICAgICAgICBzaXplPVwiZXh0cmFzbWFsbFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2xpY2thYmxlXCJcbiAgICAgICAgICAgID48L29uZW1ydmEtbWF0LWF2YXRhcj5cbiAgICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb2ZpbGUuaXNMb2dnZWRJbjsgZWxzZSBub3RDb25uZWN0ZWRcIj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImFjY291bnROYW1lXCI+XG4gICAgICAgICAgICAgICAgICB7eyBwcm9maWxlLmZpcnN0TmFtZSB9fSB7eyBwcm9maWxlLmxhc3ROYW1lIH19XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxtYXQtZGl2aWRlciBzdHlsZT1cImFsaWduLXNlbGY6IHN0cmV0Y2hcIj48L21hdC1kaXZpZGVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvZ2luTWVudT8udGVtcGxhdGUgYXMgbWVudUxvZ2luVHBsXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWVudUxvZ2luVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LW1kYy1tZW51LWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgZGF0YS1jeT1cImxvZ291dEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZG9Mb2dvdXQoKVwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidsYXlvdXQubG9nb3V0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmxvZ291dDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICB7eyAnbGF5b3V0LmxvZ291dCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90Q29ubmVjdGVkPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgZGF0YS1jeT1cImxvZ2luQnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkb0xvZ2luKClcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInbGF5b3V0LmxvZ2luJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmxvZ2luPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgIHt7ICdsYXlvdXQubG9naW4nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIGlzU21hbGwgJiZcbiAgICAgICAgICAgICAgKHJvdXRlcz8udG9BcnJheSgpPy5sZW5ndGggfHwgKGxhbmd1YWdlcyAmJiBsYW5ndWFnZXMubGVuZ3RoID4gMSkpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cIm1lbnUtYnV0dG9uXCJcbiAgICAgICAgICAgICAgZGF0YS1jeT1cInNtYWxsRGV2aWNlTWVudVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTaWRlTmF2KClcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidsYXlvdXQubWVudScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bWF0LWljb24+bWVudTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZsZXgtY2VudGVyXCJcbiAgICAgICAgICAgIG1hdC10YWItbmF2LWJhclxuICAgICAgICAgICAgW3RhYlBhbmVsXT1cInRhYlBhbmVsXCJcbiAgICAgICAgICAgICpuZ0lmPVwiIWlzU21hbGxcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJsYW5ndWFnZU1lbnVcIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwibGFuZ3VhZ2VNZW51XCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInbGFuZ3VhZ2Uuc2VsZWN0aW9uJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIG1hdC10YWItbGlua1xuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyB0cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nIH19XG4gICAgICAgICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cIndpZHRoOiAxNnB4XCI+ZXhwYW5kX21vcmU8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxtYXQtbWVudSAjbGFuZ3VhZ2VNZW51PlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgbGFuZyBvZiBsYW5ndWFnZXNcIlxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtYXQtbWRjLW1lbnUtaXRlbVwiXG4gICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCInbGFuZ3VhZ2VfJyArIGxhbmcuY29kZVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJjaGFuZ2VMYW5ndWFnZShsYW5nLmNvZGUpXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYW5nLmxhYmVsXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgbGFuZy5sYWJlbCB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPC9tYXQtbWVudT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC10b29sYmFyPlxuICAgIDwvaGVhZGVyPlxuICAgIDxuZy1jb250YWluZXI+XG4gICAgICA8ZGl2XG4gICAgICAgIFtpZF09XCJpZFwiXG4gICAgICAgIFthdHRyLnJvbGVdPVwicm9sZVwiXG4gICAgICAgIFtjbGFzcy5vbmVtcnZhLWxheW91dC1jb250YWluZXJdPVwiIWZsdWlkXCJcbiAgICAgICAgY2xhc3M9XCJvbmVtcnZhLWxheW91dC1jb250ZW50XCJcbiAgICAgICAgKm5nSWY9XCJjb250ZW50Py50ZW1wbGF0ZSBhcyB0cGxcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidHBsXCI+PC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICBlbnZpcm9ubWVudCAmJlxuICAgICAgICAgICAgKGVudmlyb25tZW50ID09PSBlbnYuTE9DQUwgfHwgZW52aXJvbm1lbnQgPT09IGVudi5URVNUKVxuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBpZD1cImFjY2Vzc2liaWxpdHlfZmFiXCJcbiAgICAgICAgICAgIG1hdC1mYWJcbiAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJBY2Nlc3NpYmlsaXR5IGNoZWNrXCJcbiAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJBY2Nlc3NpYmlsaXR5IGNoZWNrXCJcbiAgICAgICAgICAgIG9uY2xpY2s9XCIoZnVuY3Rpb24oKSB7dmFyIF9wPScvL29wZW5mZWQuZ2l0aHViLmlvL0FjY2Vzc2liaWxpdHlDaGVjay9idWlsZC8nO3ZhciBfaT1mdW5jdGlvbihzLGNiKSB7dmFyIHNjPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO3NjLm9ubG9hZCA9IGZ1bmN0aW9uKCkge3NjLm9ubG9hZCA9IG51bGw7c2Mub25yZWFkeXN0YXRlY2hhbmdlID0gbnVsbDtjYi5jYWxsKHRoaXMpO307c2Mub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKXtpZigvXihjb21wbGV0ZXxsb2FkZWQpJC8udGVzdCh0aGlzLnJlYWR5U3RhdGUpID09PSB0cnVlKXtzYy5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBudWxsO3NjLm9ubG9hZCgpO319O3NjLnNyYz1zO2lmIChkb2N1bWVudC5oZWFkKSB7ZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzYyk7fSBlbHNlIHtkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdLmFwcGVuZENoaWxkKHNjKTt9fTsgdmFyIG9wdGlvbnM9e3BhdGg6X3B9O19pKF9wKydIVE1MQ1MuanMnLGZ1bmN0aW9uKCl7SFRNTENTQXVkaXRvci5ydW4oJ1dDQUcyQUEnLG51bGwsb3B0aW9ucyk7fSk7fSkoKTtcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5hY2Nlc3NpYmlsaXR5PC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGZvb3RlciBjbGFzcz1cIm9uZW1ydmEtZm9vdGVyXCIgKm5nSWY9XCJmb290ZXI/LnRlbXBsYXRlIGFzIGZvb3RlclwiPlxuICAgICAgICA8ZGl2IFtjbGFzcy5vbmVtcnZhLWxheW91dC1jb250YWluZXJdPVwiIWZsdWlkXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlclwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZm9vdGVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8bWF0LWRyYXdlclxuICAgIGNsYXNzPVwib25lbXJ2YS1kcmF3ZXIgbW9iaWxlLW1lbnUtc2lkZWJhclwiXG4gICAgbW9kZT1cIm92ZXJcIlxuICAgIHBvc2l0aW9uPVwiZW5kXCJcbiAgPlxuICAgIDxuZy10ZW1wbGF0ZSBkcmF3ZXJob3N0PjwvbmctdGVtcGxhdGU+XG4gIDwvbWF0LWRyYXdlcj5cbjwvbWF0LWRyYXdlci1jb250YWluZXI+XG4iXX0=
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZW1ydmEvZGVzaWduLXN5c3RlbS9sYXlvdXQvc3JjL2NvbXBvbmVudHMvbGF5b3V0L2xheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmVtcnZhL2Rlc2lnbi1zeXN0ZW0vbGF5b3V0L3NyYy9jb21wb25lbnRzL2xheW91dC9sYXlvdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLEtBQUssRUFLTCxNQUFNLEVBQ04sU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBRUwsV0FBVyxHQUVaLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRWpGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsbUJBQW1CLEVB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QVM7c0JBRFIsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBT04sT0FBTztzQkFETixLQUFLO2dCQUlOLEtBQUs7c0JBREosTUFBTTtnQkFJUCxNQUFNO3NCQURMLE1BQU07Z0JBUWlDLE1BQU07c0JBQTdDLFNBQVM7dUJBQUMsU0FBUyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFFdEMsVUFBVTtzQkFEVCxTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJaEQsRUFBRTtzQkFERCxLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBJbnB1dCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgT25EZXN0cm95LFxuICBRdWVyeUxpc3QsXG4gIE9uSW5pdCxcbiAgSW5qZWN0LFxuICBpc0Rldk1vZGUsXG4gIEV2ZW50RW1pdHRlcixcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBMYXlvdXRSb3V0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2xheW91dC1yb3V0ZS9sYXlvdXQtcm91dGUuY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IExheW91dENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuLi9sYXlvdXQtY29udGVudC9sYXlvdXQtY29udGVudC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMYXlvdXRUaXRsZUNvbXBvbmVudCB9IGZyb20gJy4uL2xheW91dC10aXRsZS9sYXlvdXQtdGl0bGUuY29tcG9uZW50JztcblxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi8uLi9lbnVtcy9lbnZpcm9ubWVudC5lbnVtJztcbmltcG9ydCB7XG4gIEJyZWFrcG9pbnRPYnNlcnZlcixcbiAgQnJlYWtwb2ludHMsXG4gIEJyZWFrcG9pbnRTdGF0ZSxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2xheW91dCc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBMYXlvdXRGb290ZXJDb21wb25lbnQgfSBmcm9tICcuLi9sYXlvdXQtZm9vdGVyL2xheW91dC1mb290ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE9uZW1SdmFQcm9maWxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL29uZW1ydmEtcHJvZmlsZS5tb2RlbCc7XG5pbXBvcnQgeyBMYXlvdXRMb2dpbk1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9sYXlvdXQtbG9naW4tbWVudS9sYXlvdXQtbG9naW4tbWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0RHJhd2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2lkZW5hdic7XG5pbXBvcnQgeyBEcmF3ZXJIb3N0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9kcmF3ZXItaG9zdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgT25lbXJ2YURyYXdlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kcmF3ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBMYXlvdXRTaWRlbmF2Q29tcG9uZW50IH0gZnJvbSAnLi4vbGF5b3V0LXNpZGVuYXYvbGF5b3V0LXNpZGVuYXYuY29tcG9uZW50JztcbmltcG9ydCB7IExheW91dEFmdGVyTmF2Q29tcG9uZW50IH0gZnJvbSAnLi4vbGF5b3V0LWFmdGVyLW5hdi9sYXlvdXQtYWZ0ZXItbmF2LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPbmVtUnZhTGFuZ3VhZ2UgfSBmcm9tICcuLi8uLi9tb2RlbHMvb25lbS1sYW5ndWFnZS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29uZW1ydmEtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xheW91dC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBDb250ZW50Q2hpbGRyZW4oTGF5b3V0Um91dGVDb21wb25lbnQpXG4gIHJvdXRlcz86IFF1ZXJ5TGlzdDxMYXlvdXRSb3V0ZUNvbXBvbmVudD47XG5cbiAgQENvbnRlbnRDaGlsZChMYXlvdXRUaXRsZUNvbXBvbmVudCkgdGl0bGU/OiBMYXlvdXRUaXRsZUNvbXBvbmVudDtcbiAgQENvbnRlbnRDaGlsZChMYXlvdXRMb2dpbk1lbnVDb21wb25lbnQpIGxvZ2luTWVudT86IExheW91dExvZ2luTWVudUNvbXBvbmVudDtcbiAgQENvbnRlbnRDaGlsZChMYXlvdXRDb250ZW50Q29tcG9uZW50KSBjb250ZW50PzogTGF5b3V0Q29udGVudENvbXBvbmVudDtcbiAgQENvbnRlbnRDaGlsZChMYXlvdXRBZnRlck5hdkNvbXBvbmVudCkgYWZ0ZXJOYXY/OiBMYXlvdXRBZnRlck5hdkNvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkKExheW91dEZvb3RlckNvbXBvbmVudClcbiAgZm9vdGVyPzogTGF5b3V0Rm9vdGVyQ29tcG9uZW50O1xuXG4gIGZsdWlkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgbG9nbzogc3RyaW5nID0gJyc7IC8vIGN1c3RvbSBsb2dvLCBlbXB0eSBzdHJpbmcgd2lsbCBzaG93IGRlZmF1bHQgb25lbS9ydmEvbmVvL2xmYSBsb2NhbGlzZWQgbG9nb1xuXG4gIEBJbnB1dCgpXG4gIGxhbmd1YWdlczogT25lbVJ2YUxhbmd1YWdlW10gPSBbXTsgLy8gbGlzdCBvZiBsYW5ndWFnZXNcblxuICBASW5wdXQoKVxuICBlbnZpcm9ubWVudD86IEVudmlyb25tZW50OyAvLyBwb3NzaWJsZSBlbnZpcm9ubWVudCB0byBzaG93IG9uIHRoZSBmcm9udGVuZCBMT0NBTCwgVEVTVCwgVkFMLCBQUk9EXG5cbiAgQElucHV0KClcbiAgbG9nb1JlZGljdGlvblVybD86IHN0cmluZyB8IGFueVtdIHwgbnVsbCA9ICcnOyAvLyB2YWx1ZSBmb3Igcm91dGVyTGluayBmcm9tIGxvZ28uIFwiXCIgYnkgZGVmYXVsdC4gRGVhY3RpdmF0ZWQgd2hlbiBzZXQgdG8gbnVsbFxuXG4gIHNlbGVjdGVkSW5kZXggPSAwO1xuICBkZXN0cm95Tm90aWZpZXIkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICBASW5wdXQoKVxuICBwcm9maWxlOiBPbmVtUnZhUHJvZmlsZSB8IG51bGwgPSBudWxsOyAvLyBUbyBiZSBkZWZpbmVkIGZvciBhcHBsaWNhdGlvbiB3aXRoIGF1dGhlbnRpY2F0aW9uXG5cbiAgQE91dHB1dCgpXG4gIGxvZ2luOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIGxvZ291dDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICAvLyAgICBpc0xvZ291dFVzZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBlbnYgPSBFbnZpcm9ubWVudDtcblxuICBpc1NtYWxsID0gdHJ1ZTtcblxuICBAVmlld0NoaWxkKE1hdERyYXdlciwgeyBzdGF0aWM6IHRydWUgfSkgZHJhd2VyITogTWF0RHJhd2VyO1xuICBAVmlld0NoaWxkKERyYXdlckhvc3REaXJlY3RpdmUsIHsgc3RhdGljOiB0cnVlIH0pXG4gIGRyYXdlckhvc3QhOiBEcmF3ZXJIb3N0RGlyZWN0aXZlO1xuXG4gIEBJbnB1dCgpXG4gIGlkOiBzdHJpbmcgPSAnbWFpbic7XG5cbiAgQElucHV0KClcbiAgcm9sZTogc3RyaW5nID0gJ21haW4nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHB1YmxpYyBicmVha3BvaW50T2JzZXJ2ZXI6IEJyZWFrcG9pbnRPYnNlcnZlcixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcbiAgICBwdWJsaWMgZHJhd2VyU2VydmljZTogT25lbXJ2YURyYXdlclNlcnZpY2UsXG4gICkge1xuICAgIC8vICAgICAgdGhpcy5pc0xvZ291dFVzZWQgPSB0aGlzLmxvZ291dC5vYnNlcnZlcnMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IHRoaXMubGFuZ3VhZ2VzLmZpbmRJbmRleChcbiAgICAgIGwgPT4gbC5jb2RlID09PSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmcsXG4gICAgKTtcblxuICAgIHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmc7XG5cbiAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlclxuICAgICAgLm9ic2VydmUoW0JyZWFrcG9pbnRzLlhTbWFsbCwgQnJlYWtwb2ludHMuU21hbGxdKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveU5vdGlmaWVyJCkpXG4gICAgICAuc3Vic2NyaWJlKChzdGF0ZTogQnJlYWtwb2ludFN0YXRlKSA9PiB7XG4gICAgICAgIGlmIChzdGF0ZS5tYXRjaGVzKSB7XG4gICAgICAgICAgdGhpcy5pc1NtYWxsID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmRyYXdlclNlcnZpY2UuY2xvc2UoKTtcbiAgICAgICAgICB0aGlzLmlzU21hbGwgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBpZiAodGhpcy5sb2dvID09PSAnJykge1xuICAgICAgdGhpcy5sb2dvID0gYGh0dHBzOi8vY2RuLnNlcnZpY2VzLnJ2YW9uZW0uZmdvdi5iZS9pbWcvbG9nby9sb2dvXyR7dGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nPy50b0xvY2FsZUxvd2VyQ2FzZSgpfS5zdmdgO1xuXG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uub25MYW5nQ2hhbmdlXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3lOb3RpZmllciQpKVxuICAgICAgICAuc3Vic2NyaWJlKGxhbmcgPT4ge1xuICAgICAgICAgIHRoaXMubG9nbyA9IGBodHRwczovL2Nkbi5zZXJ2aWNlcy5ydmFvbmVtLmZnb3YuYmUvaW1nL2xvZ28vbG9nb18ke2xhbmcubGFuZz8udG9Mb2NhbGVMb3dlckNhc2UoKX0uc3ZnYDtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3lOb3RpZmllciQpKVxuICAgICAgLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IHRoaXMubGFuZ3VhZ2VzLmZpbmRJbmRleChcbiAgICAgICAgICBsYW5nID0+IGxhbmcuY29kZSA9PT0gZXZlbnQubGFuZyxcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5kcmF3ZXJTZXJ2aWNlLmhvc3QgPSB0aGlzLmRyYXdlckhvc3Q7XG4gICAgdGhpcy5kcmF3ZXJTZXJ2aWNlLmRyYXdlciA9IHRoaXMuZHJhd2VyO1xuICB9XG5cbiAgZ2V0IGN1cnJlbnRMYW5ndWFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nIHx8ICcnO1xuICB9XG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuZGVzdHJveU5vdGlmaWVyJC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95Tm90aWZpZXIkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBkb0xvZ291dCgpIHtcbiAgICB0aGlzLmxvZ291dC5uZXh0KCk7XG4gIH1cblxuICBkb0xvZ2luKCkge1xuICAgIHRoaXMubG9naW4ubmV4dCgpO1xuICB9XG5cbiAgY2hhbmdlTGFuZ3VhZ2UobGFuZ0NvZGU6IHN0cmluZykge1xuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS51c2UobGFuZ0NvZGUpO1xuICAgIHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPSBsYW5nQ29kZTtcbiAgfVxuXG4gIHRvZ2dsZVNpZGVOYXYoKSB7XG4gICAgdGhpcy5kcmF3ZXJIb3N0LnZpZXdDb250YWluZXJSZWYuY2xlYXIoKTtcbiAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmRyYXdlckhvc3Qudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQoXG4gICAgICBMYXlvdXRTaWRlbmF2Q29tcG9uZW50LFxuICAgICk7XG4gICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmlzU21hbGwgPSB0aGlzLmlzU21hbGw7XG4gICAgY29tcG9uZW50UmVmLmluc3RhbmNlLmxhbmd1YWdlcyA9IHRoaXMubGFuZ3VhZ2VzO1xuICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZS5yb3V0ZXMgPSB0aGlzLnJvdXRlcztcbiAgICB0aGlzLmRyYXdlclNlcnZpY2UuaGFzQmFja2Ryb3AgPSBmYWxzZTtcblxuICAgIHRoaXMuZHJhd2VyLm9wZW4oKTtcbiAgfVxufVxuIiwiPG1hdC1kcmF3ZXItY29udGFpbmVyXG4gIGNsYXNzPVwiZXhhbXBsZS1jb250YWluZXJcIlxuICBbaGFzQmFja2Ryb3BdPVwiZHJhd2VyU2VydmljZS5oYXNCYWNrZHJvcFwiXG4gIGF1dG9zaXplXG4+XG4gIDxkaXYgY2xhc3M9XCJhcHAtY29udGVudFwiPlxuICAgIDxoZWFkZXI+XG4gICAgICA8bWF0LXRvb2xiYXIgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJlbnZpcm9ubWVudFwiIFtjbGFzc109XCJlbnZpcm9ubWVudFwiPlxuICAgICAgICAgIHt7IGVudmlyb25tZW50IH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgW2NsYXNzLm9uZW1ydmEtbGF5b3V0LWNvbnRhaW5lcl09XCIhZmx1aWRcIlxuICAgICAgICAgIGNsYXNzPVwibmF2LWNvbnRhaW5lciBmbGV4LWNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBsb2dvUmVkaWN0aW9uVXJsIH19XG4gICAgICAgICAgPGltZ1xuICAgICAgICAgICAgY2xhc3M9XCJsb2dvXCJcbiAgICAgICAgICAgIFtzcmNdPVwibG9nb1wiXG4gICAgICAgICAgICBbYXR0ci5kYXRhLWN5XT1cIlxuICAgICAgICAgICAgICAnb25lbXJ2YV9sb2dvXycgKyBjdXJyZW50TGFuZ3VhZ2UudG9Mb2NhbGVMb3dlckNhc2UoKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIGFsdD1cIkxvZ28gT05FTS9SVkFcIlxuICAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiXG4gICAgICAgICAgICAgIGxvZ29SZWRpY3Rpb25VcmwgIT09IG51bGwgPyBsb2dvUmVkaWN0aW9uVXJsIDogdW5kZWZpbmVkXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICBjdXJzb3I6IGxvZ29SZWRpY3Rpb25VcmwgIT09IG51bGwgPyAncG9pbnRlcicgOiAnZGVmYXVsdCcsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiYXBwbGljYXRpb24tdGl0bGVcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnc21hbGwtc2NyZWVuJzogaXNTbWFsbCB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidGl0bGU/LnRlbXBsYXRlIGFzIHRpdGxlVHBsXCI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aXRsZVRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IHN0eWxlPVwiZmxleDogMVwiPjwvZGl2PlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwiZmxleC1jZW50ZXJcIlxuICAgICAgICAgICAgbWF0LXRhYi1uYXYtYmFyXG4gICAgICAgICAgICBbdGFiUGFuZWxdPVwidGFiUGFuZWxcIlxuICAgICAgICAgICAgKm5nSWY9XCIhaXNTbWFsbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZSBvZiByb3V0ZXM/LnRvQXJyYXkoKTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIG1hdC10YWItbGlua1xuICAgICAgICAgICAgICAgIFtyb3V0ZXJMaW5rXT1cImUucm91dGVyTGlua1wiXG4gICAgICAgICAgICAgICAgW3JvdXRlckxpbmtBY3RpdmVPcHRpb25zXT1cInsgZXhhY3Q6ICFlLmhhc1N1YnJvdXRlcygpIH1cIlxuICAgICAgICAgICAgICAgICNybGE9XCJyb3V0ZXJMaW5rQWN0aXZlXCJcbiAgICAgICAgICAgICAgICByb3V0ZXJMaW5rQWN0aXZlPVwibWRjLXRhYi0tYWN0aXZlXCJcbiAgICAgICAgICAgICAgICBbYWN0aXZlXT1cInJsYS5pc0FjdGl2ZSB8fCBlLmlzUm91dGVBY3RpdmUoKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZS50ZW1wbGF0ZSBhcyByb3V0ZVRlbXBsYXRlXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicm91dGVUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPG1hdC10YWItbmF2LXBhbmVsICN0YWJQYW5lbD48L21hdC10YWItbmF2LXBhbmVsPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFmdGVyTmF2Py50ZW1wbGF0ZSBhcyB0cGxcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwcm9maWxlICE9PSBudWxsXCI+XG4gICAgICAgICAgICA8bWF0LWRpdmlkZXJcbiAgICAgICAgICAgICAgdmVydGljYWxcbiAgICAgICAgICAgICAgc3R5bGU9XCJoZWlnaHQ6IDFlbTsgYWxpZ24tc2VsZjogY2VudGVyXCJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhaXNTbWFsbFwiXG4gICAgICAgICAgICA+PC9tYXQtZGl2aWRlcj5cbiAgICAgICAgICAgIDxvbmVtcnZhLW1hdC1hdmF0YXJcbiAgICAgICAgICAgICAgbWF0UmlwcGxlXG4gICAgICAgICAgICAgICpuZ0lmPVwicHJvZmlsZS5pc0xvZ2dlZEluXCJcbiAgICAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIlxuICAgICAgICAgICAgICBpbml0aWFscz1cInt7IHByb2ZpbGUuaW5pdGlhbHMoKSB9fVwiXG4gICAgICAgICAgICAgIGNvbG9yPVwiYWNjZW50XCJcbiAgICAgICAgICAgICAgc2l6ZT1cImV4dHJhc21hbGxcIlxuICAgICAgICAgICAgICBjbGFzcz1cImNsaWNrYWJsZVwiXG4gICAgICAgICAgICA+PC9vbmVtcnZhLW1hdC1hdmF0YXI+XG5cbiAgICAgICAgICAgIDxvbmVtcnZhLW1hdC1hdmF0YXJcbiAgICAgICAgICAgICAgbWF0UmlwcGxlXG4gICAgICAgICAgICAgICpuZ0lmPVwiIXByb2ZpbGUuaXNMb2dnZWRJblwiXG4gICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcbiAgICAgICAgICAgICAgaWNvbj1cImFjY291bnRfY2lyY2xlXCJcbiAgICAgICAgICAgICAgY29sb3I9XCJcIlxuICAgICAgICAgICAgICBzaXplPVwiZXh0cmFzbWFsbFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiY2xpY2thYmxlXCJcbiAgICAgICAgICAgID48L29uZW1ydmEtbWF0LWF2YXRhcj5cbiAgICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInByb2ZpbGUuaXNMb2dnZWRJbjsgZWxzZSBub3RDb25uZWN0ZWRcIj5cbiAgICAgICAgICAgICAgICA8cCBjbGFzcz1cImFjY291bnROYW1lXCI+XG4gICAgICAgICAgICAgICAgICB7eyBwcm9maWxlLmZpcnN0TmFtZSB9fSB7eyBwcm9maWxlLmxhc3ROYW1lIH19XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgIDxtYXQtZGl2aWRlciBzdHlsZT1cImFsaWduLXNlbGY6IHN0cmV0Y2hcIj48L21hdC1kaXZpZGVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvZ2luTWVudT8udGVtcGxhdGUgYXMgbWVudUxvZ2luVHBsXCI+XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibWVudUxvZ2luVHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWF0LW1kYy1tZW51LWl0ZW1cIlxuICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgZGF0YS1jeT1cImxvZ291dEJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZG9Mb2dvdXQoKVwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidsYXlvdXQubG9nb3V0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmxvZ291dDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICB7eyAnbGF5b3V0LmxvZ291dCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90Q29ubmVjdGVkPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICAgICAgZGF0YS1jeT1cImxvZ2luQnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkb0xvZ2luKClcIlxuICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInbGF5b3V0LmxvZ2luJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPmxvZ2luPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgIHt7ICdsYXlvdXQubG9naW4nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIGlzU21hbGwgJiZcbiAgICAgICAgICAgICAgKHJvdXRlcz8udG9BcnJheSgpPy5sZW5ndGggfHwgKGxhbmd1YWdlcyAmJiBsYW5ndWFnZXMubGVuZ3RoID4gMSkpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICBjbGFzcz1cIm1lbnUtYnV0dG9uXCJcbiAgICAgICAgICAgICAgZGF0YS1jeT1cInNtYWxsRGV2aWNlTWVudVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJ0b2dnbGVTaWRlTmF2KClcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidsYXlvdXQubWVudScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bWF0LWljb24+bWVudTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImZsZXgtY2VudGVyXCJcbiAgICAgICAgICAgIG1hdC10YWItbmF2LWJhclxuICAgICAgICAgICAgW3RhYlBhbmVsXT1cInRhYlBhbmVsXCJcbiAgICAgICAgICAgICpuZ0lmPVwiIWlzU21hbGxcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJsYW5ndWFnZU1lbnVcIlxuICAgICAgICAgICAgICBkYXRhLWN5PVwibGFuZ3VhZ2VNZW51XCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInbGFuZ3VhZ2Uuc2VsZWN0aW9uJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgIG1hdC10YWItbGlua1xuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBjdXJyZW50TGFuZ3VhZ2UgfX1cbiAgICAgICAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwid2lkdGg6IDE2cHhcIj5leHBhbmRfbW9yZTwvbWF0LWljb24+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPG1hdC1tZW51ICNsYW5ndWFnZU1lbnU+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBsYW5nIG9mIGxhbmd1YWdlc1wiXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBjbGFzcz1cIm1hdC1tZGMtbWVudS1pdGVtXCJcbiAgICAgICAgICAgICAgbWF0LW1lbnUtaXRlbVxuICAgICAgICAgICAgICBbYXR0ci5kYXRhLWN5XT1cIidsYW5ndWFnZV8nICsgbGFuZy5jb2RlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZUxhbmd1YWdlKGxhbmcuY29kZSlcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhbmcubGFiZWxcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBsYW5nLmxhYmVsIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWF0LXRvb2xiYXI+XG4gICAgPC9oZWFkZXI+XG4gICAgPG5nLWNvbnRhaW5lcj5cbiAgICAgIDxkaXZcbiAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgW2F0dHIucm9sZV09XCJyb2xlXCJcbiAgICAgICAgW2NsYXNzLm9uZW1ydmEtbGF5b3V0LWNvbnRhaW5lcl09XCIhZmx1aWRcIlxuICAgICAgICBjbGFzcz1cIm9uZW1ydmEtbGF5b3V0LWNvbnRlbnRcIlxuICAgICAgICAqbmdJZj1cImNvbnRlbnQ/LnRlbXBsYXRlIGFzIHRwbFwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxcIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgIGVudmlyb25tZW50ICYmXG4gICAgICAgICAgICAoZW52aXJvbm1lbnQgPT09IGVudi5MT0NBTCB8fCBlbnZpcm9ubWVudCA9PT0gZW52LlRFU1QpXG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGlkPVwiYWNjZXNzaWJpbGl0eV9mYWJcIlxuICAgICAgICAgICAgbWF0LWZhYlxuICAgICAgICAgICAgY29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkFjY2Vzc2liaWxpdHkgY2hlY2tcIlxuICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkFjY2Vzc2liaWxpdHkgY2hlY2tcIlxuICAgICAgICAgICAgb25jbGljaz1cIihmdW5jdGlvbigpIHt2YXIgX3A9Jy8vb3BlbmZlZC5naXRodWIuaW8vQWNjZXNzaWJpbGl0eUNoZWNrL2J1aWxkLyc7dmFyIF9pPWZ1bmN0aW9uKHMsY2IpIHt2YXIgc2M9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7c2Mub25sb2FkID0gZnVuY3Rpb24oKSB7c2Mub25sb2FkID0gbnVsbDtzYy5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBudWxsO2NiLmNhbGwodGhpcyk7fTtzYy5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpe2lmKC9eKGNvbXBsZXRlfGxvYWRlZCkkLy50ZXN0KHRoaXMucmVhZHlTdGF0ZSkgPT09IHRydWUpe3NjLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7c2Mub25sb2FkKCk7fX07c2Muc3JjPXM7aWYgKGRvY3VtZW50LmhlYWQpIHtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjKTt9IGVsc2Uge2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQoc2MpO319OyB2YXIgb3B0aW9ucz17cGF0aDpfcH07X2koX3ArJ0hUTUxDUy5qcycsZnVuY3Rpb24oKXtIVE1MQ1NBdWRpdG9yLnJ1bignV0NBRzJBQScsbnVsbCxvcHRpb25zKTt9KTt9KSgpO1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC1pY29uPmFjY2Vzc2liaWxpdHk8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8Zm9vdGVyIGNsYXNzPVwib25lbXJ2YS1mb290ZXJcIiAqbmdJZj1cImZvb3Rlcj8udGVtcGxhdGUgYXMgZm9vdGVyXCI+XG4gICAgICAgIDxkaXYgW2NsYXNzLm9uZW1ydmEtbGF5b3V0LWNvbnRhaW5lcl09XCIhZmx1aWRcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9mb290ZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxtYXQtZHJhd2VyXG4gICAgY2xhc3M9XCJvbmVtcnZhLWRyYXdlciBtb2JpbGUtbWVudS1zaWRlYmFyXCJcbiAgICBtb2RlPVwib3ZlclwiXG4gICAgcG9zaXRpb249XCJlbmRcIlxuICA+XG4gICAgPG5nLXRlbXBsYXRlIGRyYXdlcmhvc3Q+PC9uZy10ZW1wbGF0ZT5cbiAgPC9tYXQtZHJhd2VyPlxuPC9tYXQtZHJhd2VyLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './src/onemrva-mat-empty-row.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmVtcnZhL2Rlc2lnbi1zeXN0ZW0vbWF0LWVtcHR5LXJvdy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVDQUF1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvb25lbXJ2YS1tYXQtZW1wdHktcm93LmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lbXJ2YXB1YmxpYy1kZXNpZ24tc3lzdGVtLW1hdC1lbXB0eS1yb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbmVtcnZhL2Rlc2lnbi1zeXN0ZW0vbWF0LWVtcHR5LXJvdy9vbmVtcnZhcHVibGljLWRlc2lnbi1zeXN0ZW0tbWF0LWVtcHR5LXJvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewEncapsulation, } from '@angular/core';
|
|
2
|
+
import { MatButton } from '@angular/material/button';
|
|
3
|
+
import { NgOptimizedImage } from '@angular/common';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@onemrvapublic/design-system/shared";
|
|
6
|
+
import * as i2 from "@ngx-translate/core";
|
|
7
|
+
/**
|
|
8
|
+
*
|
|
9
|
+
*/
|
|
10
|
+
export class OnemrvaMatEmptyRowComponent {
|
|
11
|
+
constructor(cdn, translate) {
|
|
12
|
+
this.cdn = cdn;
|
|
13
|
+
this.translate = translate;
|
|
14
|
+
this.noresultimg = this.cdn.getOri('wordless.svg');
|
|
15
|
+
this.buttonText = this.translate.instant('Reset filters');
|
|
16
|
+
this.text = this.translate.instant('Sorry, there is no results for this search.');
|
|
17
|
+
this.imageAlt = this.translate.instant('Ori is wordless');
|
|
18
|
+
this.clear = new EventEmitter();
|
|
19
|
+
}
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: OnemrvaMatEmptyRowComponent, deps: [{ token: i1.OnemRvaCDNService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: OnemrvaMatEmptyRowComponent, isStandalone: true, selector: "onemrva-mat-empty-row", inputs: { buttonText: "buttonText", text: "text", imageAlt: "imageAlt" }, outputs: { clear: "clear" }, ngImport: i0, template: "<span class=\"img\">\n <img [ngSrc]=\"noresultimg\" alt=\"{{ imageAlt }}\" fill />\n</span>\n<span class=\"text\">\n {{ text }}\n <ng-content></ng-content>\n</span>\n<button mat-stroked-button (click)=\"clear.emit()\">{{ buttonText }}</button>\n", styles: ["onemrva-mat-empty-row{display:grid;grid-template-columns:repeat(6,1FR);grid-template-rows:repeat(2,1FR);justify-items:center;gap:15px}onemrva-mat-empty-row span.img{grid-area:1/1/3/2;display:block;min-width:80px!important;min-height:80px!important;height:10vw;width:10vw;margin:32px;position:relative;float:left}onemrva-mat-empty-row span.text{grid-area:1/2/2/7;justify-self:start;align-self:end}onemrva-mat-empty-row button{grid-area:2/2/3/7;justify-self:start;align-self:start}\n"], dependencies: [{ kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "component", type: MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
22
|
+
}
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: OnemrvaMatEmptyRowComponent, decorators: [{
|
|
24
|
+
type: Component,
|
|
25
|
+
args: [{ selector: 'onemrva-mat-empty-row', standalone: true, imports: [NgOptimizedImage, MatButton], encapsulation: ViewEncapsulation.None, template: "<span class=\"img\">\n <img [ngSrc]=\"noresultimg\" alt=\"{{ imageAlt }}\" fill />\n</span>\n<span class=\"text\">\n {{ text }}\n <ng-content></ng-content>\n</span>\n<button mat-stroked-button (click)=\"clear.emit()\">{{ buttonText }}</button>\n", styles: ["onemrva-mat-empty-row{display:grid;grid-template-columns:repeat(6,1FR);grid-template-rows:repeat(2,1FR);justify-items:center;gap:15px}onemrva-mat-empty-row span.img{grid-area:1/1/3/2;display:block;min-width:80px!important;min-height:80px!important;height:10vw;width:10vw;margin:32px;position:relative;float:left}onemrva-mat-empty-row span.text{grid-area:1/2/2/7;justify-self:start;align-self:end}onemrva-mat-empty-row button{grid-area:2/2/3/7;justify-self:start;align-self:start}\n"] }]
|
|
26
|
+
}], ctorParameters: () => [{ type: i1.OnemRvaCDNService }, { type: i2.TranslateService }], propDecorators: { buttonText: [{
|
|
27
|
+
type: Input
|
|
28
|
+
}], text: [{
|
|
29
|
+
type: Input
|
|
30
|
+
}], imageAlt: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], clear: [{
|
|
33
|
+
type: Output
|
|
34
|
+
}] } });
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lbXJ2YS1tYXQtZW1wdHktcm93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZW1ydmEvZGVzaWduLXN5c3RlbS9tYXQtZW1wdHktcm93L3NyYy9vbmVtcnZhLW1hdC1lbXB0eS1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25lbXJ2YS9kZXNpZ24tc3lzdGVtL21hdC1lbXB0eS1yb3cvc3JjL29uZW1ydmEtbWF0LWVtcHR5LXJvdy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7QUFFbkQ7O0dBRUc7QUFTSCxNQUFNLE9BQU8sMkJBQTJCO0lBR3RDLFlBQ1UsR0FBc0IsRUFDdEIsU0FBMkI7UUFEM0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFKckMsZ0JBQVcsR0FBVyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQVF0RCxlQUFVLEdBQVcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFHN0QsU0FBSSxHQUFXLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUNuQyw2Q0FBNkMsQ0FDOUMsQ0FBQztRQUdGLGFBQVEsR0FBVyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRzdELFVBQUssR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBZDdCLENBQUM7K0dBTk8sMkJBQTJCO21HQUEzQiwyQkFBMkIsd0xDdkJ4QywwUEFRQSwyaEJEWVksZ0JBQWdCLGdQQUFFLFNBQVM7OzRGQUcxQiwyQkFBMkI7a0JBUnZDLFNBQVM7K0JBQ0UsdUJBQXVCLGNBR3JCLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxpQkFDdkIsaUJBQWlCLENBQUMsSUFBSTtxSEFXckMsVUFBVTtzQkFEVCxLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFNTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sS0FBSztzQkFESixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9uZW1SdmFDRE5TZXJ2aWNlIH0gZnJvbSAnQG9uZW1ydmFwdWJsaWMvZGVzaWduLXN5c3RlbS9zaGFyZWQnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE5nT3B0aW1pemVkSW1hZ2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG4vKipcbiAqXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29uZW1ydmEtbWF0LWVtcHR5LXJvdycsXG4gIHRlbXBsYXRlVXJsOiAnb25lbXJ2YS1tYXQtZW1wdHktcm93LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ29uZW1ydmEtbWF0LWVtcHR5LXJvdy5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdPcHRpbWl6ZWRJbWFnZSwgTWF0QnV0dG9uXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgT25lbXJ2YU1hdEVtcHR5Um93Q29tcG9uZW50IHtcbiAgbm9yZXN1bHRpbWc6IHN0cmluZyA9IHRoaXMuY2RuLmdldE9yaSgnd29yZGxlc3Muc3ZnJyk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjZG46IE9uZW1SdmFDRE5TZXJ2aWNlLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICApIHt9XG5cbiAgQElucHV0KClcbiAgYnV0dG9uVGV4dDogc3RyaW5nID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnUmVzZXQgZmlsdGVycycpO1xuXG4gIEBJbnB1dCgpXG4gIHRleHQ6IHN0cmluZyA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgJ1NvcnJ5LCB0aGVyZSBpcyBubyByZXN1bHRzIGZvciB0aGlzIHNlYXJjaC4nLFxuICApO1xuXG4gIEBJbnB1dCgpXG4gIGltYWdlQWx0OiBzdHJpbmcgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdPcmkgaXMgd29yZGxlc3MnKTtcblxuICBAT3V0cHV0KClcbiAgY2xlYXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbn1cbiIsIjxzcGFuIGNsYXNzPVwiaW1nXCI+XG4gIDxpbWcgW25nU3JjXT1cIm5vcmVzdWx0aW1nXCIgYWx0PVwie3sgaW1hZ2VBbHQgfX1cIiBmaWxsIC8+XG48L3NwYW4+XG48c3BhbiBjbGFzcz1cInRleHRcIj5cbiAge3sgdGV4dCB9fVxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L3NwYW4+XG48YnV0dG9uIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwiY2xlYXIuZW1pdCgpXCI+e3sgYnV0dG9uVGV4dCB9fTwvYnV0dG9uPlxuIl19
|
|
@@ -11,6 +11,9 @@ export class OnemrvaMatPaginatorComponent {
|
|
|
11
11
|
get pageIndex() {
|
|
12
12
|
return this._pageIndex;
|
|
13
13
|
}
|
|
14
|
+
resetPageIndex() {
|
|
15
|
+
this._pageIndex = 0;
|
|
16
|
+
}
|
|
14
17
|
set pageIndex(index) {
|
|
15
18
|
if (this._pageIndex !== index) {
|
|
16
19
|
this._pageIndex = Math.min(index, this._totalNumberOfPages - 1);
|
|
@@ -207,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
|
|
|
207
210
|
}], page: [{
|
|
208
211
|
type: Output
|
|
209
212
|
}] } });
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lbXJ2YS1tYXQtcGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZW1ydmEvZGVzaWduLXN5c3RlbS9tYXQtcGFnaW5hdG9yL3NyYy9vbmVtcnZhLW1hdC1wYWdpbmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25lbXJ2YS9kZXNpZ24tc3lzdGVtL21hdC1wYWdpbmF0b3Ivc3JjL29uZW1ydmEtbWF0LXBhZ2luYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLHVCQUF1QixHQUV4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQVF2QyxNQUFNLE9BQU8sNEJBQTRCO0lBYXZDLElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVELElBQ1csU0FBUyxDQUFDLEtBQWE7UUFDaEMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFDVyxNQUFNLENBQUMsTUFBYztRQUM5QixJQUFJLElBQUksQ0FBQyxP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QyxDQUFDO1FBRUgsYUFBYTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxDQUFDOytHQXRNVSw0QkFBNEI7bUdBQTVCLDRCQUE0QixvWkNoQnpDLGcyR0E0R0E7OzRGRDVGYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsdUJBQXVCLG1CQUNoQix1QkFBdUIsQ0FBQyxNQUFNO3NGQUl0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBYUssU0FBUztzQkFEbkIsS0FBSztnQkFjSyxNQUFNO3NCQURoQixLQUFLO2dCQWFLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBZUcsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBSUksYUFBYTtzQkFBdEIsTUFBTTtnQkFHWSxJQUFJO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ29uZW1ydmEtbWF0LXBhZ2luYXRvcicsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICB0ZW1wbGF0ZVVybDogJy4vb25lbXJ2YS1tYXQtcGFnaW5hdG9yLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgT25lbXJ2YU1hdFBhZ2luYXRvckNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHR5cGU6ICdkZWZhdWx0JyB8ICdjb21wbGV4JyA9ICdkZWZhdWx0JztcbiAgQElucHV0KCkgcGFnZVNpemVTZWxlY3RvciA9IHRydWU7IC8vIFNwZWNzOiBEUy03NFxuICBASW5wdXQoKSBwYWdlU2l6ZU9wdGlvbnM6IG51bWJlcltdID0gWzEwLCAyMCwgNTAsIDEwMF07IC8vIFNwZWNzOiBEUy03NFxuICBASW5wdXQoKSBwYWdlU2l6ZURlZmF1bHRPcHRpb246IG51bWJlciA9IDEwO1xuICBASW5wdXQoKSByZWNvcmRLZXk6IHN0cmluZyA9ICdyZWNvcmRzUGVyUGFnZSc7IC8vIHRoaXMgcmVjb3JkIGtleSB3aWxsIGJlIGluc2lkZSBrZXkgXCJwYWdpbmF0b3JcIi4gSS5lIHRoZSBkZWZhdWx0IGtleSB2YWx1ZSB0aGF0IHdpbGwgYmUgZ2VuZXJhdGVkIG91dCBvZiB0aGlzIGlucHV0IGlzIHBhZ2luYXRvci5yZWNvcmRzUGVyUGFnZVxuXG4gIG1heFJlY29yZE51bWJlciA9IDA7XG4gIHByaXZhdGUgX3BhZ2VJbmRleDogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBfbGVuZ3RoOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIF9wYWdlU2l6ZTogbnVtYmVyID0gdGhpcy5wYWdlU2l6ZURlZmF1bHRPcHRpb247XG4gIHByaXZhdGUgX3RvdGFsTnVtYmVyT2ZQYWdlczogbnVtYmVyID0gMDtcblxuICBwdWJsaWMgZ2V0IHBhZ2VJbmRleCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9wYWdlSW5kZXg7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBhZ2VJbmRleChpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuX3BhZ2VJbmRleCAhPT0gaW5kZXgpIHtcbiAgICAgIHRoaXMuX3BhZ2VJbmRleCA9IE1hdGgubWluKGluZGV4LCB0aGlzLl90b3RhbE51bWJlck9mUGFnZXMgLSAxKTtcbiAgICAgIHRoaXMuX2VtaXRQYWdlRXZlbnQodGhpcy5fcGFnZUluZGV4KTtcbiAgICAgIHRoaXMucmVmcmVzaFN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBsZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbGVuZ3RoO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBsZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5fbGVuZ3RoICE9PSBsZW5ndGgpIHtcbiAgICAgIHRoaXMuX2xlbmd0aCA9IGxlbmd0aDtcbiAgICAgIHRoaXMucmVmcmVzaFN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBwYWdlU2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9wYWdlU2l6ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGFnZVNpemUocGFnZVNpemU6IG51bWJlcikge1xuICAgIGlmICh0aGlzLl9wYWdlU2l6ZSAhPT0gcGFnZVNpemUpIHtcbiAgICAgIHRoaXMuX3BhZ2VTaXplID0gcGFnZVNpemU7XG4gICAgICB0aGlzLnBhZ2VTaXplJC5uZXh0KHRoaXMuX3BhZ2VTaXplKTtcbiAgICAgIHRoaXMuX3BhZ2VJbmRleCA9IDA7XG4gICAgICB0aGlzLl9lbWl0UGFnZUV2ZW50KHRoaXMuX3BhZ2VJbmRleCk7XG4gICAgICB0aGlzLnJlZnJlc2hTdGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCB0b3RhbE51bWJlck9mUGFnZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdG90YWxOdW1iZXJPZlBhZ2VzO1xuICB9XG5cbiAgQElucHV0KCkgcHJldmlvdXNLZXk6IHN0cmluZyA9ICdQcmV2aW91cyc7XG4gIEBJbnB1dCgpIG5leHRLZXk6IHN0cmluZyA9ICdOZXh0JztcblxuICAvKiogRGVwcmVjYXRlZCAqKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gIEBPdXRwdXQoKSBvblJlcXVlc3RQYWdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTsgLy8gUGFnZXMgYXJlIGRpc3BsYXllZCBzdGFydGluZyBmcm9tIDEgYnV0IHRoZSBpbmRleCBzdGFydHMgYXQgMFxuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHBhZ2luYXRvciBjaGFuZ2VzIHRoZSBwYWdlIHNpemUgb3IgcGFnZSBpbmRleC4gKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHBhZ2U6IEV2ZW50RW1pdHRlcjxQYWdlRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPFBhZ2VFdmVudD4oKTtcblxuICBwYWdlSW5kZXgkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG4gIHBhZ2VTaXplJDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFxuICAgIHRoaXMucGFnZVNpemVEZWZhdWx0T3B0aW9uLFxuICApO1xuXG4gIHBhZ2VzOiBudW1iZXJbXSA9IFtdO1xuICBudW1iZXJPZlJlYWNoYWJsZVBhZ2VzID0gNTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICByZWZyZXNoU3RhdGUoKSB7XG4gICAgdGhpcy5tYXhSZWNvcmROdW1iZXIgPSBNYXRoLm1pbihcbiAgICAgIHRoaXMuX3BhZ2VJbmRleCAqIHRoaXMuX3BhZ2VTaXplICsgdGhpcy5fcGFnZVNpemUsXG4gICAgICB0aGlzLl9sZW5ndGgsXG4gICAgKTtcblxuICAgIGlmICh0aGlzLl9wYWdlSW5kZXggPCAwKSB0aHJvdyBFcnJvcignTmVnYXRpdmUgaW5kZXgnKTtcbiAgICB0aGlzLl90b3RhbE51bWJlck9mUGFnZXMgPSBNYXRoLmNlaWwodGhpcy5sZW5ndGggLyB0aGlzLnBhZ2VTaXplKTtcbiAgICBpZiAoXG4gICAgICB0aGlzLl90b3RhbE51bWJlck9mUGFnZXMgPiAwICYmXG4gICAgICB0aGlzLl9wYWdlSW5kZXggPiB0aGlzLl90b3RhbE51bWJlck9mUGFnZXNcbiAgICApXG4gICAgICB0aHJvdyBFcnJvcignSW5kZXggb3V0IG9mIGJvdW5kJyk7XG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHRoaXMuX3BhZ2VJbmRleCkpIHRocm93IEVycm9yKCdJbmRleCBpcyBub3QgaW50ZWdlcicpO1xuXG4gICAgdGhpcy5wYWdlSW5kZXgkLm5leHQodGhpcy5fcGFnZUluZGV4KTtcblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdjb21wbGV4JykgdGhpcy5yZWZyZXNoQ29tcGxleCgpO1xuICAgIGVsc2UgdGhpcy5yZWZyZXNoRGVmYXVsdCgpO1xuXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICByZWZyZXNoRGVmYXVsdCgpIHtcbiAgICBpZiAodGhpcy5fdG90YWxOdW1iZXJPZlBhZ2VzIDw9IHRoaXMubnVtYmVyT2ZSZWFjaGFibGVQYWdlcyArIDEpIHtcbiAgICAgIC8vIENhc2UgMTogbm90IGVub3VnaCBwYWdlcyB0byBkaXNwbGF5IHRoZSBmaXJzdCBcIi4uLlwiXG4gICAgICB0aGlzLnBhZ2VzID0gWy4uLkFycmF5KHRoaXMuX3RvdGFsTnVtYmVyT2ZQYWdlcykua2V5cygpXTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucGFnZUluZGV4IDw9IHRoaXMubnVtYmVyT2ZSZWFjaGFibGVQYWdlcyAtIDEpIHtcbiAgICAgIC8vIENhc2UgMjogcGFnZSBpbmRleCBpbiBmaXJzdCA1IHBhZ2VzXG4gICAgICB0aGlzLnBhZ2VzID0gWy4uLkFycmF5KHRoaXMubnVtYmVyT2ZSZWFjaGFibGVQYWdlcykua2V5cygpXTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGZpcnN0UGFnZUluZGV4ID1cbiAgICAgICAgTWF0aC5mbG9vcih0aGlzLl9wYWdlSW5kZXggLyB0aGlzLm51bWJlck9mUmVhY2hhYmxlUGFnZXMpICpcbiAgICAgICAgdGhpcy5udW1iZXJPZlJlYWNoYWJsZVBhZ2VzO1xuXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuX3RvdGFsTnVtYmVyT2ZQYWdlcyAtIGZpcnN0UGFnZUluZGV4IDw9XG4gICAgICAgIHRoaXMubnVtYmVyT2ZSZWFjaGFibGVQYWdlcyArIDFcbiAgICAgICkge1xuICAgICAgICBpZiAodGhpcy5fdG90YWxOdW1iZXJPZlBhZ2VzIC0gZmlyc3RQYWdlSW5kZXggPD0gMSkge1xuICAgICAgICAgIC8vIENhc2UgMzogaW4gdGhlIGxhc3QgYmxvY2sgY29udGFpbmluZyBvbmx5IDEgcGFnZVxuICAgICAgICAgIGZpcnN0UGFnZUluZGV4ID0gZmlyc3RQYWdlSW5kZXggLSB0aGlzLm51bWJlck9mUmVhY2hhYmxlUGFnZXM7XG4gICAgICAgICAgdGhpcy5wYWdlcyA9IFtcbiAgICAgICAgICAgIC4uLkFycmF5KHRoaXMuX3RvdGFsTnVtYmVyT2ZQYWdlcyAtIGZpcnN0UGFnZUluZGV4KS5rZXlzKCksXG4gICAgICAgICAgXS5tYXAoeCA9PiB4ICsgZmlyc3RQYWdlSW5kZXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIENhc2UgNDogb25lIGJsb2NrIGJlZm9yZSB0aGUgbGFzdCB3aXRoIGxhc3QgYmxvY2sgY29udGFpbmluZyBvbmx5IDEgcGFnZVxuICAgICAgICAgIHRoaXMucGFnZXMgPSBbXG4gICAgICAgICAgICAuLi5BcnJheSh0aGlzLl90b3RhbE51bWJlck9mUGFnZXMgLSBmaXJzdFBhZ2VJbmRleCkua2V5cygpLFxuICAgICAgICAgIF0ubWFwKHggPT4geCArIGZpcnN0UGFnZUluZGV4KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLl90b3RhbE51bWJlck9mUGFnZXMgLSAxIC0gZmlyc3RQYWdlSW5kZXggPD0gMikge1xuICAgICAgICAvLyBDYXNlIDU6IGluIHRoZSBsYXN0IGJsb2NrIGNvbnRhaW5pbmcgMiBwYWdlcyBvciBtb3JlXG4gICAgICAgIGZpcnN0UGFnZUluZGV4ID0gZmlyc3RQYWdlSW5kZXggLSB0aGlzLm51bWJlck9mUmVhY2hhYmxlUGFnZXM7XG4gICAgICAgIHRoaXMucGFnZXMgPSBbXG4gICAgICAgICAgLi4uQXJyYXkodGhpcy5fdG90YWxOdW1iZXJPZlBhZ2VzIC0gZmlyc3RQYWdlSW5kZXgpLmtleXMoKSxcbiAgICAgICAgXS5tYXAoeCA9PiB4ICsgZmlyc3RQYWdlSW5kZXgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQ2FzZSA2OiBzYW1lIGFzIGNhc2UgNCBidXQgdGhlIG5leHQgYmxvY2sgY29udGFpbnMgYXQgbGVhc3QgMiBwYWdlc1xuICAgICAgICB0aGlzLnBhZ2VzID0gWy4uLkFycmF5KHRoaXMubnVtYmVyT2ZSZWFjaGFibGVQYWdlcykua2V5cygpXS5tYXAoXG4gICAgICAgICAgeCA9PiB4ICsgZmlyc3RQYWdlSW5kZXgsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmVmcmVzaENvbXBsZXgoKSB7XG4gICAgaWYgKHRoaXMuX3RvdGFsTnVtYmVyT2ZQYWdlcyA8PSB0aGlzLm51bWJlck9mUmVhY2hhYmxlUGFnZXMgKyAyKSB7XG4gICAgICAvLyBDYXNlIDE6IG5vdCBlbm91Z2ggcGFnZXMgdG8gZGlzcGxheSB0aGUgZmlyc3QgXCIuLi5cIlxuICAgICAgdGhpcy5wYWdlcyA9IFsuLi5BcnJheSh0aGlzLl90b3RhbE51bWJlck9mUGFnZXMpLmtleXMoKV07XG4gICAgfSBlbHNlIGlmICh0aGlzLnBhZ2VJbmRleCA8PSB0aGlzLm51bWJlck9mUmVhY2hhYmxlUGFnZXMgLSAxKSB7XG4gICAgICAvLyBDYXNlIDI6IHBhZ2UgaW5kZXggaW4gZmlyc3QgNSBwYWdlc1xuICAgICAgdGhpcy5wYWdlcyA9IFsuLi5BcnJheSh0aGlzLm51bWJlck9mUmVhY2hhYmxlUGFnZXMpLmtleXMoKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBmaXJzdFBhZ2VJbmRleCA9XG4gICAgICAgIE1hdGguZmxvb3IodGhpcy5fcGFnZUluZGV4IC8gdGhpcy5udW1iZXJPZlJlYWNoYWJsZVBhZ2VzKSAqXG4gICAgICAgIHRoaXMubnVtYmVyT2ZSZWFjaGFibGVQYWdlcztcblxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLl90b3RhbE51bWJlck9mUGFnZXMgLSBmaXJzdFBhZ2VJbmRleCA8PVxuICAgICAgICB0aGlzLm51bWJlck9mUmVhY2hhYmxlUGFnZXMgKyAyXG4gICAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuX3RvdGFsTnVtYmVyT2ZQYWdlcyAtIGZpcnN0UGFnZUluZGV4IDw9IDIpIHtcbiAgICAgICAgICAvLyBDYXNlIDM6IGluIHRoZSBsYXN0IGJsb2NrIGNvbnRhaW5pbmcgbWF4IDIgcGFnZXNcbiAgICAgICAgICBmaXJzdFBhZ2VJbmRleCA9IGZpcnN0UGFnZUluZGV4IC0gdGhpcy5udW1iZXJPZlJlYWNoYWJsZVBhZ2VzO1xuICAgICAgICAgIHRoaXMucGFnZXMgPSBbXG4gICAgICAgICAgICAuLi5BcnJheSh0aGlzLl90b3RhbE51bWJlck9mUGFnZXMgLSBmaXJzdFBhZ2VJbmRleCkua2V5cygpLFxuICAgICAgICAgIF0ubWFwKHggPT4geCArIGZpcnN0UGFnZUluZGV4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBDYXNlIDQ6IG9uZSBibG9jayBiZWZvcmUgdGhlIGxhc3Qgd2l0aCBsYXN0IGJsb2NrIGNvbnRhaW5pbmcgbWF4IDIgcGFnZXNcbiAgICAgICAgICB0aGlzLnBhZ2VzID0gW1xuICAgICAgICAgICAgLi4uQXJyYXkodGhpcy5fdG90YWxOdW1iZXJPZlBhZ2VzIC0gZmlyc3RQYWdlSW5kZXgpLmtleXMoKSxcbiAgICAgICAgICBdLm1hcCh4ID0+IHggKyBmaXJzdFBhZ2VJbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fdG90YWxOdW1iZXJPZlBhZ2VzIC0gMSAtIGZpcnN0UGFnZUluZGV4IDw9IDMpIHtcbiAgICAgICAgLy8gQ2FzZSA1OiBpbiB0aGUgbGFzdCBibG9jayBjb250YWluaW5nIDIgcGFnZXMgb3IgbW9yZVxuICAgICAgICBmaXJzdFBhZ2VJbmRleCA9IGZpcnN0UGFnZUluZGV4IC0gdGhpcy5udW1iZXJPZlJlYWNoYWJsZVBhZ2VzO1xuICAgICAgICB0aGlzLnBhZ2VzID0gW1xuICAgICAgICAgIC4uLkFycmF5KHRoaXMuX3RvdGFsTnVtYmVyT2ZQYWdlcyAtIGZpcnN0UGFnZUluZGV4KS5rZXlzKCksXG4gICAgICAgIF0ubWFwKHggPT4geCArIGZpcnN0UGFnZUluZGV4KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIENhc2UgNjogc2FtZSBhcyBjYXNlIDQgYnV0IHRoZSBuZXh0IGJsb2NrIGNvbnRhaW5zIGF0IGxlYXN0IDIgcGFnZXNcbiAgICAgICAgdGhpcy5wYWdlcyA9IFsuLi5BcnJheSh0aGlzLm51bWJlck9mUmVhY2hhYmxlUGFnZXMpLmtleXMoKV0ubWFwKFxuICAgICAgICAgIHggPT4geCArIGZpcnN0UGFnZUluZGV4LFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBFbWl0cyBhbiBldmVudCBub3RpZnlpbmcgdGhhdCBhIGNoYW5nZSBvZiB0aGUgcGFnaW5hdG9yJ3MgcHJvcGVydGllcyBoYXMgYmVlbiB0cmlnZ2VyZWQuICovXG4gIHByaXZhdGUgX2VtaXRQYWdlRXZlbnQocHJldmlvdXNQYWdlSW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMucGFnZS5lbWl0KHtcbiAgICAgIHByZXZpb3VzUGFnZUluZGV4LFxuICAgICAgcGFnZUluZGV4OiB0aGlzLl9wYWdlSW5kZXgsXG4gICAgICBwYWdlU2l6ZTogdGhpcy5fcGFnZVNpemUsXG4gICAgICBsZW5ndGg6IHRoaXMuX2xlbmd0aCxcbiAgICB9KTtcblxuICAgIC8vIERlcHJlY2F0ZWRcbiAgICB0aGlzLm9uUmVxdWVzdFBhZ2UuZW1pdCh0aGlzLl9wYWdlSW5kZXgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicGFnaW5hdG9yLWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwicGFnaW5hdG9yLXNpemUtc2VsZWN0b3ItY29udGFpbmVyXCIgKm5nSWY9XCJwYWdlU2l6ZVNlbGVjdG9yXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICBhcHBlYXJhbmNlPVwib3V0bGluZVwiXG4gICAgICBjbGFzcz1cInBhZ2luYXRvci1zaXplLXNlbGVjdG9yXCJcbiAgICAgIGRhdGEtY3k9XCJvbmVtcnZhLW1hdC1wYWdpbmF0b3ItcGFnZS1zaXplLXNlbGVjdG9yXCJcbiAgICA+XG4gICAgICA8bWF0LXNlbGVjdCBbdmFsdWVdPVwicGFnZVNpemVEZWZhdWx0T3B0aW9uXCI+XG4gICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHNpemUgb2YgcGFnZVNpemVPcHRpb25zXCJcbiAgICAgICAgICBbdmFsdWVdPVwic2l6ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cInBhZ2VTaXplID0gc2l6ZVwiXG4gICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCInb25lbXJ2YS1tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZS1vcHRpb24tJyArIHNpemVcIlxuICAgICAgICAgID57eyBzaXplIH19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxkaXY+XG4gICAgICA8c3BhbiBzdHlsZT1cImRpc3BsYXk6IGlubGluZS1ibG9ja1wiPnt7XG4gICAgICAgICdwYWdpbmF0b3IuJyArIHJlY29yZEtleSB8IHRyYW5zbGF0ZVxuICAgICAgfX08L3NwYW4+XG4gICAgICA8bWF0LWRpdmlkZXIgdmVydGljYWw+PC9tYXQtZGl2aWRlcj5cblxuICAgICAge3sgcGFnZUluZGV4ICogcGFnZVNpemUgKyAxIH19IC0ge3sgbWF4UmVjb3JkTnVtYmVyIH19XG4gICAgICA8c3Bhbj57eyAncGFnaW5hdG9yLm91dE9mJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIHt7IGxlbmd0aCB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2XG4gICAgKm5nSWY9XCJwYWdlcy5sZW5ndGggPiAxXCJcbiAgICBjbGFzcz1cIm9uZW1ydmEtbWF0LXBhZ2luYXRvclwiXG4gICAgZGF0YS1jeT1cIm9uZW1ydmEtbWF0LXBhZ2luYXRvclwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwib25lbXJ2YS1tYXQtcGFnaW5hdG9yLWJ0biBvbmVtcnZhLW1hdC1wYWdpbmF0b3ItYnRuLXByZXZpb3VzXCJcbiAgICAgIGRhdGEtY3k9XCJvbmVtcnZhLW1hdC1wYWdpbmF0b3ItYnRuLXByZXZpb3VzXCJcbiAgICAgIFtkaXNhYmxlZF09XCJwYWdlSW5kZXggPT09IDBcIlxuICAgICAgKGNsaWNrKT1cInBhZ2VJbmRleCA9IHBhZ2VJbmRleCAtIDFcIlxuICAgID5cbiAgICAgIHt7ICdwYWdpbmF0b3IuJyArIHByZXZpb3VzS2V5IHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwib25lbXJ2YS1tYXQtcGFnaW5hdG9yLWJ0biBvbmVtcnZhLW1hdC1wYWdpbmF0b3ItZmlyc3RcIlxuICAgICAgZGF0YS1jeT1cIm9uZW1ydmEtbWF0LXBhZ2luYXRvci1maXJzdFwiXG4gICAgICAqbmdJZj1cInBhZ2VzWzBdID4gMCAmJiB0eXBlID09PSAnY29tcGxleCdcIlxuICAgICAgKGNsaWNrKT1cInBhZ2VJbmRleCA9IDBcIlxuICAgID5cbiAgICAgIDFcbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJvbmVtcnZhLW1hdC1wYWdpbmF0b3ItYnRuIG9uZW1ydmEtbWF0LXBhZ2luYXRvci1idG4tdG9vLW1hbnlcIlxuICAgICAgZGF0YS1jeT1cIm9uZW1ydmEtbWF0LXBhZ2luYXRvci1idG4tdG9vLW1hbnktYmVmb3JlXCJcbiAgICAgICpuZ0lmPVwicGFnZXNbMF0gPiAwXCJcbiAgICAgIChjbGljayk9XCJwYWdlSW5kZXggPSBwYWdlSW5kZXggLSBudW1iZXJPZlJlYWNoYWJsZVBhZ2VzXCJcbiAgICA+XG4gICAgICAuLi5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJvbmVtcnZhLW1hdC1wYWdpbmF0b3ItYnRuIG9uZW1ydmEtbWF0LXBhZ2luYXRvci1idG4tcGFnZVwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdvbmVtcnZhLW1hdC1wYWdpbmF0b3ItY3VycmVudC1pbmRleCc6IHBhZ2VJbmRleCA9PT0gcGFnZSB9XCJcbiAgICAgIGRhdGEtY3k9XCJvbmVtcnZhLW1hdC1wYWdpbmF0b3ItYnRuLXBhZ2VcIlxuICAgICAgKm5nRm9yPVwibGV0IHBhZ2Ugb2YgcGFnZXNcIlxuICAgICAgKGNsaWNrKT1cInBhZ2VJbmRleCA9IHBhZ2VcIlxuICAgID5cbiAgICAgIHt7IHBhZ2UgKyAxIH19XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwib25lbXJ2YS1tYXQtcGFnaW5hdG9yLWJ0biBvbmVtcnZhLW1hdC1wYWdpbmF0b3ItYnRuLXRvby1tYW55XCJcbiAgICAgIGRhdGEtY3k9XCJvbmVtcnZhLW1hdC1wYWdpbmF0b3ItYnRuLXRvby1tYW55LWFmdGVyXCJcbiAgICAgICpuZ0lmPVwicGFnZXNbcGFnZXMubGVuZ3RoIC0gMV0gPCB0b3RhbE51bWJlck9mUGFnZXMgLSAxXCJcbiAgICAgIChjbGljayk9XCJwYWdlSW5kZXggPSBwYWdlSW5kZXggKyBudW1iZXJPZlJlYWNoYWJsZVBhZ2VzXCJcbiAgICA+XG4gICAgICAuLi5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJvbmVtcnZhLW1hdC1wYWdpbmF0b3ItYnRuIG9uZW1ydmEtbWF0LXBhZ2luYXRvci1idG4tbGFzdFwiXG4gICAgICBkYXRhLWN5PVwib25lbXJ2YS1tYXQtcGFnaW5hdG9yLWJ0bi1sYXN0XCJcbiAgICAgICpuZ0lmPVwiXG4gICAgICAgIHBhZ2VzW3BhZ2VzLmxlbmd0aCAtIDFdIDwgdG90YWxOdW1iZXJPZlBhZ2VzIC0gMSAmJiB0eXBlID09PSAnY29tcGxleCdcbiAgICAgIFwiXG4gICAgICAoY2xpY2spPVwicGFnZUluZGV4ID0gdG90YWxOdW1iZXJPZlBhZ2VzIC0gMVwiXG4gICAgPlxuICAgICAge3sgdG90YWxOdW1iZXJPZlBhZ2VzIH19XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwib25lbXJ2YS1tYXQtcGFnaW5hdG9yLWJ0biBvbmVtcnZhLW1hdC1wYWdpbmF0b3ItYnRuLW5leHRcIlxuICAgICAgZGF0YS1jeT1cIm9uZW1ydmEtbWF0LXBhZ2luYXRvci1idG4tbmV4dFwiXG4gICAgICBbZGlzYWJsZWRdPVwicGFnZUluZGV4ID49IHRvdGFsTnVtYmVyT2ZQYWdlcyAtIDFcIlxuICAgICAgKGNsaWNrKT1cInBhZ2VJbmRleCA9IHBhZ2VJbmRleCArIDFcIlxuICAgID5cbiAgICAgIHt7ICdwYWdpbmF0b3IuJyArIG5leHRLZXkgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lbXJ2YS1tYXQtcGFnaW5hdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZW1ydmEvZGVzaWduLXN5c3RlbS9tYXQtcGFnaW5hdG9yL3NyYy9vbmVtcnZhLW1hdC1wYWdpbmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25lbXJ2YS9kZXNpZ24tc3lzdGVtL21hdC1wYWdpbmF0b3Ivc3JjL29uZW1ydmEtbWF0LXBhZ2luYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLHVCQUF1QixHQUV4QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQVF2QyxNQUFNLE9BQU8sNEJBQTRCO0lBYXZDLElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDekIsQ0FBQztJQUVNLGNBQWM7UUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVELElBQ1csU0FBUyxDQUFDLEtBQWE7UUFDaEMsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3JDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJ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RSxJQUFJLENBQUMsU0FBUztZQUN4QixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FDckIsQ0FBQyxDQUFDO1FBRUgsYUFBYTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMzQyxDQUFDOytHQTFNVSw0QkFBNEI7bUdBQTVCLDRCQUE0QixvWkNoQnpDLGcyR0E0R0E7OzRGRDVGYSw0QkFBNEI7a0JBTHhDLFNBQVM7K0JBQ0UsdUJBQXVCLG1CQUNoQix1QkFBdUIsQ0FBQyxNQUFNO3NGQUl0QyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBaUJLLFNBQVM7c0JBRG5CLEtBQUs7Z0JBY0ssTUFBTTtzQkFEaEIsS0FBSztnQkFhSyxRQUFRO3NCQURsQixLQUFLO2dCQWVHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUlJLGFBQWE7c0JBQXRCLE1BQU07Z0JBR1ksSUFBSTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQYWdlRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvbmVtcnZhLW1hdC1wYWdpbmF0b3InLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgdGVtcGxhdGVVcmw6ICcuL29uZW1ydmEtbWF0LXBhZ2luYXRvci5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIE9uZW1ydmFNYXRQYWdpbmF0b3JDb21wb25lbnQge1xuICBASW5wdXQoKSB0eXBlOiAnZGVmYXVsdCcgfCAnY29tcGxleCcgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIHBhZ2VTaXplU2VsZWN0b3IgPSB0cnVlOyAvLyBTcGVjczogRFMtNzRcbiAgQElucHV0KCkgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFsxMCwgMjAsIDUwLCAxMDBdOyAvLyBTcGVjczogRFMtNzRcbiAgQElucHV0KCkgcGFnZVNpemVEZWZhdWx0T3B0aW9uOiBudW1iZXIgPSAxMDtcbiAgQElucHV0KCkgcmVjb3JkS2V5OiBzdHJpbmcgPSAncmVjb3Jkc1BlclBhZ2UnOyAvLyB0aGlzIHJlY29yZCBrZXkgd2lsbCBiZSBpbnNpZGUga2V5IFwicGFnaW5hdG9yXCIuIEkuZSB0aGUgZGVmYXVsdCBrZXkgdmFsdWUgdGhhdCB3aWxsIGJlIGdlbmVyYXRlZCBvdXQgb2YgdGhpcyBpbnB1dCBpcyBwYWdpbmF0b3IucmVjb3Jkc1BlclBhZ2VcblxuICBtYXhSZWNvcmROdW1iZXIgPSAwO1xuICBwcml2YXRlIF9wYWdlSW5kZXg6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgX2xlbmd0aDogbnVtYmVyID0gMDtcbiAgcHJpdmF0ZSBfcGFnZVNpemU6IG51bWJlciA9IHRoaXMucGFnZVNpemVEZWZhdWx0T3B0aW9uO1xuICBwcml2YXRlIF90b3RhbE51bWJlck9mUGFnZXM6IG51bWJlciA9IDA7XG5cbiAgcHVibGljIGdldCBwYWdlSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fcGFnZUluZGV4O1xuICB9XG5cbiAgcHVibGljIHJlc2V0UGFnZUluZGV4KCkge1xuICAgIHRoaXMuX3BhZ2VJbmRleCA9IDA7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBhZ2VJbmRleChpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuX3BhZ2VJbmRleCAhPT0gaW5kZXgpIHtcbiAgICAgIHRoaXMuX3BhZ2VJbmRleCA9IE1hdGgubWluKGluZGV4LCB0aGlzLl90b3RhbE51bWJlck9mUGFnZXMgLSAxKTtcbiAgICAgIHRoaXMuX2VtaXRQYWdlRXZlbnQodGhpcy5fcGFnZUluZGV4KTtcbiAgICAgIHRoaXMucmVmcmVzaFN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBsZW5ndGgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbGVuZ3RoO1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBsZW5ndGgobGVuZ3RoOiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5fbGVuZ3RoICE9PSBsZW5ndGgpIHtcbiAgICAgIHRoaXMuX2xlbmd0aCA9IGxlbmd0aDtcbiAgICAgIHRoaXMucmVmcmVzaFN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBwYWdlU2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9wYWdlU2l6ZTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGFnZVNpemUocGFnZVNpemU6IG51bWJlcikge1xuICAgIGlmICh0aGlzLl9wYWdlU2l6ZSAhPT0gcGFnZVNpemUpIHtcbiAgICAgIHRoaXMuX3BhZ2VTaXplID0gcGFnZVNpemU7XG4gICAgICB0aGlzLnBhZ2VTaXplJC5uZXh0KHRoaXMuX3BhZ2VTaXplKTtcbiAgICAgIHRoaXMuX3BhZ2VJbmRleCA9IDA7XG4gICAgICB0aGlzLl9lbWl0UGFnZUV2ZW50KHRoaXMuX3BhZ2VJbmRleCk7XG4gICAgICB0aGlzLnJlZnJlc2hTdGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIGdldCB0b3RhbE51bWJlck9mUGFnZXMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fdG90YWxOdW1iZXJPZlBhZ2VzO1xuICB9XG5cbiAgQElucHV0KCkgcHJldmlvdXNLZXk6IHN0cmluZyA9ICdQcmV2aW91cyc7XG4gIEBJbnB1dCgpIG5leHRLZXk6IHN0cmluZyA9ICdOZXh0JztcblxuICAvKiogRGVwcmVjYXRlZCAqKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4XG4gIEBPdXRwdXQoKSBvblJlcXVlc3RQYWdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTsgLy8gUGFnZXMgYXJlIGRpc3BsYXllZCBzdGFydGluZyBmcm9tIDEgYnV0IHRoZSBpbmRleCBzdGFydHMgYXQgMFxuXG4gIC8qKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHBhZ2luYXRvciBjaGFuZ2VzIHRoZSBwYWdlIHNpemUgb3IgcGFnZSBpbmRleC4gKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IHBhZ2U6IEV2ZW50RW1pdHRlcjxQYWdlRXZlbnQ+ID1cbiAgICBuZXcgRXZlbnRFbWl0dGVyPFBhZ2VFdmVudD4oKTtcblxuICBwYWdlSW5kZXgkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9IG5ldyBCZWhhdmlvclN1YmplY3QoMCk7XG4gIHBhZ2VTaXplJDogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFxuICAgIHRoaXMucGFnZVNpemVEZWZhdWx0T3B0aW9uLFxuICApO1xuXG4gIHBhZ2VzOiBudW1iZXJbXSA9IFtdO1xuICBudW1iZXJPZlJlYWNoYWJsZVBhZ2VzID0gNTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICByZWZyZXNoU3RhdGUoKSB7XG4gICAgdGhpcy5tYXhSZWNvcmROdW1iZXIgPSBNYXRoLm1pbihcbiAgICAgIHRoaXMuX3BhZ2VJbmRleCAqIHRoaXMuX3BhZ2VTaXplICsgdGhpcy5fcGFnZVNpemUsXG4gICAgICB0aGlzLl9sZW5ndGgsXG4gICAgKTtcblxuICAgIGlmICh0aGlzLl9wYWdlSW5kZXggPCAwKSB0aHJvdyBFcnJvcignTmVnYXRpdmUgaW5kZXgnKTtcbiAgICB0aGlzLl90b3RhbE51bWJlck9mUGFnZXMgPSBNYXRoLmNlaWwodGhpcy5sZW5ndGggLyB0aGlzLnBhZ2VTaXplKTtcbiAgICBpZiAoXG4gICAgICB0aGlzLl90b3RhbE51bWJlck9mUGFnZXMgPiAwICYmXG4gICAgICB0aGlzLl9wYWdlSW5kZXggPiB0aGlzLl90b3RhbE51bWJlck9mUGFnZXNcbiAgICApXG4gICAgICB0aHJvdyBFcnJvcignSW5kZXggb3V0IG9mIGJvdW5kJyk7XG4gICAgaWYgKCFOdW1iZXIuaXNJbnRlZ2VyKHRoaXMuX3BhZ2VJbmRleCkpIHRocm93IEVycm9yKCdJbmRleCBpcyBub3QgaW50ZWdlcicpO1xuXG4gICAgdGhpcy5wYWdlSW5kZXgkLm5leHQodGhpcy5fcGFnZUluZGV4KTtcblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdjb21wbGV4JykgdGhpcy5yZWZyZXNoQ29tcGxleCgpO1xuICAgIGVsc2UgdGhpcy5yZWZyZXNoRGVmYXVsdCgpO1xuXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICByZWZyZXNoRGVmYXVsdCgpIHtcbiAgICBpZiAodGhpcy5fdG90YWxOdW1iZXJPZlBhZ2VzIDw9IHRoaXMubnVtYmVyT2ZSZWFjaGFibGVQYWdlcyArIDEpIHtcbiAgICAgIC8vIENhc2UgMTogbm90IGVub3VnaCBwYWdlcyB0byBkaXNwbGF5IHRoZSBmaXJzdCBcIi4uLlwiXG4gICAgICB0aGlzLnBhZ2VzID0gWy4uLkFycmF5KHRoaXMuX3RvdGFsTnVtYmVyT2ZQYWdlcykua2V5cygpXTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucGFnZUluZGV4IDw9IHRoaXMubnVtYmVyT2ZSZWFjaGFibGVQYWdlcyAtIDEpIHtcbiAgICAgIC8vIENhc2UgMjogcGFnZSBpbmRleCBpbiBmaXJzdCA1IHBhZ2VzXG4gICAgICB0aGlzLnBhZ2VzID0gWy4uLkFycmF5KHRoaXMubnVtYmVyT2ZSZWFjaGFibGVQYWdlcykua2V5cygpXTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGZpcnN0UGFnZUluZGV4ID1cbiAgICAgICAgTWF0aC5mbG9vcih0aGlzLl9wYWdlSW5kZXggLyB0aGlzLm51bWJlck9mUmVhY2hhYmxlUGFnZXMpICpcbiAgICAgICAgdGhpcy5udW1iZXJPZlJlYWNoYWJsZVBhZ2VzO1xuXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuX3RvdGFsTnVtYmVyT2ZQYWdlcyAtIGZpcnN0UGFnZUluZGV4IDw9XG4gICAgICAgIHRoaXMubnVtYmVyT2ZSZWFjaGFibGVQYWdlcyArIDFcbiAgICAgICkge1xuICAgICAgICBpZiAodGhpcy5fdG90YWxOdW1iZXJPZlBhZ2VzIC0gZmlyc3RQYWdlSW5kZXggPD0gMSkge1xuICAgICAgICAgIC8vIENhc2UgMzogaW4gdGhlIGxhc3QgYmxvY2sgY29udGFpbmluZyBvbmx5IDEgcGFnZVxuICAgICAgICAgIGZpcnN0UGFnZUluZGV4ID0gZmlyc3RQYWdlSW5kZXggLSB0aGlzLm51bWJlck9mUmVhY2hhYmxlUGFnZXM7XG4gICAgICAgICAgdGhpcy5wYWdlcyA9IFtcbiAgICAgICAgICAgIC4uLkFycmF5KHRoaXMuX3RvdGFsTnVtYmVyT2ZQYWdlcyAtIGZpcnN0UGFnZUluZGV4KS5rZXlzKCksXG4gICAgICAgICAgXS5tYXAoeCA9PiB4ICsgZmlyc3RQYWdlSW5kZXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIENhc2UgNDogb25lIGJsb2NrIGJlZm9yZSB0aGUgbGFzdCB3aXRoIGxhc3QgYmxvY2sgY29udGFpbmluZyBvbmx5IDEgcGFnZVxuICAgICAgICAgIHRoaXMucGFnZXMgPSBbXG4gICAgICAgICAgICAuLi5BcnJheSh0aGlzLl90b3RhbE51bWJlck9mUGFnZXMgLSBmaXJzdFBhZ2VJbmRleCkua2V5cygpLFxuICAgICAgICAgIF0ubWFwKHggPT4geCArIGZpcnN0UGFnZUluZGV4KTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLl90b3RhbE51bWJlck9mUGFnZXMgLSAxIC0gZmlyc3RQYWdlSW5kZXggPD0gMikge1xuICAgICAgICAvLyBDYXNlIDU6IGluIHRoZSBsYXN0IGJsb2NrIGNvbnRhaW5pbmcgMiBwYWdlcyBvciBtb3JlXG4gICAgICAgIGZpcnN0UGFnZUluZGV4ID0gZmlyc3RQYWdlSW5kZXggLSB0aGlzLm51bWJlck9mUmVhY2hhYmxlUGFnZXM7XG4gICAgICAgIHRoaXMucGFnZXMgPSBbXG4gICAgICAgICAgLi4uQXJyYXkodGhpcy5fdG90YWxOdW1iZXJPZlBhZ2VzIC0gZmlyc3RQYWdlSW5kZXgpLmtleXMoKSxcbiAgICAgICAgXS5tYXAoeCA9PiB4ICsgZmlyc3RQYWdlSW5kZXgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gQ2FzZSA2OiBzYW1lIGFzIGNhc2UgNCBidXQgdGhlIG5leHQgYmxvY2sgY29udGFpbnMgYXQgbGVhc3QgMiBwYWdlc1xuICAgICAgICB0aGlzLnBhZ2VzID0gWy4uLkFycmF5KHRoaXMubnVtYmVyT2ZSZWFjaGFibGVQYWdlcykua2V5cygpXS5tYXAoXG4gICAgICAgICAgeCA9PiB4ICsgZmlyc3RQYWdlSW5kZXgsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmVmcmVzaENvbXBsZXgoKSB7XG4gICAgaWYgKHRoaXMuX3RvdGFsTnVtYmVyT2ZQYWdlcyA8PSB0aGlzLm51bWJlck9mUmVhY2hhYmxlUGFnZXMgKyAyKSB7XG4gICAgICAvLyBDYXNlIDE6IG5vdCBlbm91Z2ggcGFnZXMgdG8gZGlzcGxheSB0aGUgZmlyc3QgXCIuLi5cIlxuICAgICAgdGhpcy5wYWdlcyA9IFsuLi5BcnJheSh0aGlzLl90b3RhbE51bWJlck9mUGFnZXMpLmtleXMoKV07XG4gICAgfSBlbHNlIGlmICh0aGlzLnBhZ2VJbmRleCA8PSB0aGlzLm51bWJlck9mUmVhY2hhYmxlUGFnZXMgLSAxKSB7XG4gICAgICAvLyBDYXNlIDI6IHBhZ2UgaW5kZXggaW4gZmlyc3QgNSBwYWdlc1xuICAgICAgdGhpcy5wYWdlcyA9IFsuLi5BcnJheSh0aGlzLm51bWJlck9mUmVhY2hhYmxlUGFnZXMpLmtleXMoKV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGxldCBmaXJzdFBhZ2VJbmRleCA9XG4gICAgICAgIE1hdGguZmxvb3IodGhpcy5fcGFnZUluZGV4IC8gdGhpcy5udW1iZXJPZlJlYWNoYWJsZVBhZ2VzKSAqXG4gICAgICAgIHRoaXMubnVtYmVyT2ZSZWFjaGFibGVQYWdlcztcblxuICAgICAgaWYgKFxuICAgICAgICB0aGlzLl90b3RhbE51bWJlck9mUGFnZXMgLSBmaXJzdFBhZ2VJbmRleCA8PVxuICAgICAgICB0aGlzLm51bWJlck9mUmVhY2hhYmxlUGFnZXMgKyAyXG4gICAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuX3RvdGFsTnVtYmVyT2ZQYWdlcyAtIGZpcnN0UGFnZUluZGV4IDw9IDIpIHtcbiAgICAgICAgICAvLyBDYXNlIDM6IGluIHRoZSBsYXN0IGJsb2NrIGNvbnRhaW5pbmcgbWF4IDIgcGFnZXNcbiAgICAgICAgICBmaXJzdFBhZ2VJbmRleCA9IGZpcnN0UGFnZUluZGV4IC0gdGhpcy5udW1iZXJPZlJlYWNoYWJsZVBhZ2VzO1xuICAgICAgICAgIHRoaXMucGFnZXMgPSBbXG4gICAgICAgICAgICAuLi5BcnJheSh0aGlzLl90b3RhbE51bWJlck9mUGFnZXMgLSBmaXJzdFBhZ2VJbmRleCkua2V5cygpLFxuICAgICAgICAgIF0ubWFwKHggPT4geCArIGZpcnN0UGFnZUluZGV4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAvLyBDYXNlIDQ6IG9uZSBibG9jayBiZWZvcmUgdGhlIGxhc3Qgd2l0aCBsYXN0IGJsb2NrIGNvbnRhaW5pbmcgbWF4IDIgcGFnZXNcbiAgICAgICAgICB0aGlzLnBhZ2VzID0gW1xuICAgICAgICAgICAgLi4uQXJyYXkodGhpcy5fdG90YWxOdW1iZXJPZlBhZ2VzIC0gZmlyc3RQYWdlSW5kZXgpLmtleXMoKSxcbiAgICAgICAgICBdLm1hcCh4ID0+IHggKyBmaXJzdFBhZ2VJbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fdG90YWxOdW1iZXJPZlBhZ2VzIC0gMSAtIGZpcnN0UGFnZUluZGV4IDw9IDMpIHtcbiAgICAgICAgLy8gQ2FzZSA1OiBpbiB0aGUgbGFzdCBibG9jayBjb250YWluaW5nIDIgcGFnZXMgb3IgbW9yZVxuICAgICAgICBmaXJzdFBhZ2VJbmRleCA9IGZpcnN0UGFnZUluZGV4IC0gdGhpcy5udW1iZXJPZlJlYWNoYWJsZVBhZ2VzO1xuICAgICAgICB0aGlzLnBhZ2VzID0gW1xuICAgICAgICAgIC4uLkFycmF5KHRoaXMuX3RvdGFsTnVtYmVyT2ZQYWdlcyAtIGZpcnN0UGFnZUluZGV4KS5rZXlzKCksXG4gICAgICAgIF0ubWFwKHggPT4geCArIGZpcnN0UGFnZUluZGV4KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIENhc2UgNjogc2FtZSBhcyBjYXNlIDQgYnV0IHRoZSBuZXh0IGJsb2NrIGNvbnRhaW5zIGF0IGxlYXN0IDIgcGFnZXNcbiAgICAgICAgdGhpcy5wYWdlcyA9IFsuLi5BcnJheSh0aGlzLm51bWJlck9mUmVhY2hhYmxlUGFnZXMpLmtleXMoKV0ubWFwKFxuICAgICAgICAgIHggPT4geCArIGZpcnN0UGFnZUluZGV4LFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKiBFbWl0cyBhbiBldmVudCBub3RpZnlpbmcgdGhhdCBhIGNoYW5nZSBvZiB0aGUgcGFnaW5hdG9yJ3MgcHJvcGVydGllcyBoYXMgYmVlbiB0cmlnZ2VyZWQuICovXG4gIHByaXZhdGUgX2VtaXRQYWdlRXZlbnQocHJldmlvdXNQYWdlSW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMucGFnZS5lbWl0KHtcbiAgICAgIHByZXZpb3VzUGFnZUluZGV4LFxuICAgICAgcGFnZUluZGV4OiB0aGlzLl9wYWdlSW5kZXgsXG4gICAgICBwYWdlU2l6ZTogdGhpcy5fcGFnZVNpemUsXG4gICAgICBsZW5ndGg6IHRoaXMuX2xlbmd0aCxcbiAgICB9KTtcblxuICAgIC8vIERlcHJlY2F0ZWRcbiAgICB0aGlzLm9uUmVxdWVzdFBhZ2UuZW1pdCh0aGlzLl9wYWdlSW5kZXgpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicGFnaW5hdG9yLWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwicGFnaW5hdG9yLXNpemUtc2VsZWN0b3ItY29udGFpbmVyXCIgKm5nSWY9XCJwYWdlU2l6ZVNlbGVjdG9yXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkXG4gICAgICBhcHBlYXJhbmNlPVwib3V0bGluZVwiXG4gICAgICBjbGFzcz1cInBhZ2luYXRvci1zaXplLXNlbGVjdG9yXCJcbiAgICAgIGRhdGEtY3k9XCJvbmVtcnZhLW1hdC1wYWdpbmF0b3ItcGFnZS1zaXplLXNlbGVjdG9yXCJcbiAgICA+XG4gICAgICA8bWF0LXNlbGVjdCBbdmFsdWVdPVwicGFnZVNpemVEZWZhdWx0T3B0aW9uXCI+XG4gICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgKm5nRm9yPVwibGV0IHNpemUgb2YgcGFnZVNpemVPcHRpb25zXCJcbiAgICAgICAgICBbdmFsdWVdPVwic2l6ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cInBhZ2VTaXplID0gc2l6ZVwiXG4gICAgICAgICAgW2F0dHIuZGF0YS1jeV09XCInb25lbXJ2YS1tYXQtcGFnaW5hdG9yLXBhZ2Utc2l6ZS1vcHRpb24tJyArIHNpemVcIlxuICAgICAgICAgID57eyBzaXplIH19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxkaXY+XG4gICAgICA8c3BhbiBzdHlsZT1cImRpc3BsYXk6IGlubGluZS1ibG9ja1wiPnt7XG4gICAgICAgICdwYWdpbmF0b3IuJyArIHJlY29yZEtleSB8IHRyYW5zbGF0ZVxuICAgICAgfX08L3NwYW4+XG4gICAgICA8bWF0LWRpdmlkZXIgdmVydGljYWw+PC9tYXQtZGl2aWRlcj5cblxuICAgICAge3sgcGFnZUluZGV4ICogcGFnZVNpemUgKyAxIH19IC0ge3sgbWF4UmVjb3JkTnVtYmVyIH19XG4gICAgICA8c3Bhbj57eyAncGFnaW5hdG9yLm91dE9mJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIHt7IGxlbmd0aCB9fVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2XG4gICAgKm5nSWY9XCJwYWdlcy5sZW5ndGggPiAxXCJcbiAgICBjbGFzcz1cIm9uZW1ydmEtbWF0LXBhZ2luYXRvclwiXG4gICAgZGF0YS1jeT1cIm9uZW1ydmEtbWF0LXBhZ2luYXRvclwiXG4gID5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwib25lbXJ2YS1tYXQtcGFnaW5hdG9yLWJ0biBvbmVtcnZhLW1hdC1wYWdpbmF0b3ItYnRuLXByZXZpb3VzXCJcbiAgICAgIGRhdGEtY3k9XCJvbmVtcnZhLW1hdC1wYWdpbmF0b3ItYnRuLXByZXZpb3VzXCJcbiAgICAgIFtkaXNhYmxlZF09XCJwYWdlSW5kZXggPT09IDBcIlxuICAgICAgKGNsaWNrKT1cInBhZ2VJbmRleCA9IHBhZ2VJbmRleCAtIDFcIlxuICAgID5cbiAgICAgIHt7ICdwYWdpbmF0b3IuJyArIHByZXZpb3VzS2V5IHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwib25lbXJ2YS1tYXQtcGFnaW5hdG9yLWJ0biBvbmVtcnZhLW1hdC1wYWdpbmF0b3ItZmlyc3RcIlxuICAgICAgZGF0YS1jeT1cIm9uZW1ydmEtbWF0LXBhZ2luYXRvci1maXJzdFwiXG4gICAgICAqbmdJZj1cInBhZ2VzWzBdID4gMCAmJiB0eXBlID09PSAnY29tcGxleCdcIlxuICAgICAgKGNsaWNrKT1cInBhZ2VJbmRleCA9IDBcIlxuICAgID5cbiAgICAgIDFcbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJvbmVtcnZhLW1hdC1wYWdpbmF0b3ItYnRuIG9uZW1ydmEtbWF0LXBhZ2luYXRvci1idG4tdG9vLW1hbnlcIlxuICAgICAgZGF0YS1jeT1cIm9uZW1ydmEtbWF0LXBhZ2luYXRvci1idG4tdG9vLW1hbnktYmVmb3JlXCJcbiAgICAgICpuZ0lmPVwicGFnZXNbMF0gPiAwXCJcbiAgICAgIChjbGljayk9XCJwYWdlSW5kZXggPSBwYWdlSW5kZXggLSBudW1iZXJPZlJlYWNoYWJsZVBhZ2VzXCJcbiAgICA+XG4gICAgICAuLi5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJvbmVtcnZhLW1hdC1wYWdpbmF0b3ItYnRuIG9uZW1ydmEtbWF0LXBhZ2luYXRvci1idG4tcGFnZVwiXG4gICAgICBbbmdDbGFzc109XCJ7ICdvbmVtcnZhLW1hdC1wYWdpbmF0b3ItY3VycmVudC1pbmRleCc6IHBhZ2VJbmRleCA9PT0gcGFnZSB9XCJcbiAgICAgIGRhdGEtY3k9XCJvbmVtcnZhLW1hdC1wYWdpbmF0b3ItYnRuLXBhZ2VcIlxuICAgICAgKm5nRm9yPVwibGV0IHBhZ2Ugb2YgcGFnZXNcIlxuICAgICAgKGNsaWNrKT1cInBhZ2VJbmRleCA9IHBhZ2VcIlxuICAgID5cbiAgICAgIHt7IHBhZ2UgKyAxIH19XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwib25lbXJ2YS1tYXQtcGFnaW5hdG9yLWJ0biBvbmVtcnZhLW1hdC1wYWdpbmF0b3ItYnRuLXRvby1tYW55XCJcbiAgICAgIGRhdGEtY3k9XCJvbmVtcnZhLW1hdC1wYWdpbmF0b3ItYnRuLXRvby1tYW55LWFmdGVyXCJcbiAgICAgICpuZ0lmPVwicGFnZXNbcGFnZXMubGVuZ3RoIC0gMV0gPCB0b3RhbE51bWJlck9mUGFnZXMgLSAxXCJcbiAgICAgIChjbGljayk9XCJwYWdlSW5kZXggPSBwYWdlSW5kZXggKyBudW1iZXJPZlJlYWNoYWJsZVBhZ2VzXCJcbiAgICA+XG4gICAgICAuLi5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b25cbiAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgY2xhc3M9XCJvbmVtcnZhLW1hdC1wYWdpbmF0b3ItYnRuIG9uZW1ydmEtbWF0LXBhZ2luYXRvci1idG4tbGFzdFwiXG4gICAgICBkYXRhLWN5PVwib25lbXJ2YS1tYXQtcGFnaW5hdG9yLWJ0bi1sYXN0XCJcbiAgICAgICpuZ0lmPVwiXG4gICAgICAgIHBhZ2VzW3BhZ2VzLmxlbmd0aCAtIDFdIDwgdG90YWxOdW1iZXJPZlBhZ2VzIC0gMSAmJiB0eXBlID09PSAnY29tcGxleCdcbiAgICAgIFwiXG4gICAgICAoY2xpY2spPVwicGFnZUluZGV4ID0gdG90YWxOdW1iZXJPZlBhZ2VzIC0gMVwiXG4gICAgPlxuICAgICAge3sgdG90YWxOdW1iZXJPZlBhZ2VzIH19XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwib25lbXJ2YS1tYXQtcGFnaW5hdG9yLWJ0biBvbmVtcnZhLW1hdC1wYWdpbmF0b3ItYnRuLW5leHRcIlxuICAgICAgZGF0YS1jeT1cIm9uZW1ydmEtbWF0LXBhZ2luYXRvci1idG4tbmV4dFwiXG4gICAgICBbZGlzYWJsZWRdPVwicGFnZUluZGV4ID49IHRvdGFsTnVtYmVyT2ZQYWdlcyAtIDFcIlxuICAgICAgKGNsaWNrKT1cInBhZ2VJbmRleCA9IHBhZ2VJbmRleCArIDFcIlxuICAgID5cbiAgICAgIHt7ICdwYWdpbmF0b3IuJyArIG5leHRLZXkgfCB0cmFuc2xhdGUgfX1cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|