@valtimo/dossier 12.7.0 → 12.8.0
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/dossier-detail/dossier-detail.component.mjs +31 -9
- package/esm2022/lib/components/dossier-detail/tab/widgets/components/collection/widget-collection.component.mjs +18 -5
- package/esm2022/lib/components/dossier-detail/tab/widgets/components/field/widget-field.component.mjs +16 -5
- package/esm2022/lib/components/dossier-detail/tab/widgets/components/formio/widget-formio.component.mjs +1 -1
- package/esm2022/lib/components/dossier-list/dossier-list.component.mjs +27 -12
- package/esm2022/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.mjs +3 -3
- package/esm2022/lib/components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.mjs +9 -6
- package/esm2022/lib/constants/dossier-detail-layout.constants.mjs +7 -2
- package/esm2022/lib/models/case-widget-content.model.mjs +1 -1
- package/esm2022/lib/models/case-widget-display.model.mjs +1 -1
- package/fesm2022/valtimo-dossier.mjs +103 -34
- package/fesm2022/valtimo-dossier.mjs.map +1 -1
- package/lib/components/dossier-detail/dossier-detail.component.d.ts +6 -1
- package/lib/components/dossier-detail/dossier-detail.component.d.ts.map +1 -1
- package/lib/components/dossier-detail/tab/widgets/components/collection/widget-collection.component.d.ts +2 -0
- package/lib/components/dossier-detail/tab/widgets/components/collection/widget-collection.component.d.ts.map +1 -1
- package/lib/components/dossier-detail/tab/widgets/components/field/widget-field.component.d.ts +3 -0
- package/lib/components/dossier-detail/tab/widgets/components/field/widget-field.component.d.ts.map +1 -1
- package/lib/components/dossier-list/dossier-list.component.d.ts +2 -0
- package/lib/components/dossier-list/dossier-list.component.d.ts.map +1 -1
- package/lib/components/dossier-process-start-modal/dossier-process-start-modal.component.d.ts.map +1 -1
- package/lib/components/dossier-supporting-process-start-modal/dossier-supporting-process-start-modal.component.d.ts.map +1 -1
- package/lib/constants/dossier-detail-layout.constants.d.ts +6 -1
- package/lib/constants/dossier-detail-layout.constants.d.ts.map +1 -1
- package/lib/models/case-widget-content.model.d.ts +1 -0
- package/lib/models/case-widget-content.model.d.ts.map +1 -1
- package/lib/models/case-widget-display.model.d.ts +8 -0
- package/lib/models/case-widget-display.model.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -66,6 +66,7 @@ export class WidgetCollectionComponent extends WidgetProcess {
|
|
|
66
66
|
this.class = 'valtimo-widget-collection';
|
|
67
67
|
this.showPagination$ = new BehaviorSubject(false);
|
|
68
68
|
this._initialNumberOfElementsSubject$ = new BehaviorSubject(null);
|
|
69
|
+
this.noVisibleFields$ = new BehaviorSubject(true);
|
|
69
70
|
this.widgetTitle = signal('-');
|
|
70
71
|
this.widgetConfiguration$ = new BehaviorSubject(null);
|
|
71
72
|
this.paginationModel = signal(new PaginationModel());
|
|
@@ -91,7 +92,9 @@ export class WidgetCollectionComponent extends WidgetProcess {
|
|
|
91
92
|
const rows = new Array(initialNumberOfElements).fill(null);
|
|
92
93
|
return rows.map((_, index) => items[index] || { ...items[0], hidden: true });
|
|
93
94
|
}));
|
|
94
|
-
this.collectionWidgetCards$ = combineLatest([this.widgetConfiguration$, this._widgetData$]).pipe(filter(([widgetConfig, widgetData]) => !!widgetConfig && !!widgetData), tap(([widgetConfig]) =>
|
|
95
|
+
this.collectionWidgetCards$ = combineLatest([this.widgetConfiguration$, this._widgetData$]).pipe(filter(([widgetConfig, widgetData]) => !!widgetConfig && !!widgetData), tap(([widgetConfig]) => {
|
|
96
|
+
this.widgetTitle.set(widgetConfig.title);
|
|
97
|
+
}), map(([widgetConfig, widgetData]) => widgetData.map((cardData, index) => ({
|
|
95
98
|
hidden: cardData.hidden,
|
|
96
99
|
key: index,
|
|
97
100
|
title: this.getCardTitle({
|
|
@@ -102,7 +105,7 @@ export class WidgetCollectionComponent extends WidgetProcess {
|
|
|
102
105
|
...cardFieldsAccumulator,
|
|
103
106
|
this.getCardField(currentField, cardData),
|
|
104
107
|
], []),
|
|
105
|
-
}))));
|
|
108
|
+
}))), tap(card => this.checkEmptyFields(card)));
|
|
106
109
|
}
|
|
107
110
|
ngAfterViewInit() {
|
|
108
111
|
this.openWidthObserver();
|
|
@@ -130,6 +133,7 @@ export class WidgetCollectionComponent extends WidgetProcess {
|
|
|
130
133
|
title: field.title,
|
|
131
134
|
width: field.width,
|
|
132
135
|
value: resolvedValue || data.fields[field.key],
|
|
136
|
+
hideWhenEmpty: field.displayProperties?.hideWhenEmpty,
|
|
133
137
|
};
|
|
134
138
|
}
|
|
135
139
|
openWidthObserver() {
|
|
@@ -165,14 +169,23 @@ export class WidgetCollectionComponent extends WidgetProcess {
|
|
|
165
169
|
const convertedTitle = this.viewContentService.get(widgetTitleValue, {
|
|
166
170
|
...widgetTitleDisplayProperties,
|
|
167
171
|
viewType: widgetTitleDisplayProperties.type,
|
|
172
|
+
hideWhenEmpty: widgetTitleDisplayProperties.hideWhenEmpty,
|
|
168
173
|
});
|
|
169
174
|
if (convertedTitle)
|
|
170
175
|
return convertedTitle;
|
|
171
176
|
}
|
|
172
177
|
return '-';
|
|
173
178
|
}
|
|
179
|
+
checkEmptyFields(card) {
|
|
180
|
+
card.forEach(collection => {
|
|
181
|
+
collection.fields.forEach(field => {
|
|
182
|
+
if (!field.hideWhenEmpty || (field.hideWhenEmpty && field.value && field.value !== '-'))
|
|
183
|
+
this.noVisibleFields$.next(false);
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
}
|
|
174
187
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetCollectionComponent, deps: [{ token: i1.DocumentService }, { token: i2.PermissionService }, { token: i3.ViewContentService }, { token: i0.ChangeDetectorRef }, { token: i4.DossierWidgetsApiService }, { token: i5.WidgetsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
175
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: WidgetCollectionComponent, isStandalone: true, selector: "valtimo-widget-collection", inputs: { documentId: "documentId", tabKey: "tabKey", widgetConfiguration: "widgetConfiguration", widgetData: "widgetData" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "_widgetCollectionRef", first: true, predicate: ["widgetCollection"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n collectionWidgetCards: collectionWidgetCards$ | async,\n } as obs\"\n>\n <section class=\"valtimo-widget-collection__header\">\n <span class=\"valtimo-widget-collection__title\">{{ widgetTitle() }}</span>\n\n @if (obs.widgetConfiguration?.actions?.length === 1) {\n <button\n *ngIf=\"canCreateCamundaExecution$ | async\"\n cdsButton=\"ghost\"\n (click)=\"onProcessStartClick(obs.widgetConfiguration?.actions[0])\"\n >\n {{ obs.widgetConfiguration?.actions[0].name }}\n </button>\n }\n </section>\n\n <div\n #widgetCollection\n [ngClass]=\"{\n 'valtimo-widget-collection__render-vertically': amountOfColumns() === 1,\n 'valtimo-widget-collection__render-two-columns': amountOfColumns() === 2,\n 'valtimo-widget-collection__render-three-columns': amountOfColumns() === 3,\n 'valtimo-widget-collection__container': amountOfColumns() === 4,\n }\"\n >\n @for (card of obs?.collectionWidgetCards; track card.key) {\n <div\n class=\"valtimo-widget-collection__card\"\n [ngClass]=\"{'valtimo-widget-collection__card--hidden': card.hidden}\"\n >\n <span class=\"valtimo-widget-collection__card-title\">{{ card.title }}</span>\n\n @for (field of card.fields; track field.key) {\n <div\n [ngClass]=\"{\n 'valtimo-widget-collection__full-width-input': field?.width === 'full',\n 'valtimo-widget-collection__half-width-input': field?.width === 'half',\n }\"\n >\n <cds-label class=\"valtimo-widget-collection__label\" [attr.title]=\"field?.title\">\n {{ field?.title }}\n\n <input\n [value]=\"field?.value\"\n [readonly]=\"true\"\n class=\"valtimo-widget-collection__card-input\"\n cdsText\n />\n </cds-label>\n </div>\n }\n </div>\n }\n </div>\n\n @if (!obs?.collectionWidgetCards?.length) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n\n <cds-pagination-nav\n *ngIf=\"paginationModel() && (showPagination$ | async)\"\n class=\"valtimo-widget-collection__pagination\"\n [model]=\"paginationModel()\"\n (selectPage)=\"onSelectPage($event)\"\n >\n </cds-pagination-nav>\n</ng-container>\n", styles: [".valtimo-widget-collection{padding:24px}.valtimo-widget-collection .cds--label{overflow:hidden;text-overflow:ellipsis;width:100%}.valtimo-widget-collection__header{display:flex;align-items:center;justify-content:space-between}.valtimo-widget-collection__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.valtimo-widget-collection__container{display:flex;column-gap:16px}.valtimo-widget-collection,.valtimo-widget-collection__column{display:flex;flex-direction:column;width:100%;overflow:hidden}.valtimo-widget-collection__card{margin-top:16px;display:flex;flex-flow:row wrap;background-color:var(--cds-background);padding:16px;width:100%;gap:16px}.valtimo-widget-collection__card--hidden{visibility:hidden}.valtimo-widget-collection__card-title{color:var(--cds-text-primary);font-weight:500;font-size:14px;line-height:22px;font-style:italic;width:100%}.valtimo-widget-collection__card-input{background:transparent}.valtimo-widget-collection__full-width-input{width:100%}.valtimo-widget-collection__half-width-input{width:calc(50% - 16px);box-sizing:border-box}.valtimo-widget-collection__pagination{padding:8px 0;display:flex;justify-content:center}.valtimo-widget-collection__render-vertically,.valtimo-widget-collection__render-two-columns,.valtimo-widget-collection__render-three-columns{grid-gap:16px;align-items:stretch;overflow:hidden;text-overflow:ellipsis;width:100%}.valtimo-widget-collection__render-vertically{display:flex!important}.valtimo-widget-collection__render-two-columns{grid-template-columns:repeat(2,1fr)}.valtimo-widget-collection__render-three-columns{grid-template-columns:repeat(3,1fr)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i7.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i7.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: PaginationModule }, { kind: "component", type: i7.PaginationNav, selector: "cds-pagination-nav, ibm-pagination-navm", inputs: ["model", "disabled", "numOfItemsToShow", "translations"], outputs: ["selectPage"] }, { kind: "ngmodule", type: TilesModule }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i3.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i7.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
188
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: WidgetCollectionComponent, isStandalone: true, selector: "valtimo-widget-collection", inputs: { documentId: "documentId", tabKey: "tabKey", widgetConfiguration: "widgetConfiguration", widgetData: "widgetData" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "_widgetCollectionRef", first: true, predicate: ["widgetCollection"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n collectionWidgetCards: collectionWidgetCards$ | async,\n noVisibleFields: noVisibleFields$ | async,\n } as obs\"\n>\n <section class=\"valtimo-widget-collection__header\">\n <span class=\"valtimo-widget-collection__title\">{{ widgetTitle() }}</span>\n\n @if (obs.widgetConfiguration?.actions?.length === 1) {\n <button\n *ngIf=\"canCreateCamundaExecution$ | async\"\n cdsButton=\"ghost\"\n (click)=\"onProcessStartClick(obs.widgetConfiguration?.actions[0])\"\n >\n {{ obs.widgetConfiguration?.actions[0].name }}\n </button>\n }\n </section>\n\n <div\n #widgetCollection\n [ngClass]=\"{\n 'valtimo-widget-collection__render-vertically': amountOfColumns() === 1,\n 'valtimo-widget-collection__render-two-columns': amountOfColumns() === 2,\n 'valtimo-widget-collection__render-three-columns': amountOfColumns() === 3,\n 'valtimo-widget-collection__container': amountOfColumns() === 4,\n }\"\n >\n @for (card of obs?.collectionWidgetCards; track card.key) {\n <div\n *ngIf=\"!obs.noVisibleFields\"\n class=\"valtimo-widget-collection__card\"\n [ngClass]=\"{'valtimo-widget-collection__card--hidden': card.hidden}\"\n >\n <span class=\"valtimo-widget-collection__card-title\">{{ card.title }}</span>\n\n @for (field of card.fields; track field.key) {\n <div\n *ngIf=\"\n (field?.value !== null && field?.value !== '-' && field?.hideWhenEmpty) ||\n !field?.hideWhenEmpty\n \"\n [ngClass]=\"{\n 'valtimo-widget-collection__full-width-input': field?.width === 'full',\n 'valtimo-widget-collection__half-width-input': field?.width === 'half',\n }\"\n >\n <cds-label class=\"valtimo-widget-collection__label\" [attr.title]=\"field?.title\">\n {{ field?.title }}\n\n <input\n [value]=\"field?.value\"\n [readonly]=\"true\"\n class=\"valtimo-widget-collection__card-input\"\n cdsText\n />\n </cds-label>\n </div>\n }\n </div>\n }\n </div>\n\n @if (obs.noVisibleFields) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.emptyFields' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n\n @if (!obs?.collectionWidgetCards?.length) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n\n <cds-pagination-nav\n *ngIf=\"paginationModel() && (showPagination$ | async)\"\n class=\"valtimo-widget-collection__pagination\"\n [model]=\"paginationModel()\"\n (selectPage)=\"onSelectPage($event)\"\n >\n </cds-pagination-nav>\n</ng-container>\n", styles: [".valtimo-widget-collection{padding:24px}.valtimo-widget-collection .cds--label{overflow:hidden;text-overflow:ellipsis;width:100%}.valtimo-widget-collection__header{display:flex;align-items:center;justify-content:space-between}.valtimo-widget-collection__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.valtimo-widget-collection__container{display:flex;column-gap:16px}.valtimo-widget-collection,.valtimo-widget-collection__column{display:flex;flex-direction:column;width:100%;overflow:hidden}.valtimo-widget-collection__card{margin-top:16px;display:flex;flex-flow:row wrap;background-color:var(--cds-background);padding:16px;width:100%;gap:16px}.valtimo-widget-collection__card--hidden{visibility:hidden}.valtimo-widget-collection__card-title{color:var(--cds-text-primary);font-weight:500;font-size:14px;line-height:22px;font-style:italic;width:100%}.valtimo-widget-collection__card-input{background:transparent}.valtimo-widget-collection__full-width-input{width:100%}.valtimo-widget-collection__half-width-input{width:calc(50% - 16px);box-sizing:border-box}.valtimo-widget-collection__pagination{padding:8px 0;display:flex;justify-content:center}.valtimo-widget-collection__render-vertically,.valtimo-widget-collection__render-two-columns,.valtimo-widget-collection__render-three-columns{grid-gap:16px;align-items:stretch;overflow:hidden;text-overflow:ellipsis;width:100%}.valtimo-widget-collection__render-vertically{display:flex!important}.valtimo-widget-collection__render-two-columns{grid-template-columns:repeat(2,1fr)}.valtimo-widget-collection__render-three-columns{grid-template-columns:repeat(3,1fr)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i7.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i7.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }, { kind: "ngmodule", type: PaginationModule }, { kind: "component", type: i7.PaginationNav, selector: "cds-pagination-nav, ibm-pagination-navm", inputs: ["model", "disabled", "numOfItemsToShow", "translations"], outputs: ["selectPage"] }, { kind: "ngmodule", type: TilesModule }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i3.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i7.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
176
189
|
}
|
|
177
190
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetCollectionComponent, decorators: [{
|
|
178
191
|
type: Component,
|
|
@@ -184,7 +197,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
184
197
|
CarbonListModule,
|
|
185
198
|
TranslateModule,
|
|
186
199
|
ButtonModule,
|
|
187
|
-
], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n collectionWidgetCards: collectionWidgetCards$ | async,\n } as obs\"\n>\n <section class=\"valtimo-widget-collection__header\">\n <span class=\"valtimo-widget-collection__title\">{{ widgetTitle() }}</span>\n\n @if (obs.widgetConfiguration?.actions?.length === 1) {\n <button\n *ngIf=\"canCreateCamundaExecution$ | async\"\n cdsButton=\"ghost\"\n (click)=\"onProcessStartClick(obs.widgetConfiguration?.actions[0])\"\n >\n {{ obs.widgetConfiguration?.actions[0].name }}\n </button>\n }\n </section>\n\n <div\n #widgetCollection\n [ngClass]=\"{\n 'valtimo-widget-collection__render-vertically': amountOfColumns() === 1,\n 'valtimo-widget-collection__render-two-columns': amountOfColumns() === 2,\n 'valtimo-widget-collection__render-three-columns': amountOfColumns() === 3,\n 'valtimo-widget-collection__container': amountOfColumns() === 4,\n }\"\n >\n @for (card of obs?.collectionWidgetCards; track card.key) {\n <div\n class=\"valtimo-widget-collection__card\"\n [ngClass]=\"{'valtimo-widget-collection__card--hidden': card.hidden}\"\n >\n <span class=\"valtimo-widget-collection__card-title\">{{ card.title }}</span>\n\n @for (field of card.fields; track field.key) {\n <div\n [ngClass]=\"{\n 'valtimo-widget-collection__full-width-input': field?.width === 'full',\n 'valtimo-widget-collection__half-width-input': field?.width === 'half',\n }\"\n >\n <cds-label class=\"valtimo-widget-collection__label\" [attr.title]=\"field?.title\">\n {{ field?.title }}\n\n <input\n [value]=\"field?.value\"\n [readonly]=\"true\"\n class=\"valtimo-widget-collection__card-input\"\n cdsText\n />\n </cds-label>\n </div>\n }\n </div>\n }\n </div>\n\n @if (!obs?.collectionWidgetCards?.length) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n\n <cds-pagination-nav\n *ngIf=\"paginationModel() && (showPagination$ | async)\"\n class=\"valtimo-widget-collection__pagination\"\n [model]=\"paginationModel()\"\n (selectPage)=\"onSelectPage($event)\"\n >\n </cds-pagination-nav>\n</ng-container>\n", styles: [".valtimo-widget-collection{padding:24px}.valtimo-widget-collection .cds--label{overflow:hidden;text-overflow:ellipsis;width:100%}.valtimo-widget-collection__header{display:flex;align-items:center;justify-content:space-between}.valtimo-widget-collection__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.valtimo-widget-collection__container{display:flex;column-gap:16px}.valtimo-widget-collection,.valtimo-widget-collection__column{display:flex;flex-direction:column;width:100%;overflow:hidden}.valtimo-widget-collection__card{margin-top:16px;display:flex;flex-flow:row wrap;background-color:var(--cds-background);padding:16px;width:100%;gap:16px}.valtimo-widget-collection__card--hidden{visibility:hidden}.valtimo-widget-collection__card-title{color:var(--cds-text-primary);font-weight:500;font-size:14px;line-height:22px;font-style:italic;width:100%}.valtimo-widget-collection__card-input{background:transparent}.valtimo-widget-collection__full-width-input{width:100%}.valtimo-widget-collection__half-width-input{width:calc(50% - 16px);box-sizing:border-box}.valtimo-widget-collection__pagination{padding:8px 0;display:flex;justify-content:center}.valtimo-widget-collection__render-vertically,.valtimo-widget-collection__render-two-columns,.valtimo-widget-collection__render-three-columns{grid-gap:16px;align-items:stretch;overflow:hidden;text-overflow:ellipsis;width:100%}.valtimo-widget-collection__render-vertically{display:flex!important}.valtimo-widget-collection__render-two-columns{grid-template-columns:repeat(2,1fr)}.valtimo-widget-collection__render-three-columns{grid-template-columns:repeat(3,1fr)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
200
|
+
], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n collectionWidgetCards: collectionWidgetCards$ | async,\n noVisibleFields: noVisibleFields$ | async,\n } as obs\"\n>\n <section class=\"valtimo-widget-collection__header\">\n <span class=\"valtimo-widget-collection__title\">{{ widgetTitle() }}</span>\n\n @if (obs.widgetConfiguration?.actions?.length === 1) {\n <button\n *ngIf=\"canCreateCamundaExecution$ | async\"\n cdsButton=\"ghost\"\n (click)=\"onProcessStartClick(obs.widgetConfiguration?.actions[0])\"\n >\n {{ obs.widgetConfiguration?.actions[0].name }}\n </button>\n }\n </section>\n\n <div\n #widgetCollection\n [ngClass]=\"{\n 'valtimo-widget-collection__render-vertically': amountOfColumns() === 1,\n 'valtimo-widget-collection__render-two-columns': amountOfColumns() === 2,\n 'valtimo-widget-collection__render-three-columns': amountOfColumns() === 3,\n 'valtimo-widget-collection__container': amountOfColumns() === 4,\n }\"\n >\n @for (card of obs?.collectionWidgetCards; track card.key) {\n <div\n *ngIf=\"!obs.noVisibleFields\"\n class=\"valtimo-widget-collection__card\"\n [ngClass]=\"{'valtimo-widget-collection__card--hidden': card.hidden}\"\n >\n <span class=\"valtimo-widget-collection__card-title\">{{ card.title }}</span>\n\n @for (field of card.fields; track field.key) {\n <div\n *ngIf=\"\n (field?.value !== null && field?.value !== '-' && field?.hideWhenEmpty) ||\n !field?.hideWhenEmpty\n \"\n [ngClass]=\"{\n 'valtimo-widget-collection__full-width-input': field?.width === 'full',\n 'valtimo-widget-collection__half-width-input': field?.width === 'half',\n }\"\n >\n <cds-label class=\"valtimo-widget-collection__label\" [attr.title]=\"field?.title\">\n {{ field?.title }}\n\n <input\n [value]=\"field?.value\"\n [readonly]=\"true\"\n class=\"valtimo-widget-collection__card-input\"\n cdsText\n />\n </cds-label>\n </div>\n }\n </div>\n }\n </div>\n\n @if (obs.noVisibleFields) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.emptyFields' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n\n @if (!obs?.collectionWidgetCards?.length) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n }\n\n <cds-pagination-nav\n *ngIf=\"paginationModel() && (showPagination$ | async)\"\n class=\"valtimo-widget-collection__pagination\"\n [model]=\"paginationModel()\"\n (selectPage)=\"onSelectPage($event)\"\n >\n </cds-pagination-nav>\n</ng-container>\n", styles: [".valtimo-widget-collection{padding:24px}.valtimo-widget-collection .cds--label{overflow:hidden;text-overflow:ellipsis;width:100%}.valtimo-widget-collection__header{display:flex;align-items:center;justify-content:space-between}.valtimo-widget-collection__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.valtimo-widget-collection__container{display:flex;column-gap:16px}.valtimo-widget-collection,.valtimo-widget-collection__column{display:flex;flex-direction:column;width:100%;overflow:hidden}.valtimo-widget-collection__card{margin-top:16px;display:flex;flex-flow:row wrap;background-color:var(--cds-background);padding:16px;width:100%;gap:16px}.valtimo-widget-collection__card--hidden{visibility:hidden}.valtimo-widget-collection__card-title{color:var(--cds-text-primary);font-weight:500;font-size:14px;line-height:22px;font-style:italic;width:100%}.valtimo-widget-collection__card-input{background:transparent}.valtimo-widget-collection__full-width-input{width:100%}.valtimo-widget-collection__half-width-input{width:calc(50% - 16px);box-sizing:border-box}.valtimo-widget-collection__pagination{padding:8px 0;display:flex;justify-content:center}.valtimo-widget-collection__render-vertically,.valtimo-widget-collection__render-two-columns,.valtimo-widget-collection__render-three-columns{grid-gap:16px;align-items:stretch;overflow:hidden;text-overflow:ellipsis;width:100%}.valtimo-widget-collection__render-vertically{display:flex!important}.valtimo-widget-collection__render-two-columns{grid-template-columns:repeat(2,1fr)}.valtimo-widget-collection__render-three-columns{grid-template-columns:repeat(3,1fr)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
188
201
|
}], ctorParameters: () => [{ type: i1.DocumentService }, { type: i2.PermissionService }, { type: i3.ViewContentService }, { type: i0.ChangeDetectorRef }, { type: i4.DossierWidgetsApiService }, { type: i5.WidgetsService }], propDecorators: { class: [{
|
|
189
202
|
type: HostBinding,
|
|
190
203
|
args: ['class']
|
|
@@ -202,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
202
215
|
}], widgetData: [{
|
|
203
216
|
type: Input
|
|
204
217
|
}] } });
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbGxlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL2NvbGxlY3Rpb24vd2lkZ2V0LWNvbGxlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL2NvbGxlY3Rpb24vd2lkZ2V0LWNvbGxlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsWUFBWSxFQUNaLFdBQVcsRUFDWCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLFdBQVcsR0FDWixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFFTCx3QkFBd0IsR0FNekIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBcUIsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsZUFBZSxFQUFD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QU8sZ0JBQWdCLENBQUM7UUFDMUIsQ0FBQzthQUFNLElBQUksNEJBQTRCLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztZQUM1RCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLGdCQUFnQixFQUFFO2dCQUNuRSxHQUFHLDRCQUE0QjtnQkFDL0IsUUFBUSxFQUFFLDRCQUE0QixDQUFDLElBQUk7YUFDNUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxjQUFjO2dCQUFFLE9BQU8sY0FBYyxDQUFDO1FBQzVDLENBQUM7UUFFRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUM7K0dBL0xVLHlCQUF5QjttR0FBekIseUJBQXlCLHFaQ3pFdEMsb3BHQTJGQSx3eUVEM0JJLFlBQVkscVJBQ1osV0FBVyx5V0FDWCxnQkFBZ0IsOE5BQ2hCLFdBQVcsOEJBQ1gsZ0JBQWdCLG9QQUNoQixlQUFlLDJGQUNmLFlBQVk7OzRGQUdILHlCQUF5QjtrQkFqQnJDLFNBQVM7K0JBQ0UsMkJBQTJCLG1CQUdwQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGNBQ3pCLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixZQUFZO3FCQUNiO3lQQUdxQyxLQUFLO3NCQUExQyxXQUFXO3VCQUFDLE9BQU87Z0JBQ21CLG9CQUFvQjtzQkFBMUQsU0FBUzt1QkFBQyxrQkFBa0I7Z0JBRUcsVUFBVTtzQkFBekMsS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUM7Z0JBQ1MsTUFBTTtzQkFBckMsS0FBSzt1QkFBQyxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUM7Z0JBQ0gsbUJBQW1CO3NCQUF0QyxLQUFLO2dCQWVjLFVBQVU7c0JBQTdCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIHNpZ25hbCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEJ1dHRvbk1vZHVsZSxcbiAgSW5wdXRNb2R1bGUsXG4gIFBhZ2luYXRpb25Nb2RlbCxcbiAgUGFnaW5hdGlvbk1vZHVsZSxcbiAgVGlsZXNNb2R1bGUsXG59IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtcbiAgQ2FzZVdpZGdldEFjdGlvbixcbiAgQ2FzZVdpZGdldERpc3BsYXlUeXBlS2V5LFxuICBDb2xsZWN0aW9uQ2FzZVdpZGdldCxcbiAgQ29sbGVjdGlvbkNhc2VXaWRnZXRDYXJkRGF0YSxcbiAgQ29sbGVjdGlvbkNhc2VXaWRnZXRGaWVsZCxcbiAgQ29sbGVjdGlvbkNhc2VXaWRnZXRUaXRsZSxcbiAgQ29sbGVjdGlvbldpZGdldFJlc29sdmVkRmllbGQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NhcmJvbkxpc3RNb2R1bGUsIFZpZXdDb250ZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1BhZ2V9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge0Rvc3NpZXJXaWRnZXRzQXBpU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtXaWRnZXRQcm9jZXNzfSBmcm9tICcuLi93aWRnZXQtcHJvY2Vzcy93aWRnZXQtcHJvY2Vzcyc7XG5pbXBvcnQge0RvY3VtZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHtQZXJtaXNzaW9uU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vYWNjZXNzLWNvbnRyb2wnO1xuaW1wb3J0IHtXaWRnZXRzU2VydmljZX0gZnJvbSAnLi4vLi4vd2lkZ2V0cy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby13aWRnZXQtY29sbGVjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtY29sbGVjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dpZGdldC1jb2xsZWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElucHV0TW9kdWxlLFxuICAgIFBhZ2luYXRpb25Nb2R1bGUsXG4gICAgVGlsZXNNb2R1bGUsXG4gICAgQ2FyYm9uTGlzdE1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRDb2xsZWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgV2lkZ2V0UHJvY2VzcyBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKSBwdWJsaWMgcmVhZG9ubHkgY2xhc3MgPSAndmFsdGltby13aWRnZXQtY29sbGVjdGlvbic7XG4gIEBWaWV3Q2hpbGQoJ3dpZGdldENvbGxlY3Rpb24nKSBwcml2YXRlIF93aWRnZXRDb2xsZWN0aW9uUmVmOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSkgcHVibGljIGRvY3VtZW50SWQ6IHN0cmluZztcbiAgQElucHV0KHtyZXF1aXJlZDogdHJ1ZX0pIHB1YmxpYyB0YWJLZXk6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIHNldCB3aWRnZXRDb25maWd1cmF0aW9uKHZhbHVlOiBDb2xsZWN0aW9uQ2FzZVdpZGdldCkge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICB0aGlzLmJhc2VXaWRnZXRDb25maWd1cmF0aW9uID0gdmFsdWU7XG4gICAgdGhpcy53aWRnZXRDb25maWd1cmF0aW9uJC5uZXh0KHZhbHVlKTtcbiAgfVxuICBwdWJsaWMgcmVhZG9ubHkgc2hvd1BhZ2luYXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfaW5pdGlhbE51bWJlck9mRWxlbWVudHNTdWJqZWN0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPihudWxsKTtcblxuICBwcml2YXRlIGdldCBfaW5pdGlhbE51bWJlck9mRWxlbWVudHMkKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuX2luaXRpYWxOdW1iZXJPZkVsZW1lbnRzU3ViamVjdCQucGlwZShcbiAgICAgIGZpbHRlcihudW1iZXJPZkVsZW1lbnRzID0+IG51bWJlck9mRWxlbWVudHMgIT09IG51bGwpXG4gICAgKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgd2lkZ2V0RGF0YSh2YWx1ZTogUGFnZTxDb2xsZWN0aW9uQ2FzZVdpZGdldENhcmREYXRhPiB8IG51bGwpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG5cbiAgICB0aGlzLnNob3dQYWdpbmF0aW9uJC5uZXh0KHZhbHVlLnRvdGFsRWxlbWVudHMgPiB2YWx1ZS5zaXplKTtcbiAgICB0aGlzLl9pbml0aWFsTnVtYmVyT2ZFbGVtZW50c1N1YmplY3QkLm5leHQodmFsdWUubnVtYmVyT2ZFbGVtZW50cyk7XG4gICAgdGhpcy5fd2lkZ2V0RGF0YVN1YmplY3QkLm5leHQodmFsdWUuY29udGVudCk7XG5cbiAgICB0aGlzLnBhZ2luYXRpb25Nb2RlbC5zZXQoXG4gICAgICB2YWx1ZS50b3RhbFBhZ2VzIDwgMFxuICAgICAgICA/IG51bGxcbiAgICAgICAgOiB7XG4gICAgICAgICAgICBjdXJyZW50UGFnZTogMSxcbiAgICAgICAgICAgIHRvdGFsRGF0YUxlbmd0aDogTWF0aC5jZWlsKHZhbHVlLnRvdGFsRWxlbWVudHMgLyB2YWx1ZS5zaXplKSxcbiAgICAgICAgICAgIHBhZ2VMZW5ndGg6IHZhbHVlLnNpemUsXG4gICAgICAgICAgfVxuICAgICk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHdpZGdldFRpdGxlID0gc2lnbmFsKCctJyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHdpZGdldENvbmZpZ3VyYXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb2xsZWN0aW9uQ2FzZVdpZGdldCB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgcmVhZG9ubHkgcGFnaW5hdGlvbk1vZGVsID0gc2lnbmFsPFBhZ2luYXRpb25Nb2RlbD4obmV3IFBhZ2luYXRpb25Nb2RlbCgpKTtcbiAgcHVibGljIHJlYWRvbmx5IGFtb3VudE9mQ29sdW1ucyA9IHNpZ25hbCgwKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF93aWRnZXREYXRhU3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbGxlY3Rpb25DYXNlV2lkZ2V0Q2FyZERhdGFbXT4obnVsbCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfcXVlcnlQYXJhbXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmcgfCBudWxsPihudWxsKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF93aWRnZXREYXRhJDogT2JzZXJ2YWJsZTxDb2xsZWN0aW9uQ2FzZVdpZGdldENhcmREYXRhW10+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fd2lkZ2V0RGF0YVN1YmplY3QkLFxuICAgIHRoaXMuX3F1ZXJ5UGFyYW1zJCxcbiAgICB0aGlzLl9pbml0aWFsTnVtYmVyT2ZFbGVtZW50cyQsXG4gICAgdGhpcy53aWRnZXRDb25maWd1cmF0aW9uJCxcbiAgXSkucGlwZShcbiAgICBzd2l0Y2hNYXAoKFtkYXRhLCBxdWVyeVBhcmFtcywgaW5pdGlhbE51bWJlck9mRWxlbWVudHMsIHdpZGdldENvbmZpZ3VyYXRpb25dKSA9PlxuICAgICAgY29tYmluZUxhdGVzdChbXG4gICAgICAgICFxdWVyeVBhcmFtc1xuICAgICAgICAgID8gb2YoZGF0YSlcbiAgICAgICAgICA6IHRoaXMud2lkZ2V0QXBpU2VydmljZVxuICAgICAgICAgICAgICAuZ2V0V2lkZ2V0RGF0YSh0aGlzLmRvY3VtZW50SWQsIHRoaXMudGFiS2V5LCB3aWRnZXRDb25maWd1cmF0aW9uLmtleSwgcXVlcnlQYXJhbXMpXG4gICAgICAgICAgICAgIC5waXBlKG1hcCgocmVzOiBQYWdlPENvbGxlY3Rpb25DYXNlV2lkZ2V0Q2FyZERhdGE+KSA9PiByZXMuY29udGVudCkpLFxuICAgICAgICBvZihpbml0aWFsTnVtYmVyT2ZFbGVtZW50cyksXG4gICAgICBdKVxuICAgICksXG4gICAgZmlsdGVyKChbaXRlbXNdKSA9PiAhIWl0ZW1zKSxcbiAgICBtYXAoKFtpdGVtcywgaW5pdGlhbE51bWJlck9mRWxlbWVudHNdKSA9PiB7XG4gICAgICBpZiAoaXRlbXMubGVuZ3RoID09PSBpbml0aWFsTnVtYmVyT2ZFbGVtZW50cykge1xuICAgICAgICByZXR1cm4gaXRlbXM7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJvd3MgPSBuZXcgQXJyYXk8bnVtYmVyPihpbml0aWFsTnVtYmVyT2ZFbGVtZW50cykuZmlsbChudWxsKTtcblxuICAgICAgcmV0dXJuIHJvd3MubWFwKChfLCBpbmRleCkgPT4gaXRlbXNbaW5kZXhdIHx8IHsuLi5pdGVtc1swXSwgaGlkZGVuOiB0cnVlfSk7XG4gICAgfSlcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29sbGVjdGlvbldpZGdldENhcmRzJDogT2JzZXJ2YWJsZTxcbiAgICB7dGl0bGU6IHN0cmluZzsgZmllbGRzOiBDb2xsZWN0aW9uV2lkZ2V0UmVzb2x2ZWRGaWVsZFtdOyBrZXk6IG51bWJlcjsgaGlkZGVuOiBib29sZWFufVtdXG4gID4gPSBjb21iaW5lTGF0ZXN0KFt0aGlzLndpZGdldENvbmZpZ3VyYXRpb24kLCB0aGlzLl93aWRnZXREYXRhJF0pLnBpcGUoXG4gICAgZmlsdGVyKChbd2lkZ2V0Q29uZmlnLCB3aWRnZXREYXRhXSkgPT4gISF3aWRnZXRDb25maWcgJiYgISF3aWRnZXREYXRhKSxcbiAgICB0YXAoKFt3aWRnZXRDb25maWddKSA9PiB0aGlzLndpZGdldFRpdGxlLnNldCh3aWRnZXRDb25maWcudGl0bGUpKSxcbiAgICBtYXAoKFt3aWRnZXRDb25maWcsIHdpZGdldERhdGFdKSA9PlxuICAgICAgd2lkZ2V0RGF0YS5tYXAoKGNhcmREYXRhLCBpbmRleCkgPT4gKHtcbiAgICAgICAgaGlkZGVuOiBjYXJkRGF0YS5oaWRkZW4sXG4gICAgICAgIGtleTogaW5kZXgsXG4gICAgICAgIHRpdGxlOiB0aGlzLmdldENhcmRUaXRsZSh7XG4gICAgICAgICAgdmFsdWU6IGNhcmREYXRhLnRpdGxlLFxuICAgICAgICAgIGRpc3BsYXlQcm9wZXJ0aWVzOiB3aWRnZXRDb25maWc/LnByb3BlcnRpZXM/LnRpdGxlPy5kaXNwbGF5UHJvcGVydGllcyxcbiAgICAgICAgfSksXG4gICAgICAgIGZpZWxkczogd2lkZ2V0Q29uZmlnPy5wcm9wZXJ0aWVzLmZpZWxkcy5yZWR1Y2UoXG4gICAgICAgICAgKGNhcmRGaWVsZHNBY2N1bXVsYXRvciwgY3VycmVudEZpZWxkKSA9PiBbXG4gICAgICAgICAgICAuLi5jYXJkRmllbGRzQWNjdW11bGF0b3IsXG4gICAgICAgICAgICB0aGlzLmdldENhcmRGaWVsZChjdXJyZW50RmllbGQsIGNhcmREYXRhKSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIFtdXG4gICAgICAgICksXG4gICAgICB9KSlcbiAgICApXG4gICk7XG5cbiAgcHJpdmF0ZSBfb2JzZXJ2ZXIhOiBSZXNpemVPYnNlcnZlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHBlcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250ZW50U2VydmljZTogVmlld0NvbnRlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpZGdldEFwaVNlcnZpY2U6IERvc3NpZXJXaWRnZXRzQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpZGdldHNTZXJ2aWNlOiBXaWRnZXRzU2VydmljZVxuICApIHtcbiAgICBzdXBlcihkb2N1bWVudFNlcnZpY2UsIHBlcm1pc3Npb25TZXJ2aWNlKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuV2lkdGhPYnNlcnZlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX29ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3RQYWdlKHBhZ2U6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuX3F1ZXJ5UGFyYW1zJC5uZXh0KGBwYWdlPSR7cGFnZSAtIDF9JnNpemU9JHt0aGlzLnBhZ2luYXRpb25Nb2RlbCgpLnBhZ2VMZW5ndGh9YCk7XG4gICAgdGhpcy5wYWdpbmF0aW9uTW9kZWwudXBkYXRlKChtb2RlbDogUGFnaW5hdGlvbk1vZGVsKSA9PiAoe1xuICAgICAgLi4ubW9kZWwsXG4gICAgICBjdXJyZW50UGFnZTogcGFnZSxcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgb25Qcm9jZXNzU3RhcnRDbGljayhwcm9jZXNzOiBDYXNlV2lkZ2V0QWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy53aWRnZXRzU2VydmljZS5zdGFydFByb2Nlc3MocHJvY2Vzcy5wcm9jZXNzRGVmaW5pdGlvbktleSk7XG4gIH1cblxuICBwcml2YXRlIGdldENhcmRGaWVsZChcbiAgICBmaWVsZDogQ29sbGVjdGlvbkNhc2VXaWRnZXRGaWVsZCxcbiAgICBkYXRhOiBDb2xsZWN0aW9uQ2FzZVdpZGdldENhcmREYXRhXG4gICk6IENvbGxlY3Rpb25XaWRnZXRSZXNvbHZlZEZpZWxkIHtcbiAgICBjb25zdCByZXNvbHZlZFZhbHVlID0gdGhpcy52aWV3Q29udGVudFNlcnZpY2UuZ2V0KGRhdGEuZmllbGRzW2ZpZWxkLmtleV0sIHtcbiAgICAgIC4uLmZpZWxkLmRpc3BsYXlQcm9wZXJ0aWVzLFxuICAgICAgdmlld1R5cGU6IGZpZWxkLmRpc3BsYXlQcm9wZXJ0aWVzPy50eXBlID8/IENhc2VXaWRnZXREaXNwbGF5VHlwZUtleS5URVhULFxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGtleTogZmllbGQua2V5LFxuICAgICAgdGl0bGU6IGZpZWxkLnRpdGxlLFxuICAgICAgd2lkdGg6IGZpZWxkLndpZHRoLFxuICAgICAgdmFsdWU6IHJlc29sdmVkVmFsdWUgfHwgZGF0YS5maWVsZHNbZmllbGQua2V5XSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuV2lkdGhPYnNlcnZlcigpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihldmVudCA9PiB7XG4gICAgICB0aGlzLm9ic2VydmVyTXV0YXRpb24oZXZlbnQpO1xuICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcy5fd2lkZ2V0Q29sbGVjdGlvblJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgb2JzZXJ2ZXJNdXRhdGlvbihldmVudDogQXJyYXk8UmVzaXplT2JzZXJ2ZXJFbnRyeT4pOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50V2lkdGggPSBldmVudFswXT8uYm9yZGVyQm94U2l6ZVswXT8uaW5saW5lU2l6ZTtcblxuICAgIGlmICh0eXBlb2YgZWxlbWVudFdpZHRoID09PSAnbnVtYmVyJyAmJiBlbGVtZW50V2lkdGggIT09IDApIHtcbiAgICAgIGlmIChlbGVtZW50V2lkdGggPCA2NDApIHtcbiAgICAgICAgdGhpcy5hbW91bnRPZkNvbHVtbnMuc2V0KDEpO1xuICAgICAgfSBlbHNlIGlmIChlbGVtZW50V2lkdGggPiA2NDAgJiYgZWxlbWVudFdpZHRoIDw9IDc2OCkge1xuICAgICAgICB0aGlzLmFtb3VudE9mQ29sdW1ucy5zZXQoMik7XG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnRXaWR0aCA+IDc2OCAmJiBlbGVtZW50V2lkdGggPD0gMTA4MCkge1xuICAgICAgICB0aGlzLmFtb3VudE9mQ29sdW1ucy5zZXQoMyk7XG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnRXaWR0aCA+IDEwODApIHtcbiAgICAgICAgdGhpcy5hbW91bnRPZkNvbHVtbnMuc2V0KDQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FyZFRpdGxlKGNvbGxlY3Rpb25DYXNlV2lkZ2V0VGl0bGU6IENvbGxlY3Rpb25DYXNlV2lkZ2V0VGl0bGUpOiBzdHJpbmcge1xuICAgIGNvbnN0IHdpZGdldFRpdGxlVmFsdWUgPSBjb2xsZWN0aW9uQ2FzZVdpZGdldFRpdGxlLnZhbHVlO1xuICAgIGNvbnN0IHdpZGdldFRpdGxlRGlzcGxheVByb3BlcnRpZXMgPSBjb2xsZWN0aW9uQ2FzZVdpZGdldFRpdGxlLmRpc3BsYXlQcm9wZXJ0aWVzO1xuXG4gICAgaWYgKCF3aWRnZXRUaXRsZURpc3BsYXlQcm9wZXJ0aWVzICYmIHdpZGdldFRpdGxlVmFsdWUpIHtcbiAgICAgIHJldHVybiB3aWRnZXRUaXRsZVZhbHVlO1xuICAgIH0gZWxzZSBpZiAod2lkZ2V0VGl0bGVEaXNwbGF5UHJvcGVydGllcyAmJiB3aWRnZXRUaXRsZVZhbHVlKSB7XG4gICAgICBjb25zdCBjb252ZXJ0ZWRUaXRsZSA9IHRoaXMudmlld0NvbnRlbnRTZXJ2aWNlLmdldCh3aWRnZXRUaXRsZVZhbHVlLCB7XG4gICAgICAgIC4uLndpZGdldFRpdGxlRGlzcGxheVByb3BlcnRpZXMsXG4gICAgICAgIHZpZXdUeXBlOiB3aWRnZXRUaXRsZURpc3BsYXlQcm9wZXJ0aWVzLnR5cGUsXG4gICAgICB9KTtcblxuICAgICAgaWYgKGNvbnZlcnRlZFRpdGxlKSByZXR1cm4gY29udmVydGVkVGl0bGU7XG4gICAgfVxuXG4gICAgcmV0dXJuICctJztcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48bmctY29udGFpbmVyXG4gICpuZ0lmPVwie1xuICAgIHdpZGdldENvbmZpZ3VyYXRpb246IHdpZGdldENvbmZpZ3VyYXRpb24kIHwgYXN5bmMsXG4gICAgY29sbGVjdGlvbldpZGdldENhcmRzOiBjb2xsZWN0aW9uV2lkZ2V0Q2FyZHMkIHwgYXN5bmMsXG4gIH0gYXMgb2JzXCJcbj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJ2YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uX19oZWFkZXJcIj5cbiAgICA8c3BhbiBjbGFzcz1cInZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX3RpdGxlXCI+e3sgd2lkZ2V0VGl0bGUoKSB9fTwvc3Bhbj5cblxuICAgIEBpZiAob2JzLndpZGdldENvbmZpZ3VyYXRpb24/LmFjdGlvbnM/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cImNhbkNyZWF0ZUNhbXVuZGFFeGVjdXRpb24kIHwgYXN5bmNcIlxuICAgICAgICBjZHNCdXR0b249XCJnaG9zdFwiXG4gICAgICAgIChjbGljayk9XCJvblByb2Nlc3NTdGFydENsaWNrKG9icy53aWRnZXRDb25maWd1cmF0aW9uPy5hY3Rpb25zWzBdKVwiXG4gICAgICA+XG4gICAgICAgIHt7IG9icy53aWRnZXRDb25maWd1cmF0aW9uPy5hY3Rpb25zWzBdLm5hbWUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgPC9zZWN0aW9uPlxuXG4gIDxkaXZcbiAgICAjd2lkZ2V0Q29sbGVjdGlvblxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICd2YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uX19yZW5kZXItdmVydGljYWxseSc6IGFtb3VudE9mQ29sdW1ucygpID09PSAxLFxuICAgICAgJ3ZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX3JlbmRlci10d28tY29sdW1ucyc6IGFtb3VudE9mQ29sdW1ucygpID09PSAyLFxuICAgICAgJ3ZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX3JlbmRlci10aHJlZS1jb2x1bW5zJzogYW1vdW50T2ZDb2x1bW5zKCkgPT09IDMsXG4gICAgICAndmFsdGltby13aWRnZXQtY29sbGVjdGlvbl9fY29udGFpbmVyJzogYW1vdW50T2ZDb2x1bW5zKCkgPT09IDQsXG4gICAgfVwiXG4gID5cbiAgICBAZm9yIChjYXJkIG9mIG9icz8uY29sbGVjdGlvbldpZGdldENhcmRzOyB0cmFjayBjYXJkLmtleSkge1xuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX2NhcmRcIlxuICAgICAgICBbbmdDbGFzc109XCJ7J3ZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX2NhcmQtLWhpZGRlbic6IGNhcmQuaGlkZGVufVwiXG4gICAgICA+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdGltby13aWRnZXQtY29sbGVjdGlvbl9fY2FyZC10aXRsZVwiPnt7IGNhcmQudGl0bGUgfX08L3NwYW4+XG5cbiAgICAgICAgQGZvciAoZmllbGQgb2YgY2FyZC5maWVsZHM7IHRyYWNrIGZpZWxkLmtleSkge1xuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ3ZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX2Z1bGwtd2lkdGgtaW5wdXQnOiBmaWVsZD8ud2lkdGggPT09ICdmdWxsJyxcbiAgICAgICAgICAgICAgJ3ZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX2hhbGYtd2lkdGgtaW5wdXQnOiBmaWVsZD8ud2lkdGggPT09ICdoYWxmJyxcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxjZHMtbGFiZWwgY2xhc3M9XCJ2YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uX19sYWJlbFwiIFthdHRyLnRpdGxlXT1cImZpZWxkPy50aXRsZVwiPlxuICAgICAgICAgICAgICB7eyBmaWVsZD8udGl0bGUgfX1cblxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZmllbGQ/LnZhbHVlXCJcbiAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ2YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uX19jYXJkLWlucHV0XCJcbiAgICAgICAgICAgICAgICBjZHNUZXh0XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Nkcy1sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cblxuICBAaWYgKCFvYnM/LmNvbGxlY3Rpb25XaWRnZXRDYXJkcz8ubGVuZ3RoKSB7XG4gICAgPHZhbHRpbW8tbm8tcmVzdWx0c1xuICAgICAgW2NvbGxhcHNlVmVydGljYWxseV09XCJ0cnVlXCJcbiAgICAgIFtkZXNjcmlwdGlvbl09XCInZG9zc2llci53aWRnZXRzLm5vRGF0YScgfCB0cmFuc2xhdGVcIlxuICAgICAgW3NtYWxsUGFkZGluZ109XCJ0cnVlXCJcbiAgICA+PC92YWx0aW1vLW5vLXJlc3VsdHM+XG4gIH1cblxuICA8Y2RzLXBhZ2luYXRpb24tbmF2XG4gICAgKm5nSWY9XCJwYWdpbmF0aW9uTW9kZWwoKSAmJiAoc2hvd1BhZ2luYXRpb24kIHwgYXN5bmMpXCJcbiAgICBjbGFzcz1cInZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX3BhZ2luYXRpb25cIlxuICAgIFttb2RlbF09XCJwYWdpbmF0aW9uTW9kZWwoKVwiXG4gICAgKHNlbGVjdFBhZ2UpPVwib25TZWxlY3RQYWdlKCRldmVudClcIlxuICA+XG4gIDwvY2RzLXBhZ2luYXRpb24tbmF2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWNvbGxlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL2NvbGxlY3Rpb24vd2lkZ2V0LWNvbGxlY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL2NvbGxlY3Rpb24vd2lkZ2V0LWNvbGxlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsWUFBWSxFQUNaLFdBQVcsRUFDWCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLFdBQVcsR0FDWixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFFTCx3QkFBd0IsR0FNekIsTUFBTSwwQkFBMEIsQ0FBQztBQUNsQyxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2pHLE9BQU8sRUFBQyxnQkFBZ0IsRUFBcUIsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RSxPQUFPLEVBQUMsZUFBZSxFQUFD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Qiw4TkFDaEIsV0FBVyw4QkFDWCxnQkFBZ0Isb1BBQ2hCLGVBQWUsMkZBQ2YsWUFBWTs7NEZBR0gseUJBQXlCO2tCQWpCckMsU0FBUzsrQkFDRSwyQkFBMkIsbUJBR3BCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLFdBQVc7d0JBQ1gsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLFlBQVk7cUJBQ2I7eVBBR3FDLEtBQUs7c0JBQTFDLFdBQVc7dUJBQUMsT0FBTztnQkFDbUIsb0JBQW9CO3NCQUExRCxTQUFTO3VCQUFDLGtCQUFrQjtnQkFFRyxVQUFVO3NCQUF6QyxLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztnQkFDUyxNQUFNO3NCQUFyQyxLQUFLO3VCQUFDLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQztnQkFDSCxtQkFBbUI7c0JBQXRDLEtBQUs7Z0JBZWMsVUFBVTtzQkFBN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgc2lnbmFsLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQnV0dG9uTW9kdWxlLFxuICBJbnB1dE1vZHVsZSxcbiAgUGFnaW5hdGlvbk1vZGVsLFxuICBQYWdpbmF0aW9uTW9kdWxlLFxuICBUaWxlc01vZHVsZSxcbn0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge1xuICBDYXNlV2lkZ2V0QWN0aW9uLFxuICBDYXNlV2lkZ2V0RGlzcGxheVR5cGVLZXksXG4gIENvbGxlY3Rpb25DYXNlV2lkZ2V0LFxuICBDb2xsZWN0aW9uQ2FzZVdpZGdldENhcmREYXRhLFxuICBDb2xsZWN0aW9uQ2FzZVdpZGdldEZpZWxkLFxuICBDb2xsZWN0aW9uQ2FzZVdpZGdldFRpdGxlLFxuICBDb2xsZWN0aW9uV2lkZ2V0UmVzb2x2ZWRGaWVsZCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHN3aXRjaE1hcCwgdGFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q2FyYm9uTGlzdE1vZHVsZSwgVmlld0NvbnRlbnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7UGFnZX0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7RG9zc2llcldpZGdldHNBcGlTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge1dpZGdldFByb2Nlc3N9IGZyb20gJy4uL3dpZGdldC1wcm9jZXNzL3dpZGdldC1wcm9jZXNzJztcbmltcG9ydCB7RG9jdW1lbnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9kb2N1bWVudCc7XG5pbXBvcnQge1Blcm1pc3Npb25TZXJ2aWNlfSBmcm9tICdAdmFsdGltby9hY2Nlc3MtY29udHJvbCc7XG5pbXBvcnQge1dpZGdldHNTZXJ2aWNlfSBmcm9tICcuLi8uLi93aWRnZXRzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC1jb2xsZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vd2lkZ2V0LWNvbGxlY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW5wdXRNb2R1bGUsXG4gICAgUGFnaW5hdGlvbk1vZHVsZSxcbiAgICBUaWxlc01vZHVsZSxcbiAgICBDYXJib25MaXN0TW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFdpZGdldENvbGxlY3Rpb25Db21wb25lbnQgZXh0ZW5kcyBXaWRnZXRQcm9jZXNzIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHB1YmxpYyByZWFkb25seSBjbGFzcyA9ICd2YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uJztcbiAgQFZpZXdDaGlsZCgnd2lkZ2V0Q29sbGVjdGlvbicpIHByaXZhdGUgX3dpZGdldENvbGxlY3Rpb25SZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIEBJbnB1dCh7cmVxdWlyZWQ6IHRydWV9KSBwdWJsaWMgZG9jdW1lbnRJZDogc3RyaW5nO1xuICBASW5wdXQoe3JlcXVpcmVkOiB0cnVlfSkgcHVibGljIHRhYktleTogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHdpZGdldENvbmZpZ3VyYXRpb24odmFsdWU6IENvbGxlY3Rpb25DYXNlV2lkZ2V0KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuICAgIHRoaXMuYmFzZVdpZGdldENvbmZpZ3VyYXRpb24gPSB2YWx1ZTtcbiAgICB0aGlzLndpZGdldENvbmZpZ3VyYXRpb24kLm5leHQodmFsdWUpO1xuICB9XG4gIHB1YmxpYyByZWFkb25seSBzaG93UGFnaW5hdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9pbml0aWFsTnVtYmVyT2ZFbGVtZW50c1N1YmplY3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KG51bGwpO1xuXG4gIHByaXZhdGUgZ2V0IF9pbml0aWFsTnVtYmVyT2ZFbGVtZW50cyQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5faW5pdGlhbE51bWJlck9mRWxlbWVudHNTdWJqZWN0JC5waXBlKFxuICAgICAgZmlsdGVyKG51bWJlck9mRWxlbWVudHMgPT4gbnVtYmVyT2ZFbGVtZW50cyAhPT0gbnVsbClcbiAgICApO1xuICB9XG5cbiAgQElucHV0KCkgcHVibGljIHNldCB3aWRnZXREYXRhKHZhbHVlOiBQYWdlPENvbGxlY3Rpb25DYXNlV2lkZ2V0Q2FyZERhdGE+IHwgbnVsbCkge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcblxuICAgIHRoaXMuc2hvd1BhZ2luYXRpb24kLm5leHQodmFsdWUudG90YWxFbGVtZW50cyA+IHZhbHVlLnNpemUpO1xuICAgIHRoaXMuX2luaXRpYWxOdW1iZXJPZkVsZW1lbnRzU3ViamVjdCQubmV4dCh2YWx1ZS5udW1iZXJPZkVsZW1lbnRzKTtcbiAgICB0aGlzLl93aWRnZXREYXRhU3ViamVjdCQubmV4dCh2YWx1ZS5jb250ZW50KTtcblxuICAgIHRoaXMucGFnaW5hdGlvbk1vZGVsLnNldChcbiAgICAgIHZhbHVlLnRvdGFsUGFnZXMgPCAwXG4gICAgICAgID8gbnVsbFxuICAgICAgICA6IHtcbiAgICAgICAgICAgIGN1cnJlbnRQYWdlOiAxLFxuICAgICAgICAgICAgdG90YWxEYXRhTGVuZ3RoOiBNYXRoLmNlaWwodmFsdWUudG90YWxFbGVtZW50cyAvIHZhbHVlLnNpemUpLFxuICAgICAgICAgICAgcGFnZUxlbmd0aDogdmFsdWUuc2l6ZSxcbiAgICAgICAgICB9XG4gICAgKTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgbm9WaXNpYmxlRmllbGRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXRUaXRsZSA9IHNpZ25hbCgnLScpO1xuXG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXRDb25maWd1cmF0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29sbGVjdGlvbkNhc2VXaWRnZXQgfCBudWxsPihudWxsKTtcbiAgcHVibGljIHJlYWRvbmx5IHBhZ2luYXRpb25Nb2RlbCA9IHNpZ25hbDxQYWdpbmF0aW9uTW9kZWw+KG5ldyBQYWdpbmF0aW9uTW9kZWwoKSk7XG4gIHB1YmxpYyByZWFkb25seSBhbW91bnRPZkNvbHVtbnMgPSBzaWduYWwoMCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfd2lkZ2V0RGF0YVN1YmplY3QkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxDb2xsZWN0aW9uQ2FzZVdpZGdldENhcmREYXRhW10+KG51bGwpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3F1ZXJ5UGFyYW1zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfd2lkZ2V0RGF0YSQ6IE9ic2VydmFibGU8Q29sbGVjdGlvbkNhc2VXaWRnZXRDYXJkRGF0YVtdPiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuX3dpZGdldERhdGFTdWJqZWN0JCxcbiAgICB0aGlzLl9xdWVyeVBhcmFtcyQsXG4gICAgdGhpcy5faW5pdGlhbE51bWJlck9mRWxlbWVudHMkLFxuICAgIHRoaXMud2lkZ2V0Q29uZmlndXJhdGlvbiQsXG4gIF0pLnBpcGUoXG4gICAgc3dpdGNoTWFwKChbZGF0YSwgcXVlcnlQYXJhbXMsIGluaXRpYWxOdW1iZXJPZkVsZW1lbnRzLCB3aWRnZXRDb25maWd1cmF0aW9uXSkgPT5cbiAgICAgIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICAhcXVlcnlQYXJhbXNcbiAgICAgICAgICA/IG9mKGRhdGEpXG4gICAgICAgICAgOiB0aGlzLndpZGdldEFwaVNlcnZpY2VcbiAgICAgICAgICAgICAgLmdldFdpZGdldERhdGEodGhpcy5kb2N1bWVudElkLCB0aGlzLnRhYktleSwgd2lkZ2V0Q29uZmlndXJhdGlvbi5rZXksIHF1ZXJ5UGFyYW1zKVxuICAgICAgICAgICAgICAucGlwZShtYXAoKHJlczogUGFnZTxDb2xsZWN0aW9uQ2FzZVdpZGdldENhcmREYXRhPikgPT4gcmVzLmNvbnRlbnQpKSxcbiAgICAgICAgb2YoaW5pdGlhbE51bWJlck9mRWxlbWVudHMpLFxuICAgICAgXSlcbiAgICApLFxuICAgIGZpbHRlcigoW2l0ZW1zXSkgPT4gISFpdGVtcyksXG4gICAgbWFwKChbaXRlbXMsIGluaXRpYWxOdW1iZXJPZkVsZW1lbnRzXSkgPT4ge1xuICAgICAgaWYgKGl0ZW1zLmxlbmd0aCA9PT0gaW5pdGlhbE51bWJlck9mRWxlbWVudHMpIHtcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByb3dzID0gbmV3IEFycmF5PG51bWJlcj4oaW5pdGlhbE51bWJlck9mRWxlbWVudHMpLmZpbGwobnVsbCk7XG5cbiAgICAgIHJldHVybiByb3dzLm1hcCgoXywgaW5kZXgpID0+IGl0ZW1zW2luZGV4XSB8fCB7Li4uaXRlbXNbMF0sIGhpZGRlbjogdHJ1ZX0pO1xuICAgIH0pXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvbGxlY3Rpb25XaWRnZXRDYXJkcyQ6IE9ic2VydmFibGU8XG4gICAge3RpdGxlOiBzdHJpbmc7IGZpZWxkczogQ29sbGVjdGlvbldpZGdldFJlc29sdmVkRmllbGRbXTsga2V5OiBudW1iZXI7IGhpZGRlbjogYm9vbGVhbn1bXVxuICA+ID0gY29tYmluZUxhdGVzdChbdGhpcy53aWRnZXRDb25maWd1cmF0aW9uJCwgdGhpcy5fd2lkZ2V0RGF0YSRdKS5waXBlKFxuICAgIGZpbHRlcigoW3dpZGdldENvbmZpZywgd2lkZ2V0RGF0YV0pID0+ICEhd2lkZ2V0Q29uZmlnICYmICEhd2lkZ2V0RGF0YSksXG4gICAgdGFwKChbd2lkZ2V0Q29uZmlnXSkgPT4ge1xuICAgICAgdGhpcy53aWRnZXRUaXRsZS5zZXQod2lkZ2V0Q29uZmlnLnRpdGxlKTtcbiAgICB9KSxcbiAgICBtYXAoKFt3aWRnZXRDb25maWcsIHdpZGdldERhdGFdKSA9PlxuICAgICAgd2lkZ2V0RGF0YS5tYXAoKGNhcmREYXRhLCBpbmRleCkgPT4gKHtcbiAgICAgICAgaGlkZGVuOiBjYXJkRGF0YS5oaWRkZW4sXG4gICAgICAgIGtleTogaW5kZXgsXG4gICAgICAgIHRpdGxlOiB0aGlzLmdldENhcmRUaXRsZSh7XG4gICAgICAgICAgdmFsdWU6IGNhcmREYXRhLnRpdGxlLFxuICAgICAgICAgIGRpc3BsYXlQcm9wZXJ0aWVzOiB3aWRnZXRDb25maWc/LnByb3BlcnRpZXM/LnRpdGxlPy5kaXNwbGF5UHJvcGVydGllcyxcbiAgICAgICAgfSksXG4gICAgICAgIGZpZWxkczogd2lkZ2V0Q29uZmlnPy5wcm9wZXJ0aWVzLmZpZWxkcy5yZWR1Y2UoXG4gICAgICAgICAgKGNhcmRGaWVsZHNBY2N1bXVsYXRvciwgY3VycmVudEZpZWxkKSA9PiBbXG4gICAgICAgICAgICAuLi5jYXJkRmllbGRzQWNjdW11bGF0b3IsXG4gICAgICAgICAgICB0aGlzLmdldENhcmRGaWVsZChjdXJyZW50RmllbGQsIGNhcmREYXRhKSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIFtdXG4gICAgICAgICksXG4gICAgICB9KSlcbiAgICApLFxuICAgIHRhcChjYXJkID0+IHRoaXMuY2hlY2tFbXB0eUZpZWxkcyhjYXJkKSlcbiAgKTtcblxuICBwcml2YXRlIF9vYnNlcnZlciE6IFJlc2l6ZU9ic2VydmVyO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCByZWFkb25seSBkb2N1bWVudFNlcnZpY2U6IERvY3VtZW50U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGVybWlzc2lvblNlcnZpY2U6IFBlcm1pc3Npb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRlbnRTZXJ2aWNlOiBWaWV3Q29udGVudFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2lkZ2V0QXBpU2VydmljZTogRG9zc2llcldpZGdldHNBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2lkZ2V0c1NlcnZpY2U6IFdpZGdldHNTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGRvY3VtZW50U2VydmljZSwgcGVybWlzc2lvblNlcnZpY2UpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5XaWR0aE9ic2VydmVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fb2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdFBhZ2UocGFnZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5fcXVlcnlQYXJhbXMkLm5leHQoYHBhZ2U9JHtwYWdlIC0gMX0mc2l6ZT0ke3RoaXMucGFnaW5hdGlvbk1vZGVsKCkucGFnZUxlbmd0aH1gKTtcbiAgICB0aGlzLnBhZ2luYXRpb25Nb2RlbC51cGRhdGUoKG1vZGVsOiBQYWdpbmF0aW9uTW9kZWwpID0+ICh7XG4gICAgICAuLi5tb2RlbCxcbiAgICAgIGN1cnJlbnRQYWdlOiBwYWdlLFxuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBvblByb2Nlc3NTdGFydENsaWNrKHByb2Nlc3M6IENhc2VXaWRnZXRBY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLndpZGdldHNTZXJ2aWNlLnN0YXJ0UHJvY2Vzcyhwcm9jZXNzLnByb2Nlc3NEZWZpbml0aW9uS2V5KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FyZEZpZWxkKFxuICAgIGZpZWxkOiBDb2xsZWN0aW9uQ2FzZVdpZGdldEZpZWxkLFxuICAgIGRhdGE6IENvbGxlY3Rpb25DYXNlV2lkZ2V0Q2FyZERhdGFcbiAgKTogQ29sbGVjdGlvbldpZGdldFJlc29sdmVkRmllbGQge1xuICAgIGNvbnN0IHJlc29sdmVkVmFsdWUgPSB0aGlzLnZpZXdDb250ZW50U2VydmljZS5nZXQoZGF0YS5maWVsZHNbZmllbGQua2V5XSwge1xuICAgICAgLi4uZmllbGQuZGlzcGxheVByb3BlcnRpZXMsXG4gICAgICB2aWV3VHlwZTogZmllbGQuZGlzcGxheVByb3BlcnRpZXM/LnR5cGUgPz8gQ2FzZVdpZGdldERpc3BsYXlUeXBlS2V5LlRFWFQsXG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAga2V5OiBmaWVsZC5rZXksXG4gICAgICB0aXRsZTogZmllbGQudGl0bGUsXG4gICAgICB3aWR0aDogZmllbGQud2lkdGgsXG4gICAgICB2YWx1ZTogcmVzb2x2ZWRWYWx1ZSB8fCBkYXRhLmZpZWxkc1tmaWVsZC5rZXldLFxuICAgICAgaGlkZVdoZW5FbXB0eTogZmllbGQuZGlzcGxheVByb3BlcnRpZXM/LmhpZGVXaGVuRW1wdHksXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbldpZHRoT2JzZXJ2ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5fb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoZXZlbnQgPT4ge1xuICAgICAgdGhpcy5vYnNlcnZlck11dGF0aW9uKGV2ZW50KTtcbiAgICB9KTtcbiAgICB0aGlzLl9vYnNlcnZlci5vYnNlcnZlKHRoaXMuX3dpZGdldENvbGxlY3Rpb25SZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVyTXV0YXRpb24oZXZlbnQ6IEFycmF5PFJlc2l6ZU9ic2VydmVyRW50cnk+KTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudFdpZHRoID0gZXZlbnRbMF0/LmJvcmRlckJveFNpemVbMF0/LmlubGluZVNpemU7XG5cbiAgICBpZiAodHlwZW9mIGVsZW1lbnRXaWR0aCA9PT0gJ251bWJlcicgJiYgZWxlbWVudFdpZHRoICE9PSAwKSB7XG4gICAgICBpZiAoZWxlbWVudFdpZHRoIDwgNjQwKSB7XG4gICAgICAgIHRoaXMuYW1vdW50T2ZDb2x1bW5zLnNldCgxKTtcbiAgICAgIH0gZWxzZSBpZiAoZWxlbWVudFdpZHRoID4gNjQwICYmIGVsZW1lbnRXaWR0aCA8PSA3NjgpIHtcbiAgICAgICAgdGhpcy5hbW91bnRPZkNvbHVtbnMuc2V0KDIpO1xuICAgICAgfSBlbHNlIGlmIChlbGVtZW50V2lkdGggPiA3NjggJiYgZWxlbWVudFdpZHRoIDw9IDEwODApIHtcbiAgICAgICAgdGhpcy5hbW91bnRPZkNvbHVtbnMuc2V0KDMpO1xuICAgICAgfSBlbHNlIGlmIChlbGVtZW50V2lkdGggPiAxMDgwKSB7XG4gICAgICAgIHRoaXMuYW1vdW50T2ZDb2x1bW5zLnNldCg0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldENhcmRUaXRsZShjb2xsZWN0aW9uQ2FzZVdpZGdldFRpdGxlOiBDb2xsZWN0aW9uQ2FzZVdpZGdldFRpdGxlKTogc3RyaW5nIHtcbiAgICBjb25zdCB3aWRnZXRUaXRsZVZhbHVlID0gY29sbGVjdGlvbkNhc2VXaWRnZXRUaXRsZS52YWx1ZTtcbiAgICBjb25zdCB3aWRnZXRUaXRsZURpc3BsYXlQcm9wZXJ0aWVzID0gY29sbGVjdGlvbkNhc2VXaWRnZXRUaXRsZS5kaXNwbGF5UHJvcGVydGllcztcblxuICAgIGlmICghd2lkZ2V0VGl0bGVEaXNwbGF5UHJvcGVydGllcyAmJiB3aWRnZXRUaXRsZVZhbHVlKSB7XG4gICAgICByZXR1cm4gd2lkZ2V0VGl0bGVWYWx1ZTtcbiAgICB9IGVsc2UgaWYgKHdpZGdldFRpdGxlRGlzcGxheVByb3BlcnRpZXMgJiYgd2lkZ2V0VGl0bGVWYWx1ZSkge1xuICAgICAgY29uc3QgY29udmVydGVkVGl0bGUgPSB0aGlzLnZpZXdDb250ZW50U2VydmljZS5nZXQod2lkZ2V0VGl0bGVWYWx1ZSwge1xuICAgICAgICAuLi53aWRnZXRUaXRsZURpc3BsYXlQcm9wZXJ0aWVzLFxuICAgICAgICB2aWV3VHlwZTogd2lkZ2V0VGl0bGVEaXNwbGF5UHJvcGVydGllcy50eXBlLFxuICAgICAgICBoaWRlV2hlbkVtcHR5OiB3aWRnZXRUaXRsZURpc3BsYXlQcm9wZXJ0aWVzLmhpZGVXaGVuRW1wdHksXG4gICAgICB9KTtcblxuICAgICAgaWYgKGNvbnZlcnRlZFRpdGxlKSByZXR1cm4gY29udmVydGVkVGl0bGU7XG4gICAgfVxuXG4gICAgcmV0dXJuICctJztcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tFbXB0eUZpZWxkcyhjYXJkKTogdm9pZCB7XG4gICAgY2FyZC5mb3JFYWNoKGNvbGxlY3Rpb24gPT4ge1xuICAgICAgY29sbGVjdGlvbi5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgIGlmICghZmllbGQuaGlkZVdoZW5FbXB0eSB8fCAoZmllbGQuaGlkZVdoZW5FbXB0eSAmJiBmaWVsZC52YWx1ZSAmJiBmaWVsZC52YWx1ZSAhPT0gJy0nKSlcbiAgICAgICAgICB0aGlzLm5vVmlzaWJsZUZpZWxkcyQubmV4dChmYWxzZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48bmctY29udGFpbmVyXG4gICpuZ0lmPVwie1xuICAgIHdpZGdldENvbmZpZ3VyYXRpb246IHdpZGdldENvbmZpZ3VyYXRpb24kIHwgYXN5bmMsXG4gICAgY29sbGVjdGlvbldpZGdldENhcmRzOiBjb2xsZWN0aW9uV2lkZ2V0Q2FyZHMkIHwgYXN5bmMsXG4gICAgbm9WaXNpYmxlRmllbGRzOiBub1Zpc2libGVGaWVsZHMkIHwgYXN5bmMsXG4gIH0gYXMgb2JzXCJcbj5cbiAgPHNlY3Rpb24gY2xhc3M9XCJ2YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uX19oZWFkZXJcIj5cbiAgICA8c3BhbiBjbGFzcz1cInZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX3RpdGxlXCI+e3sgd2lkZ2V0VGl0bGUoKSB9fTwvc3Bhbj5cblxuICAgIEBpZiAob2JzLndpZGdldENvbmZpZ3VyYXRpb24/LmFjdGlvbnM/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cImNhbkNyZWF0ZUNhbXVuZGFFeGVjdXRpb24kIHwgYXN5bmNcIlxuICAgICAgICBjZHNCdXR0b249XCJnaG9zdFwiXG4gICAgICAgIChjbGljayk9XCJvblByb2Nlc3NTdGFydENsaWNrKG9icy53aWRnZXRDb25maWd1cmF0aW9uPy5hY3Rpb25zWzBdKVwiXG4gICAgICA+XG4gICAgICAgIHt7IG9icy53aWRnZXRDb25maWd1cmF0aW9uPy5hY3Rpb25zWzBdLm5hbWUgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIH1cbiAgPC9zZWN0aW9uPlxuXG4gIDxkaXZcbiAgICAjd2lkZ2V0Q29sbGVjdGlvblxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICd2YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uX19yZW5kZXItdmVydGljYWxseSc6IGFtb3VudE9mQ29sdW1ucygpID09PSAxLFxuICAgICAgJ3ZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX3JlbmRlci10d28tY29sdW1ucyc6IGFtb3VudE9mQ29sdW1ucygpID09PSAyLFxuICAgICAgJ3ZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX3JlbmRlci10aHJlZS1jb2x1bW5zJzogYW1vdW50T2ZDb2x1bW5zKCkgPT09IDMsXG4gICAgICAndmFsdGltby13aWRnZXQtY29sbGVjdGlvbl9fY29udGFpbmVyJzogYW1vdW50T2ZDb2x1bW5zKCkgPT09IDQsXG4gICAgfVwiXG4gID5cbiAgICBAZm9yIChjYXJkIG9mIG9icz8uY29sbGVjdGlvbldpZGdldENhcmRzOyB0cmFjayBjYXJkLmtleSkge1xuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cIiFvYnMubm9WaXNpYmxlRmllbGRzXCJcbiAgICAgICAgY2xhc3M9XCJ2YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uX19jYXJkXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyd2YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uX19jYXJkLS1oaWRkZW4nOiBjYXJkLmhpZGRlbn1cIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHRpbW8td2lkZ2V0LWNvbGxlY3Rpb25fX2NhcmQtdGl0bGVcIj57eyBjYXJkLnRpdGxlIH19PC9zcGFuPlxuXG4gICAgICAgIEBmb3IgKGZpZWxkIG9mIGNhcmQuZmllbGRzOyB0cmFjayBmaWVsZC5rZXkpIHtcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAoZmllbGQ/LnZhbHVlICE9PSBudWxsICYmIGZpZWxkPy52YWx1ZSAhPT0gJy0nICYmIGZpZWxkPy5oaWRlV2hlbkVtcHR5KSB8fFxuICAgICAgICAgICAgICAhZmllbGQ/LmhpZGVXaGVuRW1wdHlcbiAgICAgICAgICAgIFwiXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICd2YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uX19mdWxsLXdpZHRoLWlucHV0JzogZmllbGQ/LndpZHRoID09PSAnZnVsbCcsXG4gICAgICAgICAgICAgICd2YWx0aW1vLXdpZGdldC1jb2xsZWN0aW9uX19oYWxmLXdpZHRoLWlucHV0JzogZmllbGQ/LndpZHRoID09PSAnaGFsZicsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Y2RzLWxhYmVsIGNsYXNzPVwidmFsdGltby13aWRnZXQtY29sbGVjdGlvbl9fbGFiZWxcIiBbYXR0ci50aXRsZV09XCJmaWVsZD8udGl0bGVcIj5cbiAgICAgICAgICAgICAge3sgZmllbGQ/LnRpdGxlIH19XG5cbiAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImZpZWxkPy52YWx1ZVwiXG4gICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRydWVcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidmFsdGltby13aWRnZXQtY29sbGVjdGlvbl9fY2FyZC1pbnB1dFwiXG4gICAgICAgICAgICAgICAgY2RzVGV4dFxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9jZHMtbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgQGlmIChvYnMubm9WaXNpYmxlRmllbGRzKSB7XG4gICAgPHZhbHRpbW8tbm8tcmVzdWx0c1xuICAgICAgW2NvbGxhcHNlVmVydGljYWxseV09XCJ0cnVlXCJcbiAgICAgIFtkZXNjcmlwdGlvbl09XCInZG9zc2llci53aWRnZXRzLmVtcHR5RmllbGRzJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbc21hbGxQYWRkaW5nXT1cInRydWVcIlxuICAgID48L3ZhbHRpbW8tbm8tcmVzdWx0cz5cbiAgfVxuXG4gIEBpZiAoIW9icz8uY29sbGVjdGlvbldpZGdldENhcmRzPy5sZW5ndGgpIHtcbiAgICA8dmFsdGltby1uby1yZXN1bHRzXG4gICAgICBbY29sbGFwc2VWZXJ0aWNhbGx5XT1cInRydWVcIlxuICAgICAgW2Rlc2NyaXB0aW9uXT1cIidkb3NzaWVyLndpZGdldHMubm9EYXRhJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbc21hbGxQYWRkaW5nXT1cInRydWVcIlxuICAgID48L3ZhbHRpbW8tbm8tcmVzdWx0cz5cbiAgfVxuXG4gIDxjZHMtcGFnaW5hdGlvbi1uYXZcbiAgICAqbmdJZj1cInBhZ2luYXRpb25Nb2RlbCgpICYmIChzaG93UGFnaW5hdGlvbiQgfCBhc3luYylcIlxuICAgIGNsYXNzPVwidmFsdGltby13aWRnZXQtY29sbGVjdGlvbl9fcGFnaW5hdGlvblwiXG4gICAgW21vZGVsXT1cInBhZ2luYXRpb25Nb2RlbCgpXCJcbiAgICAoc2VsZWN0UGFnZSk9XCJvblNlbGVjdFBhZ2UoJGV2ZW50KVwiXG4gID5cbiAgPC9jZHMtcGFnaW5hdGlvbi1uYXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
@@ -18,7 +18,7 @@ import { ChangeDetectionStrategy, Component, HostBinding, Input, signal, ViewChi
|
|
|
18
18
|
import { TranslateModule } from '@ngx-translate/core';
|
|
19
19
|
import { CarbonListModule, EllipsisPipe, ViewType } from '@valtimo/components';
|
|
20
20
|
import { ButtonModule, InputModule } from 'carbon-components-angular';
|
|
21
|
-
import { BehaviorSubject, combineLatest, map } from 'rxjs';
|
|
21
|
+
import { BehaviorSubject, combineLatest, map, tap } from 'rxjs';
|
|
22
22
|
import { WidgetProcess } from '../widget-process/widget-process';
|
|
23
23
|
import * as i0 from "@angular/core";
|
|
24
24
|
import * as i1 from "@valtimo/document";
|
|
@@ -52,6 +52,7 @@ export class WidgetFieldComponent extends WidgetProcess {
|
|
|
52
52
|
this.class = 'widget-field';
|
|
53
53
|
this.collapseVertically = false;
|
|
54
54
|
this.isEmptyWidgetData$ = new BehaviorSubject(false);
|
|
55
|
+
this.noVisibleFields$ = new BehaviorSubject(true);
|
|
55
56
|
this.renderVertically = signal(0);
|
|
56
57
|
this.widgetConfiguration$ = new BehaviorSubject(null);
|
|
57
58
|
this.widgetData$ = new BehaviorSubject(null);
|
|
@@ -63,6 +64,8 @@ export class WidgetFieldComponent extends WidgetProcess {
|
|
|
63
64
|
title: property.title,
|
|
64
65
|
ellipsisCharacterLimit: property.displayProperties
|
|
65
66
|
?.ellipsisCharacterLimit ?? null,
|
|
67
|
+
hideWhenEmpty: property.displayProperties?.hideWhenEmpty ??
|
|
68
|
+
false,
|
|
66
69
|
value: this.viewContentService.get(widgetData[property.key], {
|
|
67
70
|
...property.displayProperties,
|
|
68
71
|
viewType: property.displayProperties?.type ?? ViewType.TEXT,
|
|
@@ -70,7 +73,7 @@ export class WidgetFieldComponent extends WidgetProcess {
|
|
|
70
73
|
},
|
|
71
74
|
]
|
|
72
75
|
: []),
|
|
73
|
-
], []))));
|
|
76
|
+
], []))), tap(columns => this.checkEmptyFields(columns)));
|
|
74
77
|
}
|
|
75
78
|
ngAfterViewInit() {
|
|
76
79
|
if (this.collapseVertically && this._widgetFieldRef)
|
|
@@ -108,8 +111,16 @@ export class WidgetFieldComponent extends WidgetProcess {
|
|
|
108
111
|
checkEmptyWidgetData(widgetData) {
|
|
109
112
|
return widgetData && Object.keys(widgetData).length === 0;
|
|
110
113
|
}
|
|
114
|
+
checkEmptyFields(columns) {
|
|
115
|
+
columns.forEach(column => {
|
|
116
|
+
column.forEach(field => {
|
|
117
|
+
if (!field?.hideWhenEmpty || (field?.hideWhenEmpty && field?.value && field?.value !== '-'))
|
|
118
|
+
this.noVisibleFields$.next(false);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
}
|
|
111
122
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetFieldComponent, deps: [{ token: i1.DocumentService }, { token: i2.PermissionService }, { token: i3.ActivatedRoute }, { token: i4.ViewContentService }, { token: i5.WidgetsService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
112
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: WidgetFieldComponent, isStandalone: true, selector: "valtimo-widget-field", inputs: { collapseVertically: "collapseVertically", widgetConfiguration: "widgetConfiguration", widgetData: "widgetData" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "_widgetFieldRef", first: true, predicate: ["widgetField"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetPropertyValue: widgetPropertyValue$ | async,\n widgetData: widgetData$ | async,\n isEmptyWidgetData: isEmptyWidgetData$ | async,\n } as obs\"\n>\n <section class=\"widget-field__header\">\n <h4 class=\"widget-field__title\">{{ obs?.widgetConfiguration?.title }}</h4>\n\n @if (obs.widgetConfiguration.actions?.length === 1) {\n <button\n *ngIf=\"canCreateCamundaExecution$ | async\"\n cdsButton=\"ghost\"\n (click)=\"onProcessStartClick(obs.widgetConfiguration.actions[0])\"\n >\n {{ obs.widgetConfiguration.actions[0].name }}\n </button>\n }\n </section>\n\n @if (obs?.isEmptyWidgetData) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n } @else {\n <div\n #widgetField\n [ngClass]=\"{\n 'widget-field__render-vertically': renderVertically() === 1,\n 'widget-field__render-two-columns': renderVertically() === 2,\n 'widget-field__render-three-columns': renderVertically() === 3,\n 'widget-field__container': renderVertically() === 4,\n }\"\n >\n @for (column of obs?.widgetPropertyValue; track column.key) {\n
|
|
123
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: WidgetFieldComponent, isStandalone: true, selector: "valtimo-widget-field", inputs: { collapseVertically: "collapseVertically", widgetConfiguration: "widgetConfiguration", widgetData: "widgetData" }, host: { properties: { "class": "this.class" } }, viewQueries: [{ propertyName: "_widgetFieldRef", first: true, predicate: ["widgetField"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetPropertyValue: widgetPropertyValue$ | async,\n widgetData: widgetData$ | async,\n isEmptyWidgetData: isEmptyWidgetData$ | async,\n noVisibleFields: noVisibleFields$ | async,\n } as obs\"\n>\n <section class=\"widget-field__header\">\n <h4 class=\"widget-field__title\">{{ obs?.widgetConfiguration?.title }}</h4>\n\n @if (obs.widgetConfiguration.actions?.length === 1) {\n <button\n *ngIf=\"canCreateCamundaExecution$ | async\"\n cdsButton=\"ghost\"\n (click)=\"onProcessStartClick(obs.widgetConfiguration.actions[0])\"\n >\n {{ obs.widgetConfiguration.actions[0].name }}\n </button>\n }\n </section>\n\n @if (obs?.isEmptyWidgetData) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n } @else {\n <div\n #widgetField\n [ngClass]=\"{\n 'widget-field__render-vertically': renderVertically() === 1,\n 'widget-field__render-two-columns': renderVertically() === 2,\n 'widget-field__render-three-columns': renderVertically() === 3,\n 'widget-field__container': renderVertically() === 4,\n }\"\n >\n @if (obs.noVisibleFields) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.emptyFields' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n } @else {\n @for (column of obs?.widgetPropertyValue; track column.key) {\n <div class=\"widget-field__column\">\n @for (property of column; track property) {\n <div\n *ngIf=\"\n (property?.value !== null &&\n property?.value !== '-' &&\n property?.hideWhenEmpty) ||\n !property?.hideWhenEmpty\n \"\n class=\"widget-field__field\"\n >\n <label class=\"widget-field__field-label\" [attr.title]=\"property?.title\">\n {{ property?.title }}</label\n >\n\n <div [attr.title]=\"property?.value\" class=\"widget-field__field-value\">\n {{ property?.value | valtimoEllipsis: property?.ellipsisCharacterLimit }}\n </div>\n </div>\n }\n </div>\n }\n }\n </div>\n }\n</ng-container>\n", styles: [".widget-field{padding:24px}.widget-field__header{display:flex;align-items:center;justify-content:space-between}.widget-field,.widget-field__column{display:flex;flex-direction:column;gap:16px;width:100%;overflow:hidden}.widget-field__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.widget-field__container{display:grid;grid-gap:24px;grid-template-columns:repeat(4,1fr)}.widget-field__field{display:flex;width:100%;flex-direction:column;gap:8px}.widget-field__field-label{font-size:12px;color:var(--cds-text-secondary)}.widget-field__field-value{color:var(--cds-text-primary);padding:8px 16px;border-bottom:1px solid var(--cds-border-subtle-01);font-size:14px}.widget-field .cds--label{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.widget-field__render-vertically,.widget-field__render-two-columns,.widget-field__render-three-columns{display:grid;align-items:stretch;gap:24px}.widget-field__render-vertically{grid-template-columns:repeat(1,1fr)}.widget-field__render-two-columns{grid-template-columns:repeat(2,1fr)}.widget-field__render-three-columns{grid-template-columns:repeat(3,1fr)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "ngmodule", type: InputModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: CarbonListModule }, { kind: "component", type: i4.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "pipe", type: EllipsisPipe, name: "valtimoEllipsis" }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i8.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
113
124
|
}
|
|
114
125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: WidgetFieldComponent, decorators: [{
|
|
115
126
|
type: Component,
|
|
@@ -120,7 +131,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
120
131
|
CarbonListModule,
|
|
121
132
|
EllipsisPipe,
|
|
122
133
|
ButtonModule,
|
|
123
|
-
], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetPropertyValue: widgetPropertyValue$ | async,\n widgetData: widgetData$ | async,\n isEmptyWidgetData: isEmptyWidgetData$ | async,\n } as obs\"\n>\n <section class=\"widget-field__header\">\n <h4 class=\"widget-field__title\">{{ obs?.widgetConfiguration?.title }}</h4>\n\n @if (obs.widgetConfiguration.actions?.length === 1) {\n <button\n *ngIf=\"canCreateCamundaExecution$ | async\"\n cdsButton=\"ghost\"\n (click)=\"onProcessStartClick(obs.widgetConfiguration.actions[0])\"\n >\n {{ obs.widgetConfiguration.actions[0].name }}\n </button>\n }\n </section>\n\n @if (obs?.isEmptyWidgetData) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n } @else {\n <div\n #widgetField\n [ngClass]=\"{\n 'widget-field__render-vertically': renderVertically() === 1,\n 'widget-field__render-two-columns': renderVertically() === 2,\n 'widget-field__render-three-columns': renderVertically() === 3,\n 'widget-field__container': renderVertically() === 4,\n }\"\n >\n @for (column of obs?.widgetPropertyValue; track column.key) {\n
|
|
134
|
+
], template: "<!--\n ~ Copyright 2015-2024 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n widgetConfiguration: widgetConfiguration$ | async,\n widgetPropertyValue: widgetPropertyValue$ | async,\n widgetData: widgetData$ | async,\n isEmptyWidgetData: isEmptyWidgetData$ | async,\n noVisibleFields: noVisibleFields$ | async,\n } as obs\"\n>\n <section class=\"widget-field__header\">\n <h4 class=\"widget-field__title\">{{ obs?.widgetConfiguration?.title }}</h4>\n\n @if (obs.widgetConfiguration.actions?.length === 1) {\n <button\n *ngIf=\"canCreateCamundaExecution$ | async\"\n cdsButton=\"ghost\"\n (click)=\"onProcessStartClick(obs.widgetConfiguration.actions[0])\"\n >\n {{ obs.widgetConfiguration.actions[0].name }}\n </button>\n }\n </section>\n\n @if (obs?.isEmptyWidgetData) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.noData' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n } @else {\n <div\n #widgetField\n [ngClass]=\"{\n 'widget-field__render-vertically': renderVertically() === 1,\n 'widget-field__render-two-columns': renderVertically() === 2,\n 'widget-field__render-three-columns': renderVertically() === 3,\n 'widget-field__container': renderVertically() === 4,\n }\"\n >\n @if (obs.noVisibleFields) {\n <valtimo-no-results\n [collapseVertically]=\"true\"\n [description]=\"'dossier.widgets.emptyFields' | translate\"\n [smallPadding]=\"true\"\n ></valtimo-no-results>\n } @else {\n @for (column of obs?.widgetPropertyValue; track column.key) {\n <div class=\"widget-field__column\">\n @for (property of column; track property) {\n <div\n *ngIf=\"\n (property?.value !== null &&\n property?.value !== '-' &&\n property?.hideWhenEmpty) ||\n !property?.hideWhenEmpty\n \"\n class=\"widget-field__field\"\n >\n <label class=\"widget-field__field-label\" [attr.title]=\"property?.title\">\n {{ property?.title }}</label\n >\n\n <div [attr.title]=\"property?.value\" class=\"widget-field__field-value\">\n {{ property?.value | valtimoEllipsis: property?.ellipsisCharacterLimit }}\n </div>\n </div>\n }\n </div>\n }\n }\n </div>\n }\n</ng-container>\n", styles: [".widget-field{padding:24px}.widget-field__header{display:flex;align-items:center;justify-content:space-between}.widget-field,.widget-field__column{display:flex;flex-direction:column;gap:16px;width:100%;overflow:hidden}.widget-field__title{color:var(--cds-text-primary);font-weight:600;font-size:16px;line-height:24px}.widget-field__container{display:grid;grid-gap:24px;grid-template-columns:repeat(4,1fr)}.widget-field__field{display:flex;width:100%;flex-direction:column;gap:8px}.widget-field__field-label{font-size:12px;color:var(--cds-text-secondary)}.widget-field__field-value{color:var(--cds-text-primary);padding:8px 16px;border-bottom:1px solid var(--cds-border-subtle-01);font-size:14px}.widget-field .cds--label{width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.widget-field__render-vertically,.widget-field__render-two-columns,.widget-field__render-three-columns{display:grid;align-items:stretch;gap:24px}.widget-field__render-vertically{grid-template-columns:repeat(1,1fr)}.widget-field__render-two-columns{grid-template-columns:repeat(2,1fr)}.widget-field__render-three-columns{grid-template-columns:repeat(3,1fr)}\n/*!\n * Copyright 2015-2024 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
124
135
|
}], ctorParameters: () => [{ type: i1.DocumentService }, { type: i2.PermissionService }, { type: i3.ActivatedRoute }, { type: i4.ViewContentService }, { type: i5.WidgetsService }], propDecorators: { class: [{
|
|
125
136
|
type: HostBinding,
|
|
126
137
|
args: ['class']
|
|
@@ -134,4 +145,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
134
145
|
}], widgetData: [{
|
|
135
146
|
type: Input
|
|
136
147
|
}] } });
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1kZXRhaWwvdGFiL3dpZGdldHMvY29tcG9uZW50cy9maWVsZC93aWRnZXQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL2ZpZWxkL3dpZGdldC1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsWUFBWSxFQUFzQixRQUFRLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRyxPQUFPLEVBQUMsWUFBWSxFQUFFLFdBQVcsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFVLEdBQUcsRUFBNkIsTUFBTSxNQUFNLENBQUM7QUFVN0YsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7O0FBbUIvRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsYUFBYTtJQU1yRCxJQUFvQixtQkFBbUIs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QUFrQjtRQUM3QyxPQUFPLFVBQVUsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDNUQsQ0FBQzsrR0FyR1Usb0JBQW9CO21HQUFwQixvQkFBb0Isb1lDNURqQyx5akZBd0VBLG16RERwQkksWUFBWSxxUkFDWixXQUFXLDhCQUNYLGVBQWUsMkZBQ2YsZ0JBQWdCLGdQQUNoQixZQUFZLHVEQUNaLFlBQVk7OzRGQUdILG9CQUFvQjtrQkFoQmhDLFNBQVM7K0JBQ0Usc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksY0FDekIsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixZQUFZO3FCQUNiOytNQUdxQyxLQUFLO3NCQUExQyxXQUFXO3VCQUFDLE9BQU87Z0JBRWMsZUFBZTtzQkFBaEQsU0FBUzt1QkFBQyxhQUFhO2dCQUVmLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDYyxtQkFBbUI7c0JBQXRDLEtBQUs7Z0JBT2MsVUFBVTtzQkFBN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBzaWduYWwsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDYXJib25MaXN0TW9kdWxlLCBFbGxpcHNpc1BpcGUsIFZpZXdDb250ZW50U2VydmljZSwgVmlld1R5cGV9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtCdXR0b25Nb2R1bGUsIElucHV0TW9kdWxlfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgc3dpdGNoTWFwLCB0YXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgQ2FzZVdpZGdldEFjdGlvbixcbiAgQ2FzZVdpZGdldFRleHREaXNwbGF5VHlwZSxcbiAgRmllbGRzQ2FzZVdpZGdldCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7V2lkZ2V0c1NlcnZpY2V9IGZyb20gJy4uLy4uL3dpZGdldHMuc2VydmljZSc7XG5pbXBvcnQge1Blcm1pc3Npb25TZXJ2aWNlfSBmcm9tICdAdmFsdGltby9hY2Nlc3MtY29udHJvbCc7XG5pbXBvcnQge0NBTl9DUkVBVEVfQ0FNVU5EQV9FWEVDVVRJT05fUEVSTUlTU0lPTn0gZnJvbSAnLi4vLi4vd2lkZ2V0cy5wZXJtaXNzaW9ucyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtXaWRnZXRQcm9jZXNzfSBmcm9tICcuLi93aWRnZXQtcHJvY2Vzcy93aWRnZXQtcHJvY2Vzcyc7XG5pbXBvcnQge0RvY3VtZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXdpZGdldC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93aWRnZXQtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW5wdXRNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIENhcmJvbkxpc3RNb2R1bGUsXG4gICAgRWxsaXBzaXNQaXBlLFxuICAgIEJ1dHRvbk1vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0RmllbGRDb21wb25lbnQgZXh0ZW5kcyBXaWRnZXRQcm9jZXNzIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIHB1YmxpYyByZWFkb25seSBjbGFzcyA9ICd3aWRnZXQtZmllbGQnO1xuXG4gIEBWaWV3Q2hpbGQoJ3dpZGdldEZpZWxkJykgcHJpdmF0ZSBfd2lkZ2V0RmllbGRSZWY6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xuXG4gIEBJbnB1dCgpIGNvbGxhcHNlVmVydGljYWxseSA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgc2V0IHdpZGdldENvbmZpZ3VyYXRpb24odmFsdWU6IEZpZWxkc0Nhc2VXaWRnZXQpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgdGhpcy53aWRnZXRDb25maWd1cmF0aW9uJC5uZXh0KHZhbHVlKTtcbiAgICB0aGlzLmJhc2VXaWRnZXRDb25maWd1cmF0aW9uID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIHJlYWRvbmx5IGlzRW1wdHlXaWRnZXREYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgd2lkZ2V0RGF0YSh2YWx1ZTogb2JqZWN0KSB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuO1xuICAgIHRoaXMud2lkZ2V0RGF0YSQubmV4dCh2YWx1ZSk7XG4gICAgdGhpcy5pc0VtcHR5V2lkZ2V0RGF0YSQubmV4dCh0aGlzLmNoZWNrRW1wdHlXaWRnZXREYXRhKHZhbHVlKSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcmVuZGVyVmVydGljYWxseSA9IHNpZ25hbCgwKTtcbiAgcHVibGljIHJlYWRvbmx5IHdpZGdldENvbmZpZ3VyYXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWVsZHNDYXNlV2lkZ2V0IHwgbnVsbD4obnVsbCk7XG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXREYXRhJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8b2JqZWN0IHwgbnVsbD4obnVsbCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHdpZGdldFByb3BlcnR5VmFsdWUkOiBPYnNlcnZhYmxlPFxuICAgIHt0aXRsZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nOyBlbGxpcHNpc0NoYXJhY3RlckxpbWl0OiBudW1iZXIgfCBudWxsfVtdW11cbiAgPiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMud2lkZ2V0Q29uZmlndXJhdGlvbiQsIHRoaXMud2lkZ2V0RGF0YSRdKS5waXBlKFxuICAgIG1hcCgoW3dpZGdldCwgd2lkZ2V0RGF0YV0pID0+XG4gICAgICB3aWRnZXQ/LnByb3BlcnRpZXMuY29sdW1ucy5tYXAoY29sdW1uID0+XG4gICAgICAgIGNvbHVtbi5yZWR1Y2UoXG4gICAgICAgICAgKGNvbHVtbkZpZWxkcywgcHJvcGVydHkpID0+IFtcbiAgICAgICAgICAgIC4uLmNvbHVtbkZpZWxkcyxcbiAgICAgICAgICAgIC4uLih3aWRnZXREYXRhPy5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eS5rZXkpXG4gICAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogcHJvcGVydHkudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgIGVsbGlwc2lzQ2hhcmFjdGVyTGltaXQ6XG4gICAgICAgICAgICAgICAgICAgICAgKHByb3BlcnR5LmRpc3BsYXlQcm9wZXJ0aWVzIGFzIENhc2VXaWRnZXRUZXh0RGlzcGxheVR5cGUpXG4gICAgICAgICAgICAgICAgICAgICAgICA/LmVsbGlwc2lzQ2hhcmFjdGVyTGltaXQgPz8gbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudmlld0NvbnRlbnRTZXJ2aWNlLmdldCh3aWRnZXREYXRhW3Byb3BlcnR5LmtleV0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9wZXJ0eS5kaXNwbGF5UHJvcGVydGllcyxcbiAgICAgICAgICAgICAgICAgICAgICB2aWV3VHlwZTogcHJvcGVydHkuZGlzcGxheVByb3BlcnRpZXM/LnR5cGUgPz8gVmlld1R5cGUuVEVYVCxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgOiBbXSksXG4gICAgICAgICAgXSxcbiAgICAgICAgICBbXVxuICAgICAgICApXG4gICAgICApXG4gICAgKVxuICApO1xuXG4gIHByaXZhdGUgX29ic2VydmVyITogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRvY3VtZW50U2VydmljZTogRG9jdW1lbnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCByZWFkb25seSBwZXJtaXNzaW9uU2VydmljZTogUGVybWlzc2lvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGVudFNlcnZpY2U6IFZpZXdDb250ZW50U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpZGdldHNTZXJ2aWNlOiBXaWRnZXRzU2VydmljZVxuICApIHtcbiAgICBzdXBlcihkb2N1bWVudFNlcnZpY2UsIHBlcm1pc3Npb25TZXJ2aWNlKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY29sbGFwc2VWZXJ0aWNhbGx5ICYmIHRoaXMuX3dpZGdldEZpZWxkUmVmKSB0aGlzLm9wZW5XaWR0aE9ic2VydmVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fb2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblByb2Nlc3NTdGFydENsaWNrKHByb2Nlc3M6IENhc2VXaWRnZXRBY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLndpZGdldHNTZXJ2aWNlLnN0YXJ0UHJvY2Vzcyhwcm9jZXNzLnByb2Nlc3NEZWZpbml0aW9uS2V5KTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbldpZHRoT2JzZXJ2ZXIoKTogdm9pZCB7XG4gICAgdGhpcy5fb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoZXZlbnQgPT4ge1xuICAgICAgdGhpcy5vYnNlcnZlck11dGF0aW9uKGV2ZW50KTtcbiAgICB9KTtcbiAgICB0aGlzLl9vYnNlcnZlci5vYnNlcnZlKHRoaXMuX3dpZGdldEZpZWxkUmVmLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBvYnNlcnZlck11dGF0aW9uKGV2ZW50OiBBcnJheTxSZXNpemVPYnNlcnZlckVudHJ5Pik6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnRXaWR0aCA9IGV2ZW50WzBdPy5ib3JkZXJCb3hTaXplWzBdPy5pbmxpbmVTaXplO1xuXG4gICAgaWYgKHR5cGVvZiBlbGVtZW50V2lkdGggPT09ICdudW1iZXInICYmIGVsZW1lbnRXaWR0aCAhPT0gMCkge1xuICAgICAgaWYgKGVsZW1lbnRXaWR0aCA8IDY0MCkge1xuICAgICAgICB0aGlzLnJlbmRlclZlcnRpY2FsbHkuc2V0KDEpO1xuICAgICAgfSBlbHNlIGlmIChlbGVtZW50V2lkdGggPiA2NDAgJiYgZWxlbWVudFdpZHRoIDw9IDc2OCkge1xuICAgICAgICB0aGlzLnJlbmRlclZlcnRpY2FsbHkuc2V0KDIpO1xuICAgICAgfSBlbHNlIGlmIChlbGVtZW50V2lkdGggPiA3NjggJiYgZWxlbWVudFdpZHRoIDw9IDEwODApIHtcbiAgICAgICAgdGhpcy5yZW5kZXJWZXJ0aWNhbGx5LnNldCgzKTtcbiAgICAgIH0gZWxzZSBpZiAoZWxlbWVudFdpZHRoID4gMTA4MCkge1xuICAgICAgICB0aGlzLnJlbmRlclZlcnRpY2FsbHkuc2V0KDQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tFbXB0eVdpZGdldERhdGEod2lkZ2V0RGF0YTogT2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHdpZGdldERhdGEgJiYgT2JqZWN0LmtleXMod2lkZ2V0RGF0YSkubGVuZ3RoID09PSAwO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgd2lkZ2V0Q29uZmlndXJhdGlvbjogd2lkZ2V0Q29uZmlndXJhdGlvbiQgfCBhc3luYyxcbiAgICB3aWRnZXRQcm9wZXJ0eVZhbHVlOiB3aWRnZXRQcm9wZXJ0eVZhbHVlJCB8IGFzeW5jLFxuICAgIHdpZGdldERhdGE6IHdpZGdldERhdGEkIHwgYXN5bmMsXG4gICAgaXNFbXB0eVdpZGdldERhdGE6IGlzRW1wdHlXaWRnZXREYXRhJCB8IGFzeW5jLFxuICB9IGFzIG9ic1wiXG4+XG4gIDxzZWN0aW9uIGNsYXNzPVwid2lkZ2V0LWZpZWxkX19oZWFkZXJcIj5cbiAgICA8aDQgY2xhc3M9XCJ3aWRnZXQtZmllbGRfX3RpdGxlXCI+e3sgb2JzPy53aWRnZXRDb25maWd1cmF0aW9uPy50aXRsZSB9fTwvaDQ+XG5cbiAgICBAaWYgKG9icy53aWRnZXRDb25maWd1cmF0aW9uLmFjdGlvbnM/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cImNhbkNyZWF0ZUNhbXVuZGFFeGVjdXRpb24kIHwgYXN5bmNcIlxuICAgICAgICBjZHNCdXR0b249XCJnaG9zdFwiXG4gICAgICAgIChjbGljayk9XCJvblByb2Nlc3NTdGFydENsaWNrKG9icy53aWRnZXRDb25maWd1cmF0aW9uLmFjdGlvbnNbMF0pXCJcbiAgICAgID5cbiAgICAgICAge3sgb2JzLndpZGdldENvbmZpZ3VyYXRpb24uYWN0aW9uc1swXS5uYW1lIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG4gIDwvc2VjdGlvbj5cblxuICBAaWYgKG9icz8uaXNFbXB0eVdpZGdldERhdGEpIHtcbiAgICA8dmFsdGltby1uby1yZXN1bHRzXG4gICAgICBbY29sbGFwc2VWZXJ0aWNhbGx5XT1cInRydWVcIlxuICAgICAgW2Rlc2NyaXB0aW9uXT1cIidkb3NzaWVyLndpZGdldHMubm9EYXRhJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbc21hbGxQYWRkaW5nXT1cInRydWVcIlxuICAgID48L3ZhbHRpbW8tbm8tcmVzdWx0cz5cbiAgfSBAZWxzZSB7XG4gICAgPGRpdlxuICAgICAgI3dpZGdldEZpZWxkXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICd3aWRnZXQtZmllbGRfX3JlbmRlci12ZXJ0aWNhbGx5JzogcmVuZGVyVmVydGljYWxseSgpID09PSAxLFxuICAgICAgICAnd2lkZ2V0LWZpZWxkX19yZW5kZXItdHdvLWNvbHVtbnMnOiByZW5kZXJWZXJ0aWNhbGx5KCkgPT09IDIsXG4gICAgICAgICd3aWRnZXQtZmllbGRfX3JlbmRlci10aHJlZS1jb2x1bW5zJzogcmVuZGVyVmVydGljYWxseSgpID09PSAzLFxuICAgICAgICAnd2lkZ2V0LWZpZWxkX19jb250YWluZXInOiByZW5kZXJWZXJ0aWNhbGx5KCkgPT09IDQsXG4gICAgICB9XCJcbiAgICA+XG4gICAgICBAZm9yIChjb2x1bW4gb2Ygb2JzPy53aWRnZXRQcm9wZXJ0eVZhbHVlOyB0cmFjayBjb2x1bW4ua2V5KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtZmllbGRfX2NvbHVtblwiPlxuICAgICAgICAgIEBmb3IgKHByb3BlcnR5IG9mIGNvbHVtbjsgdHJhY2sgcHJvcGVydHkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtZmllbGRfX2ZpZWxkXCI+XG4gICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIndpZGdldC1maWVsZF9fZmllbGQtbGFiZWxcIiBbYXR0ci50aXRsZV09XCJwcm9wZXJ0eT8udGl0bGVcIj5cbiAgICAgICAgICAgICAgICB7eyBwcm9wZXJ0eT8udGl0bGUgfX08L2xhYmVsXG4gICAgICAgICAgICAgID5cblxuICAgICAgICAgICAgICA8ZGl2IFthdHRyLnRpdGxlXT1cInByb3BlcnR5Py52YWx1ZVwiIGNsYXNzPVwid2lkZ2V0LWZpZWxkX19maWVsZC12YWx1ZVwiPlxuICAgICAgICAgICAgICAgIHt7IHByb3BlcnR5Py52YWx1ZSB8IHZhbHRpbW9FbGxpcHNpczogcHJvcGVydHk/LmVsbGlwc2lzQ2hhcmFjdGVyTGltaXQgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZG9zc2llci9zcmMvbGliL2NvbXBvbmVudHMvZG9zc2llci1kZXRhaWwvdGFiL3dpZGdldHMvY29tcG9uZW50cy9maWVsZC93aWRnZXQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL2ZpZWxkL3dpZGdldC1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxXQUFXLEVBQ1gsS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsWUFBWSxFQUFzQixRQUFRLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRyxPQUFPLEVBQUMsWUFBWSxFQUFFLFdBQVcsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ3BFLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBYyxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFTMUUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7O0FBbUIvRCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsYUFBYTtJQU1yRCxJQUFv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QUFLO3NCQUExQyxXQUFXO3VCQUFDLE9BQU87Z0JBRWMsZUFBZTtzQkFBaEQsU0FBUzt1QkFBQyxhQUFhO2dCQUVmLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDYyxtQkFBbUI7c0JBQXRDLEtBQUs7Z0JBUWMsVUFBVTtzQkFBN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBzaWduYWwsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtDYXJib25MaXN0TW9kdWxlLCBFbGxpcHNpc1BpcGUsIFZpZXdDb250ZW50U2VydmljZSwgVmlld1R5cGV9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtCdXR0b25Nb2R1bGUsIElucHV0TW9kdWxlfSBmcm9tICdjYXJib24tY29tcG9uZW50cy1hbmd1bGFyJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBDYXNlV2lkZ2V0QWN0aW9uLFxuICBDYXNlV2lkZ2V0VGV4dERpc3BsYXlUeXBlLFxuICBGaWVsZHNDYXNlV2lkZ2V0LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtXaWRnZXRzU2VydmljZX0gZnJvbSAnLi4vLi4vd2lkZ2V0cy5zZXJ2aWNlJztcbmltcG9ydCB7UGVybWlzc2lvblNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2FjY2Vzcy1jb250cm9sJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1dpZGdldFByb2Nlc3N9IGZyb20gJy4uL3dpZGdldC1wcm9jZXNzL3dpZGdldC1wcm9jZXNzJztcbmltcG9ydCB7RG9jdW1lbnRTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9kb2N1bWVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8td2lkZ2V0LWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3dpZGdldC1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBJbnB1dE1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgQ2FyYm9uTGlzdE1vZHVsZSxcbiAgICBFbGxpcHNpc1BpcGUsXG4gICAgQnV0dG9uTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBXaWRnZXRGaWVsZENvbXBvbmVudCBleHRlbmRzIFdpZGdldFByb2Nlc3MgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgcHVibGljIHJlYWRvbmx5IGNsYXNzID0gJ3dpZGdldC1maWVsZCc7XG5cbiAgQFZpZXdDaGlsZCgnd2lkZ2V0RmllbGQnKSBwcml2YXRlIF93aWRnZXRGaWVsZFJlZjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgQElucHV0KCkgY29sbGFwc2VWZXJ0aWNhbGx5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgd2lkZ2V0Q29uZmlndXJhdGlvbih2YWx1ZTogRmllbGRzQ2FzZVdpZGdldCkge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICB0aGlzLndpZGdldENvbmZpZ3VyYXRpb24kLm5leHQodmFsdWUpO1xuICAgIHRoaXMuYmFzZVdpZGdldENvbmZpZ3VyYXRpb24gPSB2YWx1ZTtcbiAgfVxuICBwdWJsaWMgcmVhZG9ubHkgaXNFbXB0eVdpZGdldERhdGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBub1Zpc2libGVGaWVsZHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICBASW5wdXQoKSBwdWJsaWMgc2V0IHdpZGdldERhdGEodmFsdWU6IG9iamVjdCkge1xuICAgIGlmICghdmFsdWUpIHJldHVybjtcbiAgICB0aGlzLndpZGdldERhdGEkLm5leHQodmFsdWUpO1xuICAgIHRoaXMuaXNFbXB0eVdpZGdldERhdGEkLm5leHQodGhpcy5jaGVja0VtcHR5V2lkZ2V0RGF0YSh2YWx1ZSkpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlbmRlclZlcnRpY2FsbHkgPSBzaWduYWwoMCk7XG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXRDb25maWd1cmF0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RmllbGRzQ2FzZVdpZGdldCB8IG51bGw+KG51bGwpO1xuICBwdWJsaWMgcmVhZG9ubHkgd2lkZ2V0RGF0YSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG9iamVjdCB8IG51bGw+KG51bGwpO1xuXG4gIHB1YmxpYyByZWFkb25seSB3aWRnZXRQcm9wZXJ0eVZhbHVlJDogT2JzZXJ2YWJsZTxcbiAgICB7XG4gICAgICB0aXRsZTogc3RyaW5nO1xuICAgICAgdmFsdWU6IHN0cmluZztcbiAgICAgIGVsbGlwc2lzQ2hhcmFjdGVyTGltaXQ6IG51bWJlciB8IG51bGw7XG4gICAgICBoaWRlV2hlbkVtcHR5OiBib29sZWFuIHwgZmFsc2U7XG4gICAgfVtdW11cbiAgPiA9IGNvbWJpbmVMYXRlc3QoW3RoaXMud2lkZ2V0Q29uZmlndXJhdGlvbiQsIHRoaXMud2lkZ2V0RGF0YSRdKS5waXBlKFxuICAgIG1hcCgoW3dpZGdldCwgd2lkZ2V0RGF0YV0pID0+XG4gICAgICB3aWRnZXQ/LnByb3BlcnRpZXMuY29sdW1ucy5tYXAoY29sdW1uID0+XG4gICAgICAgIGNvbHVtbi5yZWR1Y2UoXG4gICAgICAgICAgKGNvbHVtbkZpZWxkcywgcHJvcGVydHkpID0+IFtcbiAgICAgICAgICAgIC4uLmNvbHVtbkZpZWxkcyxcbiAgICAgICAgICAgIC4uLih3aWRnZXREYXRhPy5oYXNPd25Qcm9wZXJ0eShwcm9wZXJ0eS5rZXkpXG4gICAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogcHJvcGVydHkudGl0bGUsXG4gICAgICAgICAgICAgICAgICAgIGVsbGlwc2lzQ2hhcmFjdGVyTGltaXQ6XG4gICAgICAgICAgICAgICAgICAgICAgKHByb3BlcnR5LmRpc3BsYXlQcm9wZXJ0aWVzIGFzIENhc2VXaWRnZXRUZXh0RGlzcGxheVR5cGUpXG4gICAgICAgICAgICAgICAgICAgICAgICA/LmVsbGlwc2lzQ2hhcmFjdGVyTGltaXQgPz8gbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgaGlkZVdoZW5FbXB0eTpcbiAgICAgICAgICAgICAgICAgICAgICAocHJvcGVydHkuZGlzcGxheVByb3BlcnRpZXMgYXMgQ2FzZVdpZGdldFRleHREaXNwbGF5VHlwZSk/LmhpZGVXaGVuRW1wdHkgPz9cbiAgICAgICAgICAgICAgICAgICAgICBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMudmlld0NvbnRlbnRTZXJ2aWNlLmdldCh3aWRnZXREYXRhW3Byb3BlcnR5LmtleV0sIHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5wcm9wZXJ0eS5kaXNwbGF5UHJvcGVydGllcyxcbiAgICAgICAgICAgICAgICAgICAgICB2aWV3VHlwZTogcHJvcGVydHkuZGlzcGxheVByb3BlcnRpZXM/LnR5cGUgPz8gVmlld1R5cGUuVEVYVCxcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgOiBbXSksXG4gICAgICAgICAgXSxcbiAgICAgICAgICBbXVxuICAgICAgICApXG4gICAgICApXG4gICAgKSxcbiAgICB0YXAoY29sdW1ucyA9PiB0aGlzLmNoZWNrRW1wdHlGaWVsZHMoY29sdW1ucykpXG4gICk7XG5cbiAgcHJpdmF0ZSBfb2JzZXJ2ZXIhOiBSZXNpemVPYnNlcnZlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHBlcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250ZW50U2VydmljZTogVmlld0NvbnRlbnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgd2lkZ2V0c1NlcnZpY2U6IFdpZGdldHNTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGRvY3VtZW50U2VydmljZSwgcGVybWlzc2lvblNlcnZpY2UpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jb2xsYXBzZVZlcnRpY2FsbHkgJiYgdGhpcy5fd2lkZ2V0RmllbGRSZWYpIHRoaXMub3BlbldpZHRoT2JzZXJ2ZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICB9XG5cbiAgcHVibGljIG9uUHJvY2Vzc1N0YXJ0Q2xpY2socHJvY2VzczogQ2FzZVdpZGdldEFjdGlvbik6IHZvaWQge1xuICAgIHRoaXMud2lkZ2V0c1NlcnZpY2Uuc3RhcnRQcm9jZXNzKHByb2Nlc3MucHJvY2Vzc0RlZmluaXRpb25LZXkpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuV2lkdGhPYnNlcnZlcigpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihldmVudCA9PiB7XG4gICAgICB0aGlzLm9ic2VydmVyTXV0YXRpb24oZXZlbnQpO1xuICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcy5fd2lkZ2V0RmllbGRSZWYubmF0aXZlRWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIG9ic2VydmVyTXV0YXRpb24oZXZlbnQ6IEFycmF5PFJlc2l6ZU9ic2VydmVyRW50cnk+KTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudFdpZHRoID0gZXZlbnRbMF0/LmJvcmRlckJveFNpemVbMF0/LmlubGluZVNpemU7XG5cbiAgICBpZiAodHlwZW9mIGVsZW1lbnRXaWR0aCA9PT0gJ251bWJlcicgJiYgZWxlbWVudFdpZHRoICE9PSAwKSB7XG4gICAgICBpZiAoZWxlbWVudFdpZHRoIDwgNjQwKSB7XG4gICAgICAgIHRoaXMucmVuZGVyVmVydGljYWxseS5zZXQoMSk7XG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnRXaWR0aCA+IDY0MCAmJiBlbGVtZW50V2lkdGggPD0gNzY4KSB7XG4gICAgICAgIHRoaXMucmVuZGVyVmVydGljYWxseS5zZXQoMik7XG4gICAgICB9IGVsc2UgaWYgKGVsZW1lbnRXaWR0aCA+IDc2OCAmJiBlbGVtZW50V2lkdGggPD0gMTA4MCkge1xuICAgICAgICB0aGlzLnJlbmRlclZlcnRpY2FsbHkuc2V0KDMpO1xuICAgICAgfSBlbHNlIGlmIChlbGVtZW50V2lkdGggPiAxMDgwKSB7XG4gICAgICAgIHRoaXMucmVuZGVyVmVydGljYWxseS5zZXQoNCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0VtcHR5V2lkZ2V0RGF0YSh3aWRnZXREYXRhOiBPYmplY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gd2lkZ2V0RGF0YSAmJiBPYmplY3Qua2V5cyh3aWRnZXREYXRhKS5sZW5ndGggPT09IDA7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRW1wdHlGaWVsZHMoY29sdW1uczogYW55W11bXSk6IHZvaWQge1xuICAgIGNvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4ge1xuICAgICAgY29sdW1uLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgICBpZiAoIWZpZWxkPy5oaWRlV2hlbkVtcHR5IHx8IChmaWVsZD8uaGlkZVdoZW5FbXB0eSAmJiBmaWVsZD8udmFsdWUgJiYgZmllbGQ/LnZhbHVlICE9PSAnLScpKVxuICAgICAgICAgIHRoaXMubm9WaXNpYmxlRmllbGRzJC5uZXh0KGZhbHNlKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy1jb250YWluZXJcbiAgKm5nSWY9XCJ7XG4gICAgd2lkZ2V0Q29uZmlndXJhdGlvbjogd2lkZ2V0Q29uZmlndXJhdGlvbiQgfCBhc3luYyxcbiAgICB3aWRnZXRQcm9wZXJ0eVZhbHVlOiB3aWRnZXRQcm9wZXJ0eVZhbHVlJCB8IGFzeW5jLFxuICAgIHdpZGdldERhdGE6IHdpZGdldERhdGEkIHwgYXN5bmMsXG4gICAgaXNFbXB0eVdpZGdldERhdGE6IGlzRW1wdHlXaWRnZXREYXRhJCB8IGFzeW5jLFxuICAgIG5vVmlzaWJsZUZpZWxkczogbm9WaXNpYmxlRmllbGRzJCB8IGFzeW5jLFxuICB9IGFzIG9ic1wiXG4+XG4gIDxzZWN0aW9uIGNsYXNzPVwid2lkZ2V0LWZpZWxkX19oZWFkZXJcIj5cbiAgICA8aDQgY2xhc3M9XCJ3aWRnZXQtZmllbGRfX3RpdGxlXCI+e3sgb2JzPy53aWRnZXRDb25maWd1cmF0aW9uPy50aXRsZSB9fTwvaDQ+XG5cbiAgICBAaWYgKG9icy53aWRnZXRDb25maWd1cmF0aW9uLmFjdGlvbnM/Lmxlbmd0aCA9PT0gMSkge1xuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cImNhbkNyZWF0ZUNhbXVuZGFFeGVjdXRpb24kIHwgYXN5bmNcIlxuICAgICAgICBjZHNCdXR0b249XCJnaG9zdFwiXG4gICAgICAgIChjbGljayk9XCJvblByb2Nlc3NTdGFydENsaWNrKG9icy53aWRnZXRDb25maWd1cmF0aW9uLmFjdGlvbnNbMF0pXCJcbiAgICAgID5cbiAgICAgICAge3sgb2JzLndpZGdldENvbmZpZ3VyYXRpb24uYWN0aW9uc1swXS5uYW1lIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG4gIDwvc2VjdGlvbj5cblxuICBAaWYgKG9icz8uaXNFbXB0eVdpZGdldERhdGEpIHtcbiAgICA8dmFsdGltby1uby1yZXN1bHRzXG4gICAgICBbY29sbGFwc2VWZXJ0aWNhbGx5XT1cInRydWVcIlxuICAgICAgW2Rlc2NyaXB0aW9uXT1cIidkb3NzaWVyLndpZGdldHMubm9EYXRhJyB8IHRyYW5zbGF0ZVwiXG4gICAgICBbc21hbGxQYWRkaW5nXT1cInRydWVcIlxuICAgID48L3ZhbHRpbW8tbm8tcmVzdWx0cz5cbiAgfSBAZWxzZSB7XG4gICAgPGRpdlxuICAgICAgI3dpZGdldEZpZWxkXG4gICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICd3aWRnZXQtZmllbGRfX3JlbmRlci12ZXJ0aWNhbGx5JzogcmVuZGVyVmVydGljYWxseSgpID09PSAxLFxuICAgICAgICAnd2lkZ2V0LWZpZWxkX19yZW5kZXItdHdvLWNvbHVtbnMnOiByZW5kZXJWZXJ0aWNhbGx5KCkgPT09IDIsXG4gICAgICAgICd3aWRnZXQtZmllbGRfX3JlbmRlci10aHJlZS1jb2x1bW5zJzogcmVuZGVyVmVydGljYWxseSgpID09PSAzLFxuICAgICAgICAnd2lkZ2V0LWZpZWxkX19jb250YWluZXInOiByZW5kZXJWZXJ0aWNhbGx5KCkgPT09IDQsXG4gICAgICB9XCJcbiAgICA+XG4gICAgICBAaWYgKG9icy5ub1Zpc2libGVGaWVsZHMpIHtcbiAgICAgICAgPHZhbHRpbW8tbm8tcmVzdWx0c1xuICAgICAgICAgIFtjb2xsYXBzZVZlcnRpY2FsbHldPVwidHJ1ZVwiXG4gICAgICAgICAgW2Rlc2NyaXB0aW9uXT1cIidkb3NzaWVyLndpZGdldHMuZW1wdHlGaWVsZHMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICBbc21hbGxQYWRkaW5nXT1cInRydWVcIlxuICAgICAgICA+PC92YWx0aW1vLW5vLXJlc3VsdHM+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgQGZvciAoY29sdW1uIG9mIG9icz8ud2lkZ2V0UHJvcGVydHlWYWx1ZTsgdHJhY2sgY29sdW1uLmtleSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3aWRnZXQtZmllbGRfX2NvbHVtblwiPlxuICAgICAgICAgICAgQGZvciAocHJvcGVydHkgb2YgY29sdW1uOyB0cmFjayBwcm9wZXJ0eSkge1xuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICAgICAgICAgIChwcm9wZXJ0eT8udmFsdWUgIT09IG51bGwgJiZcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk/LnZhbHVlICE9PSAnLScgJiZcbiAgICAgICAgICAgICAgICAgICAgcHJvcGVydHk/LmhpZGVXaGVuRW1wdHkpIHx8XG4gICAgICAgICAgICAgICAgICAhcHJvcGVydHk/LmhpZGVXaGVuRW1wdHlcbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwid2lkZ2V0LWZpZWxkX19maWVsZFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ3aWRnZXQtZmllbGRfX2ZpZWxkLWxhYmVsXCIgW2F0dHIudGl0bGVdPVwicHJvcGVydHk/LnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICB7eyBwcm9wZXJ0eT8udGl0bGUgfX08L2xhYmVsXG4gICAgICAgICAgICAgICAgPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBbYXR0ci50aXRsZV09XCJwcm9wZXJ0eT8udmFsdWVcIiBjbGFzcz1cIndpZGdldC1maWVsZF9fZmllbGQtdmFsdWVcIj5cbiAgICAgICAgICAgICAgICAgIHt7IHByb3BlcnR5Py52YWx1ZSB8IHZhbHRpbW9FbGxpcHNpczogcHJvcGVydHk/LmVsbGlwc2lzQ2hhcmFjdGVyTGltaXQgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -78,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
78
78
|
}], widgetConfiguration: [{
|
|
79
79
|
type: Input
|
|
80
80
|
}] } });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWZvcm1pby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rvc3NpZXIvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItZGV0YWlsL3RhYi93aWRnZXRzL2NvbXBvbmVudHMvZm9ybWlvL3dpZGdldC1mb3JtaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL2Zvcm1pby93aWRnZXQtZm9ybWlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBSWpHLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFHL0QsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7O0FBV3ZELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFhO0lBQ3RELElBQW9CLFVBQVUsQ0FBQyxLQUFhO1FBQzFDLElBQUksS0FBSztZQUFFLElBQUks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dGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q2FzZVdpZGdldEFjdGlvbiwgRm9ybWlvQ2FzZVdpZGdldFdpZGdldFdpdGhVdWlkfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwLCB0YXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGb3JtU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vZm9ybSc7XG5pbXBvcnQge0Rvc3NpZXJXaWRnZXRzTGF5b3V0U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtGb3JtaW9Gb3JtfSBmcm9tICdAZm9ybWlvL2FuZ3VsYXInO1xuaW1wb3J0IHtGb3JtSW9Nb2R1bGV9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtXaWRnZXRQcm9jZXNzfSBmcm9tICcuLi93aWRnZXQtcHJvY2Vzcy93aWRnZXQtcHJvY2Vzcyc7XG5pbXBvcnQge1Blcm1pc3Npb25TZXJ2aWNlfSBmcm9tICdAdmFsdGltby9hY2Nlc3MtY29udHJvbCc7XG5pbXBvcnQge0RvY3VtZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHtCdXR0b25Nb2R1bGV9IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtXaWRnZXRzU2VydmljZX0gZnJvbSAnLi4vLi4vd2lkZ2V0cy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby13aWRnZXQtZm9ybWlvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC1mb3JtaW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93aWRnZXQtZm9ybWlvLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgRm9ybUlvTW9kdWxlLCBCdXR0b25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0Rm9ybWlvQ29tcG9uZW50IGV4dGVuZHMgV2lkZ2V0UHJvY2VzcyB7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgZG9jdW1lbnRJZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB0aGlzLl9kb2N1bWVudElkU3ViamVjdCQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIHNldCB3aWRnZXRDb25maWd1cmF0aW9uKHZhbHVlOiBGb3JtaW9DYXNlV2lkZ2V0V2lkZ2V0V2l0aFV1aWQpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgdGhpcy5sYXlvdXRTZXJ2aWNlLnNldFdpZGdldFdpdGhFeHRlcm5hbERhdGEodmFsdWUudXVpZCk7XG4gICAgdGhpcy5iYXNlV2lkZ2V0Q29uZmlndXJhdGlvbiA9IHZhbHVlO1xuICAgIHRoaXMuX3dpZGdldENvbmZpZ3VyYXRpb25TdWJqZWN0JC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3dpZGdldENvbmZpZ3VyYXRpb25TdWJqZWN0JCA9XG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtaW9DYXNlV2lkZ2V0V2lkZ2V0V2l0aFV1aWQgfCBudWxsPihudWxsKTtcbiAgcHVibGljIGdldCB3aWRnZXRDb25maWd1cmF0aW9uJCgpOiBPYnNlcnZhYmxlPEZvcm1pb0Nhc2VXaWRnZXRXaWRnZXRXaXRoVXVpZD4ge1xuICAgIHJldHVybiB0aGlzLl93aWRnZXRDb25maWd1cmF0aW9uU3ViamVjdCQucGlwZShmaWx0ZXIoY29uZmlnID0+ICEhY29uZmlnKSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudElkU3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICBwcml2YXRlIGdldCBfZG9jdW1lbnRJZCQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fZG9jdW1lbnRJZFN1YmplY3QkLnBpcGUoZmlsdGVyKGlkID0+ICEhaWQpKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBwcmVmaWxsZWRGb3JtRGVmaW5pdGlvbiQ6IE9ic2VydmFibGU8Rm9ybWlvRm9ybT4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLndpZGdldENvbmZpZ3VyYXRpb24kLFxuICAgIHRoaXMuX2RvY3VtZW50SWQkLFxuICBdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW2NvbmZpZywgZG9jdW1lbnRJZF0pID0+XG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5nZXRGb3JtRGVmaW5pdGlvbkJ5TmFtZVByZUZpbGxlZChcbiAgICAgICAgICBjb25maWcucHJvcGVydGllcy5mb3JtRGVmaW5pdGlvbk5hbWUsXG4gICAgICAgICAgZG9jdW1lbnRJZFxuICAgICAgICApLFxuICAgICAgICBvZihjb25maWcpLFxuICAgICAgXSlcbiAgICApLFxuICAgIHRhcCgoW18sIGNvbmZpZ10pID0+IHRoaXMubGF5b3V0U2VydmljZS5zZXRXaWRnZXRXaXRoRXh0ZXJuYWxEYXRhUmVhZHkoY29uZmlnLnV1aWQpKSxcbiAgICBtYXAoKFtmb3JtRGVmXSkgPT4gZm9ybURlZilcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHBlcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxheW91dFNlcnZpY2U6IERvc3NpZXJXaWRnZXRzTGF5b3V0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpZGdldHNTZXJ2aWNlOiBXaWRnZXRzU2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoZG9jdW1lbnRTZXJ2aWNlLCBwZXJtaXNzaW9uU2VydmljZSk7XG4gIH1cblxuICBwdWJsaWMgb25Qcm9jZXNzU3RhcnRDbGljayhwcm9jZXNzOiBDYXNlV2lkZ2V0QWN0aW9uKTogdm9pZCB7XG4gICAgdGhpcy53aWRnZXRzU2VydmljZS5zdGFydFByb2Nlc3MocHJvY2Vzcy5wcm9jZXNzRGVmaW5pdGlvbktleSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPGRpdlxuICBjbGFzcz1cImZvcm1pby13aWRnZXRcIlxuICAqbmdJZj1cIntcbiAgICBwcmVmaWxsZWRGb3JtRGVmaW5pdGlvbjogcHJlZmlsbGVkRm9ybURlZmluaXRpb24kIHwgYXN5bmMsXG4gICAgd2lkZ2V0Q29uZmlndXJhdGlvbjogd2lkZ2V0Q29uZmlndXJhdGlvbiQgfCBhc3luYyxcbiAgfSBhcyBvYnNcIlxuPlxuICA8c2VjdGlvbiBjbGFzcz1cImZvcm1pby13aWRnZXRfX2hlYWRlclwiPlxuICAgIDxoNCBjbGFzcz1cImZvcm1pby13aWRnZXRfX3RpdGxlXCI+e3sgb2JzLndpZGdldENvbmZpZ3VyYXRpb24kPy50aXRsZSB8fCAnLScgfX08L2g0PlxuXG4gICAgQGlmIChvYnMud2lkZ2V0Q29uZmlndXJhdGlvbj8uYWN0aW9ucz8ubGVuZ3RoID09PSAxKSB7XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiY2FuQ3JlYXRlQ2FtdW5kYUV4ZWN1dGlvbiQgfCBhc3luY1wiXG4gICAgICAgIGNkc0J1dHRvbj1cImdob3N0XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uUHJvY2Vzc1N0YXJ0Q2xpY2sob2JzLndpZGdldENvbmZpZ3VyYXRpb24/LmFjdGlvbnNbMF0pXCJcbiAgICAgID5cbiAgICAgICAge3sgb2JzLndpZGdldENvbmZpZ3VyYXRpb24/LmFjdGlvbnNbMF0ubmFtZSB9fVxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICA8L3NlY3Rpb24+XG5cbiAgPHZhbHRpbW8tZm9ybS1pbyBbZm9ybV09XCJvYnMucHJlZmlsbGVkRm9ybURlZmluaXRpb25cIj48L3ZhbHRpbW8tZm9ybS1pbz5cbjwvZGl2PlxuIl19
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0LWZvcm1pby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2Rvc3NpZXIvc3JjL2xpYi9jb21wb25lbnRzL2Rvc3NpZXItZGV0YWlsL3RhYi93aWRnZXRzL2NvbXBvbmVudHMvZm9ybWlvL3dpZGdldC1mb3JtaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9kb3NzaWVyL3NyYy9saWIvY29tcG9uZW50cy9kb3NzaWVyLWRldGFpbC90YWIvd2lkZ2V0cy9jb21wb25lbnRzL2Zvcm1pby93aWRnZXQtZm9ybWlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVwRCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBSWpHLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFHL0QsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7Ozs7O0FBV3ZELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxhQUFhO0lBQ3RELElBQW9CLFVBQVUsQ0FBQyxLQUFhO1FBQzFDLElBQUksS0FBSztZQUFFLElBQUks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dGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7Q2FzZVdpZGdldEFjdGlvbiwgRm9ybWlvQ2FzZVdpZGdldFdpZGdldFdpdGhVdWlkfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBvZiwgc3dpdGNoTWFwLCB0YXB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtGb3JtU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vZm9ybSc7XG5pbXBvcnQge0Rvc3NpZXJXaWRnZXRzTGF5b3V0U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtGb3JtaW9Gb3JtfSBmcm9tICdAZm9ybWlvL2FuZ3VsYXInO1xuaW1wb3J0IHtGb3JtSW9Nb2R1bGV9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtXaWRnZXRQcm9jZXNzfSBmcm9tICcuLi93aWRnZXQtcHJvY2Vzcy93aWRnZXQtcHJvY2Vzcyc7XG5pbXBvcnQge1Blcm1pc3Npb25TZXJ2aWNlfSBmcm9tICdAdmFsdGltby9hY2Nlc3MtY29udHJvbCc7XG5pbXBvcnQge0RvY3VtZW50U2VydmljZX0gZnJvbSAnQHZhbHRpbW8vZG9jdW1lbnQnO1xuaW1wb3J0IHtCdXR0b25Nb2R1bGV9IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtXaWRnZXRzU2VydmljZX0gZnJvbSAnLi4vLi4vd2lkZ2V0cy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmFsdGltby13aWRnZXQtZm9ybWlvJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dpZGdldC1mb3JtaW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93aWRnZXQtZm9ybWlvLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgRm9ybUlvTW9kdWxlLCBCdXR0b25Nb2R1bGVdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0Rm9ybWlvQ29tcG9uZW50IGV4dGVuZHMgV2lkZ2V0UHJvY2VzcyB7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZXQgZG9jdW1lbnRJZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlKSB0aGlzLl9kb2N1bWVudElkU3ViamVjdCQubmV4dCh2YWx1ZSk7XG4gIH1cbiAgQElucHV0KCkgcHVibGljIHNldCB3aWRnZXRDb25maWd1cmF0aW9uKHZhbHVlOiBGb3JtaW9DYXNlV2lkZ2V0V2lkZ2V0V2l0aFV1aWQpIHtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm47XG4gICAgdGhpcy5sYXlvdXRTZXJ2aWNlLnNldFdpZGdldFdpdGhFeHRlcm5hbERhdGEodmFsdWUudXVpZCk7XG4gICAgdGhpcy5iYXNlV2lkZ2V0Q29uZmlndXJhdGlvbiA9IHZhbHVlO1xuICAgIHRoaXMuX3dpZGdldENvbmZpZ3VyYXRpb25TdWJqZWN0JC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3dpZGdldENvbmZpZ3VyYXRpb25TdWJqZWN0JCA9XG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdDxGb3JtaW9DYXNlV2lkZ2V0V2lkZ2V0V2l0aFV1aWQgfCBudWxsPihudWxsKTtcbiAgcHVibGljIGdldCB3aWRnZXRDb25maWd1cmF0aW9uJCgpOiBPYnNlcnZhYmxlPEZvcm1pb0Nhc2VXaWRnZXRXaWRnZXRXaXRoVXVpZD4ge1xuICAgIHJldHVybiB0aGlzLl93aWRnZXRDb25maWd1cmF0aW9uU3ViamVjdCQucGlwZShmaWx0ZXIoY29uZmlnID0+ICEhY29uZmlnKSk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9kb2N1bWVudElkU3ViamVjdCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuICBwcml2YXRlIGdldCBfZG9jdW1lbnRJZCQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fZG9jdW1lbnRJZFN1YmplY3QkLnBpcGUoZmlsdGVyKGlkID0+ICEhaWQpKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBwcmVmaWxsZWRGb3JtRGVmaW5pdGlvbiQ6IE9ic2VydmFibGU8Rm9ybWlvRm9ybT4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLndpZGdldENvbmZpZ3VyYXRpb24kLFxuICAgIHRoaXMuX2RvY3VtZW50SWQkLFxuICBdKS5waXBlKFxuICAgIHN3aXRjaE1hcCgoW2NvbmZpZywgZG9jdW1lbnRJZF0pID0+XG4gICAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgICAgdGhpcy5mb3JtU2VydmljZS5nZXRGb3JtRGVmaW5pdGlvbkJ5TmFtZVByZUZpbGxlZChcbiAgICAgICAgICBjb25maWcucHJvcGVydGllcy5mb3JtRGVmaW5pdGlvbk5hbWUsXG4gICAgICAgICAgZG9jdW1lbnRJZFxuICAgICAgICApLFxuICAgICAgICBvZihjb25maWcpLFxuICAgICAgXSlcbiAgICApLFxuICAgIHRhcCgoW18sIGNvbmZpZ10pID0+IHRoaXMubGF5b3V0U2VydmljZS5zZXRXaWRnZXRXaXRoRXh0ZXJuYWxEYXRhUmVhZHkoY29uZmlnLnV1aWQpKSxcbiAgICBtYXAoKFtmb3JtRGVmXSkgPT4gZm9ybURlZilcbiAgKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZG9jdW1lbnRTZXJ2aWNlOiBEb2N1bWVudFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHBlcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxheW91dFNlcnZpY2U6IERvc3NpZXJXaWRnZXRzTGF5b3V0U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpZGdldHNTZXJ2aWNlOiBXaWRnZXRzU2VydmljZVxuICApIHtcbiAgICBzdXBlcihkb2N1bWVudFNlcnZpY2UsIHBlcm1pc3Npb25TZXJ2aWNlKTtcbiAgfVxuXG4gIHB1YmxpYyBvblByb2Nlc3NTdGFydENsaWNrKHByb2Nlc3M6IENhc2VXaWRnZXRBY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLndpZGdldHNTZXJ2aWNlLnN0YXJ0UHJvY2Vzcyhwcm9jZXNzLnByb2Nlc3NEZWZpbml0aW9uS2V5KTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48ZGl2XG4gIGNsYXNzPVwiZm9ybWlvLXdpZGdldFwiXG4gICpuZ0lmPVwie1xuICAgIHByZWZpbGxlZEZvcm1EZWZpbml0aW9uOiBwcmVmaWxsZWRGb3JtRGVmaW5pdGlvbiQgfCBhc3luYyxcbiAgICB3aWRnZXRDb25maWd1cmF0aW9uOiB3aWRnZXRDb25maWd1cmF0aW9uJCB8IGFzeW5jLFxuICB9IGFzIG9ic1wiXG4+XG4gIDxzZWN0aW9uIGNsYXNzPVwiZm9ybWlvLXdpZGdldF9faGVhZGVyXCI+XG4gICAgPGg0IGNsYXNzPVwiZm9ybWlvLXdpZGdldF9fdGl0bGVcIj57eyBvYnMud2lkZ2V0Q29uZmlndXJhdGlvbiQ/LnRpdGxlIHx8ICctJyB9fTwvaDQ+XG5cbiAgICBAaWYgKG9icy53aWRnZXRDb25maWd1cmF0aW9uPy5hY3Rpb25zPy5sZW5ndGggPT09IDEpIHtcbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJjYW5DcmVhdGVDYW11bmRhRXhlY3V0aW9uJCB8IGFzeW5jXCJcbiAgICAgICAgY2RzQnV0dG9uPVwiZ2hvc3RcIlxuICAgICAgICAoY2xpY2spPVwib25Qcm9jZXNzU3RhcnRDbGljayhvYnMud2lkZ2V0Q29uZmlndXJhdGlvbj8uYWN0aW9uc1swXSlcIlxuICAgICAgPlxuICAgICAgICB7eyBvYnMud2lkZ2V0Q29uZmlndXJhdGlvbj8uYWN0aW9uc1swXS5uYW1lIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICB9XG4gIDwvc2VjdGlvbj5cblxuICA8dmFsdGltby1mb3JtLWlvIFtmb3JtXT1cIm9icy5wcmVmaWxsZWRGb3JtRGVmaW5pdGlvblwiPjwvdmFsdGltby1mb3JtLWlvPlxuPC9kaXY+XG4iXX0=
|