simpo-component-library 1.6.163 → 1.6.164
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs +7 -7
- package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +6 -2
- package/esm2022/lib/ecommerce/sections/order-details/order-details.component.mjs +3 -3
- package/esm2022/lib/ecommerce/sections/user-profile/user-profile.component.mjs +5 -4
- package/esm2022/lib/sections/navbar-section/navbar-section.component.mjs +3 -3
- package/fesm2022/simpo-component-library.mjs +19 -14
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/directive/background-directive.d.ts +1 -1
- package/lib/directive/button-directive.directive.d.ts +1 -1
- package/lib/directive/color.directive.d.ts +1 -1
- package/lib/sections/pricing-section/pricing-section.component.d.ts +1 -1
- package/package.json +1 -1
- package/simpo-component-library-1.6.164.tgz +0 -0
- package/simpo-component-library-1.6.163.tgz +0 -0
package/esm2022/lib/ecommerce/sections/authentication-required/authentication-required.component.mjs
CHANGED
@@ -68,7 +68,7 @@ export class AuthenticationRequiredComponent {
|
|
68
68
|
this.dialogRef.close();
|
69
69
|
}, (error) => {
|
70
70
|
this.buttonLoading = false;
|
71
|
-
this.messageService.add({ severity: 'error', summary: '
|
71
|
+
this.messageService.add({ severity: 'error', summary: 'Login request', detail: error?.error?.message });
|
72
72
|
});
|
73
73
|
}
|
74
74
|
verifyOTP() {
|
@@ -81,7 +81,7 @@ export class AuthenticationRequiredComponent {
|
|
81
81
|
this.dialogRef.close();
|
82
82
|
}, (error) => {
|
83
83
|
this.buttonLoading = false;
|
84
|
-
this.messageService.add({ severity: 'error', summary:
|
84
|
+
this.messageService.add({ severity: 'error', summary: "Login request", detail: error?.error?.message });
|
85
85
|
});
|
86
86
|
}
|
87
87
|
sendSignupOTP() {
|
@@ -134,10 +134,10 @@ export class AuthenticationRequiredComponent {
|
|
134
134
|
}, (error) => {
|
135
135
|
this.buttonLoading = false;
|
136
136
|
if (error.status === 500) {
|
137
|
-
this.messageService.add({ severity: 'error', summary: '
|
137
|
+
this.messageService.add({ severity: 'error', summary: 'Signup error', detail: error?.error?.message });
|
138
138
|
}
|
139
139
|
else {
|
140
|
-
this.messageService.add({ severity: 'error', summary: '
|
140
|
+
this.messageService.add({ severity: 'error', summary: 'Signup error', detail: error?.error?.message });
|
141
141
|
}
|
142
142
|
});
|
143
143
|
}
|
@@ -242,7 +242,7 @@ export class AuthenticationRequiredComponent {
|
|
242
242
|
return window.innerWidth <= 475;
|
243
243
|
}
|
244
244
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: AuthenticationRequiredComponent, deps: [{ token: i1.RestService }, { token: i2.Router }, { token: i3.MessageService }, { token: i4.StorageServiceService }, { token: i5.MatDialog }, { token: i5.MatDialogRef, optional: true }, { token: i6.MatBottomSheetRef, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
245
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: AuthenticationRequiredComponent, isStandalone: true, selector: "simpo-authentication-required", providers: [MessageService], ngImport: i0, template: "\r\n<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"\r\n [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\"></p-toast>\r\n<div class=\"close-icon\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n</div>\r\n<section>\r\n <div class=\"main\">\r\n <input type=\"checkbox\" id=\"chk\" aria-hidden=\"true\">\r\n\r\n <div class=\"signup\">\r\n <form>\r\n <label for=\"chk\" aria-hidden=\"true\">Login</label>\r\n <div class=\"d-flex justify-content-center\" style=\"gap: 5px;\">\r\n <div class=\"login-type\" [ngClass]=\"{'login-type__active': loginType == 'OTP'}\" (click)=\"loginType = 'OTP'\">OTP Login</div>\r\n <div class=\"login-type\" [ngClass]=\"{'login-type__active': loginType == 'PASSWORD'}\" (click)=\"loginType = 'PASSWORD'\">Password Login</div>\r\n </div>\r\n <ng-container *ngIf=\"loginType == 'PASSWORD'\">\r\n <input type=\"email\" name=\"email\" placeholder=\"Email\" required=\"\" [(ngModel)]=\"email\">\r\n <div class=\"position-relative\">\r\n <input [type]=\"passwordHidden ? 'password' : 'text'\" name=\"password\" placeholder=\"
|
245
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.4", type: AuthenticationRequiredComponent, isStandalone: true, selector: "simpo-authentication-required", providers: [MessageService], ngImport: i0, template: "\r\n<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"\r\n [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\"></p-toast>\r\n<div class=\"close-icon\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n</div>\r\n<section>\r\n <div class=\"main\">\r\n <input type=\"checkbox\" id=\"chk\" aria-hidden=\"true\">\r\n\r\n <div class=\"signup\">\r\n <form>\r\n <label for=\"chk\" aria-hidden=\"true\">Login</label>\r\n <div class=\"d-flex justify-content-center\" style=\"gap: 5px;\">\r\n <div class=\"login-type\" [ngClass]=\"{'login-type__active': loginType == 'OTP'}\" (click)=\"loginType = 'OTP'\">OTP Login</div>\r\n <div class=\"login-type\" [ngClass]=\"{'login-type__active': loginType == 'PASSWORD'}\" (click)=\"loginType = 'PASSWORD'\">Password Login</div>\r\n </div>\r\n <ng-container *ngIf=\"loginType == 'PASSWORD'\">\r\n <input type=\"email\" name=\"email\" placeholder=\"Email\" required=\"\" [(ngModel)]=\"email\">\r\n <div class=\"position-relative\">\r\n <input [type]=\"passwordHidden ? 'password' : 'text'\" name=\"password\" placeholder=\"Enter Password\" required=\"\" [(ngModel)]=\"password\">\r\n <mat-icon class=\"password-visiblity\" (click)=\"passwordHidden = !passwordHidden\">{{passwordHidden ? 'visibility_off' : 'visibility'}}</mat-icon>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"loginType == 'OTP'\">\r\n <input type=\"mobile\" name=\"mobile\" placeholder=\"Mobile\" required=\"\" (keypress)=\"validateNumber($event)\" [(ngModel)]=\"mobile\" (ngModelChange)=\"enterMobile()\">\r\n <input type=\"otp\" name=\"otp\" placeholder=\"Enter received otp\" required=\"\" [(ngModel)]=\"otp\">\r\n </ng-container>\r\n <button (click)=\"login()\" *ngIf=\"!buttonLoading\" [disabled]=\"(loginType == 'PASSWORD' ? !isEmailValid : false)\">Login</button>\r\n <button *ngIf=\"buttonLoading\">Loading...</button>\r\n </form>\r\n </div>\r\n\r\n <div class=\"login\">\r\n <form>\r\n <label for=\"chk\" aria-hidden=\"true\">Sign up</label>\r\n <input type=\"email\" name=\"email\" placeholder=\"Email\" required=\"\" [(ngModel)]=\"email\">\r\n <input type=\"mobile\" name=\"mobile\" placeholder=\"Mobile\" required=\"\" (keypress)=\"validateNumber($event)\" [(ngModel)]=\"mobile\" (ngModelChange)=\"sendSignupOTP()\">\r\n <div class=\"position-relative\">\r\n <input type=\"otp\" name=\"otp\" placeholder=\"OTP\" required=\"\" [(ngModel)]=\"otp\" (keypress)=\"validateOTP($event)\">\r\n <!-- <mat-icon style=\"color: lightgreen;\" class=\"otp-checked\" title=\"OTP Verified\" *ngIf=\"isOTPVerified\">check_circle</mat-icon>\r\n <mat-icon style=\"color: tomato;\" class=\"otp-checked\" title=\"OTP not Verified\" *ngIf=\"!isOTPVerified\">cancel</mat-icon> -->\r\n </div>\r\n <div class=\"position-relative\">\r\n <input [type]=\"passwordHidden ? 'password' : 'text'\" name=\"password\" placeholder=\"Create Password\" required=\"\" [(ngModel)]=\"password\" (ngModelChange)=\"checkStrength()\">\r\n <mat-icon class=\"password-visiblity\" (click)=\"passwordHidden = !passwordHidden\">{{passwordHidden ? 'visibility_off' : 'visibility'}}</mat-icon>\r\n <div class=\"strength-bar-container\">\r\n <div *ngFor=\"let strength of passwordStrength; let idx = index\" class=\"strength-bar\" [style.backgroundColor]=\"getStrengthColor(idx)\"></div>\r\n </div>\r\n </div>\r\n <button (click)=\"createAccount()\" [disabled]=\"!isEmailValid || !isPasswordValid || (otp.length != 6)\">Sign up</button>\r\n </form>\r\n\r\n </div>\r\n </div>\r\n</section>\r\n", styles: ["section{margin:0;padding:0;display:flex;justify-content:center;align-items:center;height:100%;font-family:Jost,sans-serif;background:linear-gradient(to bottom,#0f0c29,#302b63,#24243e)}.close-icon{position:absolute;top:10px;right:10px;background-color:#fff;border-radius:50%;padding:5px;height:30px;width:30px;display:flex;align-items:center;justify-content:center;cursor:pointer}.close-icon .mat-icon{position:absolute;top:5px;right:1px;font-size:20px}.login-type{background-color:#fff;border:#573b8a;color:#573b8a;width:130px!important;font-size:14px!important;padding:5px;border-radius:5px;display:flex;justify-content:center;cursor:pointer}.login-type__active{width:150px!important;font-size:14px!important;font-weight:500!important;padding:5px;border-radius:5px;display:flex;justify-content:center;cursor:pointer;font-weight:800!important;border:1px solid #573b8a}.main{width:350px;height:500px;background:red;overflow:hidden;background:url(https://doc-08-2c-docs.googleusercontent.com/docs/securesc/68c90smiglihng9534mvqmq1946dmis5/fo0picsp1nhiucmc0l25s29respgpr4j/1631524275000/03522360960922298374/03522360960922298374/1Sx0jhdpEpnNIydS4rnN4kHSJtU1EyWka?e=view&authuser=0&nonce=gcrocepgbb17m&user=03522360960922298374&hash=tfhgbs86ka6divo3llbvp93mg4csvb38) no-repeat center/ cover;border-radius:10px;box-shadow:5px 20px 50px #000}.otp-checked{position:absolute;top:7px;right:43px;font-size:20px;cursor:default!important}.password-visiblity{position:absolute;top:7px;right:43px;font-size:20px}.strength-bar-container{display:flex;justify-content:space-between;width:80%!important;margin:auto;position:relative;top:-10px}.strength-bar{height:8px;width:23.5%;border-radius:6px;background-color:#d3d3d3ba}.mat-icon{cursor:pointer}#chk{display:none}.signup{position:relative;width:100%;height:100%}label{color:#fff;font-size:2.3em;justify-content:center;display:flex;margin:50px 50px 20px;font-weight:700;cursor:pointer;transition:.5s ease-in-out}input{width:80%;height:10px;background:#e0dede;justify-content:center;display:flex;margin:20px auto;padding:18px;border:none;outline:none;border-radius:5px}button{width:80%!important;height:40px;margin:10px auto;justify-content:center;display:block;color:#fff;background:#573b8a;font-size:1em;font-weight:700;outline:none;border:none;border-radius:5px;transition:.2s ease-in;cursor:pointer}button:hover{background:#6d44b8}.login{height:460px;background:#eee;border-radius:60%/10%;transform:translateY(-180px);transition:.8s ease-in-out}.login label{color:#573b8a;transform:scale(.6)}#chk:checked~.login{transform:translateY(-500px)}#chk:checked~.login label{transform:scale(1)}#chk:checked~.signup label{transform:scale(.6)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i7.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i8.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: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i8.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i9.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
|
246
246
|
}
|
247
247
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: AuthenticationRequiredComponent, decorators: [{
|
248
248
|
type: Component,
|
@@ -251,10 +251,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImpor
|
|
251
251
|
FormsModule,
|
252
252
|
ToastModule,
|
253
253
|
MatIconModule
|
254
|
-
], providers: [MessageService], template: "\r\n<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"\r\n [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\"></p-toast>\r\n<div class=\"close-icon\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n</div>\r\n<section>\r\n <div class=\"main\">\r\n <input type=\"checkbox\" id=\"chk\" aria-hidden=\"true\">\r\n\r\n <div class=\"signup\">\r\n <form>\r\n <label for=\"chk\" aria-hidden=\"true\">Login</label>\r\n <div class=\"d-flex justify-content-center\" style=\"gap: 5px;\">\r\n <div class=\"login-type\" [ngClass]=\"{'login-type__active': loginType == 'OTP'}\" (click)=\"loginType = 'OTP'\">OTP Login</div>\r\n <div class=\"login-type\" [ngClass]=\"{'login-type__active': loginType == 'PASSWORD'}\" (click)=\"loginType = 'PASSWORD'\">Password Login</div>\r\n </div>\r\n <ng-container *ngIf=\"loginType == 'PASSWORD'\">\r\n <input type=\"email\" name=\"email\" placeholder=\"Email\" required=\"\" [(ngModel)]=\"email\">\r\n <div class=\"position-relative\">\r\n <input [type]=\"passwordHidden ? 'password' : 'text'\" name=\"password\" placeholder=\"
|
254
|
+
], providers: [MessageService], template: "\r\n<p-toast position=\"bottom-right\" [baseZIndex]=\"10000000000\" [autoZIndex]=\"true\"\r\n [showTransformOptions]=\"isMobile ? 'translateY(-100%)' : ''\"></p-toast>\r\n<div class=\"close-icon\" (click)=\"close()\">\r\n <mat-icon>close</mat-icon>\r\n</div>\r\n<section>\r\n <div class=\"main\">\r\n <input type=\"checkbox\" id=\"chk\" aria-hidden=\"true\">\r\n\r\n <div class=\"signup\">\r\n <form>\r\n <label for=\"chk\" aria-hidden=\"true\">Login</label>\r\n <div class=\"d-flex justify-content-center\" style=\"gap: 5px;\">\r\n <div class=\"login-type\" [ngClass]=\"{'login-type__active': loginType == 'OTP'}\" (click)=\"loginType = 'OTP'\">OTP Login</div>\r\n <div class=\"login-type\" [ngClass]=\"{'login-type__active': loginType == 'PASSWORD'}\" (click)=\"loginType = 'PASSWORD'\">Password Login</div>\r\n </div>\r\n <ng-container *ngIf=\"loginType == 'PASSWORD'\">\r\n <input type=\"email\" name=\"email\" placeholder=\"Email\" required=\"\" [(ngModel)]=\"email\">\r\n <div class=\"position-relative\">\r\n <input [type]=\"passwordHidden ? 'password' : 'text'\" name=\"password\" placeholder=\"Enter Password\" required=\"\" [(ngModel)]=\"password\">\r\n <mat-icon class=\"password-visiblity\" (click)=\"passwordHidden = !passwordHidden\">{{passwordHidden ? 'visibility_off' : 'visibility'}}</mat-icon>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"loginType == 'OTP'\">\r\n <input type=\"mobile\" name=\"mobile\" placeholder=\"Mobile\" required=\"\" (keypress)=\"validateNumber($event)\" [(ngModel)]=\"mobile\" (ngModelChange)=\"enterMobile()\">\r\n <input type=\"otp\" name=\"otp\" placeholder=\"Enter received otp\" required=\"\" [(ngModel)]=\"otp\">\r\n </ng-container>\r\n <button (click)=\"login()\" *ngIf=\"!buttonLoading\" [disabled]=\"(loginType == 'PASSWORD' ? !isEmailValid : false)\">Login</button>\r\n <button *ngIf=\"buttonLoading\">Loading...</button>\r\n </form>\r\n </div>\r\n\r\n <div class=\"login\">\r\n <form>\r\n <label for=\"chk\" aria-hidden=\"true\">Sign up</label>\r\n <input type=\"email\" name=\"email\" placeholder=\"Email\" required=\"\" [(ngModel)]=\"email\">\r\n <input type=\"mobile\" name=\"mobile\" placeholder=\"Mobile\" required=\"\" (keypress)=\"validateNumber($event)\" [(ngModel)]=\"mobile\" (ngModelChange)=\"sendSignupOTP()\">\r\n <div class=\"position-relative\">\r\n <input type=\"otp\" name=\"otp\" placeholder=\"OTP\" required=\"\" [(ngModel)]=\"otp\" (keypress)=\"validateOTP($event)\">\r\n <!-- <mat-icon style=\"color: lightgreen;\" class=\"otp-checked\" title=\"OTP Verified\" *ngIf=\"isOTPVerified\">check_circle</mat-icon>\r\n <mat-icon style=\"color: tomato;\" class=\"otp-checked\" title=\"OTP not Verified\" *ngIf=\"!isOTPVerified\">cancel</mat-icon> -->\r\n </div>\r\n <div class=\"position-relative\">\r\n <input [type]=\"passwordHidden ? 'password' : 'text'\" name=\"password\" placeholder=\"Create Password\" required=\"\" [(ngModel)]=\"password\" (ngModelChange)=\"checkStrength()\">\r\n <mat-icon class=\"password-visiblity\" (click)=\"passwordHidden = !passwordHidden\">{{passwordHidden ? 'visibility_off' : 'visibility'}}</mat-icon>\r\n <div class=\"strength-bar-container\">\r\n <div *ngFor=\"let strength of passwordStrength; let idx = index\" class=\"strength-bar\" [style.backgroundColor]=\"getStrengthColor(idx)\"></div>\r\n </div>\r\n </div>\r\n <button (click)=\"createAccount()\" [disabled]=\"!isEmailValid || !isPasswordValid || (otp.length != 6)\">Sign up</button>\r\n </form>\r\n\r\n </div>\r\n </div>\r\n</section>\r\n", styles: ["section{margin:0;padding:0;display:flex;justify-content:center;align-items:center;height:100%;font-family:Jost,sans-serif;background:linear-gradient(to bottom,#0f0c29,#302b63,#24243e)}.close-icon{position:absolute;top:10px;right:10px;background-color:#fff;border-radius:50%;padding:5px;height:30px;width:30px;display:flex;align-items:center;justify-content:center;cursor:pointer}.close-icon .mat-icon{position:absolute;top:5px;right:1px;font-size:20px}.login-type{background-color:#fff;border:#573b8a;color:#573b8a;width:130px!important;font-size:14px!important;padding:5px;border-radius:5px;display:flex;justify-content:center;cursor:pointer}.login-type__active{width:150px!important;font-size:14px!important;font-weight:500!important;padding:5px;border-radius:5px;display:flex;justify-content:center;cursor:pointer;font-weight:800!important;border:1px solid #573b8a}.main{width:350px;height:500px;background:red;overflow:hidden;background:url(https://doc-08-2c-docs.googleusercontent.com/docs/securesc/68c90smiglihng9534mvqmq1946dmis5/fo0picsp1nhiucmc0l25s29respgpr4j/1631524275000/03522360960922298374/03522360960922298374/1Sx0jhdpEpnNIydS4rnN4kHSJtU1EyWka?e=view&authuser=0&nonce=gcrocepgbb17m&user=03522360960922298374&hash=tfhgbs86ka6divo3llbvp93mg4csvb38) no-repeat center/ cover;border-radius:10px;box-shadow:5px 20px 50px #000}.otp-checked{position:absolute;top:7px;right:43px;font-size:20px;cursor:default!important}.password-visiblity{position:absolute;top:7px;right:43px;font-size:20px}.strength-bar-container{display:flex;justify-content:space-between;width:80%!important;margin:auto;position:relative;top:-10px}.strength-bar{height:8px;width:23.5%;border-radius:6px;background-color:#d3d3d3ba}.mat-icon{cursor:pointer}#chk{display:none}.signup{position:relative;width:100%;height:100%}label{color:#fff;font-size:2.3em;justify-content:center;display:flex;margin:50px 50px 20px;font-weight:700;cursor:pointer;transition:.5s ease-in-out}input{width:80%;height:10px;background:#e0dede;justify-content:center;display:flex;margin:20px auto;padding:18px;border:none;outline:none;border-radius:5px}button{width:80%!important;height:40px;margin:10px auto;justify-content:center;display:block;color:#fff;background:#573b8a;font-size:1em;font-weight:700;outline:none;border:none;border-radius:5px;transition:.2s ease-in;cursor:pointer}button:hover{background:#6d44b8}.login{height:460px;background:#eee;border-radius:60%/10%;transform:translateY(-180px);transition:.8s ease-in-out}.login label{color:#573b8a;transform:scale(.6)}#chk:checked~.login{transform:translateY(-500px)}#chk:checked~.login label{transform:scale(1)}#chk:checked~.signup label{transform:scale(.6)}\n"] }]
|
255
255
|
}], ctorParameters: () => [{ type: i1.RestService }, { type: i2.Router }, { type: i3.MessageService }, { type: i4.StorageServiceService }, { type: i5.MatDialog }, { type: i5.MatDialogRef, decorators: [{
|
256
256
|
type: Optional
|
257
257
|
}] }, { type: i6.MatBottomSheetRef, decorators: [{
|
258
258
|
type: Optional
|
259
259
|
}] }] });
|
260
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24tcmVxdWlyZWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvYXV0aGVudGljYXRpb24tcmVxdWlyZWQvYXV0aGVudGljYXRpb24tcmVxdWlyZWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvYXV0aGVudGljYXRpb24tcmVxdWlyZWQvYXV0aGVudGljYXRpb24tcmVxdWlyZWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHNUMsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBa0J2RCxNQUFNLE9BQU8sK0JBQStCO0lBcUIxQyxZQUNtQixXQUF3QixFQUN4QixNQUFjLEVBQ2QsY0FBOEIsRUFDOUIsY0FBcUMsRUFDckMsU0FBb0IsRUFDUixTQUF3RCxFQUN4RCxjQUFrRTtRQU45RSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxj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Q0FBQztnQkFDSixPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2RSxLQUFLLENBQUM7Z0JBQ0osT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0U7Z0JBQ0UsT0FBTyxXQUFXLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxNQUFNLFVBQVUsR0FBRyxrREFBa0QsQ0FBQztRQUN0RSxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxNQUFNLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQztJQUNsQyxDQUFDOzhHQTFQVSwrQkFBK0I7a0dBQS9CLCtCQUErQiw0RUFKL0IsQ0FBQyxjQUFjLENBQUMsMEJDeEI3Qiw2d0lBd0RBLDJxRkRyQ0ksWUFBWSw2VkFDWixXQUFXLG93Q0FDWCxXQUFXLHVXQUNYLGFBQWE7OzJGQU1KLCtCQUErQjtrQkFiM0MsU0FBUzsrQkFDRSwrQkFBK0IsY0FDN0IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxXQUFXO3dCQUNYLGFBQWE7cUJBQ2QsYUFDVSxDQUFDLGNBQWMsQ0FBQzs7MEJBK0J4QixRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgVG9hc3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RvYXN0JztcclxuaW1wb3J0IHsgRGV2aWNlSW5mbyB9IGZyb20gJy4uLy4uL3N0eWxlcy91c2VyLm1vZGFsJztcclxuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0UmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0JztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBVc2VyQmFzaWNJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi4vdXNlci1iYXNpYy1pbmZvL3VzZXItYmFzaWMtaW5mby5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1hdXRoZW50aWNhdGlvbi1yZXF1aXJlZCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFRvYXN0TW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRoZW50aWNhdGlvbi1yZXF1aXJlZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2F1dGhlbnRpY2F0aW9uLXJlcXVpcmVkLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGlvblJlcXVpcmVkQ29tcG9uZW50IHtcclxuICAvLyBwcml2YXRlIGVtYWlsVGltZXI6IE5vZGVKUy5UaW1lb3V0IHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBtb2JpbGVUaW1lcjogYW55O1xyXG4gIHB1YmxpYyBlbWFpbDogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgbW9iaWxlOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHB1YmxpYyBvdHA6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIHBhc3N3b3JkOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHB1YmxpYyBjb25mUGFzc3dvcmQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHB1YmxpYyBidXR0b25Mb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGJ1c2luZXNzSWQ6IHN0cmluZyB8IG51bGwgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJJZFwiKTtcclxuICBwdWJsaWMgaXNPVFBWZXJpZmllZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBwYXNzd29yZEhpZGRlbjogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIHBhc3N3b3JkU3RyZW5ndGhDb3VudDogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgcGFzc3dvcmRTdHJlbmd0aCA9IFtcclxuICAgIHsgdHlwZTogXCJtaW5pbXVtIDggY2hhcmFjdGVyXCIsIGFjdGl2ZTogZmFsc2UgfSxcclxuICAgIHsgdHlwZTogXCJhdGxlYXN0IG9uZSBVUFBFUkNBU0VcIiwgYWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgeyB0eXBlOiBcImF0bGVhc3Qgb25lIGxvd2VyY2FzZVwiLCBhY3RpdmU6IGZhbHNlIH0sXHJcbiAgICB7IHR5cGU6IFwiYXRsZWFzdCBvbmUgbnVtYmVyXCIsIGFjdGl2ZTogZmFsc2UgfSxcclxuICBdXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hdERpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxBdXRoZW50aWNhdGlvblJlcXVpcmVkQ29tcG9uZW50PixcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgYm90dG9tc2hlZXRSZWY6IE1hdEJvdHRvbVNoZWV0UmVmPEF1dGhlbnRpY2F0aW9uUmVxdWlyZWRDb21wb25lbnQ+LFxyXG4gICkge31cclxuXHJcbiAgbG9naW5UeXBlOiBcIlBBU1NXT1JEXCIgfCBcIk9UUFwiID0gXCJPVFBcIjtcclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuICBsb2dpbigpe1xyXG4gICAgaWYgKHRoaXMubG9naW5UeXBlID09IFwiT1RQXCIpIHtcclxuICAgICAgdGhpcy52ZXJpZnlPVFAoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmVyaWZ5UGFzc3dvcmQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgdmVyaWZ5UGFzc3dvcmQoKSB7XHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICBidXNpbmVzc0lkOiB0aGlzLmJ1c2luZXNzSWQsXHJcbiAgICAgIGVtYWlsOiB0aGlzLmVtYWlsLFxyXG4gICAgICBwYXNzd29yZDogdGhpcy5wYXNzd29yZFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnNpZ25pblBhc3N3b3JkKHBheWxvYWQpLnN1YnNjcmliZSgocmVzcG9uc2U6YW55KT0+e1xyXG4gICAgICBjb25zdCB1c2VyRGV0YWlscyA9IHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0VXNlcihyZXNwb25zZS5kYXRhKTtcclxuICAgICAgdGhpcy5idXR0b25Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB9LFxyXG4gICAgKGVycm9yKSA9PiB7XHJcbiAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnSW52YWxpZCBjcmVkZW50aWFscycsIGRldGFpbDogJ1BsZWFzZSBlbnRlciB2YWxpZCBjcmVkZW50aWFscycgfSk7XHJcbiAgICB9KVxyXG4gIH1cclxuICB2ZXJpZnlPVFAoKSB7XHJcblxyXG4gICAgY29uc3QgZGV2aWNlSW5mbzogRGV2aWNlSW5mbyB8IG51bGwgPSB7XHJcbiAgICAgIGZpcmViYXNlVG9rZW46IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiZmJUb2tlblwiKSA/PyBcIlwiXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnZlcmlmeU9UUCh0aGlzLm1vYmlsZSA/PyBcIlwiLCB0aGlzLm90cCwgZGV2aWNlSW5mbykuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHVzZXJEZXRhaWxzID0gdGhpcy5zdG9yYWdlU2VydmljZS5zZXRVc2VyKHJlc3BvbnNlLmRhdGEpO1xyXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgfSxcclxuICAgIChlcnJvcikgPT4ge1xyXG4gICAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0ludmFsaWQgT1RQJywgZGV0YWlsOiAnUGxlYXNlIGVudGVyIHZhbGlkIG90cCcgfSk7XHJcbiAgICB9KVxyXG4gIH1cclxuICBzZW5kU2lnbnVwT1RQKCl7XHJcblxyXG4gICAgdGhpcy5pc09UUFZlcmlmaWVkID0gZmFsc2U7XHJcbiAgICBpZiAodGhpcy5tb2JpbGVUaW1lcilcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMubW9iaWxlVGltZXIpO1xyXG4gICAgdGhpcy5tb2JpbGVUaW1lciA9IHNldFRpbWVvdXQoKCk9PiB7XHJcbiAgICAgIGlmICh0aGlzLm1vYmlsZS5sZW5ndGggIT0gMTApXHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICBjb25zdCBwYXlsb2FkOiBhbnkgPSB7XHJcbiAgICAgICAgYnVzaW5lc3NJZDogdGhpcy5idXNpbmVzc0lkLFxyXG4gICAgICAgIG1vYmlsZTogdGhpcy5tb2JpbGUsXHJcbiAgICAgICAgZW1haWw6IHRoaXMuZW1haWwsXHJcbiAgICAgICAgcGFzc3dvcmQ6IHRoaXMucGFzc3dvcmQsXHJcbiAgICAgICAgY291bnRyeUNvZGU6ICc5MSdcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnJlc3RTZXJ2aWNlLnNlbmRTaWdudXBPVFAocGF5bG9hZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT57XHJcbiAgICAgICAgdGhpcy5pc09UUFZlcmlmaWVkID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdPVFAnLCBkZXRhaWw6ICdPVFAgU2VudCcgfSk7XHJcbiAgICAgIH0pXHJcbiAgICB9LCA4MDApO1xyXG4gIH1cclxuICBjcmVhdGVBY2NvdW50KCkge1xyXG5cclxuICAgIGNvbnN0IGRldmljZUluZm86IERldmljZUluZm8gfCBudWxsID0ge1xyXG4gICAgICBmaXJlYmFzZVRva2VuOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImZiVG9rZW5cIikgPz8gXCJcIlxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSB0cnVlO1xyXG4gICAgbGV0IHZlcmlmeVNpZ25EYXRhID0ge1xyXG4gICAgICBidXNpbmVzc0lkOiB0aGlzLmJ1c2luZXNzSWQsXHJcbiAgICAgIG1vYmlsZTogdGhpcy5tb2JpbGUsXHJcbiAgICAgIGVtYWlsOiB0aGlzLmVtYWlsLFxyXG4gICAgICBwYXNzd29yZDogdGhpcy5wYXNzd29yZCxcclxuICAgICAgY291bnRyeUNvZGU6IFwiKzkxXCIsXHJcbiAgICAgIGVudGVyZWRPdHA6IHRoaXMub3RwXHJcbiAgICB9XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnZlcmlmeVNpZ251cE9UUCh2ZXJpZnlTaWduRGF0YSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHVzZXJEZXRhaWxzID0gdGhpcy5zdG9yYWdlU2VydmljZS5zZXRVc2VyKHJlc3BvbnNlLmRhdGEpO1xyXG4gICAgICB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnVwZGF0ZUFsbERhdGEoKTtcclxuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgICAgdGhpcy5idXR0b25Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIFN3YWwuZmlyZSh7XHJcbiAgICAgICAgaWNvbjogXCJzdWNjZXNzXCIsXHJcbiAgICAgICAgdGl0bGU6IFwiSHVycmF5XCIsXHJcbiAgICAgICAgdGV4dDogXCJZb3VyIGFjY291bnQgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWRcIixcclxuICAgICAgICBzaG93Q2FuY2VsQnV0dG9uOiAhKHVzZXJEZXRhaWxzLmNvbnRhY3Q/Lm5hbWU/Lmxlbmd0aCA+IDApLFxyXG4gICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiBcIkkgbG92ZWQgaXRcIixcclxuICAgICAgICBjYW5jZWxCdXR0b25UZXh0OiBcIkZpbGwgb3RoZXIgYmFzaWMgZGV0YWlsc1wiLFxyXG4gICAgICAgIGNhbmNlbEJ1dHRvbkNvbG9yOiBcIiM5MjhjOGNcIixcclxuICAgICAgfSlcclxuICAgIH0sIChlcnJvcikgPT4ge1xyXG4gICAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PT0gNTAwKSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ1VzZXIgYWxyZWFkeSBleGlzdHMnIH0pXHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0ludmFsaWQgT1RQJywgZGV0YWlsOiAnUGxlYXNlIGVudGVyIHZhbGlkIG90cCcgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHZlcmlmeVNpZ251cE9UUCgpIHtcclxuXHJcbiAgICBpZiAodGhpcy5vdHAubGVuZ3RoICE9IDYpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBkZXZpY2VJbmZvOiBEZXZpY2VJbmZvIHwgbnVsbCA9IHtcclxuICAgICAgZmlyZWJhc2VUb2tlbjogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJmYlRva2VuXCIpID8/IFwiXCJcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5idXR0b25Mb2FkaW5nID0gdHJ1ZTtcclxuICAgIGxldCB2ZXJpZnlTaWduRGF0YSA9IHtcclxuICAgICAgYnVzaW5lc3NJZDogdGhpcy5idXNpbmVzc0lkLFxyXG4gICAgICBtb2JpbGU6IHRoaXMubW9iaWxlLFxyXG4gICAgICBlbWFpbDogdGhpcy5lbWFpbCxcclxuICAgICAgcGFzc3dvcmQ6IHRoaXMucGFzc3dvcmQsXHJcbiAgICAgIGNvdW50cnlDb2RlOiBcIjkxXCIsXHJcbiAgICAgIGVudGVyZWRPdHA6IHRoaXMub3RwXHJcbiAgICB9XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnZlcmlmeVNpZ251cE9UUCh2ZXJpZnlTaWduRGF0YSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XHJcblxyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdPVFAnLCBkZXRhaWw6ICdPVFAgVmVyaWZpZWQnIH0pO1xyXG4gICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA1MDApIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnVXNlciBhbHJlYWR5IGV4aXN0cycgfSlcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnSW52YWxpZCBPVFAnLCBkZXRhaWw6ICdQbGVhc2UgZW50ZXIgdmFsaWQgb3RwJyB9KTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgZW50ZXJNb2JpbGUoKSB7XHJcblxyXG4gICAgaWYgKHRoaXMubW9iaWxlVGltZXIpXHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLm1vYmlsZVRpbWVyKTtcclxuICAgIHRoaXMubW9iaWxlVGltZXIgPSBzZXRUaW1lb3V0KCgpPT4ge1xyXG4gICAgICBpZiAodGhpcy5tb2JpbGUubGVuZ3RoICE9IDEwKVxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgdGhpcy5nZW5lcmF0ZU9UUCgpO1xyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlT1RQKCkge1xyXG4gICAgdGhpcy5idXR0b25Mb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2VuZXJhdGVPVFAodGhpcy5tb2JpbGUgPz8gXCJcIiwgXCI5MVwiKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuICAgICAgICAgIHNldmVyaXR5OiAnc3VjY2VzcycsXHJcbiAgICAgICAgICBzdW1tYXJ5OiAnT1RQIFNlbnQnLFxyXG4gICAgICAgICAgZGV0YWlsOiAnT1RQIHNlbnQgdG8gbW9iaWxlLiBWYWxpZCBmb3IgMyBtaW5zJyxcclxuICAgICAgICAgIGxpZmU6IDEwMDAwXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycm9yPy5lcnJvcj8ubWVzc2FnZTtcclxuXHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG4gICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXHJcbiAgICAgICAgICBzdW1tYXJ5OiAnT1RQIFJlcXVlc3QnLFxyXG4gICAgICAgICAgZGV0YWlsOiBlcnJvck1lc3NhZ2UsXHJcbiAgICAgICAgICBsaWZlOiAxMDAwMFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVOdW1iZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNoYXJDb2RlID0gZXZlbnQuY2hhckNvZGU7XHJcbiAgICBpZiAoY2hhckNvZGUgPCA0OCB8fCBjaGFyQ29kZSA+IDU3KSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZU9UUChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub3RwLmxlbmd0aCA9PSA2KSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoZWNrU3RyZW5ndGgoKSB7XHJcbiAgICB0aGlzLnBhc3N3b3JkU3RyZW5ndGhDb3VudCA9IDA7XHJcbiAgICB0aGlzLnBhc3N3b3JkU3RyZW5ndGhDb3VudCArPSAoL1tBLVpdLy50ZXN0KHRoaXMucGFzc3dvcmQpKSA/IDEgOiAwO1xyXG4gICAgdGhpcy5wYXNzd29yZFN0cmVuZ3RoQ291bnQgKz0gKC9bYS16XS8udGVzdCh0aGlzLnBhc3N3b3JkKSkgPyAxIDogMDtcclxuICAgIHRoaXMucGFzc3dvcmRTdHJlbmd0aENvdW50ICs9ICgvXFxkLy50ZXN0KHRoaXMucGFzc3dvcmQpKSA/IDEgOiAwO1xyXG4gICAgdGhpcy5wYXNzd29yZFN0cmVuZ3RoQ291bnQgKz0gKHRoaXMucGFzc3dvcmQubGVuZ3RoID4gOCA/IDEgOiAwKTtcclxuICAgIGNvbnNvbGUubG9nKC9eW0EtWl0rJC8udGVzdCh0aGlzLnBhc3N3b3JkKSwgL15bYS16XSskLy50ZXN0KHRoaXMucGFzc3dvcmQpLCAvXFxkLy50ZXN0KHRoaXMucGFzc3dvcmQpICk7XHJcbiAgfVxyXG4gIGdldFN0cmVuZ3RoQ29sb3IoaW5kZXg6IG51bWJlcikge1xyXG4gICAgc3dpdGNoKHRoaXMucGFzc3dvcmRTdHJlbmd0aENvdW50KSB7XHJcbiAgICAgIGNhc2UgMTpcclxuICAgICAgICByZXR1cm4gKGluZGV4IDwgdGhpcy5wYXNzd29yZFN0cmVuZ3RoQ291bnQgPyBcInRvbWF0b1wiIDogXCIjZDNkM2QzYmFcIik7XHJcbiAgICAgIGNhc2UgMjpcclxuICAgICAgICByZXR1cm4gKGluZGV4IDwgdGhpcy5wYXNzd29yZFN0cmVuZ3RoQ291bnQgPyBcIm9yYW5nZVwiIDogXCIjZDNkM2QzYmFcIik7XHJcbiAgICAgIGNhc2UgMzpcclxuICAgICAgICByZXR1cm4gKGluZGV4IDwgdGhpcy5wYXNzd29yZFN0cmVuZ3RoQ291bnQgPyBcInllbGxvd1wiIDogXCIjZDNkM2QzYmFcIik7XHJcbiAgICAgIGNhc2UgNDpcclxuICAgICAgICByZXR1cm4gKGluZGV4IDwgdGhpcy5wYXNzd29yZFN0cmVuZ3RoQ291bnQgPyBcImxpZ2h0Z3JlZW5cIiA6IFwiI2QzZDNkM2JhXCIpO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBcIiNkM2QzZDNiYVwiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRW1haWxWYWxpZCgpIHtcclxuICAgIGNvbnN0IGVtYWlsUmVnZXggPSAvXlthLXpBLVowLTkuXyUrLV0rQFthLXpBLVowLTkuLV0rXFwuW2EtekEtWl17Mix9JC87XHJcbiAgICByZXR1cm4gZW1haWxSZWdleC50ZXN0KHRoaXMuZW1haWwpO1xyXG4gIH1cclxuICBnZXQgaXNQYXNzd29yZFZhbGlkKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNNb2JpbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPD0gNDc1O1xyXG4gIH1cclxufVxyXG4iLCJcclxuPHAtdG9hc3QgcG9zaXRpb249XCJib3R0b20tcmlnaHRcIiBbYmFzZVpJbmRleF09XCIxMDAwMDAwMDAwMFwiIFthdXRvWkluZGV4XT1cInRydWVcIlxyXG4gICAgW3Nob3dUcmFuc2Zvcm1PcHRpb25zXT1cImlzTW9iaWxlID8gJ3RyYW5zbGF0ZVkoLTEwMCUpJyA6ICcnXCI+PC9wLXRvYXN0PlxyXG48ZGl2IGNsYXNzPVwiY2xvc2UtaWNvblwiIChjbGljayk9XCJjbG9zZSgpXCI+XHJcbiAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG48L2Rpdj5cclxuPHNlY3Rpb24+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWFpblwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImNoa1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpZ251cFwiPlxyXG4gICAgICAgICAgICAgICAgPGZvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNoa1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPkxvZ2luPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIiBzdHlsZT1cImdhcDogNXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9naW4tdHlwZVwiIFtuZ0NsYXNzXT1cInsnbG9naW4tdHlwZV9fYWN0aXZlJzogbG9naW5UeXBlID09ICdPVFAnfVwiIChjbGljayk9XCJsb2dpblR5cGUgPSAnT1RQJ1wiPk9UUCBMb2dpbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9naW4tdHlwZVwiIFtuZ0NsYXNzXT1cInsnbG9naW4tdHlwZV9fYWN0aXZlJzogbG9naW5UeXBlID09ICdQQVNTV09SRCd9XCIgKGNsaWNrKT1cImxvZ2luVHlwZSA9ICdQQVNTV09SRCdcIj5QYXNzd29yZCBMb2dpbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2dpblR5cGUgPT0gJ1BBU1NXT1JEJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImVtYWlsXCIgbmFtZT1cImVtYWlsXCIgcGxhY2Vob2xkZXI9XCJFbWFpbFwiIHJlcXVpcmVkPVwiXCIgWyhuZ01vZGVsKV09XCJlbWFpbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbdHlwZV09XCJwYXNzd29yZEhpZGRlbiA/ICdwYXNzd29yZCcgOiAndGV4dCdcIiBuYW1lPVwicGFzc3dvcmRcIiBwbGFjZWhvbGRlcj1cIkNyZWF0ZSBQYXNzd29yZFwiIHJlcXVpcmVkPVwiXCIgWyhuZ01vZGVsKV09XCJwYXNzd29yZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwicGFzc3dvcmQtdmlzaWJsaXR5XCIgKGNsaWNrKT1cInBhc3N3b3JkSGlkZGVuID0gIXBhc3N3b3JkSGlkZGVuXCI+e3twYXNzd29yZEhpZGRlbiA/ICd2aXNpYmlsaXR5X29mZicgOiAndmlzaWJpbGl0eSd9fTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2dpblR5cGUgPT0gJ09UUCdcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJtb2JpbGVcIiBuYW1lPVwibW9iaWxlXCIgcGxhY2Vob2xkZXI9XCJNb2JpbGVcIiByZXF1aXJlZD1cIlwiIChrZXlwcmVzcyk9XCJ2YWxpZGF0ZU51bWJlcigkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJtb2JpbGVcIiAobmdNb2RlbENoYW5nZSk9XCJlbnRlck1vYmlsZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwib3RwXCIgbmFtZT1cIm90cFwiIHBsYWNlaG9sZGVyPVwiRW50ZXIgcmVjZWl2ZWQgb3RwXCIgcmVxdWlyZWQ9XCJcIiBbKG5nTW9kZWwpXT1cIm90cFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImxvZ2luKClcIiAqbmdJZj1cIiFidXR0b25Mb2FkaW5nXCIgW2Rpc2FibGVkXT1cIihsb2dpblR5cGUgPT0gJ1BBU1NXT1JEJyA/ICFpc0VtYWlsVmFsaWQgOiBmYWxzZSlcIj5Mb2dpbjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJidXR0b25Mb2FkaW5nXCI+TG9hZGluZy4uLjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9mb3JtPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2dpblwiPlxyXG4gICAgICAgICAgICAgICAgPGZvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNoa1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlNpZ24gdXA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZW1haWxcIiBuYW1lPVwiZW1haWxcIiBwbGFjZWhvbGRlcj1cIkVtYWlsXCIgcmVxdWlyZWQ9XCJcIiBbKG5nTW9kZWwpXT1cImVtYWlsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJtb2JpbGVcIiBuYW1lPVwibW9iaWxlXCIgcGxhY2Vob2xkZXI9XCJNb2JpbGVcIiByZXF1aXJlZD1cIlwiIChrZXlwcmVzcyk9XCJ2YWxpZGF0ZU51bWJlcigkZXZlbnQpXCIgWyhuZ01vZGVsKV09XCJtb2JpbGVcIiAobmdNb2RlbENoYW5nZSk9XCJzZW5kU2lnbnVwT1RQKClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJvdHBcIiBuYW1lPVwib3RwXCIgcGxhY2Vob2xkZXI9XCJPVFBcIiByZXF1aXJlZD1cIlwiIFsobmdNb2RlbCldPVwib3RwXCIgKGtleXByZXNzKT1cInZhbGlkYXRlT1RQKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bWF0LWljb24gc3R5bGU9XCJjb2xvcjogbGlnaHRncmVlbjtcIiBjbGFzcz1cIm90cC1jaGVja2VkXCIgdGl0bGU9XCJPVFAgVmVyaWZpZWRcIiAqbmdJZj1cImlzT1RQVmVyaWZpZWRcIj5jaGVja19jaXJjbGU8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gc3R5bGU9XCJjb2xvcjogdG9tYXRvO1wiIGNsYXNzPVwib3RwLWNoZWNrZWRcIiB0aXRsZT1cIk9UUCBub3QgVmVyaWZpZWRcIiAqbmdJZj1cIiFpc09UUFZlcmlmaWVkXCI+Y2FuY2VsPC9tYXQtaWNvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbdHlwZV09XCJwYXNzd29yZEhpZGRlbiA/ICdwYXNzd29yZCcgOiAndGV4dCdcIiBuYW1lPVwicGFzc3dvcmRcIiBwbGFjZWhvbGRlcj1cIkNyZWF0ZSBQYXNzd29yZFwiIHJlcXVpcmVkPVwiXCIgWyhuZ01vZGVsKV09XCJwYXNzd29yZFwiIChuZ01vZGVsQ2hhbmdlKT1cImNoZWNrU3RyZW5ndGgoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJwYXNzd29yZC12aXNpYmxpdHlcIiAoY2xpY2spPVwicGFzc3dvcmRIaWRkZW4gPSAhcGFzc3dvcmRIaWRkZW5cIj57e3Bhc3N3b3JkSGlkZGVuID8gJ3Zpc2liaWxpdHlfb2ZmJyA6ICd2aXNpYmlsaXR5J319PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cmVuZ3RoLWJhci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHN0cmVuZ3RoIG9mIHBhc3N3b3JkU3RyZW5ndGg7IGxldCBpZHggPSBpbmRleFwiIGNsYXNzPVwic3RyZW5ndGgtYmFyXCIgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJnZXRTdHJlbmd0aENvbG9yKGlkeClcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY3JlYXRlQWNjb3VudCgpXCIgW2Rpc2FibGVkXT1cIiFpc0VtYWlsVmFsaWQgfHwgIWlzUGFzc3dvcmRWYWxpZCB8fCAob3RwLmxlbmd0aCAhPSA2KVwiPlNpZ24gdXA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvc2VjdGlvbj5cclxuIl19
|
260
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24tcmVxdWlyZWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvYXV0aGVudGljYXRpb24tcmVxdWlyZWQvYXV0aGVudGljYXRpb24tcmVxdWlyZWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvYXV0aGVudGljYXRpb24tcmVxdWlyZWQvYXV0aGVudGljYXRpb24tcmVxdWlyZWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHNUMsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7Ozs7O0FBa0J2RCxNQUFNLE9BQU8sK0JBQStCO0lBcUIxQyxZQUNtQixXQUF3QixFQUN4QixNQUFjLEVBQ2QsY0FBOEIsRUFDOUIsY0FBcUMsRUFDckMsU0FBb0IsRUFDUixTQUF3RCxFQUN4RCxjQUFrRTtRQU45RSxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUF1QjtRQUNyQyxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ1IsY0FBUyxHQUFULFNBQVMsQ0FBK0M7UUFDeEQsbUJBQWMsR0FBZCxjQUFjLENBQW9EO1FBekIxRixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBQ25CLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFDcEIsUUFBRyxHQUFXLEVBQUUsQ0FBQztRQUNqQixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsZUFBVSxHQUFrQixZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hELGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLG1CQUFjLEdBQVksSUFBSSxDQUFDO1FBQy9CLDBCQUFxQixHQUFXLENBQUMsQ0FBQztRQUNsQyxxQkFBZ0IsR0FBRztZQUN4QixFQUFFLElBQUksRUFBRSxxQkFBcUIsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1lBQzlDLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7WUFDaEQsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUNoRCxFQUFFLElBQUksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO1NBQzlDLENBQUE7UUFZRCxjQUFTLEdBQXVCLEtBQUssQ0FBQztJQUZuQyxDQUFDO0lBSUosS0FBSztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELEtBQUs7UUFDSCxJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksS0FBSyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBQ0QsY0FBYztRQUNaLE1BQU0sT0FBTyxHQUFHO1lBQ2QsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQTtRQUVELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVksRUFBQyxFQUFFO1lBQ2pFLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3pCLENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ1IsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7WUFDM0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMxRyxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxTQUFTO1FBRVAsTUFBTSxVQUFVLEdBQXNCO1lBQ3BDLGFBQWEsRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUU7U0FDckQsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDOUYsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDUixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQzFHLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELGFBQWE7UUFFWCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLElBQUksQ0FBQyxXQUFXO1lBQ2xCLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsR0FBRSxFQUFFO1lBQ2hDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRTtnQkFDMUIsT0FBTztZQUNULE1BQU0sT0FBTyxHQUFRO2dCQUNuQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7Z0JBQzNCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtnQkFDbkIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLFdBQVcsRUFBRSxJQUFJO2FBQ2xCLENBQUE7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDN0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZGLENBQUMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQUNELGFBQWE7UUFFWCxNQUFNLFVBQVUsR0FBc0I7WUFDcEMsYUFBYSxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRTtTQUNyRCxDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxjQUFjLEdBQUc7WUFDbkIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7WUFDakIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFdBQVcsRUFBRSxLQUFLO1lBQ2xCLFVBQVUsRUFBRSxJQUFJLENBQUMsR0FBRztTQUNyQixDQUFBO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBYSxFQUFFLEVBQUU7WUFDM0UsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9ELElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNSLElBQUksRUFBRSxTQUFTO2dCQUNmLEtBQUssRUFBRSxRQUFRO2dCQUNmLElBQUksRUFBRSxtQ0FBbUM7Z0JBQ3pDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDO2dCQUMxRCxpQkFBaUIsRUFBRSxZQUFZO2dCQUMvQixnQkFBZ0IsRUFBRSwwQkFBMEI7Z0JBQzVDLGlCQUFpQixFQUFFLFNBQVM7YUFDN0IsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDWCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUE7WUFDeEcsQ0FBQztpQkFDSSxDQUFDO2dCQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDekcsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELGVBQWU7UUFFYixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUM7WUFDdEIsT0FBTztRQUVULE1BQU0sVUFBVSxHQUFzQjtZQUNwQyxhQUFhLEVBQUUsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFO1NBQ3JELENBQUM7UUFFRixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztRQUMxQixJQUFJLGNBQWMsR0FBRztZQUNuQixVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1lBQ25CLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsV0FBVyxFQUFFLElBQUk7WUFDakIsVUFBVSxFQUFFLElBQUksQ0FBQyxHQUFHO1NBQ3JCLENBQUE7UUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUUzRSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUMzRixDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNYLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQztnQkFDekIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxDQUFDLENBQUE7WUFDaEYsQ0FBQztpQkFDSSxDQUFDO2dCQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSx3QkFBd0IsRUFBRSxDQUFDLENBQUM7WUFDM0csQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUNELFdBQVc7UUFFVCxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQ2xCLFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxVQUFVLENBQUMsR0FBRSxFQUFFO1lBQ2hDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksRUFBRTtnQkFDMUIsT0FBTztZQUNULElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNyQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FDN0QsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNYLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1lBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDO2dCQUN0QixRQUFRLEVBQUUsU0FBUztnQkFDbkIsT0FBTyxFQUFFLFVBQVU7Z0JBQ25CLE1BQU0sRUFBRSxzQ0FBc0M7Z0JBQzlDLElBQUksRUFBRSxLQUFLO2FBQ1osQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDUixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixNQUFNLFlBQVksR0FBRyxLQUFLLEVBQUUsS0FBSyxFQUFFLE9BQU8sQ0FBQztZQUUzQyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQztnQkFDdEIsUUFBUSxFQUFFLE9BQU87Z0JBQ2pCLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixNQUFNLEVBQUUsWUFBWTtnQkFDcEIsSUFBSSxFQUFFLEtBQUs7YUFDWixDQUFDLENBQUM7UUFDTCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBb0I7UUFDakMsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQztRQUNoQyxJQUFJLFFBQVEsR0FBRyxFQUFFLElBQUksUUFBUSxHQUFHLEVBQUUsRUFBRSxDQUFDO1lBQ25DLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFvQjtRQUM5QixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUNELGFBQWE7UUFDWCxJQUFJLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFFLENBQUM7SUFDekcsQ0FBQztJQUNELGdCQUFnQixDQUFDLEtBQWE7UUFDNUIsUUFBTyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUNsQyxLQUFLLENBQUM7Z0JBQ0osT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDdkUsS0FBSyxDQUFDO2dCQUNKLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZFLEtBQUssQ0FBQztnQkFDSixPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN2RSxLQUFLLENBQUM7Z0JBQ0osT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDM0U7Z0JBQ0UsT0FBTyxXQUFXLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxNQUFNLFVBQVUsR0FBRyxrREFBa0QsQ0FBQztRQUN0RSxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBTyxNQUFNLENBQUMsVUFBVSxJQUFJLEdBQUcsQ0FBQztJQUNsQyxDQUFDOzhHQTFQVSwrQkFBK0I7a0dBQS9CLCtCQUErQiw0RUFKL0IsQ0FBQyxjQUFjLENBQUMsMEJDeEI3Qiw0d0lBd0RBLDJxRkRyQ0ksWUFBWSw2VkFDWixXQUFXLG93Q0FDWCxXQUFXLHVXQUNYLGFBQWE7OzJGQU1KLCtCQUErQjtrQkFiM0MsU0FBUzsrQkFDRSwrQkFBK0IsY0FDN0IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxXQUFXO3dCQUNYLGFBQWE7cUJBQ2QsYUFDVSxDQUFDLGNBQWMsQ0FBQzs7MEJBK0J4QixRQUFROzswQkFDUixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUmVzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9yZXN0LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcclxuaW1wb3J0IHsgVG9hc3RNb2R1bGUgfSBmcm9tICdwcmltZW5nL3RvYXN0JztcclxuaW1wb3J0IHsgRGV2aWNlSW5mbyB9IGZyb20gJy4uLy4uL3N0eWxlcy91c2VyLm1vZGFsJztcclxuaW1wb3J0IHsgU3RvcmFnZVNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IFN3YWwgZnJvbSAnc3dlZXRhbGVydDInO1xyXG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XHJcbmltcG9ydCB7IE1hdEJvdHRvbVNoZWV0UmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYm90dG9tLXNoZWV0JztcclxuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBVc2VyQmFzaWNJbmZvQ29tcG9uZW50IH0gZnJvbSAnLi4vdXNlci1iYXNpYy1pbmZvL3VzZXItYmFzaWMtaW5mby5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1hdXRoZW50aWNhdGlvbi1yZXF1aXJlZCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFRvYXN0TW9kdWxlLFxyXG4gICAgTWF0SWNvbk1vZHVsZVxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbTWVzc2FnZVNlcnZpY2VdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRoZW50aWNhdGlvbi1yZXF1aXJlZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2F1dGhlbnRpY2F0aW9uLXJlcXVpcmVkLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoZW50aWNhdGlvblJlcXVpcmVkQ29tcG9uZW50IHtcclxuICAvLyBwcml2YXRlIGVtYWlsVGltZXI6IE5vZGVKUy5UaW1lb3V0IHwgbnVsbCA9IG51bGw7XHJcbiAgcHJpdmF0ZSBtb2JpbGVUaW1lcjogYW55O1xyXG4gIHB1YmxpYyBlbWFpbDogc3RyaW5nID0gXCJcIjtcclxuICBwdWJsaWMgbW9iaWxlOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHB1YmxpYyBvdHA6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIHBhc3N3b3JkOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHB1YmxpYyBjb25mUGFzc3dvcmQ6IHN0cmluZyA9IFwiXCI7XHJcbiAgcHVibGljIHVzZXJOYW1lOiBzdHJpbmcgPSBcIlwiO1xyXG4gIHB1YmxpYyBidXR0b25Mb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGJ1c2luZXNzSWQ6IHN0cmluZyB8IG51bGwgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJJZFwiKTtcclxuICBwdWJsaWMgaXNPVFBWZXJpZmllZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBwYXNzd29yZEhpZGRlbjogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIHBhc3N3b3JkU3RyZW5ndGhDb3VudDogbnVtYmVyID0gMDtcclxuICBwdWJsaWMgcGFzc3dvcmRTdHJlbmd0aCA9IFtcclxuICAgIHsgdHlwZTogXCJtaW5pbXVtIDggY2hhcmFjdGVyXCIsIGFjdGl2ZTogZmFsc2UgfSxcclxuICAgIHsgdHlwZTogXCJhdGxlYXN0IG9uZSBVUFBFUkNBU0VcIiwgYWN0aXZlOiBmYWxzZSB9LFxyXG4gICAgeyB0eXBlOiBcImF0bGVhc3Qgb25lIGxvd2VyY2FzZVwiLCBhY3RpdmU6IGZhbHNlIH0sXHJcbiAgICB7IHR5cGU6IFwiYXRsZWFzdCBvbmUgbnVtYmVyXCIsIGFjdGl2ZTogZmFsc2UgfSxcclxuICBdXHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXN0U2VydmljZTogUmVzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0b3JhZ2VTZXJ2aWNlOiBTdG9yYWdlU2VydmljZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG1hdERpYWxvZzogTWF0RGlhbG9nLFxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxBdXRoZW50aWNhdGlvblJlcXVpcmVkQ29tcG9uZW50PixcclxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgYm90dG9tc2hlZXRSZWY6IE1hdEJvdHRvbVNoZWV0UmVmPEF1dGhlbnRpY2F0aW9uUmVxdWlyZWRDb21wb25lbnQ+LFxyXG4gICkge31cclxuXHJcbiAgbG9naW5UeXBlOiBcIlBBU1NXT1JEXCIgfCBcIk9UUFwiID0gXCJPVFBcIjtcclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gIH1cclxuICBsb2dpbigpe1xyXG4gICAgaWYgKHRoaXMubG9naW5UeXBlID09IFwiT1RQXCIpIHtcclxuICAgICAgdGhpcy52ZXJpZnlPVFAoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmVyaWZ5UGFzc3dvcmQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgdmVyaWZ5UGFzc3dvcmQoKSB7XHJcbiAgICBjb25zdCBwYXlsb2FkID0ge1xyXG4gICAgICBidXNpbmVzc0lkOiB0aGlzLmJ1c2luZXNzSWQsXHJcbiAgICAgIGVtYWlsOiB0aGlzLmVtYWlsLFxyXG4gICAgICBwYXNzd29yZDogdGhpcy5wYXNzd29yZFxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnNpZ25pblBhc3N3b3JkKHBheWxvYWQpLnN1YnNjcmliZSgocmVzcG9uc2U6YW55KT0+e1xyXG4gICAgICBjb25zdCB1c2VyRGV0YWlscyA9IHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0VXNlcihyZXNwb25zZS5kYXRhKTtcclxuICAgICAgdGhpcy5idXR0b25Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgICB9LFxyXG4gICAgKGVycm9yKSA9PiB7XHJcbiAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnTG9naW4gcmVxdWVzdCcsIGRldGFpbDogZXJyb3I/LmVycm9yPy5tZXNzYWdlIH0pO1xyXG4gICAgfSlcclxuICB9XHJcbiAgdmVyaWZ5T1RQKCkge1xyXG5cclxuICAgIGNvbnN0IGRldmljZUluZm86IERldmljZUluZm8gfCBudWxsID0ge1xyXG4gICAgICBmaXJlYmFzZVRva2VuOiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImZiVG9rZW5cIikgPz8gXCJcIlxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5yZXN0U2VydmljZS52ZXJpZnlPVFAodGhpcy5tb2JpbGUgPz8gXCJcIiwgdGhpcy5vdHAsIGRldmljZUluZm8pLnN1YnNjcmliZSgocmVzcG9uc2U6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCB1c2VyRGV0YWlscyA9IHRoaXMuc3RvcmFnZVNlcnZpY2Uuc2V0VXNlcihyZXNwb25zZS5kYXRhKTtcclxuICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcclxuICAgIH0sXHJcbiAgICAoZXJyb3IpID0+IHtcclxuICAgICAgdGhpcy5idXR0b25Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnk6IFwiTG9naW4gcmVxdWVzdFwiLCBkZXRhaWw6IGVycm9yPy5lcnJvcj8ubWVzc2FnZSB9KTtcclxuICAgIH0pXHJcbiAgfVxyXG4gIHNlbmRTaWdudXBPVFAoKXtcclxuXHJcbiAgICB0aGlzLmlzT1RQVmVyaWZpZWQgPSBmYWxzZTtcclxuICAgIGlmICh0aGlzLm1vYmlsZVRpbWVyKVxyXG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5tb2JpbGVUaW1lcik7XHJcbiAgICB0aGlzLm1vYmlsZVRpbWVyID0gc2V0VGltZW91dCgoKT0+IHtcclxuICAgICAgaWYgKHRoaXMubW9iaWxlLmxlbmd0aCAhPSAxMClcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIGNvbnN0IHBheWxvYWQ6IGFueSA9IHtcclxuICAgICAgICBidXNpbmVzc0lkOiB0aGlzLmJ1c2luZXNzSWQsXHJcbiAgICAgICAgbW9iaWxlOiB0aGlzLm1vYmlsZSxcclxuICAgICAgICBlbWFpbDogdGhpcy5lbWFpbCxcclxuICAgICAgICBwYXNzd29yZDogdGhpcy5wYXNzd29yZCxcclxuICAgICAgICBjb3VudHJ5Q29kZTogJzkxJ1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMucmVzdFNlcnZpY2Uuc2VuZFNpZ251cE9UUChwYXlsb2FkKS5zdWJzY3JpYmUoKHJlczogYW55KSA9PntcclxuICAgICAgICB0aGlzLmlzT1RQVmVyaWZpZWQgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ09UUCcsIGRldGFpbDogJ09UUCBTZW50JyB9KTtcclxuICAgICAgfSlcclxuICAgIH0sIDgwMCk7XHJcbiAgfVxyXG4gIGNyZWF0ZUFjY291bnQoKSB7XHJcblxyXG4gICAgY29uc3QgZGV2aWNlSW5mbzogRGV2aWNlSW5mbyB8IG51bGwgPSB7XHJcbiAgICAgIGZpcmViYXNlVG9rZW46IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwiZmJUb2tlblwiKSA/PyBcIlwiXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IHRydWU7XHJcbiAgICBsZXQgdmVyaWZ5U2lnbkRhdGEgPSB7XHJcbiAgICAgIGJ1c2luZXNzSWQ6IHRoaXMuYnVzaW5lc3NJZCxcclxuICAgICAgbW9iaWxlOiB0aGlzLm1vYmlsZSxcclxuICAgICAgZW1haWw6IHRoaXMuZW1haWwsXHJcbiAgICAgIHBhc3N3b3JkOiB0aGlzLnBhc3N3b3JkLFxyXG4gICAgICBjb3VudHJ5Q29kZTogXCIrOTFcIixcclxuICAgICAgZW50ZXJlZE90cDogdGhpcy5vdHBcclxuICAgIH1cclxuICAgIHRoaXMucmVzdFNlcnZpY2UudmVyaWZ5U2lnbnVwT1RQKHZlcmlmeVNpZ25EYXRhKS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgdXNlckRldGFpbHMgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLnNldFVzZXIocmVzcG9uc2UuZGF0YSk7XHJcbiAgICAgIHRoaXMuc3RvcmFnZVNlcnZpY2UudXBkYXRlQWxsRGF0YSgpO1xyXG4gICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xyXG4gICAgICB0aGlzLmJ1dHRvbkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgU3dhbC5maXJlKHtcclxuICAgICAgICBpY29uOiBcInN1Y2Nlc3NcIixcclxuICAgICAgICB0aXRsZTogXCJIdXJyYXlcIixcclxuICAgICAgICB0ZXh0OiBcIllvdXIgYWNjb3VudCBzdWNjZXNzZnVsbHkgY3JlYXRlZFwiLFxyXG4gICAgICAgIHNob3dDYW5jZWxCdXR0b246ICEodXNlckRldGFpbHMuY29udGFjdD8ubmFtZT8ubGVuZ3RoID4gMCksXHJcbiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6IFwiSSBsb3ZlZCBpdFwiLFxyXG4gICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6IFwiRmlsbCBvdGhlciBiYXNpYyBkZXRhaWxzXCIsXHJcbiAgICAgICAgY2FuY2VsQnV0dG9uQ29sb3I6IFwiIzkyOGM4Y1wiLFxyXG4gICAgICB9KVxyXG4gICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA1MDApIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnU2lnbnVwIGVycm9yJywgZGV0YWlsOiBlcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgfSlcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnU2lnbnVwIGVycm9yJywgZGV0YWlsOiBlcnJvcj8uZXJyb3I/Lm1lc3NhZ2UgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG4gIHZlcmlmeVNpZ251cE9UUCgpIHtcclxuXHJcbiAgICBpZiAodGhpcy5vdHAubGVuZ3RoICE9IDYpXHJcbiAgICAgIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBkZXZpY2VJbmZvOiBEZXZpY2VJbmZvIHwgbnVsbCA9IHtcclxuICAgICAgZmlyZWJhc2VUb2tlbjogbG9jYWxTdG9yYWdlLmdldEl0ZW0oXCJmYlRva2VuXCIpID8/IFwiXCJcclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5idXR0b25Mb2FkaW5nID0gdHJ1ZTtcclxuICAgIGxldCB2ZXJpZnlTaWduRGF0YSA9IHtcclxuICAgICAgYnVzaW5lc3NJZDogdGhpcy5idXNpbmVzc0lkLFxyXG4gICAgICBtb2JpbGU6IHRoaXMubW9iaWxlLFxyXG4gICAgICBlbWFpbDogdGhpcy5lbWFpbCxcclxuICAgICAgcGFzc3dvcmQ6IHRoaXMucGFzc3dvcmQsXHJcbiAgICAgIGNvdW50cnlDb2RlOiBcIjkxXCIsXHJcbiAgICAgIGVudGVyZWRPdHA6IHRoaXMub3RwXHJcbiAgICB9XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnZlcmlmeVNpZ251cE9UUCh2ZXJpZnlTaWduRGF0YSkuc3Vic2NyaWJlKChyZXNwb25zZTogYW55KSA9PiB7XHJcblxyXG4gICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdPVFAnLCBkZXRhaWw6ICdPVFAgVmVyaWZpZWQnIH0pO1xyXG4gICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09PSA1MDApIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnVXNlciBhbHJlYWR5IGV4aXN0cycgfSlcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IHNldmVyaXR5OiAnZXJyb3InLCBzdW1tYXJ5OiAnSW52YWxpZCBPVFAnLCBkZXRhaWw6ICdQbGVhc2UgZW50ZXIgdmFsaWQgb3RwJyB9KTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiAgZW50ZXJNb2JpbGUoKSB7XHJcblxyXG4gICAgaWYgKHRoaXMubW9iaWxlVGltZXIpXHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLm1vYmlsZVRpbWVyKTtcclxuICAgIHRoaXMubW9iaWxlVGltZXIgPSBzZXRUaW1lb3V0KCgpPT4ge1xyXG4gICAgICBpZiAodGhpcy5tb2JpbGUubGVuZ3RoICE9IDEwKVxyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgdGhpcy5nZW5lcmF0ZU9UUCgpO1xyXG4gICAgfSwgNTAwKTtcclxuICB9XHJcblxyXG4gIGdlbmVyYXRlT1RQKCkge1xyXG4gICAgdGhpcy5idXR0b25Mb2FkaW5nID0gdHJ1ZTtcclxuICAgIHRoaXMucmVzdFNlcnZpY2UuZ2VuZXJhdGVPVFAodGhpcy5tb2JpbGUgPz8gXCJcIiwgXCI5MVwiKS5zdWJzY3JpYmUoXHJcbiAgICAgIChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHtcclxuICAgICAgICAgIHNldmVyaXR5OiAnc3VjY2VzcycsXHJcbiAgICAgICAgICBzdW1tYXJ5OiAnT1RQIFNlbnQnLFxyXG4gICAgICAgICAgZGV0YWlsOiAnT1RQIHNlbnQgdG8gbW9iaWxlLiBWYWxpZCBmb3IgMyBtaW5zJyxcclxuICAgICAgICAgIGxpZmU6IDEwMDAwXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMuYnV0dG9uTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGVycm9yPy5lcnJvcj8ubWVzc2FnZTtcclxuXHJcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe1xyXG4gICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXHJcbiAgICAgICAgICBzdW1tYXJ5OiAnT1RQIFJlcXVlc3QnLFxyXG4gICAgICAgICAgZGV0YWlsOiBlcnJvck1lc3NhZ2UsXHJcbiAgICAgICAgICBsaWZlOiAxMDAwMFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVOdW1iZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNoYXJDb2RlID0gZXZlbnQuY2hhckNvZGU7XHJcbiAgICBpZiAoY2hhckNvZGUgPCA0OCB8fCBjaGFyQ29kZSA+IDU3KSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB2YWxpZGF0ZU9UUChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub3RwLmxlbmd0aCA9PSA2KSB7XHJcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGNoZWNrU3RyZW5ndGgoKSB7XHJcbiAgICB0aGlzLnBhc3N3b3JkU3RyZW5ndGhDb3VudCA9IDA7XHJcbiAgICB0aGlzLnBhc3N3b3JkU3RyZW5ndGhDb3VudCArPSAoL1tBLVpdLy50ZXN0KHRoaXMucGFzc3dvcmQpKSA/IDEgOiAwO1xyXG4gICAgdGhpcy5wYXNzd29yZFN0cmVuZ3RoQ291bnQgKz0gKC9bYS16XS8udGVzdCh0aGlzLnBhc3N3b3JkKSkgPyAxIDogMDtcclxuICAgIHRoaXMucGFzc3dvcmRTdHJlbmd0aENvdW50ICs9ICgvXFxkLy50ZXN0KHRoaXMucGFzc3dvcmQpKSA/IDEgOiAwO1xyXG4gICAgdGhpcy5wYXNzd29yZFN0cmVuZ3RoQ291bnQgKz0gKHRoaXMucGFzc3dvcmQubGVuZ3RoID4gOCA/IDEgOiAwKTtcclxuICAgIGNvbnNvbGUubG9nKC9eW0EtWl0rJC8udGVzdCh0aGlzLnBhc3N3b3JkKSwgL15bYS16XSskLy50ZXN0KHRoaXMucGFzc3dvcmQpLCAvXFxkLy50ZXN0KHRoaXMucGFzc3dvcmQpICk7XHJcbiAgfVxyXG4gIGdldFN0cmVuZ3RoQ29sb3IoaW5kZXg6IG51bWJlcikge1xyXG4gICAgc3dpdGNoKHRoaXMucGFzc3dvcmRTdHJlbmd0aENvdW50KSB7XHJcbiAgICAgIGNhc2UgMTpcclxuICAgICAgICByZXR1cm4gKGluZGV4IDwgdGhpcy5wYXNzd29yZFN0cmVuZ3RoQ291bnQgPyBcInRvbWF0b1wiIDogXCIjZDNkM2QzYmFcIik7XHJcbiAgICAgIGNhc2UgMjpcclxuICAgICAgICByZXR1cm4gKGluZGV4IDwgdGhpcy5wYXNzd29yZFN0cmVuZ3RoQ291bnQgPyBcIm9yYW5nZVwiIDogXCIjZDNkM2QzYmFcIik7XHJcbiAgICAgIGNhc2UgMzpcclxuICAgICAgICByZXR1cm4gKGluZGV4IDwgdGhpcy5wYXNzd29yZFN0cmVuZ3RoQ291bnQgPyBcInllbGxvd1wiIDogXCIjZDNkM2QzYmFcIik7XHJcbiAgICAgIGNhc2UgNDpcclxuICAgICAgICByZXR1cm4gKGluZGV4IDwgdGhpcy5wYXNzd29yZFN0cmVuZ3RoQ291bnQgPyBcImxpZ2h0Z3JlZW5cIiA6IFwiI2QzZDNkM2JhXCIpO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiBcIiNkM2QzZDNiYVwiO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRW1haWxWYWxpZCgpIHtcclxuICAgIGNvbnN0IGVtYWlsUmVnZXggPSAvXlthLXpBLVowLTkuXyUrLV0rQFthLXpBLVowLTkuLV0rXFwuW2EtekEtWl17Mix9JC87XHJcbiAgICByZXR1cm4gZW1haWxSZWdleC50ZXN0KHRoaXMuZW1haWwpO1xyXG4gIH1cclxuICBnZXQgaXNQYXNzd29yZFZhbGlkKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNNb2JpbGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gd2luZG93LmlubmVyV2lkdGggPD0gNDc1O1xyXG4gIH1cclxufVxyXG4iLCJcclxuPHAtdG9hc3QgcG9zaXRpb249XCJib3R0b20tcmlnaHRcIiBbYmFzZVpJbmRleF09XCIxMDAwMDAwMDAwMFwiIFthdXRvWkluZGV4XT1cInRydWVcIlxyXG4gICAgW3Nob3dUcmFuc2Zvcm1PcHRpb25zXT1cImlzTW9iaWxlID8gJ3RyYW5zbGF0ZVkoLTEwMCUpJyA6ICcnXCI+PC9wLXRvYXN0PlxyXG48ZGl2IGNsYXNzPVwiY2xvc2UtaWNvblwiIChjbGljayk9XCJjbG9zZSgpXCI+XHJcbiAgICA8bWF0LWljb24+Y2xvc2U8L21hdC1pY29uPlxyXG48L2Rpdj5cclxuPHNlY3Rpb24+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWFpblwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImNoa1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNpZ251cFwiPlxyXG4gICAgICAgICAgICAgICAgPGZvcm0+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNoa1wiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPkxvZ2luPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIiBzdHlsZT1cImdhcDogNXB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9naW4tdHlwZVwiIFtuZ0NsYXNzXT1cInsnbG9naW4tdHlwZV9fYWN0aXZlJzogbG9naW5UeXBlID09ICdPVFAnfVwiIChjbGljayk9XCJsb2dpblR5cGUgPSAnT1RQJ1wiPk9UUCBMb2dpbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9naW4tdHlwZVwiIFtuZ0NsYXNzXT1cInsnbG9naW4tdHlwZV9fYWN0aXZlJzogbG9naW5UeXBlID09ICdQQVNTV09SRCd9XCIgKGNsaWNrKT1cImxvZ2luVHlwZSA9ICdQQVNTV09SRCdcIj5QYXNzd29yZCBMb2dpbjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2dpblR5cGUgPT0gJ1BBU1NXT1JEJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImVtYWlsXCIgbmFtZT1cImVtYWlsXCIgcGxhY2Vob2xkZXI9XCJFbWFpbFwiIHJlcXVpcmVkPVwiXCIgWyhuZ01vZGVsKV09XCJlbWFpbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBbdHlwZV09XCJwYXNzd29yZEhpZGRlbiA/ICdwYXNzd29yZCcgOiAndGV4dCdcIiBuYW1lPVwicGFzc3dvcmRcIiBwbGFjZWhvbGRlcj1cIkVudGVyIFBhc3N3b3JkXCIgcmVxdWlyZWQ9XCJcIiBbKG5nTW9kZWwpXT1cInBhc3N3b3JkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJwYXNzd29yZC12aXNpYmxpdHlcIiAoY2xpY2spPVwicGFzc3dvcmRIaWRkZW4gPSAhcGFzc3dvcmRIaWRkZW5cIj57e3Bhc3N3b3JkSGlkZGVuID8gJ3Zpc2liaWxpdHlfb2ZmJyA6ICd2aXNpYmlsaXR5J319PC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvZ2luVHlwZSA9PSAnT1RQJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm1vYmlsZVwiIG5hbWU9XCJtb2JpbGVcIiBwbGFjZWhvbGRlcj1cIk1vYmlsZVwiIHJlcXVpcmVkPVwiXCIgKGtleXByZXNzKT1cInZhbGlkYXRlTnVtYmVyKCRldmVudClcIiBbKG5nTW9kZWwpXT1cIm1vYmlsZVwiIChuZ01vZGVsQ2hhbmdlKT1cImVudGVyTW9iaWxlKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJvdHBcIiBuYW1lPVwib3RwXCIgcGxhY2Vob2xkZXI9XCJFbnRlciByZWNlaXZlZCBvdHBcIiByZXF1aXJlZD1cIlwiIFsobmdNb2RlbCldPVwib3RwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwibG9naW4oKVwiICpuZ0lmPVwiIWJ1dHRvbkxvYWRpbmdcIiBbZGlzYWJsZWRdPVwiKGxvZ2luVHlwZSA9PSAnUEFTU1dPUkQnID8gIWlzRW1haWxWYWxpZCA6IGZhbHNlKVwiPkxvZ2luPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiAqbmdJZj1cImJ1dHRvbkxvYWRpbmdcIj5Mb2FkaW5nLi4uPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxvZ2luXCI+XHJcbiAgICAgICAgICAgICAgICA8Zm9ybT5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiY2hrXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+U2lnbiB1cDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJlbWFpbFwiIG5hbWU9XCJlbWFpbFwiIHBsYWNlaG9sZGVyPVwiRW1haWxcIiByZXF1aXJlZD1cIlwiIFsobmdNb2RlbCldPVwiZW1haWxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm1vYmlsZVwiIG5hbWU9XCJtb2JpbGVcIiBwbGFjZWhvbGRlcj1cIk1vYmlsZVwiIHJlcXVpcmVkPVwiXCIgKGtleXByZXNzKT1cInZhbGlkYXRlTnVtYmVyKCRldmVudClcIiBbKG5nTW9kZWwpXT1cIm1vYmlsZVwiIChuZ01vZGVsQ2hhbmdlKT1cInNlbmRTaWdudXBPVFAoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cIm90cFwiIG5hbWU9XCJvdHBcIiBwbGFjZWhvbGRlcj1cIk9UUFwiIHJlcXVpcmVkPVwiXCIgWyhuZ01vZGVsKV09XCJvdHBcIiAoa2V5cHJlc3MpPVwidmFsaWRhdGVPVFAoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxtYXQtaWNvbiBzdHlsZT1cImNvbG9yOiBsaWdodGdyZWVuO1wiIGNsYXNzPVwib3RwLWNoZWNrZWRcIiB0aXRsZT1cIk9UUCBWZXJpZmllZFwiICpuZ0lmPVwiaXNPVFBWZXJpZmllZFwiPmNoZWNrX2NpcmNsZTwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBzdHlsZT1cImNvbG9yOiB0b21hdG87XCIgY2xhc3M9XCJvdHAtY2hlY2tlZFwiIHRpdGxlPVwiT1RQIG5vdCBWZXJpZmllZFwiICpuZ0lmPVwiIWlzT1RQVmVyaWZpZWRcIj5jYW5jZWw8L21hdC1pY29uPiAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG9zaXRpb24tcmVsYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IFt0eXBlXT1cInBhc3N3b3JkSGlkZGVuID8gJ3Bhc3N3b3JkJyA6ICd0ZXh0J1wiIG5hbWU9XCJwYXNzd29yZFwiIHBsYWNlaG9sZGVyPVwiQ3JlYXRlIFBhc3N3b3JkXCIgcmVxdWlyZWQ9XCJcIiBbKG5nTW9kZWwpXT1cInBhc3N3b3JkXCIgKG5nTW9kZWxDaGFuZ2UpPVwiY2hlY2tTdHJlbmd0aCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInBhc3N3b3JkLXZpc2libGl0eVwiIChjbGljayk9XCJwYXNzd29yZEhpZGRlbiA9ICFwYXNzd29yZEhpZGRlblwiPnt7cGFzc3dvcmRIaWRkZW4gPyAndmlzaWJpbGl0eV9vZmYnIDogJ3Zpc2liaWxpdHknfX08L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RyZW5ndGgtYmFyLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgc3RyZW5ndGggb2YgcGFzc3dvcmRTdHJlbmd0aDsgbGV0IGlkeCA9IGluZGV4XCIgY2xhc3M9XCJzdHJlbmd0aC1iYXJcIiBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImdldFN0cmVuZ3RoQ29sb3IoaWR4KVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJjcmVhdGVBY2NvdW50KClcIiBbZGlzYWJsZWRdPVwiIWlzRW1haWxWYWxpZCB8fCAhaXNQYXNzd29yZFZhbGlkIHx8IChvdHAubGVuZ3RoICE9IDYpXCI+U2lnbiB1cDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPC9mb3JtPlxyXG5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9zZWN0aW9uPlxyXG4iXX0=
|