@provoly/dashboard 1.4.44 → 1.4.45
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/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs +47 -49
- package/esm2022/toolbox/components/edit-presentation/edit-presentation.component.mjs +1 -1
- package/esm2022/toolbox/components/save-view/save-view.component.mjs +1 -1
- package/esm2022/toolbox/shared/presentation-form/presentation-form.component.mjs +6 -3
- package/esm2022/toolbox/toolbox.module.mjs +7 -4
- package/fesm2022/provoly-dashboard-presentation.mjs +53 -55
- package/fesm2022/provoly-dashboard-presentation.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-toolbox.mjs +13 -7
- package/fesm2022/provoly-dashboard-toolbox.mjs.map +1 -1
- package/package.json +1 -1
- package/presentation/components/add-edit-presentation/add-edit-presentation.component.d.ts +7 -6
- package/toolbox/shared/presentation-form/presentation-form.component.d.ts +2 -1
- package/toolbox/toolbox.module.d.ts +1 -1
package/esm2022/presentation/components/add-edit-presentation/add-edit-presentation.component.mjs
CHANGED
|
@@ -1,34 +1,36 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Optional, Output } from '@angular/core';
|
|
2
2
|
import { DashboardActions, DashboardGridLayout, DashboardSelectors, SubscriptionnerDirective, ViewMode, WidgetPlacementUtils } from '@provoly/dashboard';
|
|
3
|
-
import { BehaviorSubject, combineLatest } from 'rxjs';
|
|
3
|
+
import { BehaviorSubject, catchError, combineLatest, throwError } from 'rxjs';
|
|
4
4
|
import { MetadataSelectors } from '@provoly/dashboard/components/metadata-editor';
|
|
5
5
|
import { v4 as uuidv4 } from 'uuid';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
import * as i1 from "@ngrx/store";
|
|
8
|
-
import * as i2 from "@
|
|
9
|
-
import * as i3 from "@
|
|
10
|
-
import * as i4 from "@provoly/dashboard/
|
|
11
|
-
import * as i5 from "@provoly/dashboard";
|
|
8
|
+
import * as i2 from "@provoly/dashboard";
|
|
9
|
+
import * as i3 from "@angular/router";
|
|
10
|
+
import * as i4 from "@provoly/dashboard/toolbox";
|
|
11
|
+
import * as i5 from "@provoly/dashboard/components/metadata-editor";
|
|
12
12
|
import * as i6 from "@angular/common";
|
|
13
13
|
export class PryAddEditPresentationComponent extends SubscriptionnerDirective {
|
|
14
14
|
set selectedPresentation(presentation) {
|
|
15
15
|
this.selectedPresentation$.next(presentation);
|
|
16
16
|
}
|
|
17
|
-
constructor(store, router) {
|
|
17
|
+
constructor(store, manifestService, router) {
|
|
18
18
|
super();
|
|
19
19
|
this.store = store;
|
|
20
|
+
this.manifestService = manifestService;
|
|
20
21
|
this.router = router;
|
|
21
22
|
this.selectedPresentation$ = new BehaviorSubject(undefined);
|
|
22
23
|
this.chosenLayout = DashboardGridLayout.FULL;
|
|
23
24
|
this.metadataThemeId = '';
|
|
24
25
|
this.isFormValid = false;
|
|
26
|
+
this.errorDuplicatingText = null;
|
|
25
27
|
this.edition = false;
|
|
26
28
|
this.themePrefix = null;
|
|
27
29
|
this.editionStartUrl = '/';
|
|
28
30
|
this.mode = 'meta';
|
|
29
31
|
this.goBack = new EventEmitter();
|
|
30
32
|
this.staticManifest$ = this.store.select(DashboardSelectors.staticManifest);
|
|
31
|
-
this.subscriptions.add(this.staticManifest$.subscribe(manifest => this.staticManifest = manifest));
|
|
33
|
+
this.subscriptions.add(this.staticManifest$.subscribe((manifest) => (this.staticManifest = manifest)));
|
|
32
34
|
this.subscriptions.add(combineLatest([this.staticManifest$, this.store.select(DashboardSelectors.gridLayout)]).subscribe(([staticManifest, gridLayout]) => {
|
|
33
35
|
this.chosenLayout =
|
|
34
36
|
this.edition && staticManifest.windows[0]?.grid?.layout !== undefined
|
|
@@ -43,52 +45,48 @@ export class PryAddEditPresentationComponent extends SubscriptionnerDirective {
|
|
|
43
45
|
}
|
|
44
46
|
}));
|
|
45
47
|
}
|
|
46
|
-
|
|
48
|
+
saveOrUpdateDashboard() {
|
|
47
49
|
const presentation = {
|
|
48
50
|
...this.selectedPresentation$.value,
|
|
49
51
|
id: this.selectedPresentation$.value?.id || uuidv4(),
|
|
50
52
|
...this.formValue,
|
|
51
53
|
metadata: this.metadata()
|
|
52
54
|
};
|
|
53
|
-
this.
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
55
|
+
this.errorDuplicatingText = null;
|
|
56
|
+
this.manifestService
|
|
57
|
+
.save(presentation.name, this.edition ? this.staticManifest : this.getNewManifest(), presentation.id, presentation.description, presentation.image, presentation.metadata?.map((metadata) => ({
|
|
58
|
+
metadataDefId: metadata.metadataDef.id,
|
|
59
|
+
value: metadata.value
|
|
60
|
+
})), presentation.accessRightsByGroup, presentation.additionalInformation)
|
|
61
|
+
.pipe(catchError((error) => {
|
|
62
|
+
this.errorDuplicatingText = '@chh.message.failure.alreadyExisting';
|
|
63
|
+
return throwError(error);
|
|
64
|
+
}))
|
|
65
|
+
.subscribe(() => {
|
|
66
|
+
const presentation = {
|
|
67
|
+
...this.selectedPresentation$.value,
|
|
68
|
+
...this.formValue,
|
|
69
|
+
metadata: this.metadata()
|
|
70
|
+
};
|
|
71
|
+
if (!this.edition) {
|
|
72
|
+
this.store.dispatch(DashboardActions.selectPresentation({
|
|
73
|
+
presentation,
|
|
74
|
+
viewMode: ViewMode.CREATION
|
|
75
|
+
}));
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
this.store.dispatch(DashboardActions.loadPresentation({
|
|
79
|
+
presentation,
|
|
80
|
+
viewMode: ViewMode.EDITION
|
|
81
|
+
}));
|
|
82
|
+
}
|
|
83
|
+
this.router?.navigateByUrl(this.editionStartUrl);
|
|
84
|
+
});
|
|
69
85
|
}
|
|
70
|
-
|
|
86
|
+
saveDashboard() {
|
|
71
87
|
if (this.isFormValid) {
|
|
72
|
-
this.
|
|
73
|
-
}
|
|
74
|
-
const presentation = {
|
|
75
|
-
...this.selectedPresentation$.value,
|
|
76
|
-
...this.formValue,
|
|
77
|
-
metadata: this.metadata()
|
|
78
|
-
};
|
|
79
|
-
if (!this.edition) {
|
|
80
|
-
this.store.dispatch(DashboardActions.selectPresentation({
|
|
81
|
-
presentation,
|
|
82
|
-
viewMode: ViewMode.CREATION
|
|
83
|
-
}));
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
this.store.dispatch(DashboardActions.loadPresentation({
|
|
87
|
-
presentation,
|
|
88
|
-
viewMode: ViewMode.EDITION
|
|
89
|
-
}));
|
|
88
|
+
this.saveOrUpdateDashboard();
|
|
90
89
|
}
|
|
91
|
-
this.router?.navigateByUrl(this.editionStartUrl);
|
|
92
90
|
}
|
|
93
91
|
addMetadata(metadata) {
|
|
94
92
|
this.store.dispatch(DashboardActions.addManifestMetadata({
|
|
@@ -132,13 +130,13 @@ export class PryAddEditPresentationComponent extends SubscriptionnerDirective {
|
|
|
132
130
|
]
|
|
133
131
|
};
|
|
134
132
|
}
|
|
135
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryAddEditPresentationComponent, deps: [{ token: i1.Store }, { token: i2.Router, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
136
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryAddEditPresentationComponent, selector: "pry-add-edit-presentation", inputs: { selectedPresentation: "selectedPresentation", edition: "edition", themePrefix: "themePrefix", editionStartUrl: "editionStartUrl", mode: "mode" }, outputs: { goBack: "goBack" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-manifest-layout\">\n <div class=\"o-manifest-layout__toolbox -justify-space-between -align-center\">\n <button class=\"a-btn a-btn--secondary\" type=\"button\" (click)=\"close()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" type=\"button\" (click)=\"
|
|
133
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryAddEditPresentationComponent, deps: [{ token: i1.Store }, { token: i2.ManifestService }, { token: i3.Router, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
134
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PryAddEditPresentationComponent, selector: "pry-add-edit-presentation", inputs: { selectedPresentation: "selectedPresentation", edition: "edition", themePrefix: "themePrefix", editionStartUrl: "editionStartUrl", mode: "mode" }, outputs: { goBack: "goBack" }, usesInheritance: true, ngImport: i0, template: "<div class=\"o-manifest-layout\">\n <div class=\"o-manifest-layout__toolbox -justify-space-between -align-center\">\n <button class=\"a-btn a-btn--secondary\" type=\"button\" (click)=\"close()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" type=\"button\" (click)=\"saveDashboard()\" [disabled]=\"!isFormValid\">\n {{ '@pry.toolbox.manifest.check' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content--presentation\">\n <h2 class=\"a-h2\">{{ '@pry.presentation.add' + '.pageTitle' | i18n }}</h2>\n <div class=\"o-presentation-form-wrapper\">\n <div class=\"u-display-flex -column\">\n <pry-presentation-form\n mode=\"theme\"\n [selectedPresentation]=\"(selectedPresentation$ | async) ?? undefined\"\n (formValue)=\"formValue = $event\"\n (isFormValid)=\"isFormValid = $event\"\n [mode]=\"mode\"\n [errorDuplicatingText]=\"errorDuplicatingText\"\n [themePrefix]=\"themePrefix\"\n ></pry-presentation-form>\n <div class=\"m-form-label-field -width-full m-form-label-field--inline\">\n <label class=\"a-label\">{{ '@pry.presentation.form.grid' | i18n }}</label>\n <span class=\"a-label\">{{ '@pry.toolbox.layout.' + this.chosenLayout | i18n }}</span>\n @if (!edition) {\n <pry-select-grid-layout></pry-select-grid-layout>\n }\n </div>\n </div>\n @if (mode === 'meta') {\n @if (selectedPresentation$ | async; as selectedPresentation) {\n <div class=\"o-presentation__metadata-editor\">\n <pry-metadata-editor\n [targetId]=\"selectedPresentation.id\"\n [isModification]=\"true\"\n [metadata]=\"selectedPresentation.metadata ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addMetadata($event)\"\n [type]=\"'meta'\"\n ></pry-metadata-editor>\n </div>\n }\n }\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"saveDashboard()\"\n [disabled]=\"!isFormValid\"\n >\n {{ '@pry.presentation.configuration' | i18n }}\n </button>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: i4.SelectGridLayoutComponent, selector: "pry-select-grid-layout" }, { kind: "component", type: i4.PresentationFormComponent, selector: "pry-presentation-form", inputs: ["mode", "themePrefix", "errorDuplicatingText", "selectedPresentation"], outputs: ["formValue", "isFormValid"] }, { kind: "component", type: i5.PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: ["isModification", "targetId", "type", "metadata"], outputs: ["addMeta", "removeMeta"] }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] }); }
|
|
137
135
|
}
|
|
138
136
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryAddEditPresentationComponent, decorators: [{
|
|
139
137
|
type: Component,
|
|
140
|
-
args: [{ selector: 'pry-add-edit-presentation', template: "<div class=\"o-manifest-layout\">\n <div class=\"o-manifest-layout__toolbox -justify-space-between -align-center\">\n <button class=\"a-btn a-btn--secondary\" type=\"button\" (click)=\"close()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" type=\"button\" (click)=\"
|
|
141
|
-
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.Router, decorators: [{
|
|
138
|
+
args: [{ selector: 'pry-add-edit-presentation', template: "<div class=\"o-manifest-layout\">\n <div class=\"o-manifest-layout__toolbox -justify-space-between -align-center\">\n <button class=\"a-btn a-btn--secondary\" type=\"button\" (click)=\"close()\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" type=\"button\" (click)=\"saveDashboard()\" [disabled]=\"!isFormValid\">\n {{ '@pry.toolbox.manifest.check' | i18n }}\n </button>\n </div>\n <div class=\"o-manifest-layout__content--presentation\">\n <h2 class=\"a-h2\">{{ '@pry.presentation.add' + '.pageTitle' | i18n }}</h2>\n <div class=\"o-presentation-form-wrapper\">\n <div class=\"u-display-flex -column\">\n <pry-presentation-form\n mode=\"theme\"\n [selectedPresentation]=\"(selectedPresentation$ | async) ?? undefined\"\n (formValue)=\"formValue = $event\"\n (isFormValid)=\"isFormValid = $event\"\n [mode]=\"mode\"\n [errorDuplicatingText]=\"errorDuplicatingText\"\n [themePrefix]=\"themePrefix\"\n ></pry-presentation-form>\n <div class=\"m-form-label-field -width-full m-form-label-field--inline\">\n <label class=\"a-label\">{{ '@pry.presentation.form.grid' | i18n }}</label>\n <span class=\"a-label\">{{ '@pry.toolbox.layout.' + this.chosenLayout | i18n }}</span>\n @if (!edition) {\n <pry-select-grid-layout></pry-select-grid-layout>\n }\n </div>\n </div>\n @if (mode === 'meta') {\n @if (selectedPresentation$ | async; as selectedPresentation) {\n <div class=\"o-presentation__metadata-editor\">\n <pry-metadata-editor\n [targetId]=\"selectedPresentation.id\"\n [isModification]=\"true\"\n [metadata]=\"selectedPresentation.metadata ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addMetadata($event)\"\n [type]=\"'meta'\"\n ></pry-metadata-editor>\n </div>\n }\n }\n </div>\n <button\n class=\"a-btn a-btn--primary\"\n (click)=\"saveDashboard()\"\n [disabled]=\"!isFormValid\"\n >\n {{ '@pry.presentation.configuration' | i18n }}\n </button>\n </div>\n</div>\n" }]
|
|
139
|
+
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.ManifestService }, { type: i3.Router, decorators: [{
|
|
142
140
|
type: Optional
|
|
143
141
|
}] }], propDecorators: { selectedPresentation: [{
|
|
144
142
|
type: Input
|
|
@@ -153,4 +151,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
153
151
|
}], goBack: [{
|
|
154
152
|
type: Output
|
|
155
153
|
}] } });
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWVkaXQtcHJlc2VudGF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3ByZXNlbnRhdGlvbi9jb21wb25lbnRzL2FkZC1lZGl0LXByZXNlbnRhdGlvbi9hZGQtZWRpdC1wcmVzZW50YXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvcHJlc2VudGF0aW9uL2NvbXBvbmVudHMvYWRkLWVkaXQtcHJlc2VudGF0aW9uL2FkZC1lZGl0LXByZXNlbnRhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFLbEIsd0JBQXdCLEVBQ3hCLFFBQVEsRUFDUixvQkFBb0IsRUFDckIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBb0IsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFpQixNQUFNLCtDQUErQyxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxFQUFFLElBQUksTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQU9wQyxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsd0JBQXdCO0lBVTNFLElBQWEsb0JBQW9CLENBQUMsWUFBNkM7UUFDN0UsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBUUQsWUFDWSxLQUFZLEVBQ0EsTUFBYztRQUVwQyxLQUFLLEVBQUUsQ0FBQztRQUhFLFVBQUss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Q0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU87WUFDTCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsSUFBSSxFQUFFO3dCQUNKLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWTt3QkFDekIsT0FBTyxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsT0FBTzt3QkFDbkUsSUFBSSxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSTtxQkFDOUQ7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzhHQTdKVSwrQkFBK0I7a0dBQS9CLCtCQUErQixtUkN4QjVDLG90RUFxREE7OzJGRDdCYSwrQkFBK0I7a0JBSjNDLFNBQVM7K0JBQ0UsMkJBQTJCOzswQkF5QmxDLFFBQVE7eUNBWkUsb0JBQW9CO3NCQUFoQyxLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3B0aW9uYWwsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgRGFzaGJvYXJkQWN0aW9ucyxcbiAgRGFzaGJvYXJkR3JpZExheW91dCxcbiAgRGFzaGJvYXJkU2VsZWN0b3JzLFxuICBHbG9iYWxNYW5pZmVzdCxcbiAgSU1ldGFkYXRhLFxuICBNYW5pZmVzdERlc2NyaXB0aW9uLFxuICBNZXRhZGF0YVZhbHVlLFxuICBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUsXG4gIFZpZXdNb2RlLFxuICBXaWRnZXRQbGFjZW1lbnRVdGlsc1xufSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXRhZGF0YVNlbGVjdG9ycywgTWV0YUV2ZW50VHlwZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL21ldGFkYXRhLWVkaXRvcic7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFByZXNlbnRhdGlvbkZvcm1WYWx1ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC90b29sYm94JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWFkZC1lZGl0LXByZXNlbnRhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtZWRpdC1wcmVzZW50YXRpb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeUFkZEVkaXRQcmVzZW50YXRpb25Db21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUge1xuICBzdGF0aWNNYW5pZmVzdCQ6IE9ic2VydmFibGU8R2xvYmFsTWFuaWZlc3Q+O1xuICBzdGF0aWNNYW5pZmVzdD86IEdsb2JhbE1hbmlmZXN0O1xuICBzZWxlY3RlZFByZXNlbnRhdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hbmlmZXN0RGVzY3JpcHRpb24gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGNob3NlbkxheW91dDogc3RyaW5nID0gRGFzaGJvYXJkR3JpZExheW91dC5GVUxMO1xuICBtZXRhZGF0YURlZnM6IElNZXRhZGF0YVtdIHwgdW5kZWZpbmVkO1xuICBtZXRhZGF0YVRoZW1lSWQ6IHN0cmluZyA9ICcnO1xuICBmb3JtVmFsdWU/OiBQYXJ0aWFsPFByZXNlbnRhdGlvbkZvcm1WYWx1ZT47XG4gIGlzRm9ybVZhbGlkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkUHJlc2VudGF0aW9uKHByZXNlbnRhdGlvbjogTWFuaWZlc3REZXNjcmlwdGlvbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLm5leHQocHJlc2VudGF0aW9uKTtcbiAgfVxuICBASW5wdXQoKSBlZGl0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHRoZW1lUHJlZml4OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgZWRpdGlvblN0YXJ0VXJsOiBzdHJpbmcgPSAnLyc7XG4gIEBJbnB1dCgpIG1vZGU6ICd0aGVtZScgfCAnbWV0YScgPSAnbWV0YSc7XG5cbiAgQE91dHB1dCgpIGdvQmFjayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgc3RvcmU6IFN0b3JlLFxuICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCByb3V0ZXI6IFJvdXRlclxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RhdGljTWFuaWZlc3QkID0gdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLnN0YXRpY01hbmlmZXN0KTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKHRoaXMuc3RhdGljTWFuaWZlc3QkLnN1YnNjcmliZShtYW5pZmVzdCA9PiB0aGlzLnN0YXRpY01hbmlmZXN0ID0gbWFuaWZlc3QpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5zdGF0aWNNYW5pZmVzdCQsIHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5ncmlkTGF5b3V0KV0pLnN1YnNjcmliZShcbiAgICAgICAgKFtzdGF0aWNNYW5pZmVzdCwgZ3JpZExheW91dF0pID0+IHtcbiAgICAgICAgICB0aGlzLmNob3NlbkxheW91dCA9XG4gICAgICAgICAgICB0aGlzLmVkaXRpb24gJiYgc3RhdGljTWFuaWZlc3Qud2luZG93c1swXT8uZ3JpZD8ubGF5b3V0ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgPyBzdGF0aWNNYW5pZmVzdC53aW5kb3dzWzBdPy5ncmlkPy5sYXlvdXRcbiAgICAgICAgICAgICAgOiBncmlkTGF5b3V0O1xuICAgICAgICB9XG4gICAgICApXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoTWV0YWRhdGFTZWxlY3RvcnMubWV0YWRhdGEpLnN1YnNjcmliZSgobWV0YWRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5tZXRhZGF0YURlZnMgPSBtZXRhZGF0YTtcbiAgICAgICAgY29uc3QgbWV0YWRhdGFUaGVtZSA9IG1ldGFkYXRhPy5maW5kKChtZXRhKSA9PiBtZXRhLm5hbWUgPT09ICdfdGhlbWUnKTtcbiAgICAgICAgaWYgKG1ldGFkYXRhVGhlbWUpIHtcbiAgICAgICAgICB0aGlzLm1ldGFkYXRhVGhlbWVJZCA9IG1ldGFkYXRhVGhlbWU/LmlkID8/ICcnO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBkaXNwYXRjaFNhdmUoKTogTWFuaWZlc3REZXNjcmlwdGlvbiB7XG4gICAgY29uc3QgcHJlc2VudGF0aW9uID0ge1xuICAgICAgLi4udGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWUhLFxuICAgICAgaWQ6IHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlPy5pZCB8fCB1dWlkdjQoKSxcbiAgICAgIC4uLnRoaXMuZm9ybVZhbHVlLFxuICAgICAgbWV0YWRhdGE6IHRoaXMubWV0YWRhdGEoKVxuICAgIH07XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRGFzaGJvYXJkQWN0aW9ucy5zYXZlTWFuaWZlc3Qoe1xuICAgICAgICAuLi5wcmVzZW50YXRpb24sXG4gICAgICAgIG1ldGFkYXRhOiBwcmVzZW50YXRpb24ubWV0YWRhdGE/Lm1hcCgobWV0YWRhdGE6IE1ldGFkYXRhVmFsdWUpID0+ICh7XG4gICAgICAgICAgbWV0YWRhdGFEZWZJZDogbWV0YWRhdGEubWV0YWRhdGFEZWYuaWQsXG4gICAgICAgICAgdmFsdWU6IG1ldGFkYXRhLnZhbHVlXG4gICAgICAgIH0pKSxcbiAgICAgICAgbWFuaWZlc3Q6IHRoaXMuZWRpdGlvbiA/IHRoaXMuc3RhdGljTWFuaWZlc3QgOiB0aGlzLmdldE5ld01hbmlmZXN0KClcbiAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gcHJlc2VudGF0aW9uO1xuICB9XG5cbiAgc2F2ZSgpIHtcbiAgICBjb25zdCBwcmVzZW50YXRpb24gPSB0aGlzLmRpc3BhdGNoU2F2ZSgpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBEYXNoYm9hcmRBY3Rpb25zLnNlbGVjdFByZXNlbnRhdGlvbih7XG4gICAgICAgIHByZXNlbnRhdGlvbixcbiAgICAgICAgdmlld01vZGU6IFZpZXdNb2RlLkVESVRJT05cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNvbmZpZ3VyZURhc2hib2FyZChzZWxlY3RlZFByZXNlbnRhdGlvbjogTWFuaWZlc3REZXNjcmlwdGlvbikge1xuICAgIGlmICh0aGlzLmlzRm9ybVZhbGlkKSB7XG4gICAgICB0aGlzLmRpc3BhdGNoU2F2ZSgpO1xuICAgIH1cblxuICAgIGNvbnN0IHByZXNlbnRhdGlvbiA9IHtcbiAgICAgIC4uLnRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlISxcbiAgICAgIC4uLnRoaXMuZm9ybVZhbHVlLFxuICAgICAgbWV0YWRhdGE6IHRoaXMubWV0YWRhdGEoKVxuICAgIH07XG5cbiAgICBpZiAoIXRoaXMuZWRpdGlvbikge1xuICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgRGFzaGJvYXJkQWN0aW9ucy5zZWxlY3RQcmVzZW50YXRpb24oe1xuICAgICAgICAgIHByZXNlbnRhdGlvbixcbiAgICAgICAgICB2aWV3TW9kZTogVmlld01vZGUuQ1JFQVRJT05cbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgIERhc2hib2FyZEFjdGlvbnMubG9hZFByZXNlbnRhdGlvbih7XG4gICAgICAgICAgcHJlc2VudGF0aW9uLFxuICAgICAgICAgIHZpZXdNb2RlOiBWaWV3TW9kZS5FRElUSU9OXG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnJvdXRlcj8ubmF2aWdhdGVCeVVybCh0aGlzLmVkaXRpb25TdGFydFVybCk7XG4gIH1cblxuICBhZGRNZXRhZGF0YShtZXRhZGF0YTogTWV0YUV2ZW50VHlwZSkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBEYXNoYm9hcmRBY3Rpb25zLmFkZE1hbmlmZXN0TWV0YWRhdGEoe1xuICAgICAgICBwcmVzZW50YXRpb25JZDogdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWU/LmlkISxcbiAgICAgICAgbWV0YWRhdGFJZDogbWV0YWRhdGEubWV0YWRhdGFJZCxcbiAgICAgICAgdmFsdWU6IG1ldGFkYXRhLnZhbHVlID8/ICcnXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICByZW1vdmVNZXRhZGF0YShtZXRhZGF0YTogTWV0YUV2ZW50VHlwZSkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBEYXNoYm9hcmRBY3Rpb25zLmRlbGV0ZU1hbmlmZXN0TWV0YWRhdGEoe1xuICAgICAgICBwcmVzZW50YXRpb25JZDogdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWU/LmlkISxcbiAgICAgICAgbWV0YWRhdGFJZDogbWV0YWRhdGEubWV0YWRhdGFJZFxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5nb0JhY2suZW1pdCgpO1xuICB9XG5cbiAgbWV0YWRhdGEoKTogTWV0YWRhdGFWYWx1ZVtdIHtcbiAgICByZXR1cm4gdGhpcy5tb2RlID09PSAndGhlbWUnXG4gICAgICA/ICF0aGlzLmZvcm1WYWx1ZT8udGhlbWUgfHwgdGhpcy5mb3JtVmFsdWU/LnRoZW1lID09PSAnJ1xuICAgICAgICA/IFtdXG4gICAgICAgIDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBtZXRhZGF0YURlZjogdGhpcy5tZXRhZGF0YURlZnMhLmZpbmQoKG1ldGFkYXRhKSA9PiBtZXRhZGF0YS5pZCA9PT0gdGhpcy5tZXRhZGF0YVRoZW1lSWQpISxcbiAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuZm9ybVZhbHVlLnRoZW1lID8/ICcnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgOiB0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC52YWx1ZT8ubWV0YWRhdGEgPz8gW107XG4gIH1cblxuICBnZXROZXdNYW5pZmVzdCgpOiBHbG9iYWxNYW5pZmVzdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdpbmRvd3M6IFtcbiAgICAgICAge1xuICAgICAgICAgIHdpZGdldHM6IFtdLFxuICAgICAgICAgIGdyaWQ6IHtcbiAgICAgICAgICAgIGxheW91dDogdGhpcy5jaG9zZW5MYXlvdXQsXG4gICAgICAgICAgICBjb2x1bW5zOiBXaWRnZXRQbGFjZW1lbnRVdGlscy5nZXRMYXlvdXQodGhpcy5jaG9zZW5MYXlvdXQpPy5jb2x1bW5zLFxuICAgICAgICAgICAgcm93czogV2lkZ2V0UGxhY2VtZW50VXRpbHMuZ2V0TGF5b3V0KHRoaXMuY2hvc2VuTGF5b3V0KT8ucm93c1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJvLW1hbmlmZXN0LWxheW91dFwiPlxuICA8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRfX3Rvb2xib3ggLWp1c3RpZnktc3BhY2UtYmV0d2VlbiAtYWxpZ24tY2VudGVyXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1zZWNvbmRhcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAgIHt7ICdAcHJ5LnRvb2xib3gubWFuaWZlc3QuY2xvc2UnIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwic2F2ZSgpXCIgW2Rpc2FibGVkXT1cIiFpc0Zvcm1WYWxpZFwiPlxuICAgICAge3sgJ0BwcnkudG9vbGJveC5tYW5pZmVzdC5jaGVjaycgfCBpMThuIH19XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRfX2NvbnRlbnQtLXByZXNlbnRhdGlvblwiPlxuICAgIDxoMiBjbGFzcz1cImEtaDJcIj57eyAnQHByeS5wcmVzZW50YXRpb24uYWRkJyArICcucGFnZVRpdGxlJyB8IGkxOG4gfX08L2gyPlxuICAgIDxkaXYgY2xhc3M9XCJvLXByZXNlbnRhdGlvbi1mb3JtLXdyYXBwZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJ1LWRpc3BsYXktZmxleCAtY29sdW1uXCI+XG4gICAgICAgIDxwcnktcHJlc2VudGF0aW9uLWZvcm1cbiAgICAgICAgICBtb2RlPVwidGhlbWVcIlxuICAgICAgICAgIFtzZWxlY3RlZFByZXNlbnRhdGlvbl09XCIoc2VsZWN0ZWRQcmVzZW50YXRpb24kIHwgYXN5bmMpID8/IHVuZGVmaW5lZFwiXG4gICAgICAgICAgKGZvcm1WYWx1ZSk9XCJmb3JtVmFsdWUgPSAkZXZlbnRcIlxuICAgICAgICAgIChpc0Zvcm1WYWxpZCk9XCJpc0Zvcm1WYWxpZCA9ICRldmVudFwiXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgW3RoZW1lUHJlZml4XT1cInRoZW1lUHJlZml4XCJcbiAgICAgICAgPjwvcHJ5LXByZXNlbnRhdGlvbi1mb3JtPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1mdWxsIG0tZm9ybS1sYWJlbC1maWVsZC0taW5saW5lXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLmdyaWQnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkudG9vbGJveC5sYXlvdXQuJyArIHRoaXMuY2hvc2VuTGF5b3V0IHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICBAaWYgKCFlZGl0aW9uKSB7XG4gICAgICAgICAgICA8cHJ5LXNlbGVjdC1ncmlkLWxheW91dD48L3ByeS1zZWxlY3QtZ3JpZC1sYXlvdXQ+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgQGlmIChtb2RlID09PSAnbWV0YScpIHtcbiAgICAgICAgQGlmIChzZWxlY3RlZFByZXNlbnRhdGlvbiQgfCBhc3luYzsgYXMgc2VsZWN0ZWRQcmVzZW50YXRpb24pIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1wcmVzZW50YXRpb25fX21ldGFkYXRhLWVkaXRvclwiPlxuICAgICAgICAgICAgPHByeS1tZXRhZGF0YS1lZGl0b3JcbiAgICAgICAgICAgICAgW3RhcmdldElkXT1cInNlbGVjdGVkUHJlc2VudGF0aW9uLmlkXCJcbiAgICAgICAgICAgICAgW2lzTW9kaWZpY2F0aW9uXT1cInRydWVcIlxuICAgICAgICAgICAgICBbbWV0YWRhdGFdPVwic2VsZWN0ZWRQcmVzZW50YXRpb24ubWV0YWRhdGEgPz8gW11cIlxuICAgICAgICAgICAgICAocmVtb3ZlTWV0YSk9XCJyZW1vdmVNZXRhZGF0YSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGFkZE1ldGEpPVwiYWRkTWV0YWRhdGEoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIFt0eXBlXT1cIidtZXRhJ1wiXG4gICAgICAgICAgICA+PC9wcnktbWV0YWRhdGEtZWRpdG9yPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICAoY2xpY2spPVwiY29uZmlndXJlRGFzaGJvYXJkKHNlbGVjdGVkUHJlc2VudGF0aW9uJC52YWx1ZSEpXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhaXNGb3JtVmFsaWRcIlxuICAgICAgPlxuICAgICAge3sgJ0BwcnkucHJlc2VudGF0aW9uLmNvbmZpZ3VyYXRpb24nIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWVkaXQtcHJlc2VudGF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL3ByZXNlbnRhdGlvbi9jb21wb25lbnRzL2FkZC1lZGl0LXByZXNlbnRhdGlvbi9hZGQtZWRpdC1wcmVzZW50YXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvcHJlc2VudGF0aW9uL2NvbXBvbmVudHMvYWRkLWVkaXQtcHJlc2VudGF0aW9uL2FkZC1lZGl0LXByZXNlbnRhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdqRixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG1CQUFtQixFQUNuQixrQkFBa0IsRUFNbEIsd0JBQXdCLEVBQ3hCLFFBQVEsRUFDUixvQkFBb0IsRUFDckIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUMsZUFBZSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQWMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSwrQ0FBK0MsQ0FBQztBQUNqRyxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFPcEMsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLHdCQUF3QjtJQVczRSxJQUFhLG9CQUFvQixDQUFDLFlBQTZDO1FBQzdFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQVFELFlBQ1ksS0FBWSxFQUNkLGVBQWdDLEVBQ2xCLE1BQWM7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QUUsSUFBSSxDQUFDLFlBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLGVBQWUsQ0FBRTt3QkFDekYsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUU7cUJBQ2xDO2lCQUNGO1lBQ0wsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQsY0FBYztRQUNaLE9BQU87WUFDTCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsSUFBSSxFQUFFO3dCQUNKLE1BQU0sRUFBRSxJQUFJLENBQUMsWUFBWTt3QkFDekIsT0FBTyxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsT0FBTzt3QkFDbkUsSUFBSSxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsSUFBSTtxQkFDOUQ7aUJBQ0Y7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzhHQS9KVSwrQkFBK0I7a0dBQS9CLCtCQUErQixtUkN6QjVDLHV2RUFzREE7OzJGRDdCYSwrQkFBK0I7a0JBSjNDLFNBQVM7K0JBQ0UsMkJBQTJCOzswQkEyQmxDLFFBQVE7eUNBYkUsb0JBQW9CO3NCQUFoQyxLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3B0aW9uYWwsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHtcbiAgRGFzaGJvYXJkQWN0aW9ucyxcbiAgRGFzaGJvYXJkR3JpZExheW91dCxcbiAgRGFzaGJvYXJkU2VsZWN0b3JzLFxuICBHbG9iYWxNYW5pZmVzdCxcbiAgSU1ldGFkYXRhLFxuICBNYW5pZmVzdERlc2NyaXB0aW9uLFxuICBNYW5pZmVzdFNlcnZpY2UsXG4gIE1ldGFkYXRhVmFsdWUsXG4gIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSxcbiAgVmlld01vZGUsXG4gIFdpZGdldFBsYWNlbWVudFV0aWxzXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY2F0Y2hFcnJvciwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXRhZGF0YVNlbGVjdG9ycywgTWV0YUV2ZW50VHlwZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL21ldGFkYXRhLWVkaXRvcic7XG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcbmltcG9ydCB7IFByZXNlbnRhdGlvbkZvcm1WYWx1ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC90b29sYm94JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWFkZC1lZGl0LXByZXNlbnRhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQtZWRpdC1wcmVzZW50YXRpb24uY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFByeUFkZEVkaXRQcmVzZW50YXRpb25Db21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUge1xuICBzdGF0aWNNYW5pZmVzdCQ6IE9ic2VydmFibGU8R2xvYmFsTWFuaWZlc3Q+O1xuICBzdGF0aWNNYW5pZmVzdD86IEdsb2JhbE1hbmlmZXN0O1xuICBzZWxlY3RlZFByZXNlbnRhdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hbmlmZXN0RGVzY3JpcHRpb24gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIGNob3NlbkxheW91dDogc3RyaW5nID0gRGFzaGJvYXJkR3JpZExheW91dC5GVUxMO1xuICBtZXRhZGF0YURlZnM6IElNZXRhZGF0YVtdIHwgdW5kZWZpbmVkO1xuICBtZXRhZGF0YVRoZW1lSWQ6IHN0cmluZyA9ICcnO1xuICBmb3JtVmFsdWU/OiBQYXJ0aWFsPFByZXNlbnRhdGlvbkZvcm1WYWx1ZT47XG4gIGlzRm9ybVZhbGlkID0gZmFsc2U7XG4gIGVycm9yRHVwbGljYXRpbmdUZXh0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKSBzZXQgc2VsZWN0ZWRQcmVzZW50YXRpb24ocHJlc2VudGF0aW9uOiBNYW5pZmVzdERlc2NyaXB0aW9uIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQubmV4dChwcmVzZW50YXRpb24pO1xuICB9XG4gIEBJbnB1dCgpIGVkaXRpb246IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdGhlbWVQcmVmaXg6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBlZGl0aW9uU3RhcnRVcmw6IHN0cmluZyA9ICcvJztcbiAgQElucHV0KCkgbW9kZTogJ3RoZW1lJyB8ICdtZXRhJyA9ICdtZXRhJztcblxuICBAT3V0cHV0KCkgZ29CYWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBtYW5pZmVzdFNlcnZpY2U6IE1hbmlmZXN0U2VydmljZSxcbiAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXJcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnN0YXRpY01hbmlmZXN0JCA9IHRoaXMuc3RvcmUuc2VsZWN0KERhc2hib2FyZFNlbGVjdG9ycy5zdGF0aWNNYW5pZmVzdCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZCh0aGlzLnN0YXRpY01hbmlmZXN0JC5zdWJzY3JpYmUoKG1hbmlmZXN0KSA9PiAodGhpcy5zdGF0aWNNYW5pZmVzdCA9IG1hbmlmZXN0KSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0YXRpY01hbmlmZXN0JCwgdGhpcy5zdG9yZS5zZWxlY3QoRGFzaGJvYXJkU2VsZWN0b3JzLmdyaWRMYXlvdXQpXSkuc3Vic2NyaWJlKFxuICAgICAgICAoW3N0YXRpY01hbmlmZXN0LCBncmlkTGF5b3V0XSkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hvc2VuTGF5b3V0ID1cbiAgICAgICAgICAgIHRoaXMuZWRpdGlvbiAmJiBzdGF0aWNNYW5pZmVzdC53aW5kb3dzWzBdPy5ncmlkPy5sYXlvdXQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICA/IHN0YXRpY01hbmlmZXN0LndpbmRvd3NbMF0/LmdyaWQ/LmxheW91dFxuICAgICAgICAgICAgICA6IGdyaWRMYXlvdXQ7XG4gICAgICAgIH1cbiAgICAgIClcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChNZXRhZGF0YVNlbGVjdG9ycy5tZXRhZGF0YSkuc3Vic2NyaWJlKChtZXRhZGF0YSkgPT4ge1xuICAgICAgICB0aGlzLm1ldGFkYXRhRGVmcyA9IG1ldGFkYXRhO1xuICAgICAgICBjb25zdCBtZXRhZGF0YVRoZW1lID0gbWV0YWRhdGE/LmZpbmQoKG1ldGEpID0+IG1ldGEubmFtZSA9PT0gJ190aGVtZScpO1xuICAgICAgICBpZiAobWV0YWRhdGFUaGVtZSkge1xuICAgICAgICAgIHRoaXMubWV0YWRhdGFUaGVtZUlkID0gbWV0YWRhdGFUaGVtZT8uaWQgPz8gJyc7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHNhdmVPclVwZGF0ZURhc2hib2FyZCgpIHtcbiAgICBjb25zdCBwcmVzZW50YXRpb24gPSB7XG4gICAgICAuLi50aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC52YWx1ZSEsXG4gICAgICBpZDogdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWU/LmlkIHx8IHV1aWR2NCgpLFxuICAgICAgLi4udGhpcy5mb3JtVmFsdWUsXG4gICAgICBtZXRhZGF0YTogdGhpcy5tZXRhZGF0YSgpXG4gICAgfTtcbiAgICB0aGlzLmVycm9yRHVwbGljYXRpbmdUZXh0ID0gbnVsbDtcbiAgICB0aGlzLm1hbmlmZXN0U2VydmljZVxuICAgICAgLnNhdmUoXG4gICAgICAgIHByZXNlbnRhdGlvbi5uYW1lLFxuICAgICAgICB0aGlzLmVkaXRpb24gPyAodGhpcy5zdGF0aWNNYW5pZmVzdCBhcyBHbG9iYWxNYW5pZmVzdCkgOiB0aGlzLmdldE5ld01hbmlmZXN0KCksXG4gICAgICAgIHByZXNlbnRhdGlvbi5pZCxcbiAgICAgICAgcHJlc2VudGF0aW9uLmRlc2NyaXB0aW9uLFxuICAgICAgICBwcmVzZW50YXRpb24uaW1hZ2UsXG4gICAgICAgIHByZXNlbnRhdGlvbi5tZXRhZGF0YT8ubWFwKChtZXRhZGF0YTogTWV0YWRhdGFWYWx1ZSkgPT4gKHtcbiAgICAgICAgICBtZXRhZGF0YURlZklkOiBtZXRhZGF0YS5tZXRhZGF0YURlZi5pZCxcbiAgICAgICAgICB2YWx1ZTogbWV0YWRhdGEudmFsdWVcbiAgICAgICAgfSkpLFxuICAgICAgICBwcmVzZW50YXRpb24uYWNjZXNzUmlnaHRzQnlHcm91cCxcbiAgICAgICAgcHJlc2VudGF0aW9uLmFkZGl0aW9uYWxJbmZvcm1hdGlvblxuICAgICAgKVxuICAgICAgLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgdGhpcy5lcnJvckR1cGxpY2F0aW5nVGV4dCA9ICdAY2hoLm1lc3NhZ2UuZmFpbHVyZS5hbHJlYWR5RXhpc3RpbmcnO1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGVycm9yKTtcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBjb25zdCBwcmVzZW50YXRpb24gPSB7XG4gICAgICAgICAgLi4udGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWUhLFxuICAgICAgICAgIC4uLnRoaXMuZm9ybVZhbHVlLFxuICAgICAgICAgIG1ldGFkYXRhOiB0aGlzLm1ldGFkYXRhKClcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoIXRoaXMuZWRpdGlvbikge1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICBEYXNoYm9hcmRBY3Rpb25zLnNlbGVjdFByZXNlbnRhdGlvbih7XG4gICAgICAgICAgICAgIHByZXNlbnRhdGlvbixcbiAgICAgICAgICAgICAgdmlld01vZGU6IFZpZXdNb2RlLkNSRUFUSU9OXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgIERhc2hib2FyZEFjdGlvbnMubG9hZFByZXNlbnRhdGlvbih7XG4gICAgICAgICAgICAgIHByZXNlbnRhdGlvbixcbiAgICAgICAgICAgICAgdmlld01vZGU6IFZpZXdNb2RlLkVESVRJT05cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnJvdXRlcj8ubmF2aWdhdGVCeVVybCh0aGlzLmVkaXRpb25TdGFydFVybCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHNhdmVEYXNoYm9hcmQoKSB7XG4gICAgaWYgKHRoaXMuaXNGb3JtVmFsaWQpIHtcbiAgICAgIHRoaXMuc2F2ZU9yVXBkYXRlRGFzaGJvYXJkKCk7XG4gICAgfVxuICB9XG5cbiAgYWRkTWV0YWRhdGEobWV0YWRhdGE6IE1ldGFFdmVudFR5cGUpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRGFzaGJvYXJkQWN0aW9ucy5hZGRNYW5pZmVzdE1ldGFkYXRhKHtcbiAgICAgICAgcHJlc2VudGF0aW9uSWQ6IHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlPy5pZCEsXG4gICAgICAgIG1ldGFkYXRhSWQ6IG1ldGFkYXRhLm1ldGFkYXRhSWQsXG4gICAgICAgIHZhbHVlOiBtZXRhZGF0YS52YWx1ZSA/PyAnJ1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcmVtb3ZlTWV0YWRhdGEobWV0YWRhdGE6IE1ldGFFdmVudFR5cGUpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgRGFzaGJvYXJkQWN0aW9ucy5kZWxldGVNYW5pZmVzdE1ldGFkYXRhKHtcbiAgICAgICAgcHJlc2VudGF0aW9uSWQ6IHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlPy5pZCEsXG4gICAgICAgIG1ldGFkYXRhSWQ6IG1ldGFkYXRhLm1ldGFkYXRhSWRcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuZ29CYWNrLmVtaXQoKTtcbiAgfVxuXG4gIG1ldGFkYXRhKCk6IE1ldGFkYXRhVmFsdWVbXSB7XG4gICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gJ3RoZW1lJ1xuICAgICAgPyAhdGhpcy5mb3JtVmFsdWU/LnRoZW1lIHx8IHRoaXMuZm9ybVZhbHVlPy50aGVtZSA9PT0gJydcbiAgICAgICAgPyBbXVxuICAgICAgICA6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbWV0YWRhdGFEZWY6IHRoaXMubWV0YWRhdGFEZWZzIS5maW5kKChtZXRhZGF0YSkgPT4gbWV0YWRhdGEuaWQgPT09IHRoaXMubWV0YWRhdGFUaGVtZUlkKSEsXG4gICAgICAgICAgICAgIHZhbHVlOiB0aGlzLmZvcm1WYWx1ZS50aGVtZSA/PyAnJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgIDogdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWU/Lm1ldGFkYXRhID8/IFtdO1xuICB9XG5cbiAgZ2V0TmV3TWFuaWZlc3QoKTogR2xvYmFsTWFuaWZlc3Qge1xuICAgIHJldHVybiB7XG4gICAgICB3aW5kb3dzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICB3aWRnZXRzOiBbXSxcbiAgICAgICAgICBncmlkOiB7XG4gICAgICAgICAgICBsYXlvdXQ6IHRoaXMuY2hvc2VuTGF5b3V0LFxuICAgICAgICAgICAgY29sdW1uczogV2lkZ2V0UGxhY2VtZW50VXRpbHMuZ2V0TGF5b3V0KHRoaXMuY2hvc2VuTGF5b3V0KT8uY29sdW1ucyxcbiAgICAgICAgICAgIHJvd3M6IFdpZGdldFBsYWNlbWVudFV0aWxzLmdldExheW91dCh0aGlzLmNob3NlbkxheW91dCk/LnJvd3NcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9O1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiby1tYW5pZmVzdC1sYXlvdXRcIj5cbiAgPGRpdiBjbGFzcz1cIm8tbWFuaWZlc3QtbGF5b3V0X190b29sYm94IC1qdXN0aWZ5LXNwYWNlLWJldHdlZW4gLWFsaWduLWNlbnRlclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tc2Vjb25kYXJ5XCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJjbG9zZSgpXCI+XG4gICAgICB7eyAnQHByeS50b29sYm94Lm1hbmlmZXN0LmNsb3NlJyB8IGkxOG4gfX1cbiAgICA8L2J1dHRvbj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLXByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNhdmVEYXNoYm9hcmQoKVwiIFtkaXNhYmxlZF09XCIhaXNGb3JtVmFsaWRcIj5cbiAgICAgIHt7ICdAcHJ5LnRvb2xib3gubWFuaWZlc3QuY2hlY2snIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm8tbWFuaWZlc3QtbGF5b3V0X19jb250ZW50LS1wcmVzZW50YXRpb25cIj5cbiAgICA8aDIgY2xhc3M9XCJhLWgyXCI+e3sgJ0BwcnkucHJlc2VudGF0aW9uLmFkZCcgKyAnLnBhZ2VUaXRsZScgfCBpMThuIH19PC9oMj5cbiAgICA8ZGl2IGNsYXNzPVwiby1wcmVzZW50YXRpb24tZm9ybS13cmFwcGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidS1kaXNwbGF5LWZsZXggLWNvbHVtblwiPlxuICAgICAgICA8cHJ5LXByZXNlbnRhdGlvbi1mb3JtXG4gICAgICAgICAgbW9kZT1cInRoZW1lXCJcbiAgICAgICAgICBbc2VsZWN0ZWRQcmVzZW50YXRpb25dPVwiKHNlbGVjdGVkUHJlc2VudGF0aW9uJCB8IGFzeW5jKSA/PyB1bmRlZmluZWRcIlxuICAgICAgICAgIChmb3JtVmFsdWUpPVwiZm9ybVZhbHVlID0gJGV2ZW50XCJcbiAgICAgICAgICAoaXNGb3JtVmFsaWQpPVwiaXNGb3JtVmFsaWQgPSAkZXZlbnRcIlxuICAgICAgICAgIFttb2RlXT1cIm1vZGVcIlxuICAgICAgICAgIFtlcnJvckR1cGxpY2F0aW5nVGV4dF09XCJlcnJvckR1cGxpY2F0aW5nVGV4dFwiXG4gICAgICAgICAgW3RoZW1lUHJlZml4XT1cInRoZW1lUHJlZml4XCJcbiAgICAgICAgPjwvcHJ5LXByZXNlbnRhdGlvbi1mb3JtPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1mdWxsIG0tZm9ybS1sYWJlbC1maWVsZC0taW5saW5lXCI+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiPnt7ICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLmdyaWQnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJhLWxhYmVsXCI+e3sgJ0BwcnkudG9vbGJveC5sYXlvdXQuJyArIHRoaXMuY2hvc2VuTGF5b3V0IHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICBAaWYgKCFlZGl0aW9uKSB7XG4gICAgICAgICAgICA8cHJ5LXNlbGVjdC1ncmlkLWxheW91dD48L3ByeS1zZWxlY3QtZ3JpZC1sYXlvdXQ+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgQGlmIChtb2RlID09PSAnbWV0YScpIHtcbiAgICAgICAgQGlmIChzZWxlY3RlZFByZXNlbnRhdGlvbiQgfCBhc3luYzsgYXMgc2VsZWN0ZWRQcmVzZW50YXRpb24pIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1wcmVzZW50YXRpb25fX21ldGFkYXRhLWVkaXRvclwiPlxuICAgICAgICAgICAgPHByeS1tZXRhZGF0YS1lZGl0b3JcbiAgICAgICAgICAgICAgW3RhcmdldElkXT1cInNlbGVjdGVkUHJlc2VudGF0aW9uLmlkXCJcbiAgICAgICAgICAgICAgW2lzTW9kaWZpY2F0aW9uXT1cInRydWVcIlxuICAgICAgICAgICAgICBbbWV0YWRhdGFdPVwic2VsZWN0ZWRQcmVzZW50YXRpb24ubWV0YWRhdGEgPz8gW11cIlxuICAgICAgICAgICAgICAocmVtb3ZlTWV0YSk9XCJyZW1vdmVNZXRhZGF0YSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGFkZE1ldGEpPVwiYWRkTWV0YWRhdGEoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIFt0eXBlXT1cIidtZXRhJ1wiXG4gICAgICAgICAgICA+PC9wcnktbWV0YWRhdGEtZWRpdG9yPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGJ1dHRvblxuICAgICAgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiXG4gICAgICAoY2xpY2spPVwic2F2ZURhc2hib2FyZCgpXCJcbiAgICAgIFtkaXNhYmxlZF09XCIhaXNGb3JtVmFsaWRcIlxuICAgICAgPlxuICAgICAge3sgJ0BwcnkucHJlc2VudGF0aW9uLmNvbmZpZ3VyYXRpb24nIHwgaTE4biB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -47,7 +47,7 @@ export class EditPresentationComponent extends ToolboxActionComponent {
|
|
|
47
47
|
}));
|
|
48
48
|
}
|
|
49
49
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EditPresentationComponent, deps: [{ token: i1.Store }, { token: PRY_ACCESS_TOKEN, optional: true }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
50
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: EditPresentationComponent, selector: "pry-edit-details", viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "@if (canModify$ | async) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"openModal()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.editPresentation' | i18n }}\n }\n </button>\n}\n\n<ng-template #template>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_title\"\n id=\"grid-layout\"\n (keydown.escape)=\"closeModal()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.editPresentation' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeModal()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <pry-presentation-form\n [selectedPresentation]=\"(currentManifest$ | async) ?? undefined\"\n (formValue)=\"formValue = $event\"\n (isFormValid)=\"isFormValid = $event\"\n ></pry-presentation-form>\n <div class=\"m-btn-group -space-evenly\">\n <button (click)=\"closeModal()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button (click)=\"save()\" [disabled]=\"!isFormValid\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i5.PresentationFormComponent, selector: "pry-presentation-form", inputs: ["mode", "themePrefix", "selectedPresentation"], outputs: ["formValue", "isFormValid"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
50
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: EditPresentationComponent, selector: "pry-edit-details", viewQueries: [{ propertyName: "template", first: true, predicate: ["template"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "@if (canModify$ | async) {\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"openModal()\">\n @if (displayLabels) {\n {{ '@pry.toolbox.editPresentation' | i18n }}\n }\n </button>\n}\n\n<ng-template #template>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_title\"\n id=\"grid-layout\"\n (keydown.escape)=\"closeModal()\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.editPresentation' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" (click)=\"closeModal()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <pry-presentation-form\n [selectedPresentation]=\"(currentManifest$ | async) ?? undefined\"\n (formValue)=\"formValue = $event\"\n (isFormValid)=\"isFormValid = $event\"\n ></pry-presentation-form>\n <div class=\"m-btn-group -space-evenly\">\n <button (click)=\"closeModal()\" class=\"a-btn a-btn--secondary\">\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button (click)=\"save()\" [disabled]=\"!isFormValid\" class=\"a-btn a-btn--primary\">\n {{ '@pry.toolbox.manifest.validated' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "directive", type: i4.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i5.PresentationFormComponent, selector: "pry-presentation-form", inputs: ["mode", "themePrefix", "errorDuplicatingText", "selectedPresentation"], outputs: ["formValue", "isFormValid"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
51
51
|
}
|
|
52
52
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: EditPresentationComponent, decorators: [{
|
|
53
53
|
type: Component,
|
|
@@ -166,7 +166,7 @@ export class SaveViewComponent extends ToolboxActionComponent {
|
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
168
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SaveViewComponent, deps: [{ token: i1.Store }, { token: PRY_ACCESS_TOKEN, optional: true }, { token: i2.Overlay }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
169
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: SaveViewComponent, selector: "pry-save-view", inputs: { mode: "mode" }, viewQueries: [{ propertyName: "saveAs", first: true, predicate: ["saveAs"], descendants: true }, { propertyName: "directiveSave", first: true, predicate: ["directiveSave"], descendants: true }, { propertyName: "firstFocusdirective", first: true, predicate: ["firstFocusdirective"], descendants: true }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "confirm", first: true, predicate: ["confirm"], descendants: true }, { propertyName: "cancel", first: true, predicate: ["cancel"], descendants: true }, { propertyName: "templateSaveAs", first: true, predicate: ["templateSaveAs"], descendants: true, read: TemplateRef }, { propertyName: "templateDirectSaveType", first: true, predicate: ["templateDirectSaveType"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-container *pryAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'save' }\">\n @if (mode === 'directSave') {\n <div [attr.aria-expanded]=\"saveTypeOpened\" aria-controls=\"directiveSave\" aria-describedby=\"infoTooltip_directSave\">\n @if (canModify$ | async) {\n <button\n type=\"button\"\n #directiveSave\n class=\"a-btn a-btn--primary\"\n (click)=\"directSave()\"\n [disabled]=\"!(isCurrentPresentationModified$ | async)\"\n >\n @if (displayLabels) {\n {{\n '@pry.toolbox.save' | i18n: { nbPages: '(' + nbPages + ')' }\n }}\n }\n </button>\n }\n </div>\n }\n @if (mode === 'saveAs') {\n <div\n class=\"save-manifest-container\"\n [attr.aria-expanded]=\"saveAsOpened\"\n aria-controls=\"saveModal\"\n aria-describedby=\"infoTooltip_saveAs\"\n >\n <button type=\"button\" #saveAs class=\"a-btn a-btn--secondary\" (click)=\"toggleSaveAs()\" aria-haspopup=\"dialog\">\n @if (displayLabels) {\n {{\n '@pry.toolbox.rename' | i18n: { nbPages: '(' + nbPages + ')' }\n }}\n }\n </button>\n </div>\n }\n</ng-container>\n<ng-template #templateSaveAs>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"saveModal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_saveModal\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.rename' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (keydown.shift.tab)=\"focusValidation()\" (click)=\"toggleSaveAs()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <pry-stepper #stepper>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.presentation.add.info' | i18n }}</h4>\n <pry-presentation-form\n [selectedPresentation]=\"currentManifest\"\n (formValue)=\"formValue = $event\"\n (isFormValid)=\"isFormValid = $event\"\n ></pry-presentation-form>\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n #cancel\n (click)=\"toggleSaveAs()\"\n (keydown.tab)=\"disableNextStep()\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n (click)=\"stepper.next()\"\n [disabled]=\"!isFormValid\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.action.next' | i18n }}\n </button>\n </div>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <pry-access-rights-share\n [(ngModel)]=\"accessRightsByGroup\"\n (ngModelChange)=\"changeAccessRights($event)\"\n [manifestDescription]=\"currentManifest\"\n ></pry-access-rights-share>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"stepper.prev()\">\n {{ '@pry.action.back' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n #confirm\n (click)=\"save()\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.restitution.share' | i18n }}\n </button>\n </div>\n </pry-step>\n </pry-stepper>\n </div>\n</ng-template>\n\n<ng-template #templateDirectSaveType>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"directiveSave\"\n role=\"dialog\"\n aria-labelledby=\"dialog_title\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title_\">{{ '@pry.toolbox.save' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #firstFocusdirective (click)=\"toggleDirectSaveType()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div>\n <h3>{{ '@pry.snack.pagesChanged' | i18n }}</h3>\n </div>\n <div class=\"m-btn-group\">\n <button class=\"a-btn a-btn--primary\" (click)=\"save()\">\n {{ '@pry.toolbox.save' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"rename()\">\n {{ '@pry.toolbox.rename' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"restore()\" (keydown.tab)=\"closeModals()\">\n {{ '@pry.toolbox.restore' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5.PryStepperComponent, selector: "pry-stepper", inputs: ["isConsultMode"], outputs: ["lastStepCompleted", "activeIndexChange"] }, { kind: "component", type: i5.PryStepComponent, selector: "pry-step", inputs: ["setActiveState"] }, { kind: "directive", type: i5.PryStepTitleDirective, selector: "[stepTitle]" }, { kind: "component", type: i4.PryAccessRightsShareComponent, selector: "pry-access-rights-share", inputs: ["manifestDescription", "allowedGroups"] }, { kind: "component", type: i6.PresentationFormComponent, selector: "pry-presentation-form", inputs: ["mode", "themePrefix", "selectedPresentation"], outputs: ["formValue", "isFormValid"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
|
|
169
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: SaveViewComponent, selector: "pry-save-view", inputs: { mode: "mode" }, viewQueries: [{ propertyName: "saveAs", first: true, predicate: ["saveAs"], descendants: true }, { propertyName: "directiveSave", first: true, predicate: ["directiveSave"], descendants: true }, { propertyName: "firstFocusdirective", first: true, predicate: ["firstFocusdirective"], descendants: true }, { propertyName: "cross", first: true, predicate: ["cross"], descendants: true }, { propertyName: "confirm", first: true, predicate: ["confirm"], descendants: true }, { propertyName: "cancel", first: true, predicate: ["cancel"], descendants: true }, { propertyName: "templateSaveAs", first: true, predicate: ["templateSaveAs"], descendants: true, read: TemplateRef }, { propertyName: "templateDirectSaveType", first: true, predicate: ["templateDirectSaveType"], descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: "<ng-container *pryAccess=\"{ module: 'dashboard', page: 'toolbox', action: 'save' }\">\n @if (mode === 'directSave') {\n <div [attr.aria-expanded]=\"saveTypeOpened\" aria-controls=\"directiveSave\" aria-describedby=\"infoTooltip_directSave\">\n @if (canModify$ | async) {\n <button\n type=\"button\"\n #directiveSave\n class=\"a-btn a-btn--primary\"\n (click)=\"directSave()\"\n [disabled]=\"!(isCurrentPresentationModified$ | async)\"\n >\n @if (displayLabels) {\n {{\n '@pry.toolbox.save' | i18n: { nbPages: '(' + nbPages + ')' }\n }}\n }\n </button>\n }\n </div>\n }\n @if (mode === 'saveAs') {\n <div\n class=\"save-manifest-container\"\n [attr.aria-expanded]=\"saveAsOpened\"\n aria-controls=\"saveModal\"\n aria-describedby=\"infoTooltip_saveAs\"\n >\n <button type=\"button\" #saveAs class=\"a-btn a-btn--secondary\" (click)=\"toggleSaveAs()\" aria-haspopup=\"dialog\">\n @if (displayLabels) {\n {{\n '@pry.toolbox.rename' | i18n: { nbPages: '(' + nbPages + ')' }\n }}\n }\n </button>\n </div>\n }\n</ng-container>\n<ng-template #templateSaveAs>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"saveModal\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"dialog_saveModal\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title\">{{ '@pry.toolbox.rename' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #cross (keydown.shift.tab)=\"focusValidation()\" (click)=\"toggleSaveAs()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <pry-stepper #stepper>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.presentation.add.info' | i18n }}</h4>\n <pry-presentation-form\n [selectedPresentation]=\"currentManifest\"\n (formValue)=\"formValue = $event\"\n (isFormValid)=\"isFormValid = $event\"\n ></pry-presentation-form>\n <div class=\"m-btn-group\">\n <button\n type=\"button\"\n class=\"a-btn a-btn--secondary\"\n #cancel\n (click)=\"toggleSaveAs()\"\n (keydown.tab)=\"disableNextStep()\"\n >\n {{ '@pry.toolbox.manifest.close' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n (click)=\"stepper.next()\"\n [disabled]=\"!isFormValid\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.action.next' | i18n }}\n </button>\n </div>\n </pry-step>\n <pry-step>\n <h4 class=\"m-stepper-item__title\" *stepTitle>{{ '@pry.restitution.share' | i18n }}</h4>\n <pry-access-rights-share\n [(ngModel)]=\"accessRightsByGroup\"\n (ngModelChange)=\"changeAccessRights($event)\"\n [manifestDescription]=\"currentManifest\"\n ></pry-access-rights-share>\n <div class=\"m-btn-group\">\n <button type=\"button\" class=\"a-btn a-btn--secondary\" (click)=\"stepper.prev()\">\n {{ '@pry.action.back' | i18n }}\n </button>\n <button\n type=\"submit\"\n class=\"a-btn a-btn--primary\"\n #confirm\n (click)=\"save()\"\n (keydown.tab)=\"focusCrossElement()\"\n >\n {{ '@pry.restitution.share' | i18n }}\n </button>\n </div>\n </pry-step>\n </pry-stepper>\n </div>\n</ng-template>\n\n<ng-template #templateDirectSaveType>\n <div\n class=\"o-modal\"\n (click)=\"$event.stopPropagation()\"\n id=\"directiveSave\"\n role=\"dialog\"\n aria-labelledby=\"dialog_title\"\n (keydown.escape)=\"closeModals()\"\n >\n <div class=\"o-modal__top\">\n <div class=\"o-modal__top__title\">\n <h2 class=\"a-h2\" id=\"dialog_title_\">{{ '@pry.toolbox.save' | i18n }}</h2>\n </div>\n <div class=\"o-modal__top__close\">\n <button class=\"a-btn a-btn--icon-only\" #firstFocusdirective (click)=\"toggleDirectSaveType()\">\n <pry-icon iconSvg=\"close\" [height]=\"35\" [width]=\"35\"></pry-icon>\n <span class=\"u-visually-hidden\">{{ '@pry.toolbox.close' | i18n }}</span>\n </button>\n </div>\n </div>\n <div>\n <h3>{{ '@pry.snack.pagesChanged' | i18n }}</h3>\n </div>\n <div class=\"m-btn-group\">\n <button class=\"a-btn a-btn--primary\" (click)=\"save()\">\n {{ '@pry.toolbox.save' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"rename()\">\n {{ '@pry.toolbox.rename' | i18n }}\n </button>\n <button class=\"a-btn a-btn--primary\" (click)=\"restore()\" (keydown.tab)=\"closeModals()\">\n {{ '@pry.toolbox.restore' | i18n }}\n </button>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5.PryStepperComponent, selector: "pry-stepper", inputs: ["isConsultMode"], outputs: ["lastStepCompleted", "activeIndexChange"] }, { kind: "component", type: i5.PryStepComponent, selector: "pry-step", inputs: ["setActiveState"] }, { kind: "directive", type: i5.PryStepTitleDirective, selector: "[stepTitle]" }, { kind: "component", type: i4.PryAccessRightsShareComponent, selector: "pry-access-rights-share", inputs: ["manifestDescription", "allowedGroups"] }, { kind: "component", type: i6.PresentationFormComponent, selector: "pry-presentation-form", inputs: ["mode", "themePrefix", "errorDuplicatingText", "selectedPresentation"], outputs: ["formValue", "isFormValid"] }, { kind: "pipe", type: i7.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
|
|
170
170
|
}
|
|
171
171
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SaveViewComponent, decorators: [{
|
|
172
172
|
type: Component,
|
|
@@ -30,6 +30,7 @@ export class PresentationFormComponent extends SubscriptionnerDirective {
|
|
|
30
30
|
this.possibleThemes = [];
|
|
31
31
|
this.mode = 'meta';
|
|
32
32
|
this.themePrefix = null;
|
|
33
|
+
this.errorDuplicatingText = null;
|
|
33
34
|
this.selectedPresentation$ = new BehaviorSubject(undefined);
|
|
34
35
|
this.formValue = new BehaviorSubject(undefined);
|
|
35
36
|
this.isFormValid = new BehaviorSubject(false);
|
|
@@ -88,15 +89,17 @@ export class PresentationFormComponent extends SubscriptionnerDirective {
|
|
|
88
89
|
this.formValue.next(this.getFormValue());
|
|
89
90
|
}
|
|
90
91
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PresentationFormComponent, deps: [{ token: i1.Store }, { token: i2.PryI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
91
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PresentationFormComponent, selector: "pry-presentation-form", inputs: { mode: "mode", themePrefix: "themePrefix", selectedPresentation: "selectedPresentation" }, outputs: { formValue: "formValue", isFormValid: "isFormValid" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\" class=\"o-presentation-form\">\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_name\"\n >{{ '@pry.presentation.form.name.title' | i18n }}<span class=\"required\">*</span></label\n >\n <input\n type=\"text\"\n id=\"presentation_name\"\n formControlName=\"name\"\n placeholder=\"{{ '@pry.presentation.form.name.placeholder' | i18n }}\"\n class=\"a-form-field\"\n maxlength=\"50\"\n required\n #input\n />\n @if (name.touched && name.errors?.['required']) {\n <label for=\"presentation_name\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.required' | i18n }}\n </label>\n }\n @if (name.touched && name.errors?.['maxlength']) {\n <label for=\"presentation_name\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.maxLength' | i18n: { len: '50' } }}\n </label>\n }\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_description\">{{\n '@pry.presentation.form.description.title' | i18n\n }}</label>\n <textarea\n formControlName=\"description\"\n id=\"presentation_description\"\n name=\"description\"\n cols=\"30\"\n rows=\"5\"\n maxlength=\"200\"\n placeholder=\"{{ '@pry.presentation.form.description.placeholder' | i18n }}\"\n class=\"a-form-field\"\n ></textarea>\n @if (description.touched && description.errors?.['maxlength']) {\n <label for=\"presentation_description\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.maxLength' | i18n: { len: '200' } }}\n </label>\n }\n </div>\n @if (mode === 'theme') {\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_theme\"\n >{{ '@pry.presentation.form.theme' | i18n }}<span class=\"required\">*</span></label\n >\n <pry-select\n id=\"presentation_theme\"\n [items]=\"possibleThemes\"\n formControlName=\"theme\"\n [clearable]=\"true\"\n [i18nPrefix]=\"themePrefix\"\n ></pry-select>\n </div>\n }\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image\n id=\"presentation_image\"\n (changed)=\"onImageChanged($event)\"\n [iconUrl]=\"image\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.toolbox.about' | i18n }}</label>\n <pry-text-editor formControlName=\"additionalInformation\"></pry-text-editor>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "component", type: i2.PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "component", type: i2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i4.PryTextEditorComponent, selector: "pry-text-editor", inputs: ["tabView"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
|
|
92
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PresentationFormComponent, selector: "pry-presentation-form", inputs: { mode: "mode", themePrefix: "themePrefix", errorDuplicatingText: "errorDuplicatingText", selectedPresentation: "selectedPresentation" }, outputs: { formValue: "formValue", isFormValid: "isFormValid" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<form [formGroup]=\"form\" class=\"o-presentation-form\">\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_name\"\n >{{ '@pry.presentation.form.name.title' | i18n }}<span class=\"required\">*</span></label\n >\n <input\n type=\"text\"\n id=\"presentation_name\"\n formControlName=\"name\"\n placeholder=\"{{ '@pry.presentation.form.name.placeholder' | i18n }}\"\n class=\"a-form-field\"\n maxlength=\"50\"\n required\n #input\n />\n @if (name.touched && name.errors?.['required']) {\n <label for=\"presentation_name\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.required' | i18n }}\n </label>\n }\n @if (name.touched && name.errors?.['maxlength']) {\n <label for=\"presentation_name\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.maxLength' | i18n: { len: '50' } }}\n </label>\n }\n @if (errorDuplicatingText) {\n <div class=\"error-duplicating\">\n <label class=\"a-form-field -error\">{{ errorDuplicatingText | i18n }}</label>\n </div>\n }\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_description\">{{\n '@pry.presentation.form.description.title' | i18n\n }}</label>\n <textarea\n formControlName=\"description\"\n id=\"presentation_description\"\n name=\"description\"\n cols=\"30\"\n rows=\"5\"\n maxlength=\"200\"\n placeholder=\"{{ '@pry.presentation.form.description.placeholder' | i18n }}\"\n class=\"a-form-field\"\n ></textarea>\n @if (description.touched && description.errors?.['maxlength']) {\n <label for=\"presentation_description\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.maxLength' | i18n: { len: '200' } }}\n </label>\n }\n </div>\n @if (mode === 'theme') {\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_theme\"\n >{{ '@pry.presentation.form.theme' | i18n }}<span class=\"required\">*</span></label\n >\n <pry-select\n id=\"presentation_theme\"\n [items]=\"possibleThemes\"\n formControlName=\"theme\"\n [clearable]=\"true\"\n [i18nPrefix]=\"themePrefix\"\n ></pry-select>\n </div>\n }\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image\n id=\"presentation_image\"\n (changed)=\"onImageChanged($event)\"\n [iconUrl]=\"image\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.toolbox.about' | i18n }}</label>\n <pry-text-editor formControlName=\"additionalInformation\"></pry-text-editor>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "component", type: i2.PrySelectImageComponent, selector: "pry-select-image", inputs: ["iconUrl", "size", "mode"], outputs: ["toggled", "changed"] }, { kind: "component", type: i2.PrySelectComponent, selector: "pry-select", inputs: ["items", "clearable", "multiple", "closeOnSelect", "placeholder", "isForm", "required", "name", "autocomplete", "alwaysShowAutosuggestedValues", "externalAutocompleteService", "bindValue", "bindLabel", "iconSize", "bindIcon", "template", "i18nPrefix", "bindClasses", "loading", "elementRef"], outputs: ["searched", "cleared", "clicked", "pressedEnter"] }, { kind: "component", type: i4.PryTextEditorComponent, selector: "pry-text-editor", inputs: ["tabView"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i2.I18nPipe, name: "i18n" }] }); }
|
|
92
93
|
}
|
|
93
94
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PresentationFormComponent, decorators: [{
|
|
94
95
|
type: Component,
|
|
95
|
-
args: [{ selector: 'pry-presentation-form', template: "<form [formGroup]=\"form\" class=\"o-presentation-form\">\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_name\"\n >{{ '@pry.presentation.form.name.title' | i18n }}<span class=\"required\">*</span></label\n >\n <input\n type=\"text\"\n id=\"presentation_name\"\n formControlName=\"name\"\n placeholder=\"{{ '@pry.presentation.form.name.placeholder' | i18n }}\"\n class=\"a-form-field\"\n maxlength=\"50\"\n required\n #input\n />\n @if (name.touched && name.errors?.['required']) {\n <label for=\"presentation_name\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.required' | i18n }}\n </label>\n }\n @if (name.touched && name.errors?.['maxlength']) {\n <label for=\"presentation_name\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.maxLength' | i18n: { len: '50' } }}\n </label>\n }\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_description\">{{\n '@pry.presentation.form.description.title' | i18n\n }}</label>\n <textarea\n formControlName=\"description\"\n id=\"presentation_description\"\n name=\"description\"\n cols=\"30\"\n rows=\"5\"\n maxlength=\"200\"\n placeholder=\"{{ '@pry.presentation.form.description.placeholder' | i18n }}\"\n class=\"a-form-field\"\n ></textarea>\n @if (description.touched && description.errors?.['maxlength']) {\n <label for=\"presentation_description\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.maxLength' | i18n: { len: '200' } }}\n </label>\n }\n </div>\n @if (mode === 'theme') {\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_theme\"\n >{{ '@pry.presentation.form.theme' | i18n }}<span class=\"required\">*</span></label\n >\n <pry-select\n id=\"presentation_theme\"\n [items]=\"possibleThemes\"\n formControlName=\"theme\"\n [clearable]=\"true\"\n [i18nPrefix]=\"themePrefix\"\n ></pry-select>\n </div>\n }\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image\n id=\"presentation_image\"\n (changed)=\"onImageChanged($event)\"\n [iconUrl]=\"image\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.toolbox.about' | i18n }}</label>\n <pry-text-editor formControlName=\"additionalInformation\"></pry-text-editor>\n </div>\n</form>\n" }]
|
|
96
|
+
args: [{ selector: 'pry-presentation-form', template: "<form [formGroup]=\"form\" class=\"o-presentation-form\">\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_name\"\n >{{ '@pry.presentation.form.name.title' | i18n }}<span class=\"required\">*</span></label\n >\n <input\n type=\"text\"\n id=\"presentation_name\"\n formControlName=\"name\"\n placeholder=\"{{ '@pry.presentation.form.name.placeholder' | i18n }}\"\n class=\"a-form-field\"\n maxlength=\"50\"\n required\n #input\n />\n @if (name.touched && name.errors?.['required']) {\n <label for=\"presentation_name\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.required' | i18n }}\n </label>\n }\n @if (name.touched && name.errors?.['maxlength']) {\n <label for=\"presentation_name\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.maxLength' | i18n: { len: '50' } }}\n </label>\n }\n @if (errorDuplicatingText) {\n <div class=\"error-duplicating\">\n <label class=\"a-form-field -error\">{{ errorDuplicatingText | i18n }}</label>\n </div>\n }\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_description\">{{\n '@pry.presentation.form.description.title' | i18n\n }}</label>\n <textarea\n formControlName=\"description\"\n id=\"presentation_description\"\n name=\"description\"\n cols=\"30\"\n rows=\"5\"\n maxlength=\"200\"\n placeholder=\"{{ '@pry.presentation.form.description.placeholder' | i18n }}\"\n class=\"a-form-field\"\n ></textarea>\n @if (description.touched && description.errors?.['maxlength']) {\n <label for=\"presentation_description\" class=\"a-label a-label--help -error\">\n {{ '@pry.presentation.maxLength' | i18n: { len: '200' } }}\n </label>\n }\n </div>\n @if (mode === 'theme') {\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_theme\"\n >{{ '@pry.presentation.form.theme' | i18n }}<span class=\"required\">*</span></label\n >\n <pry-select\n id=\"presentation_theme\"\n [items]=\"possibleThemes\"\n formControlName=\"theme\"\n [clearable]=\"true\"\n [i18nPrefix]=\"themePrefix\"\n ></pry-select>\n </div>\n }\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.presentation.form.image' | i18n }}</label>\n <div class=\"o-file-input\">\n <pry-select-image\n id=\"presentation_image\"\n (changed)=\"onImageChanged($event)\"\n [iconUrl]=\"image\"\n [mode]=\"type\"\n ></pry-select-image>\n </div>\n </div>\n <div class=\"m-form-label-field -width-full\">\n <label class=\"a-label\" for=\"presentation_image\">{{ '@pry.toolbox.about' | i18n }}</label>\n <pry-text-editor formControlName=\"additionalInformation\"></pry-text-editor>\n </div>\n</form>\n" }]
|
|
96
97
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.PryI18nService }], propDecorators: { mode: [{
|
|
97
98
|
type: Input
|
|
98
99
|
}], themePrefix: [{
|
|
99
100
|
type: Input
|
|
101
|
+
}], errorDuplicatingText: [{
|
|
102
|
+
type: Input
|
|
100
103
|
}], input: [{
|
|
101
104
|
type: ViewChild,
|
|
102
105
|
args: ['input']
|
|
@@ -107,4 +110,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
107
110
|
}], isFormValid: [{
|
|
108
111
|
type: Output
|
|
109
112
|
}] } });
|
|
110
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VudGF0aW9uLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvdG9vbGJveC9zaGFyZWQvcHJlc2VudGF0aW9uLWZvcm0vcHJlc2VudGF0aW9uLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvdG9vbGJveC9zaGFyZWQvcHJlc2VudGF0aW9uLWZvcm0vcHJlc2VudGF0aW9uLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsWUFBWSxFQUdaLHdCQUF3QixFQUN6QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7Ozs7QUFzQm5HLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx3QkFBd0I7SUFxQnJFLElBQWEsb0JBQW9CLENBQUMsWUFBNkM7UUFDN0UsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBS0QsWUFDWSxLQUFZLEVBQ2QsV0FBMkI7UUFFbkMsS0FBSyxFQUFFLENBQUM7UUFIRSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ2QsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBN0JyQyxTQUFJLEdBQUcsSUFBSSxTQUFTLENBQW1C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LENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLO1lBQ2pGLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLO1lBQy9ELHFCQUFxQixFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLO1lBQy9HLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztTQUNsQixDQUFDO0lBQ0osQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFjO1FBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsTUFBTSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7OEdBdEdVLHlCQUF5QjtrR0FBekIseUJBQXlCLHlWQ2hDdEMsMHpGQTRFQTs7MkZENUNhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSx1QkFBdUI7dUdBa0J4QixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDYyxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBSUwsb0JBQW9CO3NCQUFoQyxLQUFLO2dCQUlJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIERFRkFVTFRfREFTSEJPQVJEX0lDT05fVVJMLFxuICBMaWJyYXJ5VHlwZXMsXG4gIE1hbmlmZXN0RGVzY3JpcHRpb24sXG4gIFByeUkxOG5TZXJ2aWNlLFxuICBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmVcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWV0YWRhdGFBY3Rpb25zLCBNZXRhZGF0YVNlbGVjdG9ycyB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL21ldGFkYXRhLWVkaXRvcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBQcmVzZW50YXRpb25Gb3JtIHtcbiAgbmFtZTogRm9ybUNvbnRyb2w8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgZGVzY3JpcHRpb246IEZvcm1Db250cm9sPHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw+O1xuICB0aGVtZTogRm9ybUNvbnRyb2w8c3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbD47XG4gIGFkZGl0aW9uYWxJbmZvcm1hdGlvbjogRm9ybUNvbnRyb2w8c3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJlc2VudGF0aW9uRm9ybVZhbHVlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgdGhlbWU/OiBzdHJpbmc7XG4gIGFkZGl0aW9uYWxJbmZvcm1hdGlvbj86IHN0cmluZztcbiAgaW1hZ2U6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LXByZXNlbnRhdGlvbi1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ByZXNlbnRhdGlvbi1mb3JtLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcmVzZW50YXRpb25Gb3JtQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgZm9ybSA9IG5ldyBGb3JtR3JvdXA8UHJlc2VudGF0aW9uRm9ybT4oe1xuICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbCh1bmRlZmluZWQsIHtcbiAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCg1MCldLFxuICAgICAgbm9uTnVsbGFibGU6IHRydWVcbiAgICB9KSxcbiAgICBkZXNjcmlwdGlvbjogbmV3IEZvcm1Db250cm9sKHVuZGVmaW5lZCwgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDIwMCldKSxcbiAgICB0aGVtZTogbmV3IEZvcm1Db250cm9sKHVuZGVmaW5lZCksXG4gICAgYWRkaXRpb25hbEluZm9ybWF0aW9uOiBuZXcgRm9ybUNvbnRyb2wodW5kZWZpbmVkKVxuICB9KTtcblxuICBpbWFnZTogc3RyaW5nID0gREVGQVVMVF9EQVNIQk9BUkRfSUNPTl9VUkw7XG4gIHR5cGU6IExpYnJhcnlUeXBlcyA9IExpYnJhcnlUeXBlcy5JTExVU1RSQVRJT047XG4gIHBvc3NpYmxlVGhlbWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIG1vZGU6ICd0aGVtZScgfCAnbWV0YScgPSAnbWV0YSc7XG4gIEBJbnB1dCgpIHRoZW1lUHJlZml4OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dCE6IEVsZW1lbnRSZWY7XG5cbiAgc2VsZWN0ZWRQcmVzZW50YXRpb24kID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYW5pZmVzdERlc2NyaXB0aW9uIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIEBJbnB1dCgpIHNldCBzZWxlY3RlZFByZXNlbnRhdGlvbihwcmVzZW50YXRpb246IE1hbmlmZXN0RGVzY3JpcHRpb24gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC5uZXh0KHByZXNlbnRhdGlvbik7XG4gIH1cblxuICBAT3V0cHV0KCkgZm9ybVZhbHVlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJ0aWFsPFByZXNlbnRhdGlvbkZvcm1WYWx1ZT4gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIEBPdXRwdXQoKSBpc0Zvcm1WYWxpZCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBzdG9yZTogU3RvcmUsXG4gICAgcHJpdmF0ZSBpMThuU2VydmljZTogUHJ5STE4blNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKE1ldGFkYXRhQWN0aW9ucy5sb2FkTWV0YWRhdGEoKSk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoTWV0YWRhdGFTZWxlY3RvcnMubWV0YWRhdGEpLnN1YnNjcmliZSgobWV0YWRhdGEpID0+IHtcbiAgICAgICAgdGhpcy5wb3NzaWJsZVRoZW1lcyA9IFsuLi4obWV0YWRhdGE/LmZpbmQoKG1ldGEpID0+IG1ldGEubmFtZSA9PT0gJ190aGVtZScpPy5hbGxvd2VkVmFsdWVzID8/IFtdKV07XG4gICAgICAgIHRoaXMucG9zc2libGVUaGVtZXMuc29ydCgodGhlbWVBLCB0aGVtZUIpID0+XG4gICAgICAgICAgdGhpcy5pMThuU2VydmljZVxuICAgICAgICAgICAgLmluc3RhbnQoKHRoaXMudGhlbWVQcmVmaXggPz8gJycpICsgdGhlbWVBKVxuICAgICAgICAgICAgLmxvY2FsZUNvbXBhcmUodGhpcy5pMThuU2VydmljZS5pbnN0YW50KCh0aGlzLnRoZW1lUHJlZml4ID8/ICcnKSArIHRoZW1lQikpXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5mb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmlzRm9ybVZhbGlkLm5leHQodGhpcy5mb3JtLnZhbGlkKTtcbiAgICAgICAgdGhpcy5mb3JtVmFsdWUubmV4dCh0aGlzLmdldEZvcm1WYWx1ZSgpKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW1hZ2UgPSB0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC52YWx1ZT8uaW1hZ2UgPz8gREVGQVVMVF9EQVNIQk9BUkRfSUNPTl9VUkw7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnN1YnNjcmliZSgocHJlc2VudGF0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHRoZW1lID0gcHJlc2VudGF0aW9uPy5tZXRhZGF0YT8uZmluZCgobWV0YWRhdGEpID0+IG1ldGFkYXRhLm1ldGFkYXRhRGVmLm5hbWUgPT09ICdfdGhlbWUnKT8udmFsdWU7XG4gICAgICAgIGlmICghIXRoZW1lKSB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IHRoZW1lIH0pO1xuICAgICAgfSlcbiAgICApO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pbnB1dD8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH0sIDEwKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC52YWx1ZSkgdGhpcy5mb3JtLnBhdGNoVmFsdWUodGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQudmFsdWUpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0IG5hbWUoKTogQWJzdHJhY3RDb250cm9sPHN0cmluZyB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHNbJ25hbWUnXTtcbiAgfVxuXG4gIGdldCBkZXNjcmlwdGlvbigpOiBBYnN0cmFjdENvbnRyb2w8c3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHNbJ2Rlc2NyaXB0aW9uJ107XG4gIH1cblxuICBnZXQgdGhlbWUoKTogQWJzdHJhY3RDb250cm9sPHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtLmNvbnRyb2xzWyd0aGVtZSddO1xuICB9XG5cbiAgZ2V0IGFkZGl0aW9uYWxJbmZvcm1hdGlvbigpOiBBYnN0cmFjdENvbnRyb2w8c3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHNbJ2FkZGl0aW9uYWxJbmZvcm1hdGlvbiddO1xuICB9XG5cbiAgZ2V0Rm9ybVZhbHVlKCk6IFBhcnRpYWw8UHJlc2VudGF0aW9uRm9ybVZhbHVlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWU6IHRoaXMubmFtZS52YWx1ZSxcbiAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLnZhbHVlID09PSBudWxsID8gdW5kZWZpbmVkIDogdGhpcy5kZXNjcmlwdGlvbi52YWx1ZSxcbiAgICAgIHRoZW1lOiB0aGlzLnRoZW1lLnZhbHVlID09PSBudWxsID8gdW5kZWZpbmVkIDogdGhpcy50aGVtZS52YWx1ZSxcbiAgICAgIGFkZGl0aW9uYWxJbmZvcm1hdGlvbjogdGhpcy5hZGRpdGlvbmFsSW5mb3JtYXRpb24udmFsdWUgPT09IG51bGwgPyB1bmRlZmluZWQgOiB0aGlzLmFkZGl0aW9uYWxJbmZvcm1hdGlvbi52YWx1ZSxcbiAgICAgIGltYWdlOiB0aGlzLmltYWdlXG4gICAgfTtcbiAgfVxuXG4gIG9uSW1hZ2VDaGFuZ2VkKCRldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5pbWFnZSA9ICRldmVudDtcbiAgICB0aGlzLmZvcm1WYWx1ZS5uZXh0KHRoaXMuZ2V0Rm9ybVZhbHVlKCkpO1xuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiBjbGFzcz1cIm8tcHJlc2VudGF0aW9uLWZvcm1cIj5cbiAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtZnVsbFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJwcmVzZW50YXRpb25fbmFtZVwiXG4gICAgICA+e3sgJ0BwcnkucHJlc2VudGF0aW9uLmZvcm0ubmFtZS50aXRsZScgfCBpMThuIH19PHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+PC9sYWJlbFxuICAgID5cbiAgICA8aW5wdXRcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgIGlkPVwicHJlc2VudGF0aW9uX25hbWVcIlxuICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXG4gICAgICBwbGFjZWhvbGRlcj1cInt7ICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLm5hbWUucGxhY2Vob2xkZXInIHwgaTE4biB9fVwiXG4gICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICBtYXhsZW5ndGg9XCI1MFwiXG4gICAgICByZXF1aXJlZFxuICAgICAgI2lucHV0XG4gICAgLz5cbiAgICBAaWYgKG5hbWUudG91Y2hlZCAmJiBuYW1lLmVycm9ycz8uWydyZXF1aXJlZCddKSB7XG4gICAgICA8bGFiZWwgZm9yPVwicHJlc2VudGF0aW9uX25hbWVcIiBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIj5cbiAgICAgICAge3sgJ0BwcnkucHJlc2VudGF0aW9uLnJlcXVpcmVkJyB8IGkxOG4gfX1cbiAgICAgIDwvbGFiZWw+XG4gICAgfVxuICAgIEBpZiAobmFtZS50b3VjaGVkICYmIG5hbWUuZXJyb3JzPy5bJ21heGxlbmd0aCddKSB7XG4gICAgICA8bGFiZWwgZm9yPVwicHJlc2VudGF0aW9uX25hbWVcIiBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIj5cbiAgICAgICAge3sgJ0BwcnkucHJlc2VudGF0aW9uLm1heExlbmd0aCcgfCBpMThuOiB7IGxlbjogJzUwJyB9IH19XG4gICAgICA8L2xhYmVsPlxuICAgIH1cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLWZ1bGxcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwicHJlc2VudGF0aW9uX2Rlc2NyaXB0aW9uXCI+e3tcbiAgICAgICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLmRlc2NyaXB0aW9uLnRpdGxlJyB8IGkxOG5cbiAgICB9fTwvbGFiZWw+XG4gICAgPHRleHRhcmVhXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICBpZD1cInByZXNlbnRhdGlvbl9kZXNjcmlwdGlvblwiXG4gICAgICBuYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgY29scz1cIjMwXCJcbiAgICAgIHJvd3M9XCI1XCJcbiAgICAgIG1heGxlbmd0aD1cIjIwMFwiXG4gICAgICBwbGFjZWhvbGRlcj1cInt7ICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyJyB8IGkxOG4gfX1cIlxuICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgID48L3RleHRhcmVhPlxuICAgIEBpZiAoZGVzY3JpcHRpb24udG91Y2hlZCAmJiBkZXNjcmlwdGlvbi5lcnJvcnM/LlsnbWF4bGVuZ3RoJ10pIHtcbiAgICAgIDxsYWJlbCBmb3I9XCJwcmVzZW50YXRpb25fZGVzY3JpcHRpb25cIiBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIj5cbiAgICAgICAge3sgJ0BwcnkucHJlc2VudGF0aW9uLm1heExlbmd0aCcgfCBpMThuOiB7IGxlbjogJzIwMCcgfSB9fVxuICAgICAgPC9sYWJlbD5cbiAgICB9XG4gIDwvZGl2PlxuICBAaWYgKG1vZGUgPT09ICd0aGVtZScpIHtcbiAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1mdWxsXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwicHJlc2VudGF0aW9uX3RoZW1lXCJcbiAgICAgICAgPnt7ICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLnRoZW1lJyB8IGkxOG4gfX08c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsXG4gICAgICA+XG4gICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICBpZD1cInByZXNlbnRhdGlvbl90aGVtZVwiXG4gICAgICAgIFtpdGVtc109XCJwb3NzaWJsZVRoZW1lc1wiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRoZW1lXCJcbiAgICAgICAgW2NsZWFyYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgW2kxOG5QcmVmaXhdPVwidGhlbWVQcmVmaXhcIlxuICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgfVxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1mdWxsXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cInByZXNlbnRhdGlvbl9pbWFnZVwiPnt7ICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLmltYWdlJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJvLWZpbGUtaW5wdXRcIj5cbiAgICAgIDxwcnktc2VsZWN0LWltYWdlXG4gICAgICAgIGlkPVwicHJlc2VudGF0aW9uX2ltYWdlXCJcbiAgICAgICAgKGNoYW5nZWQpPVwib25JbWFnZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIFtpY29uVXJsXT1cImltYWdlXCJcbiAgICAgICAgW21vZGVdPVwidHlwZVwiXG4gICAgICA+PC9wcnktc2VsZWN0LWltYWdlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtZnVsbFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJwcmVzZW50YXRpb25faW1hZ2VcIj57eyAnQHByeS50b29sYm94LmFib3V0JyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxwcnktdGV4dC1lZGl0b3IgZm9ybUNvbnRyb2xOYW1lPVwiYWRkaXRpb25hbEluZm9ybWF0aW9uXCI+PC9wcnktdGV4dC1lZGl0b3I+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
|
|
113
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VudGF0aW9uLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvdG9vbGJveC9zaGFyZWQvcHJlc2VudGF0aW9uLWZvcm0vcHJlc2VudGF0aW9uLWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvdG9vbGJveC9zaGFyZWQvcHJlc2VudGF0aW9uLWZvcm0vcHJlc2VudGF0aW9uLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQixXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsWUFBWSxFQUdaLHdCQUF3QixFQUN6QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7Ozs7QUFzQm5HLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx3QkFBd0I7SUFzQnJFLElBQWEsb0JBQW9CLENBQUMsWUFBNkM7UUFDN0UsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBS0QsWUFDWSxLQUFZLEVBQ2QsV0FBMkI7UUFFbkMsS0FBSyxFQUFFLENBQUM7UUFIRSxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQ2QsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBOUJyQyxTQUFJLEdBQUcsSUFBSSxTQUFTLENBQW1C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Q0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUs7WUFDakYsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUs7WUFDL0QscUJBQXFCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUs7WUFDL0csS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ2xCLENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQWM7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDM0MsQ0FBQzs4R0F2R1UseUJBQXlCO2tHQUF6Qix5QkFBeUIsdVlDaEN0QyxrL0ZBaUZBOzsyRkRqRGEseUJBQXlCO2tCQUpyQyxTQUFTOytCQUNFLHVCQUF1Qjt1R0FrQnhCLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDYyxLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBSUwsb0JBQW9CO3NCQUFoQyxLQUFLO2dCQUlJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIERFRkFVTFRfREFTSEJPQVJEX0lDT05fVVJMLFxuICBMaWJyYXJ5VHlwZXMsXG4gIE1hbmlmZXN0RGVzY3JpcHRpb24sXG4gIFByeUkxOG5TZXJ2aWNlLFxuICBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmVcbn0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWV0YWRhdGFBY3Rpb25zLCBNZXRhZGF0YVNlbGVjdG9ycyB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL21ldGFkYXRhLWVkaXRvcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBQcmVzZW50YXRpb25Gb3JtIHtcbiAgbmFtZTogRm9ybUNvbnRyb2w8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgZGVzY3JpcHRpb246IEZvcm1Db250cm9sPHN0cmluZyB8IHVuZGVmaW5lZCB8IG51bGw+O1xuICB0aGVtZTogRm9ybUNvbnRyb2w8c3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbD47XG4gIGFkZGl0aW9uYWxJbmZvcm1hdGlvbjogRm9ybUNvbnRyb2w8c3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbD47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJlc2VudGF0aW9uRm9ybVZhbHVlIHtcbiAgbmFtZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgdGhlbWU/OiBzdHJpbmc7XG4gIGFkZGl0aW9uYWxJbmZvcm1hdGlvbj86IHN0cmluZztcbiAgaW1hZ2U6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LXByZXNlbnRhdGlvbi1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ByZXNlbnRhdGlvbi1mb3JtLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcmVzZW50YXRpb25Gb3JtQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgZm9ybSA9IG5ldyBGb3JtR3JvdXA8UHJlc2VudGF0aW9uRm9ybT4oe1xuICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbCh1bmRlZmluZWQsIHtcbiAgICAgIHZhbGlkYXRvcnM6IFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCg1MCldLFxuICAgICAgbm9uTnVsbGFibGU6IHRydWVcbiAgICB9KSxcbiAgICBkZXNjcmlwdGlvbjogbmV3IEZvcm1Db250cm9sKHVuZGVmaW5lZCwgW1ZhbGlkYXRvcnMubWF4TGVuZ3RoKDIwMCldKSxcbiAgICB0aGVtZTogbmV3IEZvcm1Db250cm9sKHVuZGVmaW5lZCksXG4gICAgYWRkaXRpb25hbEluZm9ybWF0aW9uOiBuZXcgRm9ybUNvbnRyb2wodW5kZWZpbmVkKVxuICB9KTtcblxuICBpbWFnZTogc3RyaW5nID0gREVGQVVMVF9EQVNIQk9BUkRfSUNPTl9VUkw7XG4gIHR5cGU6IExpYnJhcnlUeXBlcyA9IExpYnJhcnlUeXBlcy5JTExVU1RSQVRJT047XG4gIHBvc3NpYmxlVGhlbWVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIEBJbnB1dCgpIG1vZGU6ICd0aGVtZScgfCAnbWV0YScgPSAnbWV0YSc7XG4gIEBJbnB1dCgpIHRoZW1lUHJlZml4OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgZXJyb3JEdXBsaWNhdGluZ1RleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0ITogRWxlbWVudFJlZjtcblxuICBzZWxlY3RlZFByZXNlbnRhdGlvbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1hbmlmZXN0RGVzY3JpcHRpb24gfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG5cbiAgQElucHV0KCkgc2V0IHNlbGVjdGVkUHJlc2VudGF0aW9uKHByZXNlbnRhdGlvbjogTWFuaWZlc3REZXNjcmlwdGlvbiB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLm5leHQocHJlc2VudGF0aW9uKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBmb3JtVmFsdWUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhcnRpYWw8UHJlc2VudGF0aW9uRm9ybVZhbHVlPiB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgQE91dHB1dCgpIGlzRm9ybVZhbGlkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIGkxOG5TZXJ2aWNlOiBQcnlJMThuU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTWV0YWRhdGFBY3Rpb25zLmxvYWRNZXRhZGF0YSgpKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnN0b3JlLnNlbGVjdChNZXRhZGF0YVNlbGVjdG9ycy5tZXRhZGF0YSkuc3Vic2NyaWJlKChtZXRhZGF0YSkgPT4ge1xuICAgICAgICB0aGlzLnBvc3NpYmxlVGhlbWVzID0gWy4uLihtZXRhZGF0YT8uZmluZCgobWV0YSkgPT4gbWV0YS5uYW1lID09PSAnX3RoZW1lJyk/LmFsbG93ZWRWYWx1ZXMgPz8gW10pXTtcbiAgICAgICAgdGhpcy5wb3NzaWJsZVRoZW1lcy5zb3J0KCh0aGVtZUEsIHRoZW1lQikgPT5cbiAgICAgICAgICB0aGlzLmkxOG5TZXJ2aWNlXG4gICAgICAgICAgICAuaW5zdGFudCgodGhpcy50aGVtZVByZWZpeCA/PyAnJykgKyB0aGVtZUEpXG4gICAgICAgICAgICAubG9jYWxlQ29tcGFyZSh0aGlzLmkxOG5TZXJ2aWNlLmluc3RhbnQoKHRoaXMudGhlbWVQcmVmaXggPz8gJycpICsgdGhlbWVCKSlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuaXNGb3JtVmFsaWQubmV4dCh0aGlzLmZvcm0udmFsaWQpO1xuICAgICAgICB0aGlzLmZvcm1WYWx1ZS5uZXh0KHRoaXMuZ2V0Rm9ybVZhbHVlKCkpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbWFnZSA9IHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlPy5pbWFnZSA/PyBERUZBVUxUX0RBU0hCT0FSRF9JQ09OX1VSTDtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zZWxlY3RlZFByZXNlbnRhdGlvbiQuc3Vic2NyaWJlKChwcmVzZW50YXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgdGhlbWUgPSBwcmVzZW50YXRpb24/Lm1ldGFkYXRhPy5maW5kKChtZXRhZGF0YSkgPT4gbWV0YWRhdGEubWV0YWRhdGFEZWYubmFtZSA9PT0gJ190aGVtZScpPy52YWx1ZTtcbiAgICAgICAgaWYgKCEhdGhlbWUpIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHsgdGhlbWUgfSk7XG4gICAgICB9KVxuICAgICk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmlucHV0Py5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfSwgMTApO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRQcmVzZW50YXRpb24kLnZhbHVlKSB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh0aGlzLnNlbGVjdGVkUHJlc2VudGF0aW9uJC52YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgbmFtZSgpOiBBYnN0cmFjdENvbnRyb2w8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9sc1snbmFtZSddO1xuICB9XG5cbiAgZ2V0IGRlc2NyaXB0aW9uKCk6IEFic3RyYWN0Q29udHJvbDxzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9sc1snZGVzY3JpcHRpb24nXTtcbiAgfVxuXG4gIGdldCB0aGVtZSgpOiBBYnN0cmFjdENvbnRyb2w8c3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHNbJ3RoZW1lJ107XG4gIH1cblxuICBnZXQgYWRkaXRpb25hbEluZm9ybWF0aW9uKCk6IEFic3RyYWN0Q29udHJvbDxzdHJpbmcgfCB1bmRlZmluZWQgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9sc1snYWRkaXRpb25hbEluZm9ybWF0aW9uJ107XG4gIH1cblxuICBnZXRGb3JtVmFsdWUoKTogUGFydGlhbDxQcmVzZW50YXRpb25Gb3JtVmFsdWU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmFtZTogdGhpcy5uYW1lLnZhbHVlLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuZGVzY3JpcHRpb24udmFsdWUgPT09IG51bGwgPyB1bmRlZmluZWQgOiB0aGlzLmRlc2NyaXB0aW9uLnZhbHVlLFxuICAgICAgdGhlbWU6IHRoaXMudGhlbWUudmFsdWUgPT09IG51bGwgPyB1bmRlZmluZWQgOiB0aGlzLnRoZW1lLnZhbHVlLFxuICAgICAgYWRkaXRpb25hbEluZm9ybWF0aW9uOiB0aGlzLmFkZGl0aW9uYWxJbmZvcm1hdGlvbi52YWx1ZSA9PT0gbnVsbCA/IHVuZGVmaW5lZCA6IHRoaXMuYWRkaXRpb25hbEluZm9ybWF0aW9uLnZhbHVlLFxuICAgICAgaW1hZ2U6IHRoaXMuaW1hZ2VcbiAgICB9O1xuICB9XG5cbiAgb25JbWFnZUNoYW5nZWQoJGV2ZW50OiBzdHJpbmcpIHtcbiAgICB0aGlzLmltYWdlID0gJGV2ZW50O1xuICAgIHRoaXMuZm9ybVZhbHVlLm5leHQodGhpcy5nZXRGb3JtVmFsdWUoKSk7XG4gIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiby1wcmVzZW50YXRpb24tZm9ybVwiPlxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1mdWxsXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cInByZXNlbnRhdGlvbl9uYW1lXCJcbiAgICAgID57eyAnQHByeS5wcmVzZW50YXRpb24uZm9ybS5uYW1lLnRpdGxlJyB8IGkxOG4gfX08c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsXG4gICAgPlxuICAgIDxpbnB1dFxuICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgaWQ9XCJwcmVzZW50YXRpb25fbmFtZVwiXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCJcbiAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ0BwcnkucHJlc2VudGF0aW9uLmZvcm0ubmFtZS5wbGFjZWhvbGRlcicgfCBpMThuIH19XCJcbiAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgIG1heGxlbmd0aD1cIjUwXCJcbiAgICAgIHJlcXVpcmVkXG4gICAgICAjaW5wdXRcbiAgICAvPlxuICAgIEBpZiAobmFtZS50b3VjaGVkICYmIG5hbWUuZXJyb3JzPy5bJ3JlcXVpcmVkJ10pIHtcbiAgICAgIDxsYWJlbCBmb3I9XCJwcmVzZW50YXRpb25fbmFtZVwiIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiPlxuICAgICAgICB7eyAnQHByeS5wcmVzZW50YXRpb24ucmVxdWlyZWQnIHwgaTE4biB9fVxuICAgICAgPC9sYWJlbD5cbiAgICB9XG4gICAgQGlmIChuYW1lLnRvdWNoZWQgJiYgbmFtZS5lcnJvcnM/LlsnbWF4bGVuZ3RoJ10pIHtcbiAgICAgIDxsYWJlbCBmb3I9XCJwcmVzZW50YXRpb25fbmFtZVwiIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiPlxuICAgICAgICB7eyAnQHByeS5wcmVzZW50YXRpb24ubWF4TGVuZ3RoJyB8IGkxOG46IHsgbGVuOiAnNTAnIH0gfX1cbiAgICAgIDwvbGFiZWw+XG4gICAgfVxuICAgIEBpZiAoZXJyb3JEdXBsaWNhdGluZ1RleHQpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJlcnJvci1kdXBsaWNhdGluZ1wiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhLWZvcm0tZmllbGQgLWVycm9yXCI+e3sgZXJyb3JEdXBsaWNhdGluZ1RleHQgfCBpMThuIH19PC9sYWJlbD5cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgLXdpZHRoLWZ1bGxcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwicHJlc2VudGF0aW9uX2Rlc2NyaXB0aW9uXCI+e3tcbiAgICAgICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLmRlc2NyaXB0aW9uLnRpdGxlJyB8IGkxOG5cbiAgICB9fTwvbGFiZWw+XG4gICAgPHRleHRhcmVhXG4gICAgICBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiXG4gICAgICBpZD1cInByZXNlbnRhdGlvbl9kZXNjcmlwdGlvblwiXG4gICAgICBuYW1lPVwiZGVzY3JpcHRpb25cIlxuICAgICAgY29scz1cIjMwXCJcbiAgICAgIHJvd3M9XCI1XCJcbiAgICAgIG1heGxlbmd0aD1cIjIwMFwiXG4gICAgICBwbGFjZWhvbGRlcj1cInt7ICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLmRlc2NyaXB0aW9uLnBsYWNlaG9sZGVyJyB8IGkxOG4gfX1cIlxuICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgID48L3RleHRhcmVhPlxuICAgIEBpZiAoZGVzY3JpcHRpb24udG91Y2hlZCAmJiBkZXNjcmlwdGlvbi5lcnJvcnM/LlsnbWF4bGVuZ3RoJ10pIHtcbiAgICAgIDxsYWJlbCBmb3I9XCJwcmVzZW50YXRpb25fZGVzY3JpcHRpb25cIiBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIj5cbiAgICAgICAge3sgJ0BwcnkucHJlc2VudGF0aW9uLm1heExlbmd0aCcgfCBpMThuOiB7IGxlbjogJzIwMCcgfSB9fVxuICAgICAgPC9sYWJlbD5cbiAgICB9XG4gIDwvZGl2PlxuICBAaWYgKG1vZGUgPT09ICd0aGVtZScpIHtcbiAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1mdWxsXCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwicHJlc2VudGF0aW9uX3RoZW1lXCJcbiAgICAgICAgPnt7ICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLnRoZW1lJyB8IGkxOG4gfX08c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj48L2xhYmVsXG4gICAgICA+XG4gICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICBpZD1cInByZXNlbnRhdGlvbl90aGVtZVwiXG4gICAgICAgIFtpdGVtc109XCJwb3NzaWJsZVRoZW1lc1wiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRoZW1lXCJcbiAgICAgICAgW2NsZWFyYWJsZV09XCJ0cnVlXCJcbiAgICAgICAgW2kxOG5QcmVmaXhdPVwidGhlbWVQcmVmaXhcIlxuICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgfVxuICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIC13aWR0aC1mdWxsXCI+XG4gICAgPGxhYmVsIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cInByZXNlbnRhdGlvbl9pbWFnZVwiPnt7ICdAcHJ5LnByZXNlbnRhdGlvbi5mb3JtLmltYWdlJyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxkaXYgY2xhc3M9XCJvLWZpbGUtaW5wdXRcIj5cbiAgICAgIDxwcnktc2VsZWN0LWltYWdlXG4gICAgICAgIGlkPVwicHJlc2VudGF0aW9uX2ltYWdlXCJcbiAgICAgICAgKGNoYW5nZWQpPVwib25JbWFnZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIFtpY29uVXJsXT1cImltYWdlXCJcbiAgICAgICAgW21vZGVdPVwidHlwZVwiXG4gICAgICA+PC9wcnktc2VsZWN0LWltYWdlPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCAtd2lkdGgtZnVsbFwiPlxuICAgIDxsYWJlbCBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJwcmVzZW50YXRpb25faW1hZ2VcIj57eyAnQHByeS50b29sYm94LmFib3V0JyB8IGkxOG4gfX08L2xhYmVsPlxuICAgIDxwcnktdGV4dC1lZGl0b3IgZm9ybUNvbnRyb2xOYW1lPVwiYWRkaXRpb25hbEluZm9ybWF0aW9uXCI+PC9wcnktdGV4dC1lZGl0b3I+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
|
|
@@ -93,7 +93,8 @@ export class PryToolboxModule {
|
|
|
93
93
|
CdkDragHandle,
|
|
94
94
|
A11yModule,
|
|
95
95
|
PryTextEditorModule,
|
|
96
|
-
ReactiveFormsModule
|
|
96
|
+
ReactiveFormsModule,
|
|
97
|
+
PryI18nModule], exports: [ToolboxActionComponent,
|
|
97
98
|
ToolboxActionInstanciatorComponent,
|
|
98
99
|
ClearViewComponent,
|
|
99
100
|
DragWidgetsComponent,
|
|
@@ -129,7 +130,8 @@ export class PryToolboxModule {
|
|
|
129
130
|
PryI18nModule,
|
|
130
131
|
A11yModule,
|
|
131
132
|
PryTextEditorModule,
|
|
132
|
-
ReactiveFormsModule
|
|
133
|
+
ReactiveFormsModule,
|
|
134
|
+
PryI18nModule] }); }
|
|
133
135
|
}
|
|
134
136
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PryToolboxModule, decorators: [{
|
|
135
137
|
type: NgModule,
|
|
@@ -154,9 +156,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImpor
|
|
|
154
156
|
CdkDragHandle,
|
|
155
157
|
A11yModule,
|
|
156
158
|
PryTextEditorModule,
|
|
157
|
-
ReactiveFormsModule
|
|
159
|
+
ReactiveFormsModule,
|
|
160
|
+
PryI18nModule
|
|
158
161
|
],
|
|
159
162
|
exports: [...components]
|
|
160
163
|
}]
|
|
161
164
|
}] });
|
|
162
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJveC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC90b29sYm94L3Rvb2xib3gubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUNMLGFBQWEsRUFDYixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGFBQWEsRUFDYixnQkFBZ0IsRUFDaEIsZUFBZSxFQUNmLGNBQWMsRUFDZCxlQUFlLEVBQ2hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDbkcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDcEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDckYsT0FBTyxFQUFF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WUFDZix5QkFBeUI7WUFDekIsdUJBQXVCO1lBQ3ZCLHlCQUF5QjtZQUN6Qix5QkFBeUI7K0dBNkJkLGdCQUFnQixZQXZCckIsWUFBWTtZQUNaLFdBQVc7WUFDWCxhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGFBQWE7WUFDYixrQkFBa0I7WUFDbEIsZUFBZTtZQUNmLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGdCQUFnQjtZQUNoQixjQUFjO1lBQ2QsYUFBYTtZQUliLFVBQVU7WUFDVixtQkFBbUI7WUFDbkIsbUJBQW1CO1lBQ25CLGFBQWE7OzJGQUlSLGdCQUFnQjtrQkExQjVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7b0JBQzNCLE9BQU8sRUFBRTt3QkFDTCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsT0FBTzt3QkFDUCxhQUFhO3dCQUNiLFVBQVU7d0JBQ1YsbUJBQW1CO3dCQUNuQixtQkFBbUI7d0JBQ25CLGFBQWE7cUJBQ2hCO29CQUNILE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0RyYWcsIENka0RyYWdIYW5kbGUsIENka0Ryb3BMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIFByeUNvcmVNb2R1bGUsXG4gIFByeURhc2hib2FyZE1vZHVsZSxcbiAgUHJ5STE4bk1vZHVsZSxcbiAgUHJ5SWNvbk1vZHVsZSxcbiAgUHJ5T3ZlcmxheU1vZHVsZSxcbiAgUHJ5U2VsZWN0TW9kdWxlLFxuICBQcnlTaGFyZU1vZHVsZSxcbiAgUHJ5VG9nZ2xlTW9kdWxlXG59IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBQcnlDaGVja2JveE1vZHVsZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL2NoZWNrYm94JztcbmltcG9ydCB7IFByeVN0ZXBwZXJNb2R1bGUgfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQvY29tcG9uZW50cy9zdGVwcGVyJztcbmltcG9ydCB7IENsZWFyVmlld0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jbGVhci12aWV3L2NsZWFyLXZpZXcuY29tcG9uZW50JztcbmltcG9ydCB7IERyYWdXaWRnZXRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RyYWctd2lkZ2V0cy9kcmFnLXdpZGdldHMuY29tcG9uZW50JztcbmltcG9ydCB7IEVkaXRNb2RlVG9nZ2xlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VkaXQtbW9kZS10b2dnbGUvZWRpdC1tb2RlLXRvZ2dsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJ5RmlsdGVyU2V0dGluZ3NDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmlsdGVyLXNldHRpbmdzL2ZpbHRlci1zZXR0aW5ncy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF1bmNoVGFiQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2xhdW5jaC10YWIvbGF1bmNoLXRhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmFtZWRRdWVyeUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9uYW1lZC1xdWVyeS9uYW1lZC1xdWVyeS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2F2ZVZpZXdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2F2ZS12aWV3L3NhdmUtdmlldy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0R3JpZExheW91dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZWxlY3QtZ3JpZC1sYXlvdXQvc2VsZWN0LWdyaWQtbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUb29sYm94Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3Rvb2xib3guY29tcG9uZW50JztcbmltcG9ydCB7IFByeVNlbGVjdEdyaWRMYXlvdXRDc3NDb21wb25lbnQgfSBmcm9tICcuL3N0eWxlL2Nzcy5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVmcmVzaERhdGFzZXRzQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3JlZnJlc2gtZGF0YXNldHMvcmVmcmVzaC1kYXRhc2V0cy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXV0b21hdGVSZWZyZXNoQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2F1dG9tYXRlLXJlZnJlc2gvYXV0b21hdGUtcmVmcmVzaC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQTExeU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IFN3aXRjaFRvRWRpdENvbnRlbnRDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc3dpdGNoLXRvLWVkaXQtY29udGVudC9zd2l0Y2gtdG8tZWRpdC1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaGFyZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zaGFyZS9zaGFyZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGVsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RlbGV0ZS9kZWxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IERhc2hib2FyZERldGFpbHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGFzaGJvYXJkLWRldGFpbHMvZGFzaGJvYXJkLWRldGFpbHMuY29tcG9uZW50JztcbmltcG9ydCB7IEVkaXRNb2RlQWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VkaXQtbW9kZS1hY3Rpb24vZWRpdC1tb2RlLWFjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUHJ5VGV4dEVkaXRvck1vZHVsZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL3RleHQtZWRpdG9yJztcbmltcG9ydCB7IEVkaXRQcmVzZW50YXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZWRpdC1wcmVzZW50YXRpb24vZWRpdC1wcmVzZW50YXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFByZXNlbnRhdGlvbkZvcm1Db21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC9wcmVzZW50YXRpb24tZm9ybS9wcmVzZW50YXRpb24tZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbGJveEFjdGlvbkluc3RhbmNpYXRvckNvbXBvbmVudCB9IGZyb20gJy4vc2hhcmVkL3Rvb2xib3gtYWN0aW9uLWluc3RhbmNpYXRvci90b29sYm94LWFjdGlvbi1pbnN0YW5jaWF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFRvb2xib3hBY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL3NoYXJlZC90b29sYm94LWFjdGlvbi90b29sYm94LWFjdGlvbi5jb21wb25lbnQnO1xuXG5jb25zdCBjb21wb25lbnRzID0gW1xuICBUb29sYm94QWN0aW9uQ29tcG9uZW50LFxuICBUb29sYm94QWN0aW9uSW5zdGFuY2lhdG9yQ29tcG9uZW50LFxuICBDbGVhclZpZXdDb21wb25lbnQsXG4gIERyYWdXaWRnZXRzQ29tcG9uZW50LFxuICBFZGl0TW9kZVRvZ2dsZUNvbXBvbmVudCxcbiAgTGF1bmNoVGFiQ29tcG9uZW50LFxuICBOYW1lZFF1ZXJ5Q29tcG9uZW50LFxuICBTYXZlVmlld0NvbXBvbmVudCxcbiAgU2VsZWN0R3JpZExheW91dENvbXBvbmVudCxcbiAgVG9vbGJveENvbXBvbmVudCxcbiAgUHJ5U2VsZWN0R3JpZExheW91dENzc0NvbXBvbmVudCxcbiAgUHJ5RmlsdGVyU2V0dGluZ3NDb21wb25lbnQsXG4gIFJlZnJlc2hEYXRhc2V0c0NvbXBvbmVudCxcbiAgQXV0b21hdGVSZWZyZXNoQ29tcG9uZW50LFxuICBTd2l0Y2hUb0VkaXRDb250ZW50Q29tcG9uZW50LFxuICBTaGFyZUNvbXBvbmVudCxcbiAgRGVsZXRlQ29tcG9uZW50LFxuICBEYXNoYm9hcmREZXRhaWxzQ29tcG9uZW50LFxuICBFZGl0TW9kZUFjdGlvbkNvbXBvbmVudCxcbiAgRWRpdFByZXNlbnRhdGlvbkNvbXBvbmVudCxcbiAgUHJlc2VudGF0aW9uRm9ybUNvbXBvbmVudFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbLi4uY29tcG9uZW50c10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBPdmVybGF5TW9kdWxlLFxuICAgICAgICBQcnlPdmVybGF5TW9kdWxlLFxuICAgICAgICBQcnlDb3JlTW9kdWxlLFxuICAgICAgICBQcnlEYXNoYm9hcmRNb2R1bGUsXG4gICAgICAgIFByeVNlbGVjdE1vZHVsZSxcbiAgICAgICAgUHJ5SWNvbk1vZHVsZSxcbiAgICAgICAgUHJ5Q2hlY2tib3hNb2R1bGUsXG4gICAgICAgIFByeVRvZ2dsZU1vZHVsZSxcbiAgICAgICAgUHJ5U3RlcHBlck1vZHVsZSxcbiAgICAgICAgUHJ5U2hhcmVNb2R1bGUsXG4gICAgICAgIFByeUkxOG5Nb2R1bGUsXG4gICAgICAgIENka0Ryb3BMaXN0LFxuICAgICAgICBDZGtEcmFnLFxuICAgICAgICBDZGtEcmFnSGFuZGxlLFxuICAgICAgICBBMTF5TW9kdWxlLFxuICAgICAgICBQcnlUZXh0RWRpdG9yTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBQcnlJMThuTW9kdWxlXG4gICAgXSxcbiAgZXhwb3J0czogWy4uLmNvbXBvbmVudHNdXG59KVxuZXhwb3J0IGNsYXNzIFByeVRvb2xib3hNb2R1bGUge31cbiJdfQ==
|