@annalib/anna-cognito-lib 2.3.7 → 2.3.8
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 → esm2022}/annalib-anna-cognito-lib.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components/anna-login/anna-login.component.mjs +67 -67
- package/{esm2020 → esm2022}/lib/components/cognito-and-sso-login-container/cognito-and-sso-login-container.component.mjs +22 -22
- package/{esm2020 → esm2022}/lib/components/forgot-password/forgot-password.component.mjs +133 -133
- package/{esm2020 → esm2022}/lib/components/password-matching/password-matching.component.mjs +92 -92
- package/{esm2020 → esm2022}/lib/components/powered-by-logo-template/powered-by-logo-template.component.mjs +14 -14
- package/{esm2020 → esm2022}/lib/components/set-new-password/set-new-password.component.mjs +71 -71
- package/{esm2020 → esm2022}/lib/components/sso-login/sso-login.component.mjs +38 -38
- package/{esm2020 → esm2022}/lib/components/surewaves-year-logo/surewaves-year-logo.component.mjs +15 -15
- package/{esm2020 → esm2022}/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.mjs +90 -90
- package/{esm2020 → esm2022}/lib/components/version-and-term-policy/version-and-term-policy.component.mjs +19 -19
- package/{esm2020 → esm2022}/lib/config/acl-service.token.mjs +4 -4
- package/{esm2020 → esm2022}/lib/config/auth-service.token.mjs +3 -3
- package/{esm2020 → esm2022}/lib/config/config-service.token.mjs +3 -3
- package/{esm2020 → esm2022}/lib/config/sso-login-service.token.mjs +3 -3
- package/esm2022/lib/constants/loginConstant.mjs +55 -0
- package/{esm2020 → esm2022}/lib/directives/spinner-button/index.mjs +1 -1
- package/{esm2020 → esm2022}/lib/directives/spinner-button/spinner-button.directive.mjs +43 -43
- package/{esm2020 → esm2022}/lib/models/auth.model.mjs +23 -23
- package/{esm2020 → esm2022}/lib/services/acl.service.mjs +27 -27
- package/{esm2020 → esm2022}/lib/services/auth.service.mjs +312 -312
- package/{esm2020 → esm2022}/lib/services/config.service.mjs +20 -20
- package/{esm2020 → esm2022}/lib/services/sso-login.service.mjs +20 -20
- package/{esm2020 → esm2022}/public-api.mjs +27 -27
- package/{fesm2020 → fesm2022}/annalib-anna-cognito-lib.mjs +905 -905
- package/fesm2022/annalib-anna-cognito-lib.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/components/anna-login/anna-login.component.d.ts +20 -20
- package/lib/components/cognito-and-sso-login-container/cognito-and-sso-login-container.component.d.ts +10 -10
- package/lib/components/forgot-password/forgot-password.component.d.ts +42 -42
- package/lib/components/password-matching/password-matching.component.d.ts +22 -22
- package/lib/components/powered-by-logo-template/powered-by-logo-template.component.d.ts +8 -8
- package/lib/components/set-new-password/set-new-password.component.d.ts +28 -28
- package/lib/components/sso-login/sso-login.component.d.ts +14 -14
- package/lib/components/surewaves-year-logo/surewaves-year-logo.component.d.ts +9 -9
- package/lib/components/verify-and-set-new-password/verify-and-set-new-password.component.d.ts +32 -32
- package/lib/components/version-and-term-policy/version-and-term-policy.component.d.ts +10 -10
- package/lib/config/acl-service.token.d.ts +38 -38
- package/lib/config/auth-service.token.d.ts +23 -23
- package/lib/config/config-service.token.d.ts +13 -13
- package/lib/config/sso-login-service.token.d.ts +10 -10
- package/lib/constants/loginConstant.d.ts +49 -49
- package/lib/directives/spinner-button/index.d.ts +1 -1
- package/lib/directives/spinner-button/spinner-button.directive.d.ts +15 -15
- package/lib/models/auth.model.d.ts +21 -21
- package/lib/services/acl.service.d.ts +11 -11
- package/lib/services/auth.service.d.ts +47 -47
- package/lib/services/config.service.d.ts +8 -8
- package/lib/services/sso-login.service.d.ts +8 -8
- package/package.json +5 -11
- package/public-api.d.ts +20 -20
- package/esm2020/lib/constants/loginConstant.mjs +0 -55
- package/fesm2015/annalib-anna-cognito-lib.mjs +0 -1011
- package/fesm2015/annalib-anna-cognito-lib.mjs.map +0 -1
- package/fesm2020/annalib-anna-cognito-lib.mjs.map +0 -1
|
@@ -1,133 +1,133 @@
|
|
|
1
|
-
// Angular import statements
|
|
2
|
-
import { Component, Inject } from '@angular/core';
|
|
3
|
-
import { FormBuilder, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
-
// Third party import statements
|
|
5
|
-
import { ToastrService } from 'ngx-toastr';
|
|
6
|
-
import { forkJoin } from 'rxjs';
|
|
7
|
-
// User defined import statements
|
|
8
|
-
import { UsernameInfo, UserState } from '../../models/auth.model';
|
|
9
|
-
import { AnnaLibAuthService } from '../../services/auth.service';
|
|
10
|
-
import { LoginConstant } from '../../constants/loginConstant';
|
|
11
|
-
import { Router } from '@angular/router';
|
|
12
|
-
import { CONFIG_SERVICE_TOKEN } from '../../config/config-service.token';
|
|
13
|
-
import { AUTH_SERVICE_TOKEN } from '../../config/auth-service.token';
|
|
14
|
-
import { SSO_LOGIN_SERVICE_TOKEN } from '../../config/sso-login-service.token';
|
|
15
|
-
import { VersionAndTermPolicyComponent } from '../version-and-term-policy/version-and-term-policy.component';
|
|
16
|
-
import { SurewavesYearLogoComponent } from '../surewaves-year-logo/surewaves-year-logo.component';
|
|
17
|
-
import { PoweredByLogoTemplateComponent } from '../powered-by-logo-template/powered-by-logo-template.component';
|
|
18
|
-
import { SpinnerButtonDirective } from '../../directives/spinner-button/spinner-button.directive';
|
|
19
|
-
import { NgIf, NgClass } from '@angular/common';
|
|
20
|
-
import * as i0 from "@angular/core";
|
|
21
|
-
import * as i1 from "../../services/auth.service";
|
|
22
|
-
import * as i2 from "@angular/forms";
|
|
23
|
-
import * as i3 from "ngx-toastr";
|
|
24
|
-
import * as i4 from "@angular/router";
|
|
25
|
-
export class ForgotPasswordComponent {
|
|
26
|
-
constructor(authService, fb, toastr, router, consumingProjectConfigService, consumingProjectAuthService, consumingProjectSSOLoginService) {
|
|
27
|
-
this.authService = authService;
|
|
28
|
-
this.fb = fb;
|
|
29
|
-
this.toastr = toastr;
|
|
30
|
-
this.router = router;
|
|
31
|
-
this.consumingProjectConfigService = consumingProjectConfigService;
|
|
32
|
-
this.consumingProjectAuthService = consumingProjectAuthService;
|
|
33
|
-
this.consumingProjectSSOLoginService = consumingProjectSSOLoginService;
|
|
34
|
-
this.passwordNotMatching = false;
|
|
35
|
-
this.password = { value: null, status: null };
|
|
36
|
-
this.confirmPassword = { value: null, status: null };
|
|
37
|
-
this.infoMessageToRedirectLogin = null;
|
|
38
|
-
this.isLoading = false;
|
|
39
|
-
}
|
|
40
|
-
ngOnInit() {
|
|
41
|
-
this.infoMessageToRedirectLogin = null;
|
|
42
|
-
this.constants = LoginConstant;
|
|
43
|
-
this.onIntialiseForm();
|
|
44
|
-
if (this.consumingProjectAuthService.userName) {
|
|
45
|
-
this.onUpdateForm();
|
|
46
|
-
}
|
|
47
|
-
this.authService.forgotPasswordAndGlobalSignoutLoader = false;
|
|
48
|
-
}
|
|
49
|
-
onIntialiseForm() {
|
|
50
|
-
this.verifyRegisteredEmail = this.fb.group({
|
|
51
|
-
email: [null, [Validators.required]],
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
onUpdateForm() {
|
|
55
|
-
this.verifyRegisteredEmail.patchValue({
|
|
56
|
-
email: this.consumingProjectAuthService.userName,
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
isFormValid() {
|
|
60
|
-
return this.verifyRegisteredEmail.valid;
|
|
61
|
-
}
|
|
62
|
-
onLoginOrGetOtpButtonClick() {
|
|
63
|
-
if (this.infoMessageToRedirectLogin) {
|
|
64
|
-
this.router.navigate([LoginConstant.loginPageUrl]);
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
this.onVerifyRegisteredEmail();
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
onVerifyRegisteredEmail() {
|
|
71
|
-
this.isLoading = true;
|
|
72
|
-
this.errorMessage = null;
|
|
73
|
-
this.infoMessageToRedirectLogin = null;
|
|
74
|
-
let username = this.verifyRegisteredEmail.controls['email'].value;
|
|
75
|
-
let isUsernameAvailable = this.authService.consumingProjectAuthService.isUsernameAvailable(username);
|
|
76
|
-
let isUsernameTempPasswordSet = this.authService.consumingProjectAuthService.getUserState(username);
|
|
77
|
-
forkJoin([isUsernameAvailable, isUsernameTempPasswordSet]).subscribe({
|
|
78
|
-
next: (result) => {
|
|
79
|
-
let isUsernameAvailable = new UsernameInfo(result[0]).isUsernameAvailable;
|
|
80
|
-
let isUserWithTempPassword = new UserState(result[1]).isUserWithTempPassword;
|
|
81
|
-
this.onGettingUserStatus(isUsernameAvailable, isUserWithTempPassword, username);
|
|
82
|
-
this.isLoading = false;
|
|
83
|
-
},
|
|
84
|
-
error: (error) => {
|
|
85
|
-
if (error.status == 400) {
|
|
86
|
-
this.errorMessage = this.constants.userNotFound;
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
this.toastr.error(LoginConstant.apiFailErrorMessage);
|
|
90
|
-
}
|
|
91
|
-
this.isLoading = false;
|
|
92
|
-
},
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
onGettingUserStatus(isUsernameAvailable, isUserWithTempPassword, username) {
|
|
96
|
-
if (!isUsernameAvailable) {
|
|
97
|
-
if (!isUserWithTempPassword) {
|
|
98
|
-
this.authService.onForgotPasswordGenerateOTP(username);
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
this.infoMessageToRedirectLogin = this.constants.firstTimeLoginUserTempPasswordMsg;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
this.errorMessage = this.constants.userNotFound;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
112
|
-
type: Component,
|
|
113
|
-
args: [{ selector: 'anna-cognito-lib-forgot-password', standalone: true, imports: [
|
|
114
|
-
FormsModule,
|
|
115
|
-
ReactiveFormsModule,
|
|
116
|
-
NgIf,
|
|
117
|
-
NgClass,
|
|
118
|
-
SpinnerButtonDirective,
|
|
119
|
-
PoweredByLogoTemplateComponent,
|
|
120
|
-
SurewavesYearLogoComponent,
|
|
121
|
-
VersionAndTermPolicyComponent,
|
|
122
|
-
], template: "<div class=\"main\">\r\n <section>\r\n <header>\r\n <img\r\n [src]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\r\n alt=\"Anna Logo\"\r\n />\r\n </header>\r\n <article>\r\n <form [formGroup]=\"verifyRegisteredEmail\">\r\n <ng-container *ngIf=\"!infoMessageToRedirectLogin\">\r\n <div id=\"heading\">\r\n {{ constants.forgotPasswordHeading }}\r\n </div>\r\n <p>\r\n {{\r\n consumingProjectSSOLoginService?.isSsoIntegrated\r\n ? constants.PleaseEnterYourUsercodeMessage\r\n : constants.PleaseEnterYourUsernameMessage\r\n }}\r\n </p>\r\n </ng-container>\r\n <div\r\n id=\"alert-div\"\r\n *ngIf=\"errorMessage\"\r\n >\r\n <span class=\"material-icons\">report</span>\r\n <p id=\"alert-msg\">{{ errorMessage }}</p>\r\n </div>\r\n <div\r\n id=\"info-div\"\r\n *ngIf=\"infoMessageToRedirectLogin\"\r\n >\r\n <i class=\"mi mdi-info\"></i>\r\n <p>{{ infoMessageToRedirectLogin }}</p>\r\n </div>\r\n\r\n <input\r\n *ngIf=\"!infoMessageToRedirectLogin\"\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"email\"\r\n [placeholder]=\"\r\n consumingProjectSSOLoginService?.isSsoIntegrated\r\n ? constants.enterUserCode\r\n : constants.enterEmail\r\n \"\r\n [ngClass]=\"{\r\n 'input-invalid':\r\n verifyRegisteredEmail.get('email')?.dirty && verifyRegisteredEmail.get('email')?.errors\r\n }\"\r\n />\r\n\r\n <button\r\n tabindex=\"2\"\r\n type=\"submit\"\r\n class=\"login-btn\"\r\n [anna-cognito-lib-SpinnerButton]=\"isLoading\"\r\n (click)=\"onLoginOrGetOtpButtonClick()\"\r\n [spinnerButtonText]=\"infoMessageToRedirectLogin ? constants.login : constants.forgotPasswordButton\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\r\n </footer>\r\n </section>\r\n</div>\r\n\r\n<div class=\"page-footer\">\r\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\r\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\r\n</div>\r\n", styles: ["@keyframes show{0%{opacity:0}50%{opacity:.5}to{opacity:1}}html{overflow-y:scroll}.main{background-color:#fff;background-size:cover;font-family:Roboto;height:calc(100vh - 50px)}section{top:45%;left:50%;position:absolute;transform:translate(-50%,-50%);width:20.875rem;animation:show .5s 1;-moz-animation:show .5s 1}.container{width:100%;height:100%;overflow:auto}header{height:auto;width:100%;text-align:center}article{margin-top:.9375rem;margin-bottom:.9375rem;border:1px solid #979797;background-color:#f4f4f4;padding:2rem 1.375rem;border-radius:.375rem;box-shadow:0 .125rem .4375rem #0000001a}article .sub-title{color:#6e6e6e;font-family:Roboto;font-size:1.25rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}article #heading{color:#212121;text-align:center;margin-bottom:1.5rem;font-family:Roboto;font-size:1.125rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}p{text-align:center;margin-bottom:1rem}#alert-div{padding:.3125rem 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3;justify-content:left;align-items:center;display:flex}#alert-div .material-icons{color:#f44336;font-size:1rem;margin-left:.5rem}#alert-div p{margin-left:4px!important;margin:0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}#info-div{padding:6px 0;margin-bottom:.75rem;border-radius:.25rem;border:1px solid #268bff;background:#e3f0ff}#info-div .mdi-info{color:#268bff;font-size:1rem;margin-left:6px}#info-div p{margin:-1.5625rem 0 0 1.8rem;padding:.3125rem 0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}footer{align-items:baseline;color:#6e6e6e;opacity:.9;display:flex;font-family:Ubuntu;font-size:1.25rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;justify-content:center}footer span{font-size:1.5625rem;margin-left:.25rem}input[type=password],input[type=text],input[type=number]{width:100%;height:30px;padding:.75rem 1rem;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}.login-btn{width:100%;height:2.5rem;border:0;color:#fff;background-color:#268bff;border-radius:.375rem;font-size:1rem}.login-btn:hover{background-color:#4099ff;cursor:pointer}.login-btn:disabled{background-color:#ccc;color:#fff;cursor:not-allowed}.input-invalid{border:1px solid #fe3824!important}input[type=password].ng-dirty.ng-invalid,input[type=text].ng-dirty.ng-invalid{border:1px solid #fe3824}input[type=submit]:focus,input[type=password]:focus,input[type=text]:focus,input[type=checkbox]:focus,button:focus{outline:none}input::placeholder{color:#a4a4a4}:host ::ng-deep .verison-and-policy{color:#8bac2a}p{color:#4a4a4a;font-family:Roboto;font-size:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}input[type=text]{margin-bottom:16px}input[type=text]:focus{box-shadow:none}.back-btn{font-size:27px;position:relative;color:#268bff;float:left;top:-30px;left:-15px;font-weight:400!important}\n"] }]
|
|
123
|
-
}], ctorParameters: function () { return [{ type: i1.AnnaLibAuthService }, { type: i2.FormBuilder }, { type: i3.ToastrService }, { type: i4.Router }, { type: undefined, decorators: [{
|
|
124
|
-
type: Inject,
|
|
125
|
-
args: [CONFIG_SERVICE_TOKEN]
|
|
126
|
-
}] }, { type: undefined, decorators: [{
|
|
127
|
-
type: Inject,
|
|
128
|
-
args: [AUTH_SERVICE_TOKEN]
|
|
129
|
-
}] }, { type: undefined, decorators: [{
|
|
130
|
-
type: Inject,
|
|
131
|
-
args: [SSO_LOGIN_SERVICE_TOKEN]
|
|
132
|
-
}] }]; } });
|
|
133
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29nbml0by1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ZvcmdvdC1wYXNzd29yZC9mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEcsZ0NBQWdDO0FBQ2hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBeUIsTUFBTSxNQUFNLENBQUM7QUFFdkQsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQWtCLE1BQU0sbUNBQW1DLENBQUM7QUFDekYsT0FBTyxFQUFFLGtCQUFrQixFQUFnQixNQUFNLGlDQUFpQyxDQUFDO0FBQ25GLE9BQU8sRUFBb0IsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRyxP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UUFBUSxDQUFDLENBQUM7YUFDMUQ7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsaUNBQWlDLENBQUM7YUFDdEY7U0FDSjthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztTQUNuRDtJQUNMLENBQUM7O3FIQTNGUSx1QkFBdUIsa0lBZXBCLG9CQUFvQixhQUNwQixrQkFBa0IsYUFDbEIsdUJBQXVCO3lHQWpCMUIsdUJBQXVCLDRGQ3ZDcEMsb2lHQXlFQSxxc0dENUNRLFdBQVcsMnBCQUNYLG1CQUFtQixnVkFDbkIsSUFBSSw2RkFDSixPQUFPLG9GQUNQLHNCQUFzQiw4SUFDdEIsOEJBQThCLHNGQUM5QiwwQkFBMEIsaUZBQzFCLDZCQUE2Qjs0RkFHeEIsdUJBQXVCO2tCQWhCbkMsU0FBUzsrQkFDSSxrQ0FBa0MsY0FHaEMsSUFBSSxXQUNQO3dCQUNMLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixJQUFJO3dCQUNKLE9BQU87d0JBQ1Asc0JBQXNCO3dCQUN0Qiw4QkFBOEI7d0JBQzlCLDBCQUEwQjt3QkFDMUIsNkJBQTZCO3FCQUNoQzs7MEJBaUJJLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUN6QixNQUFNOzJCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXIgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbi8vIFRoaXJkIHBhcnR5IGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIGNhdGNoRXJyb3IsIHBpcGUsIG1hcCB9IGZyb20gJ3J4anMnO1xyXG5cclxuLy8gVXNlciBkZWZpbmVkIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IFVzZXJuYW1lSW5mbywgVXNlclN0YXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2F1dGgubW9kZWwnO1xyXG5pbXBvcnQgeyBBbm5hTGliQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2dpbkNvbnN0YW50IH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2xvZ2luQ29uc3RhbnQnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDT05GSUdfU0VSVklDRV9UT0tFTiwgSUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25maWcvY29uZmlnLXNlcnZpY2UudG9rZW4nO1xyXG5pbXBvcnQgeyBBVVRIX1NFUlZJQ0VfVE9LRU4sIElBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbmZpZy9hdXRoLXNlcnZpY2UudG9rZW4nO1xyXG5pbXBvcnQgeyBJU1NPTG9naW5TZXJ2aWNlLCBTU09fTE9HSU5fU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uL2NvbmZpZy9zc28tbG9naW4tc2VydmljZS50b2tlbic7XHJcbmltcG9ydCB7IFZlcnNpb25BbmRUZXJtUG9saWN5Q29tcG9uZW50IH0gZnJvbSAnLi4vdmVyc2lvbi1hbmQtdGVybS1wb2xpY3kvdmVyc2lvbi1hbmQtdGVybS1wb2xpY3kuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3VyZXdhdmVzWWVhckxvZ29Db21wb25lbnQgfSBmcm9tICcuLi9zdXJld2F2ZXMteWVhci1sb2dvL3N1cmV3YXZlcy15ZWFyLWxvZ28uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUG93ZXJlZEJ5TG9nb1RlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vcG93ZXJlZC1ieS1sb2dvLXRlbXBsYXRlL3Bvd2VyZWQtYnktbG9nby10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGlubmVyQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9zcGlubmVyLWJ1dHRvbi9zcGlubmVyLWJ1dHRvbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBOZ0lmLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbnR5cGUgcGFzc3dvcmRUeXBlID0geyB2YWx1ZTogc3RyaW5nOyBzdGF0dXM6IHN0cmluZyB9O1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYW5uYS1jb2duaXRvLWxpYi1mb3Jnb3QtcGFzc3dvcmQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICAgICBOZ0lmLFxyXG4gICAgICAgIE5nQ2xhc3MsXHJcbiAgICAgICAgU3Bpbm5lckJ1dHRvbkRpcmVjdGl2ZSxcclxuICAgICAgICBQb3dlcmVkQnlMb2dvVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICAgICAgU3VyZXdhdmVzWWVhckxvZ29Db21wb25lbnQsXHJcbiAgICAgICAgVmVyc2lvbkFuZFRlcm1Qb2xpY3lDb21wb25lbnQsXHJcbiAgICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9yZ290UGFzc3dvcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgICB2ZXJpZnlSZWdpc3RlcmVkRW1haWw6IEZvcm1Hcm91cDtcclxuICAgIHBhc3N3b3JkTm90TWF0Y2hpbmcgPSBmYWxzZTtcclxuICAgIGNvbnN0YW50czogdHlwZW9mIExvZ2luQ29uc3RhbnQ7XHJcbiAgICBwYXNzd29yZDogcGFzc3dvcmRUeXBlID0geyB2YWx1ZTogbnVsbCwgc3RhdHVzOiBudWxsIH07XHJcbiAgICBjb25maXJtUGFzc3dvcmQ6IHBhc3N3b3JkVHlwZSA9IHsgdmFsdWU6IG51bGwsIHN0YXR1czogbnVsbCB9O1xyXG4gICAgaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW46IHN0cmluZyA9IG51bGw7XHJcbiAgICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBbm5hTGliQXV0aFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICAgICAgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICBASW5qZWN0KENPTkZJR19TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdENvbmZpZ1NlcnZpY2U6IElDb25maWdTZXJ2aWNlLFxyXG4gICAgICAgIEBJbmplY3QoQVVUSF9TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlOiBJQXV0aFNlcnZpY2UsXHJcbiAgICAgICAgQEluamVjdChTU09fTE9HSU5fU0VSVklDRV9UT0tFTikgcHVibGljIGNvbnN1bWluZ1Byb2plY3RTU09Mb2dpblNlcnZpY2U6IElTU09Mb2dpblNlcnZpY2UsXHJcbiAgICApIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5pbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpbiA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5jb25zdGFudHMgPSBMb2dpbkNvbnN0YW50O1xyXG4gICAgICAgIHRoaXMub25JbnRpYWxpc2VGb3JtKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLnVzZXJOYW1lKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25VcGRhdGVGb3JtKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZm9yZ290UGFzc3dvcmRBbmRHbG9iYWxTaWdub3V0TG9hZGVyID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgb25JbnRpYWxpc2VGb3JtKCkge1xyXG4gICAgICAgIHRoaXMudmVyaWZ5UmVnaXN0ZXJlZEVtYWlsID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgIGVtYWlsOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvblVwZGF0ZUZvcm0oKSB7XHJcbiAgICAgICAgdGhpcy52ZXJpZnlSZWdpc3RlcmVkRW1haWwucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgICAgIGVtYWlsOiB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS51c2VyTmFtZSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpc0Zvcm1WYWxpZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy52ZXJpZnlSZWdpc3RlcmVkRW1haWwudmFsaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgb25Mb2dpbk9yR2V0T3RwQnV0dG9uQ2xpY2soKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW4pIHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0xvZ2luQ29uc3RhbnQubG9naW5QYWdlVXJsXSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5vblZlcmlmeVJlZ2lzdGVyZWRFbWFpbCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvblZlcmlmeVJlZ2lzdGVyZWRFbWFpbCgpIHtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW4gPSBudWxsO1xyXG4gICAgICAgIGxldCB1c2VybmFtZSA9IHRoaXMudmVyaWZ5UmVnaXN0ZXJlZEVtYWlsLmNvbnRyb2xzWydlbWFpbCddLnZhbHVlO1xyXG5cclxuICAgICAgICBsZXQgaXNVc2VybmFtZUF2YWlsYWJsZSA9IHRoaXMuYXV0aFNlcnZpY2UuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLmlzVXNlcm5hbWVBdmFpbGFibGUodXNlcm5hbWUpO1xyXG4gICAgICAgIGxldCBpc1VzZXJuYW1lVGVtcFBhc3N3b3JkU2V0ID0gdGhpcy5hdXRoU2VydmljZS5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UuZ2V0VXNlclN0YXRlKHVzZXJuYW1lKTtcclxuXHJcbiAgICAgICAgZm9ya0pvaW4oW2lzVXNlcm5hbWVBdmFpbGFibGUsIGlzVXNlcm5hbWVUZW1wUGFzc3dvcmRTZXRdKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgaXNVc2VybmFtZUF2YWlsYWJsZSA9IG5ldyBVc2VybmFtZUluZm8ocmVzdWx0WzBdKS5pc1VzZXJuYW1lQXZhaWxhYmxlO1xyXG4gICAgICAgICAgICAgICAgbGV0IGlzVXNlcldpdGhUZW1wUGFzc3dvcmQgPSBuZXcgVXNlclN0YXRlKHJlc3VsdFsxXSkuaXNVc2VyV2l0aFRlbXBQYXNzd29yZDtcclxuICAgICAgICAgICAgICAgIHRoaXMub25HZXR0aW5nVXNlclN0YXR1cyhpc1VzZXJuYW1lQXZhaWxhYmxlLCBpc1VzZXJXaXRoVGVtcFBhc3N3b3JkLCB1c2VybmFtZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jb25zdGFudHMudXNlck5vdEZvdW5kO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihMb2dpbkNvbnN0YW50LmFwaUZhaWxFcnJvck1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkdldHRpbmdVc2VyU3RhdHVzKGlzVXNlcm5hbWVBdmFpbGFibGU6IGJvb2xlYW4sIGlzVXNlcldpdGhUZW1wUGFzc3dvcmQ6IGJvb2xlYW4sIHVzZXJuYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAoIWlzVXNlcm5hbWVBdmFpbGFibGUpIHtcclxuICAgICAgICAgICAgaWYgKCFpc1VzZXJXaXRoVGVtcFBhc3N3b3JkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLm9uRm9yZ290UGFzc3dvcmRHZW5lcmF0ZU9UUCh1c2VybmFtZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluZm9NZXNzYWdlVG9SZWRpcmVjdExvZ2luID0gdGhpcy5jb25zdGFudHMuZmlyc3RUaW1lTG9naW5Vc2VyVGVtcFBhc3N3b3JkTXNnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmNvbnN0YW50cy51c2VyTm90Rm91bmQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtYWluXCI+XHJcbiAgICA8c2VjdGlvbj5cclxuICAgICAgICA8aGVhZGVyPlxyXG4gICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICBbc3JjXT1cImNvbnN1bWluZ1Byb2plY3RDb25maWdTZXJ2aWNlLmFwcEdlbmVyaWNDb25maWcubG9naW5QYWdlTG9nb0ltZ1VybFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJBbm5hIExvZ29cIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgIDwvaGVhZGVyPlxyXG4gICAgICAgIDxhcnRpY2xlPlxyXG4gICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInZlcmlmeVJlZ2lzdGVyZWRFbWFpbFwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJoZWFkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbnN0YW50cy5mb3Jnb3RQYXNzd29yZEhlYWRpbmcgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN1bWluZ1Byb2plY3RTU09Mb2dpblNlcnZpY2U/LmlzU3NvSW50ZWdyYXRlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gY29uc3RhbnRzLlBsZWFzZUVudGVyWW91clVzZXJjb2RlTWVzc2FnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnRzLlBsZWFzZUVudGVyWW91clVzZXJuYW1lTWVzc2FnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiYWxlcnQtZGl2XCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImVycm9yTWVzc2FnZVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPnJlcG9ydDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8cCBpZD1cImFsZXJ0LW1zZ1wiPnt7IGVycm9yTWVzc2FnZSB9fTwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaW5mby1kaXZcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW5cIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibWkgbWRpLWluZm9cIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+e3sgaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW4gfX08L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFpbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3VtaW5nUHJvamVjdFNTT0xvZ2luU2VydmljZT8uaXNTc29JbnRlZ3JhdGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGNvbnN0YW50cy5lbnRlclVzZXJDb2RlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50cy5lbnRlckVtYWlsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdpbnB1dC1pbnZhbGlkJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmlmeVJlZ2lzdGVyZWRFbWFpbC5nZXQoJ2VtYWlsJyk/LmRpcnR5ICYmIHZlcmlmeVJlZ2lzdGVyZWRFbWFpbC5nZXQoJ2VtYWlsJyk/LmVycm9yc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxvZ2luLWJ0blwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FubmEtY29nbml0by1saWItU3Bpbm5lckJ1dHRvbl09XCJpc0xvYWRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkxvZ2luT3JHZXRPdHBCdXR0b25DbGljaygpXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3Bpbm5lckJ1dHRvblRleHRdPVwiaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW4gPyBjb25zdGFudHMubG9naW4gOiBjb25zdGFudHMuZm9yZ290UGFzc3dvcmRCdXR0b25cIlxyXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgPC9hcnRpY2xlPlxyXG4gICAgICAgIDxmb290ZXI+XHJcbiAgICAgICAgICAgIDxhbm5hLWNvZ25pdG8tbGliLXBvd2VyZWQtYnktbG9nby10ZW1wbGF0ZT4gPC9hbm5hLWNvZ25pdG8tbGliLXBvd2VyZWQtYnktbG9nby10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Zvb3Rlcj5cclxuICAgIDwvc2VjdGlvbj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwicGFnZS1mb290ZXJcIj5cclxuICAgIDxhbm5hLWNvZ25pdG8tbGliLXN1cmV3YXZlcy15ZWFyLWxvZ28+PC9hbm5hLWNvZ25pdG8tbGliLXN1cmV3YXZlcy15ZWFyLWxvZ28+XHJcbiAgICA8YW5uYS1jb2duaXRvLWxpYi12ZXJzaW9uLWFuZC10ZXJtLXBvbGljeT48L2FubmEtY29nbml0by1saWItdmVyc2lvbi1hbmQtdGVybS1wb2xpY3k+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
1
|
+
// Angular import statements
|
|
2
|
+
import { Component, Inject } from '@angular/core';
|
|
3
|
+
import { FormBuilder, Validators, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
// Third party import statements
|
|
5
|
+
import { ToastrService } from 'ngx-toastr';
|
|
6
|
+
import { forkJoin } from 'rxjs';
|
|
7
|
+
// User defined import statements
|
|
8
|
+
import { UsernameInfo, UserState } from '../../models/auth.model';
|
|
9
|
+
import { AnnaLibAuthService } from '../../services/auth.service';
|
|
10
|
+
import { LoginConstant } from '../../constants/loginConstant';
|
|
11
|
+
import { Router } from '@angular/router';
|
|
12
|
+
import { CONFIG_SERVICE_TOKEN } from '../../config/config-service.token';
|
|
13
|
+
import { AUTH_SERVICE_TOKEN } from '../../config/auth-service.token';
|
|
14
|
+
import { SSO_LOGIN_SERVICE_TOKEN } from '../../config/sso-login-service.token';
|
|
15
|
+
import { VersionAndTermPolicyComponent } from '../version-and-term-policy/version-and-term-policy.component';
|
|
16
|
+
import { SurewavesYearLogoComponent } from '../surewaves-year-logo/surewaves-year-logo.component';
|
|
17
|
+
import { PoweredByLogoTemplateComponent } from '../powered-by-logo-template/powered-by-logo-template.component';
|
|
18
|
+
import { SpinnerButtonDirective } from '../../directives/spinner-button/spinner-button.directive';
|
|
19
|
+
import { NgIf, NgClass } from '@angular/common';
|
|
20
|
+
import * as i0 from "@angular/core";
|
|
21
|
+
import * as i1 from "../../services/auth.service";
|
|
22
|
+
import * as i2 from "@angular/forms";
|
|
23
|
+
import * as i3 from "ngx-toastr";
|
|
24
|
+
import * as i4 from "@angular/router";
|
|
25
|
+
export class ForgotPasswordComponent {
|
|
26
|
+
constructor(authService, fb, toastr, router, consumingProjectConfigService, consumingProjectAuthService, consumingProjectSSOLoginService) {
|
|
27
|
+
this.authService = authService;
|
|
28
|
+
this.fb = fb;
|
|
29
|
+
this.toastr = toastr;
|
|
30
|
+
this.router = router;
|
|
31
|
+
this.consumingProjectConfigService = consumingProjectConfigService;
|
|
32
|
+
this.consumingProjectAuthService = consumingProjectAuthService;
|
|
33
|
+
this.consumingProjectSSOLoginService = consumingProjectSSOLoginService;
|
|
34
|
+
this.passwordNotMatching = false;
|
|
35
|
+
this.password = { value: null, status: null };
|
|
36
|
+
this.confirmPassword = { value: null, status: null };
|
|
37
|
+
this.infoMessageToRedirectLogin = null;
|
|
38
|
+
this.isLoading = false;
|
|
39
|
+
}
|
|
40
|
+
ngOnInit() {
|
|
41
|
+
this.infoMessageToRedirectLogin = null;
|
|
42
|
+
this.constants = LoginConstant;
|
|
43
|
+
this.onIntialiseForm();
|
|
44
|
+
if (this.consumingProjectAuthService.userName) {
|
|
45
|
+
this.onUpdateForm();
|
|
46
|
+
}
|
|
47
|
+
this.authService.forgotPasswordAndGlobalSignoutLoader = false;
|
|
48
|
+
}
|
|
49
|
+
onIntialiseForm() {
|
|
50
|
+
this.verifyRegisteredEmail = this.fb.group({
|
|
51
|
+
email: [null, [Validators.required]],
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
onUpdateForm() {
|
|
55
|
+
this.verifyRegisteredEmail.patchValue({
|
|
56
|
+
email: this.consumingProjectAuthService.userName,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
isFormValid() {
|
|
60
|
+
return this.verifyRegisteredEmail.valid;
|
|
61
|
+
}
|
|
62
|
+
onLoginOrGetOtpButtonClick() {
|
|
63
|
+
if (this.infoMessageToRedirectLogin) {
|
|
64
|
+
this.router.navigate([LoginConstant.loginPageUrl]);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
this.onVerifyRegisteredEmail();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
onVerifyRegisteredEmail() {
|
|
71
|
+
this.isLoading = true;
|
|
72
|
+
this.errorMessage = null;
|
|
73
|
+
this.infoMessageToRedirectLogin = null;
|
|
74
|
+
let username = this.verifyRegisteredEmail.controls['email'].value;
|
|
75
|
+
let isUsernameAvailable = this.authService.consumingProjectAuthService.isUsernameAvailable(username);
|
|
76
|
+
let isUsernameTempPasswordSet = this.authService.consumingProjectAuthService.getUserState(username);
|
|
77
|
+
forkJoin([isUsernameAvailable, isUsernameTempPasswordSet]).subscribe({
|
|
78
|
+
next: (result) => {
|
|
79
|
+
let isUsernameAvailable = new UsernameInfo(result[0]).isUsernameAvailable;
|
|
80
|
+
let isUserWithTempPassword = new UserState(result[1]).isUserWithTempPassword;
|
|
81
|
+
this.onGettingUserStatus(isUsernameAvailable, isUserWithTempPassword, username);
|
|
82
|
+
this.isLoading = false;
|
|
83
|
+
},
|
|
84
|
+
error: (error) => {
|
|
85
|
+
if (error.status == 400) {
|
|
86
|
+
this.errorMessage = this.constants.userNotFound;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
this.toastr.error(LoginConstant.apiFailErrorMessage);
|
|
90
|
+
}
|
|
91
|
+
this.isLoading = false;
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
onGettingUserStatus(isUsernameAvailable, isUserWithTempPassword, username) {
|
|
96
|
+
if (!isUsernameAvailable) {
|
|
97
|
+
if (!isUserWithTempPassword) {
|
|
98
|
+
this.authService.onForgotPasswordGenerateOTP(username);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
this.infoMessageToRedirectLogin = this.constants.firstTimeLoginUserTempPasswordMsg;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
this.errorMessage = this.constants.userNotFound;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ForgotPasswordComponent, deps: [{ token: i1.AnnaLibAuthService }, { token: i2.FormBuilder }, { token: i3.ToastrService }, { token: i4.Router }, { token: CONFIG_SERVICE_TOKEN }, { token: AUTH_SERVICE_TOKEN }, { token: SSO_LOGIN_SERVICE_TOKEN }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
109
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ForgotPasswordComponent, isStandalone: true, selector: "anna-cognito-lib-forgot-password", ngImport: i0, template: "<div class=\"main\">\r\n <section>\r\n <header>\r\n <img\r\n [src]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\r\n alt=\"Anna Logo\"\r\n />\r\n </header>\r\n <article>\r\n <form [formGroup]=\"verifyRegisteredEmail\">\r\n <ng-container *ngIf=\"!infoMessageToRedirectLogin\">\r\n <div id=\"heading\">\r\n {{ constants.forgotPasswordHeading }}\r\n </div>\r\n <p>\r\n {{\r\n consumingProjectSSOLoginService?.isSsoIntegrated\r\n ? constants.PleaseEnterYourUsercodeMessage\r\n : constants.PleaseEnterYourUsernameMessage\r\n }}\r\n </p>\r\n </ng-container>\r\n <div\r\n id=\"alert-div\"\r\n *ngIf=\"errorMessage\"\r\n >\r\n <span class=\"material-icons\">report</span>\r\n <p id=\"alert-msg\">{{ errorMessage }}</p>\r\n </div>\r\n <div\r\n id=\"info-div\"\r\n *ngIf=\"infoMessageToRedirectLogin\"\r\n >\r\n <i class=\"mi mdi-info\"></i>\r\n <p>{{ infoMessageToRedirectLogin }}</p>\r\n </div>\r\n\r\n <input\r\n *ngIf=\"!infoMessageToRedirectLogin\"\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"email\"\r\n [placeholder]=\"\r\n consumingProjectSSOLoginService?.isSsoIntegrated\r\n ? constants.enterUserCode\r\n : constants.enterEmail\r\n \"\r\n [ngClass]=\"{\r\n 'input-invalid':\r\n verifyRegisteredEmail.get('email')?.dirty && verifyRegisteredEmail.get('email')?.errors\r\n }\"\r\n />\r\n\r\n <button\r\n tabindex=\"2\"\r\n type=\"submit\"\r\n class=\"login-btn\"\r\n [anna-cognito-lib-SpinnerButton]=\"isLoading\"\r\n (click)=\"onLoginOrGetOtpButtonClick()\"\r\n [spinnerButtonText]=\"infoMessageToRedirectLogin ? constants.login : constants.forgotPasswordButton\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\r\n </footer>\r\n </section>\r\n</div>\r\n\r\n<div class=\"page-footer\">\r\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\r\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\r\n</div>\r\n", styles: ["@keyframes show{0%{opacity:0}50%{opacity:.5}to{opacity:1}}html{overflow-y:scroll}.main{background-color:#fff;background-size:cover;font-family:Roboto;height:calc(100vh - 50px)}section{top:45%;left:50%;position:absolute;transform:translate(-50%,-50%);width:20.875rem;animation:show .5s 1;-moz-animation:show .5s 1}.container{width:100%;height:100%;overflow:auto}header{height:auto;width:100%;text-align:center}article{margin-top:.9375rem;margin-bottom:.9375rem;border:1px solid #979797;background-color:#f4f4f4;padding:2rem 1.375rem;border-radius:.375rem;box-shadow:0 .125rem .4375rem #0000001a}article .sub-title{color:#6e6e6e;font-family:Roboto;font-size:1.25rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}article #heading{color:#212121;text-align:center;margin-bottom:1.5rem;font-family:Roboto;font-size:1.125rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}p{text-align:center;margin-bottom:1rem}#alert-div{padding:.3125rem 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3;justify-content:left;align-items:center;display:flex}#alert-div .material-icons{color:#f44336;font-size:1rem;margin-left:.5rem}#alert-div p{margin-left:4px!important;margin:0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}#info-div{padding:6px 0;margin-bottom:.75rem;border-radius:.25rem;border:1px solid #268bff;background:#e3f0ff}#info-div .mdi-info{color:#268bff;font-size:1rem;margin-left:6px}#info-div p{margin:-1.5625rem 0 0 1.8rem;padding:.3125rem 0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}footer{align-items:baseline;color:#6e6e6e;opacity:.9;display:flex;font-family:Ubuntu;font-size:1.25rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;justify-content:center}footer span{font-size:1.5625rem;margin-left:.25rem}input[type=password],input[type=text],input[type=number]{width:100%;height:30px;padding:.75rem 1rem;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}.login-btn{width:100%;height:2.5rem;border:0;color:#fff;background-color:#268bff;border-radius:.375rem;font-size:1rem}.login-btn:hover{background-color:#4099ff;cursor:pointer}.login-btn:disabled{background-color:#ccc;color:#fff;cursor:not-allowed}.input-invalid{border:1px solid #fe3824!important}input[type=password].ng-dirty.ng-invalid,input[type=text].ng-dirty.ng-invalid{border:1px solid #fe3824}input[type=submit]:focus,input[type=password]:focus,input[type=text]:focus,input[type=checkbox]:focus,button:focus{outline:none}input::placeholder{color:#a4a4a4}:host ::ng-deep .verison-and-policy{color:#8bac2a}p{color:#4a4a4a;font-family:Roboto;font-size:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}input[type=text]{margin-bottom:16px}input[type=text]:focus{box-shadow:none}.back-btn{font-size:27px;position:relative;color:#268bff;float:left;top:-30px;left:-15px;font-weight:400!important}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: SpinnerButtonDirective, selector: "[anna-cognito-lib-SpinnerButton]", inputs: ["anna-cognito-lib-SpinnerButton", "spinnerButtonText"] }, { kind: "component", type: PoweredByLogoTemplateComponent, selector: "anna-cognito-lib-powered-by-logo-template" }, { kind: "component", type: SurewavesYearLogoComponent, selector: "anna-cognito-lib-surewaves-year-logo" }, { kind: "component", type: VersionAndTermPolicyComponent, selector: "anna-cognito-lib-version-and-term-policy" }] }); }
|
|
110
|
+
}
|
|
111
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ForgotPasswordComponent, decorators: [{
|
|
112
|
+
type: Component,
|
|
113
|
+
args: [{ selector: 'anna-cognito-lib-forgot-password', standalone: true, imports: [
|
|
114
|
+
FormsModule,
|
|
115
|
+
ReactiveFormsModule,
|
|
116
|
+
NgIf,
|
|
117
|
+
NgClass,
|
|
118
|
+
SpinnerButtonDirective,
|
|
119
|
+
PoweredByLogoTemplateComponent,
|
|
120
|
+
SurewavesYearLogoComponent,
|
|
121
|
+
VersionAndTermPolicyComponent,
|
|
122
|
+
], template: "<div class=\"main\">\r\n <section>\r\n <header>\r\n <img\r\n [src]=\"consumingProjectConfigService.appGenericConfig.loginPageLogoImgUrl\"\r\n alt=\"Anna Logo\"\r\n />\r\n </header>\r\n <article>\r\n <form [formGroup]=\"verifyRegisteredEmail\">\r\n <ng-container *ngIf=\"!infoMessageToRedirectLogin\">\r\n <div id=\"heading\">\r\n {{ constants.forgotPasswordHeading }}\r\n </div>\r\n <p>\r\n {{\r\n consumingProjectSSOLoginService?.isSsoIntegrated\r\n ? constants.PleaseEnterYourUsercodeMessage\r\n : constants.PleaseEnterYourUsernameMessage\r\n }}\r\n </p>\r\n </ng-container>\r\n <div\r\n id=\"alert-div\"\r\n *ngIf=\"errorMessage\"\r\n >\r\n <span class=\"material-icons\">report</span>\r\n <p id=\"alert-msg\">{{ errorMessage }}</p>\r\n </div>\r\n <div\r\n id=\"info-div\"\r\n *ngIf=\"infoMessageToRedirectLogin\"\r\n >\r\n <i class=\"mi mdi-info\"></i>\r\n <p>{{ infoMessageToRedirectLogin }}</p>\r\n </div>\r\n\r\n <input\r\n *ngIf=\"!infoMessageToRedirectLogin\"\r\n type=\"text\"\r\n tabindex=\"1\"\r\n formControlName=\"email\"\r\n [placeholder]=\"\r\n consumingProjectSSOLoginService?.isSsoIntegrated\r\n ? constants.enterUserCode\r\n : constants.enterEmail\r\n \"\r\n [ngClass]=\"{\r\n 'input-invalid':\r\n verifyRegisteredEmail.get('email')?.dirty && verifyRegisteredEmail.get('email')?.errors\r\n }\"\r\n />\r\n\r\n <button\r\n tabindex=\"2\"\r\n type=\"submit\"\r\n class=\"login-btn\"\r\n [anna-cognito-lib-SpinnerButton]=\"isLoading\"\r\n (click)=\"onLoginOrGetOtpButtonClick()\"\r\n [spinnerButtonText]=\"infoMessageToRedirectLogin ? constants.login : constants.forgotPasswordButton\"\r\n ></button>\r\n </form>\r\n </article>\r\n <footer>\r\n <anna-cognito-lib-powered-by-logo-template> </anna-cognito-lib-powered-by-logo-template>\r\n </footer>\r\n </section>\r\n</div>\r\n\r\n<div class=\"page-footer\">\r\n <anna-cognito-lib-surewaves-year-logo></anna-cognito-lib-surewaves-year-logo>\r\n <anna-cognito-lib-version-and-term-policy></anna-cognito-lib-version-and-term-policy>\r\n</div>\r\n", styles: ["@keyframes show{0%{opacity:0}50%{opacity:.5}to{opacity:1}}html{overflow-y:scroll}.main{background-color:#fff;background-size:cover;font-family:Roboto;height:calc(100vh - 50px)}section{top:45%;left:50%;position:absolute;transform:translate(-50%,-50%);width:20.875rem;animation:show .5s 1;-moz-animation:show .5s 1}.container{width:100%;height:100%;overflow:auto}header{height:auto;width:100%;text-align:center}article{margin-top:.9375rem;margin-bottom:.9375rem;border:1px solid #979797;background-color:#f4f4f4;padding:2rem 1.375rem;border-radius:.375rem;box-shadow:0 .125rem .4375rem #0000001a}article .sub-title{color:#6e6e6e;font-family:Roboto;font-size:1.25rem;font-weight:700;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}article #heading{color:#212121;text-align:center;margin-bottom:1.5rem;font-family:Roboto;font-size:1.125rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}p{text-align:center;margin-bottom:1rem}#alert-div{padding:.3125rem 0;margin-bottom:.75rem;border-radius:.25rem;border:solid 1px #f9b3ae;background-color:#fde4e3;justify-content:left;align-items:center;display:flex}#alert-div .material-icons{color:#f44336;font-size:1rem;margin-left:.5rem}#alert-div p{margin-left:4px!important;margin:0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}#info-div{padding:6px 0;margin-bottom:.75rem;border-radius:.25rem;border:1px solid #268bff;background:#e3f0ff}#info-div .mdi-info{color:#268bff;font-size:1rem;margin-left:6px}#info-div p{margin:-1.5625rem 0 0 1.8rem;padding:.3125rem 0;color:#4a4a4a;font-family:Roboto;font-size:.75rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}footer{align-items:baseline;color:#6e6e6e;opacity:.9;display:flex;font-family:Ubuntu;font-size:1.25rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal;justify-content:center}footer span{font-size:1.5625rem;margin-left:.25rem}input[type=password],input[type=text],input[type=number]{width:100%;height:30px;padding:.75rem 1rem;border:1px solid #979797;margin-bottom:.625rem;border-radius:.375rem}.login-btn{width:100%;height:2.5rem;border:0;color:#fff;background-color:#268bff;border-radius:.375rem;font-size:1rem}.login-btn:hover{background-color:#4099ff;cursor:pointer}.login-btn:disabled{background-color:#ccc;color:#fff;cursor:not-allowed}.input-invalid{border:1px solid #fe3824!important}input[type=password].ng-dirty.ng-invalid,input[type=text].ng-dirty.ng-invalid{border:1px solid #fe3824}input[type=submit]:focus,input[type=password]:focus,input[type=text]:focus,input[type=checkbox]:focus,button:focus{outline:none}input::placeholder{color:#a4a4a4}:host ::ng-deep .verison-and-policy{color:#8bac2a}p{color:#4a4a4a;font-family:Roboto;font-size:1rem;font-weight:400;font-stretch:normal;font-style:normal;line-height:normal;letter-spacing:normal}input[type=text]{margin-bottom:16px}input[type=text]:focus{box-shadow:none}.back-btn{font-size:27px;position:relative;color:#268bff;float:left;top:-30px;left:-15px;font-weight:400!important}\n"] }]
|
|
123
|
+
}], ctorParameters: function () { return [{ type: i1.AnnaLibAuthService }, { type: i2.FormBuilder }, { type: i3.ToastrService }, { type: i4.Router }, { type: undefined, decorators: [{
|
|
124
|
+
type: Inject,
|
|
125
|
+
args: [CONFIG_SERVICE_TOKEN]
|
|
126
|
+
}] }, { type: undefined, decorators: [{
|
|
127
|
+
type: Inject,
|
|
128
|
+
args: [AUTH_SERVICE_TOKEN]
|
|
129
|
+
}] }, { type: undefined, decorators: [{
|
|
130
|
+
type: Inject,
|
|
131
|
+
args: [SSO_LOGIN_SERVICE_TOKEN]
|
|
132
|
+
}] }]; } });
|
|
133
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yZ290LXBhc3N3b3JkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FubmEtY29nbml0by1saWIvc3JjL2xpYi9jb21wb25lbnRzL2ZvcmdvdC1wYXNzd29yZC9mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5uYS1jb2duaXRvLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEcsZ0NBQWdDO0FBQ2hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBeUIsTUFBTSxNQUFNLENBQUM7QUFFdkQsaUNBQWlDO0FBQ2pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQWtCLE1BQU0sbUNBQW1DLENBQUM7QUFDekYsT0FBTyxFQUFFLGtCQUFrQixFQUFnQixNQUFNLGlDQUFpQyxDQUFDO0FBQ25GLE9BQU8sRUFBb0IsdUJBQXVCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRyxP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UUFBUSxDQUFDLENBQUM7YUFDMUQ7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsaUNBQWlDLENBQUM7YUFDdEY7U0FDSjthQUFNO1lBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQztTQUNuRDtJQUNMLENBQUM7K0dBM0ZRLHVCQUF1QixrSUFlcEIsb0JBQW9CLGFBQ3BCLGtCQUFrQixhQUNsQix1QkFBdUI7bUdBakIxQix1QkFBdUIsNEZDdkNwQyxvaUdBeUVBLHFzR0Q1Q1EsV0FBVywycEJBQ1gsbUJBQW1CLGdWQUNuQixJQUFJLDZGQUNKLE9BQU8sb0ZBQ1Asc0JBQXNCLDhJQUN0Qiw4QkFBOEIsc0ZBQzlCLDBCQUEwQixpRkFDMUIsNkJBQTZCOzs0RkFHeEIsdUJBQXVCO2tCQWhCbkMsU0FBUzsrQkFDSSxrQ0FBa0MsY0FHaEMsSUFBSSxXQUNQO3dCQUNMLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixJQUFJO3dCQUNKLE9BQU87d0JBQ1Asc0JBQXNCO3dCQUN0Qiw4QkFBOEI7d0JBQzlCLDBCQUEwQjt3QkFDMUIsNkJBQTZCO3FCQUNoQzs7MEJBaUJJLE1BQU07MkJBQUMsb0JBQW9COzswQkFDM0IsTUFBTTsyQkFBQyxrQkFBa0I7OzBCQUN6QixNQUFNOzJCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXIgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbi8vIFRoaXJkIHBhcnR5IGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgZm9ya0pvaW4sIGNhdGNoRXJyb3IsIHBpcGUsIG1hcCB9IGZyb20gJ3J4anMnO1xyXG5cclxuLy8gVXNlciBkZWZpbmVkIGltcG9ydCBzdGF0ZW1lbnRzXHJcbmltcG9ydCB7IFVzZXJuYW1lSW5mbywgVXNlclN0YXRlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2F1dGgubW9kZWwnO1xyXG5pbXBvcnQgeyBBbm5hTGliQXV0aFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2dpbkNvbnN0YW50IH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2xvZ2luQ29uc3RhbnQnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBDT05GSUdfU0VSVklDRV9UT0tFTiwgSUNvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb25maWcvY29uZmlnLXNlcnZpY2UudG9rZW4nO1xyXG5pbXBvcnQgeyBBVVRIX1NFUlZJQ0VfVE9LRU4sIElBdXRoU2VydmljZSB9IGZyb20gJy4uLy4uL2NvbmZpZy9hdXRoLXNlcnZpY2UudG9rZW4nO1xyXG5pbXBvcnQgeyBJU1NPTG9naW5TZXJ2aWNlLCBTU09fTE9HSU5fU0VSVklDRV9UT0tFTiB9IGZyb20gJy4uLy4uL2NvbmZpZy9zc28tbG9naW4tc2VydmljZS50b2tlbic7XHJcbmltcG9ydCB7IFZlcnNpb25BbmRUZXJtUG9saWN5Q29tcG9uZW50IH0gZnJvbSAnLi4vdmVyc2lvbi1hbmQtdGVybS1wb2xpY3kvdmVyc2lvbi1hbmQtdGVybS1wb2xpY3kuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3VyZXdhdmVzWWVhckxvZ29Db21wb25lbnQgfSBmcm9tICcuLi9zdXJld2F2ZXMteWVhci1sb2dvL3N1cmV3YXZlcy15ZWFyLWxvZ28uY29tcG9uZW50JztcclxuaW1wb3J0IHsgUG93ZXJlZEJ5TG9nb1RlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vcG93ZXJlZC1ieS1sb2dvLXRlbXBsYXRlL3Bvd2VyZWQtYnktbG9nby10ZW1wbGF0ZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTcGlubmVyQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9zcGlubmVyLWJ1dHRvbi9zcGlubmVyLWJ1dHRvbi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBOZ0lmLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbnR5cGUgcGFzc3dvcmRUeXBlID0geyB2YWx1ZTogc3RyaW5nOyBzdGF0dXM6IHN0cmluZyB9O1xyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnYW5uYS1jb2duaXRvLWxpYi1mb3Jnb3QtcGFzc3dvcmQnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9mb3Jnb3QtcGFzc3dvcmQuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgRm9ybXNNb2R1bGUsXHJcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICAgICBOZ0lmLFxyXG4gICAgICAgIE5nQ2xhc3MsXHJcbiAgICAgICAgU3Bpbm5lckJ1dHRvbkRpcmVjdGl2ZSxcclxuICAgICAgICBQb3dlcmVkQnlMb2dvVGVtcGxhdGVDb21wb25lbnQsXHJcbiAgICAgICAgU3VyZXdhdmVzWWVhckxvZ29Db21wb25lbnQsXHJcbiAgICAgICAgVmVyc2lvbkFuZFRlcm1Qb2xpY3lDb21wb25lbnQsXHJcbiAgICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9yZ290UGFzc3dvcmRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgZXJyb3JNZXNzYWdlOiBzdHJpbmc7XHJcbiAgICB2ZXJpZnlSZWdpc3RlcmVkRW1haWw6IEZvcm1Hcm91cDtcclxuICAgIHBhc3N3b3JkTm90TWF0Y2hpbmcgPSBmYWxzZTtcclxuICAgIGNvbnN0YW50czogdHlwZW9mIExvZ2luQ29uc3RhbnQ7XHJcbiAgICBwYXNzd29yZDogcGFzc3dvcmRUeXBlID0geyB2YWx1ZTogbnVsbCwgc3RhdHVzOiBudWxsIH07XHJcbiAgICBjb25maXJtUGFzc3dvcmQ6IHBhc3N3b3JkVHlwZSA9IHsgdmFsdWU6IG51bGwsIHN0YXR1czogbnVsbCB9O1xyXG4gICAgaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW46IHN0cmluZyA9IG51bGw7XHJcbiAgICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBbm5hTGliQXV0aFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICAgICAgcHJpdmF0ZSB0b2FzdHI6IFRvYXN0clNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgICAgICBASW5qZWN0KENPTkZJR19TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdENvbmZpZ1NlcnZpY2U6IElDb25maWdTZXJ2aWNlLFxyXG4gICAgICAgIEBJbmplY3QoQVVUSF9TRVJWSUNFX1RPS0VOKSBwdWJsaWMgY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlOiBJQXV0aFNlcnZpY2UsXHJcbiAgICAgICAgQEluamVjdChTU09fTE9HSU5fU0VSVklDRV9UT0tFTikgcHVibGljIGNvbnN1bWluZ1Byb2plY3RTU09Mb2dpblNlcnZpY2U6IElTU09Mb2dpblNlcnZpY2UsXHJcbiAgICApIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5pbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpbiA9IG51bGw7XHJcbiAgICAgICAgdGhpcy5jb25zdGFudHMgPSBMb2dpbkNvbnN0YW50O1xyXG4gICAgICAgIHRoaXMub25JbnRpYWxpc2VGb3JtKCk7XHJcbiAgICAgICAgaWYgKHRoaXMuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLnVzZXJOYW1lKSB7XHJcbiAgICAgICAgICAgIHRoaXMub25VcGRhdGVGb3JtKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UuZm9yZ290UGFzc3dvcmRBbmRHbG9iYWxTaWdub3V0TG9hZGVyID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgb25JbnRpYWxpc2VGb3JtKCkge1xyXG4gICAgICAgIHRoaXMudmVyaWZ5UmVnaXN0ZXJlZEVtYWlsID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgICAgIGVtYWlsOiBbbnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvblVwZGF0ZUZvcm0oKSB7XHJcbiAgICAgICAgdGhpcy52ZXJpZnlSZWdpc3RlcmVkRW1haWwucGF0Y2hWYWx1ZSh7XHJcbiAgICAgICAgICAgIGVtYWlsOiB0aGlzLmNvbnN1bWluZ1Byb2plY3RBdXRoU2VydmljZS51c2VyTmFtZSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpc0Zvcm1WYWxpZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy52ZXJpZnlSZWdpc3RlcmVkRW1haWwudmFsaWQ7XHJcbiAgICB9XHJcblxyXG4gICAgb25Mb2dpbk9yR2V0T3RwQnV0dG9uQ2xpY2soKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW4pIHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW0xvZ2luQ29uc3RhbnQubG9naW5QYWdlVXJsXSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5vblZlcmlmeVJlZ2lzdGVyZWRFbWFpbCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvblZlcmlmeVJlZ2lzdGVyZWRFbWFpbCgpIHtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBudWxsO1xyXG4gICAgICAgIHRoaXMuaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW4gPSBudWxsO1xyXG4gICAgICAgIGxldCB1c2VybmFtZSA9IHRoaXMudmVyaWZ5UmVnaXN0ZXJlZEVtYWlsLmNvbnRyb2xzWydlbWFpbCddLnZhbHVlO1xyXG5cclxuICAgICAgICBsZXQgaXNVc2VybmFtZUF2YWlsYWJsZSA9IHRoaXMuYXV0aFNlcnZpY2UuY29uc3VtaW5nUHJvamVjdEF1dGhTZXJ2aWNlLmlzVXNlcm5hbWVBdmFpbGFibGUodXNlcm5hbWUpO1xyXG4gICAgICAgIGxldCBpc1VzZXJuYW1lVGVtcFBhc3N3b3JkU2V0ID0gdGhpcy5hdXRoU2VydmljZS5jb25zdW1pbmdQcm9qZWN0QXV0aFNlcnZpY2UuZ2V0VXNlclN0YXRlKHVzZXJuYW1lKTtcclxuXHJcbiAgICAgICAgZm9ya0pvaW4oW2lzVXNlcm5hbWVBdmFpbGFibGUsIGlzVXNlcm5hbWVUZW1wUGFzc3dvcmRTZXRdKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgICBuZXh0OiAocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgaXNVc2VybmFtZUF2YWlsYWJsZSA9IG5ldyBVc2VybmFtZUluZm8ocmVzdWx0WzBdKS5pc1VzZXJuYW1lQXZhaWxhYmxlO1xyXG4gICAgICAgICAgICAgICAgbGV0IGlzVXNlcldpdGhUZW1wUGFzc3dvcmQgPSBuZXcgVXNlclN0YXRlKHJlc3VsdFsxXSkuaXNVc2VyV2l0aFRlbXBQYXNzd29yZDtcclxuICAgICAgICAgICAgICAgIHRoaXMub25HZXR0aW5nVXNlclN0YXR1cyhpc1VzZXJuYW1lQXZhaWxhYmxlLCBpc1VzZXJXaXRoVGVtcFBhc3N3b3JkLCB1c2VybmFtZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jb25zdGFudHMudXNlck5vdEZvdW5kO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcihMb2dpbkNvbnN0YW50LmFwaUZhaWxFcnJvck1lc3NhZ2UpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkdldHRpbmdVc2VyU3RhdHVzKGlzVXNlcm5hbWVBdmFpbGFibGU6IGJvb2xlYW4sIGlzVXNlcldpdGhUZW1wUGFzc3dvcmQ6IGJvb2xlYW4sIHVzZXJuYW1lOiBzdHJpbmcpIHtcclxuICAgICAgICBpZiAoIWlzVXNlcm5hbWVBdmFpbGFibGUpIHtcclxuICAgICAgICAgICAgaWYgKCFpc1VzZXJXaXRoVGVtcFBhc3N3b3JkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmF1dGhTZXJ2aWNlLm9uRm9yZ290UGFzc3dvcmRHZW5lcmF0ZU9UUCh1c2VybmFtZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluZm9NZXNzYWdlVG9SZWRpcmVjdExvZ2luID0gdGhpcy5jb25zdGFudHMuZmlyc3RUaW1lTG9naW5Vc2VyVGVtcFBhc3N3b3JkTXNnO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmNvbnN0YW50cy51c2VyTm90Rm91bmQ7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtYWluXCI+XHJcbiAgICA8c2VjdGlvbj5cclxuICAgICAgICA8aGVhZGVyPlxyXG4gICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICBbc3JjXT1cImNvbnN1bWluZ1Byb2plY3RDb25maWdTZXJ2aWNlLmFwcEdlbmVyaWNDb25maWcubG9naW5QYWdlTG9nb0ltZ1VybFwiXHJcbiAgICAgICAgICAgICAgICBhbHQ9XCJBbm5hIExvZ29cIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgIDwvaGVhZGVyPlxyXG4gICAgICAgIDxhcnRpY2xlPlxyXG4gICAgICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInZlcmlmeVJlZ2lzdGVyZWRFbWFpbFwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpblwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJoZWFkaW5nXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvbnN0YW50cy5mb3Jnb3RQYXNzd29yZEhlYWRpbmcgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8cD5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN1bWluZ1Byb2plY3RTU09Mb2dpblNlcnZpY2U/LmlzU3NvSW50ZWdyYXRlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gY29uc3RhbnRzLlBsZWFzZUVudGVyWW91clVzZXJjb2RlTWVzc2FnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY29uc3RhbnRzLlBsZWFzZUVudGVyWW91clVzZXJuYW1lTWVzc2FnZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiYWxlcnQtZGl2XCJcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImVycm9yTWVzc2FnZVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPnJlcG9ydDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8cCBpZD1cImFsZXJ0LW1zZ1wiPnt7IGVycm9yTWVzc2FnZSB9fTwvcD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaW5mby1kaXZcIlxyXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW5cIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibWkgbWRpLWluZm9cIj48L2k+XHJcbiAgICAgICAgICAgICAgICAgICAgPHA+e3sgaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW4gfX08L3A+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFpbmZvTWVzc2FnZVRvUmVkaXJlY3RMb2dpblwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3VtaW5nUHJvamVjdFNTT0xvZ2luU2VydmljZT8uaXNTc29JbnRlZ3JhdGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGNvbnN0YW50cy5lbnRlclVzZXJDb2RlXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGNvbnN0YW50cy5lbnRlckVtYWlsXHJcbiAgICAgICAgICAgICAgICAgICAgXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICdpbnB1dC1pbnZhbGlkJzpcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcmlmeVJlZ2lzdGVyZWRFbWFpbC5nZXQoJ2VtYWlsJyk/LmRpcnR5ICYmIHZlcmlmeVJlZ2lzdGVyZWRFbWFpbC5nZXQoJ2VtYWlsJyk/LmVycm9yc1xyXG4gICAgICAgICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuXHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIyXCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxvZ2luLWJ0blwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2FubmEtY29nbml0by1saWItU3Bpbm5lckJ1dHRvbl09XCJpc0xvYWRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkxvZ2luT3JHZXRPdHBCdXR0b25DbGljaygpXCJcclxuICAgICAgICAgICAgICAgICAgICBbc3Bpbm5lckJ1dHRvblRleHRdPVwiaW5mb01lc3NhZ2VUb1JlZGlyZWN0TG9naW4gPyBjb25zdGFudHMubG9naW4gOiBjb25zdGFudHMuZm9yZ290UGFzc3dvcmRCdXR0b25cIlxyXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Zvcm0+XHJcbiAgICAgICAgPC9hcnRpY2xlPlxyXG4gICAgICAgIDxmb290ZXI+XHJcbiAgICAgICAgICAgIDxhbm5hLWNvZ25pdG8tbGliLXBvd2VyZWQtYnktbG9nby10ZW1wbGF0ZT4gPC9hbm5hLWNvZ25pdG8tbGliLXBvd2VyZWQtYnktbG9nby10ZW1wbGF0ZT5cclxuICAgICAgICA8L2Zvb3Rlcj5cclxuICAgIDwvc2VjdGlvbj5cclxuPC9kaXY+XHJcblxyXG48ZGl2IGNsYXNzPVwicGFnZS1mb290ZXJcIj5cclxuICAgIDxhbm5hLWNvZ25pdG8tbGliLXN1cmV3YXZlcy15ZWFyLWxvZ28+PC9hbm5hLWNvZ25pdG8tbGliLXN1cmV3YXZlcy15ZWFyLWxvZ28+XHJcbiAgICA8YW5uYS1jb2duaXRvLWxpYi12ZXJzaW9uLWFuZC10ZXJtLXBvbGljeT48L2FubmEtY29nbml0by1saWItdmVyc2lvbi1hbmQtdGVybS1wb2xpY3k+XHJcbjwvZGl2PlxyXG4iXX0=
|