@ti-tecnologico-de-monterrey-oficial/ds-ng 1.5.1117-a → 1.5.1117-b
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/bmb-alert-center/bmb-alert-center.component.mjs +15 -10
- package/esm2022/lib/components/bmb-calendar/bmb-calendar.component.mjs +26 -3
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-header/bmb-calendar-header.component.mjs +2 -3
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-schedule-cards/bmb-calendar-schedule-cards.component.mjs +3 -3
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-month/bmb-calendar-template-month.component.mjs +3 -3
- package/esm2022/lib/components/bmb-calendar/common/bmb-calendar-template-week/bmb-calendar-template-week.component.mjs +3 -3
- package/esm2022/lib/components/bmb-checkbox/bmb-checkbox.component.mjs +3 -3
- package/esm2022/lib/components/bmb-filter-card/bmb-filter-card.component.mjs +3 -3
- package/esm2022/lib/components/bmb-filter-card/bmb-filter-card.interface.mjs +1 -1
- package/esm2022/lib/components/bmb-modal/bmb-modal.interface.mjs +1 -1
- package/esm2022/lib/components/bmb-modal/bmb-native-modal.component.mjs +17 -9
- package/esm2022/lib/components/bmb-portal/bmb-portal.component.mjs +3 -3
- package/esm2022/lib/components/bmb-radial/bmb-radial.component.mjs +3 -3
- package/esm2022/lib/components/bmb-step-progress-bar/bmb-step-progress-bar.component.mjs +3 -3
- package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs +68 -35
- package/fesm2022/ti-tecnologico-de-monterrey-oficial-ds-ng.mjs.map +1 -1
- package/lib/components/bmb-alert-center/bmb-alert-center.component.d.ts +3 -3
- package/lib/components/bmb-calendar/bmb-calendar.component.d.ts +2 -0
- package/lib/components/bmb-filter-card/bmb-filter-card.interface.d.ts +2 -0
- package/lib/components/bmb-modal/bmb-modal.interface.d.ts +4 -1
- package/lib/components/bmb-modal/bmb-native-modal.component.d.ts +6 -5
- package/package.json +2 -2
|
@@ -7,17 +7,16 @@ import { DateTime } from 'luxon';
|
|
|
7
7
|
import { BmbAlertCenterFormComponent } from './bmb-alert-center-form/bmb-alert-center-form.component';
|
|
8
8
|
import { BmbButtonDirective } from '../../directives/bmb-button/button.directive';
|
|
9
9
|
import { BmbImageComponent } from '../bmb-image/bmb-image.component';
|
|
10
|
-
import { BmbModalComponent } from '../bmb-modal/bmb-modal.component';
|
|
11
10
|
import { BmbAlertCenterAdsComponent } from './bmb-alert-center-ads/bmb-alert-center-ads.component';
|
|
12
11
|
import { BmbAlertCenterEmptyComponent } from './bmb-alert-center-empty/bmb-alert-center-empty.component';
|
|
13
12
|
import { BmbLoaderComponent } from '../bmb-loader/bmb-loader.component';
|
|
14
13
|
import * as i0 from "@angular/core";
|
|
15
|
-
import * as i1 from "
|
|
14
|
+
import * as i1 from "../../services/native-modal.service";
|
|
16
15
|
import * as i2 from "./bmb-alert-center.service";
|
|
17
16
|
import * as i3 from "@angular/common";
|
|
18
17
|
export class BmbAlertCenterComponent {
|
|
19
|
-
constructor(
|
|
20
|
-
this.
|
|
18
|
+
constructor(nativeModalService, bmbAlertCenterService) {
|
|
19
|
+
this.nativeModalService = nativeModalService;
|
|
21
20
|
this.bmbAlertCenterService = bmbAlertCenterService;
|
|
22
21
|
this.dateFormat = input('dd/MM/yyyy');
|
|
23
22
|
this.tabsName = input([
|
|
@@ -125,17 +124,23 @@ export class BmbAlertCenterComponent {
|
|
|
125
124
|
title: item.title,
|
|
126
125
|
content: this.detailContent,
|
|
127
126
|
size: 'small',
|
|
128
|
-
type: 'informative',
|
|
129
127
|
scrollable: true,
|
|
130
|
-
|
|
128
|
+
actions: [{
|
|
129
|
+
buttonName: 'close',
|
|
130
|
+
label: 'Cerrar',
|
|
131
|
+
appearance: 'secondary-outlined',
|
|
132
|
+
action: this.handleCloseDetail.bind(this, item),
|
|
133
|
+
}],
|
|
134
|
+
closeModalClicked: this.handleCloseDetail.bind(this, item),
|
|
131
135
|
};
|
|
132
|
-
this.
|
|
136
|
+
this.nativeModalService.openModal(data);
|
|
133
137
|
}
|
|
134
138
|
this.showAlertDetail.emit(alertData);
|
|
135
139
|
}
|
|
136
140
|
handleCloseDetail(alert) {
|
|
137
141
|
const { pDate, ...alertData } = alert;
|
|
138
142
|
this.closeAlertDetail.emit(alertData);
|
|
143
|
+
this.nativeModalService.closeAllModals();
|
|
139
144
|
}
|
|
140
145
|
handleAlertEvent(alert) {
|
|
141
146
|
this.alertEvent.emit(alert);
|
|
@@ -169,7 +174,7 @@ export class BmbAlertCenterComponent {
|
|
|
169
174
|
event: eventType,
|
|
170
175
|
});
|
|
171
176
|
}
|
|
172
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbAlertCenterComponent, deps: [{ token: i1.
|
|
177
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbAlertCenterComponent, deps: [{ token: i1.BmbNativeModalService }, { token: i2.BmbAlertCenterService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
173
178
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: BmbAlertCenterComponent, isStandalone: true, selector: "bmb-alert-center", inputs: { dateFormat: { classPropertyName: "dateFormat", publicName: "dateFormat", isSignal: true, isRequired: false, transformFunction: null }, tabsName: { classPropertyName: "tabsName", publicName: "tabsName", isSignal: true, isRequired: false, transformFunction: null }, hideTabs: { classPropertyName: "hideTabs", publicName: "hideTabs", isSignal: true, isRequired: false, transformFunction: null }, enableMultipleSelection: { classPropertyName: "enableMultipleSelection", publicName: "enableMultipleSelection", isSignal: true, isRequired: false, transformFunction: null }, showMobileVersion: { classPropertyName: "showMobileVersion", publicName: "showMobileVersion", isSignal: true, isRequired: false, transformFunction: null }, emptyStateData: { classPropertyName: "emptyStateData", publicName: "emptyStateData", isSignal: true, isRequired: false, transformFunction: null }, alerts: { classPropertyName: "alerts", publicName: "alerts", isSignal: true, isRequired: false, transformFunction: null }, advertisements: { classPropertyName: "advertisements", publicName: "advertisements", isSignal: true, isRequired: false, transformFunction: null }, selectedTab: { classPropertyName: "selectedTab", publicName: "selectedTab", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onChangeAlertStatus: "onChangeAlertStatus", alertEvent: "alertEvent", showAlertDetail: "showAlertDetail", closeAlertDetail: "closeAlertDetail", navigationBarEvents: "navigationBarEvents", selectedTab: "selectedTabChange" }, viewQueries: [{ propertyName: "detailContent", first: true, predicate: ["detailContent"], descendants: true, read: TemplateRef }, { propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<section class=\"bmb_alert-center\" #container bmbLayout margin=\"none\">\n <div\n bmbLayoutItem\n [colSm]=\"4\"\n [colLg]=\"showMobileVersion() ? 12 : 5\"\n class=\"bmb_alert-center-main\"\n [ngClass]=\"{ 'bmb_alert-center-main-no-border': showMobileVersion() }\"\n >\n @if (isLoading()) {\n <bmb-loader\n title=\"Cargando...\"\n subtitle=\"Cargando las notificaciones\"\n [overlay]=\"false\"\n [isVisible]=\"true\"\n [errorState]=\"false\"\n appearance=\"normal\"\n icon=\"wifi_off\"\n [actions]=\"false\"\n buttonPrimary=\"Reintentar\"\n buttonSecondary=\"Salir\"\n [showInline]=\"true\"\n />\n } @else {\n @if (!hideTabs()) {\n <bmb-tabs [tabs]=\"tabs()\" [(selectedTabId)]=\"selectedTab\" />\n }\n @if (selectedTab() === 1) {\n <bmb-alert-center-form\n (showAlertDetail)=\"handleShowAlert($event)\"\n [eventsInCategories]=\"eventsInCategories()\"\n [enableMultipleSelection]=\"enableMultipleSelection()\"\n (changeAlertStatus)=\"handleChangeAlertStatus($event)\"\n [emptyStateData]=\"emptyStateData()\"\n (navigationBarEvents)=\"handleNavigationBarEvents($event)\"\n filterBy=\"all\"\n />\n } @else if (selectedTab() === 2) {\n <bmb-alert-center-form\n (showAlertDetail)=\"handleShowAlert($event)\"\n [eventsInCategories]=\"eventsInCategories()\"\n [enableMultipleSelection]=\"enableMultipleSelection()\"\n (changeAlertStatus)=\"handleChangeAlertStatus($event)\"\n [emptyStateData]=\"emptyStateData()\"\n (navigationBarEvents)=\"handleNavigationBarEvents($event)\"\n filterBy=\"unread\"\n />\n } @else if (selectedTab() === 3) {\n <bmb-alert-center-form\n (showAlertDetail)=\"handleShowAlert($event)\"\n [eventsInCategories]=\"eventsInCategories()\"\n [enableMultipleSelection]=\"enableMultipleSelection()\"\n (changeAlertStatus)=\"handleChangeAlertStatus($event)\"\n [emptyStateData]=\"emptyStateData()\"\n (navigationBarEvents)=\"handleNavigationBarEvents($event)\"\n filterBy=\"favorites\"\n />\n } @else if (selectedTab() === 4) {\n <bmb-alert-center-form\n (showAlertDetail)=\"handleShowAlert($event)\"\n [eventsInCategories]=\"eventsInCategories()\"\n (changeAlertStatus)=\"handleChangeAlertStatus($event)\"\n [emptyStateData]=\"emptyStateData()\"\n (navigationBarEvents)=\"handleNavigationBarEvents($event)\"\n filterBy=\"archived\"\n />\n } @else if (selectedTab() === 5) {\n <bmb-alert-center-ads\n [advertisements]=\"advertisementsList()\"\n (alertEvent)=\"handleAlertEvent($event)\"\n />\n } @else {\n <section bmbLayoutItem [colSm]=\"4\" [colLg]=\"12\">\n <bmb-alert-center-empty [data]=\"emptyStateData()\" />\n </section>\n }\n }\n </div>\n @if (!showMobileVersion() && alertList().length) {\n <section\n class=\"bmb_alert-center-content\"\n bmbLayoutItem\n [colSm]=\"4\"\n [colLg]=\"7\"\n >\n <ng-container [ngTemplateOutlet]=\"detailContent\" />\n </section>\n }\n</section>\n\n<ng-template #detailContent>\n @if (visibleAlert) {\n <section class=\"bmb_alert-center-content-modal\">\n <h1 class=\"font-bold-7 bmb_alert-center-content-modal-title\">\n {{ visibleAlert.title }}\n </h1>\n @for (item of visibleAlert.description; track $index) {\n @switch (item.type) {\n @case (\"paragraph\") {\n <p\n [ngClass]=\"'bmb_alert-center-content-' + (item.style ?? 'normal')\"\n >\n {{ item.text }}\n </p>\n }\n @case (\"image\") {\n <bmb-image\n [src]=\"item.href || ''\"\n [alt]=\"item.text\"\n borderRadius=\"none\"\n />\n }\n @case (\"video\") {\n <video [src]=\"item.href\" controls></video>\n }\n @case (\"title\") {\n <h3\n [ngClass]=\"'bmb_alert-center-content-' + (item.style ?? 'normal')\"\n >\n {{ item.text }}\n </h3>\n }\n @case (\"button\") {\n <button\n bmbButton\n type=\"button\"\n [appearance]=\"item.variant ?? 'primary'\"\n (click)=\"\n item.event\n ? item?.event(visibleAlert.id)\n : handleAlertEvent(visibleAlert)\n \"\n >\n {{ item.text }}\n </button>\n }\n @case (\"link\") {\n <a\n [ngClass]=\"'bmb_alert-center-content-' + (item.style ?? 'normal')\"\n [href]=\"item.href\"\n >{{ item.text }}</a\n >\n }\n }\n }\n </section>\n }\n</ng-template>\n", styles: ["@font-face{font-family:Poppins-Thin;font-style:normal;font-weight:100;src:url(/assets/fonts/Poppins/Poppins-Thin.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Medium;font-style:normal;font-weight:500;src:url(/assets/fonts/Poppins/Poppins-Medium.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Semibold;font-style:normal;font-weight:600;src:url(/assets/fonts/Poppins/Poppins-SemiBold.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_alert-center{height:100%;container-type:inline-size}.bmb_alert-center-main,.bmb_alert-center-content{height:100%}.bmb_alert-center-main{position:relative}@media (min-width: 1000px){.bmb_alert-center-main{border-right:.0625rem solid var(--general_contrasts-15)}}.bmb_alert-center-main-no-border{border-right:none!important}.bmb_alert-center .bmb-bottom-navigation-bar{justify-content:center}.bmb_alert-center .bmb-bottom-navigation-bar .bmb_interactive_icon-icon{height:auto;width:auto}.bmb_alert-center-content{display:flex;flex-direction:column;gap:var(--bmb-spacing-m);padding:var(--bmb-spacing-m);overflow:auto}@container (max-width: 350px){.bmb_alert-center-content{display:none}}@media (max-width: 1000px){.bmb_alert-center-content{display:none}}.bmb_alert-center-content-modal{display:flex;flex-direction:column;gap:var(--bmb-spacing-m);padding:var(--bmb-spacing-m)}@media (max-width: 1001px){.bmb_alert-center-content-modal-title{display:none}}.bmb_alert-center-content figure,.bmb_alert-center-content p{margin:0}.bmb_alert-center-content figure img,.bmb_alert-center-content p img{max-width:100%}\n"], dependencies: [{ kind: "component", type: BmbTabsComponent, selector: "bmb-tabs", inputs: ["appearanceContrast", "format", "tabs", "selectedTabId"], outputs: ["selectedTabIdChange", "selected"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: BmbLayoutDirective, selector: "[bmbLayout]", inputs: ["gapSize", "margin", "dynamicCols", "justify", "alignItems"] }, { kind: "directive", type: BmbLayoutItemDirective, selector: "[bmbLayoutItem]", inputs: ["colSm", "colLg", "marginLeft", "marginRight", "colGrow", "isDynamicItem"] }, { kind: "component", type: BmbAlertCenterFormComponent, selector: "bmb-alert-center-form", inputs: ["eventsInCategories", "filterBy", "enableMultipleSelection", "emptyStateData"], outputs: ["showAlertDetail", "changeAlertStatus", "navigationBarEvents"] }, { kind: "directive", type: BmbButtonDirective, selector: "[bmbButton]", inputs: ["icon", "iconSize", "position", "case", "appearance", "size", "isToggleActive", "enableButtonToggle", "isRounded", "isMobile", "iconAlt"] }, { kind: "component", type: BmbImageComponent, selector: "bmb-image", inputs: ["src", "mobileSrc", "alt", "width", "ratio", "borderRadius", "loading", "enableZoom", "isBlurredBackdrop"] }, { kind: "component", type: BmbAlertCenterAdsComponent, selector: "bmb-alert-center-ads", inputs: ["advertisements", "emptyStateData"], outputs: ["alertEvent"] }, { kind: "component", type: BmbAlertCenterEmptyComponent, selector: "bmb-alert-center-empty", inputs: ["data"] }, { kind: "component", type: BmbLoaderComponent, selector: "bmb-loader", inputs: ["appearance", "title", "icon", "subtitle", "overlay", "isVisible", "errorState", "actions", "buttonPrimary", "buttonSecondary", "showInline"], outputs: ["onButtonPrimary", "onButtonSecondary"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
174
179
|
}
|
|
175
180
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BmbAlertCenterComponent, decorators: [{
|
|
@@ -186,11 +191,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
186
191
|
BmbAlertCenterEmptyComponent,
|
|
187
192
|
BmbLoaderComponent,
|
|
188
193
|
], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<section class=\"bmb_alert-center\" #container bmbLayout margin=\"none\">\n <div\n bmbLayoutItem\n [colSm]=\"4\"\n [colLg]=\"showMobileVersion() ? 12 : 5\"\n class=\"bmb_alert-center-main\"\n [ngClass]=\"{ 'bmb_alert-center-main-no-border': showMobileVersion() }\"\n >\n @if (isLoading()) {\n <bmb-loader\n title=\"Cargando...\"\n subtitle=\"Cargando las notificaciones\"\n [overlay]=\"false\"\n [isVisible]=\"true\"\n [errorState]=\"false\"\n appearance=\"normal\"\n icon=\"wifi_off\"\n [actions]=\"false\"\n buttonPrimary=\"Reintentar\"\n buttonSecondary=\"Salir\"\n [showInline]=\"true\"\n />\n } @else {\n @if (!hideTabs()) {\n <bmb-tabs [tabs]=\"tabs()\" [(selectedTabId)]=\"selectedTab\" />\n }\n @if (selectedTab() === 1) {\n <bmb-alert-center-form\n (showAlertDetail)=\"handleShowAlert($event)\"\n [eventsInCategories]=\"eventsInCategories()\"\n [enableMultipleSelection]=\"enableMultipleSelection()\"\n (changeAlertStatus)=\"handleChangeAlertStatus($event)\"\n [emptyStateData]=\"emptyStateData()\"\n (navigationBarEvents)=\"handleNavigationBarEvents($event)\"\n filterBy=\"all\"\n />\n } @else if (selectedTab() === 2) {\n <bmb-alert-center-form\n (showAlertDetail)=\"handleShowAlert($event)\"\n [eventsInCategories]=\"eventsInCategories()\"\n [enableMultipleSelection]=\"enableMultipleSelection()\"\n (changeAlertStatus)=\"handleChangeAlertStatus($event)\"\n [emptyStateData]=\"emptyStateData()\"\n (navigationBarEvents)=\"handleNavigationBarEvents($event)\"\n filterBy=\"unread\"\n />\n } @else if (selectedTab() === 3) {\n <bmb-alert-center-form\n (showAlertDetail)=\"handleShowAlert($event)\"\n [eventsInCategories]=\"eventsInCategories()\"\n [enableMultipleSelection]=\"enableMultipleSelection()\"\n (changeAlertStatus)=\"handleChangeAlertStatus($event)\"\n [emptyStateData]=\"emptyStateData()\"\n (navigationBarEvents)=\"handleNavigationBarEvents($event)\"\n filterBy=\"favorites\"\n />\n } @else if (selectedTab() === 4) {\n <bmb-alert-center-form\n (showAlertDetail)=\"handleShowAlert($event)\"\n [eventsInCategories]=\"eventsInCategories()\"\n (changeAlertStatus)=\"handleChangeAlertStatus($event)\"\n [emptyStateData]=\"emptyStateData()\"\n (navigationBarEvents)=\"handleNavigationBarEvents($event)\"\n filterBy=\"archived\"\n />\n } @else if (selectedTab() === 5) {\n <bmb-alert-center-ads\n [advertisements]=\"advertisementsList()\"\n (alertEvent)=\"handleAlertEvent($event)\"\n />\n } @else {\n <section bmbLayoutItem [colSm]=\"4\" [colLg]=\"12\">\n <bmb-alert-center-empty [data]=\"emptyStateData()\" />\n </section>\n }\n }\n </div>\n @if (!showMobileVersion() && alertList().length) {\n <section\n class=\"bmb_alert-center-content\"\n bmbLayoutItem\n [colSm]=\"4\"\n [colLg]=\"7\"\n >\n <ng-container [ngTemplateOutlet]=\"detailContent\" />\n </section>\n }\n</section>\n\n<ng-template #detailContent>\n @if (visibleAlert) {\n <section class=\"bmb_alert-center-content-modal\">\n <h1 class=\"font-bold-7 bmb_alert-center-content-modal-title\">\n {{ visibleAlert.title }}\n </h1>\n @for (item of visibleAlert.description; track $index) {\n @switch (item.type) {\n @case (\"paragraph\") {\n <p\n [ngClass]=\"'bmb_alert-center-content-' + (item.style ?? 'normal')\"\n >\n {{ item.text }}\n </p>\n }\n @case (\"image\") {\n <bmb-image\n [src]=\"item.href || ''\"\n [alt]=\"item.text\"\n borderRadius=\"none\"\n />\n }\n @case (\"video\") {\n <video [src]=\"item.href\" controls></video>\n }\n @case (\"title\") {\n <h3\n [ngClass]=\"'bmb_alert-center-content-' + (item.style ?? 'normal')\"\n >\n {{ item.text }}\n </h3>\n }\n @case (\"button\") {\n <button\n bmbButton\n type=\"button\"\n [appearance]=\"item.variant ?? 'primary'\"\n (click)=\"\n item.event\n ? item?.event(visibleAlert.id)\n : handleAlertEvent(visibleAlert)\n \"\n >\n {{ item.text }}\n </button>\n }\n @case (\"link\") {\n <a\n [ngClass]=\"'bmb_alert-center-content-' + (item.style ?? 'normal')\"\n [href]=\"item.href\"\n >{{ item.text }}</a\n >\n }\n }\n }\n </section>\n }\n</ng-template>\n", styles: ["@font-face{font-family:Poppins-Thin;font-style:normal;font-weight:100;src:url(/assets/fonts/Poppins/Poppins-Thin.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Light;font-style:normal;font-weight:300;src:url(/assets/fonts/Poppins/Poppins-ExtraLight.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Regular;font-style:normal;font-weight:400;src:url(/assets/fonts/Poppins/Poppins-Regular.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Medium;font-style:normal;font-weight:500;src:url(/assets/fonts/Poppins/Poppins-Medium.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Semibold;font-style:normal;font-weight:600;src:url(/assets/fonts/Poppins/Poppins-SemiBold.ttf) format(\"truetype\")}@font-face{font-family:Poppins-Bold;font-style:normal;font-weight:700;src:url(/assets/fonts/Poppins/Poppins-Bold.ttf) format(\"truetype\")}:root,:host{--font-display: \"Poppins-Regular\", sans-serif}.font-thin-1{font-family:Poppins-Thin,sans-serif;font-size:.625rem}.font-light-1{font-family:Poppins-Light,sans-serif;font-size:.625rem}.font-regular-1{font-family:Poppins-Regular,sans-serif;font-size:.625rem}.font-medium-1{font-family:Poppins-Medium,sans-serif;font-size:.625rem}.font-semibold-1{font-family:Poppins-Semibold,sans-serif;font-size:.625rem}.font-bold-1{font-family:Poppins-Bold,sans-serif;font-size:.625rem}.font-thin-2{font-family:Poppins-Thin,sans-serif;font-size:.6875rem}.font-light-2{font-family:Poppins-Light,sans-serif;font-size:.6875rem}.font-regular-2{font-family:Poppins-Regular,sans-serif;font-size:.6875rem}.font-medium-2{font-family:Poppins-Medium,sans-serif;font-size:.6875rem}.font-semibold-2{font-family:Poppins-Semibold,sans-serif;font-size:.6875rem}.font-bold-2{font-family:Poppins-Bold,sans-serif;font-size:.6875rem}.font-thin-3{font-family:Poppins-Thin,sans-serif;font-size:.75rem}.font-light-3{font-family:Poppins-Light,sans-serif;font-size:.75rem}.font-regular-3{font-family:Poppins-Regular,sans-serif;font-size:.75rem}.font-medium-3{font-family:Poppins-Medium,sans-serif;font-size:.75rem}.font-semibold-3{font-family:Poppins-Semibold,sans-serif;font-size:.75rem}.font-bold-3{font-family:Poppins-Bold,sans-serif;font-size:.75rem}.font-thin-4{font-family:Poppins-Thin,sans-serif;font-size:.875rem}.font-light-4{font-family:Poppins-Light,sans-serif;font-size:.875rem}.font-regular-4{font-family:Poppins-Regular,sans-serif;font-size:.875rem}.font-medium-4{font-family:Poppins-Medium,sans-serif;font-size:.875rem}.font-semibold-4{font-family:Poppins-Semibold,sans-serif;font-size:.875rem}.font-bold-4{font-family:Poppins-Bold,sans-serif;font-size:.875rem}.font-thin-4_5{font-family:Poppins-Thin,sans-serif;font-size:.9375rem}.font-light-4_5{font-family:Poppins-Light,sans-serif;font-size:.9375rem}.font-regular-4_5{font-family:Poppins-Regular,sans-serif;font-size:.9375rem}.font-medium-4_5{font-family:Poppins-Medium,sans-serif;font-size:.9375rem}.font-semibold-4_5{font-family:Poppins-Semibold,sans-serif;font-size:.9375rem}.font-bold-4_5{font-family:Poppins-Bold,sans-serif;font-size:.9375rem}.font-thin-5{font-family:Poppins-Thin,sans-serif;font-size:1rem}.font-light-5{font-family:Poppins-Light,sans-serif;font-size:1rem}.font-regular-5{font-family:Poppins-Regular,sans-serif;font-size:1rem}.font-medium-5{font-family:Poppins-Medium,sans-serif;font-size:1rem}.font-semibold-5{font-family:Poppins-Semibold,sans-serif;font-size:1rem}.font-bold-5{font-family:Poppins-Bold,sans-serif;font-size:1rem}.font-thin-6{font-family:Poppins-Thin,sans-serif;font-size:1.125rem}.font-light-6{font-family:Poppins-Light,sans-serif;font-size:1.125rem}.font-regular-6{font-family:Poppins-Regular,sans-serif;font-size:1.125rem}.font-medium-6{font-family:Poppins-Medium,sans-serif;font-size:1.125rem}.font-semibold-6{font-family:Poppins-Semibold,sans-serif;font-size:1.125rem}.font-bold-6{font-family:Poppins-Bold,sans-serif;font-size:1.125rem}.font-thin-7{font-family:Poppins-Thin,sans-serif;font-size:1.25rem}.font-light-7{font-family:Poppins-Light,sans-serif;font-size:1.25rem}.font-regular-7{font-family:Poppins-Regular,sans-serif;font-size:1.25rem}.font-medium-7{font-family:Poppins-Medium,sans-serif;font-size:1.25rem}.font-semibold-7{font-family:Poppins-Semibold,sans-serif;font-size:1.25rem}.font-bold-7{font-family:Poppins-Bold,sans-serif;font-size:1.25rem}.font-thin-8{font-family:Poppins-Thin,sans-serif;font-size:1.375rem}.font-light-8{font-family:Poppins-Light,sans-serif;font-size:1.375rem}.font-regular-8{font-family:Poppins-Regular,sans-serif;font-size:1.375rem}.font-medium-8{font-family:Poppins-Medium,sans-serif;font-size:1.375rem}.font-semibold-8{font-family:Poppins-Semibold,sans-serif;font-size:1.375rem}.font-bold-8{font-family:Poppins-Bold,sans-serif;font-size:1.375rem}.font-thin-9{font-family:Poppins-Thin,sans-serif;font-size:1.5rem}.font-light-9{font-family:Poppins-Light,sans-serif;font-size:1.5rem}.font-regular-9{font-family:Poppins-Regular,sans-serif;font-size:1.5rem}.font-medium-9{font-family:Poppins-Medium,sans-serif;font-size:1.5rem}.font-semibold-9{font-family:Poppins-Semibold,sans-serif;font-size:1.5rem}.font-bold-9{font-family:Poppins-Bold,sans-serif;font-size:1.5rem}.font-thin-10{font-family:Poppins-Thin,sans-serif;font-size:1.625rem}.font-light-10{font-family:Poppins-Light,sans-serif;font-size:1.625rem}.font-regular-10{font-family:Poppins-Regular,sans-serif;font-size:1.625rem}.font-medium-10{font-family:Poppins-Medium,sans-serif;font-size:1.625rem}.font-semibold-10{font-family:Poppins-Semibold,sans-serif;font-size:1.625rem}.font-bold-10{font-family:Poppins-Bold,sans-serif;font-size:1.625rem}.font-thin-11{font-family:Poppins-Thin,sans-serif;font-size:2.25rem}.font-light-11{font-family:Poppins-Light,sans-serif;font-size:2.25rem}.font-regular-11{font-family:Poppins-Regular,sans-serif;font-size:2.25rem}.font-medium-11{font-family:Poppins-Medium,sans-serif;font-size:2.25rem}.font-semibold-11{font-family:Poppins-Semibold,sans-serif;font-size:2.25rem}.font-bold-11{font-family:Poppins-Bold,sans-serif;font-size:2.25rem}.font-thin-12{font-family:Poppins-Thin,sans-serif;font-size:3rem}.font-light-12{font-family:Poppins-Light,sans-serif;font-size:3rem}.font-regular-12{font-family:Poppins-Regular,sans-serif;font-size:3rem}.font-medium-12{font-family:Poppins-Medium,sans-serif;font-size:3rem}.font-semibold-12{font-family:Poppins-Semibold,sans-serif;font-size:3rem}.font-bold-12{font-family:Poppins-Bold,sans-serif;font-size:3rem}.bmb_alert-center{height:100%;container-type:inline-size}.bmb_alert-center-main,.bmb_alert-center-content{height:100%}.bmb_alert-center-main{position:relative}@media (min-width: 1000px){.bmb_alert-center-main{border-right:.0625rem solid var(--general_contrasts-15)}}.bmb_alert-center-main-no-border{border-right:none!important}.bmb_alert-center .bmb-bottom-navigation-bar{justify-content:center}.bmb_alert-center .bmb-bottom-navigation-bar .bmb_interactive_icon-icon{height:auto;width:auto}.bmb_alert-center-content{display:flex;flex-direction:column;gap:var(--bmb-spacing-m);padding:var(--bmb-spacing-m);overflow:auto}@container (max-width: 350px){.bmb_alert-center-content{display:none}}@media (max-width: 1000px){.bmb_alert-center-content{display:none}}.bmb_alert-center-content-modal{display:flex;flex-direction:column;gap:var(--bmb-spacing-m);padding:var(--bmb-spacing-m)}@media (max-width: 1001px){.bmb_alert-center-content-modal-title{display:none}}.bmb_alert-center-content figure,.bmb_alert-center-content p{margin:0}.bmb_alert-center-content figure img,.bmb_alert-center-content p img{max-width:100%}\n"] }]
|
|
189
|
-
}], ctorParameters: () => [{ type: i1.
|
|
194
|
+
}], ctorParameters: () => [{ type: i1.BmbNativeModalService }, { type: i2.BmbAlertCenterService }], propDecorators: { detailContent: [{
|
|
190
195
|
type: ViewChild,
|
|
191
196
|
args: ['detailContent', { read: TemplateRef }]
|
|
192
197
|
}], container: [{
|
|
193
198
|
type: ViewChild,
|
|
194
199
|
args: ['container']
|
|
195
200
|
}] } });
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWFsZXJ0LWNlbnRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1uZy9zcmMvbGliL2NvbXBvbmVudHMvYm1iLWFsZXJ0LWNlbnRlci9ibWItYWxlcnQtY2VudGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItYWxlcnQtY2VudGVyL2JtYi1hbGVydC1jZW50ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBVyxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBWXRHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR3JFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ25HLE9BQU8sRUFBRSw0QkFBNEIs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LElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDeEUsTUFBTSxTQUFTLEdBQUcsbUJBQW1CO1lBQ25DLENBQUMsQ0FBQyxPQUFPLFNBQVMsRUFBRTtZQUNwQixDQUFDLENBQUMsVUFBVSxTQUFTLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO1lBQzVCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsS0FBSyxFQUFFLFNBQTJDO1NBQ25ELENBQUMsQ0FBQztJQUNMLENBQUM7K0dBakxVLHVCQUF1QjttR0FBdkIsdUJBQXVCLDRwREFnQ0UsV0FBVyxzSEMzRmpELHEvSkFtSkEsbTZPRHhHSSxnQkFBZ0IscUtBQ2hCLFlBQVksb1NBQ1osa0JBQWtCLCtIQUNsQixzQkFBc0IsaUpBQ3RCLDJCQUEyQixxT0FDM0Isa0JBQWtCLDRNQUNsQixpQkFBaUIsMktBQ2pCLDBCQUEwQix3SUFDMUIsNEJBQTRCLHFGQUM1QixrQkFBa0I7OzRGQU9ULHVCQUF1QjtrQkFwQm5DLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUDt3QkFDUCxnQkFBZ0I7d0JBQ2hCLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQixzQkFBc0I7d0JBQ3RCLDJCQUEyQjt3QkFDM0Isa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLDBCQUEwQjt3QkFDMUIsNEJBQTRCO3dCQUM1QixrQkFBa0I7cUJBQ25CLGlCQUdjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07a0hBbUMvQyxhQUFhO3NCQURaLFNBQVM7dUJBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFFekIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGNvbXB1dGVkLFxuICBtb2RlbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCbWJUYWJzQ29tcG9uZW50LCBJQm1iVGFiIH0gZnJvbSAnLi4vYm1iLXRhYnMvYm1iLXRhYnMuY29tcG9uZW50JztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBCbWJMYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2JtYi1sYXlvdXQvYm1iLWxheW91dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQm1iTGF5b3V0SXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvYm1iLWxheW91dC9ibWItbGF5b3V0LWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nO1xuaW1wb3J0IHsgQm1iQWxlcnRDZW50ZXJGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9ibWItYWxlcnQtY2VudGVyLWZvcm0vYm1iLWFsZXJ0LWNlbnRlci1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBJQm1iRGF0YUFsZXJ0LFxuICBJQm1iRGF0YUFsZXJ0c1BhcnNlZCxcbiAgSUJtYkFsZXJ0Q2VudGVyQ2F0ZWdvcmllcyxcbiAgSUJtYkRhdGFBbGVydHNPdXRwdXQsXG4gIElCbWJBbGVydEVtcHR5U3RhdGUsXG4gIElCbWJBbGVydENlbnRlclRhYkNvbmZpZyxcbiAgSUJtYkFsZXJ0Q2VudGVyRm9vdGVyRXZlbnQsXG4gIElCbWJBbGVydENlbnRlclByb3RvRXZlbnRGb290ZXIsXG4gIElCbWJBbGVydENlbnRlckZvb3RlckV2ZW50TmFtZSxcbn0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBCbWJCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2JtYi1idXR0b24vYnV0dG9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBCbWJJbWFnZUNvbXBvbmVudCB9IGZyb20gJy4uL2JtYi1pbWFnZS9ibWItaW1hZ2UuY29tcG9uZW50JztcbmltcG9ydCB7IEJtYk1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vYm1iLW1vZGFsL2JtYi1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kYWxEYXRhQ29uZmlnIH0gZnJvbSAnLi4vYm1iLW1vZGFsL2JtYi1tb2RhbC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEJtYkFsZXJ0Q2VudGVyQWRzQ29tcG9uZW50IH0gZnJvbSAnLi9ibWItYWxlcnQtY2VudGVyLWFkcy9ibWItYWxlcnQtY2VudGVyLWFkcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQm1iQWxlcnRDZW50ZXJFbXB0eUNvbXBvbmVudCB9IGZyb20gJy4vYm1iLWFsZXJ0LWNlbnRlci1lbXB0eS9ibWItYWxlcnQtY2VudGVyLWVtcHR5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCbWJBbGVydENlbnRlclNlcnZpY2UgfSBmcm9tICcuL2JtYi1hbGVydC1jZW50ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBCbWJMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi9ibWItbG9hZGVyL2JtYi1sb2FkZXIuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYm1iLWFsZXJ0LWNlbnRlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBCbWJUYWJzQ29tcG9uZW50LFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBCbWJMYXlvdXREaXJlY3RpdmUsXG4gICAgQm1iTGF5b3V0SXRlbURpcmVjdGl2ZSxcbiAgICBCbWJBbGVydENlbnRlckZvcm1Db21wb25lbnQsXG4gICAgQm1iQnV0dG9uRGlyZWN0aXZlLFxuICAgIEJtYkltYWdlQ29tcG9uZW50LFxuICAgIEJtYkFsZXJ0Q2VudGVyQWRzQ29tcG9uZW50LFxuICAgIEJtYkFsZXJ0Q2VudGVyRW1wdHlDb21wb25lbnQsXG4gICAgQm1iTG9hZGVyQ29tcG9uZW50LFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vYm1iLWFsZXJ0LWNlbnRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9ibWItYWxlcnQtY2VudGVyLmNvbXBvbmVudC5zY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEJtYkFsZXJ0Q2VudGVyQ29tcG9uZW50IHtcbiAgZGF0ZUZvcm1hdCA9IGlucHV0PHN0cmluZz4oJ2RkL01NL3l5eXknKTtcbiAgdGFic05hbWUgPSBpbnB1dDxzdHJpbmdbXSB8IElCbWJBbGVydENlbnRlclRhYkNvbmZpZ1tdPihbXG4gICAgeyB0aXRsZTogJ05vdGlmaWNhY2lvbmVzJywgaXNNb2JpbGU6IHRydWUsIGlzRGVza3RvcDogdHJ1ZSB9LFxuICAgIHsgdGl0bGU6ICdObyBsZcOtZG9zJywgaXNNb2JpbGU6IGZhbHNlLCBpc0Rlc2t0b3A6IHRydWUgfSxcbiAgICB7IHRpdGxlOiAnRmF2b3JpdG9zJywgaXNNb2JpbGU6IGZhbHNlLCBpc0Rlc2t0b3A6IHRydWUgfSxcbiAgICB7IHRpdGxlOiAnQXJjaGl2YWRvcycsIGlzTW9iaWxlOiBmYWxzZSwgaXNEZXNrdG9wOiB0cnVlIH0sXG4gICAgeyB0aXRsZTogJ0FudW5jaW9zJywgaXNNb2JpbGU6IHRydWUsIGlzRGVza3RvcDogdHJ1ZSB9LFxuICBdKTtcbiAgaGlkZVRhYnMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIGVuYWJsZU11bHRpcGxlU2VsZWN0aW9uID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIHNob3dNb2JpbGVWZXJzaW9uID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICAvL0VtcHR5IHN0YXRlXG4gIGVtcHR5U3RhdGVEYXRhID0gaW5wdXQ8SUJtYkFsZXJ0RW1wdHlTdGF0ZT4oe1xuICAgIHByaW1hcnlUZXh0OiAnTm8gdGllbmVzIG5vdGlmaWNhY2lvbmVzIHBhcmEgbW9zdHJhcicsXG4gICAgc2Vjb25kYXJ5VGV4dDogJycsXG4gICAgdGVydGlhcnlUZXh0OiAnJyxcbiAgICBidXR0b25UZXh0OiAnJyxcbiAgICBzaXplOiAnbGFyZ2UnLFxuICAgIHNob3dCdXR0b246IGZhbHNlLFxuICB9KTtcblxuICAvLyBkZXByZWNhdGVkIHByb3BlcnRpZXNcbiAgYWxlcnRzID0gaW5wdXQ8SUJtYkRhdGFBbGVydFtdPihbXSk7XG4gIGFkdmVydGlzZW1lbnRzID0gaW5wdXQ8SUJtYkRhdGFBbGVydFtdPihbXSk7XG5cbiAgb25DaGFuZ2VBbGVydFN0YXR1cyA9IG91dHB1dDxJQm1iRGF0YUFsZXJ0c091dHB1dD4oKTtcbiAgYWxlcnRFdmVudCA9IG91dHB1dDxJQm1iRGF0YUFsZXJ0PigpO1xuICBzaG93QWxlcnREZXRhaWwgPSBvdXRwdXQ8SUJtYkRhdGFBbGVydD4oKTtcbiAgY2xvc2VBbGVydERldGFpbCA9IG91dHB1dDxJQm1iRGF0YUFsZXJ0PigpO1xuICBuYXZpZ2F0aW9uQmFyRXZlbnRzID0gb3V0cHV0PElCbWJBbGVydENlbnRlckZvb3RlckV2ZW50PigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2RldGFpbENvbnRlbnQnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIGRldGFpbENvbnRlbnQ/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAVmlld0NoaWxkKCdjb250YWluZXInKSBjb250YWluZXIhOiBFbGVtZW50UmVmO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgbWF0RGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSBibWJBbGVydENlbnRlclNlcnZpY2U6IEJtYkFsZXJ0Q2VudGVyU2VydmljZSxcbiAgKSB7fVxuXG4gIGFsZXJ0TGlzdCA9IGNvbXB1dGVkPElCbWJEYXRhQWxlcnRbXT4oKCkgPT4ge1xuICAgIGNvbnN0IGFsZXJ0c09uSW5wdXQgPSB0aGlzLmFsZXJ0cygpO1xuICAgIGNvbnN0IGFsZXJ0c09uU2VydmljZSA9IHRoaXMuYm1iQWxlcnRDZW50ZXJTZXJ2aWNlLmdldEFsZXJ0cygpO1xuICAgIHJldHVybiBbLi4uYWxlcnRzT25JbnB1dCwgLi4uYWxlcnRzT25TZXJ2aWNlXTtcbiAgfSk7XG4gIGFkdmVydGlzZW1lbnRzTGlzdCA9IGNvbXB1dGVkPElCbWJEYXRhQWxlcnRbXT4oKCkgPT4ge1xuICAgIGNvbnN0IGFkdmVydGlzZW1lbnRzT25JbnB1dCA9IHRoaXMuYWR2ZXJ0aXNlbWVudHMoKTtcbiAgICBjb25zdCBhZHZlcnRpc2VtZW50c09uU2VydmljZSA9XG4gICAgICB0aGlzLmJtYkFsZXJ0Q2VudGVyU2VydmljZS5nZXRBZHZlcnRpc2VtZW50cygpO1xuICAgIHJldHVybiBbLi4uYWR2ZXJ0aXNlbWVudHNPbklucHV0LCAuLi5hZHZlcnRpc2VtZW50c09uU2VydmljZV07XG4gIH0pO1xuICBpc0xvYWRpbmcgPSBjb21wdXRlZDxib29sZWFuPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYm1iQWxlcnRDZW50ZXJTZXJ2aWNlLmdldExvYWRpbmdTdGF0ZSgpO1xuICB9KTtcblxuICB0YWJzID0gY29tcHV0ZWQ8SUJtYlRhYltdPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMudGFic05hbWUoKS5tYXAoKHRhYiwgaW5kZXgpID0+IHtcbiAgICAgIGNvbnN0IGNvbXBsZXhUYWI6IElCbWJUYWIgPSB7XG4gICAgICAgIGlkOiBpbmRleCxcbiAgICAgICAgdGl0bGU6IHR5cGVvZiB0YWIgPT09ICdzdHJpbmcnID8gdGFiIDogdGFiLnRpdGxlLFxuICAgICAgICBpc0FjdGl2ZTogaW5kZXggPT09IDAsXG4gICAgICAgIGJhZGdlOlxuICAgICAgICAgIGluZGV4ID09PSAwIHx8IGluZGV4ID09PSAxXG4gICAgICAgICAgICA/IHRoaXMuYWxlcnRMaXN0KCkuZmlsdGVyKChhbGVydCkgPT4gIWFsZXJ0LmlzUmVhZCkubGVuZ3RoXG4gICAgICAgICAgICA6IDAsXG4gICAgICAgIGlzTW9iaWxlOiB0eXBlb2YgdGFiID09PSAnc3RyaW5nJyA/IHRydWUgOiB0YWIuaXNNb2JpbGUsXG4gICAgICAgIGlzRGVza3RvcDogdHlwZW9mIHRhYiA9PT0gJ3N0cmluZycgPyB0cnVlIDogdGFiLmlzRGVza3RvcCxcbiAgICAgIH07XG4gICAgICByZXR1cm4gY29tcGxleFRhYjtcbiAgICB9KTtcbiAgfSk7XG4gIHNlbGVjdGVkVGFiID0gbW9kZWw8bnVtYmVyPigxKTtcbiAgc2VsZWN0ZWRBbGVydDogSUJtYkRhdGFBbGVydFtdID0gW107XG4gIG9yZGVyZWRFdmVudHMgPSBjb21wdXRlZDxJQm1iRGF0YUFsZXJ0c1BhcnNlZFtdPigoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMub3JkZXJFdmVudHModGhpcy5hbGVydExpc3QoKSk7XG4gIH0pO1xuICBub3cgPSBEYXRlVGltZS5ub3coKTtcbiAgZXZlbnRzSW5DYXRlZ29yaWVzID0gY29tcHV0ZWQ8SUJtYkFsZXJ0Q2VudGVyQ2F0ZWdvcmllcz4oKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLm9yZGVyQ2F0ZWdvcmllcyh0aGlzLm9yZGVyZWRFdmVudHMoKSk7XG4gIH0pO1xuICB2aXNpYmxlQWxlcnQ6IElCbWJEYXRhQWxlcnRzUGFyc2VkIHwgbnVsbCA9IG51bGw7XG5cbiAgb3JkZXJFdmVudHMoYWxlcnRzOiBJQm1iRGF0YUFsZXJ0W10pOiBJQm1iRGF0YUFsZXJ0c1BhcnNlZFtdIHtcbiAgICBjb25zdCBwYXJzZXJEYXRlcyA9IGFsZXJ0cy5tYXAoKGFsZXJ0KSA9PiAoe1xuICAgICAgLi4uYWxlcnQsXG4gICAgICBwRGF0ZTogRGF0ZVRpbWUuZnJvbUZvcm1hdChcbiAgICAgICAgYCR7YWxlcnQuZGF0ZX0gJHthbGVydC50aW1lfWAsXG4gICAgICAgIGAke3RoaXMuZGF0ZUZvcm1hdCgpfSBISDptbWAsXG4gICAgICApLFxuICAgIH0pKTtcblxuICAgIHJldHVybiBwYXJzZXJEYXRlcy5zb3J0KChhLCBiKSA9PiB7XG4gICAgICByZXR1cm4gYi5wRGF0ZS50b01pbGxpcygpIC0gYS5wRGF0ZS50b01pbGxpcygpO1xuICAgIH0pO1xuICB9XG5cbiAgb3JkZXJDYXRlZ29yaWVzKGFsZXJ0czogSUJtYkRhdGFBbGVydHNQYXJzZWRbXSk6IElCbWJBbGVydENlbnRlckNhdGVnb3JpZXMge1xuICAgIGNvbnN0IG9iamVjdEV2ZW50OiBJQm1iQWxlcnRDZW50ZXJDYXRlZ29yaWVzID0ge1xuICAgICAgcmVjZW50OiBbXSxcbiAgICAgIHNldmVuRGF5czogW10sXG4gICAgICBtb250aDogW10sXG4gICAgICByZXN0OiBbXSxcbiAgICB9O1xuICAgIGFsZXJ0cy5mb3JFYWNoKChhbGVydCkgPT4ge1xuICAgICAgY29uc3QgZGlmZiA9IE1hdGgudHJ1bmModGhpcy5ub3cuZGlmZihhbGVydC5wRGF0ZSwgJ2RheXMnKS5kYXlzIHx8IDApO1xuICAgICAgaWYgKGRpZmYgPT09IDApIG9iamVjdEV2ZW50LnJlY2VudC5wdXNoKGFsZXJ0KTtcbiAgICAgIGVsc2UgaWYgKGRpZmYgPD0gNykgb2JqZWN0RXZlbnQuc2V2ZW5EYXlzLnB1c2goYWxlcnQpO1xuICAgICAgZWxzZSBpZiAoZGlmZiA8PSAzMCkgb2JqZWN0RXZlbnQubW9udGgucHVzaChhbGVydCk7XG4gICAgICBlbHNlIG9iamVjdEV2ZW50LnJlc3QucHVzaChhbGVydCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIG9iamVjdEV2ZW50O1xuICB9XG5cbiAgaGFuZGxlU2hvd0FsZXJ0KGl0ZW06IElCbWJEYXRhQWxlcnRzUGFyc2VkKTogdm9pZCB7XG4gICAgdGhpcy52aXNpYmxlQWxlcnQgPSBpdGVtO1xuICAgIGNvbnN0IHsgcERhdGUsIC4uLmFsZXJ0RGF0YSB9ID0gaXRlbTtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggPCAzNTAgfHxcbiAgICAgIHdpbmRvdy5pbm5lcldpZHRoIDwgMTAwMCB8fFxuICAgICAgdGhpcy5zaG93TW9iaWxlVmVyc2lvbigpXG4gICAgKSB7XG4gICAgICBjb25zdCBkYXRhOiBNb2RhbERhdGFDb25maWcgPSB7XG4gICAgICAgIHRpdGxlOiBpdGVtLnRpdGxlLFxuICAgICAgICBjb250ZW50OiB0aGlzLmRldGFpbENvbnRlbnQsXG4gICAgICAgIHNpemU6ICdzbWFsbCcsXG4gICAgICAgIHR5cGU6ICdpbmZvcm1hdGl2ZScsXG4gICAgICAgIHNjcm9sbGFibGU6IHRydWUsXG4gICAgICAgIGNsb3NlQWN0aW9uOiB0aGlzLmhhbmRsZUNsb3NlRGV0YWlsLmJpbmQodGhpcywgaXRlbSksXG4gICAgICB9O1xuICAgICAgdGhpcy5tYXREaWFsb2cub3BlbihCbWJNb2RhbENvbXBvbmVudCwgeyBkYXRhIH0pO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd0FsZXJ0RGV0YWlsLmVtaXQoYWxlcnREYXRhKTtcbiAgfVxuXG4gIGhhbmRsZUNsb3NlRGV0YWlsKGFsZXJ0OiBJQm1iRGF0YUFsZXJ0c1BhcnNlZCk6IHZvaWQge1xuICAgIGNvbnN0IHsgcERhdGUsIC4uLmFsZXJ0RGF0YSB9ID0gYWxlcnQ7XG4gICAgdGhpcy5jbG9zZUFsZXJ0RGV0YWlsLmVtaXQoYWxlcnREYXRhKTtcbiAgfVxuXG4gIGhhbmRsZUFsZXJ0RXZlbnQoYWxlcnQ6IElCbWJEYXRhQWxlcnQpOiB2b2lkIHtcbiAgICB0aGlzLmFsZXJ0RXZlbnQuZW1pdChhbGVydCk7XG4gIH1cblxuICBoYW5kbGVDaGFuZ2VBbGVydFN0YXR1cyhhbGVydDogSUJtYkRhdGFBbGVydHNPdXRwdXQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlQWxlcnRTdGF0dXMuZW1pdChhbGVydCk7XG4gIH1cblxuICBoYW5kbGVOYXZpZ2F0aW9uQmFyRXZlbnRzKGV2ZW50OiBJQm1iQWxlcnRDZW50ZXJQcm90b0V2ZW50Rm9vdGVyKTogdm9pZCB7XG4gICAgY29uc3QgZXZlbnRzID0gdGhpcy5hbGVydExpc3QoKS5maWx0ZXIoKGFsZXJ0KSA9PlxuICAgICAgZXZlbnQuYWxlcnRzLmluY2x1ZGVzKGFsZXJ0LmlkLnRvU3RyaW5nKCkpLFxuICAgICk7XG5cbiAgICBpZiAoZXZlbnRzLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xuICAgIGlmIChldmVudC5ldmVudCA9PT0gJ3RhZ3MnKSB7XG4gICAgICB0aGlzLm5hdmlnYXRpb25CYXJFdmVudHMuZW1pdCh7XG4gICAgICAgIGFsZXJ0czogZXZlbnRzLFxuICAgICAgICBldmVudDogJ3RhZ3MnLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5hbWVzID0ge1xuICAgICAgaXNSZWFkOiAncmVhZCcsXG4gICAgICBpc0Zhdm9yaXRlOiAnZmF2b3JpdGUnLFxuICAgICAgaXNBcmNoaXZlZDogJ2FyY2hpdmVkJyxcbiAgICB9O1xuICAgIGNvbnN0IGV2ZW50TmFtZSA9IG5hbWVzW2V2ZW50LmV2ZW50XSB8fCBldmVudC5ldmVudDtcbiAgICBjb25zdCBpc1Bvc2l0aXZlT3BlcmF0aW9uID0gZXZlbnRzLnNvbWUoKGFsZXJ0KSA9PiAhYWxlcnRbZXZlbnQuZXZlbnRdKTtcbiAgICBjb25zdCBldmVudFR5cGUgPSBpc1Bvc2l0aXZlT3BlcmF0aW9uXG4gICAgICA/IGBhZGRfJHtldmVudE5hbWV9YFxuICAgICAgOiBgcmVtb3ZlXyR7ZXZlbnROYW1lfWA7XG4gICAgdGhpcy5uYXZpZ2F0aW9uQmFyRXZlbnRzLmVtaXQoe1xuICAgICAgYWxlcnRzOiBldmVudHMsXG4gICAgICBldmVudDogZXZlbnRUeXBlIGFzIElCbWJBbGVydENlbnRlckZvb3RlckV2ZW50TmFtZSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPHNlY3Rpb24gY2xhc3M9XCJibWJfYWxlcnQtY2VudGVyXCIgI2NvbnRhaW5lciBibWJMYXlvdXQgbWFyZ2luPVwibm9uZVwiPlxuICA8ZGl2XG4gICAgYm1iTGF5b3V0SXRlbVxuICAgIFtjb2xTbV09XCI0XCJcbiAgICBbY29sTGddPVwic2hvd01vYmlsZVZlcnNpb24oKSA/IDEyIDogNVwiXG4gICAgY2xhc3M9XCJibWJfYWxlcnQtY2VudGVyLW1haW5cIlxuICAgIFtuZ0NsYXNzXT1cInsgJ2JtYl9hbGVydC1jZW50ZXItbWFpbi1uby1ib3JkZXInOiBzaG93TW9iaWxlVmVyc2lvbigpIH1cIlxuICA+XG4gICAgQGlmIChpc0xvYWRpbmcoKSkge1xuICAgICAgPGJtYi1sb2FkZXJcbiAgICAgICAgdGl0bGU9XCJDYXJnYW5kby4uLlwiXG4gICAgICAgIHN1YnRpdGxlPVwiQ2FyZ2FuZG8gbGFzIG5vdGlmaWNhY2lvbmVzXCJcbiAgICAgICAgW292ZXJsYXldPVwiZmFsc2VcIlxuICAgICAgICBbaXNWaXNpYmxlXT1cInRydWVcIlxuICAgICAgICBbZXJyb3JTdGF0ZV09XCJmYWxzZVwiXG4gICAgICAgIGFwcGVhcmFuY2U9XCJub3JtYWxcIlxuICAgICAgICBpY29uPVwid2lmaV9vZmZcIlxuICAgICAgICBbYWN0aW9uc109XCJmYWxzZVwiXG4gICAgICAgIGJ1dHRvblByaW1hcnk9XCJSZWludGVudGFyXCJcbiAgICAgICAgYnV0dG9uU2Vjb25kYXJ5PVwiU2FsaXJcIlxuICAgICAgICBbc2hvd0lubGluZV09XCJ0cnVlXCJcbiAgICAgIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgKCFoaWRlVGFicygpKSB7XG4gICAgICAgIDxibWItdGFicyBbdGFic109XCJ0YWJzKClcIiBbKHNlbGVjdGVkVGFiSWQpXT1cInNlbGVjdGVkVGFiXCIgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoc2VsZWN0ZWRUYWIoKSA9PT0gMSkge1xuICAgICAgICA8Ym1iLWFsZXJ0LWNlbnRlci1mb3JtXG4gICAgICAgICAgKHNob3dBbGVydERldGFpbCk9XCJoYW5kbGVTaG93QWxlcnQoJGV2ZW50KVwiXG4gICAgICAgICAgW2V2ZW50c0luQ2F0ZWdvcmllc109XCJldmVudHNJbkNhdGVnb3JpZXMoKVwiXG4gICAgICAgICAgW2VuYWJsZU11bHRpcGxlU2VsZWN0aW9uXT1cImVuYWJsZU11bHRpcGxlU2VsZWN0aW9uKClcIlxuICAgICAgICAgIChjaGFuZ2VBbGVydFN0YXR1cyk9XCJoYW5kbGVDaGFuZ2VBbGVydFN0YXR1cygkZXZlbnQpXCJcbiAgICAgICAgICBbZW1wdHlTdGF0ZURhdGFdPVwiZW1wdHlTdGF0ZURhdGEoKVwiXG4gICAgICAgICAgKG5hdmlnYXRpb25CYXJFdmVudHMpPVwiaGFuZGxlTmF2aWdhdGlvbkJhckV2ZW50cygkZXZlbnQpXCJcbiAgICAgICAgICBmaWx0ZXJCeT1cImFsbFwiXG4gICAgICAgIC8+XG4gICAgICB9IEBlbHNlIGlmIChzZWxlY3RlZFRhYigpID09PSAyKSB7XG4gICAgICAgIDxibWItYWxlcnQtY2VudGVyLWZvcm1cbiAgICAgICAgICAoc2hvd0FsZXJ0RGV0YWlsKT1cImhhbmRsZVNob3dBbGVydCgkZXZlbnQpXCJcbiAgICAgICAgICBbZXZlbnRzSW5DYXRlZ29yaWVzXT1cImV2ZW50c0luQ2F0ZWdvcmllcygpXCJcbiAgICAgICAgICBbZW5hYmxlTXVsdGlwbGVTZWxlY3Rpb25dPVwiZW5hYmxlTXVsdGlwbGVTZWxlY3Rpb24oKVwiXG4gICAgICAgICAgKGNoYW5nZUFsZXJ0U3RhdHVzKT1cImhhbmRsZUNoYW5nZUFsZXJ0U3RhdHVzKCRldmVudClcIlxuICAgICAgICAgIFtlbXB0eVN0YXRlRGF0YV09XCJlbXB0eVN0YXRlRGF0YSgpXCJcbiAgICAgICAgICAobmF2aWdhdGlvbkJhckV2ZW50cyk9XCJoYW5kbGVOYXZpZ2F0aW9uQmFyRXZlbnRzKCRldmVudClcIlxuICAgICAgICAgIGZpbHRlckJ5PVwidW5yZWFkXCJcbiAgICAgICAgLz5cbiAgICAgIH0gQGVsc2UgaWYgKHNlbGVjdGVkVGFiKCkgPT09IDMpIHtcbiAgICAgICAgPGJtYi1hbGVydC1jZW50ZXItZm9ybVxuICAgICAgICAgIChzaG93QWxlcnREZXRhaWwpPVwiaGFuZGxlU2hvd0FsZXJ0KCRldmVudClcIlxuICAgICAgICAgIFtldmVudHNJbkNhdGVnb3JpZXNdPVwiZXZlbnRzSW5DYXRlZ29yaWVzKClcIlxuICAgICAgICAgIFtlbmFibGVNdWx0aXBsZVNlbGVjdGlvbl09XCJlbmFibGVNdWx0aXBsZVNlbGVjdGlvbigpXCJcbiAgICAgICAgICAoY2hhbmdlQWxlcnRTdGF0dXMpPVwiaGFuZGxlQ2hhbmdlQWxlcnRTdGF0dXMoJGV2ZW50KVwiXG4gICAgICAgICAgW2VtcHR5U3RhdGVEYXRhXT1cImVtcHR5U3RhdGVEYXRhKClcIlxuICAgICAgICAgIChuYXZpZ2F0aW9uQmFyRXZlbnRzKT1cImhhbmRsZU5hdmlnYXRpb25CYXJFdmVudHMoJGV2ZW50KVwiXG4gICAgICAgICAgZmlsdGVyQnk9XCJmYXZvcml0ZXNcIlxuICAgICAgICAvPlxuICAgICAgfSBAZWxzZSBpZiAoc2VsZWN0ZWRUYWIoKSA9PT0gNCkge1xuICAgICAgICA8Ym1iLWFsZXJ0LWNlbnRlci1mb3JtXG4gICAgICAgICAgKHNob3dBbGVydERldGFpbCk9XCJoYW5kbGVTaG93QWxlcnQoJGV2ZW50KVwiXG4gICAgICAgICAgW2V2ZW50c0luQ2F0ZWdvcmllc109XCJldmVudHNJbkNhdGVnb3JpZXMoKVwiXG4gICAgICAgICAgKGNoYW5nZUFsZXJ0U3RhdHVzKT1cImhhbmRsZUNoYW5nZUFsZXJ0U3RhdHVzKCRldmVudClcIlxuICAgICAgICAgIFtlbXB0eVN0YXRlRGF0YV09XCJlbXB0eVN0YXRlRGF0YSgpXCJcbiAgICAgICAgICAobmF2aWdhdGlvbkJhckV2ZW50cyk9XCJoYW5kbGVOYXZpZ2F0aW9uQmFyRXZlbnRzKCRldmVudClcIlxuICAgICAgICAgIGZpbHRlckJ5PVwiYXJjaGl2ZWRcIlxuICAgICAgICAvPlxuICAgICAgfSBAZWxzZSBpZiAoc2VsZWN0ZWRUYWIoKSA9PT0gNSkge1xuICAgICAgICA8Ym1iLWFsZXJ0LWNlbnRlci1hZHNcbiAgICAgICAgICBbYWR2ZXJ0aXNlbWVudHNdPVwiYWR2ZXJ0aXNlbWVudHNMaXN0KClcIlxuICAgICAgICAgIChhbGVydEV2ZW50KT1cImhhbmRsZUFsZXJ0RXZlbnQoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHNlY3Rpb24gYm1iTGF5b3V0SXRlbSBbY29sU21dPVwiNFwiIFtjb2xMZ109XCIxMlwiPlxuICAgICAgICAgIDxibWItYWxlcnQtY2VudGVyLWVtcHR5IFtkYXRhXT1cImVtcHR5U3RhdGVEYXRhKClcIiAvPlxuICAgICAgICA8L3NlY3Rpb24+XG4gICAgICB9XG4gICAgfVxuICA8L2Rpdj5cbiAgQGlmICghc2hvd01vYmlsZVZlcnNpb24oKSAmJiBhbGVydExpc3QoKS5sZW5ndGgpIHtcbiAgICA8c2VjdGlvblxuICAgICAgY2xhc3M9XCJibWJfYWxlcnQtY2VudGVyLWNvbnRlbnRcIlxuICAgICAgYm1iTGF5b3V0SXRlbVxuICAgICAgW2NvbFNtXT1cIjRcIlxuICAgICAgW2NvbExnXT1cIjdcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGV0YWlsQ29udGVudFwiIC8+XG4gICAgPC9zZWN0aW9uPlxuICB9XG48L3NlY3Rpb24+XG5cbjxuZy10ZW1wbGF0ZSAjZGV0YWlsQ29udGVudD5cbiAgQGlmICh2aXNpYmxlQWxlcnQpIHtcbiAgICA8c2VjdGlvbiBjbGFzcz1cImJtYl9hbGVydC1jZW50ZXItY29udGVudC1tb2RhbFwiPlxuICAgICAgPGgxIGNsYXNzPVwiZm9udC1ib2xkLTcgYm1iX2FsZXJ0LWNlbnRlci1jb250ZW50LW1vZGFsLXRpdGxlXCI+XG4gICAgICAgIHt7IHZpc2libGVBbGVydC50aXRsZSB9fVxuICAgICAgPC9oMT5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgdmlzaWJsZUFsZXJ0LmRlc2NyaXB0aW9uOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgQHN3aXRjaCAoaXRlbS50eXBlKSB7XG4gICAgICAgICAgQGNhc2UgKFwicGFyYWdyYXBoXCIpIHtcbiAgICAgICAgICAgIDxwXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIidibWJfYWxlcnQtY2VudGVyLWNvbnRlbnQtJyArIChpdGVtLnN0eWxlID8/ICdub3JtYWwnKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGl0ZW0udGV4dCB9fVxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAY2FzZSAoXCJpbWFnZVwiKSB7XG4gICAgICAgICAgICA8Ym1iLWltYWdlXG4gICAgICAgICAgICAgIFtzcmNdPVwiaXRlbS5ocmVmIHx8ICcnXCJcbiAgICAgICAgICAgICAgW2FsdF09XCJpdGVtLnRleHRcIlxuICAgICAgICAgICAgICBib3JkZXJSYWRpdXM9XCJub25lXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlIChcInZpZGVvXCIpIHtcbiAgICAgICAgICAgIDx2aWRlbyBbc3JjXT1cIml0ZW0uaHJlZlwiIGNvbnRyb2xzPjwvdmlkZW8+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlIChcInRpdGxlXCIpIHtcbiAgICAgICAgICAgIDxoM1xuICAgICAgICAgICAgICBbbmdDbGFzc109XCInYm1iX2FsZXJ0LWNlbnRlci1jb250ZW50LScgKyAoaXRlbS5zdHlsZSA/PyAnbm9ybWFsJylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBpdGVtLnRleHQgfX1cbiAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlIChcImJ1dHRvblwiKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIGJtYkJ1dHRvblxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgW2FwcGVhcmFuY2VdPVwiaXRlbS52YXJpYW50ID8/ICdwcmltYXJ5J1wiXG4gICAgICAgICAgICAgIChjbGljayk9XCJcbiAgICAgICAgICAgICAgICBpdGVtLmV2ZW50XG4gICAgICAgICAgICAgICAgICA/IGl0ZW0/LmV2ZW50KHZpc2libGVBbGVydC5pZClcbiAgICAgICAgICAgICAgICAgIDogaGFuZGxlQWxlcnRFdmVudCh2aXNpYmxlQWxlcnQpXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGl0ZW0udGV4dCB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlIChcImxpbmtcIikge1xuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiJ2JtYl9hbGVydC1jZW50ZXItY29udGVudC0nICsgKGl0ZW0uc3R5bGUgPz8gJ25vcm1hbCcpXCJcbiAgICAgICAgICAgICAgW2hyZWZdPVwiaXRlbS5ocmVmXCJcbiAgICAgICAgICAgICAgPnt7IGl0ZW0udGV4dCB9fTwvYVxuICAgICAgICAgICAgPlxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvc2VjdGlvbj5cbiAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm1iLWFsZXJ0LWNlbnRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1uZy9zcmMvbGliL2NvbXBvbmVudHMvYm1iLWFsZXJ0LWNlbnRlci9ibWItYWxlcnQtY2VudGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLW5nL3NyYy9saWIvY29tcG9uZW50cy9ibWItYWxlcnQtY2VudGVyL2JtYi1hbGVydC1jZW50ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixRQUFRLEVBQ1IsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBVyxNQUFNLGdDQUFnQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN0RixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBWXRHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ25HLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBRXpHLE9BQU8sRUFBRSxrQkFBa0Is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LElBQUksRUFBRSxXQUFXLEVBQUU7Z0JBRXpCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgaW5wdXQsXHJcbiAgb3V0cHV0LFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBjb21wdXRlZCxcclxuICBtb2RlbCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQm1iVGFic0NvbXBvbmVudCwgSUJtYlRhYiB9IGZyb20gJy4uL2JtYi10YWJzL2JtYi10YWJzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEJtYkxheW91dERpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvYm1iLWxheW91dC9ibWItbGF5b3V0LmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IEJtYkxheW91dEl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2JtYi1sYXlvdXQvYm1iLWxheW91dC1pdGVtLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IERhdGVUaW1lIH0gZnJvbSAnbHV4b24nO1xyXG5pbXBvcnQgeyBCbWJBbGVydENlbnRlckZvcm1Db21wb25lbnQgfSBmcm9tICcuL2JtYi1hbGVydC1jZW50ZXItZm9ybS9ibWItYWxlcnQtY2VudGVyLWZvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBJQm1iRGF0YUFsZXJ0LFxyXG4gIElCbWJEYXRhQWxlcnRzUGFyc2VkLFxyXG4gIElCbWJBbGVydENlbnRlckNhdGVnb3JpZXMsXHJcbiAgSUJtYkRhdGFBbGVydHNPdXRwdXQsXHJcbiAgSUJtYkFsZXJ0RW1wdHlTdGF0ZSxcclxuICBJQm1iQWxlcnRDZW50ZXJUYWJDb25maWcsXHJcbiAgSUJtYkFsZXJ0Q2VudGVyRm9vdGVyRXZlbnQsXHJcbiAgSUJtYkFsZXJ0Q2VudGVyUHJvdG9FdmVudEZvb3RlcixcclxuICBJQm1iQWxlcnRDZW50ZXJGb290ZXJFdmVudE5hbWUsXHJcbn0gZnJvbSAnLi90eXBlcyc7XHJcbmltcG9ydCB7IEJtYkJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvYm1iLWJ1dHRvbi9idXR0b24uZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQm1iSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuLi9ibWItaW1hZ2UvYm1iLWltYWdlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJtYkFsZXJ0Q2VudGVyQWRzQ29tcG9uZW50IH0gZnJvbSAnLi9ibWItYWxlcnQtY2VudGVyLWFkcy9ibWItYWxlcnQtY2VudGVyLWFkcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCbWJBbGVydENlbnRlckVtcHR5Q29tcG9uZW50IH0gZnJvbSAnLi9ibWItYWxlcnQtY2VudGVyLWVtcHR5L2JtYi1hbGVydC1jZW50ZXItZW1wdHkuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQm1iQWxlcnRDZW50ZXJTZXJ2aWNlIH0gZnJvbSAnLi9ibWItYWxlcnQtY2VudGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCbWJMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi9ibWItbG9hZGVyL2JtYi1sb2FkZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQm1iTmF0aXZlTW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbmF0aXZlLW1vZGFsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJQm1iTmF0aXZlTW9kYWwgfSBmcm9tICcuLi9ibWItbW9kYWwvYm1iLW1vZGFsLmludGVyZmFjZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2JtYi1hbGVydC1jZW50ZXInLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQm1iVGFic0NvbXBvbmVudCxcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEJtYkxheW91dERpcmVjdGl2ZSxcclxuICAgIEJtYkxheW91dEl0ZW1EaXJlY3RpdmUsXHJcbiAgICBCbWJBbGVydENlbnRlckZvcm1Db21wb25lbnQsXHJcbiAgICBCbWJCdXR0b25EaXJlY3RpdmUsXHJcbiAgICBCbWJJbWFnZUNvbXBvbmVudCxcclxuICAgIEJtYkFsZXJ0Q2VudGVyQWRzQ29tcG9uZW50LFxyXG4gICAgQm1iQWxlcnRDZW50ZXJFbXB0eUNvbXBvbmVudCxcclxuICAgIEJtYkxvYWRlckNvbXBvbmVudCxcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ibWItYWxlcnQtY2VudGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vYm1iLWFsZXJ0LWNlbnRlci5jb21wb25lbnQuc2NzcycsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJtYkFsZXJ0Q2VudGVyQ29tcG9uZW50IHtcclxuICBkYXRlRm9ybWF0ID0gaW5wdXQ8c3RyaW5nPignZGQvTU0veXl5eScpO1xyXG4gIHRhYnNOYW1lID0gaW5wdXQ8c3RyaW5nW10gfCBJQm1iQWxlcnRDZW50ZXJUYWJDb25maWdbXT4oW1xyXG4gICAgeyB0aXRsZTogJ05vdGlmaWNhY2lvbmVzJywgaXNNb2JpbGU6IHRydWUsIGlzRGVza3RvcDogdHJ1ZSB9LFxyXG4gICAgeyB0aXRsZTogJ05vIGxlw61kb3MnLCBpc01vYmlsZTogZmFsc2UsIGlzRGVza3RvcDogdHJ1ZSB9LFxyXG4gICAgeyB0aXRsZTogJ0Zhdm9yaXRvcycsIGlzTW9iaWxlOiBmYWxzZSwgaXNEZXNrdG9wOiB0cnVlIH0sXHJcbiAgICB7IHRpdGxlOiAnQXJjaGl2YWRvcycsIGlzTW9iaWxlOiBmYWxzZSwgaXNEZXNrdG9wOiB0cnVlIH0sXHJcbiAgICB7IHRpdGxlOiAnQW51bmNpb3MnLCBpc01vYmlsZTogdHJ1ZSwgaXNEZXNrdG9wOiB0cnVlIH0sXHJcbiAgXSk7XHJcbiAgaGlkZVRhYnMgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XHJcbiAgZW5hYmxlTXVsdGlwbGVTZWxlY3Rpb24gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuICBzaG93TW9iaWxlVmVyc2lvbiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuICAvL0VtcHR5IHN0YXRlXHJcbiAgZW1wdHlTdGF0ZURhdGEgPSBpbnB1dDxJQm1iQWxlcnRFbXB0eVN0YXRlPih7XHJcbiAgICBwcmltYXJ5VGV4dDogJ05vIHRpZW5lcyBub3RpZmljYWNpb25lcyBwYXJhIG1vc3RyYXInLFxyXG4gICAgc2Vjb25kYXJ5VGV4dDogJycsXHJcbiAgICB0ZXJ0aWFyeVRleHQ6ICcnLFxyXG4gICAgYnV0dG9uVGV4dDogJycsXHJcbiAgICBzaXplOiAnbGFyZ2UnLFxyXG4gICAgc2hvd0J1dHRvbjogZmFsc2UsXHJcbiAgfSk7XHJcblxyXG4gIC8vIGRlcHJlY2F0ZWQgcHJvcGVydGllc1xyXG4gIGFsZXJ0cyA9IGlucHV0PElCbWJEYXRhQWxlcnRbXT4oW10pO1xyXG4gIGFkdmVydGlzZW1lbnRzID0gaW5wdXQ8SUJtYkRhdGFBbGVydFtdPihbXSk7XHJcblxyXG4gIG9uQ2hhbmdlQWxlcnRTdGF0dXMgPSBvdXRwdXQ8SUJtYkRhdGFBbGVydHNPdXRwdXQ+KCk7XHJcbiAgYWxlcnRFdmVudCA9IG91dHB1dDxJQm1iRGF0YUFsZXJ0PigpO1xyXG4gIHNob3dBbGVydERldGFpbCA9IG91dHB1dDxJQm1iRGF0YUFsZXJ0PigpO1xyXG4gIGNsb3NlQWxlcnREZXRhaWwgPSBvdXRwdXQ8SUJtYkRhdGFBbGVydD4oKTtcclxuICBuYXZpZ2F0aW9uQmFyRXZlbnRzID0gb3V0cHV0PElCbWJBbGVydENlbnRlckZvb3RlckV2ZW50PigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdkZXRhaWxDb250ZW50JywgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxyXG4gIGRldGFpbENvbnRlbnQ/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lcicpIGNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBuYXRpdmVNb2RhbFNlcnZpY2U6IEJtYk5hdGl2ZU1vZGFsU2VydmljZSxcclxuICAgIHByaXZhdGUgYm1iQWxlcnRDZW50ZXJTZXJ2aWNlOiBCbWJBbGVydENlbnRlclNlcnZpY2UsXHJcbiAgKSB7fVxyXG5cclxuICBhbGVydExpc3QgPSBjb21wdXRlZDxJQm1iRGF0YUFsZXJ0W10+KCgpID0+IHtcclxuICAgIGNvbnN0IGFsZXJ0c09uSW5wdXQgPSB0aGlzLmFsZXJ0cygpO1xyXG4gICAgY29uc3QgYWxlcnRzT25TZXJ2aWNlID0gdGhpcy5ibWJBbGVydENlbnRlclNlcnZpY2UuZ2V0QWxlcnRzKCk7XHJcbiAgICByZXR1cm4gWy4uLmFsZXJ0c09uSW5wdXQsIC4uLmFsZXJ0c09uU2VydmljZV07XHJcbiAgfSk7XHJcbiAgYWR2ZXJ0aXNlbWVudHNMaXN0ID0gY29tcHV0ZWQ8SUJtYkRhdGFBbGVydFtdPigoKSA9PiB7XHJcbiAgICBjb25zdCBhZHZlcnRpc2VtZW50c09uSW5wdXQgPSB0aGlzLmFkdmVydGlzZW1lbnRzKCk7XHJcbiAgICBjb25zdCBhZHZlcnRpc2VtZW50c09uU2VydmljZSA9XHJcbiAgICAgIHRoaXMuYm1iQWxlcnRDZW50ZXJTZXJ2aWNlLmdldEFkdmVydGlzZW1lbnRzKCk7XHJcbiAgICByZXR1cm4gWy4uLmFkdmVydGlzZW1lbnRzT25JbnB1dCwgLi4uYWR2ZXJ0aXNlbWVudHNPblNlcnZpY2VdO1xyXG4gIH0pO1xyXG4gIGlzTG9hZGluZyA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcclxuICAgIHJldHVybiB0aGlzLmJtYkFsZXJ0Q2VudGVyU2VydmljZS5nZXRMb2FkaW5nU3RhdGUoKTtcclxuICB9KTtcclxuXHJcbiAgdGFicyA9IGNvbXB1dGVkPElCbWJUYWJbXT4oKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMudGFic05hbWUoKS5tYXAoKHRhYiwgaW5kZXgpID0+IHtcclxuICAgICAgY29uc3QgY29tcGxleFRhYjogSUJtYlRhYiA9IHtcclxuICAgICAgICBpZDogaW5kZXgsXHJcbiAgICAgICAgdGl0bGU6IHR5cGVvZiB0YWIgPT09ICdzdHJpbmcnID8gdGFiIDogdGFiLnRpdGxlLFxyXG4gICAgICAgIGlzQWN0aXZlOiBpbmRleCA9PT0gMCxcclxuICAgICAgICBiYWRnZTpcclxuICAgICAgICAgIGluZGV4ID09PSAwIHx8IGluZGV4ID09PSAxXHJcbiAgICAgICAgICAgID8gdGhpcy5hbGVydExpc3QoKS5maWx0ZXIoKGFsZXJ0KSA9PiAhYWxlcnQuaXNSZWFkKS5sZW5ndGhcclxuICAgICAgICAgICAgOiAwLFxyXG4gICAgICAgIGlzTW9iaWxlOiB0eXBlb2YgdGFiID09PSAnc3RyaW5nJyA/IHRydWUgOiB0YWIuaXNNb2JpbGUsXHJcbiAgICAgICAgaXNEZXNrdG9wOiB0eXBlb2YgdGFiID09PSAnc3RyaW5nJyA/IHRydWUgOiB0YWIuaXNEZXNrdG9wLFxyXG4gICAgICB9O1xyXG4gICAgICByZXR1cm4gY29tcGxleFRhYjtcclxuICAgIH0pO1xyXG4gIH0pO1xyXG4gIHNlbGVjdGVkVGFiID0gbW9kZWw8bnVtYmVyPigxKTtcclxuICBzZWxlY3RlZEFsZXJ0OiBJQm1iRGF0YUFsZXJ0W10gPSBbXTtcclxuICBvcmRlcmVkRXZlbnRzID0gY29tcHV0ZWQ8SUJtYkRhdGFBbGVydHNQYXJzZWRbXT4oKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMub3JkZXJFdmVudHModGhpcy5hbGVydExpc3QoKSk7XHJcbiAgfSk7XHJcbiAgbm93ID0gRGF0ZVRpbWUubm93KCk7XHJcbiAgZXZlbnRzSW5DYXRlZ29yaWVzID0gY29tcHV0ZWQ8SUJtYkFsZXJ0Q2VudGVyQ2F0ZWdvcmllcz4oKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMub3JkZXJDYXRlZ29yaWVzKHRoaXMub3JkZXJlZEV2ZW50cygpKTtcclxuICB9KTtcclxuICB2aXNpYmxlQWxlcnQ6IElCbWJEYXRhQWxlcnRzUGFyc2VkIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIG9yZGVyRXZlbnRzKGFsZXJ0czogSUJtYkRhdGFBbGVydFtdKTogSUJtYkRhdGFBbGVydHNQYXJzZWRbXSB7XHJcbiAgICBjb25zdCBwYXJzZXJEYXRlcyA9IGFsZXJ0cy5tYXAoKGFsZXJ0KSA9PiAoe1xyXG4gICAgICAuLi5hbGVydCxcclxuICAgICAgcERhdGU6IERhdGVUaW1lLmZyb21Gb3JtYXQoXHJcbiAgICAgICAgYCR7YWxlcnQuZGF0ZX0gJHthbGVydC50aW1lfWAsXHJcbiAgICAgICAgYCR7dGhpcy5kYXRlRm9ybWF0KCl9IEhIOm1tYCxcclxuICAgICAgKSxcclxuICAgIH0pKTtcclxuXHJcbiAgICByZXR1cm4gcGFyc2VyRGF0ZXMuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICByZXR1cm4gYi5wRGF0ZS50b01pbGxpcygpIC0gYS5wRGF0ZS50b01pbGxpcygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcmRlckNhdGVnb3JpZXMoYWxlcnRzOiBJQm1iRGF0YUFsZXJ0c1BhcnNlZFtdKTogSUJtYkFsZXJ0Q2VudGVyQ2F0ZWdvcmllcyB7XHJcbiAgICBjb25zdCBvYmplY3RFdmVudDogSUJtYkFsZXJ0Q2VudGVyQ2F0ZWdvcmllcyA9IHtcclxuICAgICAgcmVjZW50OiBbXSxcclxuICAgICAgc2V2ZW5EYXlzOiBbXSxcclxuICAgICAgbW9udGg6IFtdLFxyXG4gICAgICByZXN0OiBbXSxcclxuICAgIH07XHJcbiAgICBhbGVydHMuZm9yRWFjaCgoYWxlcnQpID0+IHtcclxuICAgICAgY29uc3QgZGlmZiA9IE1hdGgudHJ1bmModGhpcy5ub3cuZGlmZihhbGVydC5wRGF0ZSwgJ2RheXMnKS5kYXlzIHx8IDApO1xyXG4gICAgICBpZiAoZGlmZiA9PT0gMCkgb2JqZWN0RXZlbnQucmVjZW50LnB1c2goYWxlcnQpO1xyXG4gICAgICBlbHNlIGlmIChkaWZmIDw9IDcpIG9iamVjdEV2ZW50LnNldmVuRGF5cy5wdXNoKGFsZXJ0KTtcclxuICAgICAgZWxzZSBpZiAoZGlmZiA8PSAzMCkgb2JqZWN0RXZlbnQubW9udGgucHVzaChhbGVydCk7XHJcbiAgICAgIGVsc2Ugb2JqZWN0RXZlbnQucmVzdC5wdXNoKGFsZXJ0KTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIG9iamVjdEV2ZW50O1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlU2hvd0FsZXJ0KGl0ZW06IElCbWJEYXRhQWxlcnRzUGFyc2VkKTogdm9pZCB7XHJcbiAgICB0aGlzLnZpc2libGVBbGVydCA9IGl0ZW07XHJcbiAgICBjb25zdCB7IHBEYXRlLCAuLi5hbGVydERhdGEgfSA9IGl0ZW07XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoIDwgMzUwIHx8XHJcbiAgICAgIHdpbmRvdy5pbm5lcldpZHRoIDwgMTAwMCB8fFxyXG4gICAgICB0aGlzLnNob3dNb2JpbGVWZXJzaW9uKClcclxuICAgICkge1xyXG4gICAgICBjb25zdCBkYXRhOiBJQm1iTmF0aXZlTW9kYWwgPSB7XHJcbiAgICAgICAgdGl0bGU6IGl0ZW0udGl0bGUsXHJcbiAgICAgICAgY29udGVudDogdGhpcy5kZXRhaWxDb250ZW50LFxyXG4gICAgICAgIHNpemU6ICdzbWFsbCcsXHJcbiAgICAgICAgc2Nyb2xsYWJsZTogdHJ1ZSxcclxuICAgICAgICBhY3Rpb25zOiBbe1xyXG4gICAgICAgICAgYnV0dG9uTmFtZTogJ2Nsb3NlJyxcclxuICAgICAgICAgIGxhYmVsOiAnQ2VycmFyJyxcclxuICAgICAgICAgIGFwcGVhcmFuY2U6ICdzZWNvbmRhcnktb3V0bGluZWQnLFxyXG4gICAgICAgICAgYWN0aW9uOiB0aGlzLmhhbmRsZUNsb3NlRGV0YWlsLmJpbmQodGhpcywgaXRlbSksXHJcbiAgICAgICAgfV0sXHJcbiAgICAgICAgY2xvc2VNb2RhbENsaWNrZWQ6IHRoaXMuaGFuZGxlQ2xvc2VEZXRhaWwuYmluZCh0aGlzLCBpdGVtKSxcclxuICAgICAgfTtcclxuICAgICAgdGhpcy5uYXRpdmVNb2RhbFNlcnZpY2Uub3Blbk1vZGFsKGRhdGEpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2hvd0FsZXJ0RGV0YWlsLmVtaXQoYWxlcnREYXRhKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNsb3NlRGV0YWlsKGFsZXJ0OiBJQm1iRGF0YUFsZXJ0c1BhcnNlZCk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBwRGF0ZSwgLi4uYWxlcnREYXRhIH0gPSBhbGVydDtcclxuICAgIHRoaXMuY2xvc2VBbGVydERldGFpbC5lbWl0KGFsZXJ0RGF0YSk7XHJcbiAgICB0aGlzLm5hdGl2ZU1vZGFsU2VydmljZS5jbG9zZUFsbE1vZGFscygpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQWxlcnRFdmVudChhbGVydDogSUJtYkRhdGFBbGVydCk6IHZvaWQge1xyXG4gICAgdGhpcy5hbGVydEV2ZW50LmVtaXQoYWxlcnQpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ2hhbmdlQWxlcnRTdGF0dXMoYWxlcnQ6IElCbWJEYXRhQWxlcnRzT3V0cHV0KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlQWxlcnRTdGF0dXMuZW1pdChhbGVydCk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVOYXZpZ2F0aW9uQmFyRXZlbnRzKGV2ZW50OiBJQm1iQWxlcnRDZW50ZXJQcm90b0V2ZW50Rm9vdGVyKTogdm9pZCB7XHJcbiAgICBjb25zdCBldmVudHMgPSB0aGlzLmFsZXJ0TGlzdCgpLmZpbHRlcigoYWxlcnQpID0+XHJcbiAgICAgIGV2ZW50LmFsZXJ0cy5pbmNsdWRlcyhhbGVydC5pZC50b1N0cmluZygpKSxcclxuICAgICk7XHJcblxyXG4gICAgaWYgKGV2ZW50cy5sZW5ndGggPT09IDApIHJldHVybjtcclxuICAgIGlmIChldmVudC5ldmVudCA9PT0gJ3RhZ3MnKSB7XHJcbiAgICAgIHRoaXMubmF2aWdhdGlvbkJhckV2ZW50cy5lbWl0KHtcclxuICAgICAgICBhbGVydHM6IGV2ZW50cyxcclxuICAgICAgICBldmVudDogJ3RhZ3MnLFxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgbmFtZXMgPSB7XHJcbiAgICAgIGlzUmVhZDogJ3JlYWQnLFxyXG4gICAgICBpc0Zhdm9yaXRlOiAnZmF2b3JpdGUnLFxyXG4gICAgICBpc0FyY2hpdmVkOiAnYXJjaGl2ZWQnLFxyXG4gICAgfTtcclxuICAgIGNvbnN0IGV2ZW50TmFtZSA9IG5hbWVzW2V2ZW50LmV2ZW50XSB8fCBldmVudC5ldmVudDtcclxuICAgIGNvbnN0IGlzUG9zaXRpdmVPcGVyYXRpb24gPSBldmVudHMuc29tZSgoYWxlcnQpID0+ICFhbGVydFtldmVudC5ldmVudF0pO1xyXG4gICAgY29uc3QgZXZlbnRUeXBlID0gaXNQb3NpdGl2ZU9wZXJhdGlvblxyXG4gICAgICA/IGBhZGRfJHtldmVudE5hbWV9YFxyXG4gICAgICA6IGByZW1vdmVfJHtldmVudE5hbWV9YDtcclxuICAgIHRoaXMubmF2aWdhdGlvbkJhckV2ZW50cy5lbWl0KHtcclxuICAgICAgYWxlcnRzOiBldmVudHMsXHJcbiAgICAgIGV2ZW50OiBldmVudFR5cGUgYXMgSUJtYkFsZXJ0Q2VudGVyRm9vdGVyRXZlbnROYW1lLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxzZWN0aW9uIGNsYXNzPVwiYm1iX2FsZXJ0LWNlbnRlclwiICNjb250YWluZXIgYm1iTGF5b3V0IG1hcmdpbj1cIm5vbmVcIj5cbiAgPGRpdlxuICAgIGJtYkxheW91dEl0ZW1cbiAgICBbY29sU21dPVwiNFwiXG4gICAgW2NvbExnXT1cInNob3dNb2JpbGVWZXJzaW9uKCkgPyAxMiA6IDVcIlxuICAgIGNsYXNzPVwiYm1iX2FsZXJ0LWNlbnRlci1tYWluXCJcbiAgICBbbmdDbGFzc109XCJ7ICdibWJfYWxlcnQtY2VudGVyLW1haW4tbm8tYm9yZGVyJzogc2hvd01vYmlsZVZlcnNpb24oKSB9XCJcbiAgPlxuICAgIEBpZiAoaXNMb2FkaW5nKCkpIHtcbiAgICAgIDxibWItbG9hZGVyXG4gICAgICAgIHRpdGxlPVwiQ2FyZ2FuZG8uLi5cIlxuICAgICAgICBzdWJ0aXRsZT1cIkNhcmdhbmRvIGxhcyBub3RpZmljYWNpb25lc1wiXG4gICAgICAgIFtvdmVybGF5XT1cImZhbHNlXCJcbiAgICAgICAgW2lzVmlzaWJsZV09XCJ0cnVlXCJcbiAgICAgICAgW2Vycm9yU3RhdGVdPVwiZmFsc2VcIlxuICAgICAgICBhcHBlYXJhbmNlPVwibm9ybWFsXCJcbiAgICAgICAgaWNvbj1cIndpZmlfb2ZmXCJcbiAgICAgICAgW2FjdGlvbnNdPVwiZmFsc2VcIlxuICAgICAgICBidXR0b25QcmltYXJ5PVwiUmVpbnRlbnRhclwiXG4gICAgICAgIGJ1dHRvblNlY29uZGFyeT1cIlNhbGlyXCJcbiAgICAgICAgW3Nob3dJbmxpbmVdPVwidHJ1ZVwiXG4gICAgICAvPlxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmICghaGlkZVRhYnMoKSkge1xuICAgICAgICA8Ym1iLXRhYnMgW3RhYnNdPVwidGFicygpXCIgWyhzZWxlY3RlZFRhYklkKV09XCJzZWxlY3RlZFRhYlwiIC8+XG4gICAgICB9XG4gICAgICBAaWYgKHNlbGVjdGVkVGFiKCkgPT09IDEpIHtcbiAgICAgICAgPGJtYi1hbGVydC1jZW50ZXItZm9ybVxuICAgICAgICAgIChzaG93QWxlcnREZXRhaWwpPVwiaGFuZGxlU2hvd0FsZXJ0KCRldmVudClcIlxuICAgICAgICAgIFtldmVudHNJbkNhdGVnb3JpZXNdPVwiZXZlbnRzSW5DYXRlZ29yaWVzKClcIlxuICAgICAgICAgIFtlbmFibGVNdWx0aXBsZVNlbGVjdGlvbl09XCJlbmFibGVNdWx0aXBsZVNlbGVjdGlvbigpXCJcbiAgICAgICAgICAoY2hhbmdlQWxlcnRTdGF0dXMpPVwiaGFuZGxlQ2hhbmdlQWxlcnRTdGF0dXMoJGV2ZW50KVwiXG4gICAgICAgICAgW2VtcHR5U3RhdGVEYXRhXT1cImVtcHR5U3RhdGVEYXRhKClcIlxuICAgICAgICAgIChuYXZpZ2F0aW9uQmFyRXZlbnRzKT1cImhhbmRsZU5hdmlnYXRpb25CYXJFdmVudHMoJGV2ZW50KVwiXG4gICAgICAgICAgZmlsdGVyQnk9XCJhbGxcIlxuICAgICAgICAvPlxuICAgICAgfSBAZWxzZSBpZiAoc2VsZWN0ZWRUYWIoKSA9PT0gMikge1xuICAgICAgICA8Ym1iLWFsZXJ0LWNlbnRlci1mb3JtXG4gICAgICAgICAgKHNob3dBbGVydERldGFpbCk9XCJoYW5kbGVTaG93QWxlcnQoJGV2ZW50KVwiXG4gICAgICAgICAgW2V2ZW50c0luQ2F0ZWdvcmllc109XCJldmVudHNJbkNhdGVnb3JpZXMoKVwiXG4gICAgICAgICAgW2VuYWJsZU11bHRpcGxlU2VsZWN0aW9uXT1cImVuYWJsZU11bHRpcGxlU2VsZWN0aW9uKClcIlxuICAgICAgICAgIChjaGFuZ2VBbGVydFN0YXR1cyk9XCJoYW5kbGVDaGFuZ2VBbGVydFN0YXR1cygkZXZlbnQpXCJcbiAgICAgICAgICBbZW1wdHlTdGF0ZURhdGFdPVwiZW1wdHlTdGF0ZURhdGEoKVwiXG4gICAgICAgICAgKG5hdmlnYXRpb25CYXJFdmVudHMpPVwiaGFuZGxlTmF2aWdhdGlvbkJhckV2ZW50cygkZXZlbnQpXCJcbiAgICAgICAgICBmaWx0ZXJCeT1cInVucmVhZFwiXG4gICAgICAgIC8+XG4gICAgICB9IEBlbHNlIGlmIChzZWxlY3RlZFRhYigpID09PSAzKSB7XG4gICAgICAgIDxibWItYWxlcnQtY2VudGVyLWZvcm1cbiAgICAgICAgICAoc2hvd0FsZXJ0RGV0YWlsKT1cImhhbmRsZVNob3dBbGVydCgkZXZlbnQpXCJcbiAgICAgICAgICBbZXZlbnRzSW5DYXRlZ29yaWVzXT1cImV2ZW50c0luQ2F0ZWdvcmllcygpXCJcbiAgICAgICAgICBbZW5hYmxlTXVsdGlwbGVTZWxlY3Rpb25dPVwiZW5hYmxlTXVsdGlwbGVTZWxlY3Rpb24oKVwiXG4gICAgICAgICAgKGNoYW5nZUFsZXJ0U3RhdHVzKT1cImhhbmRsZUNoYW5nZUFsZXJ0U3RhdHVzKCRldmVudClcIlxuICAgICAgICAgIFtlbXB0eVN0YXRlRGF0YV09XCJlbXB0eVN0YXRlRGF0YSgpXCJcbiAgICAgICAgICAobmF2aWdhdGlvbkJhckV2ZW50cyk9XCJoYW5kbGVOYXZpZ2F0aW9uQmFyRXZlbnRzKCRldmVudClcIlxuICAgICAgICAgIGZpbHRlckJ5PVwiZmF2b3JpdGVzXCJcbiAgICAgICAgLz5cbiAgICAgIH0gQGVsc2UgaWYgKHNlbGVjdGVkVGFiKCkgPT09IDQpIHtcbiAgICAgICAgPGJtYi1hbGVydC1jZW50ZXItZm9ybVxuICAgICAgICAgIChzaG93QWxlcnREZXRhaWwpPVwiaGFuZGxlU2hvd0FsZXJ0KCRldmVudClcIlxuICAgICAgICAgIFtldmVudHNJbkNhdGVnb3JpZXNdPVwiZXZlbnRzSW5DYXRlZ29yaWVzKClcIlxuICAgICAgICAgIChjaGFuZ2VBbGVydFN0YXR1cyk9XCJoYW5kbGVDaGFuZ2VBbGVydFN0YXR1cygkZXZlbnQpXCJcbiAgICAgICAgICBbZW1wdHlTdGF0ZURhdGFdPVwiZW1wdHlTdGF0ZURhdGEoKVwiXG4gICAgICAgICAgKG5hdmlnYXRpb25CYXJFdmVudHMpPVwiaGFuZGxlTmF2aWdhdGlvbkJhckV2ZW50cygkZXZlbnQpXCJcbiAgICAgICAgICBmaWx0ZXJCeT1cImFyY2hpdmVkXCJcbiAgICAgICAgLz5cbiAgICAgIH0gQGVsc2UgaWYgKHNlbGVjdGVkVGFiKCkgPT09IDUpIHtcbiAgICAgICAgPGJtYi1hbGVydC1jZW50ZXItYWRzXG4gICAgICAgICAgW2FkdmVydGlzZW1lbnRzXT1cImFkdmVydGlzZW1lbnRzTGlzdCgpXCJcbiAgICAgICAgICAoYWxlcnRFdmVudCk9XCJoYW5kbGVBbGVydEV2ZW50KCRldmVudClcIlxuICAgICAgICAvPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxzZWN0aW9uIGJtYkxheW91dEl0ZW0gW2NvbFNtXT1cIjRcIiBbY29sTGddPVwiMTJcIj5cbiAgICAgICAgICA8Ym1iLWFsZXJ0LWNlbnRlci1lbXB0eSBbZGF0YV09XCJlbXB0eVN0YXRlRGF0YSgpXCIgLz5cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgfVxuICAgIH1cbiAgPC9kaXY+XG4gIEBpZiAoIXNob3dNb2JpbGVWZXJzaW9uKCkgJiYgYWxlcnRMaXN0KCkubGVuZ3RoKSB7XG4gICAgPHNlY3Rpb25cbiAgICAgIGNsYXNzPVwiYm1iX2FsZXJ0LWNlbnRlci1jb250ZW50XCJcbiAgICAgIGJtYkxheW91dEl0ZW1cbiAgICAgIFtjb2xTbV09XCI0XCJcbiAgICAgIFtjb2xMZ109XCI3XCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRldGFpbENvbnRlbnRcIiAvPlxuICAgIDwvc2VjdGlvbj5cbiAgfVxuPC9zZWN0aW9uPlxuXG48bmctdGVtcGxhdGUgI2RldGFpbENvbnRlbnQ+XG4gIEBpZiAodmlzaWJsZUFsZXJ0KSB7XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJibWJfYWxlcnQtY2VudGVyLWNvbnRlbnQtbW9kYWxcIj5cbiAgICAgIDxoMSBjbGFzcz1cImZvbnQtYm9sZC03IGJtYl9hbGVydC1jZW50ZXItY29udGVudC1tb2RhbC10aXRsZVwiPlxuICAgICAgICB7eyB2aXNpYmxlQWxlcnQudGl0bGUgfX1cbiAgICAgIDwvaDE+XG4gICAgICBAZm9yIChpdGVtIG9mIHZpc2libGVBbGVydC5kZXNjcmlwdGlvbjsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIEBzd2l0Y2ggKGl0ZW0udHlwZSkge1xuICAgICAgICAgIEBjYXNlIChcInBhcmFncmFwaFwiKSB7XG4gICAgICAgICAgICA8cFxuICAgICAgICAgICAgICBbbmdDbGFzc109XCInYm1iX2FsZXJ0LWNlbnRlci1jb250ZW50LScgKyAoaXRlbS5zdHlsZSA/PyAnbm9ybWFsJylcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBpdGVtLnRleHQgfX1cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGNhc2UgKFwiaW1hZ2VcIikge1xuICAgICAgICAgICAgPGJtYi1pbWFnZVxuICAgICAgICAgICAgICBbc3JjXT1cIml0ZW0uaHJlZiB8fCAnJ1wiXG4gICAgICAgICAgICAgIFthbHRdPVwiaXRlbS50ZXh0XCJcbiAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwibm9uZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAY2FzZSAoXCJ2aWRlb1wiKSB7XG4gICAgICAgICAgICA8dmlkZW8gW3NyY109XCJpdGVtLmhyZWZcIiBjb250cm9scz48L3ZpZGVvPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAY2FzZSAoXCJ0aXRsZVwiKSB7XG4gICAgICAgICAgICA8aDNcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwiJ2JtYl9hbGVydC1jZW50ZXItY29udGVudC0nICsgKGl0ZW0uc3R5bGUgPz8gJ25vcm1hbCcpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgaXRlbS50ZXh0IH19XG4gICAgICAgICAgICA8L2gzPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAY2FzZSAoXCJidXR0b25cIikge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICBibWJCdXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIFthcHBlYXJhbmNlXT1cIml0ZW0udmFyaWFudCA/PyAncHJpbWFyeSdcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiXG4gICAgICAgICAgICAgICAgaXRlbS5ldmVudFxuICAgICAgICAgICAgICAgICAgPyBpdGVtPy5ldmVudCh2aXNpYmxlQWxlcnQuaWQpXG4gICAgICAgICAgICAgICAgICA6IGhhbmRsZUFsZXJ0RXZlbnQodmlzaWJsZUFsZXJ0KVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyBpdGVtLnRleHQgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgICBAY2FzZSAoXCJsaW5rXCIpIHtcbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIidibWJfYWxlcnQtY2VudGVyLWNvbnRlbnQtJyArIChpdGVtLnN0eWxlID8/ICdub3JtYWwnKVwiXG4gICAgICAgICAgICAgIFtocmVmXT1cIml0ZW0uaHJlZlwiXG4gICAgICAgICAgICAgID57eyBpdGVtLnRleHQgfX08L2FcbiAgICAgICAgICAgID5cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L3NlY3Rpb24+XG4gIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|