@provoly/dashboard 1.3.34 → 1.3.36
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/admin/components/admin-user/admin-user-select/admin-user-select.component.d.ts +2 -1
- package/components/metadata-editor/metadata-editor.component.d.ts +10 -1
- package/components/metadata-editor/store/metadata.action.d.ts +2 -2
- package/components/metadata-editor/store/metadata.service.d.ts +1 -1
- package/esm2022/admin/components/admin-user/admin-user-select/admin-user-select.component.mjs +17 -4
- package/esm2022/components/metadata-editor/metadata-editor.component.mjs +38 -12
- package/esm2022/components/metadata-editor/store/metadata.action.mjs +1 -1
- package/esm2022/components/metadata-editor/store/metadata.service.mjs +1 -1
- package/esm2022/lib/core/components/select/select.component.mjs +3 -3
- package/fesm2022/provoly-dashboard-admin.mjs +16 -3
- package/fesm2022/provoly-dashboard-admin.mjs.map +1 -1
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs +38 -12
- package/fesm2022/provoly-dashboard-components-metadata-editor.mjs.map +1 -1
- package/fesm2022/provoly-dashboard.mjs +2 -2
- package/fesm2022/provoly-dashboard.mjs.map +1 -1
- package/package.json +1 -1
- package/styles/components/_a-pry-select.scss +4 -0
- package/styles/components/_o-tabs.scss +6 -0
|
@@ -11,6 +11,7 @@ export declare class AdminUserSelectComponent implements OnInit, OnDestroy {
|
|
|
11
11
|
compId: number;
|
|
12
12
|
selectedUser$: Observable<UserInfo | undefined>;
|
|
13
13
|
userMetadata$: Observable<MetadataUser[] | undefined>;
|
|
14
|
+
currentUsermetadatas?: MetadataUser[] | undefined;
|
|
14
15
|
editable$: Observable<boolean>;
|
|
15
16
|
metadata$: Observable<IMetadata[]>;
|
|
16
17
|
tab: number;
|
|
@@ -24,7 +25,7 @@ export declare class AdminUserSelectComponent implements OnInit, OnDestroy {
|
|
|
24
25
|
closePanel(): void;
|
|
25
26
|
addMetadataUser(metadata: MetaEventType): void;
|
|
26
27
|
removeMetadata(metadata: MetaEventType): void;
|
|
27
|
-
|
|
28
|
+
private getCurrentMetadatasValuesOfUserProfile;
|
|
28
29
|
static ɵfac: i0.ɵɵFactoryDeclaration<AdminUserSelectComponent, never>;
|
|
29
30
|
static ɵcmp: i0.ɵɵComponentDeclaration<AdminUserSelectComponent, "pry-admin-user-select", never, { "profil": { "alias": "profil"; "required": false; }; }, {}, never, never, false, never>;
|
|
30
31
|
}
|
|
@@ -8,6 +8,11 @@ export type MetaEventType = {
|
|
|
8
8
|
id: string;
|
|
9
9
|
metadataId: string;
|
|
10
10
|
value?: string;
|
|
11
|
+
previousValue?: string;
|
|
12
|
+
};
|
|
13
|
+
type GroupedMetadatasByDef = {
|
|
14
|
+
metadataDef: IMetadata;
|
|
15
|
+
metadata: (MetadataValue | MetadataUser)[];
|
|
11
16
|
};
|
|
12
17
|
export declare const INTEGER_REGEXP_PATTERN = "^[+-]?[0-9]*$";
|
|
13
18
|
export declare const DOUBLE_REGEXP_PATTERN = "[+-]?([0-9]*[.])?[0-9]+";
|
|
@@ -27,12 +32,16 @@ export declare class PryMetadataEditorComponent extends SubscriptionnerDirective
|
|
|
27
32
|
targetId: string;
|
|
28
33
|
set type(type: 'meta' | 'user');
|
|
29
34
|
set metadata(metadata: MetadataValue[] | MetadataUser[]);
|
|
35
|
+
_metadataGroupedByDef$: Observable<GroupedMetadatasByDef[]>;
|
|
36
|
+
_previousValueMetadata: string | undefined;
|
|
30
37
|
constructor(store: Store, formBuilder: FormBuilder);
|
|
31
38
|
onMetaChange(metadata: IMetadata): void;
|
|
32
39
|
editMetadata(currentMetadata: MetadataValue | MetadataUser): void;
|
|
33
40
|
metaDefinition(metadata: MetadataUser | MetadataValue): IMetadata;
|
|
34
|
-
removeMetadata(
|
|
41
|
+
removeMetadata(metadataDef: IMetadata): void;
|
|
42
|
+
removeMetadataValue(metadataToRemove: MetadataValue | MetadataUser): void;
|
|
35
43
|
addDatasetMetadata(): void;
|
|
36
44
|
static ɵfac: i0.ɵɵFactoryDeclaration<PryMetadataEditorComponent, never>;
|
|
37
45
|
static ɵcmp: i0.ɵɵComponentDeclaration<PryMetadataEditorComponent, "pry-metadata-editor", never, { "isModification": { "alias": "isModification"; "required": false; }; "targetId": { "alias": "targetId"; "required": false; }; "type": { "alias": "type"; "required": false; }; "metadata": { "alias": "metadata"; "required": false; }; }, { "addMeta": "addMeta"; "removeMeta": "removeMeta"; }, never, never, false, never>;
|
|
38
46
|
}
|
|
47
|
+
export {};
|
|
@@ -127,11 +127,11 @@ export declare const MetadataActions: {
|
|
|
127
127
|
addMetadataUser: import("@ngrx/store").ActionCreator<"[Metadata/User] Add Metadata of selected Users", (props: {
|
|
128
128
|
userId: string;
|
|
129
129
|
metaId: string;
|
|
130
|
-
value: any;
|
|
130
|
+
value: any[];
|
|
131
131
|
}) => {
|
|
132
132
|
userId: string;
|
|
133
133
|
metaId: string;
|
|
134
|
-
value: any;
|
|
134
|
+
value: any[];
|
|
135
135
|
} & import("@ngrx/store/src/models").TypedAction<"[Metadata/User] Add Metadata of selected Users">>;
|
|
136
136
|
addMetadataUserSuccess: import("@ngrx/store").ActionCreator<"[Metadata/User] Add Metadata of selected Users Success", (props: {
|
|
137
137
|
userId: string;
|
|
@@ -11,7 +11,7 @@ export declare class MetadataService {
|
|
|
11
11
|
getMetadata(id: string): Observable<IMetadata>;
|
|
12
12
|
postMetadata(metadata: IMetadata): Observable<void>;
|
|
13
13
|
getMetadataUser(userId: string): Observable<MetadataUser[]>;
|
|
14
|
-
addMetadataUser(userId: string, metaId: string, value: any): Observable<void>;
|
|
14
|
+
addMetadataUser(userId: string, metaId: string, value: any[]): Observable<void>;
|
|
15
15
|
deleteMetadataUser(userId: string, metaId: string): Observable<void>;
|
|
16
16
|
getUserMetadata(): Observable<any>;
|
|
17
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<MetadataService, never>;
|
package/esm2022/admin/components/admin-user/admin-user-select/admin-user-select.component.mjs
CHANGED
|
@@ -23,6 +23,9 @@ export class AdminUserSelectComponent {
|
|
|
23
23
|
this.store.dispatch(MetadataActions.loadUserProfile());
|
|
24
24
|
this.selectedUser$ = this.store.select(AdminUserSelectors.selectedUser);
|
|
25
25
|
this.userMetadata$ = this.store.select(MetadataSelectors.selectedUserProfile);
|
|
26
|
+
this.userMetadata$.subscribe((metas) => {
|
|
27
|
+
this.currentUsermetadatas = metas;
|
|
28
|
+
});
|
|
26
29
|
this.metadata$ = this.store.select(MetadataSelectors.userProfile);
|
|
27
30
|
this.editable$ = this.store.select(AdminUserSelectors.editable);
|
|
28
31
|
this.compId = nextCompId++;
|
|
@@ -43,17 +46,27 @@ export class AdminUserSelectComponent {
|
|
|
43
46
|
this.store.dispatch(AdminUserActions.unselectUser());
|
|
44
47
|
}
|
|
45
48
|
addMetadataUser(metadata) {
|
|
49
|
+
const newMetadatas = this.getCurrentMetadatasValuesOfUserProfile(metadata.metadataId)
|
|
50
|
+
// removing redundant values
|
|
51
|
+
.filter((val) => val !== metadata.value)
|
|
52
|
+
// removing previous value if editing
|
|
53
|
+
.filter((val) => !metadata.previousValue || val !== metadata.previousValue);
|
|
54
|
+
if (metadata.value) {
|
|
55
|
+
newMetadatas.push(metadata.value);
|
|
56
|
+
}
|
|
46
57
|
this.store.dispatch(MetadataActions.addMetadataUser({
|
|
47
58
|
userId: metadata.id,
|
|
48
59
|
metaId: metadata.metadataId,
|
|
49
|
-
value:
|
|
60
|
+
value: newMetadatas
|
|
50
61
|
}));
|
|
51
62
|
}
|
|
52
63
|
removeMetadata(metadata) {
|
|
53
64
|
this.store.dispatch(MetadataActions.deleteMetadataUser({ userId: this.userId, metadataId: metadata.metadataId }));
|
|
54
65
|
}
|
|
55
|
-
|
|
56
|
-
this.
|
|
66
|
+
getCurrentMetadatasValuesOfUserProfile(userProfileId) {
|
|
67
|
+
return (this.currentUsermetadatas
|
|
68
|
+
?.filter((metadata) => metadata.userProfile.id === userProfileId)
|
|
69
|
+
.map((metadata) => metadata.value) ?? []);
|
|
57
70
|
}
|
|
58
71
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AdminUserSelectComponent, deps: [{ token: i1.Store }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
59
72
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: AdminUserSelectComponent, selector: "pry-admin-user-select", inputs: { profil: "profil" }, ngImport: i0, template: "<div\n *ngIf=\"selectedUser$ | async as user\"\n [id]=\"'panel-user-' + user.id\"\n [attr.aria-labelledby]=\"'button-user-' + user.id\"\n class=\"o-panel\"\n>\n <div class=\"o-panel__header\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" (click)=\"closePanel()\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.closePanel' | i18n }}</span>\n <pry-icon iconSvg=\"close\"></pry-icon>\n </button>\n\n <h3 [id]=\"'tab-title-' + compId\" class=\"a-h3\">\n {{ '@pry.admin.userInfo.info' | i18n }}\n </h3>\n </div>\n\n <pry-tab-group translationStringBase=\"@pry.admin.\">\n <pry-tab [templateRef]=\"userProfile\" name=\"userInfo.profile\"></pry-tab>\n <pry-tab [templateRef]=\"userDetails\" name=\"details\"></pry-tab>\n </pry-tab-group>\n\n <ng-template #userProfile>\n <pry-metadata-editor\n [targetId]=\"(selectedUser$ | async)?.id ?? ''\"\n [isModification]=\"(editable$ | async) ?? false\"\n [metadata]=\"(userMetadata$ | async) ?? []\"\n (removeMeta)=\"removeMetadata($event)\"\n (addMeta)=\"addMetadataUser($event)\"\n [type]=\"'user'\"\n ></pry-metadata-editor>\n </ng-template>\n\n <ng-template #userDetails>\n <h4 class=\"a-h4\">{{ '@pry.admin.properties' | i18n }}</h4>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.name' | i18n }} :\n <strong>{{ user?.name }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.familyName' | i18n }} :\n <strong>{{ user.familyName }}</strong>\n </p>\n <p class=\"a-p\">\n {{ '@pry.admin.userInfo.email' | i18n }} :\n <strong>{{ user.email }}</strong>\n </p>\n </ng-template>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TabGroupComponent, selector: "pry-tab-group", inputs: ["translationStringBase"], outputs: ["clickedTabIdx"] }, { kind: "component", type: i3.TabComponent, selector: "pry-tab", inputs: ["name", "templateRef", "index"] }, { kind: "component", type: i3.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i4.PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: ["isModification", "targetId", "type", "metadata"], outputs: ["addMeta", "removeMeta"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.I18nPipe, name: "i18n" }] }); }
|
|
@@ -64,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
64
77
|
}], ctorParameters: () => [{ type: i1.Store }], propDecorators: { profil: [{
|
|
65
78
|
type: Input
|
|
66
79
|
}] } });
|
|
67
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tdXNlci1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvYWRtaW4vY29tcG9uZW50cy9hZG1pbi11c2VyL2FkbWluLXVzZXItc2VsZWN0L2FkbWluLXVzZXItc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tdXNlci9hZG1pbi11c2VyLXNlbGVjdC9hZG1pbi11c2VyLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFHcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSwrQ0FBK0MsQ0FBQztBQUNsSCxPQUFPLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7O0FBRWxFLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztBQU1uQixNQUFNLE9BQU8sd0JBQXdCO2FBQzVCLE9BQUUsR0FBRywwQkFBMEIsQUFBN0IsQ0FBOEI7SUFpQnZDLFlBQW9CLEtBQXNDO1FBQXRDLFVBQUssR0FBTCxLQUFLLENBQWlDO1FBaEIxRCxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBUVosUUFBRyxHQUFXLENBQUMsQ0FBQztRQUNoQixRQUFHLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBRVgsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUcvQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQztRQUV2RCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hFLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUM5RSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFaEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUNWLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDcEMsSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDVCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDeEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7UUFFRixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxlQUFlLENBQUMsUUFBdUI7UUFDckMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQ2pCLGVBQWUsQ0FBQyxlQUFlLENBQUM7WUFDOUIsTUFBTSxFQUFFLFFBQVEsQ0FBQyxFQUFFO1lBQ25CLE1BQU0sRUFBRSxRQUFRLENBQUMsVUFBVTtZQUMzQixLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUs7U0FDdEIsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQXVCO1FBQ3BDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BILENBQUM7SUFFRCxNQUFNLENBQUMsTUFBYztRQUNuQixJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQztJQUNwQixDQUFDOzhHQWxFVSx3QkFBd0I7a0dBQXhCLHdCQUF3QiwyRkNmckMsdXBEQWlEQTs7MkZEbENhLHdCQUF3QjtrQkFKcEMsU0FBUzsrQkFDRSx1QkFBdUI7MEVBbUJ4QixNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBJTWV0YWRhdGEsIE1ldGFkYXRhVXNlciwgVXNlckluZm8gfSBmcm9tICdAcHJvdm9seS9kYXNoYm9hcmQnO1xuaW1wb3J0IHsgTWV0YWRhdGFBY3Rpb25zLCBNZXRhZGF0YVNlbGVjdG9ycywgTWV0YUV2ZW50VHlwZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL21ldGFkYXRhLWVkaXRvcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFkbWluQWN0aW9ucyB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2FkbWluLmFjdGlvbnMnO1xuaW1wb3J0IHsgQWRtaW5Vc2VyQWN0aW9ucyB9IGZyb20gJy4uL3N0b3JlL2FkbWluLXVzZXIuYWN0aW9uJztcbmltcG9ydCB7IEFkbWluVXNlclNlbGVjdG9ycyB9IGZyb20gJy4uL3N0b3JlL2FkbWluLXVzZXIuc2VsZWN0b3InO1xuXG5sZXQgbmV4dENvbXBJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1hZG1pbi11c2VyLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZG1pbi11c2VyLXNlbGVjdC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQWRtaW5Vc2VyU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBzdGF0aWMgaWQgPSAnQWRtaW5Vc2VyU2VsZWN0Q29tcG9uZW50JztcbiAgdXNlcklkID0gJyc7XG4gIGNvbXBJZDogbnVtYmVyO1xuICBzZWxlY3RlZFVzZXIkOiBPYnNlcnZhYmxlPFVzZXJJbmZvIHwgdW5kZWZpbmVkPjtcbiAgdXNlck1ldGFkYXRhJDogT2JzZXJ2YWJsZTxNZXRhZGF0YVVzZXJbXSB8IHVuZGVmaW5lZD47XG4gIGVkaXRhYmxlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBtZXRhZGF0YSQ6IE9ic2VydmFibGU8SU1ldGFkYXRhW10+O1xuXG4gIHRhYjogbnVtYmVyID0gMDtcbiAgc3ViID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBlZGl0YWJsZSA9IGZhbHNlO1xuXG4gIGlzU3VibWl0dGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgcHJvZmlsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8QWRtaW5Vc2VyU2VsZWN0Q29tcG9uZW50Pikge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTWV0YWRhdGFBY3Rpb25zLmxvYWRVc2VyUHJvZmlsZSgpKTtcblxuICAgIHRoaXMuc2VsZWN0ZWRVc2VyJCA9IHRoaXMuc3RvcmUuc2VsZWN0KEFkbWluVXNlclNlbGVjdG9ycy5zZWxlY3RlZFVzZXIpO1xuICAgIHRoaXMudXNlck1ldGFkYXRhJCA9IHRoaXMuc3RvcmUuc2VsZWN0KE1ldGFkYXRhU2VsZWN0b3JzLnNlbGVjdGVkVXNlclByb2ZpbGUpO1xuICAgIHRoaXMubWV0YWRhdGEkID0gdGhpcy5zdG9yZS5zZWxlY3QoTWV0YWRhdGFTZWxlY3RvcnMudXNlclByb2ZpbGUpO1xuICAgIHRoaXMuZWRpdGFibGUkID0gdGhpcy5zdG9yZS5zZWxlY3QoQWRtaW5Vc2VyU2VsZWN0b3JzLmVkaXRhYmxlKTtcblxuICAgIHRoaXMuY29tcElkID0gbmV4dENvbXBJZCsrO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWIuYWRkKFxuICAgICAgdGhpcy5zZWxlY3RlZFVzZXIkLnN1YnNjcmliZSgodXNlcikgPT4ge1xuICAgICAgICBpZiAodXNlcikge1xuICAgICAgICAgIHRoaXMudXNlcklkID0gdXNlci5pZDtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWIuYWRkKHRoaXMuZWRpdGFibGUkLnN1YnNjcmliZSgoZWRpdCkgPT4gKHRoaXMuZWRpdGFibGUgPSBlZGl0KSkpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGNsb3NlUGFuZWwoKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pbkFjdGlvbnMudG9nZ2xlUGFuZWwoeyBwYW5lbE9wZW46IGZhbHNlIH0pKTtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKEFkbWluVXNlckFjdGlvbnMudW5zZWxlY3RVc2VyKCkpO1xuICB9XG5cbiAgYWRkTWV0YWRhdGFVc2VyKG1ldGFkYXRhOiBNZXRhRXZlbnRUeXBlKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgIE1ldGFkYXRhQWN0aW9ucy5hZGRNZXRhZGF0YVVzZXIoe1xuICAgICAgICB1c2VySWQ6IG1ldGFkYXRhLmlkLFxuICAgICAgICBtZXRhSWQ6IG1ldGFkYXRhLm1ldGFkYXRhSWQsXG4gICAgICAgIHZhbHVlOiBtZXRhZGF0YS52YWx1ZVxuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcmVtb3ZlTWV0YWRhdGEobWV0YWRhdGE6IE1ldGFFdmVudFR5cGUpIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKE1ldGFkYXRhQWN0aW9ucy5kZWxldGVNZXRhZGF0YVVzZXIoeyB1c2VySWQ6IHRoaXMudXNlcklkLCBtZXRhZGF0YUlkOiBtZXRhZGF0YS5tZXRhZGF0YUlkIH0pKTtcbiAgfVxuXG4gIHN3aXRjaChudW1iZXI6IG51bWJlcikge1xuICAgIHRoaXMudGFiID0gbnVtYmVyO1xuICB9XG59XG4iLCI8ZGl2XG4gICpuZ0lmPVwic2VsZWN0ZWRVc2VyJCB8IGFzeW5jIGFzIHVzZXJcIlxuICBbaWRdPVwiJ3BhbmVsLXVzZXItJyArIHVzZXIuaWRcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiJ2J1dHRvbi11c2VyLScgKyB1c2VyLmlkXCJcbiAgY2xhc3M9XCJvLXBhbmVsXCJcbj5cbiAgPGRpdiBjbGFzcz1cIm8tcGFuZWxfX2hlYWRlclwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIChjbGljayk9XCJjbG9zZVBhbmVsKClcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS5hY3Rpb24uY2xvc2VQYW5lbCcgfCBpMThuIH19PC9zcGFuPlxuICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjbG9zZVwiPjwvcHJ5LWljb24+XG4gICAgPC9idXR0b24+XG5cbiAgICA8aDMgW2lkXT1cIid0YWItdGl0bGUtJyArIGNvbXBJZFwiIGNsYXNzPVwiYS1oM1wiPlxuICAgICAge3sgJ0BwcnkuYWRtaW4udXNlckluZm8uaW5mbycgfCBpMThuIH19XG4gICAgPC9oMz5cbiAgPC9kaXY+XG5cbiAgPHByeS10YWItZ3JvdXAgdHJhbnNsYXRpb25TdHJpbmdCYXNlPVwiQHByeS5hZG1pbi5cIj5cbiAgICA8cHJ5LXRhYiBbdGVtcGxhdGVSZWZdPVwidXNlclByb2ZpbGVcIiBuYW1lPVwidXNlckluZm8ucHJvZmlsZVwiPjwvcHJ5LXRhYj5cbiAgICA8cHJ5LXRhYiBbdGVtcGxhdGVSZWZdPVwidXNlckRldGFpbHNcIiBuYW1lPVwiZGV0YWlsc1wiPjwvcHJ5LXRhYj5cbiAgPC9wcnktdGFiLWdyb3VwPlxuXG4gIDxuZy10ZW1wbGF0ZSAjdXNlclByb2ZpbGU+XG4gICAgPHByeS1tZXRhZGF0YS1lZGl0b3JcbiAgICAgIFt0YXJnZXRJZF09XCIoc2VsZWN0ZWRVc2VyJCB8IGFzeW5jKT8uaWQgPz8gJydcIlxuICAgICAgW2lzTW9kaWZpY2F0aW9uXT1cIihlZGl0YWJsZSQgfCBhc3luYykgPz8gZmFsc2VcIlxuICAgICAgW21ldGFkYXRhXT1cIih1c2VyTWV0YWRhdGEkIHwgYXN5bmMpID8/IFtdXCJcbiAgICAgIChyZW1vdmVNZXRhKT1cInJlbW92ZU1ldGFkYXRhKCRldmVudClcIlxuICAgICAgKGFkZE1ldGEpPVwiYWRkTWV0YWRhdGFVc2VyKCRldmVudClcIlxuICAgICAgW3R5cGVdPVwiJ3VzZXInXCJcbiAgICA+PC9wcnktbWV0YWRhdGEtZWRpdG9yPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSAjdXNlckRldGFpbHM+XG4gICAgPGg0IGNsYXNzPVwiYS1oNFwiPnt7ICdAcHJ5LmFkbWluLnByb3BlcnRpZXMnIHwgaTE4biB9fTwvaDQ+XG4gICAgPHAgY2xhc3M9XCJhLXBcIj5cbiAgICAgIHt7ICdAcHJ5LmFkbWluLnVzZXJJbmZvLm5hbWUnIHwgaTE4biB9fSA6XG4gICAgICA8c3Ryb25nPnt7IHVzZXI/Lm5hbWUgfX08L3N0cm9uZz5cbiAgICA8L3A+XG4gICAgPHAgY2xhc3M9XCJhLXBcIj5cbiAgICAgIHt7ICdAcHJ5LmFkbWluLnVzZXJJbmZvLmZhbWlseU5hbWUnIHwgaTE4biB9fSA6XG4gICAgICA8c3Ryb25nPnt7IHVzZXIuZmFtaWx5TmFtZSB9fTwvc3Ryb25nPlxuICAgIDwvcD5cbiAgICA8cCBjbGFzcz1cImEtcFwiPlxuICAgICAge3sgJ0BwcnkuYWRtaW4udXNlckluZm8uZW1haWwnIHwgaTE4biB9fSA6XG4gICAgICA8c3Ryb25nPnt7IHVzZXIuZW1haWwgfX08L3N0cm9uZz5cbiAgICA8L3A+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4tdXNlci1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvYWRtaW4vY29tcG9uZW50cy9hZG1pbi11c2VyL2FkbWluLXVzZXItc2VsZWN0L2FkbWluLXVzZXItc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2FkbWluL2NvbXBvbmVudHMvYWRtaW4tdXNlci9hZG1pbi11c2VyLXNlbGVjdC9hZG1pbi11c2VyLXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFHcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsRUFBaUIsTUFBTSwrQ0FBK0MsQ0FBQztBQUNsSCxPQUFPLEVBQWMsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7O0FBRWxFLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztBQU1uQixNQUFNLE9BQU8sd0JBQXdCO2FBQzVCLE9BQUUsR0FBRywwQkFBMEIsQUFBN0IsQ0FBOEI7SUFrQnZDLFlBQW9CLEtBQXNDO1FBQXRDLFVBQUssR0FBTCxLQUFLLENBQWlDO1FBakIxRCxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBU1osUUFBRyxHQUFXLENBQUMsQ0FBQztRQUNoQixRQUFHLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN6QixhQUFRLEdBQUcsS0FBSyxDQUFD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Q0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3BILENBQUM7SUFFTyxzQ0FBc0MsQ0FBQyxhQUFxQjtRQUNsRSxPQUFPLENBQ0wsSUFBSSxDQUFDLG9CQUFvQjtZQUN2QixFQUFFLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssYUFBYSxDQUFDO2FBQ2hFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FDM0MsQ0FBQztJQUNKLENBQUM7OEdBbEZVLHdCQUF3QjtrR0FBeEIsd0JBQXdCLDJGQ2ZyQyx1cERBaURBOzsyRkRsQ2Esd0JBQXdCO2tCQUpwQyxTQUFTOytCQUNFLHVCQUF1QjswRUFvQnhCLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IElNZXRhZGF0YSwgTWV0YWRhdGFVc2VyLCBVc2VySW5mbyB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBNZXRhZGF0YUFjdGlvbnMsIE1ldGFkYXRhU2VsZWN0b3JzLCBNZXRhRXZlbnRUeXBlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvbWV0YWRhdGEtZWRpdG9yJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWRtaW5BY3Rpb25zIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvYWRtaW4uYWN0aW9ucyc7XG5pbXBvcnQgeyBBZG1pblVzZXJBY3Rpb25zIH0gZnJvbSAnLi4vc3RvcmUvYWRtaW4tdXNlci5hY3Rpb24nO1xuaW1wb3J0IHsgQWRtaW5Vc2VyU2VsZWN0b3JzIH0gZnJvbSAnLi4vc3RvcmUvYWRtaW4tdXNlci5zZWxlY3Rvcic7XG5cbmxldCBuZXh0Q29tcElkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncHJ5LWFkbWluLXVzZXItc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2FkbWluLXVzZXItc2VsZWN0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBZG1pblVzZXJTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHN0YXRpYyBpZCA9ICdBZG1pblVzZXJTZWxlY3RDb21wb25lbnQnO1xuICB1c2VySWQgPSAnJztcbiAgY29tcElkOiBudW1iZXI7XG4gIHNlbGVjdGVkVXNlciQ6IE9ic2VydmFibGU8VXNlckluZm8gfCB1bmRlZmluZWQ+O1xuICB1c2VyTWV0YWRhdGEkOiBPYnNlcnZhYmxlPE1ldGFkYXRhVXNlcltdIHwgdW5kZWZpbmVkPjtcbiAgY3VycmVudFVzZXJtZXRhZGF0YXM/OiBNZXRhZGF0YVVzZXJbXSB8IHVuZGVmaW5lZDtcbiAgZWRpdGFibGUkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIG1ldGFkYXRhJDogT2JzZXJ2YWJsZTxJTWV0YWRhdGFbXT47XG5cbiAgdGFiOiBudW1iZXIgPSAwO1xuICBzdWIgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIGVkaXRhYmxlID0gZmFsc2U7XG5cbiAgaXNTdWJtaXR0ZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKSBwcm9maWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZTxBZG1pblVzZXJTZWxlY3RDb21wb25lbnQ+KSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChNZXRhZGF0YUFjdGlvbnMubG9hZFVzZXJQcm9maWxlKCkpO1xuXG4gICAgdGhpcy5zZWxlY3RlZFVzZXIkID0gdGhpcy5zdG9yZS5zZWxlY3QoQWRtaW5Vc2VyU2VsZWN0b3JzLnNlbGVjdGVkVXNlcik7XG4gICAgdGhpcy51c2VyTWV0YWRhdGEkID0gdGhpcy5zdG9yZS5zZWxlY3QoTWV0YWRhdGFTZWxlY3RvcnMuc2VsZWN0ZWRVc2VyUHJvZmlsZSk7XG4gICAgdGhpcy51c2VyTWV0YWRhdGEkLnN1YnNjcmliZSgobWV0YXMpID0+IHtcbiAgICAgIHRoaXMuY3VycmVudFVzZXJtZXRhZGF0YXMgPSBtZXRhcztcbiAgICB9KTtcbiAgICB0aGlzLm1ldGFkYXRhJCA9IHRoaXMuc3RvcmUuc2VsZWN0KE1ldGFkYXRhU2VsZWN0b3JzLnVzZXJQcm9maWxlKTtcbiAgICB0aGlzLmVkaXRhYmxlJCA9IHRoaXMuc3RvcmUuc2VsZWN0KEFkbWluVXNlclNlbGVjdG9ycy5lZGl0YWJsZSk7XG5cbiAgICB0aGlzLmNvbXBJZCA9IG5leHRDb21wSWQrKztcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3ViLmFkZChcbiAgICAgIHRoaXMuc2VsZWN0ZWRVc2VyJC5zdWJzY3JpYmUoKHVzZXIpID0+IHtcbiAgICAgICAgaWYgKHVzZXIpIHtcbiAgICAgICAgICB0aGlzLnVzZXJJZCA9IHVzZXIuaWQ7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc3ViLmFkZCh0aGlzLmVkaXRhYmxlJC5zdWJzY3JpYmUoKGVkaXQpID0+ICh0aGlzLmVkaXRhYmxlID0gZWRpdCkpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3ViLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBjbG9zZVBhbmVsKCkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQWRtaW5BY3Rpb25zLnRvZ2dsZVBhbmVsKHsgcGFuZWxPcGVuOiBmYWxzZSB9KSk7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChBZG1pblVzZXJBY3Rpb25zLnVuc2VsZWN0VXNlcigpKTtcbiAgfVxuXG4gIGFkZE1ldGFkYXRhVXNlcihtZXRhZGF0YTogTWV0YUV2ZW50VHlwZSkge1xuICAgIGNvbnN0IG5ld01ldGFkYXRhcyA9IHRoaXMuZ2V0Q3VycmVudE1ldGFkYXRhc1ZhbHVlc09mVXNlclByb2ZpbGUobWV0YWRhdGEubWV0YWRhdGFJZClcbiAgICAgIC8vIHJlbW92aW5nIHJlZHVuZGFudCB2YWx1ZXNcbiAgICAgIC5maWx0ZXIoKHZhbCkgPT4gdmFsICE9PSBtZXRhZGF0YS52YWx1ZSlcbiAgICAgIC8vIHJlbW92aW5nICBwcmV2aW91cyB2YWx1ZSBpZiBlZGl0aW5nXG4gICAgICAuZmlsdGVyKCh2YWwpID0+ICFtZXRhZGF0YS5wcmV2aW91c1ZhbHVlIHx8IHZhbCAhPT0gbWV0YWRhdGEucHJldmlvdXNWYWx1ZSk7XG4gICAgaWYgKG1ldGFkYXRhLnZhbHVlKSB7XG4gICAgICBuZXdNZXRhZGF0YXMucHVzaChtZXRhZGF0YS52YWx1ZSk7XG4gICAgfVxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICBNZXRhZGF0YUFjdGlvbnMuYWRkTWV0YWRhdGFVc2VyKHtcbiAgICAgICAgdXNlcklkOiBtZXRhZGF0YS5pZCxcbiAgICAgICAgbWV0YUlkOiBtZXRhZGF0YS5tZXRhZGF0YUlkLFxuICAgICAgICB2YWx1ZTogbmV3TWV0YWRhdGFzXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICByZW1vdmVNZXRhZGF0YShtZXRhZGF0YTogTWV0YUV2ZW50VHlwZSkge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTWV0YWRhdGFBY3Rpb25zLmRlbGV0ZU1ldGFkYXRhVXNlcih7IHVzZXJJZDogdGhpcy51c2VySWQsIG1ldGFkYXRhSWQ6IG1ldGFkYXRhLm1ldGFkYXRhSWQgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDdXJyZW50TWV0YWRhdGFzVmFsdWVzT2ZVc2VyUHJvZmlsZSh1c2VyUHJvZmlsZUlkOiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY3VycmVudFVzZXJtZXRhZGF0YXNcbiAgICAgICAgPy5maWx0ZXIoKG1ldGFkYXRhKSA9PiBtZXRhZGF0YS51c2VyUHJvZmlsZS5pZCA9PT0gdXNlclByb2ZpbGVJZClcbiAgICAgICAgLm1hcCgobWV0YWRhdGEpID0+IG1ldGFkYXRhLnZhbHVlKSA/PyBbXVxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJzZWxlY3RlZFVzZXIkIHwgYXN5bmMgYXMgdXNlclwiXG4gIFtpZF09XCIncGFuZWwtdXNlci0nICsgdXNlci5pZFwiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCInYnV0dG9uLXVzZXItJyArIHVzZXIuaWRcIlxuICBjbGFzcz1cIm8tcGFuZWxcIlxuPlxuICA8ZGl2IGNsYXNzPVwiby1wYW5lbF9faGVhZGVyXCI+XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCIgKGNsaWNrKT1cImNsb3NlUGFuZWwoKVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LmFjdGlvbi5jbG9zZVBhbmVsJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICA8cHJ5LWljb24gaWNvblN2Zz1cImNsb3NlXCI+PC9wcnktaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxoMyBbaWRdPVwiJ3RhYi10aXRsZS0nICsgY29tcElkXCIgY2xhc3M9XCJhLWgzXCI+XG4gICAgICB7eyAnQHByeS5hZG1pbi51c2VySW5mby5pbmZvJyB8IGkxOG4gfX1cbiAgICA8L2gzPlxuICA8L2Rpdj5cblxuICA8cHJ5LXRhYi1ncm91cCB0cmFuc2xhdGlvblN0cmluZ0Jhc2U9XCJAcHJ5LmFkbWluLlwiPlxuICAgIDxwcnktdGFiIFt0ZW1wbGF0ZVJlZl09XCJ1c2VyUHJvZmlsZVwiIG5hbWU9XCJ1c2VySW5mby5wcm9maWxlXCI+PC9wcnktdGFiPlxuICAgIDxwcnktdGFiIFt0ZW1wbGF0ZVJlZl09XCJ1c2VyRGV0YWlsc1wiIG5hbWU9XCJkZXRhaWxzXCI+PC9wcnktdGFiPlxuICA8L3ByeS10YWItZ3JvdXA+XG5cbiAgPG5nLXRlbXBsYXRlICN1c2VyUHJvZmlsZT5cbiAgICA8cHJ5LW1ldGFkYXRhLWVkaXRvclxuICAgICAgW3RhcmdldElkXT1cIihzZWxlY3RlZFVzZXIkIHwgYXN5bmMpPy5pZCA/PyAnJ1wiXG4gICAgICBbaXNNb2RpZmljYXRpb25dPVwiKGVkaXRhYmxlJCB8IGFzeW5jKSA/PyBmYWxzZVwiXG4gICAgICBbbWV0YWRhdGFdPVwiKHVzZXJNZXRhZGF0YSQgfCBhc3luYykgPz8gW11cIlxuICAgICAgKHJlbW92ZU1ldGEpPVwicmVtb3ZlTWV0YWRhdGEoJGV2ZW50KVwiXG4gICAgICAoYWRkTWV0YSk9XCJhZGRNZXRhZGF0YVVzZXIoJGV2ZW50KVwiXG4gICAgICBbdHlwZV09XCIndXNlcidcIlxuICAgID48L3ByeS1tZXRhZGF0YS1lZGl0b3I+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlICN1c2VyRGV0YWlscz5cbiAgICA8aDQgY2xhc3M9XCJhLWg0XCI+e3sgJ0BwcnkuYWRtaW4ucHJvcGVydGllcycgfCBpMThuIH19PC9oND5cbiAgICA8cCBjbGFzcz1cImEtcFwiPlxuICAgICAge3sgJ0BwcnkuYWRtaW4udXNlckluZm8ubmFtZScgfCBpMThuIH19IDpcbiAgICAgIDxzdHJvbmc+e3sgdXNlcj8ubmFtZSB9fTwvc3Ryb25nPlxuICAgIDwvcD5cbiAgICA8cCBjbGFzcz1cImEtcFwiPlxuICAgICAge3sgJ0BwcnkuYWRtaW4udXNlckluZm8uZmFtaWx5TmFtZScgfCBpMThuIH19IDpcbiAgICAgIDxzdHJvbmc+e3sgdXNlci5mYW1pbHlOYW1lIH19PC9zdHJvbmc+XG4gICAgPC9wPlxuICAgIDxwIGNsYXNzPVwiYS1wXCI+XG4gICAgICB7eyAnQHByeS5hZG1pbi51c2VySW5mby5lbWFpbCcgfCBpMThuIH19IDpcbiAgICAgIDxzdHJvbmc+e3sgdXNlci5lbWFpbCB9fTwvc3Ryb25nPlxuICAgIDwvcD5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuIl19
|
|
@@ -30,6 +30,21 @@ export class PryMetadataEditorComponent extends SubscriptionnerDirective {
|
|
|
30
30
|
this.addMeta = new EventEmitter();
|
|
31
31
|
this.removeMeta = new EventEmitter();
|
|
32
32
|
this.targetId = '';
|
|
33
|
+
this._metadataGroupedByDef$ = this._metadata$.pipe(map((metadatas) => {
|
|
34
|
+
const metadataGroupedByDef = [];
|
|
35
|
+
metadatas.forEach((meta) => {
|
|
36
|
+
const metadataGroup = metadataGroupedByDef.find((val) => val.metadataDef.id === this.metaDefinition(meta).id);
|
|
37
|
+
if (metadataGroup) {
|
|
38
|
+
metadataGroup.metadata.push(meta);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
metadataGroupedByDef.push({ metadataDef: this.metaDefinition(meta), metadata: [meta] });
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
metadataGroupedByDef.sort((group1, group2) => group1.metadataDef.name.localeCompare(group2.metadataDef.name));
|
|
45
|
+
return metadataGroupedByDef;
|
|
46
|
+
}));
|
|
47
|
+
this._previousValueMetadata = undefined;
|
|
33
48
|
this.form = this.formBuilder.group({
|
|
34
49
|
metadata: [{}, [Validators.required]],
|
|
35
50
|
value: ['', [Validators.required, Validators.pattern(INTEGER_REGEXP_PATTERN)]]
|
|
@@ -47,8 +62,7 @@ export class PryMetadataEditorComponent extends SubscriptionnerDirective {
|
|
|
47
62
|
return metaDefs.filter((meta) => !datasetMetadataIds?.includes(meta.id) && !meta.readOnly);
|
|
48
63
|
}
|
|
49
64
|
else {
|
|
50
|
-
|
|
51
|
-
return (userProfileDefs ?? []).filter((meta) => !userProfileIds?.includes(meta.id));
|
|
65
|
+
return userProfileDefs ?? [];
|
|
52
66
|
}
|
|
53
67
|
}));
|
|
54
68
|
this.subscriptions.add(this.availableMetadata$.subscribe((meta) => {
|
|
@@ -56,7 +70,6 @@ export class PryMetadataEditorComponent extends SubscriptionnerDirective {
|
|
|
56
70
|
metadata: meta[0]
|
|
57
71
|
});
|
|
58
72
|
this.onMetaChange(meta[0]);
|
|
59
|
-
this.form.patchValue({ value: '' });
|
|
60
73
|
}));
|
|
61
74
|
}
|
|
62
75
|
onMetaChange(metadata) {
|
|
@@ -75,24 +88,35 @@ export class PryMetadataEditorComponent extends SubscriptionnerDirective {
|
|
|
75
88
|
else {
|
|
76
89
|
this.isModification = false;
|
|
77
90
|
}
|
|
91
|
+
this.form.patchValue({ value: '' });
|
|
92
|
+
this._previousValueMetadata = undefined;
|
|
78
93
|
}
|
|
79
94
|
editMetadata(currentMetadata) {
|
|
80
95
|
this.store.dispatch(MetadataActions.isEditable({ editable: true }));
|
|
81
|
-
let value = currentMetadata.value;
|
|
82
96
|
let datasetMetadataDef = this.metaDefinition(currentMetadata);
|
|
97
|
+
this.onMetaChange(datasetMetadataDef);
|
|
83
98
|
this.form.patchValue({
|
|
84
99
|
metadata: datasetMetadataDef,
|
|
85
|
-
value: value
|
|
100
|
+
value: currentMetadata.value
|
|
86
101
|
});
|
|
87
|
-
this.
|
|
102
|
+
this._previousValueMetadata = currentMetadata.value;
|
|
88
103
|
}
|
|
89
104
|
metaDefinition(metadata) {
|
|
90
105
|
return this._type$.getValue() === 'user'
|
|
91
106
|
? metadata.userProfile
|
|
92
107
|
: metadata.metadataDef;
|
|
93
108
|
}
|
|
94
|
-
removeMetadata(
|
|
95
|
-
this.removeMeta.emit({ id: this.targetId, metadataId:
|
|
109
|
+
removeMetadata(metadataDef) {
|
|
110
|
+
this.removeMeta.emit({ id: this.targetId, metadataId: metadataDef.id });
|
|
111
|
+
}
|
|
112
|
+
removeMetadataValue(metadataToRemove) {
|
|
113
|
+
// removing one value is like editing current without new value
|
|
114
|
+
this.addMeta.emit({
|
|
115
|
+
id: this.targetId,
|
|
116
|
+
metadataId: this.metaDefinition(metadataToRemove).id,
|
|
117
|
+
value: undefined,
|
|
118
|
+
previousValue: metadataToRemove.value
|
|
119
|
+
});
|
|
96
120
|
}
|
|
97
121
|
addDatasetMetadata() {
|
|
98
122
|
this.isSubmitted = true;
|
|
@@ -101,16 +125,18 @@ export class PryMetadataEditorComponent extends SubscriptionnerDirective {
|
|
|
101
125
|
this.addMeta.emit({
|
|
102
126
|
id: this.targetId,
|
|
103
127
|
metadataId: this.form.value['metadata']['id'],
|
|
104
|
-
value: this.form.value['value']
|
|
128
|
+
value: this.form.value['value'],
|
|
129
|
+
previousValue: this._previousValueMetadata
|
|
105
130
|
});
|
|
131
|
+
this._previousValueMetadata = undefined;
|
|
106
132
|
}
|
|
107
133
|
}
|
|
108
134
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryMetadataEditorComponent, deps: [{ token: i1.Store }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
109
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: { isModification: "isModification", targetId: "targetId", type: "type", metadata: "metadata" }, outputs: { addMeta: "addMeta", removeMeta: "removeMeta" }, usesInheritance: true, ngImport: i0, template: "<pry-metadata-editor-css></pry-metadata-editor-css>\n<div *ngFor=\"let metadata of (_metadata$ | async) ?? []\">\n <div class=\"o-tabs__panel__content__actions\">\n <div class=\"o-tabs__panel__content__actions__text\">\n <span class=\"o-tabs__panel__content__actions__text__label\">{{ metaDefinition(metadata).name }} :</span>\n <span class=\"o-tabs__panel__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n\n <div class=\"o-tabs__panel__content__actions__buttons\">\n <ng-container *ngIf=\"!metaDefinition(metadata).readOnly\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.edit' | i18n }} {{ metaDefinition(metadata).name }}</span>\n <pry-icon\n class=\"edit-icon\"\n iconSvg=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editMetadata(metadata)\"\n ></pry-icon>\n </button>\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">{{ '@pry.action.delete' | i18n }} {{ metaDefinition(metadata).name }}</span>\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(metadata)\"\n ></pry-icon>\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <form class=\"o-form -border-top\" [formGroup]=\"form\" (ngSubmit)=\"addDatasetMetadata()\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.action.editProfil' | i18n }}</legend>\n\n <div class=\"m-form-label-field o-metadata-editor__container\">\n <label for=\"metadata\" id=\"metadata-label\" class=\"a-label\">Data</label>\n <pry-select\n id=\"metadata\"\n class=\"o-metadata-editor\"\n formControlName=\"metadata\"\n [items]=\"availableMetadata$ | async\"\n (ngModelChange)=\"onMetaChange($event)\"\n [isForm]=\"true\"\n bindLabel=\"name\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('metadata')?.invalid ? 'metadata-label metadata-error' : 'metadata-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('metadata')?.invalid\"\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && form.get('metadata')?.invalid\"\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <ng-container *ngIf=\"form.value.metadata\">\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'DATE'; else inputList\">\n <div class=\"m-form-label-field o-metadata-editor__container\">\n <label id=\"form_date-label\" for=\"form_date\" class=\"a-label\">\n {{ '@pry.action.selectDate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"form_date\"\n type=\"date\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'form-date-label form-date-error' : 'form-date-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"form_date-error\"\n for=\"form_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n </ng-container>\n\n <ng-template #inputList>\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'LIST'; else inputText\">\n <div class=\"m-form-label-field o-metadata-editor__container\">\n <label id=\"list-label\" class=\"a-label\" for=\"list\">{{ '@pry.action.choiceInList' | i18n }}</label>\n <pry-select\n id=\"list\"\n class=\"o-metadata-editor\"\n formControlName=\"value\"\n [items]=\"form.value['metadata']['allowedValues']\"\n [isForm]=\"true\"\n aria-labelledby=\"list-label\"\n ></pry-select>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #inputText>\n <div class=\"m-form-label-field\">\n <label id=\"text-label\" class=\"a-label\" for=\"text\">\n {{ '@pry.action.text' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"text\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'text-label text-error' : 'text-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"form.get('value')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <ng-container *ngIf=\"form.get('value')?.hasError('pattern')\">\n <span *ngIf=\"form.value['metadata']['type'] === 'DOUBLE'\">\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n <span *ngIf=\"form.value['metadata']['type'] === 'INTEGER'\">\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n </ng-container>\n </label>\n </div>\n </ng-template>\n </ng-container>\n </fieldset>\n\n <div class=\"m-btn-group -end\">\n <button type=\"submit\" class=\"a-btn a-btn--primary\">\n {{ (isModification ? '@pry.action.editMetadata' : '@pry.action.addMetadata') | i18n }}\n </button>\n </div>\n </form>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.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"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5.PryMetadataEditorCssComponent, selector: "pry-metadata-editor-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
|
|
135
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.3", type: PryMetadataEditorComponent, selector: "pry-metadata-editor", inputs: { isModification: "isModification", targetId: "targetId", type: "type", metadata: "metadata" }, outputs: { addMeta: "addMeta", removeMeta: "removeMeta" }, usesInheritance: true, ngImport: i0, template: "<pry-metadata-editor-css></pry-metadata-editor-css>\n@for (groupedMetadatas of _metadataGroupedByDef$ | async; track groupedMetadatas.metadataDef.id) {\n <div class=\"o-tabs__panel__content__actions\">\n <div class=\"o-tabs__panel__content__actions__def\">\n <span class=\"o-tabs__panel__content__actions__text__label\">{{ groupedMetadatas.metadataDef.name }}</span>\n <div class=\"o-tabs__panel__content__actions__buttons\">\n <ng-container *ngIf=\"!groupedMetadatas.metadataDef.readOnly\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">\n {{ '@pry.action.delete' | i18n }} {{ groupedMetadatas.metadataDef.name }}\n </span>\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(groupedMetadatas.metadataDef)\"\n ></pry-icon>\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <ul>\n @for (metadata of groupedMetadatas.metadata; track metadata.value; let i = $index) {\n <li class=\"o-tabs__panel__content__actions__def\">\n <div class=\"o-tabs__panel__content__actions__text\">\n <span class=\"o-tabs__panel__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n <div class=\"o-tabs__panel__content__actions__buttons\">\n <ng-container *ngIf=\"!metaDefinition(metadata).readOnly\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">\n {{ '@pry.action.edit' | i18n }} {{ metaDefinition(metadata).name }}\n </span>\n <pry-icon\n class=\"edit-icon\"\n iconSvg=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editMetadata(metadata)\"\n ></pry-icon>\n </button>\n @if ((_type$ | async) === 'user') {\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">\n {{ '@pry.action.delete' | i18n }} {{ groupedMetadatas.metadataDef.name }}\n </span>\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadataValue(metadata)\"\n ></pry-icon>\n </button>\n }\n </ng-container>\n </ng-container>\n </div>\n </li>\n }\n </ul>\n </div>\n}\n\n<ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <form class=\"o-form -border-top\" [formGroup]=\"form\" (ngSubmit)=\"addDatasetMetadata()\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.action.editProfil' | i18n }}</legend>\n\n <div class=\"m-form-label-field o-metadata-editor__container\">\n <label for=\"metadata\" id=\"metadata-label\" class=\"a-label\">Data</label>\n <pry-select\n id=\"metadata\"\n class=\"o-metadata-editor\"\n formControlName=\"metadata\"\n [items]=\"availableMetadata$ | async\"\n (ngModelChange)=\"onMetaChange($event)\"\n [isForm]=\"true\"\n bindLabel=\"name\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('metadata')?.invalid ? 'metadata-label metadata-error' : 'metadata-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('metadata')?.invalid\"\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && form.get('metadata')?.invalid\"\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <ng-container *ngIf=\"form.value.metadata\">\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'DATE'; else inputList\">\n <div class=\"m-form-label-field o-metadata-editor__container\">\n <label id=\"form_date-label\" for=\"form_date\" class=\"a-label\">\n {{ '@pry.action.selectDate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"form_date\"\n type=\"date\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'form-date-label form-date-error' : 'form-date-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"form_date-error\"\n for=\"form_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n </ng-container>\n\n <ng-template #inputList>\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'LIST'; else inputText\">\n <div class=\"m-form-label-field o-metadata-editor__container\">\n <label id=\"list-label\" class=\"a-label\" for=\"list\">{{ '@pry.action.choiceInList' | i18n }}</label>\n <pry-select\n id=\"list\"\n class=\"o-metadata-editor\"\n formControlName=\"value\"\n [items]=\"form.value['metadata']['allowedValues']\"\n [isForm]=\"true\"\n aria-labelledby=\"list-label\"\n ></pry-select>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #inputText>\n <div class=\"m-form-label-field\">\n <label id=\"text-label\" class=\"a-label\" for=\"text\">\n {{ '@pry.action.text' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"text\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'text-label text-error' : 'text-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"form.get('value')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <ng-container *ngIf=\"form.get('value')?.hasError('pattern')\">\n <span *ngIf=\"form.value['metadata']['type'] === 'DOUBLE'\">\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n <span *ngIf=\"form.value['metadata']['type'] === 'INTEGER'\">\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n </ng-container>\n </label>\n </div>\n </ng-template>\n </ng-container>\n </fieldset>\n\n <div class=\"m-btn-group -end\">\n <button type=\"submit\" class=\"a-btn a-btn--primary\">\n {{ (isModification ? '@pry.action.editMetadata' : '@pry.action.addMetadata') | i18n }}\n </button>\n </div>\n </form>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.PryAccessDirective, selector: "[pryAccess]", inputs: ["pryAccess"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.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"] }, { kind: "component", type: i4.PryIconComponent, selector: "pry-icon", inputs: ["color", "iconSvg", "animation", "iconImage", "alt", "width", "height", "classes"] }, { kind: "component", type: i5.PryMetadataEditorCssComponent, selector: "pry-metadata-editor-css" }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.I18nPipe, name: "i18n" }] }); }
|
|
110
136
|
}
|
|
111
137
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PryMetadataEditorComponent, decorators: [{
|
|
112
138
|
type: Component,
|
|
113
|
-
args: [{ selector: 'pry-metadata-editor', template: "<pry-metadata-editor-css></pry-metadata-editor-css>\n
|
|
139
|
+
args: [{ selector: 'pry-metadata-editor', template: "<pry-metadata-editor-css></pry-metadata-editor-css>\n@for (groupedMetadatas of _metadataGroupedByDef$ | async; track groupedMetadatas.metadataDef.id) {\n <div class=\"o-tabs__panel__content__actions\">\n <div class=\"o-tabs__panel__content__actions__def\">\n <span class=\"o-tabs__panel__content__actions__text__label\">{{ groupedMetadatas.metadataDef.name }}</span>\n <div class=\"o-tabs__panel__content__actions__buttons\">\n <ng-container *ngIf=\"!groupedMetadatas.metadataDef.readOnly\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">\n {{ '@pry.action.delete' | i18n }} {{ groupedMetadatas.metadataDef.name }}\n </span>\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadata(groupedMetadatas.metadataDef)\"\n ></pry-icon>\n </button>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <ul>\n @for (metadata of groupedMetadatas.metadata; track metadata.value; let i = $index) {\n <li class=\"o-tabs__panel__content__actions__def\">\n <div class=\"o-tabs__panel__content__actions__text\">\n <span class=\"o-tabs__panel__content__actions__text__value\">{{ metadata.value }}</span>\n </div>\n <div class=\"o-tabs__panel__content__actions__buttons\">\n <ng-container *ngIf=\"!metaDefinition(metadata).readOnly\">\n <ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">\n {{ '@pry.action.edit' | i18n }} {{ metaDefinition(metadata).name }}\n </span>\n <pry-icon\n class=\"edit-icon\"\n iconSvg=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"editMetadata(metadata)\"\n ></pry-icon>\n </button>\n @if ((_type$ | async) === 'user') {\n <button type=\"button\" class=\"a-btn a-btn--icon-only\" aria-pressed=\"false\">\n <span class=\"u-visually-hidden\">\n {{ '@pry.action.delete' | i18n }} {{ groupedMetadatas.metadataDef.name }}\n </span>\n <pry-icon\n class=\"delete-icon\"\n iconSvg=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n (click)=\"removeMetadataValue(metadata)\"\n ></pry-icon>\n </button>\n }\n </ng-container>\n </ng-container>\n </div>\n </li>\n }\n </ul>\n </div>\n}\n\n<ng-container *pryAccess=\"{ module: 'admin', page: 'dataset', action: 'write' }\">\n <form class=\"o-form -border-top\" [formGroup]=\"form\" (ngSubmit)=\"addDatasetMetadata()\">\n <fieldset>\n <legend class=\"u-visually-hidden\">{{ '@pry.action.editProfil' | i18n }}</legend>\n\n <div class=\"m-form-label-field o-metadata-editor__container\">\n <label for=\"metadata\" id=\"metadata-label\" class=\"a-label\">Data</label>\n <pry-select\n id=\"metadata\"\n class=\"o-metadata-editor\"\n formControlName=\"metadata\"\n [items]=\"availableMetadata$ | async\"\n (ngModelChange)=\"onMetaChange($event)\"\n [isForm]=\"true\"\n bindLabel=\"name\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('metadata')?.invalid ? 'metadata-label metadata-error' : 'metadata-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('metadata')?.invalid\"\n >\n </pry-select>\n <label\n *ngIf=\"isSubmitted && form.get('metadata')?.invalid\"\n id=\"metadata-error\"\n for=\"metadata\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n\n <ng-container *ngIf=\"form.value.metadata\">\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'DATE'; else inputList\">\n <div class=\"m-form-label-field o-metadata-editor__container\">\n <label id=\"form_date-label\" for=\"form_date\" class=\"a-label\">\n {{ '@pry.action.selectDate' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"form_date\"\n type=\"date\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'form-date-label form-date-error' : 'form-date-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"form_date-error\"\n for=\"form_date\"\n class=\"a-label a-label--help -error\"\n >\n {{ '@pry.admin.required' | i18n }}\n </label>\n </div>\n </ng-container>\n\n <ng-template #inputList>\n <ng-container *ngIf=\"form.value['metadata']['type'] === 'LIST'; else inputText\">\n <div class=\"m-form-label-field o-metadata-editor__container\">\n <label id=\"list-label\" class=\"a-label\" for=\"list\">{{ '@pry.action.choiceInList' | i18n }}</label>\n <pry-select\n id=\"list\"\n class=\"o-metadata-editor\"\n formControlName=\"value\"\n [items]=\"form.value['metadata']['allowedValues']\"\n [isForm]=\"true\"\n aria-labelledby=\"list-label\"\n ></pry-select>\n </div>\n </ng-container>\n </ng-template>\n\n <ng-template #inputText>\n <div class=\"m-form-label-field\">\n <label id=\"text-label\" class=\"a-label\" for=\"text\">\n {{ '@pry.action.text' | i18n }} *\n <span class=\"u-visually-hidden\">({{ '@pry.admin.required' | i18n }})</span>\n </label>\n <input\n id=\"text\"\n type=\"text\"\n class=\"a-form-field\"\n formControlName=\"value\"\n [attr.aria-labelledby]=\"\n isSubmitted && form.get('value')?.invalid ? 'text-label text-error' : 'text-label'\n \"\n [attr.aria-invalid]=\"isSubmitted && form.get('value')?.invalid\"\n required\n />\n <label\n *ngIf=\"isSubmitted && form.get('value')?.invalid\"\n id=\"test-error\"\n for=\"text\"\n class=\"a-label a-label--help -error\"\n >\n <span *ngIf=\"form.get('value')?.hasError('required')\">{{ '@pry.admin.required' | i18n }}</span>\n <ng-container *ngIf=\"form.get('value')?.hasError('pattern')\">\n <span *ngIf=\"form.value['metadata']['type'] === 'DOUBLE'\">\n {{ '@pry.admin.environment.formatDouble' | i18n }}\n </span>\n <span *ngIf=\"form.value['metadata']['type'] === 'INTEGER'\">\n {{ '@pry.admin.environment.formatInt' | i18n }}\n </span>\n </ng-container>\n </label>\n </div>\n </ng-template>\n </ng-container>\n </fieldset>\n\n <div class=\"m-btn-group -end\">\n <button type=\"submit\" class=\"a-btn a-btn--primary\">\n {{ (isModification ? '@pry.action.editMetadata' : '@pry.action.addMetadata') | i18n }}\n </button>\n </div>\n </form>\n</ng-container>\n" }]
|
|
114
140
|
}], ctorParameters: () => [{ type: i1.Store }, { type: i2.FormBuilder }], propDecorators: { isModification: [{
|
|
115
141
|
type: Input
|
|
116
142
|
}], addMeta: [{
|
|
@@ -124,4 +150,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
124
150
|
}], metadata: [{
|
|
125
151
|
type: Input
|
|
126
152
|
}] } });
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvbWV0YWRhdGEtZWRpdG9yL21ldGFkYXRhLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL21ldGFkYXRhLWVkaXRvci9tZXRhZGF0YS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBMEMsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7O0FBSTlELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLGVBQWUsQ0FBQztBQUN0RCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyx5QkFBeUIsQ0FBQztBQU0vRCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsd0JBQXdCO0lBYXRFLElBQWEsSUFBSSxDQUFDLElBQXFCO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFhLFFBQVEsQ0FBQyxRQUEwQztRQUM5RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxR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QUFDOzhHQTFHVSwwQkFBMEI7a0dBQTFCLDBCQUEwQixxUENqQnZDLDZzTkE4SkE7OzJGRDdJYSwwQkFBMEI7a0JBSnRDLFNBQVM7K0JBQ0UscUJBQXFCO29HQU90QixjQUFjO3NCQUF0QixLQUFLO2dCQUlJLE9BQU87c0JBQWhCLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkFFRSxRQUFRO3NCQUFoQixLQUFLO2dCQUVPLElBQUk7c0JBQWhCLEtBQUs7Z0JBSU8sUUFBUTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBJTWV0YWRhdGEsIE1ldGFkYXRhVXNlciwgTWV0YWRhdGFWYWx1ZSwgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBNZXRhZGF0YUFjdGlvbnMgfSBmcm9tICcuL3N0b3JlL21ldGFkYXRhLmFjdGlvbic7XG5pbXBvcnQgeyBNZXRhZGF0YVNlbGVjdG9ycyB9IGZyb20gJy4vc3RvcmUvbWV0YWRhdGEuc2VsZWN0b3InO1xuXG5leHBvcnQgdHlwZSBNZXRhRXZlbnRUeXBlID0geyBpZDogc3RyaW5nOyBtZXRhZGF0YUlkOiBzdHJpbmc7IHZhbHVlPzogc3RyaW5nIH07XG5cbmV4cG9ydCBjb25zdCBJTlRFR0VSX1JFR0VYUF9QQVRURVJOID0gJ15bKy1dP1swLTldKiQnO1xuZXhwb3J0IGNvbnN0IERPVUJMRV9SRUdFWFBfUEFUVEVSTiA9ICdbKy1dPyhbMC05XSpbLl0pP1swLTldKyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1tZXRhZGF0YS1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJ21ldGFkYXRhLWVkaXRvci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5TWV0YWRhdGFFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUge1xuICBfbWV0YWRhdGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDwoTWV0YWRhdGFWYWx1ZSB8IE1ldGFkYXRhVXNlcilbXT4oW10pO1xuICBmb3JtOiBGb3JtR3JvdXA7XG4gIGlzU3VibWl0dGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzTW9kaWZpY2F0aW9uID0gZmFsc2U7XG4gIG1ldGFkYXRhRGVmcyQ6IE9ic2VydmFibGU8SU1ldGFkYXRhW10+O1xuICBhdmFpbGFibGVNZXRhZGF0YSQ6IE9ic2VydmFibGU8SU1ldGFkYXRhW10+O1xuICBfdHlwZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PCdtZXRhJyB8ICd1c2VyJz4oJ21ldGEnKTtcbiAgQE91dHB1dCgpIGFkZE1ldGEgPSBuZXcgRXZlbnRFbWl0dGVyPE1ldGFFdmVudFR5cGU+KCk7XG4gIEBPdXRwdXQoKSByZW1vdmVNZXRhID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhRXZlbnRUeXBlPigpO1xuICB1c2VyUHJvZmlsZURlZnMkOiBPYnNlcnZhYmxlPEFycmF5PElNZXRhZGF0YT4gfCB1bmRlZmluZWQ+O1xuICBASW5wdXQoKSB0YXJnZXRJZCA9ICcnO1xuXG4gIEBJbnB1dCgpIHNldCB0eXBlKHR5cGU6ICdtZXRhJyB8ICd1c2VyJykge1xuICAgIHRoaXMuX3R5cGUkLm5leHQodHlwZSk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgbWV0YWRhdGEobWV0YWRhdGE6IE1ldGFkYXRhVmFsdWVbXSB8IE1ldGFkYXRhVXNlcltdKSB7XG4gICAgdGhpcy5fbWV0YWRhdGEkLm5leHQobWV0YWRhdGEpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUsIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgbWV0YWRhdGE6IFt7fSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIHZhbHVlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oSU5URUdFUl9SRUdFWFBfUEFUVEVSTildXVxuICAgIH0pO1xuXG4gICAgdGhpcy5tZXRhZGF0YURlZnMkID0gdGhpcy5zdG9yZS5zZWxlY3QoTWV0YWRhdGFTZWxlY3RvcnMubWV0YWRhdGEpO1xuICAgIHRoaXMudXNlclByb2ZpbGVEZWZzJCA9IHRoaXMuc3RvcmUuc2VsZWN0KE1ldGFkYXRhU2VsZWN0b3JzLnVzZXJQcm9maWxlKTtcbiAgICB0aGlzLmF2YWlsYWJsZU1ldGFkYXRhJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdGhpcy5fdHlwZSQsXG4gICAgICB0aGlzLl9tZXRhZGF0YSQsXG4gICAgICB0aGlzLm1ldGFkYXRhRGVmcyQsXG4gICAgICB0aGlzLnVzZXJQcm9maWxlRGVmcyRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbdHlwZSwgbWV0YWRhdGEsIG1ldGFEZWZzLCB1c2VyUHJvZmlsZURlZnNdKSA9PiB7XG4gICAgICAgIGlmICh0eXBlID09PSAnbWV0YScpIHtcbiAgICAgICAgICBsZXQgZGF0YXNldE1ldGFkYXRhSWRzID0gbWV0YWRhdGE/Lm1hcCgodSkgPT4gKHUgYXMgTWV0YWRhdGFWYWx1ZSkubWV0YWRhdGFEZWYuaWQpO1xuICAgICAgICAgIHJldHVybiBtZXRhRGVmcy5maWx0ZXIoKG1ldGEpID0+ICFkYXRhc2V0TWV0YWRhdGFJZHM/LmluY2x1ZGVzKG1ldGEuaWQpICYmICFtZXRhLnJlYWRPbmx5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgdXNlclByb2ZpbGVJZHMgPSBtZXRhZGF0YT8ubWFwKCh1KSA9PiAodSBhcyBNZXRhZGF0YVVzZXIpLnVzZXJQcm9maWxlLmlkKTtcbiAgICAgICAgICByZXR1cm4gKHVzZXJQcm9maWxlRGVmcyA/PyBbXSkuZmlsdGVyKChtZXRhKSA9PiAhdXNlclByb2ZpbGVJZHM/LmluY2x1ZGVzKG1ldGEuaWQpKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuYXZhaWxhYmxlTWV0YWRhdGEkLnN1YnNjcmliZSgobWV0YSkgPT4ge1xuICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgbWV0YWRhdGE6IG1ldGFbMF1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMub25NZXRhQ2hhbmdlKG1ldGFbMF0pO1xuICAgICAgICB0aGlzLmZvcm0ucGF0Y2hWYWx1ZSh7IHZhbHVlOiAnJyB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG9uTWV0YUNoYW5nZShtZXRhZGF0YTogSU1ldGFkYXRhKSB7XG4gICAgaWYgKG1ldGFkYXRhKSB7XG4gICAgICBpZiAobWV0YWRhdGEudHlwZSA9PT0gJ0lOVEVHRVInKSB7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1sndmFsdWUnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oSU5URUdFUl9SRUdFWFBfUEFUVEVSTildKTtcbiAgICAgIH0gZWxzZSBpZiAobWV0YWRhdGEudHlwZSA9PT0gJ0RPVUJMRScpIHtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzWyd2YWx1ZSddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybihET1VCTEVfUkVHRVhQX1BBVFRFUk4pXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbJ3ZhbHVlJ10uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgICAgfVxuICAgICAgdGhpcy5pc01vZGlmaWNhdGlvbiA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNNb2RpZmljYXRpb24gPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBlZGl0TWV0YWRhdGEoY3VycmVudE1ldGFkYXRhOiBNZXRhZGF0YVZhbHVlIHwgTWV0YWRhdGFVc2VyKSB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChNZXRhZGF0YUFjdGlvbnMuaXNFZGl0YWJsZSh7IGVkaXRhYmxlOiB0cnVlIH0pKTtcbiAgICBsZXQgdmFsdWUgPSBjdXJyZW50TWV0YWRhdGEudmFsdWU7XG4gICAgbGV0IGRhdGFzZXRNZXRhZGF0YURlZiA9IHRoaXMubWV0YURlZmluaXRpb24oY3VycmVudE1ldGFkYXRhKTtcblxuICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIG1ldGFkYXRhOiBkYXRhc2V0TWV0YWRhdGFEZWYsXG4gICAgICB2YWx1ZTogdmFsdWVcbiAgICB9KTtcbiAgICB0aGlzLm9uTWV0YUNoYW5nZShkYXRhc2V0TWV0YWRhdGFEZWYpO1xuICB9XG5cbiAgbWV0YURlZmluaXRpb24obWV0YWRhdGE6IE1ldGFkYXRhVXNlciB8IE1ldGFkYXRhVmFsdWUpIHtcbiAgICByZXR1cm4gdGhpcy5fdHlwZSQuZ2V0VmFsdWUoKSA9PT0gJ3VzZXInXG4gICAgICA/IChtZXRhZGF0YSBhcyBNZXRhZGF0YVVzZXIpLnVzZXJQcm9maWxlXG4gICAgICA6IChtZXRhZGF0YSBhcyBNZXRhZGF0YVZhbHVlKS5tZXRhZGF0YURlZjtcbiAgfVxuXG4gIHJlbW92ZU1ldGFkYXRhKG1ldGFkYXRhOiBNZXRhZGF0YVVzZXIgfCBNZXRhZGF0YVZhbHVlKSB7XG4gICAgdGhpcy5yZW1vdmVNZXRhLmVtaXQoeyBpZDogdGhpcy50YXJnZXRJZCwgbWV0YWRhdGFJZDogdGhpcy5tZXRhRGVmaW5pdGlvbihtZXRhZGF0YSkuaWQgfSk7XG4gIH1cblxuICBhZGREYXRhc2V0TWV0YWRhdGEoKSB7XG4gICAgdGhpcy5pc1N1Ym1pdHRlZCA9IHRydWU7XG4gICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5pc1N1Ym1pdHRlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5hZGRNZXRhLmVtaXQoe1xuICAgICAgICBpZDogdGhpcy50YXJnZXRJZCxcbiAgICAgICAgbWV0YWRhdGFJZDogdGhpcy5mb3JtLnZhbHVlWydtZXRhZGF0YSddWydpZCddLFxuICAgICAgICB2YWx1ZTogdGhpcy5mb3JtLnZhbHVlWyd2YWx1ZSddXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxwcnktbWV0YWRhdGEtZWRpdG9yLWNzcz48L3ByeS1tZXRhZGF0YS1lZGl0b3ItY3NzPlxuPGRpdiAqbmdGb3I9XCJsZXQgbWV0YWRhdGEgb2YgKF9tZXRhZGF0YSQgfCBhc3luYykgPz8gW11cIj5cbiAgPGRpdiBjbGFzcz1cIm8tdGFic19fcGFuZWxfX2NvbnRlbnRfX2FjdGlvbnNcIj5cbiAgICA8ZGl2IGNsYXNzPVwiby10YWJzX19wYW5lbF9fY29udGVudF9fYWN0aW9uc19fdGV4dFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJvLXRhYnNfX3BhbmVsX19jb250ZW50X19hY3Rpb25zX190ZXh0X19sYWJlbFwiPnt7IG1ldGFEZWZpbml0aW9uKG1ldGFkYXRhKS5uYW1lIH19IDo8L3NwYW4+XG4gICAgICA8c3BhbiBjbGFzcz1cIm8tdGFic19fcGFuZWxfX2NvbnRlbnRfX2FjdGlvbnNfX3RleHRfX3ZhbHVlXCI+e3sgbWV0YWRhdGEudmFsdWUgfX08L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiby10YWJzX19wYW5lbF9fY29udGVudF9fYWN0aW9uc19fYnV0dG9uc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtZXRhRGVmaW5pdGlvbihtZXRhZGF0YSkucmVhZE9ubHlcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdhZG1pbicsIHBhZ2U6ICdkYXRhc2V0JywgYWN0aW9uOiAnd3JpdGUnIH1cIj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiBhcmlhLXByZXNzZWQ9XCJmYWxzZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LmFjdGlvbi5lZGl0JyB8IGkxOG4gfX0ge3sgbWV0YURlZmluaXRpb24obWV0YWRhdGEpLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICA8cHJ5LWljb25cbiAgICAgICAgICAgICAgY2xhc3M9XCJlZGl0LWljb25cIlxuICAgICAgICAgICAgICBpY29uU3ZnPVwiZWRpdFwiXG4gICAgICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgICAgIFtoZWlnaHRdPVwiMTVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdE1ldGFkYXRhKG1ldGFkYXRhKVwiXG4gICAgICAgICAgICA+PC9wcnktaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiBhcmlhLXByZXNzZWQ9XCJmYWxzZVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LmFjdGlvbi5kZWxldGUnIHwgaTE4biB9fSB7eyBtZXRhRGVmaW5pdGlvbihtZXRhZGF0YSkubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxwcnktaWNvblxuICAgICAgICAgICAgICBjbGFzcz1cImRlbGV0ZS1pY29uXCJcbiAgICAgICAgICAgICAgaWNvblN2Zz1cImRlbGV0ZVwiXG4gICAgICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgICAgIFtoZWlnaHRdPVwiMTVcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlTWV0YWRhdGEobWV0YWRhdGEpXCJcbiAgICAgICAgICAgID48L3ByeS1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctY29udGFpbmVyICpwcnlBY2Nlc3M9XCJ7IG1vZHVsZTogJ2FkbWluJywgcGFnZTogJ2RhdGFzZXQnLCBhY3Rpb246ICd3cml0ZScgfVwiPlxuICA8Zm9ybSBjbGFzcz1cIm8tZm9ybSAtYm9yZGVyLXRvcFwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIChuZ1N1Ym1pdCk9XCJhZGREYXRhc2V0TWV0YWRhdGEoKVwiPlxuICAgIDxmaWVsZHNldD5cbiAgICAgIDxsZWdlbmQgY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPnt7ICdAcHJ5LmFjdGlvbi5lZGl0UHJvZmlsJyB8IGkxOG4gfX08L2xlZ2VuZD5cblxuICAgICAgPGRpdiBjbGFzcz1cIm0tZm9ybS1sYWJlbC1maWVsZCBvLW1ldGFkYXRhLWVkaXRvcl9fY29udGFpbmVyXCI+XG4gICAgICAgIDxsYWJlbCBmb3I9XCJtZXRhZGF0YVwiIGlkPVwibWV0YWRhdGEtbGFiZWxcIiBjbGFzcz1cImEtbGFiZWxcIj5EYXRhPC9sYWJlbD5cbiAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICBpZD1cIm1ldGFkYXRhXCJcbiAgICAgICAgICBjbGFzcz1cIm8tbWV0YWRhdGEtZWRpdG9yXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtZXRhZGF0YVwiXG4gICAgICAgICAgW2l0ZW1zXT1cImF2YWlsYWJsZU1ldGFkYXRhJCB8IGFzeW5jXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbk1ldGFDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgW2lzRm9ybV09XCJ0cnVlXCJcbiAgICAgICAgICBiaW5kTGFiZWw9XCJuYW1lXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiXG4gICAgICAgICAgICBpc1N1Ym1pdHRlZCAmJiBmb3JtLmdldCgnbWV0YWRhdGEnKT8uaW52YWxpZCA/ICdtZXRhZGF0YS1sYWJlbCBtZXRhZGF0YS1lcnJvcicgOiAnbWV0YWRhdGEtbGFiZWwnXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaXNTdWJtaXR0ZWQgJiYgZm9ybS5nZXQoJ21ldGFkYXRhJyk/LmludmFsaWRcIlxuICAgICAgICA+XG4gICAgICAgIDwvcHJ5LXNlbGVjdD5cbiAgICAgICAgPGxhYmVsXG4gICAgICAgICAgKm5nSWY9XCJpc1N1Ym1pdHRlZCAmJiBmb3JtLmdldCgnbWV0YWRhdGEnKT8uaW52YWxpZFwiXG4gICAgICAgICAgaWQ9XCJtZXRhZGF0YS1lcnJvclwiXG4gICAgICAgICAgZm9yPVwibWV0YWRhdGFcIlxuICAgICAgICAgIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm0udmFsdWUubWV0YWRhdGFcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm0udmFsdWVbJ21ldGFkYXRhJ11bJ3R5cGUnXSA9PT0gJ0RBVEUnOyBlbHNlIGlucHV0TGlzdFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgby1tZXRhZGF0YS1lZGl0b3JfX2NvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGxhYmVsIGlkPVwiZm9ybV9kYXRlLWxhYmVsXCIgZm9yPVwiZm9ybV9kYXRlXCIgY2xhc3M9XCJhLWxhYmVsXCI+XG4gICAgICAgICAgICAgIHt7ICdAcHJ5LmFjdGlvbi5zZWxlY3REYXRlJyB8IGkxOG4gfX0gKlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+KHt7ICdAcHJ5LmFkbWluLnJlcXVpcmVkJyB8IGkxOG4gfX0pPC9zcGFuPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBpZD1cImZvcm1fZGF0ZVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJkYXRlXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJhLWZvcm0tZmllbGRcIlxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJcbiAgICAgICAgICAgICAgICBpc1N1Ym1pdHRlZCAmJiBmb3JtLmdldCgndmFsdWUnKT8uaW52YWxpZCA/ICdmb3JtLWRhdGUtbGFiZWwgZm9ybS1kYXRlLWVycm9yJyA6ICdmb3JtLWRhdGUtbGFiZWwnXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpc1N1Ym1pdHRlZCAmJiBmb3JtLmdldCgndmFsdWUnKT8uaW52YWxpZFwiXG4gICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXNTdWJtaXR0ZWQgJiYgZm9ybS5nZXQoJ3ZhbHVlJyk/LmludmFsaWRcIlxuICAgICAgICAgICAgICBpZD1cImZvcm1fZGF0ZS1lcnJvclwiXG4gICAgICAgICAgICAgIGZvcj1cImZvcm1fZGF0ZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7ICdAcHJ5LmFkbWluLnJlcXVpcmVkJyB8IGkxOG4gfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaW5wdXRMaXN0PlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtLnZhbHVlWydtZXRhZGF0YSddWyd0eXBlJ10gPT09ICdMSVNUJzsgZWxzZSBpbnB1dFRleHRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgby1tZXRhZGF0YS1lZGl0b3JfX2NvbnRhaW5lclwiPlxuICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJsaXN0LWxhYmVsXCIgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwibGlzdFwiPnt7ICdAcHJ5LmFjdGlvbi5jaG9pY2VJbkxpc3QnIHwgaTE4biB9fTwvbGFiZWw+XG4gICAgICAgICAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgICAgICAgICAgaWQ9XCJsaXN0XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIm8tbWV0YWRhdGEtZWRpdG9yXCJcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgICAgW2l0ZW1zXT1cImZvcm0udmFsdWVbJ21ldGFkYXRhJ11bJ2FsbG93ZWRWYWx1ZXMnXVwiXG4gICAgICAgICAgICAgICAgW2lzRm9ybV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9XCJsaXN0LWxhYmVsXCJcbiAgICAgICAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaW5wdXRUZXh0PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGRcIj5cbiAgICAgICAgICAgIDxsYWJlbCBpZD1cInRleHQtbGFiZWxcIiBjbGFzcz1cImEtbGFiZWxcIiBmb3I9XCJ0ZXh0XCI+XG4gICAgICAgICAgICAgIHt7ICdAcHJ5LmFjdGlvbi50ZXh0JyB8IGkxOG4gfX0gKlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+KHt7ICdAcHJ5LmFkbWluLnJlcXVpcmVkJyB8IGkxOG4gfX0pPC9zcGFuPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICBpZD1cInRleHRcIlxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiXG4gICAgICAgICAgICAgICAgaXNTdWJtaXR0ZWQgJiYgZm9ybS5nZXQoJ3ZhbHVlJyk/LmludmFsaWQgPyAndGV4dC1sYWJlbCB0ZXh0LWVycm9yJyA6ICd0ZXh0LWxhYmVsJ1xuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaXNTdWJtaXR0ZWQgJiYgZm9ybS5nZXQoJ3ZhbHVlJyk/LmludmFsaWRcIlxuICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAqbmdJZj1cImlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCd2YWx1ZScpPy5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgaWQ9XCJ0ZXN0LWVycm9yXCJcbiAgICAgICAgICAgICAgZm9yPVwidGV4dFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYS1sYWJlbCBhLWxhYmVsLS1oZWxwIC1lcnJvclwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZm9ybS5nZXQoJ3ZhbHVlJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+e3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm0uZ2V0KCd2YWx1ZScpPy5oYXNFcnJvcigncGF0dGVybicpXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJmb3JtLnZhbHVlWydtZXRhZGF0YSddWyd0eXBlJ10gPT09ICdET1VCTEUnXCI+XG4gICAgICAgICAgICAgICAgICB7eyAnQHByeS5hZG1pbi5lbnZpcm9ubWVudC5mb3JtYXREb3VibGUnIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImZvcm0udmFsdWVbJ21ldGFkYXRhJ11bJ3R5cGUnXSA9PT0gJ0lOVEVHRVInXCI+XG4gICAgICAgICAgICAgICAgICB7eyAnQHByeS5hZG1pbi5lbnZpcm9ubWVudC5mb3JtYXRJbnQnIHwgaTE4biB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9maWVsZHNldD5cblxuICAgIDxkaXYgY2xhc3M9XCJtLWJ0bi1ncm91cCAtZW5kXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCI+XG4gICAgICAgIHt7IChpc01vZGlmaWNhdGlvbiA/ICdAcHJ5LmFjdGlvbi5lZGl0TWV0YWRhdGEnIDogJ0BwcnkuYWN0aW9uLmFkZE1ldGFkYXRhJykgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvbWV0YWRhdGEtZWRpdG9yL21ldGFkYXRhLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2Rhc2hib2FyZC9jb21wb25lbnRzL21ldGFkYXRhLWVkaXRvci9tZXRhZGF0YS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBMEMsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RyxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7O0FBTTlELE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFHLGVBQWUsQ0FBQztBQUN0RCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyx5QkFBeUIsQ0FBQztBQU0vRCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsd0JBQXdCO0lBYXRFLElBQWEsSUFBSSxDQUFDLElBQXFCO1FBQ3JDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFhLFFBQVEsQ0FBQyxRQUEwQztRQUM5RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxR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Q0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQzs4R0EzSVUsMEJBQTBCO2tHQUExQiwwQkFBMEIscVBDbkJ2QyxndFFBNkxBOzsyRkQxS2EsMEJBQTBCO2tCQUp0QyxTQUFTOytCQUNFLHFCQUFxQjtvR0FPdEIsY0FBYztzQkFBdEIsS0FBSztnQkFJSSxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBRUUsUUFBUTtzQkFBaEIsS0FBSztnQkFFTyxJQUFJO3NCQUFoQixLQUFLO2dCQUlPLFFBQVE7c0JBQXBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgSU1ldGFkYXRhLCBNZXRhZGF0YVVzZXIsIE1ldGFkYXRhVmFsdWUsIFN1YnNjcmlwdGlvbm5lckRpcmVjdGl2ZSB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTWV0YWRhdGFBY3Rpb25zIH0gZnJvbSAnLi9zdG9yZS9tZXRhZGF0YS5hY3Rpb24nO1xuaW1wb3J0IHsgTWV0YWRhdGFTZWxlY3RvcnMgfSBmcm9tICcuL3N0b3JlL21ldGFkYXRhLnNlbGVjdG9yJztcblxuZXhwb3J0IHR5cGUgTWV0YUV2ZW50VHlwZSA9IHsgaWQ6IHN0cmluZzsgbWV0YWRhdGFJZDogc3RyaW5nOyB2YWx1ZT86IHN0cmluZzsgcHJldmlvdXNWYWx1ZT86IHN0cmluZyB9O1xuXG50eXBlIEdyb3VwZWRNZXRhZGF0YXNCeURlZiA9IHsgbWV0YWRhdGFEZWY6IElNZXRhZGF0YTsgbWV0YWRhdGE6IChNZXRhZGF0YVZhbHVlIHwgTWV0YWRhdGFVc2VyKVtdIH07XG5cbmV4cG9ydCBjb25zdCBJTlRFR0VSX1JFR0VYUF9QQVRURVJOID0gJ15bKy1dP1swLTldKiQnO1xuZXhwb3J0IGNvbnN0IERPVUJMRV9SRUdFWFBfUEFUVEVSTiA9ICdbKy1dPyhbMC05XSpbLl0pP1swLTldKyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ByeS1tZXRhZGF0YS1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJ21ldGFkYXRhLWVkaXRvci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUHJ5TWV0YWRhdGFFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBTdWJzY3JpcHRpb25uZXJEaXJlY3RpdmUge1xuICBfbWV0YWRhdGEkID0gbmV3IEJlaGF2aW9yU3ViamVjdDwoTWV0YWRhdGFWYWx1ZSB8IE1ldGFkYXRhVXNlcilbXT4oW10pO1xuICBmb3JtOiBGb3JtR3JvdXA7XG4gIGlzU3VibWl0dGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzTW9kaWZpY2F0aW9uID0gZmFsc2U7XG4gIG1ldGFkYXRhRGVmcyQ6IE9ic2VydmFibGU8SU1ldGFkYXRhW10+O1xuICBhdmFpbGFibGVNZXRhZGF0YSQ6IE9ic2VydmFibGU8SU1ldGFkYXRhW10+O1xuICBfdHlwZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PCdtZXRhJyB8ICd1c2VyJz4oJ21ldGEnKTtcbiAgQE91dHB1dCgpIGFkZE1ldGEgPSBuZXcgRXZlbnRFbWl0dGVyPE1ldGFFdmVudFR5cGU+KCk7XG4gIEBPdXRwdXQoKSByZW1vdmVNZXRhID0gbmV3IEV2ZW50RW1pdHRlcjxNZXRhRXZlbnRUeXBlPigpO1xuICB1c2VyUHJvZmlsZURlZnMkOiBPYnNlcnZhYmxlPEFycmF5PElNZXRhZGF0YT4gfCB1bmRlZmluZWQ+O1xuICBASW5wdXQoKSB0YXJnZXRJZCA9ICcnO1xuXG4gIEBJbnB1dCgpIHNldCB0eXBlKHR5cGU6ICdtZXRhJyB8ICd1c2VyJykge1xuICAgIHRoaXMuX3R5cGUkLm5leHQodHlwZSk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgbWV0YWRhdGEobWV0YWRhdGE6IE1ldGFkYXRhVmFsdWVbXSB8IE1ldGFkYXRhVXNlcltdKSB7XG4gICAgdGhpcy5fbWV0YWRhdGEkLm5leHQobWV0YWRhdGEpO1xuICB9XG5cbiAgX21ldGFkYXRhR3JvdXBlZEJ5RGVmJDogT2JzZXJ2YWJsZTxHcm91cGVkTWV0YWRhdGFzQnlEZWZbXT4gPSB0aGlzLl9tZXRhZGF0YSQucGlwZShcbiAgICBtYXAoKG1ldGFkYXRhcykgPT4ge1xuICAgICAgY29uc3QgbWV0YWRhdGFHcm91cGVkQnlEZWY6IEdyb3VwZWRNZXRhZGF0YXNCeURlZltdID0gW107XG4gICAgICBtZXRhZGF0YXMuZm9yRWFjaCgobWV0YSkgPT4ge1xuICAgICAgICBjb25zdCBtZXRhZGF0YUdyb3VwID0gbWV0YWRhdGFHcm91cGVkQnlEZWYuZmluZCgodmFsKSA9PiB2YWwubWV0YWRhdGFEZWYuaWQgPT09IHRoaXMubWV0YURlZmluaXRpb24obWV0YSkuaWQpO1xuICAgICAgICBpZiAobWV0YWRhdGFHcm91cCkge1xuICAgICAgICAgIG1ldGFkYXRhR3JvdXAubWV0YWRhdGEucHVzaChtZXRhKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBtZXRhZGF0YUdyb3VwZWRCeURlZi5wdXNoKHsgbWV0YWRhdGFEZWY6IHRoaXMubWV0YURlZmluaXRpb24obWV0YSksIG1ldGFkYXRhOiBbbWV0YV0gfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgbWV0YWRhdGFHcm91cGVkQnlEZWYuc29ydCgoZ3JvdXAxLCBncm91cDIpID0+IGdyb3VwMS5tZXRhZGF0YURlZi5uYW1lLmxvY2FsZUNvbXBhcmUoZ3JvdXAyLm1ldGFkYXRhRGVmLm5hbWUpKTtcbiAgICAgIHJldHVybiBtZXRhZGF0YUdyb3VwZWRCeURlZjtcbiAgICB9KVxuICApO1xuXG4gIF9wcmV2aW91c1ZhbHVlTWV0YWRhdGE6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZSxcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlclxuICApIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICBtZXRhZGF0YTogW3t9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgdmFsdWU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybihJTlRFR0VSX1JFR0VYUF9QQVRURVJOKV1dXG4gICAgfSk7XG5cbiAgICB0aGlzLm1ldGFkYXRhRGVmcyQgPSB0aGlzLnN0b3JlLnNlbGVjdChNZXRhZGF0YVNlbGVjdG9ycy5tZXRhZGF0YSk7XG4gICAgdGhpcy51c2VyUHJvZmlsZURlZnMkID0gdGhpcy5zdG9yZS5zZWxlY3QoTWV0YWRhdGFTZWxlY3RvcnMudXNlclByb2ZpbGUpO1xuICAgIHRoaXMuYXZhaWxhYmxlTWV0YWRhdGEkID0gY29tYmluZUxhdGVzdChbXG4gICAgICB0aGlzLl90eXBlJCxcbiAgICAgIHRoaXMuX21ldGFkYXRhJCxcbiAgICAgIHRoaXMubWV0YWRhdGFEZWZzJCxcbiAgICAgIHRoaXMudXNlclByb2ZpbGVEZWZzJFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFt0eXBlLCBtZXRhZGF0YSwgbWV0YURlZnMsIHVzZXJQcm9maWxlRGVmc10pID0+IHtcbiAgICAgICAgaWYgKHR5cGUgPT09ICdtZXRhJykge1xuICAgICAgICAgIGxldCBkYXRhc2V0TWV0YWRhdGFJZHMgPSBtZXRhZGF0YT8ubWFwKCh1KSA9PiAodSBhcyBNZXRhZGF0YVZhbHVlKS5tZXRhZGF0YURlZi5pZCk7XG4gICAgICAgICAgcmV0dXJuIG1ldGFEZWZzLmZpbHRlcigobWV0YSkgPT4gIWRhdGFzZXRNZXRhZGF0YUlkcz8uaW5jbHVkZXMobWV0YS5pZCkgJiYgIW1ldGEucmVhZE9ubHkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiB1c2VyUHJvZmlsZURlZnMgPz8gW107XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLmF2YWlsYWJsZU1ldGFkYXRhJC5zdWJzY3JpYmUoKG1ldGEpID0+IHtcbiAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgIG1ldGFkYXRhOiBtZXRhWzBdXG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLm9uTWV0YUNoYW5nZShtZXRhWzBdKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG9uTWV0YUNoYW5nZShtZXRhZGF0YTogSU1ldGFkYXRhKSB7XG4gICAgaWYgKG1ldGFkYXRhKSB7XG4gICAgICBpZiAobWV0YWRhdGEudHlwZSA9PT0gJ0lOVEVHRVInKSB7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9sc1sndmFsdWUnXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oSU5URUdFUl9SRUdFWFBfUEFUVEVSTildKTtcbiAgICAgIH0gZWxzZSBpZiAobWV0YWRhdGEudHlwZSA9PT0gJ0RPVUJMRScpIHtcbiAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzWyd2YWx1ZSddLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybihET1VCTEVfUkVHRVhQX1BBVFRFUk4pXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZvcm0uY29udHJvbHNbJ3ZhbHVlJ10uc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuICAgICAgfVxuICAgICAgdGhpcy5pc01vZGlmaWNhdGlvbiA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaXNNb2RpZmljYXRpb24gPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyB2YWx1ZTogJycgfSk7XG4gICAgdGhpcy5fcHJldmlvdXNWYWx1ZU1ldGFkYXRhID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZWRpdE1ldGFkYXRhKGN1cnJlbnRNZXRhZGF0YTogTWV0YWRhdGFWYWx1ZSB8IE1ldGFkYXRhVXNlcikge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goTWV0YWRhdGFBY3Rpb25zLmlzRWRpdGFibGUoeyBlZGl0YWJsZTogdHJ1ZSB9KSk7XG4gICAgbGV0IGRhdGFzZXRNZXRhZGF0YURlZiA9IHRoaXMubWV0YURlZmluaXRpb24oY3VycmVudE1ldGFkYXRhKTtcbiAgICB0aGlzLm9uTWV0YUNoYW5nZShkYXRhc2V0TWV0YWRhdGFEZWYpO1xuXG4gICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgbWV0YWRhdGE6IGRhdGFzZXRNZXRhZGF0YURlZixcbiAgICAgIHZhbHVlOiBjdXJyZW50TWV0YWRhdGEudmFsdWVcbiAgICB9KTtcbiAgICB0aGlzLl9wcmV2aW91c1ZhbHVlTWV0YWRhdGEgPSBjdXJyZW50TWV0YWRhdGEudmFsdWU7XG4gIH1cblxuICBtZXRhRGVmaW5pdGlvbihtZXRhZGF0YTogTWV0YWRhdGFVc2VyIHwgTWV0YWRhdGFWYWx1ZSkge1xuICAgIHJldHVybiB0aGlzLl90eXBlJC5nZXRWYWx1ZSgpID09PSAndXNlcidcbiAgICAgID8gKG1ldGFkYXRhIGFzIE1ldGFkYXRhVXNlcikudXNlclByb2ZpbGVcbiAgICAgIDogKG1ldGFkYXRhIGFzIE1ldGFkYXRhVmFsdWUpLm1ldGFkYXRhRGVmO1xuICB9XG5cbiAgcmVtb3ZlTWV0YWRhdGEobWV0YWRhdGFEZWY6IElNZXRhZGF0YSkge1xuICAgIHRoaXMucmVtb3ZlTWV0YS5lbWl0KHsgaWQ6IHRoaXMudGFyZ2V0SWQsIG1ldGFkYXRhSWQ6IG1ldGFkYXRhRGVmLmlkIH0pO1xuICB9XG5cbiAgcmVtb3ZlTWV0YWRhdGFWYWx1ZShtZXRhZGF0YVRvUmVtb3ZlOiBNZXRhZGF0YVZhbHVlIHwgTWV0YWRhdGFVc2VyKSB7XG4gICAgLy8gcmVtb3Zpbmcgb25lIHZhbHVlIGlzIGxpa2UgZWRpdGluZyBjdXJyZW50IHdpdGhvdXQgbmV3IHZhbHVlXG4gICAgdGhpcy5hZGRNZXRhLmVtaXQoe1xuICAgICAgaWQ6IHRoaXMudGFyZ2V0SWQsXG4gICAgICBtZXRhZGF0YUlkOiB0aGlzLm1ldGFEZWZpbml0aW9uKG1ldGFkYXRhVG9SZW1vdmUpLmlkLFxuICAgICAgdmFsdWU6IHVuZGVmaW5lZCxcbiAgICAgIHByZXZpb3VzVmFsdWU6IG1ldGFkYXRhVG9SZW1vdmUudmFsdWVcbiAgICB9KTtcbiAgfVxuXG4gIGFkZERhdGFzZXRNZXRhZGF0YSgpIHtcbiAgICB0aGlzLmlzU3VibWl0dGVkID0gdHJ1ZTtcbiAgICBpZiAodGhpcy5mb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLmlzU3VibWl0dGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmFkZE1ldGEuZW1pdCh7XG4gICAgICAgIGlkOiB0aGlzLnRhcmdldElkLFxuICAgICAgICBtZXRhZGF0YUlkOiB0aGlzLmZvcm0udmFsdWVbJ21ldGFkYXRhJ11bJ2lkJ10sXG4gICAgICAgIHZhbHVlOiB0aGlzLmZvcm0udmFsdWVbJ3ZhbHVlJ10sXG4gICAgICAgIHByZXZpb3VzVmFsdWU6IHRoaXMuX3ByZXZpb3VzVmFsdWVNZXRhZGF0YVxuICAgICAgfSk7XG4gICAgICB0aGlzLl9wcmV2aW91c1ZhbHVlTWV0YWRhdGEgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG59XG4iLCI8cHJ5LW1ldGFkYXRhLWVkaXRvci1jc3M+PC9wcnktbWV0YWRhdGEtZWRpdG9yLWNzcz5cbkBmb3IgKGdyb3VwZWRNZXRhZGF0YXMgb2YgX21ldGFkYXRhR3JvdXBlZEJ5RGVmJCB8IGFzeW5jOyB0cmFjayBncm91cGVkTWV0YWRhdGFzLm1ldGFkYXRhRGVmLmlkKSB7XG4gIDxkaXYgY2xhc3M9XCJvLXRhYnNfX3BhbmVsX19jb250ZW50X19hY3Rpb25zXCI+XG4gICAgPGRpdiBjbGFzcz1cIm8tdGFic19fcGFuZWxfX2NvbnRlbnRfX2FjdGlvbnNfX2RlZlwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJvLXRhYnNfX3BhbmVsX19jb250ZW50X19hY3Rpb25zX190ZXh0X19sYWJlbFwiPnt7IGdyb3VwZWRNZXRhZGF0YXMubWV0YWRhdGFEZWYubmFtZSB9fTwvc3Bhbj5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLXRhYnNfX3BhbmVsX19jb250ZW50X19hY3Rpb25zX19idXR0b25zXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZ3JvdXBlZE1ldGFkYXRhcy5tZXRhZGF0YURlZi5yZWFkT25seVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKnByeUFjY2Vzcz1cInsgbW9kdWxlOiAnYWRtaW4nLCBwYWdlOiAnZGF0YXNldCcsIGFjdGlvbjogJ3dyaXRlJyB9XCI+XG4gICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiBhcmlhLXByZXNzZWQ9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInUtdmlzdWFsbHktaGlkZGVuXCI+XG4gICAgICAgICAgICAgICAge3sgJ0BwcnkuYWN0aW9uLmRlbGV0ZScgfCBpMThuIH19IHt7IGdyb3VwZWRNZXRhZGF0YXMubWV0YWRhdGFEZWYubmFtZSB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDxwcnktaWNvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZGVsZXRlLWljb25cIlxuICAgICAgICAgICAgICAgIGljb25Tdmc9XCJkZWxldGVcIlxuICAgICAgICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgICAgICAgW2hlaWdodF09XCIxNVwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZU1ldGFkYXRhKGdyb3VwZWRNZXRhZGF0YXMubWV0YWRhdGFEZWYpXCJcbiAgICAgICAgICAgICAgPjwvcHJ5LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8dWw+XG4gICAgICBAZm9yIChtZXRhZGF0YSBvZiBncm91cGVkTWV0YWRhdGFzLm1ldGFkYXRhOyB0cmFjayBtZXRhZGF0YS52YWx1ZTsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgPGxpIGNsYXNzPVwiby10YWJzX19wYW5lbF9fY29udGVudF9fYWN0aW9uc19fZGVmXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm8tdGFic19fcGFuZWxfX2NvbnRlbnRfX2FjdGlvbnNfX3RleHRcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiby10YWJzX19wYW5lbF9fY29udGVudF9fYWN0aW9uc19fdGV4dF9fdmFsdWVcIj57eyBtZXRhZGF0YS52YWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiby10YWJzX19wYW5lbF9fY29udGVudF9fYWN0aW9uc19fYnV0dG9uc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtZXRhRGVmaW5pdGlvbihtZXRhZGF0YSkucmVhZE9ubHlcIj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdhZG1pbicsIHBhZ2U6ICdkYXRhc2V0JywgYWN0aW9uOiAnd3JpdGUnIH1cIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiBhcmlhLXByZXNzZWQ9XCJmYWxzZVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICB7eyAnQHByeS5hY3Rpb24uZWRpdCcgfCBpMThuIH19IHt7IG1ldGFEZWZpbml0aW9uKG1ldGFkYXRhKS5uYW1lIH19XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8cHJ5LWljb25cbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlZGl0LWljb25cIlxuICAgICAgICAgICAgICAgICAgICBpY29uU3ZnPVwiZWRpdFwiXG4gICAgICAgICAgICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiMTVcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZWRpdE1ldGFkYXRhKG1ldGFkYXRhKVwiXG4gICAgICAgICAgICAgICAgICA+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICBAaWYgKChfdHlwZSQgfCBhc3luYykgPT09ICd1c2VyJykge1xuICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0taWNvbi1vbmx5XCIgYXJpYS1wcmVzc2VkPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgIHt7ICdAcHJ5LmFjdGlvbi5kZWxldGUnIHwgaTE4biB9fSB7eyBncm91cGVkTWV0YWRhdGFzLm1ldGFkYXRhRGVmLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHByeS1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZGVsZXRlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uU3ZnPVwiZGVsZXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlaWdodF09XCIxNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVNZXRhZGF0YVZhbHVlKG1ldGFkYXRhKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9wcnktaWNvbj5cbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9saT5cbiAgICAgIH1cbiAgICA8L3VsPlxuICA8L2Rpdj5cbn1cblxuPG5nLWNvbnRhaW5lciAqcHJ5QWNjZXNzPVwieyBtb2R1bGU6ICdhZG1pbicsIHBhZ2U6ICdkYXRhc2V0JywgYWN0aW9uOiAnd3JpdGUnIH1cIj5cbiAgPGZvcm0gY2xhc3M9XCJvLWZvcm0gLWJvcmRlci10b3BcIiBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwiYWRkRGF0YXNldE1ldGFkYXRhKClcIj5cbiAgICA8ZmllbGRzZXQ+XG4gICAgICA8bGVnZW5kIGNsYXNzPVwidS12aXN1YWxseS1oaWRkZW5cIj57eyAnQHByeS5hY3Rpb24uZWRpdFByb2ZpbCcgfCBpMThuIH19PC9sZWdlbmQ+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJtLWZvcm0tbGFiZWwtZmllbGQgby1tZXRhZGF0YS1lZGl0b3JfX2NvbnRhaW5lclwiPlxuICAgICAgICA8bGFiZWwgZm9yPVwibWV0YWRhdGFcIiBpZD1cIm1ldGFkYXRhLWxhYmVsXCIgY2xhc3M9XCJhLWxhYmVsXCI+RGF0YTwvbGFiZWw+XG4gICAgICAgIDxwcnktc2VsZWN0XG4gICAgICAgICAgaWQ9XCJtZXRhZGF0YVwiXG4gICAgICAgICAgY2xhc3M9XCJvLW1ldGFkYXRhLWVkaXRvclwiXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWV0YWRhdGFcIlxuICAgICAgICAgIFtpdGVtc109XCJhdmFpbGFibGVNZXRhZGF0YSQgfCBhc3luY1wiXG4gICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25NZXRhQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgIFtpc0Zvcm1dPVwidHJ1ZVwiXG4gICAgICAgICAgYmluZExhYmVsPVwibmFtZVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIlxuICAgICAgICAgICAgaXNTdWJtaXR0ZWQgJiYgZm9ybS5nZXQoJ21ldGFkYXRhJyk/LmludmFsaWQgPyAnbWV0YWRhdGEtbGFiZWwgbWV0YWRhdGEtZXJyb3InIDogJ21ldGFkYXRhLWxhYmVsJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCdtZXRhZGF0YScpPy5pbnZhbGlkXCJcbiAgICAgICAgPlxuICAgICAgICA8L3ByeS1zZWxlY3Q+XG4gICAgICAgIDxsYWJlbFxuICAgICAgICAgICpuZ0lmPVwiaXNTdWJtaXR0ZWQgJiYgZm9ybS5nZXQoJ21ldGFkYXRhJyk/LmludmFsaWRcIlxuICAgICAgICAgIGlkPVwibWV0YWRhdGEtZXJyb3JcIlxuICAgICAgICAgIGZvcj1cIm1ldGFkYXRhXCJcbiAgICAgICAgICBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgJ0BwcnkuYWRtaW4ucmVxdWlyZWQnIHwgaTE4biB9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtLnZhbHVlLm1ldGFkYXRhXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtLnZhbHVlWydtZXRhZGF0YSddWyd0eXBlJ10gPT09ICdEQVRFJzsgZWxzZSBpbnB1dExpc3RcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIG8tbWV0YWRhdGEtZWRpdG9yX19jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxsYWJlbCBpZD1cImZvcm1fZGF0ZS1sYWJlbFwiIGZvcj1cImZvcm1fZGF0ZVwiIGNsYXNzPVwiYS1sYWJlbFwiPlxuICAgICAgICAgICAgICB7eyAnQHByeS5hY3Rpb24uc2VsZWN0RGF0ZScgfCBpMThuIH19ICpcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPih7eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19KTwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgaWQ9XCJmb3JtX2RhdGVcIlxuICAgICAgICAgICAgICB0eXBlPVwiZGF0ZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiYS1mb3JtLWZpZWxkXCJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiXG4gICAgICAgICAgICAgICAgaXNTdWJtaXR0ZWQgJiYgZm9ybS5nZXQoJ3ZhbHVlJyk/LmludmFsaWQgPyAnZm9ybS1kYXRlLWxhYmVsIGZvcm0tZGF0ZS1lcnJvcicgOiAnZm9ybS1kYXRlLWxhYmVsJ1xuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwiaXNTdWJtaXR0ZWQgJiYgZm9ybS5nZXQoJ3ZhbHVlJyk/LmludmFsaWRcIlxuICAgICAgICAgICAgICByZXF1aXJlZFxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAqbmdJZj1cImlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCd2YWx1ZScpPy5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgaWQ9XCJmb3JtX2RhdGUtZXJyb3JcIlxuICAgICAgICAgICAgICBmb3I9XCJmb3JtX2RhdGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICB7eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2lucHV0TGlzdD5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybS52YWx1ZVsnbWV0YWRhdGEnXVsndHlwZSddID09PSAnTElTVCc7IGVsc2UgaW5wdXRUZXh0XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkIG8tbWV0YWRhdGEtZWRpdG9yX19jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgPGxhYmVsIGlkPVwibGlzdC1sYWJlbFwiIGNsYXNzPVwiYS1sYWJlbFwiIGZvcj1cImxpc3RcIj57eyAnQHByeS5hY3Rpb24uY2hvaWNlSW5MaXN0JyB8IGkxOG4gfX08L2xhYmVsPlxuICAgICAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgICAgIGlkPVwibGlzdFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJvLW1ldGFkYXRhLWVkaXRvclwiXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgIFtpdGVtc109XCJmb3JtLnZhbHVlWydtZXRhZGF0YSddWydhbGxvd2VkVmFsdWVzJ11cIlxuICAgICAgICAgICAgICAgIFtpc0Zvcm1dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwibGlzdC1sYWJlbFwiXG4gICAgICAgICAgICAgID48L3ByeS1zZWxlY3Q+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2lucHV0VGV4dD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibS1mb3JtLWxhYmVsLWZpZWxkXCI+XG4gICAgICAgICAgICA8bGFiZWwgaWQ9XCJ0ZXh0LWxhYmVsXCIgY2xhc3M9XCJhLWxhYmVsXCIgZm9yPVwidGV4dFwiPlxuICAgICAgICAgICAgICB7eyAnQHByeS5hY3Rpb24udGV4dCcgfCBpMThuIH19ICpcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ1LXZpc3VhbGx5LWhpZGRlblwiPih7eyAnQHByeS5hZG1pbi5yZXF1aXJlZCcgfCBpMThuIH19KTwvc3Bhbj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgaWQ9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICBjbGFzcz1cImEtZm9ybS1maWVsZFwiXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIlxuICAgICAgICAgICAgICAgIGlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCd2YWx1ZScpPy5pbnZhbGlkID8gJ3RleHQtbGFiZWwgdGV4dC1lcnJvcicgOiAndGV4dC1sYWJlbCdcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImlzU3VibWl0dGVkICYmIGZvcm0uZ2V0KCd2YWx1ZScpPy5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgKm5nSWY9XCJpc1N1Ym1pdHRlZCAmJiBmb3JtLmdldCgndmFsdWUnKT8uaW52YWxpZFwiXG4gICAgICAgICAgICAgIGlkPVwidGVzdC1lcnJvclwiXG4gICAgICAgICAgICAgIGZvcj1cInRleHRcIlxuICAgICAgICAgICAgICBjbGFzcz1cImEtbGFiZWwgYS1sYWJlbC0taGVscCAtZXJyb3JcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImZvcm0uZ2V0KCd2YWx1ZScpPy5oYXNFcnJvcigncmVxdWlyZWQnKVwiPnt7ICdAcHJ5LmFkbWluLnJlcXVpcmVkJyB8IGkxOG4gfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtLmdldCgndmFsdWUnKT8uaGFzRXJyb3IoJ3BhdHRlcm4nKVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZm9ybS52YWx1ZVsnbWV0YWRhdGEnXVsndHlwZSddID09PSAnRE9VQkxFJ1wiPlxuICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuYWRtaW4uZW52aXJvbm1lbnQuZm9ybWF0RG91YmxlJyB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJmb3JtLnZhbHVlWydtZXRhZGF0YSddWyd0eXBlJ10gPT09ICdJTlRFR0VSJ1wiPlxuICAgICAgICAgICAgICAgICAge3sgJ0BwcnkuYWRtaW4uZW52aXJvbm1lbnQuZm9ybWF0SW50JyB8IGkxOG4gfX1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZmllbGRzZXQ+XG5cbiAgICA8ZGl2IGNsYXNzPVwibS1idG4tZ3JvdXAgLWVuZFwiPlxuICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiPlxuICAgICAgICB7eyAoaXNNb2RpZmljYXRpb24gPyAnQHByeS5hY3Rpb24uZWRpdE1ldGFkYXRhJyA6ICdAcHJ5LmFjdGlvbi5hZGRNZXRhZGF0YScpIHwgaTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZm9ybT5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -36,4 +36,4 @@ export const MetadataActions = {
|
|
|
36
36
|
loadUserProfileSuccess: createAction(`[Metadata/User] Load Success`, props()),
|
|
37
37
|
loadUserProfileFailure: createAction(`[Metadata/User] Load Failure`, props())
|
|
38
38
|
};
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEuYWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9kYXNoYm9hcmQvY29tcG9uZW50cy9tZXRhZGF0YS1lZGl0b3Ivc3RvcmUvbWV0YWRhdGEuYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR2xELE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixZQUFZLEVBQUUsWUFBWSxDQUFDLDBCQUEwQixDQUFDO0lBQ3RELG1CQUFtQixFQUFFLFlBQVksQ0FBQyxrQ0FBa0MsRUFBRSxLQUFLLEVBQWtDLENBQUM7SUFDOUcsbUJBQW1CLEVBQUUsWUFBWSxDQUFDLGtDQUFrQyxFQUFFLEtBQUssRUFBa0IsQ0FBQztJQUU5RixnQkFBZ0IsRUFBRSxZQUFZLENBQUMsOEJBQThCLENBQUM7SUFFOUQsZUFBZSxFQUFFLFlBQVksQ0FBQywrQkFBK0IsRUFBRSxLQUFLLEVBQXFCLENBQUM7SUFDMUYsc0JBQXNCLEVBQUUsWUFBWSxDQUFDLHVDQUF1QyxDQUFDO0lBQzdFLHNCQUFzQixFQUFFLFlBQVksQ0FBQyx1Q0FBdUMsRUFBRSxLQUFLLEVBQWtCLENBQUM7SUFFdEcsY0FBYyxFQUFFLFlBQVksQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLEVBQTJCLENBQUM7SUFDNUYscUJBQXFCLEVBQUUsWUFBWSxDQUFDLG9DQUFvQyxFQUFFLEtBQUssRUFBMkIsQ0FBQztJQUMzRyxxQkFBcUIsRUFBRSxZQUFZLENBQUMsb0NBQW9DLEVBQUUsS0FBSyxFQUFrQixDQUFDO0lBRWxHLGVBQWUsRUFBRSxZQUFZLENBQUMsK0JBQStCLEVBQUUsS0FBSyxFQUFrQixDQUFDO0lBQ3ZGLHNCQUFzQixFQUFFLFlBQVksQ0FBQyx1Q0FBdUMsRUFBRSxLQUFLLEVBQTJCLENBQUM7SUFDL0csc0JBQXNCLEVBQUUsWUFBWSxDQUFDLHVDQUF1QyxFQUFFLEtBQUssRUFBa0IsQ0FBQztJQUV0RyxrQkFBa0IsRUFBRSxZQUFZLENBQzlCLDhDQUE4QyxFQUM5QyxLQUFLLEVBQXlELENBQy9EO0lBQ0QseUJBQXlCLEVBQUUsWUFBWSxDQUNyQyxzREFBc0QsRUFDdEQsS0FBSyxFQUF5QixDQUMvQjtJQUNELHlCQUF5QixFQUFFLFlBQVksQ0FDckMsc0RBQXNELEVBQ3RELEtBQUssRUFBa0IsQ0FDeEI7SUFFRCxxQkFBcUIsRUFBRSxZQUFZLENBQ2pDLGlEQUFpRCxFQUNqRCxLQUFLLEVBQTZDLENBQ25EO0lBQ0QsNEJBQTRCLEVBQUUsWUFBWSxDQUN4Qyx5REFBeUQsRUFDekQsS0FBSyxFQUF5QixDQUMvQjtJQUNELDRCQUE0QixFQUFFLFlBQVksQ0FDeEMseURBQXlELEVBQ3pELEtBQUssRUFBa0IsQ0FDeEI7SUFDRCxVQUFVLEVBQUUsWUFBWSxDQUFDLHdCQUF3QixFQUFFLEtBQUssRUFBeUIsQ0FBQztJQUNsRixtQkFBbUIsRUFBRSxZQUFZLENBQUMsK0NBQStDLEVBQUUsS0FBSyxFQUF5QixDQUFDO0lBQ2xILDBCQUEwQixFQUFFLFlBQVksQ0FDdEMsdURBQXVELEVBQ3ZELEtBQUssRUFBaUMsQ0FDdkM7SUFDRCwwQkFBMEIsRUFBRSxZQUFZLENBQ3RDLHVEQUF1RCxFQUN2RCxLQUFLLEVBQWtCLENBQ3hCO0lBRUQsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLGlEQUFpRCxFQUFFLEtBQUssRUFBc0IsQ0FBQztJQUM5Ryx1QkFBdUIsRUFBRSxZQUFZLENBQ25DLHlEQUF5RCxFQUN6RCxLQUFLLEVBQXFDLENBQzNDO0lBQ0QsdUJBQXVCLEVBQUUsWUFBWSxDQUNuQyx5REFBeUQsRUFDekQsS0FBSyxFQUFrQixDQUN4QjtJQUVELGVBQWUsRUFBRSxZQUFZLENBQzNCLGdEQUFnRCxFQUNoRCxLQUFLLEVBQW9ELENBQzFEO0lBQ0Qsc0JBQXNCLEVBQUUsWUFBWSxDQUNsQyx3REFBd0QsRUFDeEQsS0FBSyxFQUFzQixDQUM1QjtJQUNELHNCQUFzQixFQUFFLFlBQVksQ0FDbEMsd0RBQXdELEVBQ3hELEtBQUssRUFBa0IsQ0FDeEI7SUFFRCxrQkFBa0IsRUFBRSxZQUFZLENBQzlCLG1EQUFtRCxFQUNuRCxLQUFLLEVBQTBDLENBQ2hEO0lBQ0QseUJBQXlCLEVBQUUsWUFBWSxDQUNyQywyREFBMkQsRUFDM0QsS0FBSyxFQUFzQixDQUM1QjtJQUNELHlCQUF5QixFQUFFLFlBQVksQ0FDckMsMkRBQTJELEVBQzNELEtBQUssRUFBa0IsQ0FDeEI7SUFDRCxlQUFlLEVBQUUsWUFBWSxDQUFDLCtCQUErQixDQUFDO0lBQzlELHNCQUFzQixFQUFFLFlBQVksQ0FBQyw4QkFBOEIsRUFBRSxLQUFLLEVBQXFDLENBQUM7SUFDaEgsc0JBQXNCLEVBQUUsWUFBWSxDQUFDLDhCQUE4QixFQUFFLEtBQUssRUFBa0IsQ0FBQztDQUM5RixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlQWN0aW9uLCBwcm9wcyB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IElNZXRhZGF0YSwgTWV0YWRhdGFVc2VyLCBNZXRhZGF0YVZhbHVlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcblxuZXhwb3J0IGNvbnN0IE1ldGFkYXRhQWN0aW9ucyA9IHtcbiAgbG9hZE1ldGFkYXRhOiBjcmVhdGVBY3Rpb24oYFtNZXRhZGF0YV0gTG9hZCBNZXRhZGF0YWApLFxuICBsb2FkTWV0YWRhdGFTdWNjZXNzOiBjcmVhdGVBY3Rpb24oYFtNZXRhZGF0YV0gTG9hZCBNZXRhZGF0YSBTdWNjZXNzYCwgcHJvcHM8eyBtZXRhZGF0YTogQXJyYXk8SU1ldGFkYXRhPiB9PigpKSxcbiAgbG9hZE1ldGFkYXRhRmFpbHVyZTogY3JlYXRlQWN0aW9uKGBbTWV0YWRhdGFdIExvYWQgTWV0YWRhdGEgRmFpbHVyZWAsIHByb3BzPHsgZXJyb3I6IGFueSB9PigpKSxcblxuICB1bnNlbGVjdE1ldGFkYXRhOiBjcmVhdGVBY3Rpb24oYFtNZXRhZGF0YV0gdW5TZWxlY3QgTWV0YWRhdGFgKSxcblxuICBnb1RvTmV3TWV0YWRhdGE6IGNyZWF0ZUFjdGlvbihgW01ldGFkYXRhXSBnbyB0byBuZXcgbWV0YWRhdGFgLCBwcm9wczx7IHJvdXRlOiBzdHJpbmcgfT4oKSksXG4gIGdvVG9OZXdNZXRhZGF0YVN1Y2Nlc3M6IGNyZWF0ZUFjdGlvbihgW01ldGFkYXRhXSBnbyB0byBuZXcgbWV0YWRhdGEgc3VjY2Vzc2ApLFxuICBnb1RvTmV3TWV0YWRhdGFGYWlsdXJlOiBjcmVhdGVBY3Rpb24oYFtNZXRhZGF0YV0gZ28gdG8gbmV3IG1ldGFkYXRhIGZhaWx1cmVgLCBwcm9wczx7IGVycm9yOiBhbnkgfT4oKSksXG5cbiAgY3JlYXRlTWV0YWRhdGE6IGNyZWF0ZUFjdGlvbihgW01ldGFkYXRhXSBjcmVhdGUgbWV0YWRhdGFgLCBwcm9wczx7IG1ldGFkYXRhOiBJTWV0YWRhdGEgfT4oKSksXG4gIGNyZWF0ZU1ldGFkYXRhU3VjY2VzczogY3JlYXRlQWN0aW9uKGBbTWV0YWRhdGFdIGNyZWF0ZSBtZXRhZGF0YSBTdWNjZXNzYCwgcHJvcHM8eyBtZXRhZGF0YTogSU1ldGFkYXRhIH0+KCkpLFxuICBjcmVhdGVNZXRhZGF0YUZhaWx1cmU6IGNyZWF0ZUFjdGlvbihgW01ldGFkYXRhXSBjcmVhdGUgbWV0YWRhdGEgRmFpbHVyZWAsIHByb3BzPHsgZXJyb3I6IGFueSB9PigpKSxcblxuICBnb1RvRGV0YWlsc1ZpZXc6IGNyZWF0ZUFjdGlvbihgW01ldGFkYXRhXSBnbyB0byBkZXRhaWxzIHZpZXdgLCBwcm9wczx7IGlkOiBzdHJpbmcgfT4oKSksXG4gIGdvVG9EZXRhaWxzVmlld1N1Y2Nlc3M6IGNyZWF0ZUFjdGlvbihgW01ldGFkYXRhXSBnbyB0byBkZXRhaWxzIHZpZXcgc3VjY2Vzc2AsIHByb3BzPHsgbWV0YWRhdGE6IElNZXRhZGF0YSB9PigpKSxcbiAgZ29Ub0RldGFpbHNWaWV3RmFpbHVyZTogY3JlYXRlQWN0aW9uKGBbTWV0YWRhdGFdIGdvIHRvIGRldGFpbHMgdmlldyBmYWlsdXJlYCwgcHJvcHM8eyBlcnJvcjogYW55IH0+KCkpLFxuXG4gIGFkZERhdGFzZXRNZXRhZGF0YTogY3JlYXRlQWN0aW9uKFxuICAgIGBbTWV0YWRhdGFdIEFkZCBNZXRhZGF0YSBvZiBzZWxlY3RlZCBEYXRhc2V0c2AsXG4gICAgcHJvcHM8eyBkYXRhc2V0SWQ6IHN0cmluZzsgbWV0YWRhdGFJZDogc3RyaW5nOyB2YWx1ZTogYW55IH0+KClcbiAgKSxcbiAgYWRkRGF0YXNldE1ldGFkYXRhU3VjY2VzczogY3JlYXRlQWN0aW9uKFxuICAgIGBbTWV0YWRhdGFdIEFkZCBNZXRhZGF0YSBvZiBzZWxlY3RlZCBEYXRhc2V0cyBTdWNjZXNzYCxcbiAgICBwcm9wczx7IGRhdGFzZXRJZDogc3RyaW5nIH0+KClcbiAgKSxcbiAgYWRkRGF0YXNldE1ldGFkYXRhRmFpbHVyZTogY3JlYXRlQWN0aW9uKFxuICAgIGBbTWV0YWRhdGFdIEFkZCBNZXRhZGF0YSBvZiBzZWxlY3RlZCBEYXRhc2V0cyBGYWlsdXJlYCxcbiAgICBwcm9wczx7IGVycm9yOiBhbnkgfT4oKVxuICApLFxuXG4gIGRlbGV0ZURhdGFzZXRNZXRhZGF0YTogY3JlYXRlQWN0aW9uKFxuICAgIGBbTWV0YWRhdGFdIERlbGV0ZSBNZXRhZGF0YSBvZiBzZWxlY3RlZCBEYXRhc2V0c2AsXG4gICAgcHJvcHM8eyBkYXRhc2V0SWQ6IHN0cmluZzsgbWV0YWRhdGFJZDogc3RyaW5nIH0+KClcbiAgKSxcbiAgZGVsZXRlRGF0YXNldE1ldGFkYXRhU3VjY2VzczogY3JlYXRlQWN0aW9uKFxuICAgIGBbTWV0YWRhdGFdIERlbGV0ZSBNZXRhZGF0YSBvZiBzZWxlY3RlZCBEYXRhc2V0cyBTdWNjZXNzYCxcbiAgICBwcm9wczx7IGRhdGFzZXRJZDogc3RyaW5nIH0+KClcbiAgKSxcbiAgZGVsZXRlRGF0YXNldE1ldGFkYXRhRmFpbHVyZTogY3JlYXRlQWN0aW9uKFxuICAgIGBbTWV0YWRhdGFdIERlbGV0ZSBNZXRhZGF0YSBvZiBzZWxlY3RlZCBEYXRhc2V0cyBGYWlsdXJlYCxcbiAgICBwcm9wczx7IGVycm9yOiBhbnkgfT4oKVxuICApLFxuICBpc0VkaXRhYmxlOiBjcmVhdGVBY3Rpb24oYFtNZXRhZGF0YV0gSXMgZWRpdGFibGVgLCBwcm9wczx7IGVkaXRhYmxlOiBib29sZWFuIH0+KCkpLFxuICBsb2FkRGF0YXNldE1ldGFkYXRhOiBjcmVhdGVBY3Rpb24oYFtNZXRhZGF0YV0gTG9hZCBNZXRhZGF0YSBvZiBzZWxlY3RlZCBEYXRhc2V0c2AsIHByb3BzPHsgZGF0YXNldElkOiBzdHJpbmcgfT4oKSksXG4gIGxvYWREYXRhc2V0TWV0YWRhdGFTdWNjZXNzOiBjcmVhdGVBY3Rpb24oXG4gICAgYFtNZXRhZGF0YV0gTG9hZCBNZXRhZGF0YSBvZiBzZWxlY3RlZCBEYXRhc2V0cyBTdWNjZXNzYCxcbiAgICBwcm9wczx7IG1ldGFkYXRhOiBNZXRhZGF0YVZhbHVlW10gfT4oKVxuICApLFxuICBsb2FkRGF0YXNldE1ldGFkYXRhRmFpbHVyZTogY3JlYXRlQWN0aW9uKFxuICAgIGBbTWV0YWRhdGFdIExvYWQgTWV0YWRhdGEgb2Ygc2VsZWN0ZWQgRGF0YXNldHMgRmFpbHVyZWAsXG4gICAgcHJvcHM8eyBlcnJvcjogYW55IH0+KClcbiAgKSxcblxuICBsb2FkTWV0YWRhdGFVc2VyOiBjcmVhdGVBY3Rpb24oYFtNZXRhZGF0YS9Vc2VyXSBMb2FkIE1ldGFkYXRhIG9mIHNlbGVjdGVkIFVzZXJzYCwgcHJvcHM8eyB1c2VySWQ6IHN0cmluZyB9PigpKSxcbiAgbG9hZE1ldGFkYXRhVXNlclN1Y2Nlc3M6IGNyZWF0ZUFjdGlvbihcbiAgICBgW01ldGFkYXRhL1VzZXJdIExvYWQgTWV0YWRhdGEgb2Ygc2VsZWN0ZWQgVXNlcnMgU3VjY2Vzc2AsXG4gICAgcHJvcHM8eyBtZXRhZGF0YTogQXJyYXk8TWV0YWRhdGFVc2VyPiB9PigpXG4gICksXG4gIGxvYWRNZXRhZGF0YVVzZXJGYWlsdXJlOiBjcmVhdGVBY3Rpb24oXG4gICAgYFtNZXRhZGF0YS9Vc2VyXSBMb2FkIE1ldGFkYXRhIG9mIHNlbGVjdGVkIFVzZXJzIEZhaWx1cmVgLFxuICAgIHByb3BzPHsgZXJyb3I6IGFueSB9PigpXG4gICksXG5cbiAgYWRkTWV0YWRhdGFVc2VyOiBjcmVhdGVBY3Rpb24oXG4gICAgYFtNZXRhZGF0YS9Vc2VyXSBBZGQgTWV0YWRhdGEgb2Ygc2VsZWN0ZWQgVXNlcnNgLFxuICAgIHByb3BzPHsgdXNlcklkOiBzdHJpbmc7IG1ldGFJZDogc3RyaW5nOyB2YWx1ZTogYW55W10gfT4oKVxuICApLFxuICBhZGRNZXRhZGF0YVVzZXJTdWNjZXNzOiBjcmVhdGVBY3Rpb24oXG4gICAgYFtNZXRhZGF0YS9Vc2VyXSBBZGQgTWV0YWRhdGEgb2Ygc2VsZWN0ZWQgVXNlcnMgU3VjY2Vzc2AsXG4gICAgcHJvcHM8eyB1c2VySWQ6IHN0cmluZyB9PigpXG4gICksXG4gIGFkZE1ldGFkYXRhVXNlckZhaWx1cmU6IGNyZWF0ZUFjdGlvbihcbiAgICBgW01ldGFkYXRhL1VzZXJdIEFkZCBNZXRhZGF0YSBvZiBzZWxlY3RlZCBVc2VycyBGYWlsdXJlYCxcbiAgICBwcm9wczx7IGVycm9yOiBhbnkgfT4oKVxuICApLFxuXG4gIGRlbGV0ZU1ldGFkYXRhVXNlcjogY3JlYXRlQWN0aW9uKFxuICAgIGBbTWV0YWRhdGEvVXNlcl0gRGVsZXRlIE1ldGFkYXRhIG9mIHNlbGVjdGVkIFVzZXJzYCxcbiAgICBwcm9wczx7IHVzZXJJZDogc3RyaW5nOyBtZXRhZGF0YUlkOiBzdHJpbmcgfT4oKVxuICApLFxuICBkZWxldGVNZXRhZGF0YVVzZXJTdWNjZXNzOiBjcmVhdGVBY3Rpb24oXG4gICAgYFtNZXRhZGF0YS9Vc2VyXSBEZWxldGUgTWV0YWRhdGEgb2Ygc2VsZWN0ZWQgVXNlcnMgU3VjY2Vzc2AsXG4gICAgcHJvcHM8eyB1c2VySWQ6IHN0cmluZyB9PigpXG4gICksXG4gIGRlbGV0ZU1ldGFkYXRhVXNlckZhaWx1cmU6IGNyZWF0ZUFjdGlvbihcbiAgICBgW01ldGFkYXRhL1VzZXJdIERlbGV0ZSBNZXRhZGF0YSBvZiBzZWxlY3RlZCBVc2VycyBGYWlsdXJlYCxcbiAgICBwcm9wczx7IGVycm9yOiBhbnkgfT4oKVxuICApLFxuICBsb2FkVXNlclByb2ZpbGU6IGNyZWF0ZUFjdGlvbihgW01ldGFkYXRhL1VzZXJdIExvYWQgTWV0YWRhdGFgKSxcbiAgbG9hZFVzZXJQcm9maWxlU3VjY2VzczogY3JlYXRlQWN0aW9uKGBbTWV0YWRhdGEvVXNlcl0gTG9hZCBTdWNjZXNzYCwgcHJvcHM8eyB1c2VyUHJvZmlsZTogQXJyYXk8SU1ldGFkYXRhPiB9PigpKSxcbiAgbG9hZFVzZXJQcm9maWxlRmFpbHVyZTogY3JlYXRlQWN0aW9uKGBbTWV0YWRhdGEvVXNlcl0gTG9hZCBGYWlsdXJlYCwgcHJvcHM8eyBlcnJvcjogYW55IH0+KCkpXG59O1xuIl19
|
|
@@ -53,4 +53,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
53
53
|
providedIn: 'root'
|
|
54
54
|
}]
|
|
55
55
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.Store }] });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0YWRhdGEuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Byb3ZvbHkvZGFzaGJvYXJkL2NvbXBvbmVudHMvbWV0YWRhdGEtZWRpdG9yL3N0b3JlL21ldGFkYXRhLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsZUFBZSxFQUEyQixNQUFNLG9CQUFvQixDQUFDO0FBQzlFLE9BQU8sRUFBRSxRQUFRLEVBQWMsTUFBTSxNQUFNLENBQUM7Ozs7QUFLNUMsTUFBTSxPQUFPLGVBQWU7SUFDMUIsWUFDVSxVQUFzQixFQUN0QixLQUFpQjtRQURqQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFVBQUssR0FBTCxLQUFLLENBQVk7SUFDeEIsQ0FBQztJQUVKLGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLO2FBQ2QsTUFBTSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7YUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsV0FBVyxDQUFDLEVBQVU7UUFDcEIsT0FBTyxJQUFJLENBQUMsS0FBSzthQUNkLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDO2FBQzlCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFZLEdBQUcsR0FBRyxnQkFBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekYsQ0FBQztJQUVELFlBQVksQ0FBQyxRQUFtQjtRQUM5QixPQUFPLElBQUksQ0FBQyxLQUFLO2FBQ2QsTUFBTSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7YUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQU8sR0FBRyxHQUFHLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUFjO1FBQzVCLE9BQU8sSUFBSSxDQUFDLEtBQUs7YUFDZCxNQUFNLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQzthQUM5QixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBaUIsR0FBRyxHQUFHLGFBQWEsTUFBTSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUFjLEVBQUUsTUFBYyxFQUFFLEtBQVk7UUFDMUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUNuRCxRQUFRLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNmLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFPLFNBQVMsQ0FBQyxHQUFHLEdBQUcsYUFBYSxNQUFNLGdCQUFnQixNQUFNLEVBQUUsQ0FBQyxFQUFFO1lBQ3RGLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQyxDQUNILENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxNQUFjLEVBQUUsTUFBYztRQUMvQyxPQUFPLElBQUksQ0FBQyxLQUFLO2FBQ2QsTUFBTSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7YUFDOUIsSUFBSSxDQUNILFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQU8sU0FBUyxDQUFDLEdBQUcsR0FBRyxhQUFhLE1BQU0sZ0JBQWdCLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUM5RyxDQUFDO0lBQ04sQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLO2FBQ2QsTUFBTSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUM7YUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQU0sR0FBRyxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7OEdBcERVLGVBQWU7a0hBQWYsZUFBZSxjQUZkLE1BQU07OzJGQUVQLGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgQ29uZmlnU2VsZWN0b3JzLCBJTWV0YWRhdGEsIE1ldGFkYXRhVXNlciB9IGZyb20gJ0Bwcm92b2x5L2Rhc2hib2FyZCc7XG5pbXBvcnQgeyBtZXJnZU1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBNZXRhZGF0YVNlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PlxuICApIHt9XG5cbiAgZ2V0TWV0YWRhdGFMaXN0KCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLnJlZlVybClcbiAgICAgIC5waXBlKG1lcmdlTWFwKCh1cmwpID0+IHRoaXMuaHR0cENsaWVudC5nZXQ8YW55PihgJHt1cmx9L21ldGFkYXRhYCkpKTtcbiAgfVxuXG4gIGdldE1ldGFkYXRhKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPElNZXRhZGF0YT4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5yZWZVcmwpXG4gICAgICAucGlwZShtZXJnZU1hcCgodXJsKSA9PiB0aGlzLmh0dHBDbGllbnQuZ2V0PElNZXRhZGF0YT4oYCR7dXJsfS9tZXRhZGF0YS9pZC8ke2lkfWApKSk7XG4gIH1cblxuICBwb3N0TWV0YWRhdGEobWV0YWRhdGE6IElNZXRhZGF0YSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5yZWZVcmwpXG4gICAgICAucGlwZShtZXJnZU1hcCgodXJsKSA9PiB0aGlzLmh0dHBDbGllbnQucG9zdDx2b2lkPihgJHt1cmx9L21ldGFkYXRhYCwgbWV0YWRhdGEpKSk7XG4gIH1cblxuICBnZXRNZXRhZGF0YVVzZXIodXNlcklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPE1ldGFkYXRhVXNlcltdPiB7XG4gICAgcmV0dXJuIHRoaXMuc3RvcmVcbiAgICAgIC5zZWxlY3QoQ29uZmlnU2VsZWN0b3JzLnJlZlVybClcbiAgICAgIC5waXBlKG1lcmdlTWFwKCh1cmwpID0+IHRoaXMuaHR0cENsaWVudC5nZXQ8TWV0YWRhdGFVc2VyW10+KGAke3VybH0vdXNlcnMvaWQvJHt1c2VySWR9L21ldGFkYXRhYCkpKTtcbiAgfVxuXG4gIGFkZE1ldGFkYXRhVXNlcih1c2VySWQ6IHN0cmluZywgbWV0YUlkOiBzdHJpbmcsIHZhbHVlOiBhbnlbXSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlLnNlbGVjdChDb25maWdTZWxlY3RvcnMucmVmVXJsKS5waXBlKFxuICAgICAgbWVyZ2VNYXAoKHVybCkgPT5cbiAgICAgICAgdGhpcy5odHRwQ2xpZW50LnB1dDx2b2lkPihlbmNvZGVVUkkoYCR7dXJsfS91c2Vycy9pZC8ke3VzZXJJZH0vbWV0YWRhdGEvaWQvJHttZXRhSWR9YCksIHtcbiAgICAgICAgICB2YWx1ZTogdmFsdWVcbiAgICAgICAgfSlcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgZGVsZXRlTWV0YWRhdGFVc2VyKHVzZXJJZDogc3RyaW5nLCBtZXRhSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5yZWZVcmwpXG4gICAgICAucGlwZShcbiAgICAgICAgbWVyZ2VNYXAoKHVybCkgPT4gdGhpcy5odHRwQ2xpZW50LmRlbGV0ZTx2b2lkPihlbmNvZGVVUkkoYCR7dXJsfS91c2Vycy9pZC8ke3VzZXJJZH0vbWV0YWRhdGEvaWQvJHttZXRhSWR9YCkpKVxuICAgICAgKTtcbiAgfVxuXG4gIGdldFVzZXJNZXRhZGF0YSgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLnN0b3JlXG4gICAgICAuc2VsZWN0KENvbmZpZ1NlbGVjdG9ycy5yZWZVcmwpXG4gICAgICAucGlwZShtZXJnZU1hcCgodXJsKSA9PiB0aGlzLmh0dHBDbGllbnQuZ2V0PGFueT4oYCR7dXJsfS91c2Vycy9tZXRhZGF0YWApKSk7XG4gIH1cbn1cbiJdfQ==
|