awf-test-lib 0.1.14 → 0.1.16
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/esm2020/lib/core/menu-ge-portal/menu-ge-portal.component.mjs +81 -10
- package/esm2020/lib/shared/confirm-dialog/confirm-dialog.component.mjs +4 -3
- package/esm2020/lib/shared/confirmed-date-information/confirmed-date-information.component.mjs +4 -3
- package/esm2020/lib/shared/contact/contact.component.mjs +1 -3
- package/esm2020/lib/shared/contact-support/contact-support.component.mjs +6 -2
- package/esm2020/lib/shared/dashboard/dashboard.component.mjs +4 -3
- package/esm2020/lib/shared/maintenance-list/maintenance-list.component.mjs +4 -3
- package/esm2020/lib/shared/show-links/show-links.component.mjs +4 -5
- package/esm2020/lib/shared/system-list/system-list.component.mjs +4 -3
- package/fesm2015/awf-test-lib.mjs +128 -51
- package/fesm2015/awf-test-lib.mjs.map +1 -1
- package/fesm2020/awf-test-lib.mjs +128 -51
- package/fesm2020/awf-test-lib.mjs.map +1 -1
- package/lib/core/menu-ge-portal/menu-ge-portal.component.d.ts +9 -2
- package/lib/shared/confirm-dialog/confirm-dialog.component.d.ts +1 -0
- package/lib/shared/confirmed-date-information/confirmed-date-information.component.d.ts +1 -0
- package/lib/shared/dashboard/dashboard.component.d.ts +1 -0
- package/lib/shared/maintenance-list/maintenance-list.component.d.ts +1 -0
- package/lib/shared/show-links/show-links.component.d.ts +1 -0
- package/lib/shared/system-list/system-list.component.d.ts +1 -0
- package/package.json +1 -1
@@ -1,25 +1,96 @@
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
2
|
+
import jwt_decode from 'jwt-decode';
|
2
3
|
import * as i0 from "@angular/core";
|
3
|
-
import * as i1 from "@angular/
|
4
|
-
import * as i2 from "@angular/
|
4
|
+
import * as i1 from "@angular/router";
|
5
|
+
import * as i2 from "@angular/common";
|
5
6
|
export class MenuGePortalComponent {
|
6
|
-
constructor() {
|
7
|
+
constructor(router) {
|
8
|
+
this.router = router;
|
7
9
|
this.logOutClick = new EventEmitter();
|
8
10
|
this.hideMenu = new EventEmitter();
|
11
|
+
this.displayViewAs = false;
|
12
|
+
this.displayViewAs = !this.isTokenExpired();
|
9
13
|
}
|
10
14
|
logout() {
|
11
|
-
this.
|
15
|
+
this.displayViewAs = !this.isTokenExpired();
|
16
|
+
if (this.displayViewAs) {
|
17
|
+
this.deleteConnexionInfo();
|
18
|
+
this.navigate("/ge");
|
19
|
+
}
|
20
|
+
else {
|
21
|
+
this.logOutClick.emit();
|
22
|
+
}
|
12
23
|
}
|
13
|
-
|
24
|
+
menuMethode(path) {
|
25
|
+
this.redirectByPath(path);
|
14
26
|
this.hideMenu.emit();
|
15
27
|
}
|
28
|
+
isTokenExpired() {
|
29
|
+
const token = sessionStorage.getItem("va-token");
|
30
|
+
if (!token) {
|
31
|
+
return true; // Token absent, considéré comme expiré
|
32
|
+
}
|
33
|
+
const tokenData = jwt_decode(token);
|
34
|
+
const expirationTime = tokenData?.exp; // Convertir en millisecondes
|
35
|
+
const currentTimeInSeconds = Math.floor(Date.now() / 1000); // Temps actuel en secondes
|
36
|
+
const isExpired = expirationTime ? expirationTime < currentTimeInSeconds : true;
|
37
|
+
if (isExpired) {
|
38
|
+
this.deleteConnexionInfo();
|
39
|
+
}
|
40
|
+
return isExpired;
|
41
|
+
}
|
42
|
+
redirectByPath(path) {
|
43
|
+
this.displayViewAs = !this.isTokenExpired();
|
44
|
+
if (this.displayViewAs) {
|
45
|
+
switch (path) {
|
46
|
+
case null || undefined || '':
|
47
|
+
this.navigate('/ge/view-as/home');
|
48
|
+
break;
|
49
|
+
case 'contact':
|
50
|
+
this.navigate('/ge/view-as/contact');
|
51
|
+
break;
|
52
|
+
case 'maintenance':
|
53
|
+
this.navigate('/ge/view-as/maintenance');
|
54
|
+
break;
|
55
|
+
case 'systems':
|
56
|
+
this.navigate('/ge/view-as/systems');
|
57
|
+
break;
|
58
|
+
default: this.navigate('/ge/view-as/home');
|
59
|
+
}
|
60
|
+
}
|
61
|
+
else {
|
62
|
+
switch (path) {
|
63
|
+
case null || undefined || '':
|
64
|
+
this.navigate('/ge');
|
65
|
+
break;
|
66
|
+
case 'contact':
|
67
|
+
this.navigate('/ge/contact');
|
68
|
+
break;
|
69
|
+
case 'maintenance':
|
70
|
+
this.navigate('/ge/maintenance');
|
71
|
+
break;
|
72
|
+
case 'systems':
|
73
|
+
this.navigate('/ge/systems');
|
74
|
+
break;
|
75
|
+
default: this.navigate('/ge');
|
76
|
+
}
|
77
|
+
}
|
78
|
+
}
|
79
|
+
deleteConnexionInfo() {
|
80
|
+
sessionStorage.removeItem("va-token");
|
81
|
+
sessionStorage.removeItem("va-email");
|
82
|
+
sessionStorage.setItem("va", "false");
|
83
|
+
}
|
84
|
+
navigate(route) {
|
85
|
+
this.router.navigate([route]);
|
86
|
+
}
|
16
87
|
}
|
17
|
-
MenuGePortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: MenuGePortalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
18
|
-
MenuGePortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: MenuGePortalComponent, selector: "awf-menu-ge-portal", inputs: { translate: "translate", isAdmin: "isAdmin" }, outputs: { logOutClick: "logOutClick", hideMenu: "hideMenu" }, ngImport: i0, template: "<div class=\"layout-menu\" *ngIf=\"translate\">\r\n <div class=\"menu\"
|
88
|
+
MenuGePortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: MenuGePortalComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
89
|
+
MenuGePortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: MenuGePortalComponent, selector: "awf-menu-ge-portal", inputs: { translate: "translate", isAdmin: "isAdmin" }, outputs: { logOutClick: "logOutClick", hideMenu: "hideMenu" }, ngImport: i0, template: "<div class=\"layout-menu\" *ngIf=\"translate\">\r\n <div class=\"menu\" (click)=\"menuMethode()\"> <i class=\"pi pi-home\"></i> {{translate.home}}</div>\r\n <div class=\"menu\" (click)=\"menuMethode('contact')\"> <i class=\"pi pi-phone\"></i> {{translate.contact}}</div>\r\n <div class=\"menu\" (click)=\"menuMethode('systems')\"> <i class=\"pi pi-eye\"></i> {{translate.systems}}</div>\r\n <div class=\"menu\" (click)=\"menuMethode('maintenance')\"> <i class=\"pi pi-inbox\"></i> {{translate.maintenance}}</div>\r\n <div class=\"menu\" (click)=\"logout()\"> <i class=\"pi pi-power-off\"></i> {{translate.logout}}</div>\r\n</div> ", styles: [".layout-menu{margin-left:50px}.layout-menu .menu{display:block;color:#8da1b5;font-weight:300;padding:1rem 0 .5rem;font-size:16px;cursor:pointer}.layout-menu .menu:hover{font-weight:700;color:var(--primarycolor)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
19
90
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: MenuGePortalComponent, decorators: [{
|
20
91
|
type: Component,
|
21
|
-
args: [{ selector: 'awf-menu-ge-portal', template: "<div class=\"layout-menu\" *ngIf=\"translate\">\r\n <div class=\"menu\"
|
22
|
-
}], ctorParameters: function () { return []; }, propDecorators: { logOutClick: [{
|
92
|
+
args: [{ selector: 'awf-menu-ge-portal', template: "<div class=\"layout-menu\" *ngIf=\"translate\">\r\n <div class=\"menu\" (click)=\"menuMethode()\"> <i class=\"pi pi-home\"></i> {{translate.home}}</div>\r\n <div class=\"menu\" (click)=\"menuMethode('contact')\"> <i class=\"pi pi-phone\"></i> {{translate.contact}}</div>\r\n <div class=\"menu\" (click)=\"menuMethode('systems')\"> <i class=\"pi pi-eye\"></i> {{translate.systems}}</div>\r\n <div class=\"menu\" (click)=\"menuMethode('maintenance')\"> <i class=\"pi pi-inbox\"></i> {{translate.maintenance}}</div>\r\n <div class=\"menu\" (click)=\"logout()\"> <i class=\"pi pi-power-off\"></i> {{translate.logout}}</div>\r\n</div> ", styles: [".layout-menu{margin-left:50px}.layout-menu .menu{display:block;color:#8da1b5;font-weight:300;padding:1rem 0 .5rem;font-size:16px;cursor:pointer}.layout-menu .menu:hover{font-weight:700;color:var(--primarycolor)}\n"] }]
|
93
|
+
}], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { logOutClick: [{
|
23
94
|
type: Output
|
24
95
|
}], translate: [{
|
25
96
|
type: Input
|
@@ -28,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
|
|
28
99
|
}], hideMenu: [{
|
29
100
|
type: Output
|
30
101
|
}] } });
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1nZS1wb3J0YWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXdmLXRlc3QtbGliL3NyYy9saWIvY29yZS9tZW51LWdlLXBvcnRhbC9tZW51LWdlLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hd2YtdGVzdC1saWIvc3JjL2xpYi9jb3JlL21lbnUtZ2UtcG9ydGFsL21lbnUtZ2UtcG9ydGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxVQUFVLE1BQU0sWUFBWSxDQUFDOzs7O0FBT3BDLE1BQU0sT0FBTyxxQkFBcUI7SUFPOUIsWUFBNkIsTUFBZTtRQUFmLFdBQU0sR0FBTixNQUFNLENBQVM7UUFObEMsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdwRCxhQUFRLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0Qsa0JBQWEsR0FBYSxLQUFLLENBQUM7UUFHNUIsSUFBSSxDQUFDLGFBQWEsR0FBSSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxhQUFhLEdBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDN0MsSUFBRyxJQUFJLENBQUMsYUFBYSxFQUFDO1lBQ25CLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUE7U0FDdEI7YUFBSTtZQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDM0I7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQWM7UUFDdEIs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QkFDSSxvQkFBb0I7NkZBS3BCLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0UsU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCBqd3RfZGVjb2RlIGZyb20gJ2p3dC1kZWNvZGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2F3Zi1tZW51LWdlLXBvcnRhbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWVudS1nZS1wb3J0YWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vbWVudS1nZS1wb3J0YWwuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVudUdlUG9ydGFsQ29tcG9uZW50ICB7XHJcbiAgICBAT3V0cHV0KCkgbG9nT3V0Q2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQElucHV0KCkgdHJhbnNsYXRlITogYW55O1xyXG4gICAgQElucHV0KCkgaXNBZG1pbiE6IGJvb2xlYW47XHJcbiAgICBAT3V0cHV0KCkgaGlkZU1lbnU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgZGlzcGxheVZpZXdBcyA6IGJvb2xlYW4gPSBmYWxzZTsgXHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByb3V0ZXIgOiBSb3V0ZXIpIHsgXHJcbiAgICAgICAgdGhpcy5kaXNwbGF5Vmlld0FzICA9ICF0aGlzLmlzVG9rZW5FeHBpcmVkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9nb3V0KCkge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheVZpZXdBcyAgPSAhdGhpcy5pc1Rva2VuRXhwaXJlZCgpO1xyXG4gICAgICAgIGlmKHRoaXMuZGlzcGxheVZpZXdBcyl7XHJcbiAgICAgICAgICAgdGhpcy5kZWxldGVDb25uZXhpb25JbmZvKCk7XHJcbiAgICAgICAgICAgdGhpcy5uYXZpZ2F0ZShcIi9nZVwiKVxyXG4gICAgICAgIH1lbHNle1xyXG4gICAgICAgICAgICB0aGlzLmxvZ091dENsaWNrLmVtaXQoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbWVudU1ldGhvZGUocGF0aD8gOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLnJlZGlyZWN0QnlQYXRoKHBhdGgpO1xyXG4gICAgICAgIHRoaXMuaGlkZU1lbnUuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzVG9rZW5FeHBpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHRva2VuID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcInZhLXRva2VuXCIpXHJcbiAgICAgICAgaWYgKCF0b2tlbikge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7IC8vIFRva2VuIGFic2VudCwgY29uc2lkw6lyw6kgY29tbWUgZXhwaXLDqVxyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB0b2tlbkRhdGEgOiBhbnkgPSBqd3RfZGVjb2RlKHRva2VuKTtcclxuICAgICAgICBjb25zdCBleHBpcmF0aW9uVGltZSA9IHRva2VuRGF0YT8uZXhwOyAvLyBDb252ZXJ0aXIgZW4gbWlsbGlzZWNvbmRlc1xyXG4gICAgICAgIGNvbnN0IGN1cnJlbnRUaW1lSW5TZWNvbmRzID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7IC8vIFRlbXBzIGFjdHVlbCBlbiBzZWNvbmRlc1xyXG4gICAgICAgIGNvbnN0IGlzRXhwaXJlZCA9IGV4cGlyYXRpb25UaW1lID8gZXhwaXJhdGlvblRpbWUgPCBjdXJyZW50VGltZUluU2Vjb25kcyAgOiB0cnVlO1xyXG4gICAgICAgIGlmKGlzRXhwaXJlZCl7XHJcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlQ29ubmV4aW9uSW5mbygpO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXNFeHBpcmVkXHJcbiAgICAgIFxyXG4gICAgICB9XHJcbiAgICAgIHJlZGlyZWN0QnlQYXRoKHBhdGg/IDogc3RyaW5nKXtcclxuICAgICAgICB0aGlzLmRpc3BsYXlWaWV3QXMgID0gIXRoaXMuaXNUb2tlbkV4cGlyZWQoKTtcclxuICAgICAgICAgICAgaWYodGhpcy5kaXNwbGF5Vmlld0FzKXtcclxuICAgICAgICAgICAgICAgIHN3aXRjaCAocGF0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgbnVsbCB8fCB1bmRlZmluZWQgfHwgJycgIDogdGhpcy5uYXZpZ2F0ZSgnL2dlL3ZpZXctYXMvaG9tZScpOyBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdjb250YWN0JyA6IHRoaXMubmF2aWdhdGUoJy9nZS92aWV3LWFzL2NvbnRhY3QnKTsgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdtYWludGVuYW5jZScgOiB0aGlzLm5hdmlnYXRlKCcvZ2Uvdmlldy1hcy9tYWludGVuYW5jZScpOyAgYnJlYWs7XHJcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3lzdGVtcycgOiB0aGlzLm5hdmlnYXRlKCcvZ2Uvdmlldy1hcy9zeXN0ZW1zJyk7ICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiB0aGlzLm5hdmlnYXRlKCcvZ2Uvdmlldy1hcy9ob21lJyk7XHJcbiAgICAgICAgICAgICAgICAgIH0gICAgIFxyXG4gICAgICAgICAgICB9ZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHBhdGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBjYXNlIG51bGwgfHwgdW5kZWZpbmVkIHx8ICcnIDogdGhpcy5uYXZpZ2F0ZSgnL2dlJyk7IGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2NvbnRhY3QnIDogdGhpcy5uYXZpZ2F0ZSgnL2dlL2NvbnRhY3QnKTsgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICBjYXNlICdtYWludGVuYW5jZScgOiB0aGlzLm5hdmlnYXRlKCcvZ2UvbWFpbnRlbmFuY2UnKTsgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3N5c3RlbXMnIDogdGhpcy5uYXZpZ2F0ZSgnL2dlL3N5c3RlbXMnKTsgIGJyZWFrO1xyXG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6IHRoaXMubmF2aWdhdGUoJy9nZScpO1xyXG4gICAgICAgICAgICAgICAgICB9ICAgICBcclxuICAgICAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGRlbGV0ZUNvbm5leGlvbkluZm8oKXtcclxuICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKFwidmEtdG9rZW5cIik7XHJcbiAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbShcInZhLWVtYWlsXCIpO1xyXG4gICAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXCJ2YVwiLFwiZmFsc2VcIilcclxuICAgICAgfVxyXG4gICAgICBuYXZpZ2F0ZShyb3V0ZTogc3RyaW5nKTp2b2lke1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtyb3V0ZV0pXHJcbiAgICAgIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImxheW91dC1tZW51XCIgKm5nSWY9XCJ0cmFuc2xhdGVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtZW51XCIgKGNsaWNrKT1cIm1lbnVNZXRob2RlKClcIj4gPGkgY2xhc3M9XCJwaSBwaS1ob21lXCI+PC9pPiB7e3RyYW5zbGF0ZS5ob21lfX08L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtZW51XCIgKGNsaWNrKT1cIm1lbnVNZXRob2RlKCdjb250YWN0JylcIj4gPGkgY2xhc3M9XCJwaSBwaS1waG9uZVwiPjwvaT4ge3t0cmFuc2xhdGUuY29udGFjdH19PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudVwiIChjbGljayk9XCJtZW51TWV0aG9kZSgnc3lzdGVtcycpXCI+IDxpIGNsYXNzPVwicGkgcGktZXllXCI+PC9pPiB7e3RyYW5zbGF0ZS5zeXN0ZW1zfX08L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtZW51XCIgKGNsaWNrKT1cIm1lbnVNZXRob2RlKCdtYWludGVuYW5jZScpXCI+IDxpIGNsYXNzPVwicGkgcGktaW5ib3hcIj48L2k+IHt7dHJhbnNsYXRlLm1haW50ZW5hbmNlfX08L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJtZW51XCIgKGNsaWNrKT1cImxvZ291dCgpXCI+IDxpIGNsYXNzPVwicGkgcGktcG93ZXItb2ZmXCI+PC9pPiB7e3RyYW5zbGF0ZS5sb2dvdXR9fTwvZGl2PlxyXG48L2Rpdj4gIl19
|
@@ -10,6 +10,7 @@ export class ConfirmDialogComponent {
|
|
10
10
|
this.messageService = messageService;
|
11
11
|
this.detailedPmJobLinkedList = [];
|
12
12
|
this.closeConfirmDialog = new EventEmitter();
|
13
|
+
this.language = navigator.language.substr(0, 2).toLowerCase();
|
13
14
|
}
|
14
15
|
rejectDate() {
|
15
16
|
this.closeConfirmDialog.emit(false);
|
@@ -20,10 +21,10 @@ export class ConfirmDialogComponent {
|
|
20
21
|
}
|
21
22
|
}
|
22
23
|
ConfirmDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ConfirmDialogComponent, deps: [{ token: i1.MessageService }], target: i0.ɵɵFactoryTarget.Component });
|
23
|
-
ConfirmDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: ConfirmDialogComponent, selector: "app-confirm-dialog", inputs: { displayConfirmDialog: "displayConfirmDialog", startDateTime: "startDateTime", endDateTime: "endDateTime", globaltranslate: "globaltranslate", translate: "translate", isProposedDate: "isProposedDate", detailedPmJobLinkedList: "detailedPmJobLinkedList" }, outputs: { closeConfirmDialog: "closeConfirmDialog" }, ngImport: i0, template: "<p-dialog [header]=\"globaltranslate.confirmation\" [(visible)]=\"displayConfirmDialog\" [modal]=\"true\" [style]=\"{width: '50vw'}\" (onHide)=\"rejectDate()\" [maximizable]=\"true\" [baseZIndex]=\"10000\" [draggable]=\"false\" [resizable]=\"false\">\r\n \r\n <div>\r\n {{ isProposedDate ? translate.textProposed : translate.textAlternative }}\r\n <div>\r\n <br> <br>{{translate.start}} : <i class=\"pi pi-calendar\"></i> <strong>\r\n {{startDateTime | date:
|
24
|
+
ConfirmDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: ConfirmDialogComponent, selector: "app-confirm-dialog", inputs: { displayConfirmDialog: "displayConfirmDialog", startDateTime: "startDateTime", endDateTime: "endDateTime", globaltranslate: "globaltranslate", translate: "translate", isProposedDate: "isProposedDate", detailedPmJobLinkedList: "detailedPmJobLinkedList" }, outputs: { closeConfirmDialog: "closeConfirmDialog" }, ngImport: i0, template: "<p-dialog [header]=\"globaltranslate.confirmation\" [(visible)]=\"displayConfirmDialog\" [modal]=\"true\" [style]=\"{width: '50vw'}\" (onHide)=\"rejectDate()\" [maximizable]=\"true\" [baseZIndex]=\"10000\" [draggable]=\"false\" [resizable]=\"false\">\r\n \r\n <div>\r\n {{ isProposedDate ? translate.textProposed : translate.textAlternative }}\r\n <div>\r\n <br> <br>{{translate.start}} : <i class=\"pi pi-calendar\"></i> <strong>\r\n {{startDateTime | date: \"EEE dd MMM yyyy\":\"\":language}} </strong> {{translate.from}}: <strong>08:00 </strong>\r\n <div *ngIf=\"detailedPmJobLinkedList.length>0\">\r\n <br> <p style=\"color:rgb(245, 57, 57) ;\"><strong>{{ translate.textWarn }}</strong></p>\r\n <ul>\r\n <strong><li *ngFor=\"let detailedPmJob of detailedPmJobLinkedList\">{{ detailedPmJob.pmJob.workorderNumber }}</li></strong>\r\n \r\n </ul>\r\n </div>\r\n <br><br>\r\n <p>{{translate.infoEmail}}</p>\r\n \r\n </div>\r\n \r\n </div>\r\n\r\n <ng-template pTemplate=\"footer\">\r\n <p-button icon=\"pi pi-times\" (click)=\"rejectDate()\" class=\"annuler\" [label]=\"globaltranslate.no\"></p-button>\r\n <p-button icon=\"pi pi-check\" (click)=\"confirmDate()\" [label]=\"globaltranslate.yes\" class=\"p-button-text\"></p-button>\r\n </ng-template>\r\n</p-dialog>\r\n<p-toast position=\"top-center\"></p-toast>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i3.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "component", type: i4.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass", "ariaLabel"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: i5.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }] });
|
24
25
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ConfirmDialogComponent, decorators: [{
|
25
26
|
type: Component,
|
26
|
-
args: [{ selector: 'app-confirm-dialog', template: "<p-dialog [header]=\"globaltranslate.confirmation\" [(visible)]=\"displayConfirmDialog\" [modal]=\"true\" [style]=\"{width: '50vw'}\" (onHide)=\"rejectDate()\" [maximizable]=\"true\" [baseZIndex]=\"10000\" [draggable]=\"false\" [resizable]=\"false\">\r\n \r\n <div>\r\n {{ isProposedDate ? translate.textProposed : translate.textAlternative }}\r\n <div>\r\n <br> <br>{{translate.start}} : <i class=\"pi pi-calendar\"></i> <strong>\r\n {{startDateTime | date:
|
27
|
+
args: [{ selector: 'app-confirm-dialog', template: "<p-dialog [header]=\"globaltranslate.confirmation\" [(visible)]=\"displayConfirmDialog\" [modal]=\"true\" [style]=\"{width: '50vw'}\" (onHide)=\"rejectDate()\" [maximizable]=\"true\" [baseZIndex]=\"10000\" [draggable]=\"false\" [resizable]=\"false\">\r\n \r\n <div>\r\n {{ isProposedDate ? translate.textProposed : translate.textAlternative }}\r\n <div>\r\n <br> <br>{{translate.start}} : <i class=\"pi pi-calendar\"></i> <strong>\r\n {{startDateTime | date: \"EEE dd MMM yyyy\":\"\":language}} </strong> {{translate.from}}: <strong>08:00 </strong>\r\n <div *ngIf=\"detailedPmJobLinkedList.length>0\">\r\n <br> <p style=\"color:rgb(245, 57, 57) ;\"><strong>{{ translate.textWarn }}</strong></p>\r\n <ul>\r\n <strong><li *ngFor=\"let detailedPmJob of detailedPmJobLinkedList\">{{ detailedPmJob.pmJob.workorderNumber }}</li></strong>\r\n \r\n </ul>\r\n </div>\r\n <br><br>\r\n <p>{{translate.infoEmail}}</p>\r\n \r\n </div>\r\n \r\n </div>\r\n\r\n <ng-template pTemplate=\"footer\">\r\n <p-button icon=\"pi pi-times\" (click)=\"rejectDate()\" class=\"annuler\" [label]=\"globaltranslate.no\"></p-button>\r\n <p-button icon=\"pi pi-check\" (click)=\"confirmDate()\" [label]=\"globaltranslate.yes\" class=\"p-button-text\"></p-button>\r\n </ng-template>\r\n</p-dialog>\r\n<p-toast position=\"top-center\"></p-toast>" }]
|
27
28
|
}], ctorParameters: function () { return [{ type: i1.MessageService }]; }, propDecorators: { displayConfirmDialog: [{
|
28
29
|
type: Input
|
29
30
|
}], startDateTime: [{
|
@@ -41,4 +42,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
|
|
41
42
|
}], closeConfirmDialog: [{
|
42
43
|
type: Output
|
43
44
|
}] } });
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXdmLXRlc3QtbGliL3NyYy9saWIvc2hhcmVkL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F3Zi10ZXN0LWxpYi9zcmMvbGliL3NoYXJlZC9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBUXZFLE1BQU0sT0FBTyxzQkFBc0I7SUFZL0IsWUFBb0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBTHpDLDRCQUF1QixHQUFvQixFQUFFLENBQUM7UUFFN0MsdUJBQWtCLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUMzRCxhQUFRLEdBQVcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBRVgsQ0FBQztJQUl2RCxVQUFVO1FBRU4sSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDM0ksQ0FBQztJQUVELFdBQVc7UUFFUCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7O29IQXpCUSxzQkFBc0I7d0dBQXRCLHNCQUFzQix5WENSbkMsdS9DQTBCeUM7NEZEbEI1QixzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0ksb0JBQW9CO3FHQUtyQixvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFFSSxrQkFBa0I7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgRGV0YWlsZWRQbUpvYiB9IGZyb20gJy4uLy4uL21vZGVscy9kZXRhaWxlZFBtSm9iLm1vZGVsJztcclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC1jb25maXJtLWRpYWxvZycsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY29uZmlybS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY29uZmlybS1kaWFsb2cuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29uZmlybURpYWxvZ0NvbXBvbmVudCAge1xyXG4gICAgQElucHV0KCkgZGlzcGxheUNvbmZpcm1EaWFsb2chOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgc3RhcnREYXRlVGltZSE6IGFueTtcclxuICAgIEBJbnB1dCgpIGVuZERhdGVUaW1lITogYW55O1xyXG4gICAgQElucHV0KCkgZ2xvYmFsdHJhbnNsYXRlITogYW55O1xyXG4gICAgQElucHV0KCkgdHJhbnNsYXRlITogYW55O1xyXG4gICAgQElucHV0KCkgaXNQcm9wb3NlZERhdGUhOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgZGV0YWlsZWRQbUpvYkxpbmtlZExpc3Q6IERldGFpbGVkUG1Kb2JbXSA9IFtdO1xyXG5cclxuICAgIEBPdXRwdXQoKSBjbG9zZUNvbmZpcm1EaWFsb2cgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgICBsYW5ndWFnZTogc3RyaW5nID0gbmF2aWdhdG9yLmxhbmd1YWdlLnN1YnN0cigwLCAyKS50b0xvd2VyQ2FzZSgpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbWVzc2FnZVNlcnZpY2UgOk1lc3NhZ2VTZXJ2aWNlKSB7IH1cclxuXHJcblxyXG5cclxuICAgIHJlamVjdERhdGUoKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuY2xvc2VDb25maXJtRGlhbG9nLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6IHRoaXMuZ2xvYmFsdHJhbnNsYXRlLnN1bW1hcnlSZWplY3QsIGRldGFpbDogdGhpcy5nbG9iYWx0cmFuc2xhdGUuZGV0YWlsUmVqZWN0IH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbmZpcm1EYXRlKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmNsb3NlQ29uZmlybURpYWxvZy5lbWl0KHRydWUpO1xyXG4gICAgfVxyXG5cclxufVxyXG4iLCI8cC1kaWFsb2cgW2hlYWRlcl09XCJnbG9iYWx0cmFuc2xhdGUuY29uZmlybWF0aW9uXCIgWyh2aXNpYmxlKV09XCJkaXNwbGF5Q29uZmlybURpYWxvZ1wiIFttb2RhbF09XCJ0cnVlXCIgW3N0eWxlXT1cInt3aWR0aDogJzUwdncnfVwiIChvbkhpZGUpPVwicmVqZWN0RGF0ZSgpXCIgW21heGltaXphYmxlXT1cInRydWVcIiBbYmFzZVpJbmRleF09XCIxMDAwMFwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIiBbcmVzaXphYmxlXT1cImZhbHNlXCI+XHJcbiAgIFxyXG4gICAgPGRpdj5cclxuICAgICAgICB7eyBpc1Byb3Bvc2VkRGF0ZSA/IHRyYW5zbGF0ZS50ZXh0UHJvcG9zZWQgOiB0cmFuc2xhdGUudGV4dEFsdGVybmF0aXZlIH19XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGJyPiA8YnI+e3t0cmFuc2xhdGUuc3RhcnR9fSA6IDxpIGNsYXNzPVwicGkgcGktY2FsZW5kYXJcIj48L2k+ICZuYnNwOyA8c3Ryb25nPlxyXG4gICAgICAgICAgICAgICAge3tzdGFydERhdGVUaW1lIHwgZGF0ZTogXCJFRUUgZGQgTU1NIHl5eXlcIjpcIlwiOmxhbmd1YWdlfX0gPC9zdHJvbmc+ICZuYnNwOyB7e3RyYW5zbGF0ZS5mcm9tfX06IDxzdHJvbmc+MDg6MDAgPC9zdHJvbmc+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkZXRhaWxlZFBtSm9iTGlua2VkTGlzdC5sZW5ndGg+MFwiPlxyXG4gICAgICAgICAgICAgICAgPGJyPiA8cCBzdHlsZT1cImNvbG9yOnJnYigyNDUsIDU3LCA1NykgO1wiPjxzdHJvbmc+e3sgdHJhbnNsYXRlLnRleHRXYXJuIH19PC9zdHJvbmc+PC9wPlxyXG4gICAgICAgICAgICAgICAgPHVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzdHJvbmc+PGxpICpuZ0Zvcj1cImxldCBkZXRhaWxlZFBtSm9iIG9mIGRldGFpbGVkUG1Kb2JMaW5rZWRMaXN0XCI+e3sgZGV0YWlsZWRQbUpvYi5wbUpvYi53b3Jrb3JkZXJOdW1iZXIgfX08L2xpPjwvc3Ryb25nPlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxicj48YnI+XHJcbiAgICAgICAgICAgIDxwPnt7dHJhbnNsYXRlLmluZm9FbWFpbH19PC9wPlxyXG4gICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgPHAtYnV0dG9uIGljb249XCJwaSBwaS10aW1lc1wiIChjbGljayk9XCJyZWplY3REYXRlKClcIiBjbGFzcz1cImFubnVsZXJcIiBbbGFiZWxdPVwiZ2xvYmFsdHJhbnNsYXRlLm5vXCI+PC9wLWJ1dHRvbj5cclxuICAgICAgICA8cC1idXR0b24gaWNvbj1cInBpIHBpLWNoZWNrXCIgKGNsaWNrKT1cImNvbmZpcm1EYXRlKClcIiBbbGFiZWxdPVwiZ2xvYmFsdHJhbnNsYXRlLnllc1wiIGNsYXNzPVwicC1idXR0b24tdGV4dFwiPjwvcC1idXR0b24+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG48L3AtZGlhbG9nPlxyXG48cC10b2FzdCBwb3NpdGlvbj1cInRvcC1jZW50ZXJcIj48L3AtdG9hc3Q+Il19
|
package/esm2020/lib/shared/confirmed-date-information/confirmed-date-information.component.mjs
CHANGED
@@ -7,6 +7,7 @@ import * as i4 from "primeng/dialog";
|
|
7
7
|
export class ConfirmedDateInformationComponent {
|
8
8
|
constructor() {
|
9
9
|
this.closeConfirmedDateInfo = new EventEmitter();
|
10
|
+
this.language = navigator.language.substr(0, 2).toLowerCase();
|
10
11
|
}
|
11
12
|
ngOnDestroy() {
|
12
13
|
// this.displayConfirmedDateInfos = false;
|
@@ -16,10 +17,10 @@ export class ConfirmedDateInformationComponent {
|
|
16
17
|
}
|
17
18
|
}
|
18
19
|
ConfirmedDateInformationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ConfirmedDateInformationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
19
|
-
ConfirmedDateInformationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: ConfirmedDateInformationComponent, selector: "app-confirmed-date-information", inputs: { displayConfirmedDateInfos: "displayConfirmedDateInfos", startDateTime: "startDateTime", endDateTime: "endDateTime", globaltranslate: "globaltranslate", translate: "translate", moreDates: "moreDates" }, outputs: { closeConfirmedDateInfo: "closeConfirmedDateInfo" }, ngImport: i0, template: "<p-dialog [header]=\"globaltranslate.information\" [(visible)]=\"displayConfirmedDateInfos\" [modal]=\"true\" [style]=\"{width: '50vw'}\" (onHide)=\"confirmDate()\" [maximizable]=\"true\" [baseZIndex]=\"10000\" [draggable]=\"false\" [resizable]=\"false\">\r\n <i class=\"pi pi-check icon-check\"></i>\r\n\r\n \r\n <div *ngIf=\"moreDates\" style=\"text-align:center ;\">\r\n <br><br>\r\n {{translate.textMoreDates}}\r\n <br><br>\r\n\r\n </div>\r\n <div *ngIf=\"!moreDates\">\r\n <div class=\"text-center\">\r\n <p> {{translate.text }} <br> {{translate.start}} : <i class=\"pi pi-calendar\"></i> <strong>\r\n {{startDateTime |
|
20
|
+
ConfirmedDateInformationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.10", type: ConfirmedDateInformationComponent, selector: "app-confirmed-date-information", inputs: { displayConfirmedDateInfos: "displayConfirmedDateInfos", startDateTime: "startDateTime", endDateTime: "endDateTime", globaltranslate: "globaltranslate", translate: "translate", moreDates: "moreDates" }, outputs: { closeConfirmedDateInfo: "closeConfirmedDateInfo" }, ngImport: i0, template: "<p-dialog [header]=\"globaltranslate.information\" [(visible)]=\"displayConfirmedDateInfos\" [modal]=\"true\" [style]=\"{width: '50vw'}\" (onHide)=\"confirmDate()\" [maximizable]=\"true\" [baseZIndex]=\"10000\" [draggable]=\"false\" [resizable]=\"false\">\r\n <i class=\"pi pi-check icon-check\"></i>\r\n\r\n \r\n <div *ngIf=\"moreDates\" style=\"text-align:center ;\">\r\n <br><br>\r\n {{translate.textMoreDates}}\r\n <br><br>\r\n\r\n </div>\r\n <div *ngIf=\"!moreDates\">\r\n <div class=\"text-center\">\r\n <p> {{translate.text }} <br> {{translate.start}} : <i class=\"pi pi-calendar\"></i> <strong>\r\n {{startDateTime | date: \"EEE dd MMM yyyy\":\"\":language}}</strong> <br> {{translate.from}}: <strong>08:00 </strong> </p>\r\n </div>\r\n <br><br>\r\n <p>{{translate.infoEmail}}</p>\r\n\r\n </div>\r\n \r\n\r\n <ng-template pTemplate=\"footer\">\r\n <p-button icon=\"pi pi-times \" (click)=\"confirmDate()\" label=\"Close\" class=\" text-center d-block\"></p-button>\r\n </ng-template>\r\n</p-dialog>", styles: ["p-dialog p{font-size:14px;line-height:34px;margin-top:30px}p-dialog .icon-check{text-align:center;color:#fff;background:var(--primarycolor);width:80px;height:80px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:30px;font-weight:700;margin:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "style", "styleClass", "badgeClass", "ariaLabel"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: i4.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] });
|
20
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImport: i0, type: ConfirmedDateInformationComponent, decorators: [{
|
21
22
|
type: Component,
|
22
|
-
args: [{ selector: 'app-confirmed-date-information', template: "<p-dialog [header]=\"globaltranslate.information\" [(visible)]=\"displayConfirmedDateInfos\" [modal]=\"true\" [style]=\"{width: '50vw'}\" (onHide)=\"confirmDate()\" [maximizable]=\"true\" [baseZIndex]=\"10000\" [draggable]=\"false\" [resizable]=\"false\">\r\n <i class=\"pi pi-check icon-check\"></i>\r\n\r\n \r\n <div *ngIf=\"moreDates\" style=\"text-align:center ;\">\r\n <br><br>\r\n {{translate.textMoreDates}}\r\n <br><br>\r\n\r\n </div>\r\n <div *ngIf=\"!moreDates\">\r\n <div class=\"text-center\">\r\n <p> {{translate.text }} <br> {{translate.start}} : <i class=\"pi pi-calendar\"></i> <strong>\r\n {{startDateTime |
|
23
|
+
args: [{ selector: 'app-confirmed-date-information', template: "<p-dialog [header]=\"globaltranslate.information\" [(visible)]=\"displayConfirmedDateInfos\" [modal]=\"true\" [style]=\"{width: '50vw'}\" (onHide)=\"confirmDate()\" [maximizable]=\"true\" [baseZIndex]=\"10000\" [draggable]=\"false\" [resizable]=\"false\">\r\n <i class=\"pi pi-check icon-check\"></i>\r\n\r\n \r\n <div *ngIf=\"moreDates\" style=\"text-align:center ;\">\r\n <br><br>\r\n {{translate.textMoreDates}}\r\n <br><br>\r\n\r\n </div>\r\n <div *ngIf=\"!moreDates\">\r\n <div class=\"text-center\">\r\n <p> {{translate.text }} <br> {{translate.start}} : <i class=\"pi pi-calendar\"></i> <strong>\r\n {{startDateTime | date: \"EEE dd MMM yyyy\":\"\":language}}</strong> <br> {{translate.from}}: <strong>08:00 </strong> </p>\r\n </div>\r\n <br><br>\r\n <p>{{translate.infoEmail}}</p>\r\n\r\n </div>\r\n \r\n\r\n <ng-template pTemplate=\"footer\">\r\n <p-button icon=\"pi pi-times \" (click)=\"confirmDate()\" label=\"Close\" class=\" text-center d-block\"></p-button>\r\n </ng-template>\r\n</p-dialog>", styles: ["p-dialog p{font-size:14px;line-height:34px;margin-top:30px}p-dialog .icon-check{text-align:center;color:#fff;background:var(--primarycolor);width:80px;height:80px;display:flex;justify-content:center;align-items:center;border-radius:50%;font-size:30px;font-weight:700;margin:auto}\n"] }]
|
23
24
|
}], ctorParameters: function () { return []; }, propDecorators: { displayConfirmedDateInfos: [{
|
24
25
|
type: Input
|
25
26
|
}], startDateTime: [{
|
@@ -35,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
|
|
35
36
|
}], closeConfirmedDateInfo: [{
|
36
37
|
type: Output
|
37
38
|
}] } });
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybWVkLWRhdGUtaW5mb3JtYXRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXdmLXRlc3QtbGliL3NyYy9saWIvc2hhcmVkL2NvbmZpcm1lZC1kYXRlLWluZm9ybWF0aW9uL2NvbmZpcm1lZC1kYXRlLWluZm9ybWF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F3Zi10ZXN0LWxpYi9zcmMvbGliL3NoYXJlZC9jb25maXJtZWQtZGF0ZS1pbmZvcm1hdGlvbi9jb25maXJtZWQtZGF0ZS1pbmZvcm1hdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFPbEYsTUFBTSxPQUFPLGlDQUFpQztJQVUxQztRQUhVLDJCQUFzQixHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFDL0QsYUFBUSxHQUFXLFNBQVMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUVqRCxDQUFDO0lBRWpCLFdBQVc7UUFDVCwyQ0FBMkM7SUFDN0MsQ0FBQztJQUdELFdBQVc7UUFFUCxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7OytIQXBCUSxpQ0FBaUM7bUhBQWpDLGlDQUFpQyx5VkNQOUMsOGxDQXdCVzs0RkRqQkUsaUNBQWlDO2tCQUw3QyxTQUFTOytCQUNJLGdDQUFnQzswRUFLakMseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxzQkFBc0I7c0JBQS9CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYXBwLWNvbmZpcm1lZC1kYXRlLWluZm9ybWF0aW9uJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb25maXJtZWQtZGF0ZS1pbmZvcm1hdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jb25maXJtZWQtZGF0ZS1pbmZvcm1hdGlvbi5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb25maXJtZWREYXRlSW5mb3JtYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kgIHtcclxuICAgIEBJbnB1dCgpIGRpc3BsYXlDb25maXJtZWREYXRlSW5mb3MhOiBib29sZWFuO1xyXG4gICAgQElucHV0KCkgc3RhcnREYXRlVGltZSE6IGFueTtcclxuICAgIEBJbnB1dCgpIGVuZERhdGVUaW1lITogYW55O1xyXG4gICAgQElucHV0KCkgZ2xvYmFsdHJhbnNsYXRlITogYW55O1xyXG4gICAgQElucHV0KCkgdHJhbnNsYXRlITogYW55O1xyXG4gICAgQElucHV0KCkgbW9yZURhdGVzITogYm9vbGVhbjtcclxuICAgIEBPdXRwdXQoKSBjbG9zZUNvbmZpcm1lZERhdGVJbmZvID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gICAgbGFuZ3VhZ2U6IHN0cmluZyA9IG5hdmlnYXRvci5sYW5ndWFnZS5zdWJzdHIoMCwgMikudG9Mb3dlckNhc2UoKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAvLyAgdGhpcy5kaXNwbGF5Q29uZmlybWVkRGF0ZUluZm9zID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGNvbmZpcm1EYXRlKClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmNsb3NlQ29uZmlybWVkRGF0ZUluZm8uZW1pdCh0cnVlKTtcclxuICAgIH1cclxuXHJcbn1cclxuIiwiPHAtZGlhbG9nIFtoZWFkZXJdPVwiZ2xvYmFsdHJhbnNsYXRlLmluZm9ybWF0aW9uXCIgWyh2aXNpYmxlKV09XCJkaXNwbGF5Q29uZmlybWVkRGF0ZUluZm9zXCIgW21vZGFsXT1cInRydWVcIiBbc3R5bGVdPVwie3dpZHRoOiAnNTB2dyd9XCIgKG9uSGlkZSk9XCJjb25maXJtRGF0ZSgpXCIgW21heGltaXphYmxlXT1cInRydWVcIiBbYmFzZVpJbmRleF09XCIxMDAwMFwiIFtkcmFnZ2FibGVdPVwiZmFsc2VcIiBbcmVzaXphYmxlXT1cImZhbHNlXCI+XHJcbiAgICA8aSBjbGFzcz1cInBpIHBpLWNoZWNrIGljb24tY2hlY2tcIj48L2k+XHJcblxyXG4gICBcclxuICAgIDxkaXYgKm5nSWY9XCJtb3JlRGF0ZXNcIiBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyIDtcIj5cclxuICAgICAgICA8YnI+PGJyPlxyXG4gICAgICAgIHt7dHJhbnNsYXRlLnRleHRNb3JlRGF0ZXN9fVxyXG4gICAgICAgIDxicj48YnI+XHJcblxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiIW1vcmVEYXRlc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8cD4ge3t0cmFuc2xhdGUudGV4dCB9fSA8YnI+IHt7dHJhbnNsYXRlLnN0YXJ0fX0gOiA8aSBjbGFzcz1cInBpIHBpLWNhbGVuZGFyXCI+PC9pPiAmbmJzcDsgPHN0cm9uZz5cclxuICAgICAgICAgICAge3tzdGFydERhdGVUaW1lIHwgZGF0ZTogXCJFRUUgZGQgTU1NIHl5eXlcIjpcIlwiOmxhbmd1YWdlfX08L3N0cm9uZz4gPGJyPiB7e3RyYW5zbGF0ZS5mcm9tfX06IDxzdHJvbmc+MDg6MDAgPC9zdHJvbmc+IDwvcD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8YnI+PGJyPlxyXG4gICAgICAgIDxwPnt7dHJhbnNsYXRlLmluZm9FbWFpbH19PC9wPlxyXG5cclxuICAgIDwvZGl2PlxyXG4gICBcclxuXHJcbiAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiZm9vdGVyXCI+XHJcbiAgICAgICAgPHAtYnV0dG9uIGljb249XCJwaSBwaS10aW1lcyBcIiAoY2xpY2spPVwiY29uZmlybURhdGUoKVwiIGxhYmVsPVwiQ2xvc2VcIiBjbGFzcz1cIiB0ZXh0LWNlbnRlciBkLWJsb2NrXCI+PC9wLWJ1dHRvbj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbjwvcC1kaWFsb2c+Il19
|
@@ -68,7 +68,6 @@ export class ContactComponent {
|
|
68
68
|
}
|
69
69
|
detailedPmJob.reasonContact = ReasonContact.Contact;
|
70
70
|
detailedPmJob.futureStatus = this.slectsFutureStatus(this.form.value.reason.code);
|
71
|
-
console.log();
|
72
71
|
this.sendForm.emit(detailedPmJob);
|
73
72
|
}
|
74
73
|
slectsFutureStatus(status) {
|
@@ -109,7 +108,6 @@ export class ContactComponent {
|
|
109
108
|
});
|
110
109
|
}
|
111
110
|
selectPM(selectedSystem) {
|
112
|
-
//console.log(selectedSystem)
|
113
111
|
this.systemContainPm = true;
|
114
112
|
if (selectedSystem === undefined) {
|
115
113
|
return;
|
@@ -159,4 +157,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.10", ngImpo
|
|
159
157
|
}], sendForm: [{
|
160
158
|
type: Output
|
161
159
|
}] } });
|
162
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hd2YtdGVzdC1saWIvc3JjL2xpYi9zaGFyZWQvY29udGFjdC9jb250YWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F3Zi10ZXN0LWxpYi9zcmMvbGliL3NoYXJlZC9jb250YWN0L2NvbnRhY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBRU4sS0FBSyxFQUNMLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFRM0MsTUFBTSxPQUFPLGdCQUFnQjtJQWdCM0IsWUFDVSxXQUF3QixFQUN4QixjQUE4QixFQUM5QixRQUFrQjtRQUZsQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWxCbkIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFDdkIsb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFHOUIsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBTTNELG9C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Q0FBQzthQUNwQjtTQUNGO0lBQ0gsQ0FBQzs7OEdBaEpVLGdCQUFnQjtrR0FBaEIsZ0JBQWdCLHFPQUZoQixDQUFDLGNBQWMsRUFBQyxRQUFRLENBQUMsK0NDdkJ0Qyx1b1ZBd0lBOzRGRC9HYSxnQkFBZ0I7a0JBTjVCLFNBQVM7K0JBQ0UsYUFBYSxhQUdaLENBQUMsY0FBYyxFQUFDLFFBQVEsQ0FBQztzSkFHM0IsT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksUUFBUTtzQkFBakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIE91dHB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgSW5wdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgRGV0YWlsZWRQbUpvYiB9IGZyb20gJy4uLy4uL21vZGVscy9kZXRhaWxlZFBtSm9iLm1vZGVsJztcclxuaW1wb3J0IHsgRXZlbnRTdGF0dXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvZXZlbnRTdGF0dXMnO1xyXG5pbXBvcnQgeyBQbUpvYiB9IGZyb20gJy4uLy4uL21vZGVscy9wbUpvYi5tb2RlbCc7XHJcbmltcG9ydCB7IFBtSm9iU3RhdHVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3BtSm9iU3RhdHVzJztcclxuaW1wb3J0IHsgUmVhc29uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3JlYXNvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFJlYXNvbkNvZGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvcmVhc29uQ29kZSc7XHJcbmltcG9ydCB7IFJlYXNvbkNvbnRhY3QgfSBmcm9tICcuLi8uLi9tb2RlbHMvcmVhc29uQ29udGFjdCc7XHJcbmltcG9ydCB7IFN5c3RlbSB9IGZyb20gJy4uLy4uL21vZGVscy9zeXN0ZW0nO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F3Zi1jb250YWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29udGFjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29udGFjdC5jb21wb25lbnQuY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2UsRGF0ZVBpcGVdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udGFjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHN1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHN5c3RlbXM6IFN5c3RlbVtdID0gW107XHJcbiAgQElucHV0KCkgc2VsZWN0ZWRTeXN0ZW1zOiBTeXN0ZW1bXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHRyYW5zbGF0ZSE6IGFueTtcclxuICBASW5wdXQoKSByZWFzb25zITogUmVhc29uW107XHJcbiAgQE91dHB1dCgpIHNlbmRGb3JtOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBmb3JtITogRm9ybUdyb3VwO1xyXG4gIHNlbGVjdGVkUmVhc29uITogYW55O1xyXG4gIHNlbGVjdGVkU3lzdGVtITogU3lzdGVtO1xyXG4gIHNlbGVjdGVkUG0hOiBhbnk7XHJcbiAgcG1Kb2JzITogYW55W107XHJcbiAgc3lzdGVtQ29udGFpblBtID0gdHJ1ZTtcclxuXHJcbiAgc2hvd1BtID0gZmFsc2U7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcclxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGVcclxuXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcclxuICAgIHRoaXMucmVhc29ucyA9IHRoaXMucmVhc29ucy5maWx0ZXIoXHJcbiAgICAgICh4KSA9PiB4LmNvZGUgPT0gUmVhc29uQ29kZS5TREkgfHwgeC5jb2RlID09IFJlYXNvbkNvZGUuT1RIXHJcbiAgICApO1xyXG4gICAgdGhpcy5zZWxlY3RQTSh0aGlzLnNlbGVjdGVkU3lzdGVtKTtcclxuICAgIHRoaXMubG9hZEZvcm0oKTtcclxuICB9XHJcblxyXG4gIC8vIGNvbnZlbmllbmNlIGdldHRlciBmb3IgZWFzeSBhY2Nlc3MgdG8gZm9ybSBmaWVsZHNcclxuICBnZXQgZigpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHM7XHJcbiAgfVxyXG5cclxuICBwcmV2ZW50U3RyaW5nS2V5cHJlc3MoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKFxyXG4gICAgICBpc05hTihOdW1iZXIoU3RyaW5nLmZyb21DaGFyQ29kZShldmVudC5jaGFyQ29kZSkpKSB8fFxyXG4gICAgICBTdHJpbmcuZnJvbUNoYXJDb2RlKGV2ZW50LmNoYXJDb2RlKSA9PT0gJyAnXHJcbiAgICApIHtcclxuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgdGhpcy5zdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgXHJcbiAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogdGhpcy50cmFuc2xhdGUuc3VtbWFyeUVycm9yLCBkZXRhaWw6IHRoaXMudHJhbnNsYXRlLmludmFsaWRGb3JtIH0pO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGRldGFpbGVkUG1Kb2IgPSB7fSBhcyBEZXRhaWxlZFBtSm9iO1xyXG4gICAgZGV0YWlsZWRQbUpvYi5uYW1lID0gdGhpcy5mb3JtLnZhbHVlLm5hbWU7XHJcbiAgICBkZXRhaWxlZFBtSm9iLnBob25lID0gdGhpcy5mb3JtLnZhbHVlLnBob25lO1xyXG4gICAgZGV0YWlsZWRQbUpvYi5leHRlbnRpb25PckNvbW1lbnQgPSB0aGlzLmZvcm0udmFsdWUuZXh0ZW50aW9uT3JDb21tZW50O1xyXG4gICAgZGV0YWlsZWRQbUpvYi5lbWFpbCA9IHRoaXMuZm9ybS52YWx1ZS5lbWFpbDtcclxuICAgIGRldGFpbGVkUG1Kb2IucmVhc29uID0gdGhpcy5mb3JtLnZhbHVlLnJlYXNvbi5uYW1lO1xyXG4gICAgZGV0YWlsZWRQbUpvYi5jb21tZW50ID0gdGhpcy5mb3JtLnZhbHVlLm1lc3NhZ2U7XHJcbiAgICBpZiAodGhpcy5mb3JtLnZhbHVlLnBtcyAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGRldGFpbGVkUG1Kb2IucG1Kb2IgPSB0aGlzLmZvcm0udmFsdWUucG1zO1xyXG4gICAgfVxyXG4gICAgZGV0YWlsZWRQbUpvYi5zeXN0ZW1OYW1lID0gdGhpcy5zZWxlY3RlZFN5c3RlbS5uYW1lO1xyXG4gICAgZGV0YWlsZWRQbUpvYi5zeXN0ZW1JZCA9IHRoaXMuc2VsZWN0ZWRTeXN0ZW0uc3lzdGVtSWQ7XHJcbiAgICBkZXRhaWxlZFBtSm9iLnNpdGVOYW1lID0gdGhpcy5zZWxlY3RlZFN5c3RlbS5zaXRlTmFtZTtcclxuICAgIGRldGFpbGVkUG1Kb2Iuc2l0ZUNpdHkgPSB0aGlzLnNlbGVjdGVkU3lzdGVtLnNpdGVDaXR5O1xyXG4gICAgZGV0YWlsZWRQbUpvYi5zaXRlUG9zdGFsQ29kZSA9IHRoaXMuc2VsZWN0ZWRTeXN0ZW0uc2l0ZVBvc3RhbENvZGU7XHJcbiAgICBkZXRhaWxlZFBtSm9iLnRvVXBkYXRlID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmZvcm0udmFsdWUucG1zICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZGV0YWlsZWRQbUpvYi5zZWxlY3RlZERhdGUgPSBkZXRhaWxlZFBtSm9iLnBtSm9iLnN0YXJ0RGF0ZVRpbWU7XHJcbiAgICB9XHJcbiAgICBkZXRhaWxlZFBtSm9iLnJlYXNvbkNvbnRhY3QgPSBSZWFzb25Db250YWN0LkNvbnRhY3Q7XHJcbiAgICBkZXRhaWxlZFBtSm9iLmZ1dHVyZVN0YXR1cyA9IHRoaXMuc2xlY3RzRnV0dXJlU3RhdHVzKFxyXG4gICAgICB0aGlzLmZvcm0udmFsdWUucmVhc29uLmNvZGVcclxuICAgICk7XHJcbiAgICBjb25zb2xlLmxvZygpO1xyXG4gICAgdGhpcy5zZW5kRm9ybS5lbWl0KGRldGFpbGVkUG1Kb2IpO1xyXG4gIH1cclxuXHJcbiAgc2xlY3RzRnV0dXJlU3RhdHVzKHN0YXR1czogYW55KSB7XHJcbiAgICBzd2l0Y2ggKHN0YXR1cykge1xyXG4gICAgICBjYXNlIFJlYXNvbkNvZGUuTVBNOlxyXG4gICAgICAgIHJldHVybiBQbUpvYlN0YXR1cy5XQUlUSU5HO1xyXG4gICAgICBjYXNlIFJlYXNvbkNvZGUuUlBNOlxyXG4gICAgICAgIHJldHVybiBQbUpvYlN0YXR1cy5SRVBPUlRFRDtcclxuICAgICAgY2FzZSBSZWFzb25Db2RlLkNQTTpcclxuICAgICAgICByZXR1cm4gUG1Kb2JTdGF0dXMuQ0FOQ0VMTEVEO1xyXG4gICAgICBjYXNlIFJlYXNvbkNvZGUuU0RJOlxyXG4gICAgICAgIHJldHVybiBQbUpvYlN0YXR1cy5ERVNJTlNUQUxMRUQ7XHJcbiAgICAgIGNhc2UgUmVhc29uQ29kZS5PVEg6XHJcbiAgICAgICAgcmV0dXJuIFBtSm9iU3RhdHVzLk9USEVSO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiAnRXJyZXVyJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxvYWRGb3JtKCkge1xyXG4gICAgbGV0IG5hbWUgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCd1c2VyTmFtZScpIGFzIHN0cmluZztcclxuICAgIGxldCBlbWFpbCA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2VtYWlsJykgYXMgc3RyaW5nO1xyXG4gICAgbGV0IHBob25lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnbW9iaWxlUGhvbmVOdW1iZXInKSBhcyBzdHJpbmc7XHJcbiAgICB0aGlzLmZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgbmFtZTogW1xyXG4gICAgICAgIG5hbWUgIT09ICdudWxsJyA/IG5hbWUgOiAnJyxcclxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMyldLFxyXG4gICAgICBdLFxyXG4gICAgICBlbWFpbDogW1xyXG4gICAgICAgIGVtYWlsICE9PSAnbnVsbCcgPyBlbWFpbCA6ICcnLFxyXG4gICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXSxcclxuICAgICAgXSxcclxuICAgICAgcGhvbmU6IFtwaG9uZSAhPT0gJ251bGwnID8gcGhvbmUgOiAnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgZXh0ZW50aW9uT3JDb21tZW50OiBbJyddLFxyXG4gICAgICByZWFzb246IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgc3lzdGVtczogW1tdLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxyXG4gICAgICBwbXM6IFtbXSwgdGhpcy5zaG93UG0gPyBbXSA6IFtdXSxcclxuICAgICAgbWVzc2FnZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMTUpXV0sXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFBNKHNlbGVjdGVkU3lzdGVtOiBhbnkpIHtcclxuICAgIC8vY29uc29sZS5sb2coc2VsZWN0ZWRTeXN0ZW0pXHJcbiAgICB0aGlzLnN5c3RlbUNvbnRhaW5QbSA9IHRydWU7XHJcbiAgICBpZiAoc2VsZWN0ZWRTeXN0ZW0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRTeXN0ZW0ucG1Kb2JzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuc2hvd1BtID0gZmFsc2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN5c3RlbSA9IHNlbGVjdGVkU3lzdGVtO1xyXG4gICAgICAgIHRoaXMucG1Kb2JzID0gc2VsZWN0ZWRTeXN0ZW0ucG1Kb2JzO1xyXG4gICAgICAgIHRoaXMucG1Kb2JzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICAgIGlmIChlbGVtZW50LnN0YXJ0RGF0ZVRpbWUpIHtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQuY2FzZVR5cGUgPT0gJ1BsYW5uZWQgTWFpbnRlbmFuY2UnKSB7XHJcbiAgICAgICAgICAgICAgZWxlbWVudC53b2tvcmRlckRldGFpbHMgPSBlbGVtZW50LndvcmtvcmRlck51bWJlciArICcgLSAnICsgIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGVsZW1lbnQuc3RhcnREYXRlVGltZSwgJ2RkIE1NTSB5eXl5JykgKyAnIC0gJyArIHRoaXMudHJhbnNsYXRlLnR5cGVQbGFubmVkO1xyXG4gICAgICAgICAgICB9ZWxzZSBpZihlbGVtZW50LmNhc2VUeXBlID09XCJRQVJBXCIpe1xyXG4gICAgICAgICAgICAgIGVsZW1lbnQud29rb3JkZXJEZXRhaWxzID0gZWxlbWVudC53b3Jrb3JkZXJOdW1iZXIgKyAnIC0gJyArICB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShlbGVtZW50LnN0YXJ0RGF0ZVRpbWUsICdkZCBNTU0geXl5eScpICsgJyAtICcgKyB0aGlzLnRyYW5zbGF0ZS50eXBlUUFSQTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgIGVsZW1lbnQud29rb3JkZXJEZXRhaWxzID0gZWxlbWVudC53b3Jrb3JkZXJOdW1iZXIgKyBcIiAtIFwiKyAgdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZWxlbWVudC5zdGFydERhdGVUaW1lLCAnZGQgTU1NIHl5eXknKTsgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNob3dQbSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cInRyYW5zbGF0ZSAmJiByZWFzb25zIFwiPlxyXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJwdC0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFwcC1zZWN0aW9uLWhlYWRlci1pbWdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBwdC00XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgyPnt7dHJhbnNsYXRlLnRpdGxlfX0gPC9oMj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwicHktNSBiYWNrZ3JvdW5kLWxpZ2h0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBweC1sZy01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWNvbnRhY3QxMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXAtY29udGFjdDEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKm5nSWY9XCJmb3JtICYmIHN5c3RlbXMgJiYgcmVhc29uc1wiIGNsYXNzPVwiY29udGFjdDEwMC1mb3JtIHZhbGlkYXRlLWZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbnRhY3QxMDAtZm9ybS10aXRsZVwiPnt7dHJhbnNsYXRlLnRpdGxlfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtMTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUucGxhY2Vob2xkZXJOYW1lfX08L3NwYW4+IDxzcGFuIGNsYXNzPVwicmVxdWlzXCI+KiA8L3NwYW4+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGUucGxhY2Vob2xkZXJOYW1lXCIgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYubmFtZS5pbnZhbGlkIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZi5uYW1lLmVycm9yc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1aXNcIiAqbmdJZj1cImYubmFtZS5lcnJvcnMucmVxdWlyZWRcIj57e3RyYW5zbGF0ZS5yZXF1aXJlZE5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1aXNcIiAqbmdJZj1cImYubmFtZS5lcnJvcnMubWlubGVuZ3RoXCI+e3t0cmFuc2xhdGUucmVxdWlyZWROYW1lTWlufX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1ncmlkIHAtZmx1aWQgcC1tdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMiBwLW1kLTEyIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnBsYWNlaG9sZGVyRW1haWx9fTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJyZXF1aXNcIj4qPC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnBsYWNlaG9sZGVyRW1haWxcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYuZW1haWwuaW52YWxpZCB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYuZW1haWwuZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5lbWFpbC5lcnJvcnMucmVxdWlyZWRcIj57e3RyYW5zbGF0ZS5yZXF1aXJlZEVtYWlsfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLmVtYWlsLmVycm9ycy5lbWFpbFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkRW1haWxGb3JtYXR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnBsYWNlaG9sZGVyUGhvbmV9fTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJyZXF1aXNcIj4qPC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnBsYWNlaG9sZGVyUGhvbmVcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwicGhvbmVcIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYucGhvbmUuaW52YWxpZCB9XCIgKGtleXByZXNzKT1cInByZXZlbnRTdHJpbmdLZXlwcmVzcygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYucGhvbmUuZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5waG9uZS5lcnJvcnMucmVxdWlyZWRcIj57e3RyYW5zbGF0ZS5yZXF1aXJlZFBob25lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnBsYWNlaG9sZGVyZXh0ZW50aW9uT3JDb21tZW50fX08L3NwYW4+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGUucGxhY2Vob2xkZXJleHRlbnRpb25PckNvbW1lbnRcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwiZXh0ZW50aW9uT3JDb21tZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtMTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUuUmVsYXRlZFN5c3RlbXN9fTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJyZXF1aXNcIj4qPC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIChjbGljayk9XCJzZWxlY3RQTShzZWxlY3RlZFN5c3RlbSlcIiBbb3B0aW9uc109XCJzeXN0ZW1zXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0ZS5zZWxlY3RTeXN0ZW1cIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkU3lzdGVtXCIgW29wdGlvbkxhYmVsXT1cIiduYW1lJ1wiIGZvcm1Db250cm9sTmFtZT1cInN5c3RlbXNcIiAgb3B0aW9uRGlzYWJsZWQ9XCJpbmFjdGl2ZVwiIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZi5zeXN0ZW1zLmludmFsaWQgfVwiPjwvcC1kcm9wZG93bj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYuc3lzdGVtcy5lcnJvcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLnN5c3RlbXMuZXJyb3JzLnJlcXVpcmVkXCI+e3t0cmFuc2xhdGUucmVxdWlyZWRTeXN0ZW19fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1ncmlkIHAtZmx1aWQgcC1tdC0yXCIgKm5nSWY9XCJzaG93UG1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtMTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUuUmVsYXRlZFBNc319PC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJwbUpvYnNcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnNlbGVjdFBNXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFBtXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbkxhYmVsXT1cIid3b2tvcmRlckRldGFpbHMnXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicG1zXCIgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbkRpc2FibGVkPVwiaW5hY3RpdmVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYucG1zLmludmFsaWQgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWRyb3Bkb3duPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYucG1zLmVycm9yc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1aXNcIiAqbmdJZj1cImYucG1zLmVycm9ycy5yZXF1aXJlZFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkUE0gfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1ncmlkIHAtZmx1aWQgcC1tdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMiBwLW1kLTEyIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnJlYXNvbn19PC9zcGFuPiA8c3BhbiBjbGFzcz1cInJlcXVpc1wiPio8L3NwYW4+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwicmVhc29uc1wiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGUuc2VsZWN0UmVhc29uXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFJlYXNvblwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIGZvcm1Db250cm9sTmFtZT1cInJlYXNvblwiICBvcHRpb25EaXNhYmxlZD1cImluYWN0aXZlXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLnJlYXNvbi5pbnZhbGlkIH1cIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnJlYXNvblwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJyZWFzb25cIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYucmVhc29uLmludmFsaWQgfVwiPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZi5yZWFzb24uZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5yZWFzb24uZXJyb3JzLnJlcXVpcmVkXCI+e3t0cmFuc2xhdGUucmVhc29uUmVxdWlyZWR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtMTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUucGxhY2Vob2xkZXJNZXNzYWdlfX0gPC9zcGFuPiA8c3BhbiBjbGFzcz1cInJlcXVpc1wiPio8L3NwYW4+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIHBJbnB1dFRleHRhcmVhIHN0eWxlPVwiIG1pbi1oZWlnaHQ6MTAwcHg7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnBsYWNlaG9sZGVyTWVzc2FnZSArJy4uLidcIiBmb3JtQ29udHJvbE5hbWU9XCJtZXNzYWdlXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLm1lc3NhZ2UuZXJyb3JzIH1cIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN1Ym1pdHRlZCAmJiBmLm1lc3NhZ2UuZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5tZXNzYWdlLmVycm9ycy5yZXF1aXJlZFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkTWVzc2FnZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5tZXNzYWdlLmVycm9ycy5taW5sZW5ndGhcIj57e3RyYW5zbGF0ZS5yZXF1aXJlZE1lc3NhZ2VNaW59fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1jb250YWN0MTAwLWZvcm0tYnRuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLWNvbnRhY3QxMDAtZm9ybS1idG5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWN0MTAwLWZvcm0tYmdidG5cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4td2FycmFudHkgbXQtM1wiIChjbGljayk9XCJvblN1Ym1pdCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0cmFuc2xhdGUuc2VuZH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbnRhY3RcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aWZyYW1lIHNyYz1cImh0dHBzOi8vbWFwcy5nb29nbGUuY29tL21hcHM/cT0yODMsJTIwUnVlJTIwRGUlMjBsYSUyME1pbmllcmUtQlAzNCUyMCUyMDc4NTMzJTIwQlVDJTIwJUUyJTgwJTkzJTIwQ2VkZXgmYW1wO3Q9JmFtcDt6PTEzJmFtcDtpZT1VVEY4JmFtcDtpd2xvYz0mYW1wO291dHB1dD1lbWJlZFwiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjI1MFwiIHN0eWxlPVwiYm9yZGVyOjA7XCIgYWxsb3dmdWxsc2NyZWVuPVwiXCIgbG9hZGluZz1cImxhenlcIj48L2lmcmFtZT5cclxuICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJmcy00IG10LTNcIj4ge3t0cmFuc2xhdGUuaW5mb3JtYXRpb259fTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJtYi00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktZW52ZWxvcGVcIj48L2k+PGxhYmVsPiAmbmJzcDsge3t0cmFuc2xhdGUuZW1haWxUZXh0fX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJcIj57e3RyYW5zbGF0ZS5lbWFpbH19IDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1tYXBcIj48L2k+PGxhYmVsPiAmbmJzcDsge3t0cmFuc2xhdGUuYWRkcmVzc1RleHR9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIlwiPnt7dHJhbnNsYXRlLmFkcmVzc319PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJcIj57e3RyYW5zbGF0ZS50b3dufX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIlwiPnt7dHJhbnNsYXRlLmNvdW50cnl9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuPC9kaXY+XHJcblxyXG48cC10b2FzdCBwb3NpdGlvbj1cInRvcC1jZW50ZXJcIj48L3AtdG9hc3Q+XHJcbiJdfQ==
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hd2YtdGVzdC1saWIvc3JjL2xpYi9zaGFyZWQvY29udGFjdC9jb250YWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2F3Zi10ZXN0LWxpYi9zcmMvbGliL3NoYXJlZC9jb250YWN0L2NvbnRhY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBRU4sS0FBSyxFQUNMLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQTBCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7QUFRM0MsTUFBTSxPQUFPLGdCQUFnQjtJQWdCM0IsWUFDVSxXQUF3QixFQUN4QixjQUE4QixFQUM5QixRQUFrQjtRQUZsQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWxCbkIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFDdkIsb0JBQWUsR0FBYSxFQUFFLENBQUM7UUFHOUIsYUFBUSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBTTNELG9C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QUFoQixnQkFBZ0IscU9BRmhCLENBQUMsY0FBYyxFQUFDLFFBQVEsQ0FBQywrQ0N2QnRDLHVvVkF3SUE7NEZEL0dhLGdCQUFnQjtrQkFONUIsU0FBUzsrQkFDRSxhQUFhLGFBR1osQ0FBQyxjQUFjLEVBQUMsUUFBUSxDQUFDO3NKQUczQixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT3V0cHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBJbnB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBEZXRhaWxlZFBtSm9iIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2RldGFpbGVkUG1Kb2IubW9kZWwnO1xyXG5pbXBvcnQgeyBFdmVudFN0YXR1cyB9IGZyb20gJy4uLy4uL21vZGVscy9ldmVudFN0YXR1cyc7XHJcbmltcG9ydCB7IFBtSm9iIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3BtSm9iLm1vZGVsJztcclxuaW1wb3J0IHsgUG1Kb2JTdGF0dXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvcG1Kb2JTdGF0dXMnO1xyXG5pbXBvcnQgeyBSZWFzb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvcmVhc29uLm1vZGVsJztcclxuaW1wb3J0IHsgUmVhc29uQ29kZSB9IGZyb20gJy4uLy4uL21vZGVscy9yZWFzb25Db2RlJztcclxuaW1wb3J0IHsgUmVhc29uQ29udGFjdCB9IGZyb20gJy4uLy4uL21vZGVscy9yZWFzb25Db250YWN0JztcclxuaW1wb3J0IHsgU3lzdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3N5c3RlbSc7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXdmLWNvbnRhY3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250YWN0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb250YWN0LmNvbXBvbmVudC5jc3MnXSxcclxuICBwcm92aWRlcnM6IFtNZXNzYWdlU2VydmljZSxEYXRlUGlwZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb250YWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBsb2FkaW5nID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3VibWl0dGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc3lzdGVtczogU3lzdGVtW10gPSBbXTtcclxuICBASW5wdXQoKSBzZWxlY3RlZFN5c3RlbXM6IFN5c3RlbVtdID0gW107XHJcbiAgQElucHV0KCkgdHJhbnNsYXRlITogYW55O1xyXG4gIEBJbnB1dCgpIHJlYXNvbnMhOiBSZWFzb25bXTtcclxuICBAT3V0cHV0KCkgc2VuZEZvcm06IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIGZvcm0hOiBGb3JtR3JvdXA7XHJcbiAgc2VsZWN0ZWRSZWFzb24hOiBhbnk7XHJcbiAgc2VsZWN0ZWRTeXN0ZW0hOiBTeXN0ZW07XHJcbiAgc2VsZWN0ZWRQbSE6IGFueTtcclxuICBwbUpvYnMhOiBhbnlbXTtcclxuICBzeXN0ZW1Db250YWluUG0gPSB0cnVlO1xyXG5cclxuICBzaG93UG0gPSBmYWxzZTtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZVxyXG5cclxuICApIHt9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZWFzb25zID0gdGhpcy5yZWFzb25zLmZpbHRlcihcclxuICAgICAgKHgpID0+IHguY29kZSA9PSBSZWFzb25Db2RlLlNESSB8fCB4LmNvZGUgPT0gUmVhc29uQ29kZS5PVEhcclxuICAgICk7XHJcbiAgICB0aGlzLnNlbGVjdFBNKHRoaXMuc2VsZWN0ZWRTeXN0ZW0pO1xyXG4gICAgdGhpcy5sb2FkRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gY29udmVuaWVuY2UgZ2V0dGVyIGZvciBlYXN5IGFjY2VzcyB0byBmb3JtIGZpZWxkc1xyXG4gIGdldCBmKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9scztcclxuICB9XHJcblxyXG4gIHByZXZlbnRTdHJpbmdLZXlwcmVzcyhldmVudDogYW55KTogdm9pZCB7XHJcbiAgICBpZiAoXHJcbiAgICAgIGlzTmFOKE51bWJlcihTdHJpbmcuZnJvbUNoYXJDb2RlKGV2ZW50LmNoYXJDb2RlKSkpIHx8XHJcbiAgICAgIFN0cmluZy5mcm9tQ2hhckNvZGUoZXZlbnQuY2hhckNvZGUpID09PSAnICdcclxuICAgICkge1xyXG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZCA9IHRydWU7XHJcbiAgICBcclxuICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiB0aGlzLnRyYW5zbGF0ZS5zdW1tYXJ5RXJyb3IsIGRldGFpbDogdGhpcy50cmFuc2xhdGUuaW52YWxpZEZvcm0gfSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZGV0YWlsZWRQbUpvYiA9IHt9IGFzIERldGFpbGVkUG1Kb2I7XHJcbiAgICBkZXRhaWxlZFBtSm9iLm5hbWUgPSB0aGlzLmZvcm0udmFsdWUubmFtZTtcclxuICAgIGRldGFpbGVkUG1Kb2IucGhvbmUgPSB0aGlzLmZvcm0udmFsdWUucGhvbmU7XHJcbiAgICBkZXRhaWxlZFBtSm9iLmV4dGVudGlvbk9yQ29tbWVudCA9IHRoaXMuZm9ybS52YWx1ZS5leHRlbnRpb25PckNvbW1lbnQ7XHJcbiAgICBkZXRhaWxlZFBtSm9iLmVtYWlsID0gdGhpcy5mb3JtLnZhbHVlLmVtYWlsO1xyXG4gICAgZGV0YWlsZWRQbUpvYi5yZWFzb24gPSB0aGlzLmZvcm0udmFsdWUucmVhc29uLm5hbWU7XHJcbiAgICBkZXRhaWxlZFBtSm9iLmNvbW1lbnQgPSB0aGlzLmZvcm0udmFsdWUubWVzc2FnZTtcclxuICAgIGlmICh0aGlzLmZvcm0udmFsdWUucG1zICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgZGV0YWlsZWRQbUpvYi5wbUpvYiA9IHRoaXMuZm9ybS52YWx1ZS5wbXM7XHJcbiAgICB9XHJcbiAgICBkZXRhaWxlZFBtSm9iLnN5c3RlbU5hbWUgPSB0aGlzLnNlbGVjdGVkU3lzdGVtLm5hbWU7XHJcbiAgICBkZXRhaWxlZFBtSm9iLnN5c3RlbUlkID0gdGhpcy5zZWxlY3RlZFN5c3RlbS5zeXN0ZW1JZDtcclxuICAgIGRldGFpbGVkUG1Kb2Iuc2l0ZU5hbWUgPSB0aGlzLnNlbGVjdGVkU3lzdGVtLnNpdGVOYW1lO1xyXG4gICAgZGV0YWlsZWRQbUpvYi5zaXRlQ2l0eSA9IHRoaXMuc2VsZWN0ZWRTeXN0ZW0uc2l0ZUNpdHk7XHJcbiAgICBkZXRhaWxlZFBtSm9iLnNpdGVQb3N0YWxDb2RlID0gdGhpcy5zZWxlY3RlZFN5c3RlbS5zaXRlUG9zdGFsQ29kZTtcclxuICAgIGRldGFpbGVkUG1Kb2IudG9VcGRhdGUgPSB0cnVlO1xyXG4gICAgaWYgKHRoaXMuZm9ybS52YWx1ZS5wbXMgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICBkZXRhaWxlZFBtSm9iLnNlbGVjdGVkRGF0ZSA9IGRldGFpbGVkUG1Kb2IucG1Kb2Iuc3RhcnREYXRlVGltZTtcclxuICAgIH1cclxuICAgIGRldGFpbGVkUG1Kb2IucmVhc29uQ29udGFjdCA9IFJlYXNvbkNvbnRhY3QuQ29udGFjdDtcclxuICAgIGRldGFpbGVkUG1Kb2IuZnV0dXJlU3RhdHVzID0gdGhpcy5zbGVjdHNGdXR1cmVTdGF0dXMoXHJcbiAgICAgIHRoaXMuZm9ybS52YWx1ZS5yZWFzb24uY29kZVxyXG4gICAgKTtcclxuICAgIHRoaXMuc2VuZEZvcm0uZW1pdChkZXRhaWxlZFBtSm9iKTtcclxuICB9XHJcblxyXG4gIHNsZWN0c0Z1dHVyZVN0YXR1cyhzdGF0dXM6IGFueSkge1xyXG4gICAgc3dpdGNoIChzdGF0dXMpIHtcclxuICAgICAgY2FzZSBSZWFzb25Db2RlLk1QTTpcclxuICAgICAgICByZXR1cm4gUG1Kb2JTdGF0dXMuV0FJVElORztcclxuICAgICAgY2FzZSBSZWFzb25Db2RlLlJQTTpcclxuICAgICAgICByZXR1cm4gUG1Kb2JTdGF0dXMuUkVQT1JURUQ7XHJcbiAgICAgIGNhc2UgUmVhc29uQ29kZS5DUE06XHJcbiAgICAgICAgcmV0dXJuIFBtSm9iU3RhdHVzLkNBTkNFTExFRDtcclxuICAgICAgY2FzZSBSZWFzb25Db2RlLlNESTpcclxuICAgICAgICByZXR1cm4gUG1Kb2JTdGF0dXMuREVTSU5TVEFMTEVEO1xyXG4gICAgICBjYXNlIFJlYXNvbkNvZGUuT1RIOlxyXG4gICAgICAgIHJldHVybiBQbUpvYlN0YXR1cy5PVEhFUjtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gJ0VycmV1cic7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsb2FkRm9ybSgpIHtcclxuICAgIGxldCBuYW1lID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgndXNlck5hbWUnKSBhcyBzdHJpbmc7XHJcbiAgICBsZXQgZW1haWwgPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdlbWFpbCcpIGFzIHN0cmluZztcclxuICAgIGxldCBwaG9uZSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ21vYmlsZVBob25lTnVtYmVyJykgYXMgc3RyaW5nO1xyXG4gICAgdGhpcy5mb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgIG5hbWU6IFtcclxuICAgICAgICBuYW1lICE9PSAnbnVsbCcgPyBuYW1lIDogJycsXHJcbiAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDMpXSxcclxuICAgICAgXSxcclxuICAgICAgZW1haWw6IFtcclxuICAgICAgICBlbWFpbCAhPT0gJ251bGwnID8gZW1haWwgOiAnJyxcclxuICAgICAgICBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF0sXHJcbiAgICAgIF0sXHJcbiAgICAgIHBob25lOiBbcGhvbmUgIT09ICdudWxsJyA/IHBob25lIDogJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIGV4dGVudGlvbk9yQ29tbWVudDogWycnXSxcclxuICAgICAgcmVhc29uOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXHJcbiAgICAgIHN5c3RlbXM6IFtbXSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgcG1zOiBbW10sIHRoaXMuc2hvd1BtID8gW10gOiBbXV0sXHJcbiAgICAgIG1lc3NhZ2U6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDE1KV1dLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RQTShzZWxlY3RlZFN5c3RlbTogYW55KSB7XHJcbiAgICB0aGlzLnN5c3RlbUNvbnRhaW5QbSA9IHRydWU7XHJcbiAgICBpZiAoc2VsZWN0ZWRTeXN0ZW0gPT09IHVuZGVmaW5lZCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoc2VsZWN0ZWRTeXN0ZW0ucG1Kb2JzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMuc2hvd1BtID0gZmFsc2U7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFN5c3RlbSA9IHNlbGVjdGVkU3lzdGVtO1xyXG4gICAgICAgIHRoaXMucG1Kb2JzID0gc2VsZWN0ZWRTeXN0ZW0ucG1Kb2JzO1xyXG4gICAgICAgIHRoaXMucG1Kb2JzLmZvckVhY2goKGVsZW1lbnQpID0+IHtcclxuICAgICAgICAgIGlmIChlbGVtZW50LnN0YXJ0RGF0ZVRpbWUpIHtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQuY2FzZVR5cGUgPT0gJ1BsYW5uZWQgTWFpbnRlbmFuY2UnKSB7XHJcbiAgICAgICAgICAgICAgZWxlbWVudC53b2tvcmRlckRldGFpbHMgPSBlbGVtZW50LndvcmtvcmRlck51bWJlciArICcgLSAnICsgIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGVsZW1lbnQuc3RhcnREYXRlVGltZSwgJ2RkIE1NTSB5eXl5JykgKyAnIC0gJyArIHRoaXMudHJhbnNsYXRlLnR5cGVQbGFubmVkO1xyXG4gICAgICAgICAgICB9ZWxzZSBpZihlbGVtZW50LmNhc2VUeXBlID09XCJRQVJBXCIpe1xyXG4gICAgICAgICAgICAgIGVsZW1lbnQud29rb3JkZXJEZXRhaWxzID0gZWxlbWVudC53b3Jrb3JkZXJOdW1iZXIgKyAnIC0gJyArICB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShlbGVtZW50LnN0YXJ0RGF0ZVRpbWUsICdkZCBNTU0geXl5eScpICsgJyAtICcgKyB0aGlzLnRyYW5zbGF0ZS50eXBlUUFSQTtcclxuICAgICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgICAgIGVsZW1lbnQud29rb3JkZXJEZXRhaWxzID0gZWxlbWVudC53b3Jrb3JkZXJOdW1iZXIgKyBcIiAtIFwiKyAgdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZWxlbWVudC5zdGFydERhdGVUaW1lLCAnZGQgTU1NIHl5eXknKTsgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICB0aGlzLnNob3dQbSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiAqbmdJZj1cInRyYW5zbGF0ZSAmJiByZWFzb25zIFwiPlxyXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJwdC0wXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFwcC1zZWN0aW9uLWhlYWRlci1pbWdcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBwdC00XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGgyPnt7dHJhbnNsYXRlLnRpdGxlfX0gPC9oMj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwicHktNSBiYWNrZ3JvdW5kLWxpZ2h0XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBweC1sZy01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWNvbnRhY3QxMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXAtY29udGFjdDEwMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKm5nSWY9XCJmb3JtICYmIHN5c3RlbXMgJiYgcmVhc29uc1wiIGNsYXNzPVwiY29udGFjdDEwMC1mb3JtIHZhbGlkYXRlLWZvcm1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbnRhY3QxMDAtZm9ybS10aXRsZVwiPnt7dHJhbnNsYXRlLnRpdGxlfX0gPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtMTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUucGxhY2Vob2xkZXJOYW1lfX08L3NwYW4+IDxzcGFuIGNsYXNzPVwicmVxdWlzXCI+KiA8L3NwYW4+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGUucGxhY2Vob2xkZXJOYW1lXCIgdHlwZT1cInRleHRcIiBwSW5wdXRUZXh0IGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYubmFtZS5pbnZhbGlkIH1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZi5uYW1lLmVycm9yc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1aXNcIiAqbmdJZj1cImYubmFtZS5lcnJvcnMucmVxdWlyZWRcIj57e3RyYW5zbGF0ZS5yZXF1aXJlZE5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1aXNcIiAqbmdJZj1cImYubmFtZS5lcnJvcnMubWlubGVuZ3RoXCI+e3t0cmFuc2xhdGUucmVxdWlyZWROYW1lTWlufX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1ncmlkIHAtZmx1aWQgcC1tdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMiBwLW1kLTEyIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnBsYWNlaG9sZGVyRW1haWx9fTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJyZXF1aXNcIj4qPC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnBsYWNlaG9sZGVyRW1haWxcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYuZW1haWwuaW52YWxpZCB9XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYuZW1haWwuZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5lbWFpbC5lcnJvcnMucmVxdWlyZWRcIj57e3RyYW5zbGF0ZS5yZXF1aXJlZEVtYWlsfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLmVtYWlsLmVycm9ycy5lbWFpbFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkRW1haWxGb3JtYXR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnBsYWNlaG9sZGVyUGhvbmV9fTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJyZXF1aXNcIj4qPC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnBsYWNlaG9sZGVyUGhvbmVcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwicGhvbmVcIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYucGhvbmUuaW52YWxpZCB9XCIgKGtleXByZXNzKT1cInByZXZlbnRTdHJpbmdLZXlwcmVzcygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYucGhvbmUuZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5waG9uZS5lcnJvcnMucmVxdWlyZWRcIj57e3RyYW5zbGF0ZS5yZXF1aXJlZFBob25lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnBsYWNlaG9sZGVyZXh0ZW50aW9uT3JDb21tZW50fX08L3NwYW4+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGUucGxhY2Vob2xkZXJleHRlbnRpb25PckNvbW1lbnRcIiB0eXBlPVwidGV4dFwiIHBJbnB1dFRleHQgZm9ybUNvbnRyb2xOYW1lPVwiZXh0ZW50aW9uT3JDb21tZW50XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtMTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUuUmVsYXRlZFN5c3RlbXN9fTwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJyZXF1aXNcIj4qPC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIChjbGljayk9XCJzZWxlY3RQTShzZWxlY3RlZFN5c3RlbSlcIiBbb3B0aW9uc109XCJzeXN0ZW1zXCIgW3BsYWNlaG9sZGVyXT1cInRyYW5zbGF0ZS5zZWxlY3RTeXN0ZW1cIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkU3lzdGVtXCIgW29wdGlvbkxhYmVsXT1cIiduYW1lJ1wiIGZvcm1Db250cm9sTmFtZT1cInN5c3RlbXNcIiAgb3B0aW9uRGlzYWJsZWQ9XCJpbmFjdGl2ZVwiIFtuZ0NsYXNzXT1cInsgJ2lzLWludmFsaWQnOiBzdWJtaXR0ZWQgJiYgZi5zeXN0ZW1zLmludmFsaWQgfVwiPjwvcC1kcm9wZG93bj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYuc3lzdGVtcy5lcnJvcnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVxdWlzXCIgKm5nSWY9XCJmLnN5c3RlbXMuZXJyb3JzLnJlcXVpcmVkXCI+e3t0cmFuc2xhdGUucmVxdWlyZWRTeXN0ZW19fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1ncmlkIHAtZmx1aWQgcC1tdC0yXCIgKm5nSWY9XCJzaG93UG1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtMTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUuUmVsYXRlZFBNc319PC9zcGFuPjpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJwbUpvYnNcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnNlbGVjdFBNXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFBtXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29wdGlvbkxhYmVsXT1cIid3b2tvcmRlckRldGFpbHMnXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicG1zXCIgIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbkRpc2FibGVkPVwiaW5hY3RpdmVcIiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYucG1zLmludmFsaWQgfVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wLWRyb3Bkb3duPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwic3VibWl0dGVkICYmIGYucG1zLmVycm9yc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZXF1aXNcIiAqbmdJZj1cImYucG1zLmVycm9ycy5yZXF1aXJlZFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkUE0gfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pi0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1ncmlkIHAtZmx1aWQgcC1tdC0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWNvbC0xMiBwLW1kLTEyIFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRyZVwiPnt7dHJhbnNsYXRlLnJlYXNvbn19PC9zcGFuPiA8c3BhbiBjbGFzcz1cInJlcXVpc1wiPio8L3NwYW4+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwicmVhc29uc1wiIFtwbGFjZWhvbGRlcl09XCJ0cmFuc2xhdGUuc2VsZWN0UmVhc29uXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFJlYXNvblwiIG9wdGlvbkxhYmVsPVwibmFtZVwiIGZvcm1Db250cm9sTmFtZT1cInJlYXNvblwiICBvcHRpb25EaXNhYmxlZD1cImluYWN0aXZlXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLnJlYXNvbi5pbnZhbGlkIH1cIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxpbnB1dCBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnJlYXNvblwiIHR5cGU9XCJ0ZXh0XCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJyZWFzb25cIiBbbmdDbGFzc109XCJ7ICdpcy1pbnZhbGlkJzogc3VibWl0dGVkICYmIGYucmVhc29uLmludmFsaWQgfVwiPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdWJtaXR0ZWQgJiYgZi5yZWFzb24uZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5yZWFzb24uZXJyb3JzLnJlcXVpcmVkXCI+e3t0cmFuc2xhdGUucmVhc29uUmVxdWlyZWR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWdyaWQgcC1mbHVpZCBwLW10LTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY29sLTEyIHAtbWQtMTIgXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdHJlXCI+e3t0cmFuc2xhdGUucGxhY2Vob2xkZXJNZXNzYWdlfX0gPC9zcGFuPiA8c3BhbiBjbGFzcz1cInJlcXVpc1wiPio8L3NwYW4+OlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRleHRhcmVhIHBJbnB1dFRleHRhcmVhIHN0eWxlPVwiIG1pbi1oZWlnaHQ6MTAwcHg7aGVpZ2h0OjEwMCU7d2lkdGg6MTAwJTtcIiBbcGxhY2Vob2xkZXJdPVwidHJhbnNsYXRlLnBsYWNlaG9sZGVyTWVzc2FnZSArJy4uLidcIiBmb3JtQ29udHJvbE5hbWU9XCJtZXNzYWdlXCIgW25nQ2xhc3NdPVwieyAnaXMtaW52YWxpZCc6IHN1Ym1pdHRlZCAmJiBmLm1lc3NhZ2UuZXJyb3JzIH1cIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInN1Ym1pdHRlZCAmJiBmLm1lc3NhZ2UuZXJyb3JzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5tZXNzYWdlLmVycm9ycy5yZXF1aXJlZFwiPnt7dHJhbnNsYXRlLnJlcXVpcmVkTWVzc2FnZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlcXVpc1wiICpuZ0lmPVwiZi5tZXNzYWdlLmVycm9ycy5taW5sZW5ndGhcIj57e3RyYW5zbGF0ZS5yZXF1aXJlZE1lc3NhZ2VNaW59fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1jb250YWN0MTAwLWZvcm0tYnRuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwLWNvbnRhY3QxMDAtZm9ybS1idG5cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWN0MTAwLWZvcm0tYmdidG5cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4td2FycmFudHkgbXQtM1wiIChjbGljayk9XCJvblN1Ym1pdCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0cmFuc2xhdGUuc2VuZH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC02IGNvbnRhY3RcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aWZyYW1lIHNyYz1cImh0dHBzOi8vbWFwcy5nb29nbGUuY29tL21hcHM/cT0yODMsJTIwUnVlJTIwRGUlMjBsYSUyME1pbmllcmUtQlAzNCUyMCUyMDc4NTMzJTIwQlVDJTIwJUUyJTgwJTkzJTIwQ2VkZXgmYW1wO3Q9JmFtcDt6PTEzJmFtcDtpZT1VVEY4JmFtcDtpd2xvYz0mYW1wO291dHB1dD1lbWJlZFwiIHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjI1MFwiIHN0eWxlPVwiYm9yZGVyOjA7XCIgYWxsb3dmdWxsc2NyZWVuPVwiXCIgbG9hZGluZz1cImxhenlcIj48L2lmcmFtZT5cclxuICAgICAgICAgICAgICAgICAgICA8aDYgY2xhc3M9XCJmcy00IG10LTNcIj4ge3t0cmFuc2xhdGUuaW5mb3JtYXRpb259fTwvaDY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNlY3Rpb24gY2xhc3M9XCJtYi00XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGkgcGktZW52ZWxvcGVcIj48L2k+PGxhYmVsPiAmbmJzcDsge3t0cmFuc2xhdGUuZW1haWxUZXh0fX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJcIj57e3RyYW5zbGF0ZS5lbWFpbH19IDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgbXQtNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJwaSBwaS1tYXBcIj48L2k+PGxhYmVsPiAmbmJzcDsge3t0cmFuc2xhdGUuYWRkcmVzc1RleHR9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIlwiPnt7dHJhbnNsYXRlLmFkcmVzc319PC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJcIj57e3RyYW5zbGF0ZS50b3dufX08L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIlwiPnt7dHJhbnNsYXRlLmNvdW50cnl9fTwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuPC9kaXY+XHJcblxyXG48cC10b2FzdCBwb3NpdGlvbj1cInRvcC1jZW50ZXJcIj48L3AtdG9hc3Q+XHJcbiJdfQ==
|